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