@syntrologie/adapt-nav 2.8.0-canary.51 → 2.8.0-canary.511
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/dist/ContactCardLit.d.ts +57 -0
- package/dist/ContactCardLit.d.ts.map +1 -0
- package/dist/ContactCardLit.test.d.ts +2 -0
- package/dist/ContactCardLit.test.d.ts.map +1 -0
- package/dist/NavWidgetLit.d.ts +63 -0
- package/dist/NavWidgetLit.d.ts.map +1 -0
- package/dist/NavWidgetLit.editable.d.ts +151 -0
- package/dist/NavWidgetLit.editable.d.ts.map +1 -0
- package/dist/NavWidgetLit.test.d.ts +8 -0
- package/dist/NavWidgetLit.test.d.ts.map +1 -0
- package/dist/cdn.d.ts +34 -31
- package/dist/cdn.d.ts.map +1 -1
- package/dist/cdn.js +31 -46
- package/dist/cdn.js.map +7 -0
- package/dist/chunk-FGNIZYR3.js +645 -0
- package/dist/chunk-FGNIZYR3.js.map +7 -0
- package/dist/chunk-GX34H3BQ.js +825 -0
- package/dist/chunk-GX34H3BQ.js.map +7 -0
- package/dist/editor.d.ts +65 -21
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +5628 -307
- package/dist/editor.js.map +7 -0
- package/dist/nav-item-editor.d.ts +43 -0
- package/dist/nav-item-editor.d.ts.map +1 -0
- package/dist/resolveNavTarget.d.ts +61 -0
- package/dist/resolveNavTarget.d.ts.map +1 -0
- package/dist/resolveNavTarget.test.d.ts +2 -0
- package/dist/resolveNavTarget.test.d.ts.map +1 -0
- package/dist/runtime.d.ts +32 -8
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +21 -211
- package/dist/runtime.js.map +7 -0
- package/dist/schema.d.ts +375 -203
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +155 -125
- package/dist/schema.js.map +7 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +15 -15
- package/dist/NavWidget.d.ts +0 -31
- package/dist/NavWidget.d.ts.map +0 -1
- package/dist/NavWidget.js +0 -476
- package/dist/summarize.js +0 -51
- package/dist/types.js +0 -18
- package/node_modules/@syntro/design-system/README.md +0 -335
- package/node_modules/@syntro/design-system/dist/assets/syntrologie-logo.svg +0 -21
- package/node_modules/@syntro/design-system/dist/assets/syntrologie-logomark.svg +0 -10
- package/node_modules/@syntro/design-system/dist/index.d.ts +0 -8
- package/node_modules/@syntro/design-system/dist/index.d.ts.map +0 -1
- package/node_modules/@syntro/design-system/dist/index.js +0 -7
- package/node_modules/@syntro/design-system/dist/tailwind-preset.d.ts +0 -19
- package/node_modules/@syntro/design-system/dist/tailwind-preset.d.ts.map +0 -1
- package/node_modules/@syntro/design-system/dist/tailwind-preset.js +0 -455
- package/node_modules/@syntro/design-system/dist/tokens/colors.css +0 -464
- package/node_modules/@syntro/design-system/dist/tokens/colors.d.ts +0 -874
- package/node_modules/@syntro/design-system/dist/tokens/colors.d.ts.map +0 -1
- package/node_modules/@syntro/design-system/dist/tokens/colors.js +0 -564
- package/node_modules/@syntro/design-system/dist/tokens/effects.css +0 -43
- package/node_modules/@syntro/design-system/dist/tokens/effects.d.ts +0 -139
- package/node_modules/@syntro/design-system/dist/tokens/effects.d.ts.map +0 -1
- package/node_modules/@syntro/design-system/dist/tokens/effects.js +0 -121
- package/node_modules/@syntro/design-system/dist/tokens/index.d.ts +0 -10
- package/node_modules/@syntro/design-system/dist/tokens/index.d.ts.map +0 -1
- package/node_modules/@syntro/design-system/dist/tokens/index.js +0 -9
- package/node_modules/@syntro/design-system/package.json +0 -55
- package/node_modules/@syntro/design-system/src/assets/syntrologie-logo.svg +0 -21
- package/node_modules/@syntro/design-system/src/assets/syntrologie-logomark.svg +0 -10
- package/node_modules/@syntrologie/sdk-contracts/dist/index.d.ts +0 -129
- package/node_modules/@syntrologie/sdk-contracts/dist/index.js +0 -15
- package/node_modules/@syntrologie/sdk-contracts/dist/schemas.d.ts +0 -2225
- package/node_modules/@syntrologie/sdk-contracts/dist/schemas.js +0 -162
- package/node_modules/@syntrologie/sdk-contracts/package.json +0 -33
- package/node_modules/@syntrologie/shared-editor-ui/dist/cn.d.ts +0 -2
- package/node_modules/@syntrologie/shared-editor-ui/dist/cn.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/cn.js +0 -3
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/AnchorPicker.d.ts +0 -34
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/AnchorPicker.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/AnchorPicker.js +0 -158
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/BeforeAfterToggle.d.ts +0 -7
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/BeforeAfterToggle.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/BeforeAfterToggle.js +0 -9
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/ConditionStatusLine.d.ts +0 -23
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/ConditionStatusLine.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/ConditionStatusLine.js +0 -40
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/DetectionBadge.d.ts +0 -7
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/DetectionBadge.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/DetectionBadge.js +0 -22
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/DismissedSection.d.ts +0 -8
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/DismissedSection.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/DismissedSection.js +0 -9
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditBackButton.d.ts +0 -7
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditBackButton.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditBackButton.js +0 -4
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorBody.d.ts +0 -7
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorBody.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorBody.js +0 -4
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorCard.d.ts +0 -13
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorCard.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorCard.js +0 -15
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorFooter.d.ts +0 -7
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorFooter.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorFooter.js +0 -4
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorHeader.d.ts +0 -9
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorHeader.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorHeader.js +0 -4
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorInput.d.ts +0 -8
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorInput.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorInput.js +0 -8
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorLayout.d.ts +0 -7
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorLayout.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorLayout.js +0 -4
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorPanelShell.d.ts +0 -25
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorPanelShell.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorPanelShell.js +0 -379
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorSelect.d.ts +0 -8
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorSelect.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorSelect.js +0 -8
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorTextarea.d.ts +0 -8
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorTextarea.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorTextarea.js +0 -17
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/ElementHighlight.d.ts +0 -32
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/ElementHighlight.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/ElementHighlight.js +0 -85
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EmptyState.d.ts +0 -6
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EmptyState.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/EmptyState.js +0 -4
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/GroupHeader.d.ts +0 -8
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/GroupHeader.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/GroupHeader.js +0 -5
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/TriggerJourney.d.ts +0 -12
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/TriggerJourney.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/TriggerJourney.js +0 -40
- package/node_modules/@syntrologie/shared-editor-ui/dist/formatConditionLabel.d.ts +0 -26
- package/node_modules/@syntrologie/shared-editor-ui/dist/formatConditionLabel.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/formatConditionLabel.js +0 -202
- package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useElementRect.d.ts +0 -8
- package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useElementRect.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useElementRect.js +0 -46
- package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useTriggerWhenStatus.d.ts +0 -24
- package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useTriggerWhenStatus.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useTriggerWhenStatus.js +0 -86
- package/node_modules/@syntrologie/shared-editor-ui/dist/index.d.ts +0 -34
- package/node_modules/@syntrologie/shared-editor-ui/dist/index.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/index.js +0 -25
- package/node_modules/@syntrologie/shared-editor-ui/dist/utils/elementChainRecommender.d.ts +0 -37
- package/node_modules/@syntrologie/shared-editor-ui/dist/utils/elementChainRecommender.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/utils/elementChainRecommender.js +0 -52
- package/node_modules/@syntrologie/shared-editor-ui/dist/utils/selectorGenerator.d.ts +0 -22
- package/node_modules/@syntrologie/shared-editor-ui/dist/utils/selectorGenerator.d.ts.map +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/utils/selectorGenerator.js +0 -143
- package/node_modules/@syntrologie/shared-editor-ui/package.json +0 -47
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adaptive Nav — ContactCardLit (`<syntro-contact-card>`)
|
|
3
|
+
*
|
|
4
|
+
* The human-handoff tile (iGlow, 2026-08-13): when a site's own chat widget
|
|
5
|
+
* is suppressed for the concierge audience, this card replaces its FUNCTION —
|
|
6
|
+
* an always-reachable escape hatch to a real person. One deck card: heading,
|
|
7
|
+
* model-authorable framing line, and a grid of one-tap channel pills.
|
|
8
|
+
*
|
|
9
|
+
* Trust contract: `channels` are ADMIN-PINNED config facts (real phone /
|
|
10
|
+
* booking page from the customer's own site). The model may author only
|
|
11
|
+
* `heading`/`framing` — never a destination. Device-action values (tel:,
|
|
12
|
+
* sms:, mailto:) fire a real anchor click so the OS dialer/composer opens
|
|
13
|
+
* with the destination VISIBLE; `book`/path values navigate same-origin via
|
|
14
|
+
* pushState like every nav link. Anything else is dropped at render.
|
|
15
|
+
*
|
|
16
|
+
* Light DOM (like NavWidgetLit) so --sc-* theme tokens flow in without a
|
|
17
|
+
* shadow boundary; styling via styleMap objects resolving from tokens with
|
|
18
|
+
* px fallbacks only (host rem-base immunity, 2026-08-12). The canvas owns
|
|
19
|
+
* the design vocabulary — every visual value here rides a --sc-* var.
|
|
20
|
+
*/
|
|
21
|
+
import { LitElement, nothing } from 'lit';
|
|
22
|
+
export interface ContactChannel {
|
|
23
|
+
kind: string;
|
|
24
|
+
label: string;
|
|
25
|
+
value: string;
|
|
26
|
+
}
|
|
27
|
+
export declare class ContactCardLit extends LitElement {
|
|
28
|
+
static properties: {
|
|
29
|
+
heading: {
|
|
30
|
+
type: StringConstructor;
|
|
31
|
+
};
|
|
32
|
+
framing: {
|
|
33
|
+
type: StringConstructor;
|
|
34
|
+
};
|
|
35
|
+
channels: {
|
|
36
|
+
type: ArrayConstructor;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
heading: string;
|
|
40
|
+
framing: string;
|
|
41
|
+
channels: ContactChannel[];
|
|
42
|
+
/**
|
|
43
|
+
* Same-origin navigation seam. Framework-aware (Next/Nuxt/Angular routers)
|
|
44
|
+
* with a FULL location.assign fallback — never bare pushState: on a
|
|
45
|
+
* non-SPA host (WordPress — iglow) pushState changes the URL bar and loads
|
|
46
|
+
* nothing. Injectable for tests.
|
|
47
|
+
*/
|
|
48
|
+
navigate: (url: string) => void;
|
|
49
|
+
createRenderRoot(): HTMLElement;
|
|
50
|
+
private _activate;
|
|
51
|
+
render(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
52
|
+
}
|
|
53
|
+
/** Idempotent element registration — called by ContactCardMountable on first
|
|
54
|
+
* mount (regression: a silently-dropped side-effect import shipped a bundle
|
|
55
|
+
* where the element was never defined and the card rendered empty). */
|
|
56
|
+
export declare function registerContactCardLit(): void;
|
|
57
|
+
//# sourceMappingURL=ContactCardLit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContactCardLit.d.ts","sourceRoot":"","sources":["../src/ContactCardLit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAQ,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAOhD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAuED,qBAAa,cAAe,SAAQ,UAAU;IAC5C,OAAgB,UAAU;;;;;;;;;;MAIxB;IAEF,OAAO,SAAsB;IAC7B,OAAO,SAAM;IACb,QAAQ,EAAE,cAAc,EAAE,CAAM;IAEhC;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAI7B;IAGO,gBAAgB,IAAI,WAAW;IAIxC,OAAO,CAAC,SAAS,CAYf;IAEO,MAAM;CAoChB;AAED;;uEAEuE;AACvE,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContactCardLit.test.d.ts","sourceRoot":"","sources":["../src/ContactCardLit.test.ts"],"names":[],"mappings":"AAYA,OAAO,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adaptive Nav - NavWidgetLit Web Component
|
|
3
|
+
*
|
|
4
|
+
* Lit web component equivalent of NavWidget.tsx. Renders a collapsible
|
|
5
|
+
* navigation tips accordion with per-item conditional visibility, framework-aware
|
|
6
|
+
* navigation, and CSS variable theming.
|
|
7
|
+
*
|
|
8
|
+
* Decorator-free: uses `static override properties` (tsconfig has no
|
|
9
|
+
* experimentalDecorators).
|
|
10
|
+
*
|
|
11
|
+
* Uses light DOM (createRenderRoot returns this) so host-page CSS variables
|
|
12
|
+
* (--sc-*) are inherited without crossing a shadow boundary.
|
|
13
|
+
*/
|
|
14
|
+
import { LitElement } from 'lit';
|
|
15
|
+
import type { NavConfig, NavWidgetRuntime } from './types';
|
|
16
|
+
/** Browser side effects used by navigation clicks. Injectable for host adapters and tests. */
|
|
17
|
+
export interface NavNavigationPort {
|
|
18
|
+
open(url: string): void;
|
|
19
|
+
fullNavigate(url: string): void;
|
|
20
|
+
pushState(url: string): void;
|
|
21
|
+
}
|
|
22
|
+
export declare class NavWidgetLit extends LitElement {
|
|
23
|
+
#private;
|
|
24
|
+
createRenderRoot(): this;
|
|
25
|
+
static properties: {
|
|
26
|
+
config: {
|
|
27
|
+
attribute: boolean;
|
|
28
|
+
};
|
|
29
|
+
runtime: {
|
|
30
|
+
attribute: boolean;
|
|
31
|
+
};
|
|
32
|
+
instanceId: {
|
|
33
|
+
type: StringConstructor;
|
|
34
|
+
};
|
|
35
|
+
_expandedIds: {
|
|
36
|
+
state: boolean;
|
|
37
|
+
};
|
|
38
|
+
_renderTick: {
|
|
39
|
+
state: boolean;
|
|
40
|
+
};
|
|
41
|
+
_hoveredId: {
|
|
42
|
+
state: boolean;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
config: NavConfig;
|
|
46
|
+
runtime: NavWidgetRuntime | undefined;
|
|
47
|
+
instanceId: string;
|
|
48
|
+
navigationPort: NavNavigationPort;
|
|
49
|
+
/** @internal */ _expandedIds: Set<string>;
|
|
50
|
+
/** @internal */ _renderTick: number;
|
|
51
|
+
/** @internal */ _hoveredId: string | null;
|
|
52
|
+
connectedCallback(): void;
|
|
53
|
+
disconnectedCallback(): void;
|
|
54
|
+
updated(changed: Map<string, unknown>): void;
|
|
55
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
56
|
+
}
|
|
57
|
+
export declare function registerNavWidgetLit(): void;
|
|
58
|
+
declare global {
|
|
59
|
+
interface HTMLElementTagNameMap {
|
|
60
|
+
'syntro-nav-tips': NavWidgetLit;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=NavWidgetLit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavWidgetLit.d.ts","sourceRoot":"","sources":["../src/NavWidgetLit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAMhD,OAAO,KAAK,EAAE,SAAS,EAAgB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAuGzE,8FAA8F;AAC9F,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAmBD,qBAAa,YAAa,SAAQ,UAAU;;IAGjC,gBAAgB;IAMzB,OAAgB,UAAU;;;;;;;;;;;;;;;;;;;MAUxB;IAIF,MAAM,EAAE,SAAS,CAA4D;IAC7E,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAa;IAClD,UAAU,EAAE,MAAM,CAAgB;IAClC,cAAc,EAAE,iBAAiB,CAAyB;IAI1D,gBAAgB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IACvD,gBAAgB,CAAC,WAAW,SAAK;IACjC,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IASzC,iBAAiB,IAAI,IAAI;IAOzB,oBAAoB,IAAI,IAAI;IAO5B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAyU5C,MAAM;CAuFhB;AAQD,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,YAAY,CAAC;KACjC;CACF"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adaptive Nav - NavWidgetLit.editable
|
|
3
|
+
*
|
|
4
|
+
* Editable variant of the Nav tips accordion for the canvas editor surface.
|
|
5
|
+
* Renders the same tip rows as <syntro-nav-tips> but adds:
|
|
6
|
+
* - Pencil button per row (shows on hover, calls controller.editItem on click)
|
|
7
|
+
* - Pencil click calls controller.editItem to open the modal editor
|
|
8
|
+
* - Read-only fallback when controller is null
|
|
9
|
+
* - Normal clicks pass through — only pencil and drag handle trigger edit actions
|
|
10
|
+
*
|
|
11
|
+
* Tag name: <syntro-nav-tips-editable>
|
|
12
|
+
*
|
|
13
|
+
* Decorator-free: uses `static override properties` (matches codebase pattern).
|
|
14
|
+
* Light DOM: inherits host-page CSS variables (same as <syntro-nav-tips>).
|
|
15
|
+
*
|
|
16
|
+
* Cross-package import safety:
|
|
17
|
+
* The controller is typed as a structural `ControllerLike` interface defined
|
|
18
|
+
* locally — NOT imported from @syntrologie/editor-sdk. This prevents a
|
|
19
|
+
* dependency cycle. The real EditModeController satisfies ControllerLike
|
|
20
|
+
* structurally.
|
|
21
|
+
*
|
|
22
|
+
* Similarly, `makeSortable` is passed in as a `SortableFn` option rather than
|
|
23
|
+
* imported directly — matching the FAQ editable widget pattern (Alternative C
|
|
24
|
+
* from the architecture decision log). The sortable is wired via _attachSortable()
|
|
25
|
+
* in the updated() lifecycle hook, exactly mirroring FAQAccordionEditableElement.
|
|
26
|
+
*
|
|
27
|
+
* Click strategy:
|
|
28
|
+
* Row clicks pass through normally — the editable variant does NOT intercept
|
|
29
|
+
* them. Only the pencil button (opens modal editor) and drag handle (reorder)
|
|
30
|
+
* trigger edit-mode actions. This lets the underlying widget behavior (e.g.
|
|
31
|
+
* navigation, scrolling) work as expected in the editor preview.
|
|
32
|
+
*/
|
|
33
|
+
import { LitElement } from 'lit';
|
|
34
|
+
import type { NavConfig } from './types';
|
|
35
|
+
/**
|
|
36
|
+
* Structural interface — describes only the methods the editable widget needs.
|
|
37
|
+
* The real EditModeController satisfies this by structural subtyping.
|
|
38
|
+
*
|
|
39
|
+
* `tileId` (the host tile's id, threaded in via `instanceId` at mount) scopes
|
|
40
|
+
* controller calls to the active tile when a canvas has multiple Nav tiles.
|
|
41
|
+
* It is optional so single-tile and v2 actions-shape canvases continue to work.
|
|
42
|
+
*/
|
|
43
|
+
export interface ControllerLike {
|
|
44
|
+
editItem(adaptive: string, itemId: string, tileId?: string): void;
|
|
45
|
+
editContainer(adaptive: string, tileId?: string): void;
|
|
46
|
+
isModalOpen(): boolean;
|
|
47
|
+
reorderItems(adaptive: string, newOrder: string[], tileId?: string): void;
|
|
48
|
+
}
|
|
49
|
+
/** Return value from makeSortable. */
|
|
50
|
+
export interface SortableHandle {
|
|
51
|
+
destroy(): void;
|
|
52
|
+
}
|
|
53
|
+
/** Options subset that NavTipsEditableElement passes into the sortable. */
|
|
54
|
+
export interface SortableOptions {
|
|
55
|
+
itemSelector: string;
|
|
56
|
+
handleSelector: string;
|
|
57
|
+
getItems: () => string[];
|
|
58
|
+
onReorder: (newOrder: string[]) => void;
|
|
59
|
+
liveRegion: HTMLElement;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Structural type matching `makeSortable` from editor-sdk's sortable.ts.
|
|
63
|
+
* Injected at mount time by NavWidgetLitEditableMountable.
|
|
64
|
+
* Phase 3.3 will actually wire this; it is accepted here for forward compat.
|
|
65
|
+
*/
|
|
66
|
+
export type SortableFn = (host: HTMLElement, opts: SortableOptions) => SortableHandle;
|
|
67
|
+
/**
|
|
68
|
+
* <syntro-nav-tips-editable> — light-DOM Lit element.
|
|
69
|
+
*
|
|
70
|
+
* Set properties imperatively (no attribute serialisation for objects):
|
|
71
|
+
* el.navConfig = { ... };
|
|
72
|
+
* el.controller = editModeControllerInstance; // null → read-only
|
|
73
|
+
*/
|
|
74
|
+
export declare class NavTipsEditableElement extends LitElement {
|
|
75
|
+
static properties: {
|
|
76
|
+
navConfig: {
|
|
77
|
+
attribute: boolean;
|
|
78
|
+
};
|
|
79
|
+
controller: {
|
|
80
|
+
attribute: boolean;
|
|
81
|
+
};
|
|
82
|
+
tileId: {
|
|
83
|
+
attribute: boolean;
|
|
84
|
+
};
|
|
85
|
+
_hoveredId: {
|
|
86
|
+
state: boolean;
|
|
87
|
+
};
|
|
88
|
+
_containerHovered: {
|
|
89
|
+
state: boolean;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
navConfig: NavConfig;
|
|
93
|
+
/** Null when loaded without an editor context — renders read-only list. */
|
|
94
|
+
controller: ControllerLike | null;
|
|
95
|
+
/**
|
|
96
|
+
* Host tile id, threaded in via the mountable's `instanceId`. Scopes every
|
|
97
|
+
* controller call so the right tile is targeted when the canvas has more
|
|
98
|
+
* than one Nav tile (per-route navs). Empty string when unknown.
|
|
99
|
+
*/
|
|
100
|
+
tileId: string;
|
|
101
|
+
/**
|
|
102
|
+
* The `makeSortable` factory to use. Injected by NavWidgetLitEditableMountable
|
|
103
|
+
* from the editor-sdk bootstrap so there is no direct import from editor-sdk
|
|
104
|
+
* into this package (which would create a circular dependency).
|
|
105
|
+
*
|
|
106
|
+
* Null when running without the editor context (read-only mode).
|
|
107
|
+
*/
|
|
108
|
+
sortable: SortableFn | null;
|
|
109
|
+
/**
|
|
110
|
+
* Shared aria-live region from the modal host, threaded in via mount config.
|
|
111
|
+
* Falls back to a detached element when running outside the editor context.
|
|
112
|
+
*/
|
|
113
|
+
liveRegion: HTMLElement | null;
|
|
114
|
+
_hoveredId: string | null;
|
|
115
|
+
_containerHovered: boolean;
|
|
116
|
+
private _sortableHandle;
|
|
117
|
+
createRenderRoot(): this;
|
|
118
|
+
connectedCallback(): void;
|
|
119
|
+
/**
|
|
120
|
+
* Wire (or re-wire) the sortable whenever the properties it depends on change.
|
|
121
|
+
* `updated()` fires after every render, including the first, so we don't need
|
|
122
|
+
* a separate `firstUpdated()` call — using `updated()` alone avoids a double
|
|
123
|
+
* attach on mount (firstUpdated + updated both fire on first render).
|
|
124
|
+
*/
|
|
125
|
+
protected updated(changed: Map<string, unknown>): void;
|
|
126
|
+
disconnectedCallback(): void;
|
|
127
|
+
private _attachSortable;
|
|
128
|
+
private _handleEdit;
|
|
129
|
+
private _handlePencilClick;
|
|
130
|
+
private _handleContainerEdit;
|
|
131
|
+
private _renderRow;
|
|
132
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Mountable for <syntro-nav-tips-editable>.
|
|
136
|
+
*
|
|
137
|
+
* Follows the same mount pattern as NavWidgetLitMountable in runtime.ts.
|
|
138
|
+
* Accepts a `controller` in addition to `navConfig` so the editor can
|
|
139
|
+
* wire up the EditModeController at mount time.
|
|
140
|
+
*/
|
|
141
|
+
export declare const NavWidgetLitEditableMountable: {
|
|
142
|
+
mount(container: HTMLElement, config?: NavConfig & {
|
|
143
|
+
instanceId?: string;
|
|
144
|
+
controller?: ControllerLike | null;
|
|
145
|
+
/** makeSortable factory injected by editor-sdk bootstrap. Phase 3.3 wires this. */
|
|
146
|
+
sortable?: SortableFn | null;
|
|
147
|
+
/** Shared aria-live region from the modal host for sortable announcements. */
|
|
148
|
+
liveRegion?: HTMLElement | null;
|
|
149
|
+
}): () => void;
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=NavWidgetLit.editable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavWidgetLit.editable.d.ts","sourceRoot":"","sources":["../src/NavWidgetLit.editable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,SAAS,CAAC;AAMvD;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvD,WAAW,IAAI,OAAO,CAAC;IACvB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3E;AAMD,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,UAAU,EAAE,WAAW,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,KAAK,cAAc,CAAC;AA6JtF;;;;;;GAMG;AACH,qBAAa,sBAAuB,SAAQ,UAAU;IAKpD,OAAgB,UAAU;;;;;;;;;;;;;;;;MAQxB;IAMF,SAAS,EAAE,SAAS,CAIlB;IAEF,2EAA2E;IAC3E,UAAU,EAAE,cAAc,GAAG,IAAI,CAAQ;IAEzC;;;;OAIG;IACH,MAAM,SAAM;IAEZ;;;;;;OAMG;IACH,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAQ;IAEnC;;;OAGG;IACH,UAAU,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEtC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,iBAAiB,UAAS;IAM1B,OAAO,CAAC,eAAe,CAA+B;IAM7C,gBAAgB;IAIhB,iBAAiB,IAAI,IAAI;IASlC;;;;;OAKG;cACgB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAQtD,oBAAoB,IAAI,IAAI;IAMrC,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,UAAU;IAqDT,MAAM;CA8EhB;AAcD;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B;qBAE3B,WAAW,WACb,SAAS,GAAG;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;QACnC,mFAAmF;QACnF,QAAQ,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;QAC7B,8EAA8E;QAC9E,UAAU,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;KACjC;CAiCJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NavWidgetLit — Vitest + @open-wc/testing-helpers unit tests
|
|
3
|
+
*
|
|
4
|
+
* Tests cover: rendering, expand/collapse, nav-tip-clicked event, XSS rejection,
|
|
5
|
+
* empty state, category grouping, and visibility filtering (triggerWhen).
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=NavWidgetLit.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavWidgetLit.test.d.ts","sourceRoot":"","sources":["../src/NavWidgetLit.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/dist/cdn.d.ts
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CDN Entry Point for Adaptive Nav
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*
|
|
10
|
-
*
|
|
4
|
+
* Bundled for CDN delivery and loaded on-demand by the host runtime's
|
|
5
|
+
* AppLoader when a config references navigation/nav actions/widgets. Part of the
|
|
6
|
+
* kernel diet (ADR 2026-07-17-runtime-kernel-vs-lazy-presentation):
|
|
7
|
+
* this app left the builtin list — it has 1s+ loading tolerance, unlike
|
|
8
|
+
* adaptive-content which must act inside the anti-flicker window.
|
|
9
|
+
*
|
|
10
|
+
* Mirrors adaptive-gamification/src/cdn.ts: builds the manifest from the
|
|
11
|
+
* runtime export, then self-registers with the host's app registry on
|
|
12
|
+
* import. Without this entry, build-adaptives-only.js silently skips the
|
|
13
|
+
* package and the app is "lazy in name only" (no bundle on disk).
|
|
11
14
|
*/
|
|
12
15
|
export declare const manifest: {
|
|
13
16
|
id: string;
|
|
@@ -19,44 +22,44 @@ export declare const manifest: {
|
|
|
19
22
|
kind: "navigation:scrollTo" | "navigation:navigate";
|
|
20
23
|
executor: import("packages/sdk-contracts/dist").ActionExecutor<import("./types").ScrollToAction> | import("packages/sdk-contracts/dist").ActionExecutor<import("./types").NavigateAction>;
|
|
21
24
|
}[];
|
|
22
|
-
widgets: {
|
|
25
|
+
widgets: ({
|
|
23
26
|
id: string;
|
|
24
27
|
component: {
|
|
25
|
-
mount(container: HTMLElement, config?: import("
|
|
26
|
-
runtime?: import("./types").NavWidgetRuntime;
|
|
27
|
-
instanceId?: string;
|
|
28
|
-
}): (() => void) | undefined;
|
|
28
|
+
mount(container: HTMLElement, config?: (Record<string, unknown> & import("packages/sdk-contracts/dist").MountPlumbing) | null): () => void;
|
|
29
29
|
};
|
|
30
30
|
metadata: {
|
|
31
31
|
name: string;
|
|
32
32
|
description: string;
|
|
33
33
|
icon: string;
|
|
34
34
|
};
|
|
35
|
-
}
|
|
36
|
-
notifyWatchers: (props: Record<string, unknown>) => {
|
|
35
|
+
} | {
|
|
37
36
|
id: string;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
title: string | undefined;
|
|
43
|
-
body: string | undefined;
|
|
44
|
-
icon: string | undefined;
|
|
37
|
+
component: {
|
|
38
|
+
mount(container: HTMLElement, config?: (import("./types").NavConfig & import("packages/sdk-contracts/dist").MountPlumbing & {
|
|
39
|
+
runtime?: import("./types").NavWidgetRuntime;
|
|
40
|
+
}) | null): () => void;
|
|
45
41
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
};
|
|
55
|
-
getActionLabel(action: Record<string, unknown>): string;
|
|
42
|
+
metadata: {
|
|
43
|
+
name: string;
|
|
44
|
+
description: string;
|
|
45
|
+
icon: string;
|
|
46
|
+
};
|
|
47
|
+
})[];
|
|
48
|
+
notifyWatchers: unknown;
|
|
49
|
+
events: unknown;
|
|
56
50
|
};
|
|
57
51
|
metadata: {
|
|
58
52
|
isBuiltIn: boolean;
|
|
59
53
|
};
|
|
60
54
|
};
|
|
55
|
+
declare global {
|
|
56
|
+
interface Window {
|
|
57
|
+
SynOS?: {
|
|
58
|
+
appRegistry?: {
|
|
59
|
+
register?: (m: unknown) => void;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
61
64
|
export default manifest;
|
|
62
65
|
//# sourceMappingURL=cdn.d.ts.map
|
package/dist/cdn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdn.d.ts","sourceRoot":"","sources":["../src/cdn.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cdn.d.ts","sourceRoot":"","sources":["../src/cdn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;2BAkCkyL,CAAC;;;;;;;;;;;;;;;CApBvzL,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE;gBACZ,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;aACjC,CAAC;SACH,CAAC;KACH;CACF;AASD,eAAe,QAAQ,CAAC"}
|
package/dist/cdn.js
CHANGED
|
@@ -1,48 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
executor,
|
|
22
|
-
})),
|
|
23
|
-
widgets: runtime.widgets,
|
|
24
|
-
notifyWatchers: runtime.notifyWatchers,
|
|
25
|
-
},
|
|
26
|
-
editor: {
|
|
27
|
-
component: NavEditor,
|
|
28
|
-
panel: editorPanel,
|
|
29
|
-
getActionLabel(action) {
|
|
30
|
-
const config = action.config || {};
|
|
31
|
-
return config.title || action.kind || 'nav:tip';
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
metadata: {
|
|
35
|
-
isBuiltIn: false,
|
|
36
|
-
},
|
|
1
|
+
import {
|
|
2
|
+
runtime
|
|
3
|
+
} from "./chunk-GX34H3BQ.js";
|
|
4
|
+
import "./chunk-FGNIZYR3.js";
|
|
5
|
+
|
|
6
|
+
// src/cdn.ts
|
|
7
|
+
var manifest = {
|
|
8
|
+
id: runtime.id,
|
|
9
|
+
version: runtime.version,
|
|
10
|
+
name: runtime.name,
|
|
11
|
+
description: runtime.description,
|
|
12
|
+
runtime: {
|
|
13
|
+
actions: (runtime.executors ?? []).map(({ kind, executor }) => ({ kind, executor })),
|
|
14
|
+
widgets: runtime.widgets,
|
|
15
|
+
notifyWatchers: runtime.notifyWatchers,
|
|
16
|
+
events: runtime.eventHandlers
|
|
17
|
+
},
|
|
18
|
+
metadata: {
|
|
19
|
+
isBuiltIn: false
|
|
20
|
+
}
|
|
37
21
|
};
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const registry = window.SynOS?.appRegistry;
|
|
44
|
-
if (registry && typeof registry.register === 'function') {
|
|
45
|
-
registry.register(manifest);
|
|
46
|
-
}
|
|
22
|
+
if (typeof window !== "undefined") {
|
|
23
|
+
const registry = window.SynOS?.appRegistry;
|
|
24
|
+
if (registry && typeof registry.register === "function") {
|
|
25
|
+
registry.register(manifest);
|
|
26
|
+
}
|
|
47
27
|
}
|
|
48
|
-
|
|
28
|
+
var cdn_default = manifest;
|
|
29
|
+
export {
|
|
30
|
+
cdn_default as default,
|
|
31
|
+
manifest
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=cdn.js.map
|
package/dist/cdn.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/cdn.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * CDN Entry Point for Adaptive Nav\n *\n * Bundled for CDN delivery and loaded on-demand by the host runtime's\n * AppLoader when a config references navigation/nav actions/widgets. Part of the\n * kernel diet (ADR 2026-07-17-runtime-kernel-vs-lazy-presentation):\n * this app left the builtin list \u2014 it has 1s+ loading tolerance, unlike\n * adaptive-content which must act inside the anti-flicker window.\n *\n * Mirrors adaptive-gamification/src/cdn.ts: builds the manifest from the\n * runtime export, then self-registers with the host's app registry on\n * import. Without this entry, build-adaptives-only.js silently skips the\n * package and the app is \"lazy in name only\" (no bundle on disk).\n */\n\nimport { runtime } from './runtime';\n\nexport const manifest = {\n id: runtime.id,\n version: runtime.version,\n name: runtime.name,\n description: runtime.description,\n runtime: {\n actions: (runtime.executors ?? []).map(({ kind, executor }) => ({ kind, executor })),\n widgets: runtime.widgets,\n notifyWatchers: (runtime as { notifyWatchers?: unknown }).notifyWatchers,\n events: (runtime as { eventHandlers?: unknown }).eventHandlers,\n },\n metadata: {\n isBuiltIn: false,\n },\n};\n\ndeclare global {\n interface Window {\n SynOS?: {\n appRegistry?: {\n register?: (m: unknown) => void;\n };\n };\n }\n}\n\nif (typeof window !== 'undefined') {\n const registry = window.SynOS?.appRegistry;\n if (registry && typeof registry.register === 'function') {\n registry.register(manifest);\n }\n}\n\nexport default manifest;\n"],
|
|
5
|
+
"mappings": ";;;;;;AAiBO,IAAM,WAAW;AAAA,EACtB,IAAI,QAAQ;AAAA,EACZ,SAAS,QAAQ;AAAA,EACjB,MAAM,QAAQ;AAAA,EACd,aAAa,QAAQ;AAAA,EACrB,SAAS;AAAA,IACP,UAAU,QAAQ,aAAa,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,SAAS,OAAO,EAAE,MAAM,SAAS,EAAE;AAAA,IACnF,SAAS,QAAQ;AAAA,IACjB,gBAAiB,QAAyC;AAAA,IAC1D,QAAS,QAAwC;AAAA,EACnD;AAAA,EACA,UAAU;AAAA,IACR,WAAW;AAAA,EACb;AACF;AAYA,IAAI,OAAO,WAAW,aAAa;AACjC,QAAM,WAAW,OAAO,OAAO;AAC/B,MAAI,YAAY,OAAO,SAAS,aAAa,YAAY;AACvD,aAAS,SAAS,QAAQ;AAAA,EAC5B;AACF;AAEA,IAAO,cAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|