@synopackageland/sdk 0.49.5 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -15
- package/dist/src/shell/app-pages.d.ts +10 -3
- package/dist/src/shell/slot-content.d.ts +15 -0
- package/dist/style.css +1 -1
- package/dist/vue.js +1650 -1576
- package/executor-manifest.json +1 -1
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -195,13 +195,39 @@ This does not change the DSM window title bar or DSM's own Portal header.
|
|
|
195
195
|
a `title` the App has already translated, and optionally an `icon`, a `group`
|
|
196
196
|
label (pages with the same label sit together), a `badge`, a `component` to
|
|
197
197
|
render while it is the current page, `hidden` (reachable through `v-model`
|
|
198
|
-
but not in the sidebar),
|
|
199
|
-
|
|
200
|
-
`
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
198
|
+
but not in the sidebar), `placement: 'bottom'` for a page the sidebar lists
|
|
199
|
+
last, after every group (an App's settings), `header` and `fill`. The built-in
|
|
200
|
+
`'status'` and `'background'` may sit in the same list.
|
|
201
|
+
|
|
202
|
+
### Page title and actions
|
|
203
|
+
|
|
204
|
+
The sidebar already names the page, so a page shows no title of its own and no
|
|
205
|
+
subtitle. A visually hidden `h1` with the page's `title` still names it for
|
|
206
|
+
screen readers. The `#actions` slot, `PageActions`, the `#meta` slot and
|
|
207
|
+
`PageInfo` sit in a bar above the page: notes at the start, actions at the
|
|
208
|
+
end. The bar stays in place while the page scrolls and shows only while it
|
|
209
|
+
holds something. `header: true` shows the shell's `PageHeader` with the title
|
|
210
|
+
and puts the notes and actions on its line instead. `header: false` is for a
|
|
211
|
+
page that draws its own header: the shell adds no title, and its actions still
|
|
212
|
+
go to the bar.
|
|
213
|
+
|
|
214
|
+
### Scrolling
|
|
215
|
+
|
|
216
|
+
The navigation, the page bar, a page's tabs and a settings footer stay in
|
|
217
|
+
place; only the content scrolls, so no scrollbar runs past them. A page
|
|
218
|
+
scrolls as a whole by default. A page that shows a `SettingsPage` or a
|
|
219
|
+
`SectionTabs fill` fills the height instead: the tab strip stays at the top,
|
|
220
|
+
the footer at the bottom edge of the window, and only the `SettingsPage` body
|
|
221
|
+
scrolls (a tab that is not a `SettingsPage` scrolls under the strip). This
|
|
222
|
+
works through the App's own wrappers, such as a template's
|
|
223
|
+
`.integration-app > [data-page]`, with no CSS in the App. A page that shows a
|
|
224
|
+
settings footer has no space under it, whether or not it sits in tabs.
|
|
225
|
+
|
|
226
|
+
`fill: true` makes any page fill: the page does not scroll and the content
|
|
227
|
+
scrolls itself (a treemap, a table paged by height, a log viewer). `fill: false`
|
|
228
|
+
keeps a page scrolling as a whole even when it shows a `SettingsPage`. A filling
|
|
229
|
+
shell holds to `100dvh`, so a phone's address bar does not leave a gap. On a
|
|
230
|
+
phone the same rules give one scrolling area, with the footer in view.
|
|
205
231
|
|
|
206
232
|
```vue
|
|
207
233
|
<AppShell v-model="page" :ctx="ctx" :locale="ctx.locale" :pages="[
|
|
@@ -216,9 +242,10 @@ may sit in the same list.
|
|
|
216
242
|
```
|
|
217
243
|
|
|
218
244
|
A page passed as `component` cannot fill the shell's `#actions` slot. It puts
|
|
219
|
-
its own
|
|
220
|
-
template: they show in the page header before the App's
|
|
221
|
-
with the page. Outside an `AppShell`, `PageActions`
|
|
245
|
+
its own buttons, such as its refresh, in `PageActions` anywhere in its
|
|
246
|
+
template: they show in the page bar (or the page header) before the App's
|
|
247
|
+
`#actions` and leave with the page. Outside an `AppShell`, `PageActions`
|
|
248
|
+
renders nothing.
|
|
222
249
|
|
|
223
250
|
```vue
|
|
224
251
|
<!-- PackagesPage.vue -->
|
|
@@ -226,7 +253,8 @@ with the page. Outside an `AppShell`, `PageActions` renders nothing.
|
|
|
226
253
|
```
|
|
227
254
|
|
|
228
255
|
A page's secondary notes take no row of their own: `PageInfo` puts them behind
|
|
229
|
-
one info button
|
|
256
|
+
one info button at the start of the page bar (on the title line with
|
|
257
|
+
`header: true`), before the App's `#meta`.
|
|
230
258
|
The button is named "Notes (2)" in the shell's language (`label` names it
|
|
231
259
|
otherwise); a click, or focus from the keyboard, opens the notes below it from
|
|
232
260
|
its start, inside the App's window, and Escape closes them. The default slot
|
|
@@ -269,16 +297,32 @@ provide the no-surface/no-horizontal-gutter behavior. Other shell spacing,
|
|
|
269
297
|
including the body bottom padding, stays unchanged.
|
|
270
298
|
|
|
271
299
|
Moving to another page starts it at the top; `keep-scroll` keeps the
|
|
272
|
-
position. The `toolbar` slot sits above the page (in `AppLayout`'s toolbar
|
|
273
|
-
and `notices`
|
|
274
|
-
scrolls with it. `activePage(current, pages)` keeps a selection that still exists and
|
|
300
|
+
position. The `toolbar` slot sits above the page (in `AppLayout`'s toolbar,
|
|
301
|
+
above the page bar) and `notices` at the top of the page, inside the same
|
|
302
|
+
padding, and scrolls with it. `activePage(current, pages)` keeps a selection that still exists and
|
|
275
303
|
otherwise picks the first page the sidebar shows. A router drives the shell
|
|
276
304
|
through `v-model`:
|
|
277
305
|
`:model-value="route.name" @update:model-value="name => router.push({name})"`.
|
|
278
306
|
|
|
307
|
+
### Moving an existing App to these defaults
|
|
308
|
+
|
|
309
|
+
- A page that should keep its visible title sets `header: true`. Pages carry no
|
|
310
|
+
subtitle: drop `description` from the page entries (it is no longer shown).
|
|
311
|
+
- An App that set `header: false` only to hide the title, and added its own
|
|
312
|
+
hidden `h1`, can drop both: the shell now names the page itself. Buttons it
|
|
313
|
+
moved into its own `#toolbar` `AppToolbar` can go back to `#actions`.
|
|
314
|
+
- Remove CSS that passed the height to a settings page, such as
|
|
315
|
+
`.integration-app > [data-page][data-fill] { flex: 1 1 0%; min-height: 0 }`
|
|
316
|
+
and the same rule for its child, and CSS that removed the space under a
|
|
317
|
+
settings footer (`.app-page-content:has(...) { padding-bottom: 0 }`).
|
|
318
|
+
- Remove `fill: true` from pages whose content is a `SettingsPage` or a
|
|
319
|
+
`SectionTabs fill`; keep it for pages that scroll their own content, such as
|
|
320
|
+
a split view or a list paged by height. A page that must keep scrolling as a
|
|
321
|
+
whole while it shows a `SettingsPage` sets `fill: false`.
|
|
322
|
+
|
|
279
323
|
Render the shell immediately, with [`EntryGuard`](../docs/app-entry.md) checking
|
|
280
324
|
session/admin access in the background, and pass `loading` while startup reads
|
|
281
|
-
run. The sidebar and
|
|
325
|
+
run. The sidebar and the page bar show immediately; the page body shows
|
|
282
326
|
its loading area and the actions slot waits. With the current CLI/SDK, use
|
|
283
327
|
`ctx.batch` for independent startup reads so they share one HTTP request and
|
|
284
328
|
App process:
|
|
@@ -16,13 +16,20 @@ export interface AppShellPage {
|
|
|
16
16
|
hidden?: boolean;
|
|
17
17
|
/** 'bottom': listed after every other page, in a group of its own (an App's settings). */
|
|
18
18
|
placement?: 'bottom';
|
|
19
|
-
/**
|
|
19
|
+
/** @deprecated Not shown: a page has no subtitle. */
|
|
20
20
|
description?: string;
|
|
21
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Omitted: no visible title (the sidebar names the page) and a visually
|
|
23
|
+
* hidden h1; the page's actions and notes sit in a bar above it.
|
|
24
|
+
* true: the shell's PageHeader with the title, its notes and actions.
|
|
25
|
+
* false: the page draws its own header; the shell adds no title.
|
|
26
|
+
*/
|
|
22
27
|
header?: boolean;
|
|
23
28
|
/**
|
|
24
|
-
* The body fills the height under the
|
|
29
|
+
* The body fills the height under the notices and the page does not scroll:
|
|
25
30
|
* the content scrolls itself (a treemap, a table paged by height, a log).
|
|
31
|
+
* Omitted: a page that shows a SettingsPage or a SectionTabs fill fills,
|
|
32
|
+
* any other page scrolls as a whole. false: the page always scrolls.
|
|
26
33
|
*/
|
|
27
34
|
fill?: boolean;
|
|
28
35
|
}
|
|
@@ -2,3 +2,18 @@
|
|
|
2
2
|
export declare function hasContent(nodes: unknown): boolean;
|
|
3
3
|
/** Whether an element shows anything: an element, or text that is not blank, among its children. */
|
|
4
4
|
export declare function rendersContent(element: Node): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Whether an element shows anything besides the shell's own empty containers
|
|
7
|
+
* (matching `own`): those count only through what they hold.
|
|
8
|
+
*/
|
|
9
|
+
export declare function rendersOwnContent(element: Element, own: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* What the page's content shows: a SettingsPage or a SectionTabs fill (the
|
|
12
|
+
* page fills the height) and a settings footer (the page drops the space
|
|
13
|
+
* under it, so the footer is the window's bottom edge). Hidden pages, by
|
|
14
|
+
* v-show or `hidden`, do not count.
|
|
15
|
+
*/
|
|
16
|
+
export declare function fillState(root: Element): {
|
|
17
|
+
fill: boolean;
|
|
18
|
+
footer: boolean;
|
|
19
|
+
};
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.executor-upgrade[data-v-aa18745e]{padding:var(--ui-space-3,12px);border-radius:var(--ui-radius-md);background:var(--ui-surface-subtle);font-size:var(--ui-font-size,13px);line-height:var(--ui-line-height,20px);color:var(--ui-text);overflow-wrap:anywhere}.executor-upgrade p[data-v-aa18745e]{margin:0}.executor-upgrade p+p[data-v-aa18745e]{margin-top:var(--ui-space-1,4px)}.executor-upgrade .executor-upgrade-title[data-v-aa18745e]{font-weight:600;margin-bottom:var(--ui-space-2,8px)}.executor-upgrade dl[data-v-aa18745e]{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--ui-space-1,4px);margin:var(--ui-space-2,8px) 0 0}.executor-upgrade dt[data-v-aa18745e]{font-weight:600}.executor-upgrade dd[data-v-aa18745e]{margin:0 0 var(--ui-space-1,4px)}.executor-upgrade code[data-v-aa18745e]{font-size:var(--ui-font-size-sm,12px)}.executor-upgrade details[data-v-aa18745e]{margin-top:var(--ui-space-2,8px)}.executor-upgrade summary[data-v-aa18745e]{cursor:pointer;color:var(--ui-primary)}.executor-upgrade ul[data-v-aa18745e]{padding-left:var(--ui-space-4,16px);margin:var(--ui-space-2,8px) 0 0}.executor-upgrade pre[data-v-aa18745e]{white-space:pre-wrap;overflow-wrap:anywhere;margin:var(--ui-space-1,4px) 0}.executor-consent[data-v-1ad5cefb]{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:var(--ui-space-3,12px);max-width:640px;overflow-wrap:anywhere}.executor-consent-icon[data-v-1ad5cefb]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--ui-primary-soft);color:var(--ui-primary)}.executor-consent-body[data-v-1ad5cefb]{display:flex;flex-direction:column;gap:var(--ui-space-4,16px);min-width:0}.executor-consent-title[data-v-1ad5cefb]{margin:6px 0 var(--ui-space-1,4px);font-size:var(--ui-font-size-lg,14px);font-weight:600;line-height:var(--ui-line-height,20px);color:var(--ui-text)}.executor-consent-lead[data-v-1ad5cefb]{margin:0;font-size:var(--ui-font-size,13px);line-height:var(--ui-line-height,20px);color:var(--ui-text);text-wrap:pretty}.executor-consent-ask[data-v-1ad5cefb]{margin-top:var(--ui-space-2,8px)}.executor-consent-page[data-v-1ad5cefb]{grid-template-columns:minmax(0,1fr);justify-items:center;row-gap:var(--ui-space-3,12px);box-sizing:border-box;width:100%;max-width:480px;margin:var(--ui-space-6,24px) auto;padding:var(--ui-space-6,24px);border:1px solid var(--ui-border-subtle);border-radius:var(--ui-radius-lg);background:var(--ui-surface);box-shadow:var(--ui-shadow-card)}.executor-consent-page .executor-consent-icon[data-v-1ad5cefb]{width:48px;height:48px}.executor-consent-page .executor-consent-body[data-v-1ad5cefb]{width:100%;gap:var(--ui-space-5,20px)}.executor-consent-page .executor-consent-head[data-v-1ad5cefb]{text-align:center}.executor-consent-page .executor-consent-title[data-v-1ad5cefb]{margin-top:0;font-size:var(--ui-font-size-title,16px);line-height:24px}.executor-consent-more summary[data-v-1ad5cefb]{display:inline-flex;align-items:center;gap:var(--ui-space-1,4px);cursor:pointer;list-style:none;font-size:var(--ui-font-size,13px);line-height:var(--ui-line-height,20px);color:var(--ui-primary);border-radius:var(--ui-radius-sm)}.executor-consent-more summary[data-v-1ad5cefb]::-webkit-details-marker{display:none}.executor-consent-more summary[data-v-1ad5cefb]:focus-visible{outline:none;box-shadow:var(--ui-shadow-focus)}.executor-consent-chevron[data-v-1ad5cefb]{transition:transform .15s}.executor-consent-more[open] .executor-consent-chevron[data-v-1ad5cefb]{transform:rotate(90deg)}.executor-consent-more ul[data-v-1ad5cefb]{margin:var(--ui-space-2,8px) 0 0;padding:var(--ui-space-3,12px) var(--ui-space-4,16px) var(--ui-space-3,12px) 32px;border-radius:var(--ui-radius-md);background:var(--ui-surface-subtle);list-style:disc;font-size:var(--ui-font-size,13px);line-height:var(--ui-line-height,20px);color:var(--ui-text)}.executor-consent-more li+li[data-v-1ad5cefb]{margin-top:var(--ui-space-1,4px)}@media(prefers-reduced-motion:reduce){.executor-consent-chevron[data-v-1ad5cefb]{transition:none}}.executor-summary[data-v-8d081934]:not(:last-child){margin-bottom:var(--ui-space-3,12px)}.executor-form[data-v-8d081934]{max-width:28rem}.executor-summary+.executor-form[data-v-8d081934],.ui-callout+div>.executor-form[data-v-8d081934]{margin-top:var(--ui-space-4,16px)}.executor-reason[data-v-8d081934]{display:block;margin-top:var(--ui-space-1,4px);font-size:var(--ui-font-size-sm,12px)}.executor-alert[data-v-8d081934]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--ui-space-2,8px)}.executor-notice-body[data-v-34d04da4],.ui-update-notice-body[data-v-8141bcd1]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--ui-space-2, 8px)}.app-shell[data-v-8ae55df9]{height:100%;min-width:0}.app-shell[data-v-8ae55df9]:not([data-ui-navigation=top]){grid-template-rows:minmax(0,1fr)}.app-shell-portal-brand[data-v-8ae55df9] [data-ui-sidebar-brand]{display:none}.app-shell[data-v-8ae55df9]>div{min-height:0}.app-shell[data-v-8ae55df9]>div>main{display:flex;flex-direction:column;overflow:hidden}.app-page[data-v-8ae55df9]{flex:1 1 auto;min-height:0;overflow-y:auto}.app-denied[data-v-8ae55df9]{height:100%;overflow-y:auto}.app-shell-account[data-v-8ae55df9]{display:flex;flex:1 1 auto;align-items:center;gap:var(--ui-space-1, 4px);min-width:0}.app-shell[data-ui-sidebar-collapsed] .app-shell-account[data-v-8ae55df9]{flex:0 0 auto;flex-direction:column}.app-page-actions[data-v-8ae55df9],.app-page-info[data-v-8ae55df9]{display:contents}.app-shell-fill[data-v-8ae55df9]{max-height:100dvh}.app-page-fill[data-v-8ae55df9]{display:flex;flex-direction:column;overflow:hidden}.app-page-fill[data-v-8ae55df9]>[data-page-content-body]{display:flex;flex:1 1 auto;flex-direction:column;width:100%;min-height:0}.app-page-fill .app-notices[data-v-8ae55df9]{flex:0 0 auto}.app-page-fill .app-page-content[data-v-8ae55df9]{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;min-height:0}.app-page-fill .app-page-content[data-v-8ae55df9]>*{flex:none;min-width:0}.app-page-fill .app-page-content[data-v-8ae55df9]>:not(:empty,[hidden]){flex:1 1 0%;min-height:0}.app-page-fill .app-page-content[data-v-8ae55df9]>:not(:empty,[hidden])~*{flex:none}.app-notices[data-v-8ae55df9]{display:flex;flex-direction:column;gap:var(--ui-space-2, 8px)}.app-notices[hidden][data-v-8ae55df9]{display:none}.app-page-content[data-v-8ae55df9]{padding-bottom:var(--ui-space-6, 24px)}.app-page-fill .app-page-content[data-v-8ae55df9]:has(>[data-ui-settings-page]>[data-ui-settings-page-footer]){padding-bottom:0}.page-info-notes[data-v-93861654]{display:grid;gap:6px;margin:0;padding-left:14px;list-style:disc;white-space:pre-line}.file-browser[data-v-ed3b642c]{min-width:0;color:var(--ui-text)}.file-toolbar[data-v-ed3b642c]{display:flex;flex-wrap:wrap;gap:var(--ui-space-2, 8px);margin-block:var(--ui-space-3, 12px)}.file-location[data-v-ed3b642c]{flex-wrap:nowrap;align-items:center;gap:var(--ui-space-1, 4px)}.file-path[data-v-ed3b642c]{flex:1;min-width:0;margin-inline-start:var(--ui-space-2, 8px)}.file-columns[data-v-ed3b642c]{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,3fr);gap:var(--ui-space-3, 12px);height:clamp(240px,60vh,400px)}.file-tree[data-v-ed3b642c]{position:relative;min-width:0;overflow-x:hidden;overflow-y:auto;border-inline-end:1px solid var(--ui-border)}.file-content[data-v-ed3b642c]{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.file-empty[data-v-ed3b642c]{display:flex;flex-direction:column;align-items:center;gap:var(--ui-space-2, 8px);padding-block:var(--ui-space-6, 24px);color:var(--ui-text-muted)}.file-name[data-v-ed3b642c]{display:flex;align-items:center;gap:var(--ui-space-2, 8px);min-width:0}.file-name[data-v-ed3b642c]>:first-child{flex:none}.file-name-text[data-v-ed3b642c]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-bytes[data-v-ed3b642c]{font-variant-numeric:tabular-nums}.file-selection[data-v-ed3b642c]{overflow-wrap:anywhere}.file-refreshing[data-v-ed3b642c]{animation:file-refresh-ed3b642c 1s linear infinite}@keyframes file-refresh-ed3b642c{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.file-refreshing[data-v-ed3b642c]{animation:none}}.file-browser-fill[data-v-ed3b642c]{display:flex;flex-direction:column;height:100%;min-height:0}.file-browser-fill>.file-location[data-v-ed3b642c]{flex:none;margin-block:0 var(--ui-space-2, 8px)}.file-browser-fill>.file-columns[data-v-ed3b642c]{flex:1 1 0;min-height:200px;height:auto}@media(max-width:600px){.file-columns[data-v-ed3b642c]{grid-template-columns:minmax(0,1fr);height:auto}.file-content[data-v-ed3b642c] th:nth-child(2),.file-content[data-v-ed3b642c] td:nth-child(2),.file-content[data-v-ed3b642c] th:nth-child(3),.file-content[data-v-ed3b642c] td:nth-child(3){display:none}.file-tree[data-v-ed3b642c]{height:clamp(96px,25vh,180px);border-inline-end:0;border-bottom:1px solid var(--ui-border)}.file-content[data-v-ed3b642c]{height:clamp(200px,45vh,360px)}.file-browser-fill>.file-columns[data-v-ed3b642c]{grid-template-rows:minmax(72px,1fr) minmax(0,2fr)}.file-browser-fill .file-tree[data-v-ed3b642c],.file-browser-fill .file-content[data-v-ed3b642c]{height:auto;min-height:0}}.nas-picker-body[data-v-2665f3c2]{display:flex;flex-direction:column;gap:var(--ui-space-3, 12px);height:100%;min-height:0}.nas-picker-body>.save-message[data-v-2665f3c2]{flex:none}.nas-picker-content[data-v-2665f3c2]{flex:1 1 0;min-width:0;min-height:0}.save-message[data-v-2665f3c2]{--ui-text-secondary:var(--ui-text)}.nas-picker-status[data-v-2665f3c2]{display:flex;flex:1 1 0;align-items:center;gap:var(--ui-space-1, 4px);min-width:0;margin-inline-end:auto;color:var(--ui-text-secondary)}.nas-picker-consent[data-v-2665f3c2]{display:none!important}.nas-picker-selection[data-v-2665f3c2]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-actions[data-v-93a61d74]{display:flex;flex-wrap:wrap;gap:var(--ui-space-2, 8px)}.files-path[data-v-93a61d74]{display:flex;min-width:0}.sf-state[data-v-3cf3ef1b]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-space-2,8px) var(--ui-space-3,12px);min-width:0;overflow-wrap:anywhere}.sf-notices[data-v-3cf3ef1b]{display:grid;gap:var(--ui-space-2,8px);min-width:0;max-width:100%;overflow-wrap:anywhere}.shared-folder-permission-issues[data-v-360e834c]{display:grid;gap:var(--ui-space-3,12px);padding-inline-start:var(--ui-space-5,20px);overflow-wrap:anywhere}.identity-login[data-v-06b2efdb]{max-width:36rem;margin-inline:auto;padding:var(--ui-space-4, 16px);overflow:auto;max-height:100%;color:var(--ui-text);font-family:var(--ui-font-sans);font-size:var(--ui-font-size, 13px);line-height:var(--ui-line-height, 20px)}.identity-login p[data-v-06b2efdb]{margin-block:var(--ui-space-4, 16px);overflow-wrap:anywhere}.bg-cards[data-v-85ff7ec5]{display:grid;gap:var(--ui-space-3,12px);min-width:0;overflow-wrap:anywhere}.bg-card-body[data-v-85ff7ec5]{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-space-2,8px);min-width:0}.bg-card-body>span[data-v-85ff7ec5]{min-width:0;max-width:100%}.bg-card-body>.integration-actions[data-v-85ff7ec5]{margin-block:0}.integration-actions[data-v-85ff7ec5]{display:flex;flex-wrap:wrap;gap:var(--ui-space-2,8px);margin-block:var(--ui-space-3,12px)}.bg-schedules[data-v-85ff7ec5]{margin-block-start:var(--ui-space-6,24px);min-width:0;overflow-wrap:anywhere}.bg-schedules p[data-v-85ff7ec5]{min-width:0;max-width:100%}.bg-schedule-form[data-v-85ff7ec5]{margin-block:var(--ui-space-4,16px)}.bg-path[data-v-85ff7ec5]{display:flex;align-items:center;gap:var(--ui-space-2,8px);min-width:0;max-width:100%}.executor-pages[data-v-13cbe4c2]{display:contents}.executor-pages.executor-preloading[data-v-13cbe4c2]{display:block;position:fixed;inset:0;visibility:hidden;overflow:hidden;pointer-events:none}.executor-approval[data-v-13cbe4c2]{padding:var(--ui-space-6, 24px)}.executor-brand[data-v-13cbe4c2]{display:flex;align-items:center;gap:var(--ui-space-2, 8px);margin-bottom:var(--ui-space-4, 16px);font-size:var(--ui-font-size-title, 16px);font-weight:600;color:var(--ui-text)}.executor-brand img[data-v-13cbe4c2]{width:24px;height:24px}.delegate-panel[data-v-4f648674]{min-width:0;overflow-wrap:anywhere}.delegate-group[data-v-4f648674]{margin-top:var(--ui-space-6,24px)}.destination[data-v-4f648674]{min-width:0;max-width:100%;overflow-wrap:anywhere}.destination[data-v-4f648674]{display:flex;align-items:center;gap:var(--ui-space-2,8px)}.background-save-settings[data-v-0b2bb832]{min-width:0;overflow-wrap:anywhere}.save-help[data-v-0b2bb832]{margin:0 0 var(--ui-space-2,8px);max-width:72ch;color:var(--ui-text-secondary)}.save-form[data-v-0b2bb832]{max-width:28rem}.save-actions[data-v-0b2bb832],.save-alert[data-v-0b2bb832]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-space-2,8px)}.save-alert[data-v-0b2bb832]{justify-content:space-between}.save-actions[data-v-0b2bb832] .ui-path-display{flex:1;min-width:0}.save-none[data-v-0b2bb832]{flex:1;color:var(--ui-text-secondary)}.save-reason[data-v-0b2bb832]{display:block;margin-top:var(--ui-space-1,4px);font-size:var(--ui-font-size-sm,12px)}.background-save-panel[data-v-a03004f1]{min-width:0;overflow-wrap:anywhere}.save-help[data-v-a03004f1]{margin:0 0 var(--ui-space-3,12px);max-width:72ch;color:var(--ui-text-secondary)}.save-actions[data-v-a03004f1]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-space-2,8px);margin-bottom:var(--ui-space-3,12px)}.authorization-view[data-v-e6c8e4e1]{display:flex;flex-direction:column;gap:var(--ui-space-3,12px)}.authorization-body[data-v-e6c8e4e1]{margin:0;font-size:var(--ui-font-size,13px);line-height:var(--ui-line-height,20px);color:var(--ui-text);text-wrap:pretty}.authorization-status[data-v-e6c8e4e1],.authorization-failed[data-v-e6c8e4e1]{color:var(--ui-text)}.authorization-content[data-v-e6c8e4e1]{display:flex;flex-direction:column;height:100%;min-height:0}.authorization-content[data-v-e6c8e4e1] .app-shell{flex:1;min-height:0;height:auto}.authorization-setting[data-v-8452013e]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-space-3,12px)}.authorization-revoke-body[data-v-8452013e]{margin:0;font-size:var(--ui-font-size,13px);line-height:var(--ui-line-height,20px);color:var(--ui-text)}.authorization-state[data-v-8452013e]{display:inline-flex;align-items:center;gap:6px;color:var(--ui-text)}
|
|
1
|
+
.executor-upgrade[data-v-aa18745e]{padding:var(--ui-space-3,12px);border-radius:var(--ui-radius-md);background:var(--ui-surface-subtle);font-size:var(--ui-font-size,13px);line-height:var(--ui-line-height,20px);color:var(--ui-text);overflow-wrap:anywhere}.executor-upgrade p[data-v-aa18745e]{margin:0}.executor-upgrade p+p[data-v-aa18745e]{margin-top:var(--ui-space-1,4px)}.executor-upgrade .executor-upgrade-title[data-v-aa18745e]{font-weight:600;margin-bottom:var(--ui-space-2,8px)}.executor-upgrade dl[data-v-aa18745e]{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--ui-space-1,4px);margin:var(--ui-space-2,8px) 0 0}.executor-upgrade dt[data-v-aa18745e]{font-weight:600}.executor-upgrade dd[data-v-aa18745e]{margin:0 0 var(--ui-space-1,4px)}.executor-upgrade code[data-v-aa18745e]{font-size:var(--ui-font-size-sm,12px)}.executor-upgrade details[data-v-aa18745e]{margin-top:var(--ui-space-2,8px)}.executor-upgrade summary[data-v-aa18745e]{cursor:pointer;color:var(--ui-primary)}.executor-upgrade ul[data-v-aa18745e]{padding-left:var(--ui-space-4,16px);margin:var(--ui-space-2,8px) 0 0}.executor-upgrade pre[data-v-aa18745e]{white-space:pre-wrap;overflow-wrap:anywhere;margin:var(--ui-space-1,4px) 0}.executor-consent[data-v-1ad5cefb]{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:var(--ui-space-3,12px);max-width:640px;overflow-wrap:anywhere}.executor-consent-icon[data-v-1ad5cefb]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--ui-primary-soft);color:var(--ui-primary)}.executor-consent-body[data-v-1ad5cefb]{display:flex;flex-direction:column;gap:var(--ui-space-4,16px);min-width:0}.executor-consent-title[data-v-1ad5cefb]{margin:6px 0 var(--ui-space-1,4px);font-size:var(--ui-font-size-lg,14px);font-weight:600;line-height:var(--ui-line-height,20px);color:var(--ui-text)}.executor-consent-lead[data-v-1ad5cefb]{margin:0;font-size:var(--ui-font-size,13px);line-height:var(--ui-line-height,20px);color:var(--ui-text);text-wrap:pretty}.executor-consent-ask[data-v-1ad5cefb]{margin-top:var(--ui-space-2,8px)}.executor-consent-page[data-v-1ad5cefb]{grid-template-columns:minmax(0,1fr);justify-items:center;row-gap:var(--ui-space-3,12px);box-sizing:border-box;width:100%;max-width:480px;margin:var(--ui-space-6,24px) auto;padding:var(--ui-space-6,24px);border:1px solid var(--ui-border-subtle);border-radius:var(--ui-radius-lg);background:var(--ui-surface);box-shadow:var(--ui-shadow-card)}.executor-consent-page .executor-consent-icon[data-v-1ad5cefb]{width:48px;height:48px}.executor-consent-page .executor-consent-body[data-v-1ad5cefb]{width:100%;gap:var(--ui-space-5,20px)}.executor-consent-page .executor-consent-head[data-v-1ad5cefb]{text-align:center}.executor-consent-page .executor-consent-title[data-v-1ad5cefb]{margin-top:0;font-size:var(--ui-font-size-title,16px);line-height:24px}.executor-consent-more summary[data-v-1ad5cefb]{display:inline-flex;align-items:center;gap:var(--ui-space-1,4px);cursor:pointer;list-style:none;font-size:var(--ui-font-size,13px);line-height:var(--ui-line-height,20px);color:var(--ui-primary);border-radius:var(--ui-radius-sm)}.executor-consent-more summary[data-v-1ad5cefb]::-webkit-details-marker{display:none}.executor-consent-more summary[data-v-1ad5cefb]:focus-visible{outline:none;box-shadow:var(--ui-shadow-focus)}.executor-consent-chevron[data-v-1ad5cefb]{transition:transform .15s}.executor-consent-more[open] .executor-consent-chevron[data-v-1ad5cefb]{transform:rotate(90deg)}.executor-consent-more ul[data-v-1ad5cefb]{margin:var(--ui-space-2,8px) 0 0;padding:var(--ui-space-3,12px) var(--ui-space-4,16px) var(--ui-space-3,12px) 32px;border-radius:var(--ui-radius-md);background:var(--ui-surface-subtle);list-style:disc;font-size:var(--ui-font-size,13px);line-height:var(--ui-line-height,20px);color:var(--ui-text)}.executor-consent-more li+li[data-v-1ad5cefb]{margin-top:var(--ui-space-1,4px)}@media(prefers-reduced-motion:reduce){.executor-consent-chevron[data-v-1ad5cefb]{transition:none}}.executor-summary[data-v-8d081934]:not(:last-child){margin-bottom:var(--ui-space-3,12px)}.executor-form[data-v-8d081934]{max-width:28rem}.executor-summary+.executor-form[data-v-8d081934],.ui-callout+div>.executor-form[data-v-8d081934]{margin-top:var(--ui-space-4,16px)}.executor-reason[data-v-8d081934]{display:block;margin-top:var(--ui-space-1,4px);font-size:var(--ui-font-size-sm,12px)}.executor-alert[data-v-8d081934]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--ui-space-2,8px)}.executor-notice-body[data-v-34d04da4],.ui-update-notice-body[data-v-8141bcd1]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--ui-space-2, 8px)}.app-shell[data-v-7531e2e6]{height:100%;min-width:0}.app-shell[data-v-7531e2e6]:not([data-ui-navigation=top]){grid-template-rows:minmax(0,1fr)}.app-shell-portal-brand[data-v-7531e2e6] [data-ui-sidebar-brand]{display:none}.app-shell[data-v-7531e2e6]>div{min-height:0}.app-shell[data-v-7531e2e6]>div>main{display:flex;flex-direction:column;overflow:hidden}.app-page[data-v-7531e2e6]{flex:1 1 auto;min-height:0;overflow-y:auto}.app-denied[data-v-7531e2e6]{height:100%;overflow-y:auto}.app-shell-account[data-v-7531e2e6]{display:flex;flex:1 1 auto;align-items:center;gap:var(--ui-space-1, 4px);min-width:0}.app-shell[data-ui-sidebar-collapsed] .app-shell-account[data-v-7531e2e6]{flex:0 0 auto;flex-direction:column}.app-page-actions[data-v-7531e2e6],.app-page-info[data-v-7531e2e6]{display:contents}.app-page-bar[hidden][data-v-7531e2e6]{display:none}.app-page-meta[data-v-7531e2e6],.app-page-bar-actions[data-v-7531e2e6]{display:flex;align-items:center;gap:var(--ui-space-2, 8px);min-width:0}.app-page-bar-actions[data-v-7531e2e6]{flex-wrap:wrap;justify-content:flex-end}.app-page-title[data-v-7531e2e6]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.app-page-untitled[data-v-7531e2e6]{padding-top:var(--ui-page-padding-y, 16px)}.app-shell-fill[data-v-7531e2e6]{max-height:100dvh}.app-page-fill[data-v-7531e2e6]{display:flex;flex-direction:column;overflow:hidden}.app-page-fill[data-v-7531e2e6]>[data-page-content-body]{display:flex;flex:1 1 auto;flex-direction:column;width:100%;min-height:0}.app-page-fill .app-notices[data-v-7531e2e6]{flex:0 0 auto}.app-page-fill .app-page-content[data-v-7531e2e6]{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;min-height:0}.app-page-fill .app-page-content[data-v-7531e2e6]>*{flex:none;min-width:0}.app-page-fill .app-page-content[data-v-7531e2e6]>:not(:empty,[hidden]){flex:1 1 0%;min-height:0}.app-page-fill .app-page-content[data-v-7531e2e6]>:not(:empty,[hidden])~*{flex:none}.app-notices[data-v-7531e2e6]{display:flex;flex-direction:column;gap:var(--ui-space-2, 8px)}.app-notices[hidden][data-v-7531e2e6]{display:none}.app-page-content[data-v-7531e2e6]{padding-bottom:var(--ui-space-6, 24px)}.app-page-flush .app-page-content[data-v-7531e2e6]{padding-bottom:0}.app-page-fill .app-page-content[data-v-7531e2e6] :not([hidden],[data-ui-section-tabs-fill],[data-ui-settings-page]):has([data-ui-section-tabs-fill],[data-ui-settings-page]){display:flex;flex:1 1 0%;flex-direction:column;min-width:0;min-height:0}.app-page-fill .app-page-content[data-v-7531e2e6]:has([data-ui-section-tabs-fill],[data-ui-settings-page])>:not([data-ui-section-tabs-fill],[data-ui-settings-page]):not(:has([data-ui-section-tabs-fill],[data-ui-settings-page])){flex:none}.app-page-fill .app-page-content[data-v-7531e2e6] .ui-section-tabs-fill>.ui-tab-panel:not(:has(>[data-ui-settings-page])){overflow-y:auto;overscroll-behavior:contain}.page-info-notes[data-v-93861654]{display:grid;gap:6px;margin:0;padding-left:14px;list-style:disc;white-space:pre-line}.file-browser[data-v-ed3b642c]{min-width:0;color:var(--ui-text)}.file-toolbar[data-v-ed3b642c]{display:flex;flex-wrap:wrap;gap:var(--ui-space-2, 8px);margin-block:var(--ui-space-3, 12px)}.file-location[data-v-ed3b642c]{flex-wrap:nowrap;align-items:center;gap:var(--ui-space-1, 4px)}.file-path[data-v-ed3b642c]{flex:1;min-width:0;margin-inline-start:var(--ui-space-2, 8px)}.file-columns[data-v-ed3b642c]{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,3fr);gap:var(--ui-space-3, 12px);height:clamp(240px,60vh,400px)}.file-tree[data-v-ed3b642c]{position:relative;min-width:0;overflow-x:hidden;overflow-y:auto;border-inline-end:1px solid var(--ui-border)}.file-content[data-v-ed3b642c]{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.file-empty[data-v-ed3b642c]{display:flex;flex-direction:column;align-items:center;gap:var(--ui-space-2, 8px);padding-block:var(--ui-space-6, 24px);color:var(--ui-text-muted)}.file-name[data-v-ed3b642c]{display:flex;align-items:center;gap:var(--ui-space-2, 8px);min-width:0}.file-name[data-v-ed3b642c]>:first-child{flex:none}.file-name-text[data-v-ed3b642c]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-bytes[data-v-ed3b642c]{font-variant-numeric:tabular-nums}.file-selection[data-v-ed3b642c]{overflow-wrap:anywhere}.file-refreshing[data-v-ed3b642c]{animation:file-refresh-ed3b642c 1s linear infinite}@keyframes file-refresh-ed3b642c{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.file-refreshing[data-v-ed3b642c]{animation:none}}.file-browser-fill[data-v-ed3b642c]{display:flex;flex-direction:column;height:100%;min-height:0}.file-browser-fill>.file-location[data-v-ed3b642c]{flex:none;margin-block:0 var(--ui-space-2, 8px)}.file-browser-fill>.file-columns[data-v-ed3b642c]{flex:1 1 0;min-height:200px;height:auto}@media(max-width:600px){.file-columns[data-v-ed3b642c]{grid-template-columns:minmax(0,1fr);height:auto}.file-content[data-v-ed3b642c] th:nth-child(2),.file-content[data-v-ed3b642c] td:nth-child(2),.file-content[data-v-ed3b642c] th:nth-child(3),.file-content[data-v-ed3b642c] td:nth-child(3){display:none}.file-tree[data-v-ed3b642c]{height:clamp(96px,25vh,180px);border-inline-end:0;border-bottom:1px solid var(--ui-border)}.file-content[data-v-ed3b642c]{height:clamp(200px,45vh,360px)}.file-browser-fill>.file-columns[data-v-ed3b642c]{grid-template-rows:minmax(72px,1fr) minmax(0,2fr)}.file-browser-fill .file-tree[data-v-ed3b642c],.file-browser-fill .file-content[data-v-ed3b642c]{height:auto;min-height:0}}.nas-picker-body[data-v-2665f3c2]{display:flex;flex-direction:column;gap:var(--ui-space-3, 12px);height:100%;min-height:0}.nas-picker-body>.save-message[data-v-2665f3c2]{flex:none}.nas-picker-content[data-v-2665f3c2]{flex:1 1 0;min-width:0;min-height:0}.save-message[data-v-2665f3c2]{--ui-text-secondary:var(--ui-text)}.nas-picker-status[data-v-2665f3c2]{display:flex;flex:1 1 0;align-items:center;gap:var(--ui-space-1, 4px);min-width:0;margin-inline-end:auto;color:var(--ui-text-secondary)}.nas-picker-consent[data-v-2665f3c2]{display:none!important}.nas-picker-selection[data-v-2665f3c2]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-actions[data-v-93a61d74]{display:flex;flex-wrap:wrap;gap:var(--ui-space-2, 8px)}.files-path[data-v-93a61d74]{display:flex;min-width:0}.sf-state[data-v-3cf3ef1b]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-space-2,8px) var(--ui-space-3,12px);min-width:0;overflow-wrap:anywhere}.sf-notices[data-v-3cf3ef1b]{display:grid;gap:var(--ui-space-2,8px);min-width:0;max-width:100%;overflow-wrap:anywhere}.shared-folder-permission-issues[data-v-360e834c]{display:grid;gap:var(--ui-space-3,12px);padding-inline-start:var(--ui-space-5,20px);overflow-wrap:anywhere}.identity-login[data-v-06b2efdb]{max-width:36rem;margin-inline:auto;padding:var(--ui-space-4, 16px);overflow:auto;max-height:100%;color:var(--ui-text);font-family:var(--ui-font-sans);font-size:var(--ui-font-size, 13px);line-height:var(--ui-line-height, 20px)}.identity-login p[data-v-06b2efdb]{margin-block:var(--ui-space-4, 16px);overflow-wrap:anywhere}.bg-cards[data-v-85ff7ec5]{display:grid;gap:var(--ui-space-3,12px);min-width:0;overflow-wrap:anywhere}.bg-card-body[data-v-85ff7ec5]{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-space-2,8px);min-width:0}.bg-card-body>span[data-v-85ff7ec5]{min-width:0;max-width:100%}.bg-card-body>.integration-actions[data-v-85ff7ec5]{margin-block:0}.integration-actions[data-v-85ff7ec5]{display:flex;flex-wrap:wrap;gap:var(--ui-space-2,8px);margin-block:var(--ui-space-3,12px)}.bg-schedules[data-v-85ff7ec5]{margin-block-start:var(--ui-space-6,24px);min-width:0;overflow-wrap:anywhere}.bg-schedules p[data-v-85ff7ec5]{min-width:0;max-width:100%}.bg-schedule-form[data-v-85ff7ec5]{margin-block:var(--ui-space-4,16px)}.bg-path[data-v-85ff7ec5]{display:flex;align-items:center;gap:var(--ui-space-2,8px);min-width:0;max-width:100%}.executor-pages[data-v-13cbe4c2]{display:contents}.executor-pages.executor-preloading[data-v-13cbe4c2]{display:block;position:fixed;inset:0;visibility:hidden;overflow:hidden;pointer-events:none}.executor-approval[data-v-13cbe4c2]{padding:var(--ui-space-6, 24px)}.executor-brand[data-v-13cbe4c2]{display:flex;align-items:center;gap:var(--ui-space-2, 8px);margin-bottom:var(--ui-space-4, 16px);font-size:var(--ui-font-size-title, 16px);font-weight:600;color:var(--ui-text)}.executor-brand img[data-v-13cbe4c2]{width:24px;height:24px}.delegate-panel[data-v-4f648674]{min-width:0;overflow-wrap:anywhere}.delegate-group[data-v-4f648674]{margin-top:var(--ui-space-6,24px)}.destination[data-v-4f648674]{min-width:0;max-width:100%;overflow-wrap:anywhere}.destination[data-v-4f648674]{display:flex;align-items:center;gap:var(--ui-space-2,8px)}.background-save-settings[data-v-0b2bb832]{min-width:0;overflow-wrap:anywhere}.save-help[data-v-0b2bb832]{margin:0 0 var(--ui-space-2,8px);max-width:72ch;color:var(--ui-text-secondary)}.save-form[data-v-0b2bb832]{max-width:28rem}.save-actions[data-v-0b2bb832],.save-alert[data-v-0b2bb832]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-space-2,8px)}.save-alert[data-v-0b2bb832]{justify-content:space-between}.save-actions[data-v-0b2bb832] .ui-path-display{flex:1;min-width:0}.save-none[data-v-0b2bb832]{flex:1;color:var(--ui-text-secondary)}.save-reason[data-v-0b2bb832]{display:block;margin-top:var(--ui-space-1,4px);font-size:var(--ui-font-size-sm,12px)}.background-save-panel[data-v-a03004f1]{min-width:0;overflow-wrap:anywhere}.save-help[data-v-a03004f1]{margin:0 0 var(--ui-space-3,12px);max-width:72ch;color:var(--ui-text-secondary)}.save-actions[data-v-a03004f1]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-space-2,8px);margin-bottom:var(--ui-space-3,12px)}.authorization-view[data-v-e6c8e4e1]{display:flex;flex-direction:column;gap:var(--ui-space-3,12px)}.authorization-body[data-v-e6c8e4e1]{margin:0;font-size:var(--ui-font-size,13px);line-height:var(--ui-line-height,20px);color:var(--ui-text);text-wrap:pretty}.authorization-status[data-v-e6c8e4e1],.authorization-failed[data-v-e6c8e4e1]{color:var(--ui-text)}.authorization-content[data-v-e6c8e4e1]{display:flex;flex-direction:column;height:100%;min-height:0}.authorization-content[data-v-e6c8e4e1] .app-shell{flex:1;min-height:0;height:auto}.authorization-setting[data-v-8452013e]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ui-space-3,12px)}.authorization-revoke-body[data-v-8452013e]{margin:0;font-size:var(--ui-font-size,13px);line-height:var(--ui-line-height,20px);color:var(--ui-text)}.authorization-state[data-v-8452013e]{display:inline-flex;align-items:center;gap:6px;color:var(--ui-text)}
|