|
@@ -101,6 +101,11 @@ enum FormsWidgetMode: Hashable, Sendable {
|
|
|
case dashboard
|
|
case dashboard
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+enum DocsWidgetMode: Hashable, Sendable {
|
|
|
|
|
+ /// Find + create shortcuts (docs.new, templates, home); opens in-app browser.
|
|
|
|
|
+ case dashboard
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
enum SheetsWidgetMode: Hashable, Sendable {
|
|
enum SheetsWidgetMode: Hashable, Sendable {
|
|
|
/// Find + create shortcuts (sheets.new, templates, home); opens in-app browser.
|
|
/// Find + create shortcuts (sheets.new, templates, home); opens in-app browser.
|
|
|
case dashboard
|
|
case dashboard
|
|
@@ -153,6 +158,8 @@ enum WidgetLayoutMode: Hashable {
|
|
|
case news(NewsWidgetMode)
|
|
case news(NewsWidgetMode)
|
|
|
/// Google Forms: large interactive dashboard; small/medium use default grids.
|
|
/// Google Forms: large interactive dashboard; small/medium use default grids.
|
|
|
case forms(FormsWidgetMode)
|
|
case forms(FormsWidgetMode)
|
|
|
|
|
+ /// Google Docs: large dashboard like Forms.
|
|
|
|
|
+ case docs(DocsWidgetMode)
|
|
|
/// Google Sheets: large dashboard like Forms.
|
|
/// Google Sheets: large dashboard like Forms.
|
|
|
case sheets(SheetsWidgetMode)
|
|
case sheets(SheetsWidgetMode)
|
|
|
/// Google Slides: large dashboard like Forms.
|
|
/// Google Slides: large dashboard like Forms.
|
|
@@ -210,22 +217,7 @@ enum WidgetTemplates {
|
|
|
case .docs:
|
|
case .docs:
|
|
|
return [
|
|
return [
|
|
|
v("docs_small", "Docs", .small, false, .iconOnly(title: "Docs"), [a("home", "Open", "doc.text.fill", "/document/u/0/")]),
|
|
v("docs_small", "Docs", .small, false, .iconOnly(title: "Docs"), [a("home", "Open", "doc.text.fill", "/document/u/0/")]),
|
|
|
- v("docs_medium", "Docs Shortcuts", .medium, true, .actionsGrid(columns: 2), [
|
|
|
|
|
- a("recent", "Recent", "clock.arrow.circlepath", "/document/u/0/"),
|
|
|
|
|
- a("new", "New doc", "plus", "/document/create"),
|
|
|
|
|
- a("templates", "Templates", "square.grid.2x2", "/document/u/0/templates/home"),
|
|
|
|
|
- a("search", "Search", "magnifyingglass", "/document/u/0/search"),
|
|
|
|
|
- ]),
|
|
|
|
|
- v("docs_large", "Docs Hub", .large, true, .actionsGrid(columns: 2), [
|
|
|
|
|
- a("recent", "Recent", "clock.arrow.circlepath", "/document/u/0/"),
|
|
|
|
|
- a("new", "New doc", "plus", "/document/create"),
|
|
|
|
|
- a("templates", "Templates", "square.grid.2x2", "/document/u/0/templates/home"),
|
|
|
|
|
- a("starred", "Starred", "star", "/document/u/0/starred"),
|
|
|
|
|
- a("shared", "Shared", "person.2", "/document/u/0/shared-with-me"),
|
|
|
|
|
- a("trash", "Trash", "trash", "/document/u/0/trash"),
|
|
|
|
|
- a("search", "Search", "magnifyingglass", "/document/u/0/search"),
|
|
|
|
|
- a("offline", "Offline", "arrow.down.circle", "/document/u/0/offline"),
|
|
|
|
|
- ]),
|
|
|
|
|
|
|
+ v("docs_large", "Docs dashboard", .large, false, .docs(.dashboard), []),
|
|
|
]
|
|
]
|
|
|
case .sheets:
|
|
case .sheets:
|
|
|
return [
|
|
return [
|
|
@@ -575,6 +567,7 @@ extension WidgetLayoutMode {
|
|
|
case .youtube(.interactiveNav): true
|
|
case .youtube(.interactiveNav): true
|
|
|
case .news(_): true
|
|
case .news(_): true
|
|
|
case .forms(_): true
|
|
case .forms(_): true
|
|
|
|
|
+ case .docs(_): true
|
|
|
case .sheets(_): true
|
|
case .sheets(_): true
|
|
|
case .slides(_): true
|
|
case .slides(_): true
|
|
|
case .googlePlay(_): true
|
|
case .googlePlay(_): true
|
|
@@ -637,6 +630,8 @@ extension WidgetLayoutMode {
|
|
|
}
|
|
}
|
|
|
case .forms(.dashboard):
|
|
case .forms(.dashboard):
|
|
|
return CGSize(width: 440, height: 300)
|
|
return CGSize(width: 440, height: 300)
|
|
|
|
|
+ case .docs(.dashboard):
|
|
|
|
|
+ return CGSize(width: 440, height: 300)
|
|
|
case .sheets(.dashboard):
|
|
case .sheets(.dashboard):
|
|
|
return CGSize(width: 440, height: 300)
|
|
return CGSize(width: 440, height: 300)
|
|
|
case .slides(.dashboard):
|
|
case .slides(.dashboard):
|
|
@@ -701,6 +696,8 @@ extension WidgetLayoutMode {
|
|
|
}
|
|
}
|
|
|
case .forms(.dashboard):
|
|
case .forms(.dashboard):
|
|
|
return CGSize(width: 380, height: 280)
|
|
return CGSize(width: 380, height: 280)
|
|
|
|
|
+ case .docs(.dashboard):
|
|
|
|
|
+ return CGSize(width: 380, height: 280)
|
|
|
case .sheets(.dashboard):
|
|
case .sheets(.dashboard):
|
|
|
return CGSize(width: 380, height: 280)
|
|
return CGSize(width: 380, height: 280)
|
|
|
case .slides(.dashboard):
|
|
case .slides(.dashboard):
|