@k2b/cloud 0.41.0 → 0.42.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/package.json +6 -5
- package/src/_internal/bounded-json.ts +14 -2
- package/src/_internal/capabilities.ts +87 -8
- package/src/_internal/capability-reviews.ts +6 -0
- package/src/_internal/capability-timeout.ts +71 -0
- package/src/_internal/define-app.ts +145 -89
- package/src/_internal/http-drain.ts +56 -0
- package/src/_internal/registry-validation.ts +3 -0
- package/src/_internal/runtime-context.ts +1 -0
- package/src/_internal/status-preserving-ssr.ts +2 -0
- package/src/access/PermissionEditor.tsx +16 -17
- package/src/access/PrincipalPicker.tsx +45 -10
- package/src/access/messages.ts +8 -0
- package/src/access/principal-label.ts +18 -0
- package/src/access/ui.ts +1 -0
- package/src/account/EntitySearch.tsx +5 -4
- package/src/ai/action-review.ts +2 -1
- package/src/ai/app-skill-store.ts +1 -1
- package/src/ai/capabilities.ts +21 -3
- package/src/ai/capability-execution.ts +14 -12
- package/src/ai/chat/action-card.ts +7 -1
- package/src/ai/chat/action-messages.ts +14 -0
- package/src/ai/chat/action-question.browser-harness.tsx +12 -0
- package/src/ai/chat/action-question.tsx +202 -22
- package/src/ai/chat/action-text.ts +1 -1
- package/src/ai/chat-tasks.ts +2 -1
- package/src/ai/client/controller.ts +150 -32
- package/src/ai/client/transport.ts +14 -2
- package/src/ai/code-capability-routes.ts +27 -23
- package/src/ai/code-runtime-tools.ts +14 -16
- package/src/ai/code-source-tools.ts +16 -18
- package/src/ai/executor.ts +56 -21
- package/src/ai/fetch-file-tool.ts +67 -76
- package/src/ai/http.ts +1 -0
- package/src/ai/migrate.ts +13 -0
- package/src/ai/open-questions.ts +4 -8
- package/src/ai/projects.ts +1 -2
- package/src/ai/protocol.ts +2 -2
- package/src/ai/recent-resources.ts +12 -5
- package/src/ai/review-content.ts +77 -0
- package/src/ai/routes.ts +69 -31
- package/src/ai/runtime.ts +1 -0
- package/src/ai/skill-tool.ts +17 -6
- package/src/ai/skills-routes.ts +72 -27
- package/src/ai/skills.ts +139 -60
- package/src/ai/store.ts +168 -33
- package/src/ai/types.ts +10 -3
- package/src/ai/usage.ts +2 -2
- package/src/api/admin-core-settings.ts +15 -2
- package/src/api/admin-geo.ts +54 -0
- package/src/api/admin-linux-identities.ts +6 -3
- package/src/api/admin-outgoing-mail.ts +29 -15
- package/src/api/approvals-loader.ts +3 -3
- package/src/api/approvals.ts +51 -0
- package/src/api/apps.ts +4 -2
- package/src/api/capabilities.ts +258 -181
- package/src/api/capability-streams.ts +21 -13
- package/src/api/cli-plugins.ts +4 -1
- package/src/api/geo-glyphs.ts +11 -0
- package/src/api/geo.ts +128 -0
- package/src/api/help.ts +12 -4
- package/src/api/index.ts +5 -0
- package/src/api/mcp.ts +46 -38
- package/src/api/me-panel-consent.ts +8 -5
- package/src/api/search.ts +21 -14
- package/src/api/sync-ops.ts +19 -13
- package/src/api/widgets.ts +42 -18
- package/src/approvals/Approvals.tsx +5 -3
- package/src/browser/CloudResourceSearch.browser-harness.tsx +53 -1
- package/src/browser/CloudResourceSearch.tsx +3 -13
- package/src/browser/PanelLeaveNotice.tsx +18 -0
- package/src/browser/navigation-search.ts +78 -25
- package/src/browser/panel-leave.ts +69 -0
- package/src/browser/panel-messages.ts +12 -0
- package/src/browser/panel-slot.ts +173 -24
- package/src/browser/panel.ts +3 -0
- package/src/browser/resource-search-messages.ts +2 -0
- package/src/capabilities/client.ts +28 -1
- package/src/capabilities/executions.ts +22 -3
- package/src/capabilities/geo-client.ts +57 -0
- package/src/capabilities/response.ts +2 -1
- package/src/capabilities/review-storage.ts +24 -0
- package/src/capabilities/reviews.ts +17 -3
- package/src/capabilities/server.ts +36 -16
- package/src/cli/access.ts +15 -23
- package/src/cli/admin/linux.ts +13 -2
- package/src/cli/admin/outgoing-mail.ts +26 -4
- package/src/cli/capabilities.ts +19 -0
- package/src/config/env.ts +0 -6
- package/src/contracts/app-access.ts +48 -0
- package/src/contracts/app.ts +4 -1
- package/src/contracts/approvals.ts +2 -2
- package/src/contracts/avatar.ts +186 -0
- package/src/contracts/capabilities.ts +148 -54
- package/src/contracts/geo-admin.ts +127 -0
- package/src/contracts/geo-map.ts +19 -0
- package/src/contracts/geo-route.ts +168 -0
- package/src/contracts/geo.ts +248 -0
- package/src/contracts/index.ts +4 -0
- package/src/contracts/outgoing-mail.ts +17 -4
- package/src/contracts/registry.ts +2 -0
- package/src/events/app-access.ts +68 -0
- package/src/events/live-delivery.ts +128 -0
- package/src/events/live.ts +14 -130
- package/src/geo/CloudMap.tsx +95 -0
- package/src/geo/map-messages.ts +17 -0
- package/src/geo/ui.ts +1 -0
- package/src/index.ts +2 -0
- package/src/server/client-ip.ts +36 -0
- package/src/server/index.ts +3 -4
- package/src/server/middleware/app-access.ts +312 -0
- package/src/server/middleware/auth.ts +1 -1
- package/src/server/middleware/invocation.ts +11 -0
- package/src/server/middleware/rate-limit.ts +4 -4
- package/src/server/services/access.ts +13 -9
- package/src/server/services/index.ts +0 -2
- package/src/server/services/services.ts +0 -2
- package/src/services/accounts/posix.ts +21 -7
- package/src/services/allowed-network-fetch.ts +16 -10
- package/src/services/app-access-metrics.ts +24 -0
- package/src/services/app-access.ts +123 -0
- package/src/services/app-discovery.ts +27 -0
- package/src/services/approvals/content.ts +40 -0
- package/src/services/approvals/index.ts +14 -6
- package/src/services/approvals/list.ts +6 -11
- package/src/services/approvals/question.ts +11 -7
- package/src/services/downstream-budget.ts +87 -0
- package/src/services/geo/admin.ts +262 -0
- package/src/services/geo/bucket.ts +67 -0
- package/src/services/geo/cache.ts +57 -0
- package/src/services/geo/costs.ts +5 -0
- package/src/services/geo/errors.ts +41 -0
- package/src/services/geo/fixtures/README.md +17 -0
- package/src/services/geo/fixtures/along.json +355 -0
- package/src/services/geo/fixtures/autocomplete.json +218 -0
- package/src/services/geo/fixtures/geocode.json +129 -0
- package/src/services/geo/fixtures/places.json +355 -0
- package/src/services/geo/fixtures/reverse.json +61 -0
- package/src/services/geo/fixtures/routing.json +57 -0
- package/src/services/geo/geoapify-route.ts +93 -0
- package/src/services/geo/geoapify.ts +281 -0
- package/src/services/geo/ledger.ts +122 -0
- package/src/services/geo/map.ts +160 -0
- package/src/services/geo/migrate.ts +25 -0
- package/src/services/geo/polyline.ts +184 -0
- package/src/services/geo/route-chain.ts +145 -0
- package/src/services/geo/route-costs.ts +9 -0
- package/src/services/geo/route-geometry.ts +39 -0
- package/src/services/geo/route-plan.ts +172 -0
- package/src/services/geo/route-service.ts +433 -0
- package/src/services/geo/service.ts +300 -0
- package/src/services/geo/settings.ts +49 -0
- package/src/services/help/index.ts +16 -7
- package/src/services/help/types.ts +6 -1
- package/src/services/identity/invocation-actor.ts +20 -2
- package/src/services/identity/issue-invocation.ts +67 -0
- package/src/services/identity/key-ring.ts +5 -3
- package/src/services/identity/runtime-config.ts +23 -0
- package/src/services/index.ts +9 -0
- package/src/services/mandates/index.ts +40 -3
- package/src/services/network-security.ts +6 -3
- package/src/services/network-transport.ts +99 -0
- package/src/services/notifications/catalog.ts +3 -2
- package/src/services/notifications/runtime.ts +1 -0
- package/src/services/notifications/web-push-transport.ts +45 -38
- package/src/services/outgoing-mail/dispatcher.ts +6 -1
- package/src/services/outgoing-mail/index.ts +55 -1
- package/src/services/outgoing-mail/messages.ts +82 -3
- package/src/services/outgoing-mail/resolve-host.ts +2 -2
- package/src/services/outgoing-mail/retention.ts +13 -1
- package/src/services/outgoing-mail/store.ts +36 -6
- package/src/services/outgoing-mail/test-send.ts +34 -4
- package/src/services/outgoing-mail/transport.ts +1 -1
- package/src/services/pdf/gotenberg.ts +11 -38
- package/src/services/pdf/template-preview.ts +1 -1
- package/src/services/public-http.ts +28 -40
- package/src/services/settings/app.ts +4 -1
- package/src/services/settings/core-settings.ts +88 -0
- package/src/services/settings/defaults.ts +8 -2
- package/src/services/settings/errors.ts +11 -0
- package/src/services/settings/geo-budget.ts +40 -0
- package/src/services/settings/index.ts +4 -3
- package/src/services/settings/store.ts +25 -17
- package/src/services/weather/geo.ts +29 -111
- package/src/services/weather/index.ts +4 -3
- package/src/services/weather/locations.ts +8 -5
- package/src/services/weather/migrate.ts +1 -0
- package/src/services/weather/settings.ts +0 -16
- package/src/shared/__snapshots__/avatar-art.test.ts.snap +5 -0
- package/src/shared/avatar-art.ts +400 -0
- package/src/shared/index.ts +2 -0
- package/src/shared/network-address.ts +22 -3
- package/src/shared/template-rendering.ts +36 -4
- package/src/shared-text/documents.ts +1 -1
- package/src/shared-text/index.ts +2 -0
- package/src/shared-text/log.ts +51 -3
- package/src/shared-text/snapshots.ts +340 -0
- package/src/ssr/AdminLayout.tsx +4 -2
- package/src/ssr/CloudShell.island.tsx +6 -0
- package/src/ssr/Layout.tsx +65 -15
- package/src/ssr/LayoutHelp.browser-harness.tsx +1 -1
- package/src/ssr/LayoutHelp.tsx +3 -2
- package/src/ssr/PanelRuntime.island.tsx +11 -7
- package/src/ssr/PwaLayout.tsx +2 -2
- package/src/ssr/RailApps.tsx +6 -0
- package/src/ssr/ShellRuntime.island.tsx +23 -7
- package/src/ssr/__snapshots__/Layout.unchanged.render.test.tsx.snap +151 -0
- package/src/ssr/__snapshots__/LayoutHelp.ssr.render.test.tsx.snap +6 -6
- package/src/ssr/admin-navigation.ts +1 -0
- package/src/ssr/app-badges.ts +6 -1
- package/src/ssr/compact-shell.browser-harness.ts +44 -5
- package/src/ssr/help.ts +3 -2
- package/src/ssr/index.ts +1 -1
- package/src/ssr/layout-context.ts +2 -0
- package/src/ssr/mobile-menu-history.ts +4 -0
- package/src/ssr/page-swap-fixture/Column.island.tsx +15 -0
- package/src/ssr/page-swap-fixture/ProviderProbe.island.tsx +31 -0
- package/src/ssr/page-swap.browser-harness.tsx +177 -0
- package/src/ssr/page-swap.ts +28 -0
- package/src/ssr/page-trail-runtime.ts +32 -13
- package/src/ssr/panel-consent.ts +2 -2
- package/src/ssr/panel-slot.browser-harness.tsx +3 -0
- package/src/ssr/platform-messages.ts +8 -0
- package/src/ssr/runtime.ts +17 -0
- package/src/ssr/shell-data.tsx +10 -2
- package/src/styles/global.css +70 -6
- package/src/server/services/geo.ts +0 -215
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
// Bun Snapshot v1, https://bun.sh/docs/test/snapshots
|
|
2
2
|
|
|
3
|
-
exports[`Help server frames page hub and article 1`] = `"<div class="help-shell app-accent-scope flex min-h-0 flex-col " data-surface="page" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><header class="help-head" data-help-head><div class="help-head-inner help-measure"><!--$--><div class="help-head-row"><!--$--><span class="help-head-tile" aria-hidden="true"><i class="ti ti-help-circle"></i></span><!--/--><h2 id="layout-help-title" class="help-head-title">Help</h2><div class="help-head-actions" role="group" aria-label="Help actions"><!--$--><span class="k2b-dropdown "><!--$--><button data-help-menu="" aria-controls="k2b-dropdown-#1" aria-expanded="false" aria-haspopup="menu" title="More Help actions" aria-label="More Help actions" type="button" class="k2b-button k2b-icon-button k2b-dropdown__trigger " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-dots" aria-hidden="true"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#2" role="tooltip" popover="manual" class="k2b-tooltip">More Help actions</span><!--/--><div id="k2b-dropdown-#1" popover="auto" role="menu" aria-label="More Help actions" class="k2b-dropdown__menu " style="" data-variant="default" data-position="bottom-left"><button type="button" role="menuitem" tabindex="-1" class="k2b-dropdown__item "><i class="ti ti-markdown" aria-hidden="true"></i><span class="k2b-dropdown__copy"><span>Copy as Markdown</span><!--$--><!--/--></span></button></div></span><!--/--><!--$--><!--/--></div></div><!--/--><!--$--><div class="k2b-field help-head-search"><!--$--><!--/--><!--$--><!--/--><!--$--><div class="k2b-input-shell k2b-text-input" style=""
|
|
3
|
+
exports[`Help server frames page hub and article 1`] = `"<div class="help-shell app-accent-scope flex min-h-0 flex-col " data-surface="page" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><header class="help-head" data-help-head><div class="help-head-inner help-measure"><!--$--><div class="help-head-row"><!--$--><span class="help-head-tile" aria-hidden="true"><i class="ti ti-help-circle"></i></span><!--/--><h2 id="layout-help-title" class="help-head-title">Help</h2><div class="help-head-actions" role="group" aria-label="Help actions"><!--$--><span class="k2b-dropdown "><!--$--><button data-help-menu="" aria-controls="k2b-dropdown-#1" aria-expanded="false" aria-haspopup="menu" title="More Help actions" aria-label="More Help actions" type="button" class="k2b-button k2b-icon-button k2b-dropdown__trigger " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-dots" aria-hidden="true"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#2" role="tooltip" popover="manual" class="k2b-tooltip">More Help actions</span><!--/--><div id="k2b-dropdown-#1" popover="auto" role="menu" aria-label="More Help actions" class="k2b-dropdown__menu " style="" data-variant="default" data-position="bottom-left"><button type="button" role="menuitem" tabindex="-1" class="k2b-dropdown__item "><i class="ti ti-markdown" aria-hidden="true"></i><span class="k2b-dropdown__copy"><span>Copy as Markdown</span><!--$--><!--/--></span></button></div></span><!--/--><!--$--><!--/--></div></div><!--/--><!--$--><div class="k2b-field help-head-search"><!--$--><!--/--><!--$--><!--/--><!--$--><div class="k2b-input-shell k2b-text-input" style=""><!--$--><span class="k2b-input-shell__icon k2b-text-input__icon" aria-hidden="true"><i class="ti ti-search"></i><i class="ti ti-search"></i></span><!--/--><!--$--><!--/--><!--$--><input data-help-search="" placeholder="Search help…" id="k2b-field-#3" class="k2b-input " type="search" value="" aria-label="Search help" /><!--/--><!--$--><!--/--><!--$--><!--/--><!--$--><!--/--></div><!--/--><!--$--><!--/--></div><!--/--></div></header><!--/--><!--$--><div class="p-4 sm:p-5"><div data-help-results class="help-start help-measure" style=""><section class="help-start-section" data-help-tasks aria-labelledby="help-start-tasks-title"><h3 id="help-start-tasks-title" class="help-start-heading"><i class="ti ti-checklist" aria-hidden="true"></i><!--$-->What do you want to do?<!--/--></h3><!--$--><ul class="help-start-tiles" data-help-tiles><li><button type="button" class="help-start-tile focus-ui" data-help-topic="share"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-share"></i></span><span class="help-start-tile-title">Share a Space</span><!--$--><span class="help-start-tile-description">Invite people to work with you.</span><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-1"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-1</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-2"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-2</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-3"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-3</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-4"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-4</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-5"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-5</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-6"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-6</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-7"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-7</span><!--$--><!--/--></button></li></ul><!--/--><!--$--><ul class="help-start-rows " data-help-more-tasks=""><li><button type="button" class="help-start-row focus-ui" data-help-topic="task-8"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Article task-8</span><!--$--><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li><li><button type="button" class="help-start-row focus-ui" data-help-topic="task-9"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Article task-9</span><!--$--><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section><div class="help-start-groups"><section class="help-start-section" data-help-group="start" aria-labelledby="help-start-start-title"><h3 id="help-start-start-title" class="help-start-heading"><i class="ti ti-rocket" aria-hidden="true"></i><!--$-->Get started<!--/--></h3><!--$--><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="first-steps"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">First steps</span><!--$--><span class="help-article-link-description">Find your way around.</span><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section><section class="help-start-section" data-help-group="reference" aria-labelledby="help-start-reference-title"><h3 id="help-start-reference-title" class="help-start-heading"><i class="ti ti-book-2" aria-hidden="true"></i><!--$-->Look up<!--/--></h3><!--$--><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="roles"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-users"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Roles</span><!--$--><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section><section class="help-start-section" data-help-group="troubleshoot" aria-labelledby="help-start-troubleshoot-title"><h3 id="help-start-troubleshoot-title" class="help-start-heading"><i class="ti ti-lifebuoy" aria-hidden="true"></i><!--$-->Solve problems<!--/--></h3><!--$--><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="sync"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Sync problems</span><!--$--><span class="help-article-link-description">When changes do not arrive.</span><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section></div><section class="help-start-section help-start-shortcuts" data-help-shortcuts aria-labelledby="help-start-shortcuts-title"><h3 id="help-start-shortcuts-title" class="help-start-heading"><i class="ti ti-keyboard" aria-hidden="true"></i><!--$-->Keyboard shortcuts<!--/--></h3><div class="help-shortcut-groups"></div></section></div><span class="sr-only" aria-live="polite"></span></div><!--/--></div>"`;
|
|
4
4
|
|
|
5
|
-
exports[`Help server frames page hub and article 2`] = `"<div class="help-shell app-accent-scope flex min-h-0 flex-col " data-surface="page" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><header class="help-head" data-help-head><div class="help-head-inner help-measure"><!--$--><div class="help-head-row"><!--$--><button title="Back" aria-label="Back to help topics" type="button" class="k2b-button k2b-icon-button help-head-back " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-arrow-left"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#1" role="tooltip" popover="manual" class="k2b-tooltip">Back</span><!--/--><h2 id="layout-help-title" class="help-head-title">Help</h2><div class="help-head-actions" role="group" aria-label="Help actions"><!--$--><span class="k2b-dropdown "><!--$--><button data-help-menu="" aria-controls="k2b-dropdown-#2" aria-expanded="false" aria-haspopup="menu" title="More Help actions" aria-label="More Help actions" type="button" class="k2b-button k2b-icon-button k2b-dropdown__trigger " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-dots" aria-hidden="true"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#3" role="tooltip" popover="manual" class="k2b-tooltip">More Help actions</span><!--/--><div id="k2b-dropdown-#2" popover="auto" role="menu" aria-label="More Help actions" class="k2b-dropdown__menu " style="" data-variant="default" data-position="bottom-left"><button type="button" role="menuitem" tabindex="-1" class="k2b-dropdown__item "><i class="ti ti-markdown" aria-hidden="true"></i><span class="k2b-dropdown__copy"><span>Copy as Markdown</span><!--$--><!--/--></span></button></div></span><!--/--><!--$--><!--/--></div></div><!--/--><!--$--><div class="k2b-field help-head-search"><!--$--><!--/--><!--$--><!--/--><!--$--><div class="k2b-input-shell k2b-text-input" style=""
|
|
5
|
+
exports[`Help server frames page hub and article 2`] = `"<div class="help-shell app-accent-scope flex min-h-0 flex-col " data-surface="page" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><header class="help-head" data-help-head><div class="help-head-inner help-measure"><!--$--><div class="help-head-row"><!--$--><button title="Back" aria-label="Back to help topics" type="button" class="k2b-button k2b-icon-button help-head-back " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-arrow-left"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#1" role="tooltip" popover="manual" class="k2b-tooltip">Back</span><!--/--><h2 id="layout-help-title" class="help-head-title">Help</h2><div class="help-head-actions" role="group" aria-label="Help actions"><!--$--><span class="k2b-dropdown "><!--$--><button data-help-menu="" aria-controls="k2b-dropdown-#2" aria-expanded="false" aria-haspopup="menu" title="More Help actions" aria-label="More Help actions" type="button" class="k2b-button k2b-icon-button k2b-dropdown__trigger " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-dots" aria-hidden="true"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#3" role="tooltip" popover="manual" class="k2b-tooltip">More Help actions</span><!--/--><div id="k2b-dropdown-#2" popover="auto" role="menu" aria-label="More Help actions" class="k2b-dropdown__menu " style="" data-variant="default" data-position="bottom-left"><button type="button" role="menuitem" tabindex="-1" class="k2b-dropdown__item "><i class="ti ti-markdown" aria-hidden="true"></i><span class="k2b-dropdown__copy"><span>Copy as Markdown</span><!--$--><!--/--></span></button></div></span><!--/--><!--$--><!--/--></div></div><!--/--><!--$--><div class="k2b-field help-head-search"><!--$--><!--/--><!--$--><!--/--><!--$--><div class="k2b-input-shell k2b-text-input" style=""><!--$--><span class="k2b-input-shell__icon k2b-text-input__icon" aria-hidden="true"><i class="ti ti-search"></i><i class="ti ti-search"></i></span><!--/--><!--$--><!--/--><!--$--><input data-help-search="" placeholder="Search help…" id="k2b-field-#4" class="k2b-input " type="search" value="" aria-label="Search help" /><!--/--><!--$--><!--/--><!--$--><!--/--><!--$--><!--/--></div><!--/--><!--$--><!--/--></div><!--/--></div></header><!--/--><!--$--><div class="p-4 sm:p-5"><article class="help-article" data-surface="page"><div class="help-article-layout"><div class="help-article-main"><header class="help-article-head" data-help-article-head><div class="help-article-head-copy"><!--$--><p class="help-article-path"><!--$--><!--/--><button type="button" class="help-article-path-link focus-ui">Help</button></p><!--/--><h3 tabindex="-1" class="help-article-title focus-ui">Share a Space</h3><!--$--><div class="k2b-content-markdown help-document help-article-lead"><p>Share the Space with your team.</p></div><!--/--><!--$--><ul class="help-article-facts" aria-label="About this article"><!--$--><li class="help-article-fact" data-fact="needs"><i class="ti ti-key" aria-hidden="true"></i><span><!--$-->You need<!--/--> <strong>Edit</strong></span></li><!--/--><!--$--><li class="help-article-fact" data-fact="steps"><i class="ti ti-list-numbers" aria-hidden="true"></i><span>2 steps</span></li><!--/--></ul><!--/--><!--$--><div class="help-article-tools"><!--$--><span class="k2b-dropdown "><!--$--><button aria-controls="k2b-dropdown-#5" aria-expanded="false" aria-haspopup="menu" aria-label="On this page" type="button" class="k2b-button k2b-dropdown__trigger " data-size="sm" data-variant="secondary" ><span class="k2b-button__label"><i class="ti ti-list" aria-hidden="true"></i><span>On this page</span><i class="ti ti-chevron-down" aria-hidden="true"></i></span><!--$--><!--/--></button><!--/--><div id="k2b-dropdown-#5" popover="auto" role="menu" aria-label="On this page" class="k2b-dropdown__menu " style="" data-variant="default" data-position="bottom-left"><button type="button" role="menuitemradio" aria-checked="false" tabIndex="-1" class="k2b-dropdown__item " ><span class="k2b-dropdown__copy"><span>Invite people</span><!--$--><!--/--></span><i class="ti ti-check k2b-dropdown__check" data-hidden="true" aria-hidden="true"></i></button><button type="button" role="menuitemradio" aria-checked="false" tabIndex="-1" class="k2b-dropdown__item " ><span class="k2b-dropdown__copy"><span>Remove people</span><!--$--><!--/--></span><i class="ti ti-check k2b-dropdown__check" data-hidden="true" aria-hidden="true"></i></button></div></span><!--/--><!--$--><button title="Copy article as Markdown" aria-label="Copy article as Markdown" type="button" class="k2b-button k2b-icon-button help-article-tools-copy " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-markdown"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#6" role="tooltip" popover="manual" class="k2b-tooltip">Copy article as Markdown</span><!--/--></div><!--/--></div><!--$--><span class="help-article-icon k2b-icon-tile app-accent-text" aria-hidden="true"><i class="ti ti-share"></i></span><!--/--></header><!--$--><!--/--><!--$--><!--/--><div><div class="k2b-content-markdown help-document"><h2 id="invite">Invite people</h2><div class="help-steps"><ol><li>Open sharing.</li><li>Invite a person.</li></ol></div><h2 id="remove">Remove people</h2><p>Open <a href="/help/apps/spaces/roles">Roles</a>.</p></div></div><!--$--><footer class="help-article-end"><!--$--><a class="help-article-next app-accent-scope focus-ui" href="/help/apps/spaces/roles" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><span class="help-article-next-label">Next</span><span class="help-article-next-row"><i class="ti ti-file-text help-article-next-icon" aria-hidden="true"></i><!--$--><span class="help-article-link-copy"><span class="help-article-link-title">Roles</span><!--$--><span class="help-article-link-description">Who may do what.</span><!--/--></span><!--/--><i class="ti ti-arrow-right help-article-next-arrow" aria-hidden="true"></i></span></a><!--/--><!--$--><section class="help-article-related" aria-labelledby="help-article-related-title"><h4 id="help-article-related-title">Related</h4><ul><li><a class="help-article-related-link app-accent-scope focus-ui" href="/help/apps/spaces/sync" style=""><span class="help-topic-icon k2b-icon-tile help-article-related-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><!--$--><span class="help-article-link-copy"><span class="help-article-link-title">Sync problems</span><!--$--><!--/--></span><!--/--><!--$--><span class="help-article-related-app app-accent-text">Spaces</span><!--/--></a></li><li><a class="help-article-related-link app-accent-scope focus-ui" href="/help/apps/contacts/groups" style="--app-accent:#0284c7;--app-ink-light:#0274af;--app-ink-dark:#3fa2d4;--app-selected-light:#edf6fb;--app-selected-dark:#0f2533;--app-selected-nav-light:#e6f3f9;--app-selected-nav-dark:#0e2838"><span class="help-topic-icon k2b-icon-tile help-article-related-icon app-accent-text" aria-hidden="true"><i class="ti ti-users-group"></i></span><!--$--><span class="help-article-link-copy"><span class="help-article-link-title">Contact groups</span><!--$--><!--/--></span><!--/--><!--$--><span class="help-article-related-app app-accent-text">Contacts</span><!--/--></a></li></ul></section><!--/--></footer><!--/--></div><aside class="help-article-aside"><div class="help-article-aside-sticky"><!--$--><nav class="k2b-toc" aria-labelledby="k2b-toc-#7"><p class="k2b-toc__title" id="k2b-toc-#7">On this page</p><ol class="k2b-toc__list"><li><a class="k2b-toc__link" href="#invite" aria-current="location">Invite people</a></li><li><a class="k2b-toc__link" href="#remove">Remove people</a></li></ol></nav><!--/--><!--$--><button type="button" class="k2b-button " data-size="sm" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-markdown"></i>Copy Markdown</span><!--$--><!--/--></button><!--/--></div></aside></div></article><span class="sr-only" aria-live="polite"></span></div><!--/--></div>"`;
|
|
6
6
|
|
|
7
|
-
exports[`Help server frames page hub and article 3`] = `"<div class="help-shell app-accent-scope flex min-h-0 flex-col " data-surface="page" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><header class="help-head" data-help-head><div class="help-head-inner help-measure"><!--$--><div class="help-head-row"><!--$--><button title="Back" aria-label="Back to help topics" type="button" class="k2b-button k2b-icon-button help-head-back " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-arrow-left"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#1" role="tooltip" popover="manual" class="k2b-tooltip">Back</span><!--/--><h2 id="layout-help-title" class="help-head-title">Help</h2><div class="help-head-actions" role="group" aria-label="Help actions"><!--$--><span class="k2b-dropdown "><!--$--><button data-help-menu="" aria-controls="k2b-dropdown-#2" aria-expanded="false" aria-haspopup="menu" title="More Help actions" aria-label="More Help actions" type="button" class="k2b-button k2b-icon-button k2b-dropdown__trigger " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-dots" aria-hidden="true"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#3" role="tooltip" popover="manual" class="k2b-tooltip">More Help actions</span><!--/--><div id="k2b-dropdown-#2" popover="auto" role="menu" aria-label="More Help actions" class="k2b-dropdown__menu " style="" data-variant="default" data-position="bottom-left"><button type="button" role="menuitem" tabindex="-1" class="k2b-dropdown__item " disabled aria-disabled="true"><i class="ti ti-markdown" aria-hidden="true"></i><span class="k2b-dropdown__copy"><span>Copy as Markdown</span><!--$--><!--/--></span></button></div></span><!--/--><!--$--><!--/--></div></div><!--/--><!--$--><div class="k2b-field help-head-search"><!--$--><!--/--><!--$--><!--/--><!--$--><div class="k2b-input-shell k2b-text-input" style=""
|
|
7
|
+
exports[`Help server frames page hub and article 3`] = `"<div class="help-shell app-accent-scope flex min-h-0 flex-col " data-surface="page" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><header class="help-head" data-help-head><div class="help-head-inner help-measure"><!--$--><div class="help-head-row"><!--$--><button title="Back" aria-label="Back to help topics" type="button" class="k2b-button k2b-icon-button help-head-back " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-arrow-left"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#1" role="tooltip" popover="manual" class="k2b-tooltip">Back</span><!--/--><h2 id="layout-help-title" class="help-head-title">Help</h2><div class="help-head-actions" role="group" aria-label="Help actions"><!--$--><span class="k2b-dropdown "><!--$--><button data-help-menu="" aria-controls="k2b-dropdown-#2" aria-expanded="false" aria-haspopup="menu" title="More Help actions" aria-label="More Help actions" type="button" class="k2b-button k2b-icon-button k2b-dropdown__trigger " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-dots" aria-hidden="true"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#3" role="tooltip" popover="manual" class="k2b-tooltip">More Help actions</span><!--/--><div id="k2b-dropdown-#2" popover="auto" role="menu" aria-label="More Help actions" class="k2b-dropdown__menu " style="" data-variant="default" data-position="bottom-left"><button type="button" role="menuitem" tabindex="-1" class="k2b-dropdown__item " disabled aria-disabled="true"><i class="ti ti-markdown" aria-hidden="true"></i><span class="k2b-dropdown__copy"><span>Copy as Markdown</span><!--$--><!--/--></span></button></div></span><!--/--><!--$--><!--/--></div></div><!--/--><!--$--><div class="k2b-field help-head-search"><!--$--><!--/--><!--$--><!--/--><!--$--><div class="k2b-input-shell k2b-text-input" style=""><!--$--><span class="k2b-input-shell__icon k2b-text-input__icon" aria-hidden="true"><i class="ti ti-search"></i><i class="ti ti-search"></i></span><!--/--><!--$--><!--/--><!--$--><input data-help-search="" placeholder="Search help…" id="k2b-field-#4" class="k2b-input " type="search" value="" aria-label="Search help" /><!--/--><!--$--><!--/--><!--$--><!--/--><!--$--><!--/--></div><!--/--><!--$--><!--/--></div><!--/--></div></header><!--/--><!--$--><div class="p-4 sm:p-5"><article class="help-article" data-surface="page"><div class="help-article-layout"><div class="help-article-main"><header class="help-article-head" data-help-article-head><div class="help-article-head-copy"><!--$--><p class="help-article-path"><!--$--><!--/--><button type="button" class="help-article-path-link focus-ui">Help</button></p><!--/--><h3 tabindex="-1" class="help-article-title focus-ui">Share a Space</h3><!--$--><!--/--><!--$--><!--/--><!--$--><div class="help-article-tools"><!--$--><!--/--><!--$--><button title="Copy article as Markdown" aria-label="Copy article as Markdown" type="button" class="k2b-button k2b-icon-button help-article-tools-copy " data-size="md" data-variant="ghost" disabled ><span class="k2b-button__label"><i class="ti ti-markdown"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#5" role="tooltip" popover="manual" class="k2b-tooltip">Copy article as Markdown</span><!--/--></div><!--/--></div><!--$--><span class="help-article-icon k2b-icon-tile app-accent-text" aria-hidden="true"><i class="ti ti-share"></i></span><!--/--></header><!--$--><div class="min-h-[24rem]"><div class="k2b-placeholder " data-align="center" data-state="loading" data-surface="none" data-variant="panel" role="status" aria-live="polite" aria-busy="true" ><span class="k2b-placeholder__icon"><i class="ti ti-loader-2" aria-hidden="true"></i></span><p class="k2b-placeholder__title">Loading help…</p></div></div><!--/--><!--$--><!--/--><div></div><!--$--><!--/--></div><aside class="help-article-aside"><div class="help-article-aside-sticky"><!--$--><!--/--><!--$--><button type="button" class="k2b-button " data-size="sm" data-variant="ghost" disabled ><span class="k2b-button__label"><i class="ti ti-markdown"></i>Copy Markdown</span><!--$--><!--/--></button><!--/--></div></aside></div></article><span class="sr-only" aria-live="polite"></span></div><!--/--></div>"`;
|
|
8
8
|
|
|
9
|
-
exports[`Help server frames embedded reader 1`] = `"<div class="help-shell app-accent-scope flex min-h-0 flex-col bg-[var(--ui-surface-raised)] h-full" data-surface="embedded" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><header class="help-head" data-help-head><div class="help-head-inner help-measure"><!--$--><!--/--><!--$--><div class="k2b-field help-head-search"><!--$--><!--/--><!--$--><!--/--><!--$--><div class="k2b-input-shell k2b-text-input" style=""
|
|
9
|
+
exports[`Help server frames embedded reader 1`] = `"<div class="help-shell app-accent-scope flex min-h-0 flex-col bg-[var(--ui-surface-raised)] h-full" data-surface="embedded" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><header class="help-head" data-help-head><div class="help-head-inner help-measure"><!--$--><!--/--><!--$--><div class="k2b-field help-head-search"><!--$--><!--/--><!--$--><!--/--><!--$--><div class="k2b-input-shell k2b-text-input" style=""><!--$--><span class="k2b-input-shell__icon k2b-text-input__icon" aria-hidden="true"><i class="ti ti-search"></i><i class="ti ti-search"></i></span><!--/--><!--$--><!--/--><!--$--><input data-help-search="" placeholder="Search help…" id="k2b-field-#1" class="k2b-input " type="search" value="" aria-label="Search help" /><!--/--><!--$--><!--/--><!--$--><!--/--><!--$--><!--/--></div><!--/--><!--$--><!--/--></div><!--/--></div></header><!--/--><!--$--><div data-scroll-fade-axis="vertical" data-orientation="vertical" data-scroll-fade-mode="both" class="k2b-scroll-area min-h-0 flex-1 p-4 sm:p-5 " ><div data-help-results class="help-start help-measure" style=""><section class="help-start-section" data-help-tasks aria-labelledby="help-start-tasks-title"><h3 id="help-start-tasks-title" class="help-start-heading"><i class="ti ti-checklist" aria-hidden="true"></i><!--$-->What do you want to do?<!--/--></h3><!--$--><ul class="help-start-tiles" data-help-tiles><li><button type="button" class="help-start-tile focus-ui" data-help-topic="share"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-share"></i></span><span class="help-start-tile-title">Share a Space</span><!--$--><span class="help-start-tile-description">Invite people to work with you.</span><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-1"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-1</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-2"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-2</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-3"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-3</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-4"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-4</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-5"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-5</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-6"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-6</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-7"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-7</span><!--$--><!--/--></button></li></ul><!--/--><!--$--><ul class="help-start-rows " data-help-more-tasks=""><li><button type="button" class="help-start-row focus-ui" data-help-topic="task-8"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Article task-8</span><!--$--><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li><li><button type="button" class="help-start-row focus-ui" data-help-topic="task-9"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Article task-9</span><!--$--><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section><div class="help-start-groups"><section class="help-start-section" data-help-group="start" aria-labelledby="help-start-start-title"><h3 id="help-start-start-title" class="help-start-heading"><i class="ti ti-rocket" aria-hidden="true"></i><!--$-->Get started<!--/--></h3><!--$--><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="first-steps"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">First steps</span><!--$--><span class="help-article-link-description">Find your way around.</span><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section><section class="help-start-section" data-help-group="reference" aria-labelledby="help-start-reference-title"><h3 id="help-start-reference-title" class="help-start-heading"><i class="ti ti-book-2" aria-hidden="true"></i><!--$-->Look up<!--/--></h3><!--$--><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="roles"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-users"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Roles</span><!--$--><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section><section class="help-start-section" data-help-group="troubleshoot" aria-labelledby="help-start-troubleshoot-title"><h3 id="help-start-troubleshoot-title" class="help-start-heading"><i class="ti ti-lifebuoy" aria-hidden="true"></i><!--$-->Solve problems<!--/--></h3><!--$--><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="sync"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Sync problems</span><!--$--><span class="help-article-link-description">When changes do not arrive.</span><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section></div><!--!$--></div><span class="sr-only" aria-live="polite"></span></div><!--/--></div>"`;
|
|
10
10
|
|
|
11
11
|
exports[`Help server frames embedded reader 2`] = `"<div class="help-shell app-accent-scope flex min-h-0 flex-col bg-[var(--ui-surface-raised)] h-full" data-surface="embedded" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><!--/--><!--$--><div data-scroll-fade-axis="vertical" data-orientation="vertical" data-scroll-fade-mode="both" class="k2b-scroll-area min-h-0 flex-1 p-4 sm:p-5 " ><article class="help-article" data-surface="embedded"><div class="help-article-layout"><div class="help-article-main"><header class="help-article-head" data-help-article-head><div class="help-article-head-copy"><!--$--><p class="help-article-path"><!--$--><!--/--><button type="button" class="help-article-path-link focus-ui">Help</button></p><!--/--><h3 tabindex="-1" class="help-article-title focus-ui">Share a Space</h3><!--$--><div class="k2b-content-markdown help-document help-article-lead"><p>Share the Space with your team.</p></div><!--/--><!--$--><ul class="help-article-facts" aria-label="About this article"><!--$--><li class="help-article-fact" data-fact="needs"><i class="ti ti-key" aria-hidden="true"></i><span><!--$-->You need<!--/--> <strong>Edit</strong></span></li><!--/--><!--$--><li class="help-article-fact" data-fact="steps"><i class="ti ti-list-numbers" aria-hidden="true"></i><span>2 steps</span></li><!--/--></ul><!--/--><!--$--><div class="help-article-tools"><!--$--><span class="k2b-dropdown "><!--$--><button aria-controls="k2b-dropdown-#1" aria-expanded="false" aria-haspopup="menu" aria-label="On this page" type="button" class="k2b-button k2b-dropdown__trigger " data-size="sm" data-variant="secondary" ><span class="k2b-button__label"><i class="ti ti-list" aria-hidden="true"></i><span>On this page</span><i class="ti ti-chevron-down" aria-hidden="true"></i></span><!--$--><!--/--></button><!--/--><div id="k2b-dropdown-#1" popover="auto" role="menu" aria-label="On this page" class="k2b-dropdown__menu " style="" data-variant="default" data-position="bottom-left"><button type="button" role="menuitemradio" aria-checked="false" tabIndex="-1" class="k2b-dropdown__item " ><span class="k2b-dropdown__copy"><span>Invite people</span><!--$--><!--/--></span><i class="ti ti-check k2b-dropdown__check" data-hidden="true" aria-hidden="true"></i></button><button type="button" role="menuitemradio" aria-checked="false" tabIndex="-1" class="k2b-dropdown__item " ><span class="k2b-dropdown__copy"><span>Remove people</span><!--$--><!--/--></span><i class="ti ti-check k2b-dropdown__check" data-hidden="true" aria-hidden="true"></i></button></div></span><!--/--><!--$--><button title="Copy article as Markdown" aria-label="Copy article as Markdown" type="button" class="k2b-button k2b-icon-button help-article-tools-copy " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-markdown"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#2" role="tooltip" popover="manual" class="k2b-tooltip">Copy article as Markdown</span><!--/--></div><!--/--></div><!--$--><!--/--></header><!--$--><!--/--><!--$--><!--/--><div><div class="k2b-content-markdown help-document"><h2 id="invite">Invite people</h2><div class="help-steps"><ol><li>Open sharing.</li><li>Invite a person.</li></ol></div><h2 id="remove">Remove people</h2><p>Open <a href="/help/apps/spaces/roles">Roles</a>.</p></div></div><!--$--><footer class="help-article-end"><!--$--><a class="help-article-next app-accent-scope focus-ui" href="/help/apps/spaces/roles" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><span class="help-article-next-label">Next</span><span class="help-article-next-row"><i class="ti ti-file-text help-article-next-icon" aria-hidden="true"></i><!--$--><span class="help-article-link-copy"><span class="help-article-link-title">Roles</span><!--$--><span class="help-article-link-description">Who may do what.</span><!--/--></span><!--/--><i class="ti ti-arrow-right help-article-next-arrow" aria-hidden="true"></i></span></a><!--/--><!--$--><section class="help-article-related" aria-labelledby="help-article-related-title"><h4 id="help-article-related-title">Related</h4><ul><li><a class="help-article-related-link app-accent-scope focus-ui" href="/help/apps/spaces/sync" style=""><span class="help-topic-icon k2b-icon-tile help-article-related-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><!--$--><span class="help-article-link-copy"><span class="help-article-link-title">Sync problems</span><!--$--><!--/--></span><!--/--><!--$--><span class="help-article-related-app app-accent-text">Spaces</span><!--/--></a></li><li><a class="help-article-related-link app-accent-scope focus-ui" href="/help/apps/contacts/groups" style="--app-accent:#0284c7;--app-ink-light:#0274af;--app-ink-dark:#3fa2d4;--app-selected-light:#edf6fb;--app-selected-dark:#0f2533;--app-selected-nav-light:#e6f3f9;--app-selected-nav-dark:#0e2838"><span class="help-topic-icon k2b-icon-tile help-article-related-icon app-accent-text" aria-hidden="true"><i class="ti ti-users-group"></i></span><!--$--><span class="help-article-link-copy"><span class="help-article-link-title">Contact groups</span><!--$--><!--/--></span><!--/--><!--$--><span class="help-article-related-app app-accent-text">Contacts</span><!--/--></a></li></ul></section><!--/--></footer><!--/--></div><aside class="help-article-aside"><div class="help-article-aside-sticky"><!--$--><nav class="k2b-toc" aria-labelledby="k2b-toc-#3"><p class="k2b-toc__title" id="k2b-toc-#3">On this page</p><ol class="k2b-toc__list"><li><a class="k2b-toc__link" href="#invite" aria-current="location">Invite people</a></li><li><a class="k2b-toc__link" href="#remove">Remove people</a></li></ol></nav><!--/--><!--$--><button type="button" class="k2b-button " data-size="sm" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-markdown"></i>Copy Markdown</span><!--$--><!--/--></button><!--/--></div></aside></div></article><span class="sr-only" aria-live="polite"></span></div><!--/--></div>"`;
|
|
12
12
|
|
|
13
|
-
exports[`Help server frames shortcuts on a Layout page and a failed Help read 1`] = `"<script id="cloud-shell-data" type="application/json">{"apps":[{"id":"spaces","label":"Spaces","href":"/app/spaces","match":"/app/spaces","iconClass":"ti ti-layout-kanban","defaultVisible":true}],"legalLinks":[],"theme":"system","searchLinks":{},"appId":"spaces","platform":"apple"}</script><div class="help-shell app-accent-scope flex min-h-0 flex-col " data-surface="page" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><header class="help-head" data-help-head><div class="help-head-inner help-measure"><!--$--><div class="help-head-row"><!--$--><span class="help-head-tile" aria-hidden="true"><i class="ti ti-layout-kanban"></i></span><!--/--><h2 id="layout-help-title" class="help-head-title">Help for Spaces</h2><div class="help-head-actions" role="group" aria-label="Help actions"><!--$--><span class="k2b-dropdown "><!--$--><button data-help-menu="" aria-controls="k2b-dropdown-#1" aria-expanded="false" aria-haspopup="menu" title="More Help actions" aria-label="More Help actions" type="button" class="k2b-button k2b-icon-button k2b-dropdown__trigger " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-dots" aria-hidden="true"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#2" role="tooltip" popover="manual" class="k2b-tooltip">More Help actions</span><!--/--><div id="k2b-dropdown-#1" popover="auto" role="menu" aria-label="More Help actions" class="k2b-dropdown__menu " style="" data-variant="default" data-position="bottom-left"><button type="button" role="menuitem" tabindex="-1" class="k2b-dropdown__item "><i class="ti ti-markdown" aria-hidden="true"></i><span class="k2b-dropdown__copy"><span>Copy as Markdown</span><!--$--><!--/--></span></button></div></span><!--/--><!--$--><!--/--></div></div><!--/--><!--$--><div class="k2b-field help-head-search"><!--$--><!--/--><!--$--><!--/--><!--$--><div class="k2b-input-shell k2b-text-input" style=""><span class="k2b-input-shell__icon k2b-text-input__icon" aria-hidden="true"><i class="ti ti-search"></i><i class="ti ti-search"></i></span><!--$--><!--/--><!--$--><input data-help-search="" placeholder="Search help…" id="k2b-field-#3" class="k2b-input " type="search" value="" aria-label="Search help" /><!--/--><!--$--><!--/--><!--$--><!--/--><!--$--><!--/--></div><!--/--><!--$--><!--/--></div><!--/--></div></header><!--/--><!--$--><div class="p-4 sm:p-5"><div data-help-results class="help-start help-measure" style=""><section class="help-start-section" data-help-tasks aria-labelledby="help-start-tasks-title"><h3 id="help-start-tasks-title" class="help-start-heading"><i class="ti ti-checklist" aria-hidden="true"></i><!--$-->What do you want to do?<!--/--></h3><!--$--><ul class="help-start-tiles" data-help-tiles><li><button type="button" class="help-start-tile focus-ui" data-help-topic="share"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-share"></i></span><span class="help-start-tile-title">Share a Space</span><!--$--><span class="help-start-tile-description">Invite people to work with you.</span><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-1"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-1</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-2"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-2</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-3"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-3</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-4"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-4</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-5"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-5</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-6"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-6</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-7"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-7</span><!--$--><!--/--></button></li></ul><!--/--><!--$--><ul class="help-start-rows " data-help-more-tasks=""><li><button type="button" class="help-start-row focus-ui" data-help-topic="task-8"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Article task-8</span><!--$--><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li><li><button type="button" class="help-start-row focus-ui" data-help-topic="task-9"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Article task-9</span><!--$--><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section><div class="help-start-groups"><section class="help-start-section" data-help-group="start" aria-labelledby="help-start-start-title"><h3 id="help-start-start-title" class="help-start-heading"><i class="ti ti-rocket" aria-hidden="true"></i><!--$-->Get started<!--/--></h3><!--$--><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="first-steps"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">First steps</span><!--$--><span class="help-article-link-description">Find your way around.</span><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section><section class="help-start-section" data-help-group="reference" aria-labelledby="help-start-reference-title"><h3 id="help-start-reference-title" class="help-start-heading"><i class="ti ti-book-2" aria-hidden="true"></i><!--$-->Look up<!--/--></h3><!--$--><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="roles"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-users"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Roles</span><!--$--><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section><section class="help-start-section" data-help-group="troubleshoot" aria-labelledby="help-start-troubleshoot-title"><h3 id="help-start-troubleshoot-title" class="help-start-heading"><i class="ti ti-lifebuoy" aria-hidden="true"></i><!--$-->Solve problems<!--/--></h3><!--$--><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="sync"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Sync problems</span><!--$--><span class="help-article-link-description">When changes do not arrive.</span><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section></div><section class="help-start-section help-start-shortcuts" data-help-shortcuts aria-labelledby="help-start-shortcuts-title"><h3 id="help-start-shortcuts-title" class="help-start-heading"><i class="ti ti-keyboard" aria-hidden="true"></i><!--$-->Keyboard shortcuts<!--/--></h3><div class="help-shortcut-groups"><section class="help-shortcut-group" data-help-shortcut-group="everywhere" aria-label="Everywhere"><h4 class="help-shortcut-group-title" aria-hidden="true">Everywhere</h4><ul><li class="help-shortcut" title="Search across apps, pages, files, and items."><span class="help-shortcut-title">Open global search</span><!--$--><kbd class="k2b-kbd"><span class="k2b-sr-only">Command K</span><span class="k2b-kbd__keys" aria-hidden="true"><kbd class="k2b-kbd__key">⌘</kbd><kbd class="k2b-kbd__key">K</kbd></span></kbd><!--/--></li><li class="help-shortcut" title="Open help, guides, and keyboard shortcuts."><span class="help-shortcut-title">Open shortcut help</span><!--$--><kbd class="k2b-kbd"><span class="k2b-sr-only">Shift /</span><span class="k2b-kbd__keys" aria-hidden="true"><kbd class="k2b-kbd__key">⇧</kbd><kbd class="k2b-kbd__key">/</kbd></span></kbd><!--/--></li></ul></section></div></section></div><span class="sr-only" aria-live="polite"></span></div><!--/--></div>"`;
|
|
13
|
+
exports[`Help server frames shortcuts on a Layout page and a failed Help read 1`] = `"<script id="cloud-shell-data" type="application/json">{"apps":[{"id":"spaces","label":"Spaces","href":"/app/spaces","match":"/app/spaces","iconClass":"ti ti-layout-kanban","defaultVisible":true}],"legalLinks":[],"theme":"system","searchLinks":{},"appId":"spaces","platform":"apple"}</script><div class="help-shell app-accent-scope flex min-h-0 flex-col " data-surface="page" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><header class="help-head" data-help-head><div class="help-head-inner help-measure"><!--$--><div class="help-head-row"><!--$--><span class="help-head-tile" aria-hidden="true"><i class="ti ti-layout-kanban"></i></span><!--/--><h2 id="layout-help-title" class="help-head-title">Help for Spaces</h2><div class="help-head-actions" role="group" aria-label="Help actions"><!--$--><span class="k2b-dropdown "><!--$--><button data-help-menu="" aria-controls="k2b-dropdown-#1" aria-expanded="false" aria-haspopup="menu" title="More Help actions" aria-label="More Help actions" type="button" class="k2b-button k2b-icon-button k2b-dropdown__trigger " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-dots" aria-hidden="true"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#2" role="tooltip" popover="manual" class="k2b-tooltip">More Help actions</span><!--/--><div id="k2b-dropdown-#1" popover="auto" role="menu" aria-label="More Help actions" class="k2b-dropdown__menu " style="" data-variant="default" data-position="bottom-left"><button type="button" role="menuitem" tabindex="-1" class="k2b-dropdown__item "><i class="ti ti-markdown" aria-hidden="true"></i><span class="k2b-dropdown__copy"><span>Copy as Markdown</span><!--$--><!--/--></span></button></div></span><!--/--><!--$--><!--/--></div></div><!--/--><!--$--><div class="k2b-field help-head-search"><!--$--><!--/--><!--$--><!--/--><!--$--><div class="k2b-input-shell k2b-text-input" style=""><!--$--><span class="k2b-input-shell__icon k2b-text-input__icon" aria-hidden="true"><i class="ti ti-search"></i><i class="ti ti-search"></i></span><!--/--><!--$--><!--/--><!--$--><input data-help-search="" placeholder="Search help…" id="k2b-field-#3" class="k2b-input " type="search" value="" aria-label="Search help" /><!--/--><!--$--><!--/--><!--$--><!--/--><!--$--><!--/--></div><!--/--><!--$--><!--/--></div><!--/--></div></header><!--/--><!--$--><div class="p-4 sm:p-5"><div data-help-results class="help-start help-measure" style=""><section class="help-start-section" data-help-tasks aria-labelledby="help-start-tasks-title"><h3 id="help-start-tasks-title" class="help-start-heading"><i class="ti ti-checklist" aria-hidden="true"></i><!--$-->What do you want to do?<!--/--></h3><!--$--><ul class="help-start-tiles" data-help-tiles><li><button type="button" class="help-start-tile focus-ui" data-help-topic="share"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-share"></i></span><span class="help-start-tile-title">Share a Space</span><!--$--><span class="help-start-tile-description">Invite people to work with you.</span><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-1"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-1</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-2"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-2</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-3"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-3</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-4"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-4</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-5"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-5</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-6"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-6</span><!--$--><!--/--></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-7"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-7</span><!--$--><!--/--></button></li></ul><!--/--><!--$--><ul class="help-start-rows " data-help-more-tasks=""><li><button type="button" class="help-start-row focus-ui" data-help-topic="task-8"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Article task-8</span><!--$--><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li><li><button type="button" class="help-start-row focus-ui" data-help-topic="task-9"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Article task-9</span><!--$--><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section><div class="help-start-groups"><section class="help-start-section" data-help-group="start" aria-labelledby="help-start-start-title"><h3 id="help-start-start-title" class="help-start-heading"><i class="ti ti-rocket" aria-hidden="true"></i><!--$-->Get started<!--/--></h3><!--$--><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="first-steps"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">First steps</span><!--$--><span class="help-article-link-description">Find your way around.</span><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section><section class="help-start-section" data-help-group="reference" aria-labelledby="help-start-reference-title"><h3 id="help-start-reference-title" class="help-start-heading"><i class="ti ti-book-2" aria-hidden="true"></i><!--$-->Look up<!--/--></h3><!--$--><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="roles"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-users"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Roles</span><!--$--><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section><section class="help-start-section" data-help-group="troubleshoot" aria-labelledby="help-start-troubleshoot-title"><h3 id="help-start-troubleshoot-title" class="help-start-heading"><i class="ti ti-lifebuoy" aria-hidden="true"></i><!--$-->Solve problems<!--/--></h3><!--$--><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="sync"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Sync problems</span><!--$--><span class="help-article-link-description">When changes do not arrive.</span><!--/--></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul><!--/--></section></div><section class="help-start-section help-start-shortcuts" data-help-shortcuts aria-labelledby="help-start-shortcuts-title"><h3 id="help-start-shortcuts-title" class="help-start-heading"><i class="ti ti-keyboard" aria-hidden="true"></i><!--$-->Keyboard shortcuts<!--/--></h3><div class="help-shortcut-groups"><section class="help-shortcut-group" data-help-shortcut-group="everywhere" aria-label="Everywhere"><h4 class="help-shortcut-group-title" aria-hidden="true">Everywhere</h4><ul><li class="help-shortcut" title="Search across apps, pages, files, and items."><span class="help-shortcut-title">Open global search</span><!--$--><kbd class="k2b-kbd"><span class="k2b-sr-only">Command K</span><span class="k2b-kbd__keys" aria-hidden="true"><kbd class="k2b-kbd__key">⌘</kbd><kbd class="k2b-kbd__key">K</kbd></span></kbd><!--/--></li><li class="help-shortcut" title="Open help, guides, and keyboard shortcuts."><span class="help-shortcut-title">Open shortcut help</span><!--$--><kbd class="k2b-kbd"><span class="k2b-sr-only">Shift /</span><span class="k2b-kbd__keys" aria-hidden="true"><kbd class="k2b-kbd__key">⇧</kbd><kbd class="k2b-kbd__key">/</kbd></span></kbd><!--/--></li></ul></section></div></section></div><span class="sr-only" aria-live="polite"></span></div><!--/--></div>"`;
|
|
14
14
|
|
|
15
|
-
exports[`Help server frames shortcuts on a Layout page and a failed Help read 2`] = `"<script id="cloud-shell-data" type="application/json">{"apps":[{"id":"spaces","label":"Spaces","href":"/app/spaces","match":"/app/spaces","iconClass":"ti ti-layout-kanban","defaultVisible":true}],"legalLinks":[],"theme":"system","searchLinks":{},"appId":"spaces","platform":"apple","helpFailed":true}</script><div class="help-shell app-accent-scope flex min-h-0 flex-col " data-surface="page" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><header class="help-head" data-help-head><div class="help-head-inner help-measure"><!--$--><div class="help-head-row"><!--$--><span class="help-head-tile" aria-hidden="true"><i class="ti ti-layout-kanban"></i></span><!--/--><h2 id="layout-help-title" class="help-head-title">Help for Spaces</h2><div class="help-head-actions" role="group" aria-label="Help actions"><!--$--><span class="k2b-dropdown "><!--$--><button data-help-menu="" aria-controls="k2b-dropdown-#1" aria-expanded="false" aria-haspopup="menu" title="More Help actions" aria-label="More Help actions" type="button" class="k2b-button k2b-icon-button k2b-dropdown__trigger " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-dots" aria-hidden="true"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#2" role="tooltip" popover="manual" class="k2b-tooltip">More Help actions</span><!--/--><div id="k2b-dropdown-#1" popover="auto" role="menu" aria-label="More Help actions" class="k2b-dropdown__menu " style="" data-variant="default" data-position="bottom-left"><button type="button" role="menuitem" tabindex="-1" class="k2b-dropdown__item " disabled aria-disabled="true"><i class="ti ti-markdown" aria-hidden="true"></i><span class="k2b-dropdown__copy"><span>Copy as Markdown</span><!--$--><!--/--></span></button></div></span><!--/--><!--$--><!--/--></div></div><!--/--><!--$--><div class="k2b-field help-head-search"><!--$--><!--/--><!--$--><!--/--><!--$--><div class="k2b-input-shell k2b-text-input" style=""
|
|
15
|
+
exports[`Help server frames shortcuts on a Layout page and a failed Help read 2`] = `"<script id="cloud-shell-data" type="application/json">{"apps":[{"id":"spaces","label":"Spaces","href":"/app/spaces","match":"/app/spaces","iconClass":"ti ti-layout-kanban","defaultVisible":true}],"legalLinks":[],"theme":"system","searchLinks":{},"appId":"spaces","platform":"apple","helpFailed":true}</script><div class="help-shell app-accent-scope flex min-h-0 flex-col " data-surface="page" style="--app-accent:#16a34a;--app-ink-light:#117f3a;--app-ink-dark:#3bb267;--app-selected-light:#eff9f2;--app-selected-dark:#122922;--app-selected-nav-light:#e8f6ed;--app-selected-nav-dark:#122d23"><!--$--><header class="help-head" data-help-head><div class="help-head-inner help-measure"><!--$--><div class="help-head-row"><!--$--><span class="help-head-tile" aria-hidden="true"><i class="ti ti-layout-kanban"></i></span><!--/--><h2 id="layout-help-title" class="help-head-title">Help for Spaces</h2><div class="help-head-actions" role="group" aria-label="Help actions"><!--$--><span class="k2b-dropdown "><!--$--><button data-help-menu="" aria-controls="k2b-dropdown-#1" aria-expanded="false" aria-haspopup="menu" title="More Help actions" aria-label="More Help actions" type="button" class="k2b-button k2b-icon-button k2b-dropdown__trigger " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-dots" aria-hidden="true"></i></span><!--$--><!--/--></button><span id="k2b-tooltip-#2" role="tooltip" popover="manual" class="k2b-tooltip">More Help actions</span><!--/--><div id="k2b-dropdown-#1" popover="auto" role="menu" aria-label="More Help actions" class="k2b-dropdown__menu " style="" data-variant="default" data-position="bottom-left"><button type="button" role="menuitem" tabindex="-1" class="k2b-dropdown__item " disabled aria-disabled="true"><i class="ti ti-markdown" aria-hidden="true"></i><span class="k2b-dropdown__copy"><span>Copy as Markdown</span><!--$--><!--/--></span></button></div></span><!--/--><!--$--><!--/--></div></div><!--/--><!--$--><div class="k2b-field help-head-search"><!--$--><!--/--><!--$--><!--/--><!--$--><div class="k2b-input-shell k2b-text-input" style=""><!--$--><span class="k2b-input-shell__icon k2b-text-input__icon" aria-hidden="true"><i class="ti ti-search"></i><i class="ti ti-search"></i></span><!--/--><!--$--><!--/--><!--$--><input data-help-search="" placeholder="Search help…" id="k2b-field-#3" class="k2b-input " type="search" value="" aria-label="Search help" /><!--/--><!--$--><!--/--><!--$--><!--/--><!--$--><!--/--></div><!--/--><!--$--><!--/--></div><!--/--></div></header><!--/--><!--$--><div class="p-4 sm:p-5"><div data-help-results class="help-start help-measure" style=""><!--!$--><!--!$--><article data-help-unavailable="" class="k2b-notice-card " data-tone="danger"><div class="k2b-notice-card__content"><!--$--><div class="k2b-notice-card__head"><p class="k2b-notice-card__title">Help could not be loaded</p><!--$--><!--/--></div><!--/--><!--$--><p class="k2b-notice-card__description">Reload the page to try again.</p><!--/--><!--$--><div class="k2b-notice-card__body "><button type="button" class="k2b-button " data-size="sm" data-variant="secondary" ><span class="k2b-button__label">Reload</span><!--$--><!--/--></button></div><!--/--></div></article><section class="help-start-section help-start-shortcuts" data-help-shortcuts aria-labelledby="help-start-shortcuts-title"><h3 id="help-start-shortcuts-title" class="help-start-heading"><i class="ti ti-keyboard" aria-hidden="true"></i><!--$-->Keyboard shortcuts<!--/--></h3><div class="help-shortcut-groups"><section class="help-shortcut-group" data-help-shortcut-group="everywhere" aria-label="Everywhere"><h4 class="help-shortcut-group-title" aria-hidden="true">Everywhere</h4><ul><li class="help-shortcut" title="Search across apps, pages, files, and items."><span class="help-shortcut-title">Open global search</span><!--$--><kbd class="k2b-kbd"><span class="k2b-sr-only">Command K</span><span class="k2b-kbd__keys" aria-hidden="true"><kbd class="k2b-kbd__key">⌘</kbd><kbd class="k2b-kbd__key">K</kbd></span></kbd><!--/--></li><li class="help-shortcut" title="Open help, guides, and keyboard shortcuts."><span class="help-shortcut-title">Open shortcut help</span><!--$--><kbd class="k2b-kbd"><span class="k2b-sr-only">Shift /</span><span class="k2b-kbd__keys" aria-hidden="true"><kbd class="k2b-kbd__key">⇧</kbd><kbd class="k2b-kbd__key">/</kbd></span></kbd><!--/--></li></ul></section></div></section></div><span class="sr-only" aria-live="polite"></span></div><!--/--></div>"`;
|
|
16
16
|
|
|
17
17
|
exports[`server provider start frame 1`] = `"<div class="help-shell app-accent-scope flex h-full min-h-0 flex-col" data-surface="panel" style="--app-accent:#16a34a"><header class="help-head" data-help-head><div class="help-head-inner help-measure"><div class="help-head-row"><solid-island data-id="acff793997b5" data-props="{"t":{"t":10,"i":0,"p":{"k":["back","tile"],"v":[{"t":2,"s":3},{"t":1,"s":"ti ti-layout-kanban"}]},"o":0},"f":127,"m":[]}" data-file="HelpPanelBack.island.tsx"><span class="help-head-tile" aria-hidden="true"><i class="ti ti-layout-kanban"></i></span></solid-island><h2 id="layout-help-title" class="help-head-title">Spaces</h2><div class="help-head-actions" role="group" aria-label="Help actions"><solid-island data-id="1d4dd75de534" data-props="{"t":{"t":10,"i":0,"p":{"k":[],"v":[]},"o":0},"f":127,"m":[]}" data-file="HelpPanelMenu.island.tsx"><span class="k2b-dropdown "><button aria-expanded="false" aria-haspopup="menu" data-help-menu="" title="More Help actions" aria-label="More Help actions" type="button" class="k2b-button k2b-icon-button k2b-dropdown__trigger " data-size="md" data-variant="ghost" ><span class="k2b-button__label"><i class="ti ti-dots" aria-hidden="true"></i></span></button><span id="k2b-tooltip-#1" role="tooltip" popover="manual" class="k2b-tooltip">More Help actions</span></span></solid-island></div></div><div class="k2b-field help-head-search"><div class="k2b-input-shell k2b-text-input" style=""><span class="k2b-input-shell__icon k2b-text-input__icon" aria-hidden="true"><i class="ti ti-search"></i><i class="ti ti-search"></i></span><input data-help-search="" placeholder="Search help…" id="k2b-field-#2" class="k2b-input " type="search" value="" aria-label="Search help" /></div></div></div></header><div data-scroll-fade-axis="vertical" data-orientation="vertical" data-scroll-fade-mode="both" class="k2b-scroll-area min-h-0 flex-1 p-4 sm:p-5 " ><div class="help-start help-measure" data-help-results><div data-help-start-content><solid-island data-id="e36bedf30054" data-props="{"t":{"t":10,"i":0,"p":{"k":["topics"],"v":[{"t":9,"i":1,"a":[],"o":0}]},"o":0},"f":127,"m":[]}" data-file="HelpPanelView.island.tsx"></solid-island><section class="help-start-section" data-help-tasks aria-labelledby="help-start-tasks-title"><h3 id="help-start-tasks-title" class="help-start-heading"><i class="ti ti-checklist" aria-hidden="true"></i>What do you want to do?</h3><ul class="help-start-tiles" data-help-tiles><li><button type="button" class="help-start-tile focus-ui" data-help-topic="share"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-share"></i></span><span class="help-start-tile-title">Share a Space</span><span class="help-start-tile-description">Invite people to work with you.</span></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-1"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-1</span></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-2"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-2</span></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-3"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-3</span></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-4"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-4</span></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-5"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-5</span></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-6"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-6</span></button></li><li><button type="button" class="help-start-tile focus-ui" data-help-topic="task-7"><span class="help-topic-icon k2b-icon-tile help-start-tile-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-start-tile-title">Article task-7</span></button></li></ul><ul class="help-start-rows " data-help-more-tasks=""><li><button type="button" class="help-start-row focus-ui" data-help-topic="task-8"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Article task-8</span></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li><li><button type="button" class="help-start-row focus-ui" data-help-topic="task-9"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Article task-9</span></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul></section><div class="help-start-groups"><section class="help-start-section" data-help-group="start" aria-labelledby="help-start-start-title"><h3 id="help-start-start-title" class="help-start-heading"><i class="ti ti-rocket" aria-hidden="true"></i>Get started</h3><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="first-steps"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">First steps</span><span class="help-article-link-description">Find your way around.</span></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul></section><section class="help-start-section" data-help-group="reference" aria-labelledby="help-start-reference-title"><h3 id="help-start-reference-title" class="help-start-heading"><i class="ti ti-book-2" aria-hidden="true"></i>Look up</h3><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="roles"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-users"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Roles</span></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul></section><section class="help-start-section" data-help-group="troubleshoot" aria-labelledby="help-start-troubleshoot-title"><h3 id="help-start-troubleshoot-title" class="help-start-heading"><i class="ti ti-lifebuoy" aria-hidden="true"></i>Solve problems</h3><ul class="help-start-rows "><li><button type="button" class="help-start-row focus-ui" data-help-topic="sync"><span class="help-topic-icon k2b-icon-tile help-start-row-icon app-accent-text" aria-hidden="true"><i class="ti ti-file-text"></i></span><span class="help-article-link-copy"><span class="help-article-link-title">Sync problems</span><span class="help-article-link-description">When changes do not arrive.</span></span><i class="ti ti-chevron-right help-start-row-arrow" aria-hidden="true"></i></button></li></ul></section></div><solid-island data-id="26463f9d7758" data-props="{"t":{"t":10,"i":0,"p":{"k":["appName","platform"],"v":[{"t":1,"s":"Spaces"},{"t":1,"s":"apple"}]},"o":0},"f":127,"m":[]}" data-file="HelpPanelShortcuts.island.tsx"><section class="help-start-section help-start-shortcuts" data-help-shortcuts aria-labelledby="help-start-shortcuts-title"><h3 id="help-start-shortcuts-title" class="help-start-heading"><i class="ti ti-keyboard" aria-hidden="true"></i>Keyboard shortcuts</h3><div class="help-shortcut-groups"><section class="help-shortcut-group" data-help-shortcut-group="everywhere" aria-label="Everywhere"><h4 class="help-shortcut-group-title" aria-hidden="true">Everywhere</h4><ul><li class="help-shortcut" title="Search across apps, pages, files, and items."><span class="help-shortcut-title">Open global search</span><kbd class="k2b-kbd"><span class="k2b-sr-only">Command K</span><span class="k2b-kbd__keys" aria-hidden="true"><kbd class="k2b-kbd__key">⌘</kbd><kbd class="k2b-kbd__key">K</kbd></span></kbd></li><li class="help-shortcut" title="Open help, guides, and keyboard shortcuts."><span class="help-shortcut-title">Open shortcut help</span><kbd class="k2b-kbd"><span class="k2b-sr-only">Shift /</span><span class="k2b-kbd__keys" aria-hidden="true"><kbd class="k2b-kbd__key">⇧</kbd><kbd class="k2b-kbd__key">/</kbd></span></kbd></li><li class="help-shortcut" title="Shows a panel beside the app."><span class="help-shortcut-title">Open or close the panel</span><kbd class="k2b-kbd"><span class="k2b-sr-only">Command J</span><span class="k2b-kbd__keys" aria-hidden="true"><kbd class="k2b-kbd__key">⌘</kbd><kbd class="k2b-kbd__key">J</kbd></span></kbd></li></ul></section></div></section></solid-island></div><solid-island data-id="3fcb37ddc7b6" data-props="{"t":{"t":10,"i":0,"p":{"k":[],"v":[]},"o":0},"f":127,"m":[]}" data-file="HelpPanelSearch.island.tsx"><!--!$--></solid-island></div><solid-island data-id="64a5176b688b" data-props="{"t":{"t":10,"i":0,"p":{"k":["topic"],"v":[{"t":2,"s":1}]},"o":0},"f":127,"m":[]}" data-file="HelpPanelArticle.island.tsx"><!--!$--></solid-island><span class="sr-only" aria-live="polite" data-help-announcement></span></div><script type="application/json" data-help-panel-data>{"documents":[{"id":"share","title":"Share a Space","description":"Invite people to work with you.","icon":"ti ti-share","order":1,"url":"/api/help/apps/spaces/share","searchUrl":"/api/help/apps/spaces/search"},{"id":"first-steps","title":"First steps","description":"Find your way around.","kind":"start","order":10,"url":"/api/help/apps/spaces/first-steps","searchUrl":"/api/help/apps/spaces/search"},{"id":"roles","title":"Roles","icon":"ti-users","kind":"reference","order":10,"url":"/api/help/apps/spaces/roles","searchUrl":"/api/help/apps/spaces/search"},{"id":"sync","title":"Sync problems","description":"When changes do not arrive.","kind":"troubleshoot","order":10,"url":"/api/help/apps/spaces/sync","searchUrl":"/api/help/apps/spaces/search"},{"id":"task-1","title":"Article task-1","order":20,"url":"/api/help/apps/spaces/task-1","searchUrl":"/api/help/apps/spaces/search"},{"id":"task-2","title":"Article task-2","order":21,"url":"/api/help/apps/spaces/task-2","searchUrl":"/api/help/apps/spaces/search"},{"id":"task-3","title":"Article task-3","order":22,"url":"/api/help/apps/spaces/task-3","searchUrl":"/api/help/apps/spaces/search"},{"id":"task-4","title":"Article task-4","order":23,"url":"/api/help/apps/spaces/task-4","searchUrl":"/api/help/apps/spaces/search"},{"id":"task-5","title":"Article task-5","order":24,"url":"/api/help/apps/spaces/task-5","searchUrl":"/api/help/apps/spaces/search"},{"id":"task-6","title":"Article task-6","order":25,"url":"/api/help/apps/spaces/task-6","searchUrl":"/api/help/apps/spaces/search"},{"id":"task-7","title":"Article task-7","order":26,"url":"/api/help/apps/spaces/task-7","searchUrl":"/api/help/apps/spaces/search"},{"id":"task-8","title":"Article task-8","order":27,"url":"/api/help/apps/spaces/task-8","searchUrl":"/api/help/apps/spaces/search"},{"id":"task-9","title":"Article task-9","order":28,"url":"/api/help/apps/spaces/task-9","searchUrl":"/api/help/apps/spaces/search"}],"appId":"spaces","pageBase":"/help/apps/spaces"}</script></div>"`;
|
|
18
18
|
|
|
@@ -16,6 +16,7 @@ export const buildAdminGroups = (apps: readonly RuntimeContext["apps"][number][]
|
|
|
16
16
|
{ href: "/admin/settings?tab=general", icon: "ti-app-window", label: t.general },
|
|
17
17
|
{ href: "/admin/outgoing-mail", icon: "ti-mail", label: t.outgoingMail },
|
|
18
18
|
{ href: "/admin/settings?tab=pdf-rendering", icon: "ti-file-type-pdf", label: t.pdfRendering },
|
|
19
|
+
{ href: "/admin/places-and-maps", icon: "ti-map-2", label: t.placesAndMaps },
|
|
19
20
|
{ href: "/admin/settings?tab=email-templates", icon: "ti-template", label: t.emailTemplates },
|
|
20
21
|
{ href: "/admin/settings?tab=security", icon: "ti-shield-lock", label: t.security },
|
|
21
22
|
{ href: "/admin/settings?tab=legal", icon: "ti-file-text", label: t.legal },
|
package/src/ssr/app-badges.ts
CHANGED
|
@@ -40,7 +40,10 @@ export const parseAppBadge = (body: unknown): number => {
|
|
|
40
40
|
const readBadge = async (endpoint: string, signal: AbortSignal): Promise<number> => {
|
|
41
41
|
try {
|
|
42
42
|
const response = await fetch(endpoint, { credentials: "same-origin", headers: { accept: "application/json" }, signal });
|
|
43
|
-
|
|
43
|
+
if (response.status === 200) return parseAppBadge(await response.json());
|
|
44
|
+
// Release the response without buffering an unused, potentially unbounded error body.
|
|
45
|
+
await response.body?.cancel();
|
|
46
|
+
return 0;
|
|
44
47
|
} catch {
|
|
45
48
|
// An unreachable or failing app shows no badge rather than a stale one.
|
|
46
49
|
return 0;
|
|
@@ -67,6 +70,8 @@ const readApprovalCounts = async (signal: AbortSignal): Promise<ApprovalCounts>
|
|
|
67
70
|
if (response.status === 200) {
|
|
68
71
|
const parsed = parseApprovalCounts(await response.json());
|
|
69
72
|
if (parsed) return parsed;
|
|
73
|
+
} else {
|
|
74
|
+
await response.body?.cancel();
|
|
70
75
|
}
|
|
71
76
|
} catch {
|
|
72
77
|
// A failing read clears approval counts just like an app badge.
|
|
@@ -18,7 +18,7 @@ Bun.plugin(plugin());
|
|
|
18
18
|
process.once("exit", () => rmSync(root, { recursive: true, force: true }));
|
|
19
19
|
|
|
20
20
|
const { Hono } = await import("hono");
|
|
21
|
-
const { AppWorkspace, Button, ScrollArea } = await import("@k2b/ui");
|
|
21
|
+
const { AppWorkspace, Button, ScrollArea, ViewTabs } = await import("@k2b/ui");
|
|
22
22
|
const { defineApp } = await import("../_internal/define-app");
|
|
23
23
|
const { person } = await import("../_internal/define-app.test-fixture");
|
|
24
24
|
const railSnapshot = await import("../services/rail-snapshot");
|
|
@@ -152,7 +152,7 @@ const listWorkspace = (head = false) =>
|
|
|
152
152
|
});
|
|
153
153
|
|
|
154
154
|
/** A sidebar-first overview that is the page itself, as Mail and Notebooks render. Invented content. */
|
|
155
|
-
const overviewWorkspace = () =>
|
|
155
|
+
const overviewWorkspace = (objects?: string) =>
|
|
156
156
|
createComponent(AppWorkspace, {
|
|
157
157
|
mobileSurface: "flush",
|
|
158
158
|
flat: true,
|
|
@@ -162,6 +162,8 @@ const overviewWorkspace = () =>
|
|
|
162
162
|
createComponent(AppWorkspace.Sidebar, {
|
|
163
163
|
id: "overview-navigation",
|
|
164
164
|
label: "Mailboxes",
|
|
165
|
+
mobile: objects ? "stacked" : undefined,
|
|
166
|
+
hidden: objects === "hidden",
|
|
165
167
|
get children() {
|
|
166
168
|
return createComponent(AppWorkspace.SidebarDesktop, {
|
|
167
169
|
get children() {
|
|
@@ -176,12 +178,30 @@ const overviewWorkspace = () =>
|
|
|
176
178
|
});
|
|
177
179
|
},
|
|
178
180
|
}),
|
|
181
|
+
objects === "mail" || objects === "contacts"
|
|
182
|
+
? createComponent(AppWorkspace.Head, {
|
|
183
|
+
views: createComponent(ViewTabs, {
|
|
184
|
+
label: "Views",
|
|
185
|
+
current: "all",
|
|
186
|
+
items: [
|
|
187
|
+
{ id: "all", label: "All", href: "#all" },
|
|
188
|
+
{ id: "recent", label: "Recent", href: "#recent" },
|
|
189
|
+
],
|
|
190
|
+
}),
|
|
191
|
+
primary: { label: "New object", icon: "ti ti-plus", href: "#new" },
|
|
192
|
+
})
|
|
193
|
+
: null,
|
|
179
194
|
createComponent(AppWorkspace.Content, {
|
|
180
195
|
get children() {
|
|
181
196
|
return createComponent(AppWorkspace.Main, {
|
|
182
197
|
get children() {
|
|
183
198
|
return Array.from({ length: 80 }, (_, index) =>
|
|
184
|
-
createComponent(Button, {
|
|
199
|
+
createComponent(Button, {
|
|
200
|
+
class: "overview-row",
|
|
201
|
+
variant: objects ? "ghost" : undefined,
|
|
202
|
+
align: "start",
|
|
203
|
+
children: `Message ${index + 1}`,
|
|
204
|
+
}),
|
|
185
205
|
);
|
|
186
206
|
},
|
|
187
207
|
});
|
|
@@ -234,7 +254,17 @@ const server = new Hono()
|
|
|
234
254
|
c: c as unknown as LayoutContextArg,
|
|
235
255
|
title: [{ title: "Home", href: "/" }, { title: "Mail" }],
|
|
236
256
|
get children() {
|
|
237
|
-
|
|
257
|
+
if (c.req.query("objects") === "nested")
|
|
258
|
+
return createComponent(AppWorkspace, {
|
|
259
|
+
get children() {
|
|
260
|
+
return createComponent(AppWorkspace.Content, {
|
|
261
|
+
get children() {
|
|
262
|
+
return overviewWorkspace("contacts");
|
|
263
|
+
},
|
|
264
|
+
});
|
|
265
|
+
},
|
|
266
|
+
});
|
|
267
|
+
return overviewWorkspace(c.req.query("objects"));
|
|
238
268
|
},
|
|
239
269
|
});
|
|
240
270
|
// `?plain=` renders a regular page without a workspace or scroll area: `main` is its page scroller.
|
|
@@ -399,7 +429,16 @@ export const html = async (path: string, options: Options = {}) => {
|
|
|
399
429
|
"Accept-Language": options.language ?? "en",
|
|
400
430
|
Cookie: `theme=${options.theme ?? "light"}`,
|
|
401
431
|
};
|
|
402
|
-
|
|
432
|
+
let markup = await (await server.request(path, { headers })).text();
|
|
433
|
+
if (new URL(path, "http://fixture.test").searchParams.get("object-host") === "island")
|
|
434
|
+
markup = new HTMLRewriter()
|
|
435
|
+
.on("#overview-navigation", {
|
|
436
|
+
element(element) {
|
|
437
|
+
element.before('<solid-island style="display:contents">', { html: true });
|
|
438
|
+
element.after("</solid-island>", { html: true });
|
|
439
|
+
},
|
|
440
|
+
})
|
|
441
|
+
.transform(markup);
|
|
403
442
|
const clean = new HTMLRewriter()
|
|
404
443
|
.on('script[src], script[type="module"]', { element: (element) => void element.remove() })
|
|
405
444
|
.on('link[rel="stylesheet"], link[rel="preload"], link[rel="modulepreload"]', { element: (element) => void element.remove() })
|
package/src/ssr/help.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Context } from "hono";
|
|
2
2
|
import { buildHelpDocumentPayload } from "../server/help-payload";
|
|
3
3
|
import { getLocale } from "../server/locale";
|
|
4
|
+
import { appAccessAuthority } from "../services/app-access";
|
|
4
5
|
import { createHelpReader } from "../services/help";
|
|
5
6
|
import type { HelpManifestResult } from "../services/help/types";
|
|
6
7
|
import { logger } from "../services/logging";
|
|
@@ -23,7 +24,7 @@ export const preloadLayoutHelp = async (c: Context, appId?: string): Promise<Hel
|
|
|
23
24
|
const id = appId ?? resolveCurrentApp(getRuntimeContext(c).apps, c.req.path)?.id;
|
|
24
25
|
if (!id) return null;
|
|
25
26
|
try {
|
|
26
|
-
const manifest = await createHelpReader(getLocale(c), c.get("actor")).manifest(id);
|
|
27
|
+
const manifest = await createHelpReader(getLocale(c), c.get("actor"), { authority: appAccessAuthority(c) }).manifest(id);
|
|
27
28
|
manifests.set(c, manifest);
|
|
28
29
|
return manifest;
|
|
29
30
|
} catch (error) {
|
|
@@ -42,7 +43,7 @@ export type LayoutHelpArticle = { payload: Omit<HelpDocumentPayload, "html">; pa
|
|
|
42
43
|
export const preloadLayoutHelpArticle = async (c: Context, appId: string, documentId: string): Promise<LayoutHelpArticle | null> => {
|
|
43
44
|
if (!c.get("user")) return null;
|
|
44
45
|
try {
|
|
45
|
-
const article = await createHelpReader(getLocale(c), c.get("actor")).read({ appId, documentId });
|
|
46
|
+
const article = await createHelpReader(getLocale(c), c.get("actor"), { authority: appAccessAuthority(c) }).read({ appId, documentId });
|
|
46
47
|
if (!article) return null;
|
|
47
48
|
const { html, ...payload } = buildHelpDocumentPayload(article, c.req.header("User-Agent") ?? "");
|
|
48
49
|
return { payload, parts: helpArticlePartsServer(html) };
|
package/src/ssr/index.ts
CHANGED
|
@@ -23,6 +23,6 @@ export { default as PanelLayout, type PanelLayoutProps } from "./PanelLayout";
|
|
|
23
23
|
export { default as PwaLayout, type PwaLayoutProps } from "./PwaLayout";
|
|
24
24
|
export { readPanelContext } from "./panel-context";
|
|
25
25
|
export { requestPath } from "./request-path";
|
|
26
|
-
export { getLocalizedRuntimeContext, getRuntimeContext, type RuntimeContext } from "./runtime";
|
|
26
|
+
export { getDisplayRuntimeContext, getLocalizedRuntimeContext, getRuntimeContext, type RuntimeContext } from "./runtime";
|
|
27
27
|
export type { UrlFilterField } from "./url-filter";
|
|
28
28
|
export { createUrlFilter, flag, list, oneOf, page, text } from "./url-filter";
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { PanelConsentSnapshot } from "../contracts/panel-context";
|
|
2
2
|
import type { RailSnapshot } from "../contracts/rail-preferences";
|
|
3
3
|
import type { User } from "../contracts/shared";
|
|
4
|
+
import type { AuthContext } from "../server/middleware/auth";
|
|
4
5
|
import type { LayoutAnnouncementsState } from "../server/middleware/settings";
|
|
5
6
|
import type { RuntimeContext } from "./runtime";
|
|
6
7
|
|
|
7
8
|
export type LayoutContext = {
|
|
9
|
+
get(key: "actor"): AuthContext["Variables"]["actor"] | undefined;
|
|
8
10
|
get(key: "user"): User | undefined;
|
|
9
11
|
get(key: "panelConsent"): PanelConsentSnapshot | undefined;
|
|
10
12
|
get(key: "railPreferences"): RailSnapshot | undefined;
|