@kubuild/renderer 0.8.1 → 0.8.2

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 (133) hide show
  1. package/dist/action-dispatcher.d.cts +42 -0
  2. package/dist/action-dispatcher.d.cts.map +1 -0
  3. package/dist/action-dispatcher.d.ts +2 -2
  4. package/dist/action-dispatcher.d.ts.map +1 -1
  5. package/dist/action-runners/api-request.d.cts +89 -0
  6. package/dist/action-runners/api-request.d.cts.map +1 -0
  7. package/dist/action-runners/index.d.cts +25 -0
  8. package/dist/action-runners/index.d.cts.map +1 -0
  9. package/dist/action-runners/index.d.ts +8 -8
  10. package/dist/action-runners/index.d.ts.map +1 -1
  11. package/dist/action-runners/modal-manager.d.cts +73 -0
  12. package/dist/action-runners/modal-manager.d.cts.map +1 -0
  13. package/dist/action-runners/navigation-utils.d.cts +62 -0
  14. package/dist/action-runners/navigation-utils.d.cts.map +1 -0
  15. package/dist/action-runners/toast-container.d.cts +20 -0
  16. package/dist/action-runners/toast-container.d.cts.map +1 -0
  17. package/dist/action-runners/toast-container.d.ts +1 -1
  18. package/dist/action-runners/toast-container.d.ts.map +1 -1
  19. package/dist/action-runners/toast-manager.d.cts +74 -0
  20. package/dist/action-runners/toast-manager.d.cts.map +1 -0
  21. package/dist/action-runners/tracking.d.cts +25 -0
  22. package/dist/action-runners/tracking.d.cts.map +1 -0
  23. package/dist/action-runners/ui-feedback.d.cts +37 -0
  24. package/dist/action-runners/ui-feedback.d.cts.map +1 -0
  25. package/dist/action-runners/ui-feedback.d.ts +1 -1
  26. package/dist/action-runners/ui-feedback.d.ts.map +1 -1
  27. package/dist/animation.d.cts +26 -0
  28. package/dist/animation.d.cts.map +1 -0
  29. package/dist/artboard-portal-host.d.cts +70 -0
  30. package/dist/artboard-portal-host.d.cts.map +1 -0
  31. package/dist/artboard-portal-host.d.ts +4 -4
  32. package/dist/artboard-portal-host.d.ts.map +1 -1
  33. package/dist/code-generator.d.cts +51 -0
  34. package/dist/code-generator.d.cts.map +1 -0
  35. package/dist/error-boundary.d.cts +22 -0
  36. package/dist/error-boundary.d.cts.map +1 -0
  37. package/dist/error-boundary.d.ts +1 -1
  38. package/dist/error-boundary.d.ts.map +1 -1
  39. package/dist/form-context.d.cts +114 -0
  40. package/dist/form-context.d.cts.map +1 -0
  41. package/dist/index.d.cts +17 -0
  42. package/dist/index.d.cts.map +1 -0
  43. package/dist/index.d.ts +16 -16
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/legacy-actions.d.cts +19 -0
  46. package/dist/legacy-actions.d.cts.map +1 -0
  47. package/dist/nodes/editable-text.d.cts +15 -0
  48. package/dist/nodes/editable-text.d.cts.map +1 -0
  49. package/dist/nodes/extended-form-nodes.d.cts +118 -0
  50. package/dist/nodes/extended-form-nodes.d.cts.map +1 -0
  51. package/dist/nodes/extended-form-nodes.d.ts +1 -1
  52. package/dist/nodes/extended-form-nodes.d.ts.map +1 -1
  53. package/dist/nodes/form-nodes.d.cts +186 -0
  54. package/dist/nodes/form-nodes.d.cts.map +1 -0
  55. package/dist/nodes/form-nodes.d.ts +2 -2
  56. package/dist/nodes/form-nodes.d.ts.map +1 -1
  57. package/dist/nodes/html-embed.d.cts +15 -0
  58. package/dist/nodes/html-embed.d.cts.map +1 -0
  59. package/dist/nodes/index.d.cts +7 -0
  60. package/dist/nodes/index.d.cts.map +1 -0
  61. package/dist/nodes/index.d.ts +6 -6
  62. package/dist/nodes/index.d.ts.map +1 -1
  63. package/dist/nodes/media-utils.d.cts +17 -0
  64. package/dist/nodes/media-utils.d.cts.map +1 -0
  65. package/dist/nodes/radio-group-context.d.cts +12 -0
  66. package/dist/nodes/radio-group-context.d.cts.map +1 -0
  67. package/dist/preview-adapter.d.cts +128 -0
  68. package/dist/preview-adapter.d.cts.map +1 -0
  69. package/dist/preview-adapter.d.ts +1 -1
  70. package/dist/preview-adapter.d.ts.map +1 -1
  71. package/dist/prop-resolution.d.cts +16 -0
  72. package/dist/prop-resolution.d.cts.map +1 -0
  73. package/dist/render-context.d.cts +117 -0
  74. package/dist/render-context.d.cts.map +1 -0
  75. package/dist/renderer.d.cts +77 -0
  76. package/dist/renderer.d.cts.map +1 -0
  77. package/dist/renderer.d.ts +4 -4
  78. package/dist/renderer.d.ts.map +1 -1
  79. package/dist/renderers/conversion/accordion.d.cts +20 -0
  80. package/dist/renderers/conversion/accordion.d.cts.map +1 -0
  81. package/dist/renderers/conversion/accordion.d.ts +1 -1
  82. package/dist/renderers/conversion/accordion.d.ts.map +1 -1
  83. package/dist/renderers/conversion/carousel.d.cts +13 -0
  84. package/dist/renderers/conversion/carousel.d.cts.map +1 -0
  85. package/dist/renderers/conversion/carousel.d.ts +1 -1
  86. package/dist/renderers/conversion/carousel.d.ts.map +1 -1
  87. package/dist/renderers/conversion/countdown.d.cts +50 -0
  88. package/dist/renderers/conversion/countdown.d.cts.map +1 -0
  89. package/dist/renderers/conversion/countdown.d.ts +1 -1
  90. package/dist/renderers/conversion/countdown.d.ts.map +1 -1
  91. package/dist/renderers/conversion/divider.d.cts +9 -0
  92. package/dist/renderers/conversion/divider.d.cts.map +1 -0
  93. package/dist/renderers/conversion/divider.d.ts +1 -1
  94. package/dist/renderers/conversion/divider.d.ts.map +1 -1
  95. package/dist/renderers/conversion/index.d.cts +13 -0
  96. package/dist/renderers/conversion/index.d.cts.map +1 -0
  97. package/dist/renderers/conversion/index.d.ts +6 -6
  98. package/dist/renderers/conversion/index.d.ts.map +1 -1
  99. package/dist/renderers/conversion/rating.d.cts +14 -0
  100. package/dist/renderers/conversion/rating.d.cts.map +1 -0
  101. package/dist/renderers/conversion/rating.d.ts +1 -1
  102. package/dist/renderers/conversion/rating.d.ts.map +1 -1
  103. package/dist/renderers/conversion/shared.d.cts +17 -0
  104. package/dist/renderers/conversion/shared.d.cts.map +1 -0
  105. package/dist/renderers/conversion/shared.d.ts +1 -1
  106. package/dist/renderers/conversion/shared.d.ts.map +1 -1
  107. package/dist/renderers/conversion/tabs.d.cts +7 -0
  108. package/dist/renderers/conversion/tabs.d.cts.map +1 -0
  109. package/dist/renderers/conversion/tabs.d.ts +1 -1
  110. package/dist/renderers/conversion/tabs.d.ts.map +1 -1
  111. package/dist/renderers/extended-form-renderers.d.cts +8 -0
  112. package/dist/renderers/extended-form-renderers.d.cts.map +1 -0
  113. package/dist/renderers/extended-form-renderers.d.ts +1 -1
  114. package/dist/renderers/extended-form-renderers.d.ts.map +1 -1
  115. package/dist/renderers/index.d.cts +5 -0
  116. package/dist/renderers/index.d.cts.map +1 -0
  117. package/dist/renderers/index.d.ts +4 -4
  118. package/dist/renderers/index.d.ts.map +1 -1
  119. package/dist/renderers/interactive-renderers.d.cts +7 -0
  120. package/dist/renderers/interactive-renderers.d.cts.map +1 -0
  121. package/dist/renderers/interactive-renderers.d.ts +1 -1
  122. package/dist/renderers/interactive-renderers.d.ts.map +1 -1
  123. package/dist/renderers/render-node-content.d.cts +74 -0
  124. package/dist/renderers/render-node-content.d.cts.map +1 -0
  125. package/dist/renderers/render-node-content.d.ts +1 -1
  126. package/dist/renderers/render-node-content.d.ts.map +1 -1
  127. package/dist/styles.d.cts +95 -0
  128. package/dist/styles.d.cts.map +1 -0
  129. package/dist/theme.d.cts +20 -0
  130. package/dist/theme.d.cts.map +1 -0
  131. package/dist/tracking/tracking-manager.d.cts +40 -0
  132. package/dist/tracking/tracking-manager.d.cts.map +1 -0
  133. package/package.json +13 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-context.d.cts","sourceRoot":"","sources":["../src/render-context.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import React from 'react';
2
+ import { PageDocument, Node } from '@kubuild/schema';
3
+ import { type ComponentRegistry } from '@kubuild/components';
4
+ import { RenderContext, Diagnostic } from './render-context.cjs';
5
+ import { type ResponsiveMode } from './styles.cjs';
6
+ export * from './nodes/index.cjs';
7
+ export * from './renderers/index.cjs';
8
+ export interface KubuildRendererProps {
9
+ document: PageDocument;
10
+ registry?: ComponentRegistry;
11
+ context?: RenderContext;
12
+ /**
13
+ * Preview a single viewport's styles (merged into inline styles). Passing it selects
14
+ * `responsive: 'viewport'` unless `responsive` is set explicitly.
15
+ */
16
+ viewport?: 'desktop' | 'tablet' | 'mobile';
17
+ mode?: 'editor' | 'runtime';
18
+ /**
19
+ * How `styles.desktop/tablet/mobile` are applied (STORA-540):
20
+ * - `'css'`: base inline + scoped `@media` rules, so the real screen width decides
21
+ * (SSR-safe, no viewport guessing). Default for `mode="runtime"` without `viewport`.
22
+ * - `'viewport'`: merge the layer named by `viewport` inline. Default for `mode="editor"`
23
+ * or whenever `viewport` is passed (device-frame previews).
24
+ */
25
+ responsive?: ResponsiveMode;
26
+ className?: string;
27
+ showToastContainer?: boolean;
28
+ onNodeClick?: (nodeId: string, event: React.MouseEvent) => void;
29
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
30
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
31
+ onNodePropChange?: (nodeId: string, propName: string, value: unknown, isBlur?: boolean) => void;
32
+ /**
33
+ * Id of the currently-selected node (editor mode only). Typography/button/form-label
34
+ * nodes only become `contentEditable` once they're already selected, so a first tap/click
35
+ * always just selects instead of immediately opening edit mode underneath it.
36
+ */
37
+ selectedNodeId?: string | null;
38
+ }
39
+ export interface NodeRendererProps {
40
+ node: Node;
41
+ document: PageDocument;
42
+ registry: ComponentRegistry;
43
+ context?: RenderContext;
44
+ viewport?: 'desktop' | 'tablet' | 'mobile';
45
+ mode?: 'editor' | 'runtime';
46
+ /**
47
+ * `'css'` renders only the base layer inline; the caller must also emit
48
+ * `collectResponsiveStylesCss(document)` (KubuildRenderer does). Defaults to `'viewport'`.
49
+ */
50
+ responsive?: ResponsiveMode;
51
+ onNodeClick?: (nodeId: string, event: React.MouseEvent) => void;
52
+ onDiagnostic?: (diagnostic: Diagnostic) => void;
53
+ onActionDispatch?: (actionType: string, payload: Record<string, unknown> | undefined, nodeId: string) => void;
54
+ onNodePropChange?: (nodeId: string, propName: string, value: unknown, isBlur?: boolean) => void;
55
+ selectedNodeId?: string | null;
56
+ /**
57
+ * Suffix appended to the HTML `id` attribute (never to `data-kubuild-node`, the
58
+ * canonical template-node reference) so a `collection` node's repeated child
59
+ * template produces unique DOM ids per iteration instead of duplicates.
60
+ */
61
+ instanceSuffix?: string;
62
+ }
63
+ export declare function NodeRenderer({ node, document, registry, context: propContext, viewport, mode, responsive, onNodeClick, onDiagnostic, onActionDispatch, onNodePropChange, selectedNodeId, instanceSuffix, }: NodeRendererProps): React.ReactElement;
64
+ /**
65
+ * Returns the action type of a legacy `props.action` binding that no host handler and no
66
+ * built-in handler will execute (or `'invalid'` for a malformed binding); `null` when it
67
+ * resolves.
68
+ */
69
+ export declare function getUnresolvedLegacyActionType(action: unknown, context?: RenderContext): string | null;
70
+ /**
71
+ * Pick the responsive strategy: an explicit `responsive` wins; otherwise published pages
72
+ * (`mode="runtime"` with no `viewport`) use real `@media` rules, while the editor canvas and
73
+ * device-frame previews (which pass `viewport`) keep the per-viewport inline merge.
74
+ */
75
+ export declare function resolveResponsiveMode(responsive: ResponsiveMode | undefined, mode: 'editor' | 'runtime', viewport: 'desktop' | 'tablet' | 'mobile' | undefined): ResponsiveMode;
76
+ export declare const KubuildRenderer: React.NamedExoticComponent<KubuildRendererProps>;
77
+ //# sourceMappingURL=renderer.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.d.cts","sourceRoot":"","sources":["../src/renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,IAAI,EAEL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,iBAAiB,EAAkC,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EACL,aAAa,EAKb,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAarB,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AAErC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAChE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9G,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChG;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAChE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9G,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChG,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAuBD,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EAAE,WAAW,EACpB,QAAoB,EACpB,IAAgB,EAChB,UAAuB,EACvB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAmB,GACpB,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAoNxC;AAgCD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAKrG;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAC1B,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GACpD,cAAc,CAGhB;AA2FD,eAAO,MAAM,eAAe,kDAAuC,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { PageDocument, Node } from '@kubuild/schema';
3
3
  import { type ComponentRegistry } from '@kubuild/components';
4
- import { RenderContext, Diagnostic } from './render-context';
5
- import { type ResponsiveMode } from './styles';
6
- export * from './nodes';
7
- export * from './renderers';
4
+ import { RenderContext, Diagnostic } from './render-context.js';
5
+ import { type ResponsiveMode } from './styles.js';
6
+ export * from './nodes/index.js';
7
+ export * from './renderers/index.js';
8
8
  export interface KubuildRendererProps {
9
9
  document: PageDocument;
10
10
  registry?: ComponentRegistry;
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { Node } from '@kubuild/schema';
3
+ import type { RenderNodeContentOptions } from '../render-node-content.cjs';
4
+ /**
5
+ * Pure open-state transition for an accordion (exported for tests). In single-open
6
+ * mode opening an item closes every other item; toggling an open item closes it.
7
+ */
8
+ export declare function toggleAccordionIndex(open: ReadonlySet<number>, index: number, allowMultiple: boolean): Set<number>;
9
+ /**
10
+ * Builds schema.org `FAQPage` structured data from an accordion node: each
11
+ * `accordion-item`'s `title` is the question and the plain text of its children is
12
+ * the answer. Items without a literal title or answer are skipped. Returns `null`
13
+ * when nothing usable remains.
14
+ */
15
+ export declare function buildFaqJsonLd(accordion: Node): Record<string, unknown> | null;
16
+ /** Serializes JSON for a `<script>` body so document text can never close the tag. */
17
+ export declare function serializeJsonForScript(value: unknown): string;
18
+ export declare function renderAccordion(options: RenderNodeContentOptions): React.ReactElement;
19
+ export declare function renderAccordionItem(options: RenderNodeContentOptions): React.ReactElement;
20
+ //# sourceMappingURL=accordion.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.cts","sourceRoot":"","sources":["../../../src/renderers/conversion/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoE,MAAM,OAAO,CAAC;AACzF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAa1E;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EACzB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,OAAO,GACrB,GAAG,CAAC,MAAM,CAAC,CAUb;AAgBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAkB9E;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO7D;AA0KD,wBAAgB,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAErF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAEzF"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { Node } from '@kubuild/schema';
3
- import type { RenderNodeContentOptions } from '../render-node-content';
3
+ import type { RenderNodeContentOptions } from '../render-node-content.js';
4
4
  /**
5
5
  * Pure open-state transition for an accordion (exported for tests). In single-open
6
6
  * mode opening an item closes every other item; toggling an open item closes it.
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoE,MAAM,OAAO,CAAC;AACzF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAavE;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EACzB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,OAAO,GACrB,GAAG,CAAC,MAAM,CAAC,CAUb;AAgBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAkB9E;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO7D;AA0KD,wBAAgB,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAErF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAEzF"}
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoE,MAAM,OAAO,CAAC;AACzF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAa1E;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EACzB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,OAAO,GACrB,GAAG,CAAC,MAAM,CAAC,CAUb;AAgBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAkB9E;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO7D;AA0KD,wBAAgB,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAErF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAEzF"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.cjs';
3
+ /** Minimum horizontal travel (px) for a touch gesture to count as a swipe. */
4
+ export declare const CAROUSEL_SWIPE_THRESHOLD = 40;
5
+ /**
6
+ * Pure slide-index step (exported for tests). With `loop` the index wraps around;
7
+ * without it, it stops at the first/last slide.
8
+ */
9
+ export declare function stepCarouselIndex(current: number, delta: number, count: number, loop: boolean): number;
10
+ /** Direction of a completed touch gesture: -1 (swipe left → next), 1 (swipe right → prev) or 0. */
11
+ export declare function swipeDirection(startX: number, endX: number, threshold?: number): -1 | 0 | 1;
12
+ export declare function renderCarousel(options: RenderNodeContentOptions): React.ReactElement;
13
+ //# sourceMappingURL=carousel.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.d.cts","sourceRoot":"","sources":["../../../src/renderers/conversion/carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,GACZ,MAAM,CAKR;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,SAA2B,GACnC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAIZ;AAwMD,wBAAgB,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAEpF"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { RenderNodeContentOptions } from '../render-node-content';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.js';
3
3
  /** Minimum horizontal travel (px) for a touch gesture to count as a swipe. */
4
4
  export declare const CAROUSEL_SWIPE_THRESHOLD = 40;
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGvE,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,GACZ,MAAM,CAKR;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,SAA2B,GACnC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAIZ;AAwMD,wBAAgB,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAEpF"}
1
+ {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,GACZ,MAAM,CAKR;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,SAA2B,GACnC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAIZ;AAwMD,wBAAgB,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAEpF"}
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.cjs';
3
+ export type CountdownFormat = 'mm:ss' | 'hh:mm:ss' | 'd h m s';
4
+ export interface CountdownParts {
5
+ days: number;
6
+ hours: number;
7
+ minutes: number;
8
+ seconds: number;
9
+ totalSeconds: number;
10
+ }
11
+ /** Splits a millisecond duration into whole d/h/m/s parts (never negative). */
12
+ export declare function splitCountdown(ms: number): CountdownParts;
13
+ /**
14
+ * Formats a remaining duration. `mm:ss` rolls hours into minutes and `hh:mm:ss`
15
+ * rolls days into hours, so no time is ever hidden by the chosen format.
16
+ */
17
+ export declare function formatCountdown(ms: number, format: CountdownFormat): string;
18
+ /** Offset (ms) of `timeZone` from UTC at the instant `utcMs`. Throws on an unknown zone. */
19
+ export declare function getTimeZoneOffsetMs(utcMs: number, timeZone: string): number;
20
+ /**
21
+ * Resolves a fixed countdown target to a UTC epoch. A value carrying an explicit
22
+ * offset (`...Z`, `...+07:00`) is used as-is; a bare wall-clock value is interpreted
23
+ * in `timeZone` (DST-aware). An invalid timezone falls back to UTC. Returns `null`
24
+ * for an empty or unparseable target.
25
+ */
26
+ export declare function resolveFixedDeadline(targetDate: string, timeZone?: string): number | null;
27
+ export interface CountdownStorageLike {
28
+ getItem(key: string): string | null;
29
+ setItem(key: string, value: string): void;
30
+ }
31
+ /** Test hook: clears the in-memory evergreen fallback store. */
32
+ export declare function resetCountdownMemoryStore(): void;
33
+ /** Returns the requested Web Storage, or `null` when unavailable (SSR, privacy mode, sandbox). */
34
+ export declare function getCountdownStorage(kind: 'session' | 'local'): CountdownStorageLike | null;
35
+ /**
36
+ * Resolves (and persists) the per-visitor evergreen deadline. A stored deadline is
37
+ * reused only when it was created for the same duration, so editing the duration
38
+ * restarts the timer instead of keeping a stale deadline. Every storage access is
39
+ * guarded: when reading or writing throws, the in-memory store is used instead.
40
+ */
41
+ export declare function resolveEvergreenDeadline(options: {
42
+ key: string;
43
+ durationMs: number;
44
+ now: number;
45
+ storage: CountdownStorageLike | null;
46
+ }): number;
47
+ /** Fires the node's `expire` action pipelines (STORA-543). */
48
+ export declare function fireCountdownExpire(options: RenderNodeContentOptions): Promise<unknown>;
49
+ export declare function renderCountdown(options: RenderNodeContentOptions): React.ReactElement;
50
+ //# sourceMappingURL=countdown.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countdown.d.cts","sourceRoot":"","sources":["../../../src/renderers/conversion/countdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAI1E,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CASzD;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAS3E;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyB3E;AAKD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,SAAQ,GAAG,MAAM,GAAG,IAAI,CA8BxF;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAKD,gEAAgE;AAChE,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAQ1F;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACtC,GAAG,MAAM,CAsCT;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CASvF;AA6LD,wBAAgB,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAErF"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { RenderNodeContentOptions } from '../render-node-content';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.js';
3
3
  export type CountdownFormat = 'mm:ss' | 'hh:mm:ss' | 'd h m s';
4
4
  export interface CountdownParts {
5
5
  days: number;
@@ -1 +1 @@
1
- {"version":3,"file":"countdown.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/countdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAIvE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CASzD;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAS3E;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyB3E;AAKD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,SAAQ,GAAG,MAAM,GAAG,IAAI,CA8BxF;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAKD,gEAAgE;AAChE,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAQ1F;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACtC,GAAG,MAAM,CAsCT;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CASvF;AA6LD,wBAAgB,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAErF"}
1
+ {"version":3,"file":"countdown.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/countdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAI1E,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CASzD;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAS3E;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyB3E;AAKD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,SAAQ,GAAG,MAAM,GAAG,IAAI,CA8BxF;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAKD,gEAAgE;AAChE,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAQ1F;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACtC,GAAG,MAAM,CAsCT;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CASvF;AA6LD,wBAAgB,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAErF"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.cjs';
3
+ export declare function renderDivider(options: RenderNodeContentOptions): React.ReactElement;
4
+ /**
5
+ * Spacer: its height comes from the node's (per-breakpoint) styles. In the editor it
6
+ * gets a dashed outline so an otherwise invisible node can still be found and selected.
7
+ */
8
+ export declare function renderSpacer(options: RenderNodeContentOptions): React.ReactElement;
9
+ //# sourceMappingURL=divider.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.d.cts","sourceRoot":"","sources":["../../../src/renderers/conversion/divider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,wBAAgB,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAqCnF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAiBlF"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { RenderNodeContentOptions } from '../render-node-content';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.js';
3
3
  export declare function renderDivider(options: RenderNodeContentOptions): React.ReactElement;
4
4
  /**
5
5
  * Spacer: its height comes from the node's (per-breakpoint) styles. In the editor it
@@ -1 +1 @@
1
- {"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/divider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGvE,wBAAgB,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAqCnF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAiBlF"}
1
+ {"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/divider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,wBAAgB,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAqCnF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAiBlF"}
@@ -0,0 +1,13 @@
1
+ import type React from 'react';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.cjs';
3
+ export { splitCountdown, formatCountdown, getTimeZoneOffsetMs, resolveFixedDeadline, resolveEvergreenDeadline, getCountdownStorage, resetCountdownMemoryStore, fireCountdownExpire, type CountdownFormat, type CountdownParts, type CountdownStorageLike, } from './countdown.cjs';
4
+ export { toggleAccordionIndex, buildFaqJsonLd, serializeJsonForScript } from './accordion.cjs';
5
+ export { clampTabIndex } from './tabs.cjs';
6
+ export { stepCarouselIndex, swipeDirection, CAROUSEL_SWIPE_THRESHOLD } from './carousel.cjs';
7
+ export { normalizeRating, ratingStarFills, formatRatingLabel, RATING_MAX_STARS } from './rating.cjs';
8
+ /**
9
+ * Conversion components (Epic 60): countdown, accordion/accordion-item, tabs/tab-panel,
10
+ * carousel, rating, divider, spacer.
11
+ */
12
+ export declare function renderConversionNode(options: RenderNodeContentOptions): React.ReactElement | null;
13
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/renderers/conversion/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAQ1E,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpG;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAuBjG"}
@@ -1,10 +1,10 @@
1
1
  import type React from 'react';
2
- import type { RenderNodeContentOptions } from '../render-node-content';
3
- export { splitCountdown, formatCountdown, getTimeZoneOffsetMs, resolveFixedDeadline, resolveEvergreenDeadline, getCountdownStorage, resetCountdownMemoryStore, fireCountdownExpire, type CountdownFormat, type CountdownParts, type CountdownStorageLike, } from './countdown';
4
- export { toggleAccordionIndex, buildFaqJsonLd, serializeJsonForScript } from './accordion';
5
- export { clampTabIndex } from './tabs';
6
- export { stepCarouselIndex, swipeDirection, CAROUSEL_SWIPE_THRESHOLD } from './carousel';
7
- export { normalizeRating, ratingStarFills, formatRatingLabel, RATING_MAX_STARS } from './rating';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.js';
3
+ export { splitCountdown, formatCountdown, getTimeZoneOffsetMs, resolveFixedDeadline, resolveEvergreenDeadline, getCountdownStorage, resetCountdownMemoryStore, fireCountdownExpire, type CountdownFormat, type CountdownParts, type CountdownStorageLike, } from './countdown.js';
4
+ export { toggleAccordionIndex, buildFaqJsonLd, serializeJsonForScript } from './accordion.js';
5
+ export { clampTabIndex } from './tabs.js';
6
+ export { stepCarouselIndex, swipeDirection, CAROUSEL_SWIPE_THRESHOLD } from './carousel.js';
7
+ export { normalizeRating, ratingStarFills, formatRatingLabel, RATING_MAX_STARS } from './rating.js';
8
8
  /**
9
9
  * Conversion components (Epic 60): countdown, accordion/accordion-item, tabs/tab-panel,
10
10
  * carousel, rating, divider, spacer.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAQvE,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjG;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAuBjG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAQ1E,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpG;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAuBjG"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.cjs';
3
+ export declare const RATING_MAX_STARS = 10;
4
+ /** Normalizes rating inputs: `max` in [1, 10], `value` in [0, max] rounded to the nearest half. */
5
+ export declare function normalizeRating(value: number, max: number): {
6
+ value: number;
7
+ max: number;
8
+ };
9
+ /** Fill fraction (0, 0.5 or 1) of each star, left to right. */
10
+ export declare function ratingStarFills(value: number, max: number): number[];
11
+ /** Accessible label, e.g. `formatRatingLabel('{value} dari {max}', 4.5, 5)` → "4.5 dari 5". */
12
+ export declare function formatRatingLabel(template: string, value: number, max: number): string;
13
+ export declare function renderRating(options: RenderNodeContentOptions): React.ReactElement;
14
+ //# sourceMappingURL=rating.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rating.d.cts","sourceRoot":"","sources":["../../../src/renderers/conversion/rating.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,mGAAmG;AACnG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAO1F;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAKpE;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKtF;AA4CD,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CA6BlF"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { RenderNodeContentOptions } from '../render-node-content';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.js';
3
3
  export declare const RATING_MAX_STARS = 10;
4
4
  /** Normalizes rating inputs: `max` in [1, 10], `value` in [0, max] rounded to the nearest half. */
5
5
  export declare function normalizeRating(value: number, max: number): {
@@ -1 +1 @@
1
- {"version":3,"file":"rating.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/rating.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGvE,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,mGAAmG;AACnG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAO1F;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAKpE;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKtF;AA4CD,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CA6BlF"}
1
+ {"version":3,"file":"rating.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/rating.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,mGAAmG;AACnG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAO1F;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAKpE;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKtF;AA4CD,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CA6BlF"}
@@ -0,0 +1,17 @@
1
+ import type { Node } from '@kubuild/schema';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.cjs';
3
+ /** Reads a prop, preferring the binding-resolved value over the raw document value. */
4
+ export declare function readProp(options: RenderNodeContentOptions, name: string): unknown;
5
+ export declare function readString(options: RenderNodeContentOptions, name: string, fallback?: string): string;
6
+ export declare function readNumber(options: RenderNodeContentOptions, name: string, fallback: number): number;
7
+ export declare function readBoolean(options: RenderNodeContentOptions, name: string, fallback: boolean): boolean;
8
+ export declare function readAriaLabel(options: RenderNodeContentOptions): string | undefined;
9
+ /** True when `targetId` is `node` itself or any descendant of it. */
10
+ export declare function subtreeContains(node: Node, targetId: string | null | undefined): boolean;
11
+ /**
12
+ * Index of the direct child whose subtree contains `targetId`, or -1. Used in editor
13
+ * mode so a node selected from the layers panel is revealed even when it lives in a
14
+ * collapsed accordion item, inactive tab, or off-screen carousel slide.
15
+ */
16
+ export declare function childIndexContaining(node: Node, targetId: string | null | undefined): number;
17
+ //# sourceMappingURL=shared.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.cts","sourceRoot":"","sources":["../../../src/renderers/conversion/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,uFAAuF;AACvF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM,CAKjG;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAIR;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,GAChB,OAAO,CAMT;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,GAAG,SAAS,CAGnF;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAIxF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAG5F"}
@@ -1,5 +1,5 @@
1
1
  import type { Node } from '@kubuild/schema';
2
- import type { RenderNodeContentOptions } from '../render-node-content';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.js';
3
3
  /** Reads a prop, preferring the binding-resolved value over the raw document value. */
4
4
  export declare function readProp(options: RenderNodeContentOptions, name: string): unknown;
5
5
  export declare function readString(options: RenderNodeContentOptions, name: string, fallback?: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,uFAAuF;AACvF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM,CAKjG;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAIR;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,GAChB,OAAO,CAMT;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,GAAG,SAAS,CAGnF;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAIxF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAG5F"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,uFAAuF;AACvF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM,CAKjG;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAIR;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,GAChB,OAAO,CAMT;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,GAAG,SAAS,CAGnF;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAIxF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAG5F"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.cjs';
3
+ /** Clamps a requested tab index into `[0, count - 1]` (0 when there are no tabs). */
4
+ export declare function clampTabIndex(index: number, count: number): number;
5
+ export declare function renderTabs(options: RenderNodeContentOptions): React.ReactElement;
6
+ export declare function renderTabPanel(options: RenderNodeContentOptions): React.ReactElement;
7
+ //# sourceMappingURL=tabs.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.cts","sourceRoot":"","sources":["../../../src/renderers/conversion/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0E,MAAM,OAAO,CAAC;AAC/F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAW1E,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGlE;AA4ID,wBAAgB,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAEhF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAEpF"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { RenderNodeContentOptions } from '../render-node-content';
2
+ import type { RenderNodeContentOptions } from '../render-node-content.js';
3
3
  /** Clamps a requested tab index into `[0, count - 1]` (0 when there are no tabs). */
4
4
  export declare function clampTabIndex(index: number, count: number): number;
5
5
  export declare function renderTabs(options: RenderNodeContentOptions): React.ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0E,MAAM,OAAO,CAAC;AAC/F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAWvE,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGlE;AA4ID,wBAAgB,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAEhF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAEpF"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/renderers/conversion/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0E,MAAM,OAAO,CAAC;AAC/F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAW1E,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGlE;AA4ID,wBAAgB,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAEhF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAEpF"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { RenderNodeContentOptions } from './render-node-content.cjs';
3
+ /**
4
+ * Registered form types beyond the basic input set (STORA-531):
5
+ * `switch`, `file-upload`, `radio-group`, `radio-item`, `button-submit`.
6
+ */
7
+ export declare function renderExtendedFormNode(options: RenderNodeContentOptions): React.ReactElement | null;
8
+ //# sourceMappingURL=extended-form-renderers.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extended-form-renderers.d.cts","sourceRoot":"","sources":["../../src/renderers/extended-form-renderers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAIzE;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,wBAAwB,GAChC,KAAK,CAAC,YAAY,GAAG,IAAI,CA0K3B"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { RenderNodeContentOptions } from './render-node-content';
2
+ import type { RenderNodeContentOptions } from './render-node-content.js';
3
3
  /**
4
4
  * Registered form types beyond the basic input set (STORA-531):
5
5
  * `switch`, `file-upload`, `radio-group`, `radio-item`, `button-submit`.
@@ -1 +1 @@
1
- {"version":3,"file":"extended-form-renderers.d.ts","sourceRoot":"","sources":["../../src/renderers/extended-form-renderers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAItE;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,wBAAwB,GAChC,KAAK,CAAC,YAAY,GAAG,IAAI,CA0K3B"}
1
+ {"version":3,"file":"extended-form-renderers.d.ts","sourceRoot":"","sources":["../../src/renderers/extended-form-renderers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAIzE;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,wBAAwB,GAChC,KAAK,CAAC,YAAY,GAAG,IAAI,CA0K3B"}
@@ -0,0 +1,5 @@
1
+ export * from './render-node-content.cjs';
2
+ export * from './interactive-renderers.cjs';
3
+ export * from './extended-form-renderers.cjs';
4
+ export * from './conversion/index.cjs';
5
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/renderers/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC"}
@@ -1,5 +1,5 @@
1
- export * from './render-node-content';
2
- export * from './interactive-renderers';
3
- export * from './extended-form-renderers';
4
- export * from './conversion';
1
+ export * from './render-node-content.js';
2
+ export * from './interactive-renderers.js';
3
+ export * from './extended-form-renderers.js';
4
+ export * from './conversion/index.js';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderers/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { RenderNodeContentOptions } from './render-node-content.cjs';
3
+ /**
4
+ * Interactive nodes: modal, drawer, collapsible
5
+ */
6
+ export declare function renderInteractiveNode(options: RenderNodeContentOptions): React.ReactElement | null;
7
+ //# sourceMappingURL=interactive-renderers.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-renderers.d.cts","sourceRoot":"","sources":["../../src/renderers/interactive-renderers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGzE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA6UlG"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { RenderNodeContentOptions } from './render-node-content';
2
+ import type { RenderNodeContentOptions } from './render-node-content.js';
3
3
  /**
4
4
  * Interactive nodes: modal, drawer, collapsible
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-renderers.d.ts","sourceRoot":"","sources":["../../src/renderers/interactive-renderers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA6UlG"}
1
+ {"version":3,"file":"interactive-renderers.d.ts","sourceRoot":"","sources":["../../src/renderers/interactive-renderers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGzE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA6UlG"}