@syntrologie/adapt-nav 2.8.0-canary.49 → 2.8.0-canary.490
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/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 +23 -30
- package/dist/cdn.d.ts.map +1 -1
- package/dist/cdn.js +31 -46
- package/dist/cdn.js.map +7 -0
- package/dist/chunk-VG3E3ALH.js +668 -0
- package/dist/chunk-VG3E3ALH.js.map +7 -0
- package/dist/chunk-XO4TLMHA.js +642 -0
- package/dist/chunk-XO4TLMHA.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 +12 -6
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +19 -211
- package/dist/runtime.js.map +7 -0
- package/dist/schema.d.ts +321 -149
- 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 -494
- 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,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;
|
|
@@ -22,10 +25,9 @@ export declare const manifest: {
|
|
|
22
25
|
widgets: {
|
|
23
26
|
id: string;
|
|
24
27
|
component: {
|
|
25
|
-
mount(container: HTMLElement, config?: import("./types").NavConfig & {
|
|
28
|
+
mount(container: HTMLElement, config?: (import("./types").NavConfig & import("packages/sdk-contracts/dist").MountPlumbing & {
|
|
26
29
|
runtime?: import("./types").NavWidgetRuntime;
|
|
27
|
-
|
|
28
|
-
}): () => void;
|
|
30
|
+
}) | null): () => void;
|
|
29
31
|
};
|
|
30
32
|
metadata: {
|
|
31
33
|
name: string;
|
|
@@ -33,30 +35,21 @@ export declare const manifest: {
|
|
|
33
35
|
icon: string;
|
|
34
36
|
};
|
|
35
37
|
}[];
|
|
36
|
-
notifyWatchers:
|
|
37
|
-
|
|
38
|
-
strategy: import("./types").DecisionStrategy<boolean>;
|
|
39
|
-
eventName: string;
|
|
40
|
-
eventProps: {
|
|
41
|
-
tipId: string;
|
|
42
|
-
title: string | undefined;
|
|
43
|
-
body: string | undefined;
|
|
44
|
-
icon: string | undefined;
|
|
45
|
-
};
|
|
46
|
-
}[];
|
|
47
|
-
};
|
|
48
|
-
editor: {
|
|
49
|
-
component: typeof NavEditor;
|
|
50
|
-
panel: {
|
|
51
|
-
title: string;
|
|
52
|
-
icon: string;
|
|
53
|
-
description: string;
|
|
54
|
-
};
|
|
55
|
-
getActionLabel(action: Record<string, unknown>): string;
|
|
38
|
+
notifyWatchers: unknown;
|
|
39
|
+
events: unknown;
|
|
56
40
|
};
|
|
57
41
|
metadata: {
|
|
58
42
|
isBuiltIn: boolean;
|
|
59
43
|
};
|
|
60
44
|
};
|
|
45
|
+
declare global {
|
|
46
|
+
interface Window {
|
|
47
|
+
SynOS?: {
|
|
48
|
+
appRegistry?: {
|
|
49
|
+
register?: (m: unknown) => void;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
61
54
|
export default manifest;
|
|
62
55
|
//# 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;;;;;;;;;;;;;;2BAkC81J,CAAC;;;;;;;;;;;;;;;CApBn3J,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-VG3E3ALH.js";
|
|
4
|
+
import "./chunk-XO4TLMHA.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
|
+
}
|