@syntrologie/adapt-faq 2.19.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"FAQWidgetLit.d.ts","sourceRoot":"","sources":["../src/FAQWidgetLit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAKhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAEV,SAAS,EAGT,aAAa,EACd,MAAM,SAAS,CAAC;AA2DjB;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IAKjD,OAAgB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;MAYxB;IAMF,SAAS,EAAE,SAAS,CAKlB;IAEF,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAExC,UAAU,EAAE,MAAM,CAAgB;IAGlC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IACtC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IACnC,YAAY,EAAE,MAAM,CAAM;IAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAa;IACvD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGjC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,eAAe,CAA8C;IAM5D,gBAAgB;IAQhB,iBAAiB;IAKjB,oBAAoB;IAUpB,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAWnD,OAAO,CAAC,aAAa;IAwGrB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,WAAW;IAmFnB,OAAO,CAAC,YAAY;IAcX,MAAM;CAmHhB;AAUD,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"FAQWidgetLit.d.ts","sourceRoot":"","sources":["../src/FAQWidgetLit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAKhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAEV,SAAS,EAGT,aAAa,EACd,MAAM,SAAS,CAAC;AAqCjB;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IAKjD,OAAgB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;MAYxB;IAMF,SAAS,EAAE,SAAS,CAKlB;IAEF,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAExC,UAAU,EAAE,MAAM,CAAgB;IAGlC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IACtC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IACnC,YAAY,EAAE,MAAM,CAAM;IAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAa;IACvD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGjC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,eAAe,CAA8C;IAM5D,gBAAgB;IAQhB,iBAAiB;IAKjB,oBAAoB;IAUpB,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAWnD,OAAO,CAAC,aAAa;IAwGrB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,WAAW;IAmFnB,OAAO,CAAC,YAAY;IAcX,MAAM;CAmHhB;AAUD,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Adaptive FAQ - FAQWidgetLit.editable
3
+ *
4
+ * Editable variant of the FAQ accordion for the canvas editor surface.
5
+ * Renders the same Q&A rows as <syntro-faq-accordion> but adds:
6
+ * - Pencil button per row (shows on hover, calls controller.editItem on click)
7
+ * - Click on question text expands/collapses to show the answer (normal FAQ behavior)
8
+ * - Drag handle per row when items.length >= 2
9
+ * - Drag-and-drop reorder via the sortable utility (injected via mount config)
10
+ * - Read-only fallback when controller is null
11
+ *
12
+ * Tag name: <syntro-faq-accordion-editable>
13
+ *
14
+ * Decorator-free: uses `static override properties` (matches codebase convention).
15
+ * Light DOM: inherits host-page CSS variables (same as <syntro-faq-accordion>).
16
+ *
17
+ * Cross-package import safety:
18
+ * The controller is typed as a structural `ControllerLike` interface defined
19
+ * locally — NOT imported from @syntrologie/editor-sdk. This prevents a
20
+ * dependency cycle (editor-sdk imports adapt-faq's editable; adapt-faq cannot
21
+ * import editor-sdk). The real EditModeController satisfies ControllerLike
22
+ * structurally.
23
+ *
24
+ * Similarly, `makeSortable` is passed in as a `SortableFn` option rather than
25
+ * imported directly. The editor-sdk bootstrap (setupEditModeBootstrap.ts) threads
26
+ * the real makeSortable through the FAQWidgetLitEditableMountable.mount() call.
27
+ * This is Alternative C from the architecture decision log, and matches the
28
+ * structural-interface pattern already used for the controller.
29
+ */
30
+ import { LitElement } from 'lit';
31
+ import type { FAQConfig } from './types';
32
+ /**
33
+ * Structural interface — describes only the methods the editable widget needs.
34
+ * The real EditModeController satisfies this by structural subtyping.
35
+ *
36
+ * `tileId` (the host tile's id, threaded in via `instanceId` at mount) scopes
37
+ * controller calls to the active tile when a canvas has multiple FAQ tiles.
38
+ * It is optional so single-tile and v2 actions-shape canvases continue to work.
39
+ */
40
+ export interface ControllerLike {
41
+ editItem(adaptive: string, itemId: string, tileId?: string): void;
42
+ editContainer(adaptive: string, tileId?: string): void;
43
+ isModalOpen(): boolean;
44
+ reorderItems(adaptive: string, newOrder: string[], tileId?: string): void;
45
+ }
46
+ /** Return value from makeSortable. */
47
+ export interface SortableHandle {
48
+ destroy(): void;
49
+ }
50
+ /** Options subset that FAQAccordionEditableElement passes into the sortable. */
51
+ export interface SortableOptions {
52
+ itemSelector: string;
53
+ handleSelector: string;
54
+ getItems: () => string[];
55
+ onReorder: (newOrder: string[]) => void;
56
+ liveRegion: HTMLElement;
57
+ }
58
+ /**
59
+ * Structural type matching `makeSortable` from editor-sdk's sortable.ts.
60
+ * Injected at mount time by FAQWidgetLitEditableMountable.
61
+ */
62
+ export type SortableFn = (host: HTMLElement, opts: SortableOptions) => SortableHandle;
63
+ /**
64
+ * <syntro-faq-accordion-editable> — light-DOM Lit element.
65
+ *
66
+ * Set properties imperatively (no attribute serialisation for objects):
67
+ * el.faqConfig = { ... };
68
+ * el.controller = editModeControllerInstance; // null → read-only
69
+ */
70
+ export declare class FAQAccordionEditableElement extends LitElement {
71
+ static properties: {
72
+ faqConfig: {
73
+ attribute: boolean;
74
+ };
75
+ controller: {
76
+ attribute: boolean;
77
+ };
78
+ tileId: {
79
+ attribute: boolean;
80
+ };
81
+ _hoveredId: {
82
+ state: boolean;
83
+ };
84
+ _expandedId: {
85
+ state: boolean;
86
+ };
87
+ _containerHovered: {
88
+ state: boolean;
89
+ };
90
+ };
91
+ faqConfig: FAQConfig;
92
+ /** Null when loaded without an editor context — renders read-only accordion. */
93
+ controller: ControllerLike | null;
94
+ /**
95
+ * Host tile id, threaded in via the mountable's `instanceId`. Scopes every
96
+ * controller call so the right tile is targeted when the canvas has more
97
+ * than one FAQ tile (per-route FAQs). Empty string when unknown.
98
+ */
99
+ tileId: string;
100
+ /**
101
+ * The `makeSortable` factory to use. Injected by FAQWidgetLitEditableMountable
102
+ * from the editor-sdk bootstrap so there is no direct import from editor-sdk
103
+ * into this package (which would create a circular dependency).
104
+ *
105
+ * Null when running without the editor context (read-only mode).
106
+ */
107
+ sortable: SortableFn | null;
108
+ /**
109
+ * Shared aria-live region from the modal host, threaded in via mount config.
110
+ * Falls back to a detached element when running outside the editor context.
111
+ *
112
+ * TODO(phase-2-a11y): wire shared live region from modal host for real a11y.
113
+ */
114
+ liveRegion: HTMLElement | null;
115
+ _hoveredId: string | null;
116
+ _expandedId: string | null;
117
+ _containerHovered: boolean;
118
+ private _sortableHandle;
119
+ createRenderRoot(): this;
120
+ connectedCallback(): void;
121
+ /**
122
+ * Wire (or re-wire) the sortable whenever the properties it depends on change.
123
+ * `updated()` fires after every render, including the first, so we don't need
124
+ * a separate `firstUpdated()` call — using `updated()` alone avoids a double
125
+ * attach on mount (firstUpdated + updated both fire on first render).
126
+ */
127
+ protected updated(changed: Map<string, unknown>): void;
128
+ disconnectedCallback(): void;
129
+ private _attachSortable;
130
+ private _handleEdit;
131
+ private _handlePencilClick;
132
+ private _handleContainerEdit;
133
+ private _toggleExpand;
134
+ private _renderRow;
135
+ render(): import("lit-html").TemplateResult<1>;
136
+ }
137
+ /**
138
+ * Mountable for <syntro-faq-accordion-editable>.
139
+ *
140
+ * Follows the same mount pattern as FAQWidgetLitMountable in runtime.ts.
141
+ * Accepts a `controller` in addition to `faqConfig` so the editor can
142
+ * wire up the EditModeController at mount time.
143
+ */
144
+ export declare const FAQWidgetLitEditableMountable: {
145
+ mount(container: HTMLElement, config?: FAQConfig & {
146
+ instanceId?: string;
147
+ controller?: ControllerLike | null;
148
+ /** makeSortable factory injected by editor-sdk bootstrap. Null → drag disabled. */
149
+ sortable?: SortableFn | null;
150
+ /** Shared aria-live region from the modal host for sortable announcements. */
151
+ liveRegion?: HTMLElement | null;
152
+ }): () => void;
153
+ };
154
+ //# sourceMappingURL=FAQWidgetLit.editable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FAQWidgetLit.editable.d.ts","sourceRoot":"","sources":["../src/FAQWidgetLit.editable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAIhD,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,SAAS,CAAC;AAM5D;;;;;;;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,gFAAgF;AAChF,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;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,KAAK,cAAc,CAAC;AAuJtF;;;;;;GAMG;AACH,qBAAa,2BAA4B,SAAQ,UAAU;IAKzD,OAAgB,UAAU;;;;;;;;;;;;;;;;;;;MASxB;IAMF,SAAS,EAAE,SAAS,CAKlB;IAEF,gFAAgF;IAChF,UAAU,EAAE,cAAc,GAAG,IAAI,CAAQ;IAEzC;;;;OAIG;IACH,MAAM,SAAM;IAEZ;;;;;;OAMG;IACH,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAQ;IAEnC;;;;;OAKG;IACH,UAAU,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEtC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,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;IAuBvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,UAAU;IA2DT,MAAM;CAuEhB;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;CAkCJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { FAQAnswer } from './types';
2
+ export declare function getAnswerText(answer: FAQAnswer): string;
3
+ export declare function renderAnswerHtml(answer: FAQAnswer): string;
4
+ //# sourceMappingURL=answerRendering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answerRendering.d.ts","sourceRoot":"","sources":["../src/answerRendering.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIzC,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAIvD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAQ1D"}
@@ -562,6 +562,24 @@ var panelShell = {
562
562
  };
563
563
  var panel_shell_default = panelShell;
564
564
 
565
+ // src/answerRendering.ts
566
+ import { Marked } from "marked";
567
+ var marked = new Marked({ async: false, gfm: true, breaks: true });
568
+ function getAnswerText(answer) {
569
+ if (typeof answer === "string") return answer;
570
+ if (answer.type === "rich") return answer.html;
571
+ return answer.content;
572
+ }
573
+ function renderAnswerHtml(answer) {
574
+ if (typeof answer === "string") {
575
+ return marked.parse(answer);
576
+ }
577
+ if (answer.type === "rich") {
578
+ return answer.html;
579
+ }
580
+ return marked.parse(answer.content);
581
+ }
582
+
565
583
  export {
566
584
  slateGrey,
567
585
  purple,
@@ -573,6 +591,8 @@ export {
573
591
  overlay,
574
592
  glowShadows,
575
593
  elevationShadows,
576
- panel_shell_default
594
+ panel_shell_default,
595
+ getAnswerText,
596
+ renderAnswerHtml
577
597
  };
578
- //# sourceMappingURL=chunk-S6WIENQP.js.map
598
+ //# sourceMappingURL=chunk-KRKRB4OL.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../design-system/dist/tokens/colors.js", "../../../design-system/dist/tokens/effects.js", "../../../design-system/dist/tokens/panel-shell.js"],
4
- "sourcesContent": ["/**\n * Syntro Design System - Color Tokens\n *\n * This file contains all color tokens from the Figma design system.\n * Colors are organized by scale and semantic meaning.\n *\n * @see https://www.figma.com/design/U0Ol5vM7FQvgPfIgCAgxgb/Design-System\n */\n// ============================================================================\n// BASE COLORS\n// ============================================================================\nexport const base = {\n white: '#ffffff',\n black: '#000000',\n};\n// ============================================================================\n// BRAND COLORS\n// ============================================================================\nexport const brand = {\n 0: '#2c0b0a',\n 1: '#5b1715',\n 2: '#89221f',\n 3: '#b72e2a',\n 4: '#d44844',\n 5: '#dd6d69',\n 6: '#e5918f',\n 7: '#eeb6b4',\n 8: '#f6dada',\n 9: '#faebea',\n};\n// ============================================================================\n// NEUTRAL COLORS\n// ============================================================================\nexport const slateGrey = {\n 0: '#07080a',\n 1: '#0f1318',\n 2: '#0e1114',\n 3: '#1c222a',\n 4: '#2b333f',\n 5: '#394454',\n 6: '#475569',\n 7: '#677384',\n 8: '#87919f',\n 9: '#a8afba',\n 10: '#cbd0d7',\n 11: '#e8eaee',\n 12: '#f6f7f9',\n};\n// ============================================================================\n// SEMANTIC COLOR SCALES\n// ============================================================================\nexport const green = {\n 0: '#07230a',\n 1: '#0e4514',\n 2: '#16681e',\n 3: '#1d8a28',\n 4: '#24ad32',\n 5: '#4fbd5a',\n 6: '#7acd82',\n 7: '#a5deab',\n 8: '#d0eed3',\n 9: '#e5f6e7',\n};\nexport const yellow = {\n 0: '#301f09',\n 1: '#5f3e12',\n 2: '#8f5e1b',\n 3: '#be7d24',\n 4: '#ee9c2d',\n 5: '#f1b057',\n 6: '#f5c481',\n 7: '#f8d7ab',\n 8: '#fcebd5',\n 9: '#fdf5ea',\n};\nexport const red = {\n 0: '#330707',\n 1: '#660f0e',\n 2: '#991616',\n 3: '#cc1e1d',\n 4: '#ff2524',\n 5: '#ff5150',\n 6: '#ff7c7c',\n 7: '#ffa8a7',\n 8: '#ffd3d3',\n 9: '#ffe9e9',\n};\nexport const blue = {\n 0: '#051533',\n 1: '#0a2a66',\n 2: '#0f3f98',\n 3: '#1454cb',\n 4: '#1969fe',\n 5: '#4787fe',\n 6: '#75a5fe',\n 7: '#a3c3ff',\n 8: '#d1e1ff',\n 9: '#e8f0ff',\n};\nexport const orange = {\n 0: '#662500',\n 1: '#993d00',\n 2: '#cc5800',\n 3: '#ff7700',\n 4: '#fea85d',\n 5: '#fec58f',\n 6: '#ffd6ae',\n 7: '#fee6cd',\n 8: '#fff1e1',\n 9: '#fff8f0',\n};\nexport const purple = {\n 0: '#151229',\n 1: '#2a2452',\n 2: '#40357c',\n 3: '#5547a5',\n 4: '#6a59ce',\n 5: '#887ad8',\n 6: '#a69be2',\n 7: '#c3bdeb',\n 8: '#e1def5',\n 9: '#f0eefa',\n};\nexport const pink = {\n 0: '#37091f',\n 1: '#69123c',\n 2: '#9b1c58',\n 3: '#cd2575',\n 4: '#ff2e92',\n 5: '#ff58a8',\n 6: '#ff82be',\n 7: '#ffabd3',\n 8: '#ffd5e9',\n 9: '#ffeaf4',\n};\n// ============================================================================\n// LEGACY COLORS (Being phased out)\n// ============================================================================\nexport const legacy = {\n aqua: {\n 0: '#0c5f8d',\n 1: '#146b99',\n 2: '#1d78a6',\n 3: '#2e89b6',\n 4: '#4a9fc4',\n 5: '#6bb4d1',\n 6: '#93cce0',\n 7: '#bddff0',\n 8: '#dceef8',\n 9: '#f2f8fc',\n },\n violet: {\n 0: '#6927da',\n 1: '#7839ee',\n 2: '#875bf7',\n 3: '#a48afb',\n 4: '#c3b4fd',\n 5: '#ddd6fe',\n 6: '#ece9fe',\n 7: '#f5f3ff',\n 8: '#fbfaff',\n },\n fuchsia: {\n 0: '#9f1ab1',\n 1: '#ba24d5',\n 2: '#d444f1',\n 3: '#e478fa',\n 4: '#eeaafd',\n 5: '#f6d0fe',\n 6: '#fbe8ff',\n 7: '#fdf4ff',\n 8: '#fefaff',\n },\n pink: {\n 0: '#a10f5f',\n 1: '#dd2590',\n 2: '#ee46bc',\n 3: '#f670c7',\n 4: '#faa7e0',\n 5: '#fcceee',\n 6: '#fce7f6',\n 7: '#fdf2fa',\n 8: '#fef6fb',\n },\n};\n// ============================================================================\n// TEXT TOKENS\n// ============================================================================\nexport const text = {\n primary: slateGrey[10],\n secondary: slateGrey[9],\n tertiary: slateGrey[8],\n};\n// ============================================================================\n// BACKGROUND TOKENS\n// ============================================================================\nexport const background = {\n primary: slateGrey[2],\n secondary: slateGrey[0],\n};\n// ============================================================================\n// BORDER TOKENS\n// ============================================================================\nexport const border = {\n primary: slateGrey[4],\n secondary: slateGrey[3],\n};\n// ============================================================================\n// BUTTON TOKENS\n// ============================================================================\nexport const button = {\n primary: {\n text: base.white,\n icon: base.white,\n border: brand[3],\n backgroundDefault: brand[3],\n backgroundHover: brand[2],\n },\n neutral: {\n text: slateGrey[10],\n textHover: base.white,\n icon: slateGrey[10],\n iconHover: base.white,\n border: slateGrey[4],\n background: slateGrey[2],\n },\n link: {\n text: base.white,\n icon: base.white,\n hover: brand[5],\n },\n error: {\n text: red[5],\n hover: red[6],\n },\n success: {\n text: green[5],\n hover: green[6],\n },\n};\n// ============================================================================\n// BADGE TOKENS\n// ============================================================================\nexport const badge = {\n slateGrey: {\n content: slateGrey[10],\n pillOutline: slateGrey[10],\n borderPrimary: slateGrey[5],\n borderSecondary: slateGrey[5],\n background: slateGrey[3],\n },\n brand: {\n content: brand[9],\n pillOutline: brand[9],\n borderPrimary: brand[6],\n borderSecondary: brand[6],\n background: brand[0],\n },\n red: {\n content: red[8],\n pillOutline: red[4],\n borderPrimary: red[2],\n borderSecondary: red[2],\n background: red[0],\n },\n yellow: {\n content: yellow[8],\n pillOutline: yellow[4],\n borderPrimary: yellow[2],\n borderSecondary: yellow[2],\n background: yellow[0],\n },\n green: {\n content: green[8],\n pillOutline: green[4],\n borderPrimary: green[2],\n borderSecondary: green[2],\n background: green[0],\n },\n purple: {\n content: purple[8],\n pillOutline: purple[4],\n borderPrimary: purple[2],\n borderSecondary: purple[2],\n background: purple[0],\n },\n blue: {\n content: blue[8],\n pillOutline: blue[4],\n borderPrimary: blue[2],\n borderSecondary: blue[2],\n background: blue[0],\n },\n orange: {\n content: orange[8],\n pillOutline: orange[4],\n borderPrimary: orange[2],\n borderSecondary: orange[2],\n background: orange[0],\n },\n pink: {\n content: pink[8],\n pillOutline: pink[4],\n borderPrimary: pink[2],\n borderSecondary: pink[2],\n background: pink[0],\n },\n};\n// ============================================================================\n// BADGE BANNER TOKENS\n// ============================================================================\nexport const badgeBanner = {\n green: {\n content: green[8],\n border: green[2],\n background: green[0],\n },\n yellow: {\n content: yellow[8],\n border: yellow[2],\n background: yellow[0],\n },\n red: {\n content: red[8],\n border: red[2],\n background: red[0],\n },\n};\n// ============================================================================\n// ALERT TOKENS\n// ============================================================================\nexport const alert = {\n green: {\n content: green[1],\n background: green[9],\n },\n yellow: {\n content: yellow[1],\n background: yellow[9],\n },\n red: {\n content: red[1],\n background: red[9],\n },\n};\n// ============================================================================\n// TAG TOKENS\n// ============================================================================\nexport const tag = {\n content: slateGrey[10],\n border: slateGrey[4],\n background: slateGrey[3],\n};\n// ============================================================================\n// MENU TOKENS\n// ============================================================================\nexport const menu = {\n backgroundDefault: slateGrey[2],\n backgroundHover: slateGrey[1],\n selected: slateGrey[3],\n};\n// ============================================================================\n// INPUT/DROPDOWN TOKENS\n// ============================================================================\nexport const inputDropdown = {\n background: slateGrey[2],\n icon: slateGrey[10],\n borderDefault: slateGrey[4],\n borderSelected: brand[3],\n textLabel: slateGrey[9],\n textPlaceholder: slateGrey[8],\n textHint: slateGrey[8],\n};\nexport const inputField = {\n backgroundDefault: slateGrey[2],\n backgroundDisabled: slateGrey[0],\n textLabel: slateGrey[9],\n textPlaceholder: slateGrey[8],\n textHint: slateGrey[8],\n textError: red[5],\n iconDefault: slateGrey[9],\n iconPlaceholder: slateGrey[10],\n iconError: red[5],\n borderDefault: slateGrey[4],\n borderSelected: brand[3],\n borderError: red[5],\n};\n// ============================================================================\n// TOGGLE TOKENS\n// ============================================================================\nexport const toggle = {\n handleDefault: base.white,\n handleDisabled: slateGrey[10],\n off: {\n backgroundDefault: slateGrey[4],\n backgroundHover: slateGrey[5],\n backgroundDisabled: slateGrey[4],\n },\n on: {\n backgroundDefault: green[3],\n backgroundHover: green[2],\n backgroundDisabled: slateGrey[4],\n },\n};\n// ============================================================================\n// CHECKBOX TOKENS\n// ============================================================================\nexport const checkbox = {\n off: {\n backgroundDefault: '#00000000',\n backgroundHover: slateGrey[5],\n backgroundDisabled: slateGrey[2],\n border: slateGrey[6],\n },\n on: {\n backgroundDefault: green[0],\n backgroundHover: green[1],\n backgroundDisabled: slateGrey[2],\n border: green[3],\n },\n};\n// ============================================================================\n// AVATAR TOKENS\n// ============================================================================\nexport const avatar = {\n content: slateGrey[10],\n background: slateGrey[4],\n};\n// ============================================================================\n// PROGRESS BAR & SLIDER TOKENS\n// ============================================================================\nexport const progressBarSlider = {\n background: slateGrey[4],\n active: green[3],\n};\n// ============================================================================\n// CARD TOKENS\n// ============================================================================\nexport const card = {\n background: slateGrey[1],\n content: slateGrey[9],\n border: slateGrey[4],\n};\n// ============================================================================\n// SIDEBAR TOKENS\n// ============================================================================\nexport const sidebar = {\n backgroundDefault: slateGrey[1],\n backgroundHover: slateGrey[3],\n backgroundActive: slateGrey[4],\n border: slateGrey[4],\n contentPrimary: slateGrey[10],\n contentSecondary: slateGrey[9],\n contentTertiary: slateGrey[8],\n};\n// ============================================================================\n// MODAL TOKENS\n// ============================================================================\nexport const modal = {\n background: slateGrey[1],\n content: slateGrey[9],\n border: slateGrey[4],\n};\n// ============================================================================\n// TAB TOKENS\n// ============================================================================\nexport const tab = {\n activeBackground: slateGrey[3],\n activeContent: brand[5],\n inactiveContent: slateGrey[9],\n border: slateGrey[4],\n};\n// ============================================================================\n// TABLE TOKENS\n// ============================================================================\nexport const table = {\n header: {\n textDefault: slateGrey[9],\n textHover: slateGrey[8],\n backgroundDefault: slateGrey[1],\n },\n border: slateGrey[4],\n cell: {\n textPrimary: slateGrey[10],\n textSecondary: slateGrey[9],\n backgroundDefault: slateGrey[2],\n backgroundHover: slateGrey[1],\n },\n};\n// ============================================================================\n// BREADCRUMBS TOKENS\n// ============================================================================\nexport const breadcrumbs = {\n textPrimaryDefault: slateGrey[10],\n textPrimaryHover: slateGrey[10],\n textSecondaryDefault: slateGrey[8],\n textSecondaryHover: slateGrey[9],\n iconPrimary: slateGrey[10],\n iconSecondary: slateGrey[8],\n};\n// ============================================================================\n// LOADING INDICATOR TOKENS\n// ============================================================================\nexport const loadingIndicator = {\n background: green[1],\n active: green[5],\n};\n// ============================================================================\n// DATE PICKER TOKENS\n// ============================================================================\nexport const datePicker = {\n textDefault: slateGrey[10],\n textSelected: base.white,\n textDisabled: slateGrey[7],\n backgroundDefault: slateGrey[2],\n backgroundMiddle: slateGrey[3],\n backgroundSelected: brand[3],\n border: slateGrey[4],\n};\n// ============================================================================\n// MISC TOKENS\n// ============================================================================\nexport const scroll = slateGrey[9];\n// ============================================================================\n// EXPORTS\n// ============================================================================\nexport const colors = {\n base,\n brand,\n slateGrey,\n green,\n yellow,\n red,\n blue,\n orange,\n purple,\n pink,\n legacy,\n text,\n background,\n border,\n button,\n badge,\n badgeBanner,\n alert,\n tag,\n menu,\n inputDropdown,\n inputField,\n toggle,\n checkbox,\n avatar,\n progressBarSlider,\n card,\n sidebar,\n modal,\n tab,\n table,\n breadcrumbs,\n loadingIndicator,\n datePicker,\n scroll,\n};\nexport default colors;\n", "/**\n * Syntro Design System - Effect Tokens\n *\n * Non-color effect tokens from the Figma design system:\n * shadows, focus rings, backdrop blurs, and overlays.\n *\n * @see https://www.figma.com/design/U0Ol5vM7FQvgPfIgCAgxgb/Design-System\n */\n// ============================================================================\n// SHADOW SCALE\n// ============================================================================\n/**\n * Figma shadow scale using rgba(16,24,40,...) base.\n * Each step increases vertical offset and blur radius.\n */\nexport const shadows = {\n xs: '0 1px 2px 0 rgba(16,24,40,0.05)',\n sm: '0 1px 3px 0 rgba(16,24,40,0.10), 0 1px 2px -1px rgba(16,24,40,0.10)',\n md: '0 4px 6px -1px rgba(16,24,40,0.10), 0 2px 4px -2px rgba(16,24,40,0.10)',\n lg: '0 10px 15px -3px rgba(16,24,40,0.10), 0 4px 6px -4px rgba(16,24,40,0.10)',\n xl: '0 20px 25px -5px rgba(16,24,40,0.10), 0 8px 10px -6px rgba(16,24,40,0.10)',\n '2xl': '0 25px 50px -12px rgba(16,24,40,0.25)',\n '3xl': '0 35px 60px -15px rgba(16,24,40,0.35)',\n inner: 'inset 0 2px 4px 0 rgba(16,24,40,0.05)',\n none: 'none',\n};\n// ============================================================================\n// FOCUS RINGS\n// ============================================================================\n/**\n * Focus ring shadows \u2014 4px spread + xs shadow for depth.\n * Used via `shadow-focus-primary`, `shadow-focus-neutral`, `shadow-focus-error`.\n *\n * Colors reference design system color tokens:\n * primary \u2192 brand-5 (#dd6d69)\n * neutral \u2192 slateGrey-8 (#87919f)\n * error \u2192 red-5 (#ff5150)\n */\nexport const focusRings = {\n primary: '0 0 0 4px rgba(221,109,105,0.25), 0 1px 2px 0 rgba(16,24,40,0.05)',\n neutral: '0 0 0 4px rgba(135,145,159,0.25), 0 1px 2px 0 rgba(16,24,40,0.05)',\n error: '0 0 0 4px rgba(255,81,80,0.25), 0 1px 2px 0 rgba(16,24,40,0.05)',\n};\n// ============================================================================\n// BACKDROP BLUR\n// ============================================================================\n/**\n * Figma backdrop blur scale.\n */\nexport const backdropBlur = {\n sm: '8px',\n md: '16px',\n lg: '24px',\n xl: '40px',\n};\n// ============================================================================\n// OVERLAY\n// ============================================================================\n/**\n * Modal/dialog overlay backgrounds.\n * solid \u2192 full-screen scrim (opaque)\n * blur \u2192 lighter scrim intended to pair with backdrop-blur\n */\nexport const overlay = {\n solid: 'rgba(0,0,0,0.70)',\n blur: 'rgba(0,0,0,0.25)',\n};\n// ============================================================================\n// PRODUCT GLOW SHADOWS\n// ============================================================================\n/**\n * Product-specific glow shadows not in the Figma shadow scale.\n * Used for validated states, brand highlights, and UI depth cues.\n */\nexport const glowShadows = {\n 'glow-green': '0 0 20px -8px rgba(34,197,94,0.3)',\n 'glow-brand': '0 0 25px rgba(212,72,68,0.25)',\n 'glow-brand-sm': '0 0 0 1px rgba(212,72,68,0.15)',\n 'glow-brand-md': '0 0 0 2px rgba(212,72,68,0.3)',\n 'glow-brand-active': '0 0.375rem 0.875rem -0.625rem rgba(212,72,68,0.8)',\n 'glow-brand-tab': '0 0.5rem 1.25rem -0.75rem rgba(212,72,68,0.7)',\n 'glow-brand-nav': '0 0.625rem 1.875rem -1.125rem rgba(212,72,68,0.9)',\n};\n// ============================================================================\n// ELEVATION SHADOWS\n// ============================================================================\n/**\n * Dark-on-dark elevation shadows for card depth.\n */\nexport const elevationShadows = {\n 'elevation-sm': '0 8px 24px -16px rgba(0,0,0,0.6)',\n 'elevation-md': '0 12px 32px -18px rgba(0,0,0,0.6)',\n 'elevation-lg': '0 18px 48px -24px rgba(0,0,0,0.65)',\n 'elevation-card': '0 0.75rem 2rem -1.25rem rgba(0,0,0,0.7)',\n 'elevation-card-soft': '0 0.75rem 2.375rem -0.75rem rgba(0,0,0,0.4)',\n 'elevation-card-tight': '0 0.625rem 1.625rem -1.125rem rgba(0,0,0,0.6)',\n};\n// ============================================================================\n// ANIMATION TIMING CONSTANTS\n// ============================================================================\n/**\n * Shared animation duration constants for consistent motion across the UI.\n */\nexport const animationDuration = {\n DURATION_SHORT: '150ms',\n DURATION_MEDIUM: '200ms',\n DURATION_LONG: '300ms',\n};\n// ============================================================================\n// DEFAULT EXPORT\n// ============================================================================\nexport const effects = {\n shadows,\n focusRings,\n backdropBlur,\n overlay,\n glowShadows,\n elevationShadows,\n animationDuration,\n};\nexport default effects;\n", "/**\n * Syntro Design System \u2014 Editor Panel Shell Tokens\n *\n * Single source of truth for the floating editor panel's visuals and behavior.\n * Consumed by:\n * - packages/shared-editor-ui/src/components/EditorPanelShell.tsx (React)\n * - packages/shared-editor-ui/src/controllers/PanelShellController.ts (Lit)\n *\n * Any change here updates both React and Lit panels in one step \u2014 no drift.\n */\nimport { base, brand } from './colors';\n// ============================================================================\n// Panel background & shadows\n// ============================================================================\n/** Dark gradient rendered behind the panel contents (backdrop-blur layered on). */\nexport const panelBackground = 'linear-gradient(160deg, rgba(7,8,10,0.84) 0%, rgba(14,17,20,0.88) 45%, rgba(15,19,24,0.84) 100%)';\n/** Outer shadows for the panel, indexed by dock state. */\nexport const panelShadows = {\n /** Free-floating panel \u2014 shadow all sides. */\n floating: '0 8px 60px rgba(0,0,0,0.5)',\n /** Docked to left \u2014 shadow cast rightward into page. */\n dockedLeft: '20px 0 60px rgba(0,0,0,0.5)',\n /** Docked to right \u2014 shadow cast leftward into page. */\n dockedRight: '-20px 0 60px rgba(0,0,0,0.5)',\n};\n/** Backdrop-filter blur radius applied to the panel surface. */\nexport const panelBackdropBlur = '12px';\n// ============================================================================\n// FAB (floating action button) visuals\n// ============================================================================\nexport const fab = {\n /** Diameter in pixels. */\n size: 56,\n /** Inset from the panel's top-left corner in pixels. */\n inset: 12,\n /** Background color (always the brand black). */\n background: base.black,\n /** Icon / logo color. */\n color: base.white,\n /** Border \u2014 2px brand red ring. */\n border: `2px solid ${brand[3]}`,\n /** Shadow when the panel is open (inner ring for \"active\" state). */\n shadowOpen: '0 4px 24px rgba(0,0,0,0.6), 0 0 0 2px rgba(255,255,255,0.08)',\n /** Shadow when the panel is closed. */\n shadowClosed: '0 4px 24px rgba(0,0,0,0.6)',\n};\n// ============================================================================\n// Behavior: resize, drag, snap\n// ============================================================================\nexport const panelBehavior = {\n /** Minimum panel width when resizing or undocked. */\n minWidth: 480,\n /** Minimum panel height when resizing or undocked. */\n minHeight: 400,\n /** Edge thickness of resize handles in pixels. */\n handleSize: 8,\n /** Pixels the FAB must move before a press becomes a drag (vs a click). */\n dragThreshold: 5,\n /** Distance from a viewport edge that triggers edge-dock snapping. */\n snapThreshold: 20,\n};\n// ============================================================================\n// Aggregate export\n// ============================================================================\nexport const panelShell = {\n background: panelBackground,\n shadows: panelShadows,\n backdropBlur: panelBackdropBlur,\n fab,\n behavior: panelBehavior,\n};\nexport default panelShell;\n"],
5
- "mappings": "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",
3
+ "sources": ["../../../design-system/dist/tokens/colors.js", "../../../design-system/dist/tokens/effects.js", "../../../design-system/dist/tokens/panel-shell.js", "../src/answerRendering.ts"],
4
+ "sourcesContent": ["/**\n * Syntro Design System - Color Tokens\n *\n * This file contains all color tokens from the Figma design system.\n * Colors are organized by scale and semantic meaning.\n *\n * @see https://www.figma.com/design/U0Ol5vM7FQvgPfIgCAgxgb/Design-System\n */\n// ============================================================================\n// BASE COLORS\n// ============================================================================\nexport const base = {\n white: '#ffffff',\n black: '#000000',\n};\n// ============================================================================\n// BRAND COLORS\n// ============================================================================\nexport const brand = {\n 0: '#2c0b0a',\n 1: '#5b1715',\n 2: '#89221f',\n 3: '#b72e2a',\n 4: '#d44844',\n 5: '#dd6d69',\n 6: '#e5918f',\n 7: '#eeb6b4',\n 8: '#f6dada',\n 9: '#faebea',\n};\n// ============================================================================\n// NEUTRAL COLORS\n// ============================================================================\nexport const slateGrey = {\n 0: '#07080a',\n 1: '#0f1318',\n 2: '#0e1114',\n 3: '#1c222a',\n 4: '#2b333f',\n 5: '#394454',\n 6: '#475569',\n 7: '#677384',\n 8: '#87919f',\n 9: '#a8afba',\n 10: '#cbd0d7',\n 11: '#e8eaee',\n 12: '#f6f7f9',\n};\n// ============================================================================\n// SEMANTIC COLOR SCALES\n// ============================================================================\nexport const green = {\n 0: '#07230a',\n 1: '#0e4514',\n 2: '#16681e',\n 3: '#1d8a28',\n 4: '#24ad32',\n 5: '#4fbd5a',\n 6: '#7acd82',\n 7: '#a5deab',\n 8: '#d0eed3',\n 9: '#e5f6e7',\n};\nexport const yellow = {\n 0: '#301f09',\n 1: '#5f3e12',\n 2: '#8f5e1b',\n 3: '#be7d24',\n 4: '#ee9c2d',\n 5: '#f1b057',\n 6: '#f5c481',\n 7: '#f8d7ab',\n 8: '#fcebd5',\n 9: '#fdf5ea',\n};\nexport const red = {\n 0: '#330707',\n 1: '#660f0e',\n 2: '#991616',\n 3: '#cc1e1d',\n 4: '#ff2524',\n 5: '#ff5150',\n 6: '#ff7c7c',\n 7: '#ffa8a7',\n 8: '#ffd3d3',\n 9: '#ffe9e9',\n};\nexport const blue = {\n 0: '#051533',\n 1: '#0a2a66',\n 2: '#0f3f98',\n 3: '#1454cb',\n 4: '#1969fe',\n 5: '#4787fe',\n 6: '#75a5fe',\n 7: '#a3c3ff',\n 8: '#d1e1ff',\n 9: '#e8f0ff',\n};\nexport const orange = {\n 0: '#662500',\n 1: '#993d00',\n 2: '#cc5800',\n 3: '#ff7700',\n 4: '#fea85d',\n 5: '#fec58f',\n 6: '#ffd6ae',\n 7: '#fee6cd',\n 8: '#fff1e1',\n 9: '#fff8f0',\n};\nexport const purple = {\n 0: '#151229',\n 1: '#2a2452',\n 2: '#40357c',\n 3: '#5547a5',\n 4: '#6a59ce',\n 5: '#887ad8',\n 6: '#a69be2',\n 7: '#c3bdeb',\n 8: '#e1def5',\n 9: '#f0eefa',\n};\nexport const pink = {\n 0: '#37091f',\n 1: '#69123c',\n 2: '#9b1c58',\n 3: '#cd2575',\n 4: '#ff2e92',\n 5: '#ff58a8',\n 6: '#ff82be',\n 7: '#ffabd3',\n 8: '#ffd5e9',\n 9: '#ffeaf4',\n};\n// ============================================================================\n// LEGACY COLORS (Being phased out)\n// ============================================================================\nexport const legacy = {\n aqua: {\n 0: '#0c5f8d',\n 1: '#146b99',\n 2: '#1d78a6',\n 3: '#2e89b6',\n 4: '#4a9fc4',\n 5: '#6bb4d1',\n 6: '#93cce0',\n 7: '#bddff0',\n 8: '#dceef8',\n 9: '#f2f8fc',\n },\n violet: {\n 0: '#6927da',\n 1: '#7839ee',\n 2: '#875bf7',\n 3: '#a48afb',\n 4: '#c3b4fd',\n 5: '#ddd6fe',\n 6: '#ece9fe',\n 7: '#f5f3ff',\n 8: '#fbfaff',\n },\n fuchsia: {\n 0: '#9f1ab1',\n 1: '#ba24d5',\n 2: '#d444f1',\n 3: '#e478fa',\n 4: '#eeaafd',\n 5: '#f6d0fe',\n 6: '#fbe8ff',\n 7: '#fdf4ff',\n 8: '#fefaff',\n },\n pink: {\n 0: '#a10f5f',\n 1: '#dd2590',\n 2: '#ee46bc',\n 3: '#f670c7',\n 4: '#faa7e0',\n 5: '#fcceee',\n 6: '#fce7f6',\n 7: '#fdf2fa',\n 8: '#fef6fb',\n },\n};\n// ============================================================================\n// TEXT TOKENS\n// ============================================================================\nexport const text = {\n primary: slateGrey[10],\n secondary: slateGrey[9],\n tertiary: slateGrey[8],\n};\n// ============================================================================\n// BACKGROUND TOKENS\n// ============================================================================\nexport const background = {\n primary: slateGrey[2],\n secondary: slateGrey[0],\n};\n// ============================================================================\n// BORDER TOKENS\n// ============================================================================\nexport const border = {\n primary: slateGrey[4],\n secondary: slateGrey[3],\n};\n// ============================================================================\n// BUTTON TOKENS\n// ============================================================================\nexport const button = {\n primary: {\n text: base.white,\n icon: base.white,\n border: brand[3],\n backgroundDefault: brand[3],\n backgroundHover: brand[2],\n },\n neutral: {\n text: slateGrey[10],\n textHover: base.white,\n icon: slateGrey[10],\n iconHover: base.white,\n border: slateGrey[4],\n background: slateGrey[2],\n },\n link: {\n text: base.white,\n icon: base.white,\n hover: brand[5],\n },\n error: {\n text: red[5],\n hover: red[6],\n },\n success: {\n text: green[5],\n hover: green[6],\n },\n};\n// ============================================================================\n// BADGE TOKENS\n// ============================================================================\nexport const badge = {\n slateGrey: {\n content: slateGrey[10],\n pillOutline: slateGrey[10],\n borderPrimary: slateGrey[5],\n borderSecondary: slateGrey[5],\n background: slateGrey[3],\n },\n brand: {\n content: brand[9],\n pillOutline: brand[9],\n borderPrimary: brand[6],\n borderSecondary: brand[6],\n background: brand[0],\n },\n red: {\n content: red[8],\n pillOutline: red[4],\n borderPrimary: red[2],\n borderSecondary: red[2],\n background: red[0],\n },\n yellow: {\n content: yellow[8],\n pillOutline: yellow[4],\n borderPrimary: yellow[2],\n borderSecondary: yellow[2],\n background: yellow[0],\n },\n green: {\n content: green[8],\n pillOutline: green[4],\n borderPrimary: green[2],\n borderSecondary: green[2],\n background: green[0],\n },\n purple: {\n content: purple[8],\n pillOutline: purple[4],\n borderPrimary: purple[2],\n borderSecondary: purple[2],\n background: purple[0],\n },\n blue: {\n content: blue[8],\n pillOutline: blue[4],\n borderPrimary: blue[2],\n borderSecondary: blue[2],\n background: blue[0],\n },\n orange: {\n content: orange[8],\n pillOutline: orange[4],\n borderPrimary: orange[2],\n borderSecondary: orange[2],\n background: orange[0],\n },\n pink: {\n content: pink[8],\n pillOutline: pink[4],\n borderPrimary: pink[2],\n borderSecondary: pink[2],\n background: pink[0],\n },\n};\n// ============================================================================\n// BADGE BANNER TOKENS\n// ============================================================================\nexport const badgeBanner = {\n green: {\n content: green[8],\n border: green[2],\n background: green[0],\n },\n yellow: {\n content: yellow[8],\n border: yellow[2],\n background: yellow[0],\n },\n red: {\n content: red[8],\n border: red[2],\n background: red[0],\n },\n};\n// ============================================================================\n// ALERT TOKENS\n// ============================================================================\nexport const alert = {\n green: {\n content: green[1],\n background: green[9],\n },\n yellow: {\n content: yellow[1],\n background: yellow[9],\n },\n red: {\n content: red[1],\n background: red[9],\n },\n};\n// ============================================================================\n// TAG TOKENS\n// ============================================================================\nexport const tag = {\n content: slateGrey[10],\n border: slateGrey[4],\n background: slateGrey[3],\n};\n// ============================================================================\n// MENU TOKENS\n// ============================================================================\nexport const menu = {\n backgroundDefault: slateGrey[2],\n backgroundHover: slateGrey[1],\n selected: slateGrey[3],\n};\n// ============================================================================\n// INPUT/DROPDOWN TOKENS\n// ============================================================================\nexport const inputDropdown = {\n background: slateGrey[2],\n icon: slateGrey[10],\n borderDefault: slateGrey[4],\n borderSelected: brand[3],\n textLabel: slateGrey[9],\n textPlaceholder: slateGrey[8],\n textHint: slateGrey[8],\n};\nexport const inputField = {\n backgroundDefault: slateGrey[2],\n backgroundDisabled: slateGrey[0],\n textLabel: slateGrey[9],\n textPlaceholder: slateGrey[8],\n textHint: slateGrey[8],\n textError: red[5],\n iconDefault: slateGrey[9],\n iconPlaceholder: slateGrey[10],\n iconError: red[5],\n borderDefault: slateGrey[4],\n borderSelected: brand[3],\n borderError: red[5],\n};\n// ============================================================================\n// TOGGLE TOKENS\n// ============================================================================\nexport const toggle = {\n handleDefault: base.white,\n handleDisabled: slateGrey[10],\n off: {\n backgroundDefault: slateGrey[4],\n backgroundHover: slateGrey[5],\n backgroundDisabled: slateGrey[4],\n },\n on: {\n backgroundDefault: green[3],\n backgroundHover: green[2],\n backgroundDisabled: slateGrey[4],\n },\n};\n// ============================================================================\n// CHECKBOX TOKENS\n// ============================================================================\nexport const checkbox = {\n off: {\n backgroundDefault: '#00000000',\n backgroundHover: slateGrey[5],\n backgroundDisabled: slateGrey[2],\n border: slateGrey[6],\n },\n on: {\n backgroundDefault: green[0],\n backgroundHover: green[1],\n backgroundDisabled: slateGrey[2],\n border: green[3],\n },\n};\n// ============================================================================\n// AVATAR TOKENS\n// ============================================================================\nexport const avatar = {\n content: slateGrey[10],\n background: slateGrey[4],\n};\n// ============================================================================\n// PROGRESS BAR & SLIDER TOKENS\n// ============================================================================\nexport const progressBarSlider = {\n background: slateGrey[4],\n active: green[3],\n};\n// ============================================================================\n// CARD TOKENS\n// ============================================================================\nexport const card = {\n background: slateGrey[1],\n content: slateGrey[9],\n border: slateGrey[4],\n};\n// ============================================================================\n// SIDEBAR TOKENS\n// ============================================================================\nexport const sidebar = {\n backgroundDefault: slateGrey[1],\n backgroundHover: slateGrey[3],\n backgroundActive: slateGrey[4],\n border: slateGrey[4],\n contentPrimary: slateGrey[10],\n contentSecondary: slateGrey[9],\n contentTertiary: slateGrey[8],\n};\n// ============================================================================\n// MODAL TOKENS\n// ============================================================================\nexport const modal = {\n background: slateGrey[1],\n content: slateGrey[9],\n border: slateGrey[4],\n};\n// ============================================================================\n// TAB TOKENS\n// ============================================================================\nexport const tab = {\n activeBackground: slateGrey[3],\n activeContent: brand[5],\n inactiveContent: slateGrey[9],\n border: slateGrey[4],\n};\n// ============================================================================\n// TABLE TOKENS\n// ============================================================================\nexport const table = {\n header: {\n textDefault: slateGrey[9],\n textHover: slateGrey[8],\n backgroundDefault: slateGrey[1],\n },\n border: slateGrey[4],\n cell: {\n textPrimary: slateGrey[10],\n textSecondary: slateGrey[9],\n backgroundDefault: slateGrey[2],\n backgroundHover: slateGrey[1],\n },\n};\n// ============================================================================\n// BREADCRUMBS TOKENS\n// ============================================================================\nexport const breadcrumbs = {\n textPrimaryDefault: slateGrey[10],\n textPrimaryHover: slateGrey[10],\n textSecondaryDefault: slateGrey[8],\n textSecondaryHover: slateGrey[9],\n iconPrimary: slateGrey[10],\n iconSecondary: slateGrey[8],\n};\n// ============================================================================\n// LOADING INDICATOR TOKENS\n// ============================================================================\nexport const loadingIndicator = {\n background: green[1],\n active: green[5],\n};\n// ============================================================================\n// DATE PICKER TOKENS\n// ============================================================================\nexport const datePicker = {\n textDefault: slateGrey[10],\n textSelected: base.white,\n textDisabled: slateGrey[7],\n backgroundDefault: slateGrey[2],\n backgroundMiddle: slateGrey[3],\n backgroundSelected: brand[3],\n border: slateGrey[4],\n};\n// ============================================================================\n// MISC TOKENS\n// ============================================================================\nexport const scroll = slateGrey[9];\n// ============================================================================\n// EXPORTS\n// ============================================================================\nexport const colors = {\n base,\n brand,\n slateGrey,\n green,\n yellow,\n red,\n blue,\n orange,\n purple,\n pink,\n legacy,\n text,\n background,\n border,\n button,\n badge,\n badgeBanner,\n alert,\n tag,\n menu,\n inputDropdown,\n inputField,\n toggle,\n checkbox,\n avatar,\n progressBarSlider,\n card,\n sidebar,\n modal,\n tab,\n table,\n breadcrumbs,\n loadingIndicator,\n datePicker,\n scroll,\n};\nexport default colors;\n", "/**\n * Syntro Design System - Effect Tokens\n *\n * Non-color effect tokens from the Figma design system:\n * shadows, focus rings, backdrop blurs, and overlays.\n *\n * @see https://www.figma.com/design/U0Ol5vM7FQvgPfIgCAgxgb/Design-System\n */\n// ============================================================================\n// SHADOW SCALE\n// ============================================================================\n/**\n * Figma shadow scale using rgba(16,24,40,...) base.\n * Each step increases vertical offset and blur radius.\n */\nexport const shadows = {\n xs: '0 1px 2px 0 rgba(16,24,40,0.05)',\n sm: '0 1px 3px 0 rgba(16,24,40,0.10), 0 1px 2px -1px rgba(16,24,40,0.10)',\n md: '0 4px 6px -1px rgba(16,24,40,0.10), 0 2px 4px -2px rgba(16,24,40,0.10)',\n lg: '0 10px 15px -3px rgba(16,24,40,0.10), 0 4px 6px -4px rgba(16,24,40,0.10)',\n xl: '0 20px 25px -5px rgba(16,24,40,0.10), 0 8px 10px -6px rgba(16,24,40,0.10)',\n '2xl': '0 25px 50px -12px rgba(16,24,40,0.25)',\n '3xl': '0 35px 60px -15px rgba(16,24,40,0.35)',\n inner: 'inset 0 2px 4px 0 rgba(16,24,40,0.05)',\n none: 'none',\n};\n// ============================================================================\n// FOCUS RINGS\n// ============================================================================\n/**\n * Focus ring shadows \u2014 4px spread + xs shadow for depth.\n * Used via `shadow-focus-primary`, `shadow-focus-neutral`, `shadow-focus-error`.\n *\n * Colors reference design system color tokens:\n * primary \u2192 brand-5 (#dd6d69)\n * neutral \u2192 slateGrey-8 (#87919f)\n * error \u2192 red-5 (#ff5150)\n */\nexport const focusRings = {\n primary: '0 0 0 4px rgba(221,109,105,0.25), 0 1px 2px 0 rgba(16,24,40,0.05)',\n neutral: '0 0 0 4px rgba(135,145,159,0.25), 0 1px 2px 0 rgba(16,24,40,0.05)',\n error: '0 0 0 4px rgba(255,81,80,0.25), 0 1px 2px 0 rgba(16,24,40,0.05)',\n};\n// ============================================================================\n// BACKDROP BLUR\n// ============================================================================\n/**\n * Figma backdrop blur scale.\n */\nexport const backdropBlur = {\n sm: '8px',\n md: '16px',\n lg: '24px',\n xl: '40px',\n};\n// ============================================================================\n// OVERLAY\n// ============================================================================\n/**\n * Modal/dialog overlay backgrounds.\n * solid \u2192 full-screen scrim (opaque)\n * blur \u2192 lighter scrim intended to pair with backdrop-blur\n */\nexport const overlay = {\n solid: 'rgba(0,0,0,0.70)',\n blur: 'rgba(0,0,0,0.25)',\n};\n// ============================================================================\n// PRODUCT GLOW SHADOWS\n// ============================================================================\n/**\n * Product-specific glow shadows not in the Figma shadow scale.\n * Used for validated states, brand highlights, and UI depth cues.\n */\nexport const glowShadows = {\n 'glow-green': '0 0 20px -8px rgba(34,197,94,0.3)',\n 'glow-brand': '0 0 25px rgba(212,72,68,0.25)',\n 'glow-brand-sm': '0 0 0 1px rgba(212,72,68,0.15)',\n 'glow-brand-md': '0 0 0 2px rgba(212,72,68,0.3)',\n 'glow-brand-active': '0 0.375rem 0.875rem -0.625rem rgba(212,72,68,0.8)',\n 'glow-brand-tab': '0 0.5rem 1.25rem -0.75rem rgba(212,72,68,0.7)',\n 'glow-brand-nav': '0 0.625rem 1.875rem -1.125rem rgba(212,72,68,0.9)',\n};\n// ============================================================================\n// ELEVATION SHADOWS\n// ============================================================================\n/**\n * Dark-on-dark elevation shadows for card depth.\n */\nexport const elevationShadows = {\n 'elevation-sm': '0 8px 24px -16px rgba(0,0,0,0.6)',\n 'elevation-md': '0 12px 32px -18px rgba(0,0,0,0.6)',\n 'elevation-lg': '0 18px 48px -24px rgba(0,0,0,0.65)',\n 'elevation-card': '0 0.75rem 2rem -1.25rem rgba(0,0,0,0.7)',\n 'elevation-card-soft': '0 0.75rem 2.375rem -0.75rem rgba(0,0,0,0.4)',\n 'elevation-card-tight': '0 0.625rem 1.625rem -1.125rem rgba(0,0,0,0.6)',\n};\n// ============================================================================\n// ANIMATION TIMING CONSTANTS\n// ============================================================================\n/**\n * Shared animation duration constants for consistent motion across the UI.\n */\nexport const animationDuration = {\n DURATION_SHORT: '150ms',\n DURATION_MEDIUM: '200ms',\n DURATION_LONG: '300ms',\n};\n// ============================================================================\n// DEFAULT EXPORT\n// ============================================================================\nexport const effects = {\n shadows,\n focusRings,\n backdropBlur,\n overlay,\n glowShadows,\n elevationShadows,\n animationDuration,\n};\nexport default effects;\n", "/**\n * Syntro Design System \u2014 Editor Panel Shell Tokens\n *\n * Single source of truth for the floating editor panel's visuals and behavior.\n * Consumed by:\n * - packages/shared-editor-ui/src/components/EditorPanelShell.tsx (React)\n * - packages/shared-editor-ui/src/controllers/PanelShellController.ts (Lit)\n *\n * Any change here updates both React and Lit panels in one step \u2014 no drift.\n */\nimport { base, brand } from './colors';\n// ============================================================================\n// Panel background & shadows\n// ============================================================================\n/** Dark gradient rendered behind the panel contents (backdrop-blur layered on). */\nexport const panelBackground = 'linear-gradient(160deg, rgba(7,8,10,0.84) 0%, rgba(14,17,20,0.88) 45%, rgba(15,19,24,0.84) 100%)';\n/** Outer shadows for the panel, indexed by dock state. */\nexport const panelShadows = {\n /** Free-floating panel \u2014 shadow all sides. */\n floating: '0 8px 60px rgba(0,0,0,0.5)',\n /** Docked to left \u2014 shadow cast rightward into page. */\n dockedLeft: '20px 0 60px rgba(0,0,0,0.5)',\n /** Docked to right \u2014 shadow cast leftward into page. */\n dockedRight: '-20px 0 60px rgba(0,0,0,0.5)',\n};\n/** Backdrop-filter blur radius applied to the panel surface. */\nexport const panelBackdropBlur = '12px';\n// ============================================================================\n// FAB (floating action button) visuals\n// ============================================================================\nexport const fab = {\n /** Diameter in pixels. */\n size: 56,\n /** Inset from the panel's top-left corner in pixels. */\n inset: 12,\n /** Background color (always the brand black). */\n background: base.black,\n /** Icon / logo color. */\n color: base.white,\n /** Border \u2014 2px brand red ring. */\n border: `2px solid ${brand[3]}`,\n /** Shadow when the panel is open (inner ring for \"active\" state). */\n shadowOpen: '0 4px 24px rgba(0,0,0,0.6), 0 0 0 2px rgba(255,255,255,0.08)',\n /** Shadow when the panel is closed. */\n shadowClosed: '0 4px 24px rgba(0,0,0,0.6)',\n};\n// ============================================================================\n// Behavior: resize, drag, snap\n// ============================================================================\nexport const panelBehavior = {\n /** Minimum panel width when resizing or undocked. */\n minWidth: 480,\n /** Minimum panel height when resizing or undocked. */\n minHeight: 400,\n /** Edge thickness of resize handles in pixels. */\n handleSize: 8,\n /** Pixels the FAB must move before a press becomes a drag (vs a click). */\n dragThreshold: 5,\n /** Distance from a viewport edge that triggers edge-dock snapping. */\n snapThreshold: 20,\n};\n// ============================================================================\n// Aggregate export\n// ============================================================================\nexport const panelShell = {\n background: panelBackground,\n shadows: panelShadows,\n backdropBlur: panelBackdropBlur,\n fab,\n behavior: panelBehavior,\n};\nexport default panelShell;\n", "import { Marked } from 'marked';\n\nimport type { FAQAnswer } from './types';\n\nconst marked = new Marked({ async: false, gfm: true, breaks: true });\n\nexport function getAnswerText(answer: FAQAnswer): string {\n if (typeof answer === 'string') return answer;\n if (answer.type === 'rich') return answer.html;\n return answer.content;\n}\n\nexport function renderAnswerHtml(answer: FAQAnswer): string {\n if (typeof answer === 'string') {\n return marked.parse(answer) as string;\n }\n if (answer.type === 'rich') {\n return answer.html;\n }\n return marked.parse(answer.content) as string;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/dist/editor.d.ts CHANGED
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import { LitElement } from 'lit';
12
12
  import '@syntrologie/shared-editor-ui/lit-elements';
13
+ import './faq-item-editor';
13
14
  import { type FAQEditorConfig } from './types';
14
15
  export declare class FAQEditorLit extends LitElement {
15
16
  static properties: {
@@ -27,11 +28,18 @@ export declare class FAQEditorLit extends LitElement {
27
28
  onChange: ((updated: Record<string, unknown>) => void) | null;
28
29
  private _editingKey;
29
30
  createRenderRoot(): this;
30
- private _handleBack;
31
31
  private _handleItemClick;
32
- private _emitFieldChange;
33
- private _handleFieldChange;
34
32
  private _handleDelete;
33
+ /**
34
+ * Build the FAQConfig slice and onChange handler to pass to <syntro-faq-item-editor>.
35
+ *
36
+ * For flat configs the full config is passed directly.
37
+ * For grouped configs a synthetic FAQConfig is built from the item's group actions so the
38
+ * inner element can find the item by ID. When onChange fires the patched flat actions are
39
+ * spliced back into the correct group of the grouped config before bubbling to the panel's
40
+ * own onChange.
41
+ */
42
+ private _buildInnerProps;
35
43
  private _renderEditMode;
36
44
  private _renderItemCard;
37
45
  private _handleNavigateFromPill;
@@ -39,4 +47,21 @@ export declare class FAQEditorLit extends LitElement {
39
47
  private _renderListMode;
40
48
  render(): import("lit-html").TemplateResult<1>;
41
49
  }
50
+ export { FAQAccordionEditableElement, FAQWidgetLitEditableMountable, } from './FAQWidgetLit.editable';
51
+ export { FAQItemEditorLit } from './faq-item-editor';
52
+ interface ModalHostLike {
53
+ registerEditorFactory: (adaptive: 'adaptive-faq:accordion', factory: {
54
+ item: (args: {
55
+ itemId: string;
56
+ appConfig: Record<string, unknown>;
57
+ onChange: (next: Record<string, unknown>) => void;
58
+ }) => HTMLElement;
59
+ container: (args: {
60
+ appConfig: Record<string, unknown>;
61
+ onChange: (next: Record<string, unknown>) => void;
62
+ }) => HTMLElement;
63
+ }) => void;
64
+ }
65
+ /** Wires the FAQ adaptive's editor factories into the modal host. Called by editor-sdk bootstrap. */
66
+ export declare function registerFaqEditorFactories(modalHost: ModalHostLike): void;
42
67
  //# sourceMappingURL=editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAGhD,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAGL,KAAK,eAAe,EAMrB,MAAM,SAAS,CAAC;AA0HjB,qBAAa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,UAAU;;;;;;;;;;MAIxB;IAEF,MAAM,EAAE,eAAe,GAAG,IAAI,CAAQ;IACtC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAErE,OAAO,CAAC,WAAW,CAAuB;IAEjC,gBAAgB;IAMzB,OAAO,CAAC,WAAW,CAMjB;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,aAAa,CA2BnB;IAIF,OAAO,CAAC,eAAe,CAsDrB;IAEF,OAAO,CAAC,eAAe,CAwDrB;IAEF,OAAO,CAAC,uBAAuB,CAY7B;IAEF,OAAO,CAAC,kBAAkB,CA8BxB;IAEF,OAAO,CAAC,eAAe,CAyBrB;IAEO,MAAM;CAoChB"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAGhD,OAAO,4CAA4C,CAAC;AAGpD,OAAO,mBAAmB,CAAC;AAG3B,OAAO,EAEL,KAAK,eAAe,EAMrB,MAAM,SAAS,CAAC;AAoHjB,qBAAa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,UAAU;;;;;;;;;;MAIxB;IAEF,MAAM,EAAE,eAAe,GAAG,IAAI,CAAQ;IACtC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAErE,OAAO,CAAC,WAAW,CAAuB;IAEjC,gBAAgB;IAMzB,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,aAAa,CA2BnB;IAIF;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAmDxB,OAAO,CAAC,eAAe,CASrB;IAEF,OAAO,CAAC,eAAe,CAwDrB;IAEF,OAAO,CAAC,uBAAuB,CAY7B;IAEF,OAAO,CAAC,kBAAkB,CA8BxB;IAEF,OAAO,CAAC,eAAe,CAyBrB;IAEO,MAAM;CAoChB;AAQD,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAMrD,UAAU,aAAa;IACrB,qBAAqB,EAAE,CACrB,QAAQ,EAAE,wBAAwB,EAClC,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,IAAI,EAAE;YACX,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;SACnD,KAAK,WAAW,CAAC;QAClB,SAAS,EAAE,CAAC,IAAI,EAAE;YAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;SACnD,KAAK,WAAW,CAAC;KACnB,KACE,IAAI,CAAC;CACX;AAED,qGAAqG;AACrG,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAsCzE"}