@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.
Files changed (147) hide show
  1. package/dist/NavWidgetLit.d.ts +63 -0
  2. package/dist/NavWidgetLit.d.ts.map +1 -0
  3. package/dist/NavWidgetLit.editable.d.ts +151 -0
  4. package/dist/NavWidgetLit.editable.d.ts.map +1 -0
  5. package/dist/NavWidgetLit.test.d.ts +8 -0
  6. package/dist/NavWidgetLit.test.d.ts.map +1 -0
  7. package/dist/cdn.d.ts +23 -30
  8. package/dist/cdn.d.ts.map +1 -1
  9. package/dist/cdn.js +31 -46
  10. package/dist/cdn.js.map +7 -0
  11. package/dist/chunk-VG3E3ALH.js +668 -0
  12. package/dist/chunk-VG3E3ALH.js.map +7 -0
  13. package/dist/chunk-XO4TLMHA.js +642 -0
  14. package/dist/chunk-XO4TLMHA.js.map +7 -0
  15. package/dist/editor.d.ts +65 -21
  16. package/dist/editor.d.ts.map +1 -1
  17. package/dist/editor.js +5628 -307
  18. package/dist/editor.js.map +7 -0
  19. package/dist/nav-item-editor.d.ts +43 -0
  20. package/dist/nav-item-editor.d.ts.map +1 -0
  21. package/dist/resolveNavTarget.d.ts +61 -0
  22. package/dist/resolveNavTarget.d.ts.map +1 -0
  23. package/dist/resolveNavTarget.test.d.ts +2 -0
  24. package/dist/resolveNavTarget.test.d.ts.map +1 -0
  25. package/dist/runtime.d.ts +12 -6
  26. package/dist/runtime.d.ts.map +1 -1
  27. package/dist/runtime.js +19 -211
  28. package/dist/runtime.js.map +7 -0
  29. package/dist/schema.d.ts +321 -149
  30. package/dist/schema.d.ts.map +1 -1
  31. package/dist/schema.js +155 -125
  32. package/dist/schema.js.map +7 -0
  33. package/dist/types.d.ts +7 -0
  34. package/dist/types.d.ts.map +1 -1
  35. package/package.json +15 -15
  36. package/dist/NavWidget.d.ts +0 -31
  37. package/dist/NavWidget.d.ts.map +0 -1
  38. package/dist/NavWidget.js +0 -494
  39. package/dist/summarize.js +0 -51
  40. package/dist/types.js +0 -18
  41. package/node_modules/@syntro/design-system/README.md +0 -335
  42. package/node_modules/@syntro/design-system/dist/assets/syntrologie-logo.svg +0 -21
  43. package/node_modules/@syntro/design-system/dist/assets/syntrologie-logomark.svg +0 -10
  44. package/node_modules/@syntro/design-system/dist/index.d.ts +0 -8
  45. package/node_modules/@syntro/design-system/dist/index.d.ts.map +0 -1
  46. package/node_modules/@syntro/design-system/dist/index.js +0 -7
  47. package/node_modules/@syntro/design-system/dist/tailwind-preset.d.ts +0 -19
  48. package/node_modules/@syntro/design-system/dist/tailwind-preset.d.ts.map +0 -1
  49. package/node_modules/@syntro/design-system/dist/tailwind-preset.js +0 -455
  50. package/node_modules/@syntro/design-system/dist/tokens/colors.css +0 -464
  51. package/node_modules/@syntro/design-system/dist/tokens/colors.d.ts +0 -874
  52. package/node_modules/@syntro/design-system/dist/tokens/colors.d.ts.map +0 -1
  53. package/node_modules/@syntro/design-system/dist/tokens/colors.js +0 -564
  54. package/node_modules/@syntro/design-system/dist/tokens/effects.css +0 -43
  55. package/node_modules/@syntro/design-system/dist/tokens/effects.d.ts +0 -139
  56. package/node_modules/@syntro/design-system/dist/tokens/effects.d.ts.map +0 -1
  57. package/node_modules/@syntro/design-system/dist/tokens/effects.js +0 -121
  58. package/node_modules/@syntro/design-system/dist/tokens/index.d.ts +0 -10
  59. package/node_modules/@syntro/design-system/dist/tokens/index.d.ts.map +0 -1
  60. package/node_modules/@syntro/design-system/dist/tokens/index.js +0 -9
  61. package/node_modules/@syntro/design-system/package.json +0 -55
  62. package/node_modules/@syntro/design-system/src/assets/syntrologie-logo.svg +0 -21
  63. package/node_modules/@syntro/design-system/src/assets/syntrologie-logomark.svg +0 -10
  64. package/node_modules/@syntrologie/sdk-contracts/dist/index.d.ts +0 -129
  65. package/node_modules/@syntrologie/sdk-contracts/dist/index.js +0 -15
  66. package/node_modules/@syntrologie/sdk-contracts/dist/schemas.d.ts +0 -2225
  67. package/node_modules/@syntrologie/sdk-contracts/dist/schemas.js +0 -162
  68. package/node_modules/@syntrologie/sdk-contracts/package.json +0 -33
  69. package/node_modules/@syntrologie/shared-editor-ui/dist/cn.d.ts +0 -2
  70. package/node_modules/@syntrologie/shared-editor-ui/dist/cn.d.ts.map +0 -1
  71. package/node_modules/@syntrologie/shared-editor-ui/dist/cn.js +0 -3
  72. package/node_modules/@syntrologie/shared-editor-ui/dist/components/AnchorPicker.d.ts +0 -34
  73. package/node_modules/@syntrologie/shared-editor-ui/dist/components/AnchorPicker.d.ts.map +0 -1
  74. package/node_modules/@syntrologie/shared-editor-ui/dist/components/AnchorPicker.js +0 -158
  75. package/node_modules/@syntrologie/shared-editor-ui/dist/components/BeforeAfterToggle.d.ts +0 -7
  76. package/node_modules/@syntrologie/shared-editor-ui/dist/components/BeforeAfterToggle.d.ts.map +0 -1
  77. package/node_modules/@syntrologie/shared-editor-ui/dist/components/BeforeAfterToggle.js +0 -9
  78. package/node_modules/@syntrologie/shared-editor-ui/dist/components/ConditionStatusLine.d.ts +0 -23
  79. package/node_modules/@syntrologie/shared-editor-ui/dist/components/ConditionStatusLine.d.ts.map +0 -1
  80. package/node_modules/@syntrologie/shared-editor-ui/dist/components/ConditionStatusLine.js +0 -40
  81. package/node_modules/@syntrologie/shared-editor-ui/dist/components/DetectionBadge.d.ts +0 -7
  82. package/node_modules/@syntrologie/shared-editor-ui/dist/components/DetectionBadge.d.ts.map +0 -1
  83. package/node_modules/@syntrologie/shared-editor-ui/dist/components/DetectionBadge.js +0 -22
  84. package/node_modules/@syntrologie/shared-editor-ui/dist/components/DismissedSection.d.ts +0 -8
  85. package/node_modules/@syntrologie/shared-editor-ui/dist/components/DismissedSection.d.ts.map +0 -1
  86. package/node_modules/@syntrologie/shared-editor-ui/dist/components/DismissedSection.js +0 -9
  87. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditBackButton.d.ts +0 -7
  88. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditBackButton.d.ts.map +0 -1
  89. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditBackButton.js +0 -4
  90. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorBody.d.ts +0 -7
  91. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorBody.d.ts.map +0 -1
  92. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorBody.js +0 -4
  93. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorCard.d.ts +0 -13
  94. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorCard.d.ts.map +0 -1
  95. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorCard.js +0 -15
  96. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorFooter.d.ts +0 -7
  97. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorFooter.d.ts.map +0 -1
  98. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorFooter.js +0 -4
  99. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorHeader.d.ts +0 -9
  100. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorHeader.d.ts.map +0 -1
  101. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorHeader.js +0 -4
  102. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorInput.d.ts +0 -8
  103. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorInput.d.ts.map +0 -1
  104. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorInput.js +0 -8
  105. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorLayout.d.ts +0 -7
  106. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorLayout.d.ts.map +0 -1
  107. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorLayout.js +0 -4
  108. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorPanelShell.d.ts +0 -25
  109. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorPanelShell.d.ts.map +0 -1
  110. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorPanelShell.js +0 -379
  111. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorSelect.d.ts +0 -8
  112. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorSelect.d.ts.map +0 -1
  113. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorSelect.js +0 -8
  114. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorTextarea.d.ts +0 -8
  115. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorTextarea.d.ts.map +0 -1
  116. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EditorTextarea.js +0 -17
  117. package/node_modules/@syntrologie/shared-editor-ui/dist/components/ElementHighlight.d.ts +0 -32
  118. package/node_modules/@syntrologie/shared-editor-ui/dist/components/ElementHighlight.d.ts.map +0 -1
  119. package/node_modules/@syntrologie/shared-editor-ui/dist/components/ElementHighlight.js +0 -85
  120. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EmptyState.d.ts +0 -6
  121. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EmptyState.d.ts.map +0 -1
  122. package/node_modules/@syntrologie/shared-editor-ui/dist/components/EmptyState.js +0 -4
  123. package/node_modules/@syntrologie/shared-editor-ui/dist/components/GroupHeader.d.ts +0 -8
  124. package/node_modules/@syntrologie/shared-editor-ui/dist/components/GroupHeader.d.ts.map +0 -1
  125. package/node_modules/@syntrologie/shared-editor-ui/dist/components/GroupHeader.js +0 -5
  126. package/node_modules/@syntrologie/shared-editor-ui/dist/components/TriggerJourney.d.ts +0 -12
  127. package/node_modules/@syntrologie/shared-editor-ui/dist/components/TriggerJourney.d.ts.map +0 -1
  128. package/node_modules/@syntrologie/shared-editor-ui/dist/components/TriggerJourney.js +0 -40
  129. package/node_modules/@syntrologie/shared-editor-ui/dist/formatConditionLabel.d.ts +0 -26
  130. package/node_modules/@syntrologie/shared-editor-ui/dist/formatConditionLabel.d.ts.map +0 -1
  131. package/node_modules/@syntrologie/shared-editor-ui/dist/formatConditionLabel.js +0 -202
  132. package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useElementRect.d.ts +0 -8
  133. package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useElementRect.d.ts.map +0 -1
  134. package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useElementRect.js +0 -46
  135. package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useTriggerWhenStatus.d.ts +0 -24
  136. package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useTriggerWhenStatus.d.ts.map +0 -1
  137. package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useTriggerWhenStatus.js +0 -86
  138. package/node_modules/@syntrologie/shared-editor-ui/dist/index.d.ts +0 -34
  139. package/node_modules/@syntrologie/shared-editor-ui/dist/index.d.ts.map +0 -1
  140. package/node_modules/@syntrologie/shared-editor-ui/dist/index.js +0 -25
  141. package/node_modules/@syntrologie/shared-editor-ui/dist/utils/elementChainRecommender.d.ts +0 -37
  142. package/node_modules/@syntrologie/shared-editor-ui/dist/utils/elementChainRecommender.d.ts.map +0 -1
  143. package/node_modules/@syntrologie/shared-editor-ui/dist/utils/elementChainRecommender.js +0 -52
  144. package/node_modules/@syntrologie/shared-editor-ui/dist/utils/selectorGenerator.d.ts +0 -22
  145. package/node_modules/@syntrologie/shared-editor-ui/dist/utils/selectorGenerator.d.ts.map +0 -1
  146. package/node_modules/@syntrologie/shared-editor-ui/dist/utils/selectorGenerator.js +0 -143
  147. 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
- * This module is bundled for CDN delivery and self-registers with the global
5
- * SynOS app registry when loaded dynamically via the AppLoader.
6
- */
7
- import NavEditor from './editor';
8
- /**
9
- * App manifest for registry registration.
10
- * Follows the AppManifest interface expected by AppLoader/AppRegistry.
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
- instanceId?: string;
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: (props: Record<string, unknown>) => {
37
- id: string;
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;;;;;GAKG;AAEH,OAAO,SAA0B,MAAM,UAAU,CAAC;AAGlD;;;GAGG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;2BAsCmymB,CAAC;8BAA8B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAtB7zmB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;CAQjD,CAAC;AAaF,eAAe,QAAQ,CAAC"}
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
- * CDN Entry Point for Adaptive Nav
3
- *
4
- * This module is bundled for CDN delivery and self-registers with the global
5
- * SynOS app registry when loaded dynamically via the AppLoader.
6
- */
7
- import NavEditor, { editorPanel } from './editor';
8
- import { executors, runtime } from './runtime';
9
- /**
10
- * App manifest for registry registration.
11
- * Follows the AppManifest interface expected by AppLoader/AppRegistry.
12
- */
13
- export const manifest = {
14
- id: 'adaptive-nav',
15
- version: runtime.version,
16
- name: runtime.name,
17
- description: runtime.description,
18
- runtime: {
19
- actions: executors.map(({ kind, executor }) => ({
20
- kind,
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
- * Self-register with global registry if available.
40
- * This happens when loaded via script tag (UMD).
41
- */
42
- if (typeof window !== 'undefined') {
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
- export default manifest;
28
+ var cdn_default = manifest;
29
+ export {
30
+ cdn_default as default,
31
+ manifest
32
+ };
33
+ //# sourceMappingURL=cdn.js.map
@@ -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
+ }