@salesmind-ai/design-system 0.3.4 → 0.3.5

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 (197) hide show
  1. package/dist/admin/index.cjs +68 -2928
  2. package/dist/admin/index.cjs.map +1 -1
  3. package/dist/admin/index.js +5 -2915
  4. package/dist/admin/index.js.map +1 -1
  5. package/dist/blog/index.cjs +53 -1064
  6. package/dist/blog/index.cjs.map +1 -1
  7. package/dist/blog/index.js +8 -1054
  8. package/dist/blog/index.js.map +1 -1
  9. package/dist/charts/index.cjs +46 -2694
  10. package/dist/charts/index.cjs.map +1 -1
  11. package/dist/charts/index.js +3 -2680
  12. package/dist/charts/index.js.map +1 -1
  13. package/dist/chunk-2GARWEJK.js +17 -0
  14. package/dist/chunk-2GARWEJK.js.map +1 -0
  15. package/dist/chunk-2KQVZ5FB.js +485 -0
  16. package/dist/chunk-2KQVZ5FB.js.map +1 -0
  17. package/dist/chunk-2ZNR2F2V.cjs +194 -0
  18. package/dist/chunk-2ZNR2F2V.cjs.map +1 -0
  19. package/dist/chunk-3NKRFUAR.js +37 -0
  20. package/dist/chunk-3NKRFUAR.js.map +1 -0
  21. package/dist/chunk-3TGSIILM.cjs +201 -0
  22. package/dist/chunk-3TGSIILM.cjs.map +1 -0
  23. package/dist/chunk-4GM5BGBN.cjs +801 -0
  24. package/dist/chunk-4GM5BGBN.cjs.map +1 -0
  25. package/dist/chunk-5LGDEZWY.cjs +2434 -0
  26. package/dist/chunk-5LGDEZWY.cjs.map +1 -0
  27. package/dist/chunk-6H4DSTXR.js +786 -0
  28. package/dist/chunk-6H4DSTXR.js.map +1 -0
  29. package/dist/chunk-6HKQ5ILL.cjs +1624 -0
  30. package/dist/chunk-6HKQ5ILL.cjs.map +1 -0
  31. package/dist/chunk-6UNG76Y2.js +153 -0
  32. package/dist/chunk-6UNG76Y2.js.map +1 -0
  33. package/dist/chunk-7PX2AZ6Y.js +39 -0
  34. package/dist/chunk-7PX2AZ6Y.js.map +1 -0
  35. package/dist/chunk-B6AVAX4F.js +1415 -0
  36. package/dist/chunk-B6AVAX4F.js.map +1 -0
  37. package/dist/chunk-BILT5KD3.js +264 -0
  38. package/dist/chunk-BILT5KD3.js.map +1 -0
  39. package/dist/chunk-C2BCDNAV.js +24 -0
  40. package/dist/chunk-C2BCDNAV.js.map +1 -0
  41. package/dist/chunk-CH42VPWE.cjs +421 -0
  42. package/dist/chunk-CH42VPWE.cjs.map +1 -0
  43. package/dist/chunk-CJ2MKVAF.cjs +46 -0
  44. package/dist/chunk-CJ2MKVAF.cjs.map +1 -0
  45. package/dist/chunk-DP74LUXG.cjs +98 -0
  46. package/dist/chunk-DP74LUXG.cjs.map +1 -0
  47. package/dist/chunk-E7D6EKJ4.cjs +44 -0
  48. package/dist/chunk-E7D6EKJ4.cjs.map +1 -0
  49. package/dist/chunk-ECXBTUH6.cjs +584 -0
  50. package/dist/chunk-ECXBTUH6.cjs.map +1 -0
  51. package/dist/chunk-EFRAP5ES.js +157 -0
  52. package/dist/chunk-EFRAP5ES.js.map +1 -0
  53. package/dist/chunk-EM7JHRYW.cjs +69 -0
  54. package/dist/chunk-EM7JHRYW.cjs.map +1 -0
  55. package/dist/chunk-FAFAP4L5.js +183 -0
  56. package/dist/chunk-FAFAP4L5.js.map +1 -0
  57. package/dist/chunk-H2Y6BSTL.cjs +69 -0
  58. package/dist/chunk-H2Y6BSTL.cjs.map +1 -0
  59. package/dist/chunk-HN4PHABT.js +126 -0
  60. package/dist/chunk-HN4PHABT.js.map +1 -0
  61. package/dist/chunk-HRENHNDJ.js +211 -0
  62. package/dist/chunk-HRENHNDJ.js.map +1 -0
  63. package/dist/chunk-I75BFEYT.cjs +2561 -0
  64. package/dist/chunk-I75BFEYT.cjs.map +1 -0
  65. package/dist/chunk-IFRATNLU.js +562 -0
  66. package/dist/chunk-IFRATNLU.js.map +1 -0
  67. package/dist/chunk-JNASH4OQ.js +1022 -0
  68. package/dist/chunk-JNASH4OQ.js.map +1 -0
  69. package/dist/chunk-JPJN4YBC.js +409 -0
  70. package/dist/chunk-JPJN4YBC.js.map +1 -0
  71. package/dist/chunk-KCKUSU2M.cjs +166 -0
  72. package/dist/chunk-KCKUSU2M.cjs.map +1 -0
  73. package/dist/chunk-KDLH35OI.cjs +1042 -0
  74. package/dist/chunk-KDLH35OI.cjs.map +1 -0
  75. package/dist/chunk-KJ2OXQF4.js +287 -0
  76. package/dist/chunk-KJ2OXQF4.js.map +1 -0
  77. package/dist/chunk-KK5UO2P4.cjs +717 -0
  78. package/dist/chunk-KK5UO2P4.cjs.map +1 -0
  79. package/dist/chunk-KNQEIU7O.cjs +1202 -0
  80. package/dist/chunk-KNQEIU7O.cjs.map +1 -0
  81. package/dist/chunk-KVGSVGRK.cjs +569 -0
  82. package/dist/chunk-KVGSVGRK.cjs.map +1 -0
  83. package/dist/chunk-L352JRV6.cjs +105 -0
  84. package/dist/chunk-L352JRV6.cjs.map +1 -0
  85. package/dist/chunk-LGNMFBLF.cjs +502 -0
  86. package/dist/chunk-LGNMFBLF.cjs.map +1 -0
  87. package/dist/chunk-LJADZITX.cjs +298 -0
  88. package/dist/chunk-LJADZITX.cjs.map +1 -0
  89. package/dist/chunk-MDB2WCRQ.cjs +137 -0
  90. package/dist/chunk-MDB2WCRQ.cjs.map +1 -0
  91. package/dist/chunk-MQDEE7HC.cjs +283 -0
  92. package/dist/chunk-MQDEE7HC.cjs.map +1 -0
  93. package/dist/chunk-MQRB634A.cjs +34 -0
  94. package/dist/chunk-MQRB634A.cjs.map +1 -0
  95. package/dist/chunk-MU6GW5ZV.js +2317 -0
  96. package/dist/chunk-MU6GW5ZV.js.map +1 -0
  97. package/dist/chunk-NN3TUHIH.js +28 -0
  98. package/dist/chunk-NN3TUHIH.js.map +1 -0
  99. package/dist/chunk-NT4LBP7D.cjs +111 -0
  100. package/dist/chunk-NT4LBP7D.cjs.map +1 -0
  101. package/dist/chunk-OGKGIXFC.cjs +2162 -0
  102. package/dist/chunk-OGKGIXFC.cjs.map +1 -0
  103. package/dist/chunk-OXNXEQY7.js +2538 -0
  104. package/dist/chunk-OXNXEQY7.js.map +1 -0
  105. package/dist/chunk-P5BOFE5A.js +546 -0
  106. package/dist/chunk-P5BOFE5A.js.map +1 -0
  107. package/dist/chunk-PE2KJVRN.js +185 -0
  108. package/dist/chunk-PE2KJVRN.js.map +1 -0
  109. package/dist/chunk-Q2MFGYTE.cjs +1449 -0
  110. package/dist/chunk-Q2MFGYTE.cjs.map +1 -0
  111. package/dist/chunk-Q75DBVDY.cjs +68 -0
  112. package/dist/chunk-Q75DBVDY.cjs.map +1 -0
  113. package/dist/chunk-RQUFZAZ7.js +1608 -0
  114. package/dist/chunk-RQUFZAZ7.js.map +1 -0
  115. package/dist/chunk-SICKWUWB.js +62 -0
  116. package/dist/chunk-SICKWUWB.js.map +1 -0
  117. package/dist/chunk-T343CCH5.js +1190 -0
  118. package/dist/chunk-T343CCH5.js.map +1 -0
  119. package/dist/chunk-T5H5PNLN.js +701 -0
  120. package/dist/chunk-T5H5PNLN.js.map +1 -0
  121. package/dist/chunk-U3LK2GID.js +2122 -0
  122. package/dist/chunk-U3LK2GID.js.map +1 -0
  123. package/dist/chunk-UFAJY2DM.js +62 -0
  124. package/dist/chunk-UFAJY2DM.js.map +1 -0
  125. package/dist/chunk-VC5LMUVQ.cjs +20 -0
  126. package/dist/chunk-VC5LMUVQ.cjs.map +1 -0
  127. package/dist/chunk-VM7WFMKI.cjs +76 -0
  128. package/dist/chunk-VM7WFMKI.cjs.map +1 -0
  129. package/dist/chunk-W2WTP6HS.cjs +233 -0
  130. package/dist/chunk-W2WTP6HS.cjs.map +1 -0
  131. package/dist/chunk-WH7PYHZY.cjs +35 -0
  132. package/dist/chunk-WH7PYHZY.cjs.map +1 -0
  133. package/dist/chunk-XU3OMQ7V.js +98 -0
  134. package/dist/chunk-XU3OMQ7V.js.map +1 -0
  135. package/dist/chunk-XWPDRMZG.js +62 -0
  136. package/dist/chunk-XWPDRMZG.js.map +1 -0
  137. package/dist/chunk-Y3CPKNB7.js +67 -0
  138. package/dist/chunk-Y3CPKNB7.js.map +1 -0
  139. package/dist/chunk-YNVRDD2P.js +98 -0
  140. package/dist/chunk-YNVRDD2P.js.map +1 -0
  141. package/dist/chunk-YSYR54XR.js +92 -0
  142. package/dist/chunk-YSYR54XR.js.map +1 -0
  143. package/dist/chunk-YTYDQBVY.cjs +162 -0
  144. package/dist/chunk-YTYDQBVY.cjs.map +1 -0
  145. package/dist/core/index.cjs +807 -4333
  146. package/dist/core/index.cjs.map +1 -1
  147. package/dist/core/index.js +14 -4130
  148. package/dist/core/index.js.map +1 -1
  149. package/dist/i18n/index.cjs +86 -558
  150. package/dist/i18n/index.cjs.map +1 -1
  151. package/dist/i18n/index.js +1 -544
  152. package/dist/i18n/index.js.map +1 -1
  153. package/dist/index.cjs +1432 -17140
  154. package/dist/index.cjs.map +1 -1
  155. package/dist/index.js +31 -16785
  156. package/dist/index.js.map +1 -1
  157. package/dist/marketing/index.cjs +142 -3072
  158. package/dist/marketing/index.cjs.map +1 -1
  159. package/dist/marketing/index.js +11 -3042
  160. package/dist/marketing/index.js.map +1 -1
  161. package/dist/motion/index.cjs +26 -1222
  162. package/dist/motion/index.cjs.map +1 -1
  163. package/dist/motion/index.js +2 -1215
  164. package/dist/motion/index.js.map +1 -1
  165. package/dist/nav/index.cjs +101 -1518
  166. package/dist/nav/index.cjs.map +1 -1
  167. package/dist/nav/index.js +4 -1498
  168. package/dist/nav/index.js.map +1 -1
  169. package/dist/report/index.cjs +171 -2403
  170. package/dist/report/index.cjs.map +1 -1
  171. package/dist/report/index.js +3 -2363
  172. package/dist/report/index.js.map +1 -1
  173. package/dist/sections/index.cjs +22 -377
  174. package/dist/sections/index.cjs.map +1 -1
  175. package/dist/sections/index.js +6 -369
  176. package/dist/sections/index.js.map +1 -1
  177. package/dist/social-proof/index.cjs +53 -1250
  178. package/dist/social-proof/index.cjs.map +1 -1
  179. package/dist/social-proof/index.js +6 -1235
  180. package/dist/social-proof/index.js.map +1 -1
  181. package/dist/theme/index.cjs +38 -565
  182. package/dist/theme/index.cjs.map +1 -1
  183. package/dist/theme/index.js +2 -555
  184. package/dist/theme/index.js.map +1 -1
  185. package/dist/web/client/index.cjs +38 -491
  186. package/dist/web/client/index.cjs.map +1 -1
  187. package/dist/web/client/index.js +4 -483
  188. package/dist/web/client/index.js.map +1 -1
  189. package/dist/web/index.cjs +158 -1346
  190. package/dist/web/index.cjs.map +1 -1
  191. package/dist/web/index.js +9 -1305
  192. package/dist/web/index.js.map +1 -1
  193. package/dist/web/server/index.cjs +26 -563
  194. package/dist/web/server/index.cjs.map +1 -1
  195. package/dist/web/server/index.js +1 -560
  196. package/dist/web/server/index.js.map +1 -1
  197. package/package.json +1 -1
@@ -0,0 +1,786 @@
1
+ import { ReportModeProvider, useReportMode, INSIGHT_TYPE_CONTRACTS, useDataState } from './chunk-B6AVAX4F.js';
2
+ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuItem, DropdownMenuSeparator } from './chunk-FAFAP4L5.js';
3
+ import React4 from 'react';
4
+ import clsx2 from 'clsx';
5
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
+
7
+ var ReportShell = React4.forwardRef(
8
+ ({
9
+ title,
10
+ subtitle,
11
+ mode = "executive",
12
+ brand,
13
+ onModeChange,
14
+ children,
15
+ actions,
16
+ className,
17
+ ...props
18
+ }, ref) => {
19
+ return /* @__PURE__ */ jsx(ReportModeProvider, { mode, onModeChange, children: /* @__PURE__ */ jsxs(
20
+ "div",
21
+ {
22
+ ref,
23
+ className: clsx2("ds-report-shell", className),
24
+ "data-mode": mode,
25
+ "data-brand": brand,
26
+ ...props,
27
+ children: [
28
+ (title || subtitle || actions) && /* @__PURE__ */ jsxs("header", { className: "ds-report-shell__header", children: [
29
+ /* @__PURE__ */ jsxs("div", { className: "ds-report-shell__header-content", children: [
30
+ title && /* @__PURE__ */ jsx("h1", { className: "ds-report-shell__title", children: title }),
31
+ subtitle && /* @__PURE__ */ jsx("p", { className: "ds-report-shell__subtitle", children: subtitle })
32
+ ] }),
33
+ actions && /* @__PURE__ */ jsx("div", { className: "ds-report-shell__actions", children: actions })
34
+ ] }),
35
+ /* @__PURE__ */ jsx("main", { className: "ds-report-shell__content", children })
36
+ ]
37
+ }
38
+ ) });
39
+ }
40
+ );
41
+ ReportShell.displayName = "ReportShell";
42
+ var ExecutiveThesis = React4.forwardRef(
43
+ ({ thesis, context, metric, aiGenerated, className, ...props }, ref) => {
44
+ const { features } = useReportMode();
45
+ return /* @__PURE__ */ jsxs(
46
+ "section",
47
+ {
48
+ ref,
49
+ className: clsx2("ds-executive-thesis", className),
50
+ "aria-labelledby": "executive-thesis-title",
51
+ ...props,
52
+ children: [
53
+ /* @__PURE__ */ jsxs("div", { className: "ds-executive-thesis__content", children: [
54
+ /* @__PURE__ */ jsxs("h2", { id: "executive-thesis-title", className: "ds-executive-thesis__title", children: [
55
+ "Key Finding",
56
+ aiGenerated && features.showConfidenceScores && /* @__PURE__ */ jsx("span", { className: "ds-executive-thesis__ai-badge", children: "AI Generated" })
57
+ ] }),
58
+ /* @__PURE__ */ jsx("p", { className: "ds-executive-thesis__thesis", children: thesis }),
59
+ context && /* @__PURE__ */ jsx("p", { className: "ds-executive-thesis__context", children: context })
60
+ ] }),
61
+ metric && /* @__PURE__ */ jsxs("div", { className: "ds-executive-thesis__metric", children: [
62
+ /* @__PURE__ */ jsx("span", { className: "ds-executive-thesis__metric-label", children: metric.label }),
63
+ /* @__PURE__ */ jsxs(
64
+ "span",
65
+ {
66
+ className: clsx2(
67
+ "ds-executive-thesis__metric-value",
68
+ metric.trend && `ds-executive-thesis__metric-value--${metric.trend}`
69
+ ),
70
+ children: [
71
+ metric.trend === "up" && "\u2191 ",
72
+ metric.trend === "down" && "\u2193 ",
73
+ metric.value
74
+ ]
75
+ }
76
+ )
77
+ ] })
78
+ ]
79
+ }
80
+ );
81
+ }
82
+ );
83
+ ExecutiveThesis.displayName = "ExecutiveThesis";
84
+ var InsightBlock = React4.forwardRef(
85
+ ({ type, headline, description, confidence, methodology, children, className, ...props }, ref) => {
86
+ const { features } = useReportMode();
87
+ const contract = INSIGHT_TYPE_CONTRACTS[type];
88
+ const getConfidenceClass = () => {
89
+ if (confidence === void 0) return "";
90
+ if (confidence >= 90) return "ds-insight-block--confidence-high";
91
+ if (confidence >= 70) return "ds-insight-block--confidence-moderate";
92
+ if (confidence >= 50) return "ds-insight-block--confidence-low";
93
+ return "ds-insight-block--confidence-insufficient";
94
+ };
95
+ return /* @__PURE__ */ jsxs(
96
+ "section",
97
+ {
98
+ ref,
99
+ className: clsx2("ds-insight-block", getConfidenceClass(), className),
100
+ "data-insight-type": type,
101
+ "aria-labelledby": `insight-${type}-title`,
102
+ ...props,
103
+ children: [
104
+ /* @__PURE__ */ jsxs("header", { className: "ds-insight-block__header", children: [
105
+ /* @__PURE__ */ jsxs("div", { className: "ds-insight-block__meta", children: [
106
+ /* @__PURE__ */ jsx("span", { className: "ds-insight-block__type", children: type.replace(/-/g, " ") }),
107
+ features.showConfidenceScores && confidence !== void 0 && /* @__PURE__ */ jsxs("span", { className: "ds-insight-block__confidence", children: [
108
+ confidence,
109
+ "% confidence"
110
+ ] })
111
+ ] }),
112
+ /* @__PURE__ */ jsx("h3", { id: `insight-${type}-title`, className: "ds-insight-block__headline", children: headline }),
113
+ description && /* @__PURE__ */ jsx("p", { className: "ds-insight-block__description", children: description })
114
+ ] }),
115
+ /* @__PURE__ */ jsx("div", { className: "ds-insight-block__evidence", children }),
116
+ features.showMethodology && methodology && /* @__PURE__ */ jsxs("footer", { className: "ds-insight-block__methodology", children: [
117
+ /* @__PURE__ */ jsx("h4", { className: "ds-insight-block__methodology-title", children: "Methodology" }),
118
+ /* @__PURE__ */ jsx("p", { className: "ds-insight-block__methodology-text", children: methodology }),
119
+ contract && /* @__PURE__ */ jsxs("p", { className: "ds-insight-block__methodology-contract", children: [
120
+ "Min sample: ",
121
+ contract.minSampleSize,
122
+ " | Allowed charts:",
123
+ " ",
124
+ contract.allowedCharts.join(", ")
125
+ ] })
126
+ ] })
127
+ ]
128
+ }
129
+ );
130
+ }
131
+ );
132
+ InsightBlock.displayName = "InsightBlock";
133
+ var EvidenceGroup = React4.forwardRef(
134
+ ({ title, layout = "row", columns = 2, children, className, ...props }, ref) => {
135
+ const childCount = React4.Children.count(children);
136
+ if (childCount > 3) {
137
+ console.warn(
138
+ `EvidenceGroup: Maximum 3 charts allowed per insight block (received ${childCount}). This violates composition rule R6.`
139
+ );
140
+ }
141
+ return /* @__PURE__ */ jsxs(
142
+ "div",
143
+ {
144
+ ref,
145
+ className: clsx2(
146
+ "ds-evidence-group",
147
+ `ds-evidence-group--${layout}`,
148
+ layout === "grid" && `ds-evidence-group--cols-${columns}`,
149
+ className
150
+ ),
151
+ role: "group",
152
+ "aria-label": title || "Evidence charts",
153
+ ...props,
154
+ children: [
155
+ title && /* @__PURE__ */ jsx("h4", { className: "ds-evidence-group__title", children: title }),
156
+ /* @__PURE__ */ jsx("div", { className: "ds-evidence-group__content", children })
157
+ ]
158
+ }
159
+ );
160
+ }
161
+ );
162
+ EvidenceGroup.displayName = "EvidenceGroup";
163
+ var MethodologyNote = React4.forwardRef(
164
+ ({ children, sampleSize, sources, calculation, forceShow = false, className, labels, ...props }, ref) => {
165
+ const titleText = labels?.title ?? "Methodology";
166
+ const sampleSizeLabel = labels?.sampleSize ?? "Sample Size";
167
+ const dataSourcesLabel = labels?.dataSources ?? "Data Sources";
168
+ const calculationLabel = labels?.calculation ?? "Calculation";
169
+ const { features } = useReportMode();
170
+ const shouldShow = forceShow || features.showMethodology || sampleSize !== void 0 && sampleSize < 100;
171
+ if (!shouldShow) {
172
+ return null;
173
+ }
174
+ return /* @__PURE__ */ jsxs(
175
+ "aside",
176
+ {
177
+ ref,
178
+ className: clsx2("ds-methodology-note", className),
179
+ "aria-label": titleText,
180
+ ...props,
181
+ children: [
182
+ /* @__PURE__ */ jsxs("div", { className: "ds-methodology-note__header", children: [
183
+ /* @__PURE__ */ jsxs(
184
+ "svg",
185
+ {
186
+ className: "ds-methodology-note__icon",
187
+ width: "16",
188
+ height: "16",
189
+ viewBox: "0 0 24 24",
190
+ fill: "none",
191
+ stroke: "currentColor",
192
+ strokeWidth: "2",
193
+ children: [
194
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
195
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
196
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })
197
+ ]
198
+ }
199
+ ),
200
+ /* @__PURE__ */ jsx("span", { className: "ds-methodology-note__title", children: titleText })
201
+ ] }),
202
+ /* @__PURE__ */ jsx("div", { className: "ds-methodology-note__content", children }),
203
+ (sources || calculation || sampleSize !== void 0) && /* @__PURE__ */ jsxs("dl", { className: "ds-methodology-note__details", children: [
204
+ sampleSize !== void 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
205
+ /* @__PURE__ */ jsx("dt", { children: sampleSizeLabel }),
206
+ /* @__PURE__ */ jsxs("dd", { children: [
207
+ "n=",
208
+ sampleSize.toLocaleString()
209
+ ] })
210
+ ] }),
211
+ sources && sources.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
212
+ /* @__PURE__ */ jsx("dt", { children: dataSourcesLabel }),
213
+ /* @__PURE__ */ jsx("dd", { children: sources.join(", ") })
214
+ ] }),
215
+ calculation && /* @__PURE__ */ jsxs(Fragment, { children: [
216
+ /* @__PURE__ */ jsx("dt", { children: calculationLabel }),
217
+ /* @__PURE__ */ jsx("dd", { children: calculation })
218
+ ] })
219
+ ] })
220
+ ]
221
+ }
222
+ );
223
+ }
224
+ );
225
+ MethodologyNote.displayName = "MethodologyNote";
226
+ var CaveatBlock = React4.forwardRef(
227
+ ({
228
+ title = "Important Caveat",
229
+ children,
230
+ severity = "warning",
231
+ confidence,
232
+ forceShow = false,
233
+ className,
234
+ ...props
235
+ }, ref) => {
236
+ const { features } = useReportMode();
237
+ const shouldShow = forceShow || features.showMethodology || confidence !== void 0 && confidence < 70;
238
+ if (!shouldShow) {
239
+ return null;
240
+ }
241
+ const renderIcon = () => {
242
+ if (severity === "critical") {
243
+ return /* @__PURE__ */ jsxs(
244
+ "svg",
245
+ {
246
+ width: "18",
247
+ height: "18",
248
+ viewBox: "0 0 24 24",
249
+ fill: "none",
250
+ stroke: "currentColor",
251
+ strokeWidth: "2",
252
+ children: [
253
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
254
+ /* @__PURE__ */ jsx("line", { x1: "15", y1: "9", x2: "9", y2: "15" }),
255
+ /* @__PURE__ */ jsx("line", { x1: "9", y1: "9", x2: "15", y2: "15" })
256
+ ]
257
+ }
258
+ );
259
+ }
260
+ if (severity === "info") {
261
+ return /* @__PURE__ */ jsxs(
262
+ "svg",
263
+ {
264
+ width: "18",
265
+ height: "18",
266
+ viewBox: "0 0 24 24",
267
+ fill: "none",
268
+ stroke: "currentColor",
269
+ strokeWidth: "2",
270
+ children: [
271
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
272
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
273
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })
274
+ ]
275
+ }
276
+ );
277
+ }
278
+ return /* @__PURE__ */ jsxs(
279
+ "svg",
280
+ {
281
+ width: "18",
282
+ height: "18",
283
+ viewBox: "0 0 24 24",
284
+ fill: "none",
285
+ stroke: "currentColor",
286
+ strokeWidth: "2",
287
+ children: [
288
+ /* @__PURE__ */ jsx("path", { d: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }),
289
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }),
290
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
291
+ ]
292
+ }
293
+ );
294
+ };
295
+ return /* @__PURE__ */ jsxs(
296
+ "aside",
297
+ {
298
+ ref,
299
+ className: clsx2("ds-caveat-block", `ds-caveat-block--${severity}`, className),
300
+ role: "note",
301
+ "aria-label": title,
302
+ ...props,
303
+ children: [
304
+ /* @__PURE__ */ jsxs("div", { className: "ds-caveat-block__header", children: [
305
+ /* @__PURE__ */ jsx("span", { className: "ds-caveat-block__icon", children: renderIcon() }),
306
+ /* @__PURE__ */ jsx("span", { className: "ds-caveat-block__title", children: title }),
307
+ confidence !== void 0 && /* @__PURE__ */ jsxs("span", { className: "ds-caveat-block__confidence", children: [
308
+ confidence,
309
+ "% confidence"
310
+ ] })
311
+ ] }),
312
+ /* @__PURE__ */ jsx("div", { className: "ds-caveat-block__content", children })
313
+ ]
314
+ }
315
+ );
316
+ }
317
+ );
318
+ CaveatBlock.displayName = "CaveatBlock";
319
+ var KeyMetric = React4.forwardRef(
320
+ ({
321
+ title,
322
+ value,
323
+ prefix,
324
+ suffix,
325
+ trend,
326
+ secondary,
327
+ sampleSize,
328
+ confidence,
329
+ onClick,
330
+ loading,
331
+ size = "md",
332
+ className,
333
+ ...props
334
+ }, ref) => {
335
+ const { features } = useReportMode();
336
+ const { isValid } = useDataState({
337
+ sampleSize: sampleSize ?? 100,
338
+ requiredSize: 30
339
+ });
340
+ const isClickable = onClick && !loading;
341
+ const formatValue = (val) => {
342
+ if (typeof val === "number") {
343
+ return val.toLocaleString();
344
+ }
345
+ return val;
346
+ };
347
+ const getTrendIcon = (direction) => {
348
+ switch (direction) {
349
+ case "up":
350
+ return "\u2191";
351
+ case "down":
352
+ return "\u2193";
353
+ default:
354
+ return "\u2192";
355
+ }
356
+ };
357
+ const Component = isClickable ? "button" : "div";
358
+ return /* @__PURE__ */ jsxs(
359
+ Component,
360
+ {
361
+ ref,
362
+ className: clsx2(
363
+ "ds-key-metric",
364
+ `ds-key-metric--${size}`,
365
+ loading && "ds-key-metric--loading",
366
+ isClickable && "ds-key-metric--clickable",
367
+ !isValid && "ds-key-metric--invalid",
368
+ className
369
+ ),
370
+ onClick: isClickable ? onClick : void 0,
371
+ type: isClickable ? "button" : void 0,
372
+ ...props,
373
+ children: [
374
+ /* @__PURE__ */ jsxs("div", { className: "ds-key-metric__header", children: [
375
+ /* @__PURE__ */ jsx("span", { className: "ds-key-metric__title", children: title }),
376
+ features.showConfidenceScores && confidence !== void 0 && /* @__PURE__ */ jsxs("span", { className: "ds-key-metric__confidence", children: [
377
+ confidence,
378
+ "%"
379
+ ] })
380
+ ] }),
381
+ /* @__PURE__ */ jsxs("div", { className: "ds-key-metric__value-row", children: [
382
+ /* @__PURE__ */ jsxs("span", { className: "ds-key-metric__value", children: [
383
+ prefix && /* @__PURE__ */ jsx("span", { className: "ds-key-metric__prefix", children: prefix }),
384
+ loading ? "\u2014" : formatValue(value),
385
+ suffix && /* @__PURE__ */ jsx("span", { className: "ds-key-metric__suffix", children: suffix })
386
+ ] }),
387
+ trend && /* @__PURE__ */ jsxs(
388
+ "span",
389
+ {
390
+ className: clsx2("ds-key-metric__trend", `ds-key-metric__trend--${trend.direction}`),
391
+ children: [
392
+ /* @__PURE__ */ jsx("span", { className: "ds-key-metric__trend-icon", children: getTrendIcon(trend.direction) }),
393
+ /* @__PURE__ */ jsxs("span", { className: "ds-key-metric__trend-value", children: [
394
+ Math.abs(trend.value),
395
+ "%"
396
+ ] }),
397
+ trend.label && /* @__PURE__ */ jsx("span", { className: "ds-key-metric__trend-label", children: trend.label })
398
+ ]
399
+ }
400
+ )
401
+ ] }),
402
+ secondary && /* @__PURE__ */ jsxs("div", { className: "ds-key-metric__secondary", children: [
403
+ /* @__PURE__ */ jsxs("span", { className: "ds-key-metric__secondary-label", children: [
404
+ secondary.label,
405
+ ":"
406
+ ] }),
407
+ /* @__PURE__ */ jsx("span", { className: "ds-key-metric__secondary-value", children: formatValue(secondary.value) })
408
+ ] }),
409
+ features.showMethodology && sampleSize !== void 0 && /* @__PURE__ */ jsxs("div", { className: "ds-key-metric__sample", children: [
410
+ "n=",
411
+ sampleSize.toLocaleString()
412
+ ] })
413
+ ]
414
+ }
415
+ );
416
+ }
417
+ );
418
+ KeyMetric.displayName = "KeyMetric";
419
+ var TrendIndicator = React4.forwardRef(
420
+ ({
421
+ value,
422
+ direction: directionOverride,
423
+ positiveIsGood = true,
424
+ showIcon = true,
425
+ showPercent = true,
426
+ size = "md",
427
+ className,
428
+ ...props
429
+ }, ref) => {
430
+ const direction = directionOverride ?? (value > 0 ? "up" : value < 0 ? "down" : "neutral");
431
+ const isGood = positiveIsGood ? direction === "up" : direction === "down";
432
+ const isBad = positiveIsGood ? direction === "down" : direction === "up";
433
+ const getIcon = () => {
434
+ switch (direction) {
435
+ case "up":
436
+ return /* @__PURE__ */ jsx(
437
+ "svg",
438
+ {
439
+ width: "12",
440
+ height: "12",
441
+ viewBox: "0 0 24 24",
442
+ fill: "none",
443
+ stroke: "currentColor",
444
+ strokeWidth: "3",
445
+ children: /* @__PURE__ */ jsx("polyline", { points: "18,15 12,9 6,15" })
446
+ }
447
+ );
448
+ case "down":
449
+ return /* @__PURE__ */ jsx(
450
+ "svg",
451
+ {
452
+ width: "12",
453
+ height: "12",
454
+ viewBox: "0 0 24 24",
455
+ fill: "none",
456
+ stroke: "currentColor",
457
+ strokeWidth: "3",
458
+ children: /* @__PURE__ */ jsx("polyline", { points: "6,9 12,15 18,9" })
459
+ }
460
+ );
461
+ default:
462
+ return /* @__PURE__ */ jsx(
463
+ "svg",
464
+ {
465
+ width: "12",
466
+ height: "12",
467
+ viewBox: "0 0 24 24",
468
+ fill: "none",
469
+ stroke: "currentColor",
470
+ strokeWidth: "3",
471
+ children: /* @__PURE__ */ jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
472
+ }
473
+ );
474
+ }
475
+ };
476
+ return /* @__PURE__ */ jsxs(
477
+ "span",
478
+ {
479
+ ref,
480
+ className: clsx2(
481
+ "ds-trend-indicator",
482
+ `ds-trend-indicator--${size}`,
483
+ `ds-trend-indicator--${direction}`,
484
+ isGood && "ds-trend-indicator--good",
485
+ isBad && "ds-trend-indicator--bad",
486
+ className
487
+ ),
488
+ "aria-label": `${direction === "up" ? "Increased" : direction === "down" ? "Decreased" : "No change"} by ${Math.abs(value)}%`,
489
+ ...props,
490
+ children: [
491
+ showIcon && /* @__PURE__ */ jsx("span", { className: "ds-trend-indicator__icon", children: getIcon() }),
492
+ /* @__PURE__ */ jsxs("span", { className: "ds-trend-indicator__value", children: [
493
+ value > 0 && "+",
494
+ value.toFixed(1),
495
+ showPercent && "%"
496
+ ] })
497
+ ]
498
+ }
499
+ );
500
+ }
501
+ );
502
+ TrendIndicator.displayName = "TrendIndicator";
503
+ var DEFAULT_OPTIONS = [
504
+ { format: "pdf", label: "PDF Document", description: "Best for sharing reports" },
505
+ { format: "pptx", label: "PowerPoint", description: "Editable presentation" },
506
+ { format: "xlsx", label: "Excel Spreadsheet", description: "Data with charts" },
507
+ { format: "csv", label: "CSV Data", description: "Raw data only" },
508
+ { format: "png", label: "PNG Image", description: "Chart screenshot" },
509
+ { format: "json", label: "JSON", description: "Developer format" }
510
+ ];
511
+ var FORMAT_ICONS = {
512
+ pdf: /* @__PURE__ */ jsx(PdfIcon, {}),
513
+ csv: /* @__PURE__ */ jsx(CsvIcon, {}),
514
+ xlsx: /* @__PURE__ */ jsx(ExcelIcon, {}),
515
+ pptx: /* @__PURE__ */ jsx(PptIcon, {}),
516
+ png: /* @__PURE__ */ jsx(ImageIcon, {}),
517
+ json: /* @__PURE__ */ jsx(JsonIcon, {})
518
+ };
519
+ function ExportMenu({
520
+ options = DEFAULT_OPTIONS,
521
+ onExport,
522
+ isExporting = false,
523
+ label = "Export",
524
+ size = "md",
525
+ variant = "secondary",
526
+ className,
527
+ disabled
528
+ }) {
529
+ const documentOptions = options.filter((o) => ["pdf", "pptx"].includes(o.format));
530
+ const dataOptions = options.filter((o) => ["xlsx", "csv", "json"].includes(o.format));
531
+ const imageOptions = options.filter((o) => ["png"].includes(o.format));
532
+ return /* @__PURE__ */ jsxs(DropdownMenu, { children: [
533
+ /* @__PURE__ */ jsx(
534
+ DropdownMenuTrigger,
535
+ {
536
+ className: clsx2(
537
+ "ds-export-menu__trigger",
538
+ "ds-button",
539
+ `ds-button--${variant}`,
540
+ `ds-button--${size}`,
541
+ className
542
+ ),
543
+ disabled: disabled || isExporting,
544
+ children: isExporting ? /* @__PURE__ */ jsxs(Fragment, { children: [
545
+ /* @__PURE__ */ jsx(LoadingIcon, {}),
546
+ "Exporting..."
547
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
548
+ /* @__PURE__ */ jsx(ExportIcon, {}),
549
+ label
550
+ ] })
551
+ }
552
+ ),
553
+ /* @__PURE__ */ jsxs(DropdownMenuContent, { side: "bottom", align: "end", sideOffset: 4, children: [
554
+ documentOptions.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
555
+ /* @__PURE__ */ jsx(DropdownMenuLabel, { children: "Documents" }),
556
+ documentOptions.map((option) => /* @__PURE__ */ jsxs(
557
+ DropdownMenuItem,
558
+ {
559
+ disabled: option.disabled,
560
+ onClick: () => onExport(option.format),
561
+ children: [
562
+ /* @__PURE__ */ jsx("span", { className: "ds-export-menu__item-icon", children: FORMAT_ICONS[option.format] }),
563
+ /* @__PURE__ */ jsxs("span", { className: "ds-export-menu__item-content", children: [
564
+ /* @__PURE__ */ jsx("span", { className: "ds-export-menu__item-label", children: option.label }),
565
+ option.description && /* @__PURE__ */ jsx("span", { className: "ds-export-menu__item-description", children: option.description })
566
+ ] })
567
+ ]
568
+ },
569
+ option.format
570
+ ))
571
+ ] }),
572
+ documentOptions.length > 0 && dataOptions.length > 0 && /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
573
+ dataOptions.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
574
+ /* @__PURE__ */ jsx(DropdownMenuLabel, { children: "Data" }),
575
+ dataOptions.map((option) => /* @__PURE__ */ jsxs(
576
+ DropdownMenuItem,
577
+ {
578
+ disabled: option.disabled,
579
+ onClick: () => onExport(option.format),
580
+ children: [
581
+ /* @__PURE__ */ jsx("span", { className: "ds-export-menu__item-icon", children: FORMAT_ICONS[option.format] }),
582
+ /* @__PURE__ */ jsxs("span", { className: "ds-export-menu__item-content", children: [
583
+ /* @__PURE__ */ jsx("span", { className: "ds-export-menu__item-label", children: option.label }),
584
+ option.description && /* @__PURE__ */ jsx("span", { className: "ds-export-menu__item-description", children: option.description })
585
+ ] })
586
+ ]
587
+ },
588
+ option.format
589
+ ))
590
+ ] }),
591
+ imageOptions.length > 0 && (dataOptions.length > 0 || documentOptions.length > 0) && /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
592
+ imageOptions.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
593
+ /* @__PURE__ */ jsx(DropdownMenuLabel, { children: "Image" }),
594
+ imageOptions.map((option) => /* @__PURE__ */ jsxs(
595
+ DropdownMenuItem,
596
+ {
597
+ disabled: option.disabled,
598
+ onClick: () => onExport(option.format),
599
+ children: [
600
+ /* @__PURE__ */ jsx("span", { className: "ds-export-menu__item-icon", children: FORMAT_ICONS[option.format] }),
601
+ /* @__PURE__ */ jsxs("span", { className: "ds-export-menu__item-content", children: [
602
+ /* @__PURE__ */ jsx("span", { className: "ds-export-menu__item-label", children: option.label }),
603
+ option.description && /* @__PURE__ */ jsx("span", { className: "ds-export-menu__item-description", children: option.description })
604
+ ] })
605
+ ]
606
+ },
607
+ option.format
608
+ ))
609
+ ] })
610
+ ] })
611
+ ] });
612
+ }
613
+ ExportMenu.displayName = "ExportMenu";
614
+ function ExportIcon() {
615
+ return /* @__PURE__ */ jsxs(
616
+ "svg",
617
+ {
618
+ xmlns: "http://www.w3.org/2000/svg",
619
+ width: "16",
620
+ height: "16",
621
+ viewBox: "0 0 24 24",
622
+ fill: "none",
623
+ stroke: "currentColor",
624
+ strokeWidth: "2",
625
+ strokeLinecap: "round",
626
+ strokeLinejoin: "round",
627
+ children: [
628
+ /* @__PURE__ */ jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
629
+ /* @__PURE__ */ jsx("polyline", { points: "17 8 12 3 7 8" }),
630
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "3", x2: "12", y2: "15" })
631
+ ]
632
+ }
633
+ );
634
+ }
635
+ function LoadingIcon() {
636
+ return /* @__PURE__ */ jsx(
637
+ "svg",
638
+ {
639
+ className: "ds-export-menu__loading-icon",
640
+ xmlns: "http://www.w3.org/2000/svg",
641
+ width: "16",
642
+ height: "16",
643
+ viewBox: "0 0 24 24",
644
+ fill: "none",
645
+ stroke: "currentColor",
646
+ strokeWidth: "2",
647
+ strokeLinecap: "round",
648
+ strokeLinejoin: "round",
649
+ children: /* @__PURE__ */ jsx("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
650
+ }
651
+ );
652
+ }
653
+ function PdfIcon() {
654
+ return /* @__PURE__ */ jsxs(
655
+ "svg",
656
+ {
657
+ xmlns: "http://www.w3.org/2000/svg",
658
+ width: "16",
659
+ height: "16",
660
+ viewBox: "0 0 24 24",
661
+ fill: "none",
662
+ stroke: "currentColor",
663
+ strokeWidth: "2",
664
+ strokeLinecap: "round",
665
+ strokeLinejoin: "round",
666
+ children: [
667
+ /* @__PURE__ */ jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }),
668
+ /* @__PURE__ */ jsx("polyline", { points: "14 2 14 8 20 8" }),
669
+ /* @__PURE__ */ jsx("line", { x1: "16", y1: "13", x2: "8", y2: "13" }),
670
+ /* @__PURE__ */ jsx("line", { x1: "16", y1: "17", x2: "8", y2: "17" }),
671
+ /* @__PURE__ */ jsx("polyline", { points: "10 9 9 9 8 9" })
672
+ ]
673
+ }
674
+ );
675
+ }
676
+ function CsvIcon() {
677
+ return /* @__PURE__ */ jsxs(
678
+ "svg",
679
+ {
680
+ xmlns: "http://www.w3.org/2000/svg",
681
+ width: "16",
682
+ height: "16",
683
+ viewBox: "0 0 24 24",
684
+ fill: "none",
685
+ stroke: "currentColor",
686
+ strokeWidth: "2",
687
+ strokeLinecap: "round",
688
+ strokeLinejoin: "round",
689
+ children: [
690
+ /* @__PURE__ */ jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }),
691
+ /* @__PURE__ */ jsx("polyline", { points: "14 2 14 8 20 8" }),
692
+ /* @__PURE__ */ jsx("line", { x1: "8", y1: "13", x2: "16", y2: "13" }),
693
+ /* @__PURE__ */ jsx("line", { x1: "8", y1: "17", x2: "16", y2: "17" })
694
+ ]
695
+ }
696
+ );
697
+ }
698
+ function ExcelIcon() {
699
+ return /* @__PURE__ */ jsxs(
700
+ "svg",
701
+ {
702
+ xmlns: "http://www.w3.org/2000/svg",
703
+ width: "16",
704
+ height: "16",
705
+ viewBox: "0 0 24 24",
706
+ fill: "none",
707
+ stroke: "currentColor",
708
+ strokeWidth: "2",
709
+ strokeLinecap: "round",
710
+ strokeLinejoin: "round",
711
+ children: [
712
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }),
713
+ /* @__PURE__ */ jsx("path", { d: "M3 9h18" }),
714
+ /* @__PURE__ */ jsx("path", { d: "M3 15h18" }),
715
+ /* @__PURE__ */ jsx("path", { d: "M9 3v18" }),
716
+ /* @__PURE__ */ jsx("path", { d: "M15 3v18" })
717
+ ]
718
+ }
719
+ );
720
+ }
721
+ function PptIcon() {
722
+ return /* @__PURE__ */ jsxs(
723
+ "svg",
724
+ {
725
+ xmlns: "http://www.w3.org/2000/svg",
726
+ width: "16",
727
+ height: "16",
728
+ viewBox: "0 0 24 24",
729
+ fill: "none",
730
+ stroke: "currentColor",
731
+ strokeWidth: "2",
732
+ strokeLinecap: "round",
733
+ strokeLinejoin: "round",
734
+ children: [
735
+ /* @__PURE__ */ jsx("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2" }),
736
+ /* @__PURE__ */ jsx("line", { x1: "8", y1: "21", x2: "16", y2: "21" }),
737
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "17", x2: "12", y2: "21" })
738
+ ]
739
+ }
740
+ );
741
+ }
742
+ function ImageIcon() {
743
+ return /* @__PURE__ */ jsxs(
744
+ "svg",
745
+ {
746
+ xmlns: "http://www.w3.org/2000/svg",
747
+ width: "16",
748
+ height: "16",
749
+ viewBox: "0 0 24 24",
750
+ fill: "none",
751
+ stroke: "currentColor",
752
+ strokeWidth: "2",
753
+ strokeLinecap: "round",
754
+ strokeLinejoin: "round",
755
+ children: [
756
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }),
757
+ /* @__PURE__ */ jsx("circle", { cx: "8.5", cy: "8.5", r: "1.5" }),
758
+ /* @__PURE__ */ jsx("path", { d: "m21 15-5-5L5 21" })
759
+ ]
760
+ }
761
+ );
762
+ }
763
+ function JsonIcon() {
764
+ return /* @__PURE__ */ jsxs(
765
+ "svg",
766
+ {
767
+ xmlns: "http://www.w3.org/2000/svg",
768
+ width: "16",
769
+ height: "16",
770
+ viewBox: "0 0 24 24",
771
+ fill: "none",
772
+ stroke: "currentColor",
773
+ strokeWidth: "2",
774
+ strokeLinecap: "round",
775
+ strokeLinejoin: "round",
776
+ children: [
777
+ /* @__PURE__ */ jsx("path", { d: "M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5a2 2 0 0 0 2 2h1" }),
778
+ /* @__PURE__ */ jsx("path", { d: "M16 21h1a2 2 0 0 0 2-2v-5a2 2 0 0 1 2-2 2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1" })
779
+ ]
780
+ }
781
+ );
782
+ }
783
+
784
+ export { CaveatBlock, EvidenceGroup, ExecutiveThesis, ExportMenu, InsightBlock, KeyMetric, MethodologyNote, ReportShell, TrendIndicator };
785
+ //# sourceMappingURL=out.js.map
786
+ //# sourceMappingURL=chunk-6H4DSTXR.js.map