@adoptai/genui-components 0.1.32

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 (554) hide show
  1. package/README.md +56 -0
  2. package/dist/builders/BuilderForm.d.ts +25 -0
  3. package/dist/builders/BuilderForm.d.ts.map +1 -0
  4. package/dist/builders/BuilderRecap.d.ts +12 -0
  5. package/dist/builders/BuilderRecap.d.ts.map +1 -0
  6. package/dist/builders/ContextSlot.d.ts +6 -0
  7. package/dist/builders/ContextSlot.d.ts.map +1 -0
  8. package/dist/builders/EscalationCard.d.ts +12 -0
  9. package/dist/builders/EscalationCard.d.ts.map +1 -0
  10. package/dist/builders/FieldRenderer.d.ts +12 -0
  11. package/dist/builders/FieldRenderer.d.ts.map +1 -0
  12. package/dist/builders/FormBuilder.d.ts +13 -0
  13. package/dist/builders/FormBuilder.d.ts.map +1 -0
  14. package/dist/builders/StepperBuilder.d.ts +20 -0
  15. package/dist/builders/StepperBuilder.d.ts.map +1 -0
  16. package/dist/builders/fields.d.ts +27 -0
  17. package/dist/builders/fields.d.ts.map +1 -0
  18. package/dist/builders/hooks.d.ts +22 -0
  19. package/dist/builders/hooks.d.ts.map +1 -0
  20. package/dist/builders/index.d.ts +20 -0
  21. package/dist/builders/index.d.ts.map +1 -0
  22. package/dist/builders/resolver.d.ts +10 -0
  23. package/dist/builders/resolver.d.ts.map +1 -0
  24. package/dist/builders/schemas.d.ts +130 -0
  25. package/dist/builders/schemas.d.ts.map +1 -0
  26. package/dist/builders/validateBuilder.d.ts +10 -0
  27. package/dist/builders/validateBuilder.d.ts.map +1 -0
  28. package/dist/composites/aging-report/resolver.cjs +339 -0
  29. package/dist/composites/aging-report/resolver.cjs.map +1 -0
  30. package/dist/composites/aging-report/resolver.d.ts +3 -0
  31. package/dist/composites/aging-report/resolver.d.ts.map +1 -0
  32. package/dist/composites/aging-report/resolver.js +337 -0
  33. package/dist/composites/aging-report/resolver.js.map +1 -0
  34. package/dist/composites/alert/resolver.cjs +510 -0
  35. package/dist/composites/alert/resolver.cjs.map +1 -0
  36. package/dist/composites/alert/resolver.d.ts +3 -0
  37. package/dist/composites/alert/resolver.d.ts.map +1 -0
  38. package/dist/composites/alert/resolver.js +508 -0
  39. package/dist/composites/alert/resolver.js.map +1 -0
  40. package/dist/composites/allocation-donut/resolver.cjs +363 -0
  41. package/dist/composites/allocation-donut/resolver.cjs.map +1 -0
  42. package/dist/composites/allocation-donut/resolver.d.ts +3 -0
  43. package/dist/composites/allocation-donut/resolver.d.ts.map +1 -0
  44. package/dist/composites/allocation-donut/resolver.js +361 -0
  45. package/dist/composites/allocation-donut/resolver.js.map +1 -0
  46. package/dist/composites/amortization-table/resolver.cjs +692 -0
  47. package/dist/composites/amortization-table/resolver.cjs.map +1 -0
  48. package/dist/composites/amortization-table/resolver.d.ts +3 -0
  49. package/dist/composites/amortization-table/resolver.d.ts.map +1 -0
  50. package/dist/composites/amortization-table/resolver.js +690 -0
  51. package/dist/composites/amortization-table/resolver.js.map +1 -0
  52. package/dist/composites/area-chart/resolver.cjs +334 -0
  53. package/dist/composites/area-chart/resolver.cjs.map +1 -0
  54. package/dist/composites/area-chart/resolver.d.ts +3 -0
  55. package/dist/composites/area-chart/resolver.d.ts.map +1 -0
  56. package/dist/composites/area-chart/resolver.js +332 -0
  57. package/dist/composites/area-chart/resolver.js.map +1 -0
  58. package/dist/composites/audit-trail/resolver.cjs +564 -0
  59. package/dist/composites/audit-trail/resolver.cjs.map +1 -0
  60. package/dist/composites/audit-trail/resolver.d.ts +3 -0
  61. package/dist/composites/audit-trail/resolver.d.ts.map +1 -0
  62. package/dist/composites/audit-trail/resolver.js +562 -0
  63. package/dist/composites/audit-trail/resolver.js.map +1 -0
  64. package/dist/composites/balance-sheet/resolver.cjs +475 -0
  65. package/dist/composites/balance-sheet/resolver.cjs.map +1 -0
  66. package/dist/composites/balance-sheet/resolver.d.ts +3 -0
  67. package/dist/composites/balance-sheet/resolver.d.ts.map +1 -0
  68. package/dist/composites/balance-sheet/resolver.js +469 -0
  69. package/dist/composites/balance-sheet/resolver.js.map +1 -0
  70. package/dist/composites/bullet-chart/resolver.cjs +300 -0
  71. package/dist/composites/bullet-chart/resolver.cjs.map +1 -0
  72. package/dist/composites/bullet-chart/resolver.d.ts +3 -0
  73. package/dist/composites/bullet-chart/resolver.d.ts.map +1 -0
  74. package/dist/composites/bullet-chart/resolver.js +298 -0
  75. package/dist/composites/bullet-chart/resolver.js.map +1 -0
  76. package/dist/composites/cash-flow-statement/resolver.cjs +757 -0
  77. package/dist/composites/cash-flow-statement/resolver.cjs.map +1 -0
  78. package/dist/composites/cash-flow-statement/resolver.d.ts +3 -0
  79. package/dist/composites/cash-flow-statement/resolver.d.ts.map +1 -0
  80. package/dist/composites/cash-flow-statement/resolver.js +751 -0
  81. package/dist/composites/cash-flow-statement/resolver.js.map +1 -0
  82. package/dist/composites/chart-of-accounts/resolver.cjs +603 -0
  83. package/dist/composites/chart-of-accounts/resolver.cjs.map +1 -0
  84. package/dist/composites/chart-of-accounts/resolver.d.ts +3 -0
  85. package/dist/composites/chart-of-accounts/resolver.d.ts.map +1 -0
  86. package/dist/composites/chart-of-accounts/resolver.js +601 -0
  87. package/dist/composites/chart-of-accounts/resolver.js.map +1 -0
  88. package/dist/composites/cited-answer/resolver.cjs +829 -0
  89. package/dist/composites/cited-answer/resolver.cjs.map +1 -0
  90. package/dist/composites/cited-answer/resolver.d.ts +3 -0
  91. package/dist/composites/cited-answer/resolver.d.ts.map +1 -0
  92. package/dist/composites/cited-answer/resolver.js +827 -0
  93. package/dist/composites/cited-answer/resolver.js.map +1 -0
  94. package/dist/composites/combo-chart/resolver.cjs +402 -0
  95. package/dist/composites/combo-chart/resolver.cjs.map +1 -0
  96. package/dist/composites/combo-chart/resolver.d.ts +3 -0
  97. package/dist/composites/combo-chart/resolver.d.ts.map +1 -0
  98. package/dist/composites/combo-chart/resolver.js +400 -0
  99. package/dist/composites/combo-chart/resolver.js.map +1 -0
  100. package/dist/composites/comparative-bar-chart/resolver.cjs +366 -0
  101. package/dist/composites/comparative-bar-chart/resolver.cjs.map +1 -0
  102. package/dist/composites/comparative-bar-chart/resolver.d.ts +3 -0
  103. package/dist/composites/comparative-bar-chart/resolver.d.ts.map +1 -0
  104. package/dist/composites/comparative-bar-chart/resolver.js +364 -0
  105. package/dist/composites/comparative-bar-chart/resolver.js.map +1 -0
  106. package/dist/composites/compliance-checklist/resolver.cjs +618 -0
  107. package/dist/composites/compliance-checklist/resolver.cjs.map +1 -0
  108. package/dist/composites/compliance-checklist/resolver.d.ts +3 -0
  109. package/dist/composites/compliance-checklist/resolver.d.ts.map +1 -0
  110. package/dist/composites/compliance-checklist/resolver.js +616 -0
  111. package/dist/composites/compliance-checklist/resolver.js.map +1 -0
  112. package/dist/composites/connect-integration/resolver.d.ts +3 -0
  113. package/dist/composites/connect-integration/resolver.d.ts.map +1 -0
  114. package/dist/composites/data-table/resolver.cjs +324 -0
  115. package/dist/composites/data-table/resolver.cjs.map +1 -0
  116. package/dist/composites/data-table/resolver.d.ts +3 -0
  117. package/dist/composites/data-table/resolver.d.ts.map +1 -0
  118. package/dist/composites/data-table/resolver.js +322 -0
  119. package/dist/composites/data-table/resolver.js.map +1 -0
  120. package/dist/composites/depreciation-schedule/resolver.cjs +726 -0
  121. package/dist/composites/depreciation-schedule/resolver.cjs.map +1 -0
  122. package/dist/composites/depreciation-schedule/resolver.d.ts +3 -0
  123. package/dist/composites/depreciation-schedule/resolver.d.ts.map +1 -0
  124. package/dist/composites/depreciation-schedule/resolver.js +724 -0
  125. package/dist/composites/depreciation-schedule/resolver.js.map +1 -0
  126. package/dist/composites/document-preview/ExcelViewer.d.ts +8 -0
  127. package/dist/composites/document-preview/ExcelViewer.d.ts.map +1 -0
  128. package/dist/composites/document-preview/PdfViewer.d.ts +10 -0
  129. package/dist/composites/document-preview/PdfViewer.d.ts.map +1 -0
  130. package/dist/composites/document-preview/resolver.cjs +1036 -0
  131. package/dist/composites/document-preview/resolver.cjs.map +1 -0
  132. package/dist/composites/document-preview/resolver.d.ts +3 -0
  133. package/dist/composites/document-preview/resolver.d.ts.map +1 -0
  134. package/dist/composites/document-preview/resolver.js +1011 -0
  135. package/dist/composites/document-preview/resolver.js.map +1 -0
  136. package/dist/composites/document-preview/useFullscreen.d.ts +8 -0
  137. package/dist/composites/document-preview/useFullscreen.d.ts.map +1 -0
  138. package/dist/composites/download-card/resolver.cjs +1831 -0
  139. package/dist/composites/download-card/resolver.cjs.map +1 -0
  140. package/dist/composites/download-card/resolver.d.ts +3 -0
  141. package/dist/composites/download-card/resolver.d.ts.map +1 -0
  142. package/dist/composites/download-card/resolver.js +1804 -0
  143. package/dist/composites/download-card/resolver.js.map +1 -0
  144. package/dist/composites/engagement-pipeline/resolver.cjs +834 -0
  145. package/dist/composites/engagement-pipeline/resolver.cjs.map +1 -0
  146. package/dist/composites/engagement-pipeline/resolver.d.ts +3 -0
  147. package/dist/composites/engagement-pipeline/resolver.d.ts.map +1 -0
  148. package/dist/composites/engagement-pipeline/resolver.js +828 -0
  149. package/dist/composites/engagement-pipeline/resolver.js.map +1 -0
  150. package/dist/composites/entity-card-grid/resolver.cjs +444 -0
  151. package/dist/composites/entity-card-grid/resolver.cjs.map +1 -0
  152. package/dist/composites/entity-card-grid/resolver.d.ts +3 -0
  153. package/dist/composites/entity-card-grid/resolver.d.ts.map +1 -0
  154. package/dist/composites/entity-card-grid/resolver.js +442 -0
  155. package/dist/composites/entity-card-grid/resolver.js.map +1 -0
  156. package/dist/composites/escalation-card/resolver.cjs +359 -0
  157. package/dist/composites/escalation-card/resolver.cjs.map +1 -0
  158. package/dist/composites/escalation-card/resolver.d.ts +3 -0
  159. package/dist/composites/escalation-card/resolver.d.ts.map +1 -0
  160. package/dist/composites/escalation-card/resolver.js +357 -0
  161. package/dist/composites/escalation-card/resolver.js.map +1 -0
  162. package/dist/composites/file-browser/resolver.cjs +440 -0
  163. package/dist/composites/file-browser/resolver.cjs.map +1 -0
  164. package/dist/composites/file-browser/resolver.d.ts +3 -0
  165. package/dist/composites/file-browser/resolver.d.ts.map +1 -0
  166. package/dist/composites/file-browser/resolver.js +438 -0
  167. package/dist/composites/file-browser/resolver.js.map +1 -0
  168. package/dist/composites/flow-canvas/DiagramStreamParser.d.ts +15 -0
  169. package/dist/composites/flow-canvas/DiagramStreamParser.d.ts.map +1 -0
  170. package/dist/composites/flow-canvas/ElementStreamParser.d.ts +19 -0
  171. package/dist/composites/flow-canvas/ElementStreamParser.d.ts.map +1 -0
  172. package/dist/composites/flow-canvas/ExcalidrawCanvas.d.ts +8 -0
  173. package/dist/composites/flow-canvas/ExcalidrawCanvas.d.ts.map +1 -0
  174. package/dist/composites/flow-canvas/FlowGraph.d.ts +11 -0
  175. package/dist/composites/flow-canvas/FlowGraph.d.ts.map +1 -0
  176. package/dist/composites/flow-canvas/layoutFlow.d.ts +18 -0
  177. package/dist/composites/flow-canvas/layoutFlow.d.ts.map +1 -0
  178. package/dist/composites/flow-canvas/parseMermaidFlow.d.ts +24 -0
  179. package/dist/composites/flow-canvas/parseMermaidFlow.d.ts.map +1 -0
  180. package/dist/composites/flow-canvas/resolver.cjs +1295 -0
  181. package/dist/composites/flow-canvas/resolver.cjs.map +1 -0
  182. package/dist/composites/flow-canvas/resolver.d.ts +12 -0
  183. package/dist/composites/flow-canvas/resolver.d.ts.map +1 -0
  184. package/dist/composites/flow-canvas/resolver.js +1287 -0
  185. package/dist/composites/flow-canvas/resolver.js.map +1 -0
  186. package/dist/composites/funnel-chart/resolver.cjs +315 -0
  187. package/dist/composites/funnel-chart/resolver.cjs.map +1 -0
  188. package/dist/composites/funnel-chart/resolver.d.ts +3 -0
  189. package/dist/composites/funnel-chart/resolver.d.ts.map +1 -0
  190. package/dist/composites/funnel-chart/resolver.js +313 -0
  191. package/dist/composites/funnel-chart/resolver.js.map +1 -0
  192. package/dist/composites/gauge-chart/resolver.cjs +294 -0
  193. package/dist/composites/gauge-chart/resolver.cjs.map +1 -0
  194. package/dist/composites/gauge-chart/resolver.d.ts +3 -0
  195. package/dist/composites/gauge-chart/resolver.d.ts.map +1 -0
  196. package/dist/composites/gauge-chart/resolver.js +292 -0
  197. package/dist/composites/gauge-chart/resolver.js.map +1 -0
  198. package/dist/composites/general-ledger/resolver.cjs +543 -0
  199. package/dist/composites/general-ledger/resolver.cjs.map +1 -0
  200. package/dist/composites/general-ledger/resolver.d.ts +3 -0
  201. package/dist/composites/general-ledger/resolver.d.ts.map +1 -0
  202. package/dist/composites/general-ledger/resolver.js +541 -0
  203. package/dist/composites/general-ledger/resolver.js.map +1 -0
  204. package/dist/composites/grouped-table/resolver.cjs +388 -0
  205. package/dist/composites/grouped-table/resolver.cjs.map +1 -0
  206. package/dist/composites/grouped-table/resolver.d.ts +3 -0
  207. package/dist/composites/grouped-table/resolver.d.ts.map +1 -0
  208. package/dist/composites/grouped-table/resolver.js +386 -0
  209. package/dist/composites/grouped-table/resolver.js.map +1 -0
  210. package/dist/composites/heatmap-table/resolver.cjs +380 -0
  211. package/dist/composites/heatmap-table/resolver.cjs.map +1 -0
  212. package/dist/composites/heatmap-table/resolver.d.ts +3 -0
  213. package/dist/composites/heatmap-table/resolver.d.ts.map +1 -0
  214. package/dist/composites/heatmap-table/resolver.js +378 -0
  215. package/dist/composites/heatmap-table/resolver.js.map +1 -0
  216. package/dist/composites/income-statement/resolver.cjs +583 -0
  217. package/dist/composites/income-statement/resolver.cjs.map +1 -0
  218. package/dist/composites/income-statement/resolver.d.ts +3 -0
  219. package/dist/composites/income-statement/resolver.d.ts.map +1 -0
  220. package/dist/composites/income-statement/resolver.js +577 -0
  221. package/dist/composites/income-statement/resolver.js.map +1 -0
  222. package/dist/composites/integrations-list/resolver.d.ts +3 -0
  223. package/dist/composites/integrations-list/resolver.d.ts.map +1 -0
  224. package/dist/composites/invoice-detail/resolver.cjs +1086 -0
  225. package/dist/composites/invoice-detail/resolver.cjs.map +1 -0
  226. package/dist/composites/invoice-detail/resolver.d.ts +3 -0
  227. package/dist/composites/invoice-detail/resolver.d.ts.map +1 -0
  228. package/dist/composites/invoice-detail/resolver.js +1084 -0
  229. package/dist/composites/invoice-detail/resolver.js.map +1 -0
  230. package/dist/composites/job-tracker/resolver.cjs +830 -0
  231. package/dist/composites/job-tracker/resolver.cjs.map +1 -0
  232. package/dist/composites/job-tracker/resolver.d.ts +3 -0
  233. package/dist/composites/job-tracker/resolver.d.ts.map +1 -0
  234. package/dist/composites/job-tracker/resolver.js +828 -0
  235. package/dist/composites/job-tracker/resolver.js.map +1 -0
  236. package/dist/composites/journal-entry/resolver.cjs +324 -0
  237. package/dist/composites/journal-entry/resolver.cjs.map +1 -0
  238. package/dist/composites/journal-entry/resolver.d.ts +3 -0
  239. package/dist/composites/journal-entry/resolver.d.ts.map +1 -0
  240. package/dist/composites/journal-entry/resolver.js +322 -0
  241. package/dist/composites/journal-entry/resolver.js.map +1 -0
  242. package/dist/composites/key-value-list/resolver.cjs +708 -0
  243. package/dist/composites/key-value-list/resolver.cjs.map +1 -0
  244. package/dist/composites/key-value-list/resolver.d.ts +3 -0
  245. package/dist/composites/key-value-list/resolver.d.ts.map +1 -0
  246. package/dist/composites/key-value-list/resolver.js +702 -0
  247. package/dist/composites/key-value-list/resolver.js.map +1 -0
  248. package/dist/composites/legal-test-result/resolver.cjs +666 -0
  249. package/dist/composites/legal-test-result/resolver.cjs.map +1 -0
  250. package/dist/composites/legal-test-result/resolver.d.ts +3 -0
  251. package/dist/composites/legal-test-result/resolver.d.ts.map +1 -0
  252. package/dist/composites/legal-test-result/resolver.js +664 -0
  253. package/dist/composites/legal-test-result/resolver.js.map +1 -0
  254. package/dist/composites/line-chart/resolver.cjs +344 -0
  255. package/dist/composites/line-chart/resolver.cjs.map +1 -0
  256. package/dist/composites/line-chart/resolver.d.ts +3 -0
  257. package/dist/composites/line-chart/resolver.d.ts.map +1 -0
  258. package/dist/composites/line-chart/resolver.js +342 -0
  259. package/dist/composites/line-chart/resolver.js.map +1 -0
  260. package/dist/composites/news-feed/resolver.cjs +539 -0
  261. package/dist/composites/news-feed/resolver.cjs.map +1 -0
  262. package/dist/composites/news-feed/resolver.d.ts +3 -0
  263. package/dist/composites/news-feed/resolver.d.ts.map +1 -0
  264. package/dist/composites/news-feed/resolver.js +537 -0
  265. package/dist/composites/news-feed/resolver.js.map +1 -0
  266. package/dist/composites/ops-dashboard/resolver.cjs +430 -0
  267. package/dist/composites/ops-dashboard/resolver.cjs.map +1 -0
  268. package/dist/composites/ops-dashboard/resolver.d.ts +3 -0
  269. package/dist/composites/ops-dashboard/resolver.d.ts.map +1 -0
  270. package/dist/composites/ops-dashboard/resolver.js +428 -0
  271. package/dist/composites/ops-dashboard/resolver.js.map +1 -0
  272. package/dist/composites/pipeline-preview/layout.d.ts +39 -0
  273. package/dist/composites/pipeline-preview/layout.d.ts.map +1 -0
  274. package/dist/composites/pipeline-preview/opMeta.d.ts +9 -0
  275. package/dist/composites/pipeline-preview/opMeta.d.ts.map +1 -0
  276. package/dist/composites/pipeline-preview/resolver.d.ts +3 -0
  277. package/dist/composites/pipeline-preview/resolver.d.ts.map +1 -0
  278. package/dist/composites/provenance-chain/resolver.cjs +797 -0
  279. package/dist/composites/provenance-chain/resolver.cjs.map +1 -0
  280. package/dist/composites/provenance-chain/resolver.d.ts +3 -0
  281. package/dist/composites/provenance-chain/resolver.d.ts.map +1 -0
  282. package/dist/composites/provenance-chain/resolver.js +795 -0
  283. package/dist/composites/provenance-chain/resolver.js.map +1 -0
  284. package/dist/composites/radar-chart/resolver.cjs +323 -0
  285. package/dist/composites/radar-chart/resolver.cjs.map +1 -0
  286. package/dist/composites/radar-chart/resolver.d.ts +3 -0
  287. package/dist/composites/radar-chart/resolver.d.ts.map +1 -0
  288. package/dist/composites/radar-chart/resolver.js +321 -0
  289. package/dist/composites/radar-chart/resolver.js.map +1 -0
  290. package/dist/composites/reconciliation-view/resolver.cjs +917 -0
  291. package/dist/composites/reconciliation-view/resolver.cjs.map +1 -0
  292. package/dist/composites/reconciliation-view/resolver.d.ts +3 -0
  293. package/dist/composites/reconciliation-view/resolver.d.ts.map +1 -0
  294. package/dist/composites/reconciliation-view/resolver.js +915 -0
  295. package/dist/composites/reconciliation-view/resolver.js.map +1 -0
  296. package/dist/composites/scatter-chart/resolver.cjs +357 -0
  297. package/dist/composites/scatter-chart/resolver.cjs.map +1 -0
  298. package/dist/composites/scatter-chart/resolver.d.ts +3 -0
  299. package/dist/composites/scatter-chart/resolver.d.ts.map +1 -0
  300. package/dist/composites/scatter-chart/resolver.js +355 -0
  301. package/dist/composites/scatter-chart/resolver.js.map +1 -0
  302. package/dist/composites/screener-table/resolver.cjs +372 -0
  303. package/dist/composites/screener-table/resolver.cjs.map +1 -0
  304. package/dist/composites/screener-table/resolver.d.ts +3 -0
  305. package/dist/composites/screener-table/resolver.d.ts.map +1 -0
  306. package/dist/composites/screener-table/resolver.js +370 -0
  307. package/dist/composites/screener-table/resolver.js.map +1 -0
  308. package/dist/composites/search-results/resolver.cjs +391 -0
  309. package/dist/composites/search-results/resolver.cjs.map +1 -0
  310. package/dist/composites/search-results/resolver.d.ts +3 -0
  311. package/dist/composites/search-results/resolver.d.ts.map +1 -0
  312. package/dist/composites/search-results/resolver.js +389 -0
  313. package/dist/composites/search-results/resolver.js.map +1 -0
  314. package/dist/composites/sparkline-table/resolver.cjs +361 -0
  315. package/dist/composites/sparkline-table/resolver.cjs.map +1 -0
  316. package/dist/composites/sparkline-table/resolver.d.ts +3 -0
  317. package/dist/composites/sparkline-table/resolver.d.ts.map +1 -0
  318. package/dist/composites/sparkline-table/resolver.js +359 -0
  319. package/dist/composites/sparkline-table/resolver.js.map +1 -0
  320. package/dist/composites/stacked-breakdown/resolver.cjs +397 -0
  321. package/dist/composites/stacked-breakdown/resolver.cjs.map +1 -0
  322. package/dist/composites/stacked-breakdown/resolver.d.ts +3 -0
  323. package/dist/composites/stacked-breakdown/resolver.d.ts.map +1 -0
  324. package/dist/composites/stacked-breakdown/resolver.js +395 -0
  325. package/dist/composites/stacked-breakdown/resolver.js.map +1 -0
  326. package/dist/composites/stat-grid/resolver.cjs +498 -0
  327. package/dist/composites/stat-grid/resolver.cjs.map +1 -0
  328. package/dist/composites/stat-grid/resolver.d.ts +3 -0
  329. package/dist/composites/stat-grid/resolver.d.ts.map +1 -0
  330. package/dist/composites/stat-grid/resolver.js +496 -0
  331. package/dist/composites/stat-grid/resolver.js.map +1 -0
  332. package/dist/composites/status-card/resolver.cjs +593 -0
  333. package/dist/composites/status-card/resolver.cjs.map +1 -0
  334. package/dist/composites/status-card/resolver.d.ts +3 -0
  335. package/dist/composites/status-card/resolver.d.ts.map +1 -0
  336. package/dist/composites/status-card/resolver.js +591 -0
  337. package/dist/composites/status-card/resolver.js.map +1 -0
  338. package/dist/composites/tabs-panel/resolver.cjs +564 -0
  339. package/dist/composites/tabs-panel/resolver.cjs.map +1 -0
  340. package/dist/composites/tabs-panel/resolver.d.ts +3 -0
  341. package/dist/composites/tabs-panel/resolver.d.ts.map +1 -0
  342. package/dist/composites/tabs-panel/resolver.js +562 -0
  343. package/dist/composites/tabs-panel/resolver.js.map +1 -0
  344. package/dist/composites/transaction-feed/resolver.cjs +830 -0
  345. package/dist/composites/transaction-feed/resolver.cjs.map +1 -0
  346. package/dist/composites/transaction-feed/resolver.d.ts +3 -0
  347. package/dist/composites/transaction-feed/resolver.d.ts.map +1 -0
  348. package/dist/composites/transaction-feed/resolver.js +828 -0
  349. package/dist/composites/transaction-feed/resolver.js.map +1 -0
  350. package/dist/composites/treemap-chart/resolver.cjs +323 -0
  351. package/dist/composites/treemap-chart/resolver.cjs.map +1 -0
  352. package/dist/composites/treemap-chart/resolver.d.ts +3 -0
  353. package/dist/composites/treemap-chart/resolver.d.ts.map +1 -0
  354. package/dist/composites/treemap-chart/resolver.js +321 -0
  355. package/dist/composites/treemap-chart/resolver.js.map +1 -0
  356. package/dist/composites/trial-balance/resolver.cjs +359 -0
  357. package/dist/composites/trial-balance/resolver.cjs.map +1 -0
  358. package/dist/composites/trial-balance/resolver.d.ts +3 -0
  359. package/dist/composites/trial-balance/resolver.d.ts.map +1 -0
  360. package/dist/composites/trial-balance/resolver.js +353 -0
  361. package/dist/composites/trial-balance/resolver.js.map +1 -0
  362. package/dist/composites/variance-analysis/resolver.cjs +310 -0
  363. package/dist/composites/variance-analysis/resolver.cjs.map +1 -0
  364. package/dist/composites/variance-analysis/resolver.d.ts +3 -0
  365. package/dist/composites/variance-analysis/resolver.d.ts.map +1 -0
  366. package/dist/composites/variance-analysis/resolver.js +308 -0
  367. package/dist/composites/variance-analysis/resolver.js.map +1 -0
  368. package/dist/composites/waterfall-chart/resolver.cjs +347 -0
  369. package/dist/composites/waterfall-chart/resolver.cjs.map +1 -0
  370. package/dist/composites/waterfall-chart/resolver.d.ts +3 -0
  371. package/dist/composites/waterfall-chart/resolver.d.ts.map +1 -0
  372. package/dist/composites/waterfall-chart/resolver.js +345 -0
  373. package/dist/composites/waterfall-chart/resolver.js.map +1 -0
  374. package/dist/index.cjs +18271 -0
  375. package/dist/index.cjs.map +1 -0
  376. package/dist/index.d.ts +52 -0
  377. package/dist/index.d.ts.map +1 -0
  378. package/dist/index.js +18184 -0
  379. package/dist/index.js.map +1 -0
  380. package/dist/renderer.cjs +17092 -0
  381. package/dist/renderer.cjs.map +1 -0
  382. package/dist/renderer.d.ts +7 -0
  383. package/dist/renderer.d.ts.map +1 -0
  384. package/dist/renderer.js +17064 -0
  385. package/dist/renderer.js.map +1 -0
  386. package/dist/resolver.cjs +17061 -0
  387. package/dist/resolver.cjs.map +1 -0
  388. package/dist/resolver.d.ts +6 -0
  389. package/dist/resolver.d.ts.map +1 -0
  390. package/dist/resolver.js +17033 -0
  391. package/dist/resolver.js.map +1 -0
  392. package/dist/schemas/aging-report.d.ts +74 -0
  393. package/dist/schemas/aging-report.d.ts.map +1 -0
  394. package/dist/schemas/alert.d.ts +39 -0
  395. package/dist/schemas/alert.d.ts.map +1 -0
  396. package/dist/schemas/allocation-donut.d.ts +53 -0
  397. package/dist/schemas/allocation-donut.d.ts.map +1 -0
  398. package/dist/schemas/amortization-table.d.ts +102 -0
  399. package/dist/schemas/amortization-table.d.ts.map +1 -0
  400. package/dist/schemas/area-chart.d.ts +61 -0
  401. package/dist/schemas/area-chart.d.ts.map +1 -0
  402. package/dist/schemas/audit-trail.d.ts +88 -0
  403. package/dist/schemas/audit-trail.d.ts.map +1 -0
  404. package/dist/schemas/balance-sheet.d.ts +170 -0
  405. package/dist/schemas/balance-sheet.d.ts.map +1 -0
  406. package/dist/schemas/buildRenderUITool.d.ts +7 -0
  407. package/dist/schemas/buildRenderUITool.d.ts.map +1 -0
  408. package/dist/schemas/bullet-chart.d.ts +58 -0
  409. package/dist/schemas/bullet-chart.d.ts.map +1 -0
  410. package/dist/schemas/cash-flow-statement.d.ts +165 -0
  411. package/dist/schemas/cash-flow-statement.d.ts.map +1 -0
  412. package/dist/schemas/chart-of-accounts.d.ts +93 -0
  413. package/dist/schemas/chart-of-accounts.d.ts.map +1 -0
  414. package/dist/schemas/cited-answer.d.ts +76 -0
  415. package/dist/schemas/cited-answer.d.ts.map +1 -0
  416. package/dist/schemas/coercePayload.d.ts +16 -0
  417. package/dist/schemas/coercePayload.d.ts.map +1 -0
  418. package/dist/schemas/combo-chart.d.ts +111 -0
  419. package/dist/schemas/combo-chart.d.ts.map +1 -0
  420. package/dist/schemas/comparative-bar-chart.d.ts +83 -0
  421. package/dist/schemas/comparative-bar-chart.d.ts.map +1 -0
  422. package/dist/schemas/compliance-checklist.d.ts +91 -0
  423. package/dist/schemas/compliance-checklist.d.ts.map +1 -0
  424. package/dist/schemas/connect-integration.d.ts +47 -0
  425. package/dist/schemas/connect-integration.d.ts.map +1 -0
  426. package/dist/schemas/data-table.d.ts +63 -0
  427. package/dist/schemas/data-table.d.ts.map +1 -0
  428. package/dist/schemas/depreciation-schedule.d.ts +125 -0
  429. package/dist/schemas/depreciation-schedule.d.ts.map +1 -0
  430. package/dist/schemas/document-preview.d.ts +128 -0
  431. package/dist/schemas/document-preview.d.ts.map +1 -0
  432. package/dist/schemas/download-card.d.ts +62 -0
  433. package/dist/schemas/download-card.d.ts.map +1 -0
  434. package/dist/schemas/engagement-pipeline.d.ts +119 -0
  435. package/dist/schemas/engagement-pipeline.d.ts.map +1 -0
  436. package/dist/schemas/entity-card-grid.d.ts +101 -0
  437. package/dist/schemas/entity-card-grid.d.ts.map +1 -0
  438. package/dist/schemas/escalation-card.d.ts +44 -0
  439. package/dist/schemas/escalation-card.d.ts.map +1 -0
  440. package/dist/schemas/file-browser.d.ts +81 -0
  441. package/dist/schemas/file-browser.d.ts.map +1 -0
  442. package/dist/schemas/flow-canvas.d.ts +58 -0
  443. package/dist/schemas/flow-canvas.d.ts.map +1 -0
  444. package/dist/schemas/funnel-chart.d.ts +53 -0
  445. package/dist/schemas/funnel-chart.d.ts.map +1 -0
  446. package/dist/schemas/gauge-chart.d.ts +58 -0
  447. package/dist/schemas/gauge-chart.d.ts.map +1 -0
  448. package/dist/schemas/general-ledger.d.ts +120 -0
  449. package/dist/schemas/general-ledger.d.ts.map +1 -0
  450. package/dist/schemas/grouped-table.d.ts +101 -0
  451. package/dist/schemas/grouped-table.d.ts.map +1 -0
  452. package/dist/schemas/heatmap-table.d.ts +76 -0
  453. package/dist/schemas/heatmap-table.d.ts.map +1 -0
  454. package/dist/schemas/income-statement.d.ts +170 -0
  455. package/dist/schemas/income-statement.d.ts.map +1 -0
  456. package/dist/schemas/index.cjs +3509 -0
  457. package/dist/schemas/index.cjs.map +1 -0
  458. package/dist/schemas/index.d.ts +5030 -0
  459. package/dist/schemas/index.d.ts.map +1 -0
  460. package/dist/schemas/index.js +3505 -0
  461. package/dist/schemas/index.js.map +1 -0
  462. package/dist/schemas/integrations-list.d.ts +62 -0
  463. package/dist/schemas/integrations-list.d.ts.map +1 -0
  464. package/dist/schemas/invoice-detail.d.ts +157 -0
  465. package/dist/schemas/invoice-detail.d.ts.map +1 -0
  466. package/dist/schemas/job-tracker.d.ts +114 -0
  467. package/dist/schemas/job-tracker.d.ts.map +1 -0
  468. package/dist/schemas/journal-entry.d.ts +90 -0
  469. package/dist/schemas/journal-entry.d.ts.map +1 -0
  470. package/dist/schemas/key-value-list.d.ts +108 -0
  471. package/dist/schemas/key-value-list.d.ts.map +1 -0
  472. package/dist/schemas/legal-test-result.d.ts +130 -0
  473. package/dist/schemas/legal-test-result.d.ts.map +1 -0
  474. package/dist/schemas/line-chart.d.ts +71 -0
  475. package/dist/schemas/line-chart.d.ts.map +1 -0
  476. package/dist/schemas/news-feed.d.ts +63 -0
  477. package/dist/schemas/news-feed.d.ts.map +1 -0
  478. package/dist/schemas/ops-dashboard.d.ts +92 -0
  479. package/dist/schemas/ops-dashboard.d.ts.map +1 -0
  480. package/dist/schemas/pipeline-preview.d.ts +209 -0
  481. package/dist/schemas/pipeline-preview.d.ts.map +1 -0
  482. package/dist/schemas/provenance-chain.d.ts +121 -0
  483. package/dist/schemas/provenance-chain.d.ts.map +1 -0
  484. package/dist/schemas/radar-chart.d.ts +70 -0
  485. package/dist/schemas/radar-chart.d.ts.map +1 -0
  486. package/dist/schemas/reconciliation-view.d.ts +156 -0
  487. package/dist/schemas/reconciliation-view.d.ts.map +1 -0
  488. package/dist/schemas/scatter-chart.d.ts +90 -0
  489. package/dist/schemas/scatter-chart.d.ts.map +1 -0
  490. package/dist/schemas/screener-table.d.ts +74 -0
  491. package/dist/schemas/screener-table.d.ts.map +1 -0
  492. package/dist/schemas/search-results.d.ts +87 -0
  493. package/dist/schemas/search-results.d.ts.map +1 -0
  494. package/dist/schemas/sparkline-table.d.ts +74 -0
  495. package/dist/schemas/sparkline-table.d.ts.map +1 -0
  496. package/dist/schemas/stacked-breakdown.d.ts +70 -0
  497. package/dist/schemas/stacked-breakdown.d.ts.map +1 -0
  498. package/dist/schemas/stat-grid.d.ts +55 -0
  499. package/dist/schemas/stat-grid.d.ts.map +1 -0
  500. package/dist/schemas/status-card.d.ts +84 -0
  501. package/dist/schemas/status-card.d.ts.map +1 -0
  502. package/dist/schemas/tabs-panel.d.ts +42 -0
  503. package/dist/schemas/tabs-panel.d.ts.map +1 -0
  504. package/dist/schemas/transaction-feed.d.ts +82 -0
  505. package/dist/schemas/transaction-feed.d.ts.map +1 -0
  506. package/dist/schemas/treemap-chart.d.ts +53 -0
  507. package/dist/schemas/treemap-chart.d.ts.map +1 -0
  508. package/dist/schemas/trial-balance.d.ts +85 -0
  509. package/dist/schemas/trial-balance.d.ts.map +1 -0
  510. package/dist/schemas/validatePayload.d.ts +10 -0
  511. package/dist/schemas/validatePayload.d.ts.map +1 -0
  512. package/dist/schemas/variance-analysis.d.ts +73 -0
  513. package/dist/schemas/variance-analysis.d.ts.map +1 -0
  514. package/dist/schemas/waterfall-chart.d.ts +53 -0
  515. package/dist/schemas/waterfall-chart.d.ts.map +1 -0
  516. package/dist/shared/ColumnSettingsPanel.d.ts +13 -0
  517. package/dist/shared/ColumnSettingsPanel.d.ts.map +1 -0
  518. package/dist/shared/ComponentActions.d.ts +20 -0
  519. package/dist/shared/ComponentActions.d.ts.map +1 -0
  520. package/dist/shared/FileCard.d.ts +35 -0
  521. package/dist/shared/FileCard.d.ts.map +1 -0
  522. package/dist/shared/Markdown.d.ts +22 -0
  523. package/dist/shared/Markdown.d.ts.map +1 -0
  524. package/dist/shared/PreviewModal.d.ts +19 -0
  525. package/dist/shared/PreviewModal.d.ts.map +1 -0
  526. package/dist/shared/ThemeContext.d.ts +18 -0
  527. package/dist/shared/ThemeContext.d.ts.map +1 -0
  528. package/dist/shared/brandIcons.d.ts +3 -0
  529. package/dist/shared/brandIcons.d.ts.map +1 -0
  530. package/dist/shared/downloadCSV.d.ts +5 -0
  531. package/dist/shared/downloadCSV.d.ts.map +1 -0
  532. package/dist/shared/fileType.d.ts +19 -0
  533. package/dist/shared/fileType.d.ts.map +1 -0
  534. package/dist/shared/theme.d.ts +48 -0
  535. package/dist/shared/theme.d.ts.map +1 -0
  536. package/dist/shared/useColumnVisibility.d.ts +13 -0
  537. package/dist/shared/useColumnVisibility.d.ts.map +1 -0
  538. package/dist/shared/useSeriesToggle.d.ts +8 -0
  539. package/dist/shared/useSeriesToggle.d.ts.map +1 -0
  540. package/dist/shared/viewers/CsvViewer.d.ts +13 -0
  541. package/dist/shared/viewers/CsvViewer.d.ts.map +1 -0
  542. package/dist/shared/viewers/DocxViewer.d.ts +8 -0
  543. package/dist/shared/viewers/DocxViewer.d.ts.map +1 -0
  544. package/dist/shared/viewers/PreviewHost.d.ts +17 -0
  545. package/dist/shared/viewers/PreviewHost.d.ts.map +1 -0
  546. package/dist/shared/viewers/TextViewer.d.ts +13 -0
  547. package/dist/shared/viewers/TextViewer.d.ts.map +1 -0
  548. package/dist/shared/viewers/decode.d.ts +14 -0
  549. package/dist/shared/viewers/decode.d.ts.map +1 -0
  550. package/dist/tool-definitions.json +4629 -0
  551. package/dist/types.d.ts +8 -0
  552. package/dist/types.d.ts.map +1 -0
  553. package/package.json +110 -0
  554. package/styles/contract.css +17 -0
@@ -0,0 +1,1036 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var React5 = require('react');
5
+ var reactPdf = require('react-pdf');
6
+ require('react-pdf/dist/Page/AnnotationLayer.css');
7
+ require('react-pdf/dist/Page/TextLayer.css');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+ var XLSX = require('xlsx');
10
+ var htmlToImage = require('html-to-image');
11
+
12
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
+
14
+ function _interopNamespace(e) {
15
+ if (e && e.__esModule) return e;
16
+ var n = Object.create(null);
17
+ if (e) {
18
+ Object.keys(e).forEach(function (k) {
19
+ if (k !== 'default') {
20
+ var d = Object.getOwnPropertyDescriptor(e, k);
21
+ Object.defineProperty(n, k, d.get ? d : {
22
+ enumerable: true,
23
+ get: function () { return e[k]; }
24
+ });
25
+ }
26
+ });
27
+ }
28
+ n.default = e;
29
+ return Object.freeze(n);
30
+ }
31
+
32
+ var React5__default = /*#__PURE__*/_interopDefault(React5);
33
+ var XLSX__namespace = /*#__PURE__*/_interopNamespace(XLSX);
34
+
35
+ var __defProp = Object.defineProperty;
36
+ var __defProps = Object.defineProperties;
37
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
38
+ var __getOwnPropNames = Object.getOwnPropertyNames;
39
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
40
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
41
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
42
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
43
+ var __spreadValues = (a, b) => {
44
+ for (var prop in b || (b = {}))
45
+ if (__hasOwnProp.call(b, prop))
46
+ __defNormalProp(a, prop, b[prop]);
47
+ if (__getOwnPropSymbols)
48
+ for (var prop of __getOwnPropSymbols(b)) {
49
+ if (__propIsEnum.call(b, prop))
50
+ __defNormalProp(a, prop, b[prop]);
51
+ }
52
+ return a;
53
+ };
54
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
55
+ var __esm = (fn, res) => function __init() {
56
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
57
+ };
58
+ var __export = (target, all) => {
59
+ for (var name in all)
60
+ __defProp(target, name, { get: all[name], enumerable: true });
61
+ };
62
+
63
+ // src/shared/theme.ts
64
+ var BORDER, MUTED, PAPER, ACCENT, ACCENT_SOFT, SECONDARY, CHART_PALETTE;
65
+ var init_theme = __esm({
66
+ "src/shared/theme.ts"() {
67
+ BORDER = "#dedede";
68
+ MUTED = "#777777";
69
+ PAPER = "#f6f6f6";
70
+ ACCENT = "#ff5000";
71
+ ACCENT_SOFT = "#cc4000";
72
+ SECONDARY = "#0364ff";
73
+ CHART_PALETTE = [
74
+ "#ff5000",
75
+ "#0364ff",
76
+ "#16a34a",
77
+ "#dc2626",
78
+ "#7c3aed",
79
+ "#0891b2",
80
+ "#f59e0b",
81
+ "#6366f1",
82
+ "#ec4899",
83
+ "#84cc16",
84
+ "#e11d48",
85
+ "#0ea5e9"
86
+ ];
87
+ }
88
+ });
89
+
90
+ // src/composites/document-preview/PdfViewer.tsx
91
+ var PdfViewer_exports = {};
92
+ __export(PdfViewer_exports, {
93
+ PdfViewer: () => PdfViewer
94
+ });
95
+ function PdfViewer({ url, base64, onLoadSuccess }) {
96
+ const [numPages, setNumPages] = React5.useState(0);
97
+ const [currentPage, setCurrentPage] = React5.useState(1);
98
+ const [loading, setLoading] = React5.useState(true);
99
+ const handleLoad = React5.useCallback(({ numPages: n }) => {
100
+ setNumPages(n);
101
+ setLoading(false);
102
+ onLoadSuccess == null ? void 0 : onLoadSuccess(n);
103
+ }, [onLoadSuccess]);
104
+ React5.useEffect(() => {
105
+ if (numPages <= 1) return;
106
+ const handler = (e) => {
107
+ var _a;
108
+ const tag = (_a = e.target) == null ? void 0 : _a.tagName;
109
+ if (tag === "INPUT" || tag === "TEXTAREA") return;
110
+ if (e.key === "ArrowLeft" || e.key === "ArrowUp") {
111
+ e.preventDefault();
112
+ setCurrentPage((p) => Math.max(1, p - 1));
113
+ } else if (e.key === "ArrowRight" || e.key === "ArrowDown") {
114
+ e.preventDefault();
115
+ setCurrentPage((p) => Math.min(numPages, p + 1));
116
+ }
117
+ };
118
+ window.addEventListener("keydown", handler);
119
+ return () => window.removeEventListener("keydown", handler);
120
+ }, [numPages]);
121
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", gap: "0" }, children: [
122
+ numPages > 1 && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: {
123
+ display: "flex",
124
+ alignItems: "center",
125
+ gap: "8px",
126
+ padding: "8px 14px",
127
+ background: "white",
128
+ width: "100%",
129
+ justifyContent: "center",
130
+ borderBottom: `1px solid ${BORDER}`
131
+ }, children: [
132
+ /* @__PURE__ */ jsxRuntime.jsx(
133
+ "button",
134
+ {
135
+ onClick: () => setCurrentPage((p) => Math.max(1, p - 1)),
136
+ disabled: currentPage === 1,
137
+ style: {
138
+ border: `1px solid ${BORDER}`,
139
+ borderRadius: "4px",
140
+ padding: "2px 8px",
141
+ background: "white",
142
+ cursor: "pointer",
143
+ fontSize: "12px",
144
+ color: currentPage === 1 ? BORDER : MUTED
145
+ },
146
+ children: "\u2190"
147
+ }
148
+ ),
149
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { fontSize: "12px", color: MUTED }, children: [
150
+ currentPage,
151
+ " / ",
152
+ numPages
153
+ ] }),
154
+ /* @__PURE__ */ jsxRuntime.jsx(
155
+ "button",
156
+ {
157
+ onClick: () => setCurrentPage((p) => Math.min(numPages, p + 1)),
158
+ disabled: currentPage === numPages,
159
+ style: {
160
+ border: `1px solid ${BORDER}`,
161
+ borderRadius: "4px",
162
+ padding: "2px 8px",
163
+ background: "white",
164
+ cursor: "pointer",
165
+ fontSize: "12px",
166
+ color: currentPage === numPages ? BORDER : MUTED
167
+ },
168
+ children: "\u2192"
169
+ }
170
+ )
171
+ ] }),
172
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { overflow: "auto", width: "100%", display: "flex", justifyContent: "center", padding: "16px" }, children: [
173
+ loading && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", height: "200px", color: MUTED, fontSize: "13px" }, children: "Loading PDF..." }),
174
+ /* @__PURE__ */ jsxRuntime.jsx(reactPdf.Document, { file: base64 ? `data:application/pdf;base64,${base64}` : url, onLoadSuccess: handleLoad, loading: "", children: /* @__PURE__ */ jsxRuntime.jsx(
175
+ reactPdf.Page,
176
+ {
177
+ pageNumber: currentPage,
178
+ width: 540,
179
+ renderTextLayer: true,
180
+ renderAnnotationLayer: true
181
+ }
182
+ ) })
183
+ ] })
184
+ ] });
185
+ }
186
+ var init_PdfViewer = __esm({
187
+ "src/composites/document-preview/PdfViewer.tsx"() {
188
+ "use client";
189
+ init_theme();
190
+ reactPdf.pdfjs.GlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@${reactPdf.pdfjs.version}/build/pdf.worker.min.mjs`;
191
+ }
192
+ });
193
+
194
+ // src/composites/document-preview/ExcelViewer.tsx
195
+ var ExcelViewer_exports = {};
196
+ __export(ExcelViewer_exports, {
197
+ ExcelViewer: () => ExcelViewer
198
+ });
199
+ function ExcelViewer({ url, base64, onLoadSuccess }) {
200
+ const [sheetNames, setSheetNames] = React5.useState([]);
201
+ const [activeSheet, setActiveSheet] = React5.useState(0);
202
+ const [data, setData] = React5.useState([]);
203
+ const [loading, setLoading] = React5.useState(true);
204
+ const [error, setError] = React5.useState(null);
205
+ const wbRef = React5.useRef(null);
206
+ React5.useEffect(() => {
207
+ let cancelled = false;
208
+ setLoading(true);
209
+ setError(null);
210
+ const loadFromBuffer = (buf) => {
211
+ if (cancelled) return;
212
+ const wb = XLSX__namespace.read(buf, { type: "array" });
213
+ wbRef.current = wb;
214
+ setSheetNames(wb.SheetNames);
215
+ onLoadSuccess == null ? void 0 : onLoadSuccess(wb.SheetNames);
216
+ const rows = XLSX__namespace.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]], { header: 1 });
217
+ setData(rows);
218
+ setActiveSheet(0);
219
+ setLoading(false);
220
+ };
221
+ if (base64) {
222
+ try {
223
+ const binary = atob(base64);
224
+ const bytes = new Uint8Array(binary.length);
225
+ for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);
226
+ loadFromBuffer(bytes.buffer);
227
+ } catch (e) {
228
+ if (!cancelled) {
229
+ setError(e instanceof Error ? e.message : "Failed to decode base64");
230
+ setLoading(false);
231
+ }
232
+ }
233
+ return () => {
234
+ cancelled = true;
235
+ };
236
+ }
237
+ if (!url) {
238
+ setError("No file source provided");
239
+ setLoading(false);
240
+ return () => {
241
+ cancelled = true;
242
+ };
243
+ }
244
+ fetch(url).then((r) => {
245
+ if (!r.ok) throw new Error(`Failed to fetch: ${r.status}`);
246
+ return r.arrayBuffer();
247
+ }).then((buf) => {
248
+ loadFromBuffer(buf);
249
+ }).catch((e) => {
250
+ if (cancelled) return;
251
+ setError(e.message);
252
+ setLoading(false);
253
+ });
254
+ return () => {
255
+ cancelled = true;
256
+ };
257
+ }, [url, base64, onLoadSuccess]);
258
+ const switchSheet = (idx) => {
259
+ if (!wbRef.current) return;
260
+ setActiveSheet(idx);
261
+ const rows = XLSX__namespace.utils.sheet_to_json(wbRef.current.Sheets[wbRef.current.SheetNames[idx]], { header: 1 });
262
+ setData(rows);
263
+ };
264
+ React5.useEffect(() => {
265
+ if (sheetNames.length <= 1) return;
266
+ const handler = (e) => {
267
+ var _a;
268
+ const tag = (_a = e.target) == null ? void 0 : _a.tagName;
269
+ if (tag === "INPUT" || tag === "TEXTAREA") return;
270
+ if (e.key === "ArrowLeft") {
271
+ e.preventDefault();
272
+ setActiveSheet((prev) => {
273
+ const next = Math.max(0, prev - 1);
274
+ if (next !== prev && wbRef.current) {
275
+ const rows = XLSX__namespace.utils.sheet_to_json(wbRef.current.Sheets[wbRef.current.SheetNames[next]], { header: 1 });
276
+ setData(rows);
277
+ }
278
+ return next;
279
+ });
280
+ } else if (e.key === "ArrowRight") {
281
+ e.preventDefault();
282
+ setActiveSheet((prev) => {
283
+ const next = Math.min(sheetNames.length - 1, prev + 1);
284
+ if (next !== prev && wbRef.current) {
285
+ const rows = XLSX__namespace.utils.sheet_to_json(wbRef.current.Sheets[wbRef.current.SheetNames[next]], { header: 1 });
286
+ setData(rows);
287
+ }
288
+ return next;
289
+ });
290
+ }
291
+ };
292
+ window.addEventListener("keydown", handler);
293
+ return () => window.removeEventListener("keydown", handler);
294
+ }, [sheetNames.length]);
295
+ if (loading) {
296
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", height: "200px", color: MUTED, fontSize: "13px" }, children: "Loading spreadsheet..." });
297
+ }
298
+ if (error) {
299
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", height: "120px", color: "#dc2626", fontSize: "13px" }, children: error });
300
+ }
301
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column" }, children: [
302
+ sheetNames.length > 1 && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", gap: "0", overflowX: "auto", borderBottom: `1px solid ${BORDER}` }, children: sheetNames.map((name, i) => /* @__PURE__ */ jsxRuntime.jsx(
303
+ "button",
304
+ {
305
+ onClick: () => switchSheet(i),
306
+ style: {
307
+ padding: "6px 14px",
308
+ border: "none",
309
+ cursor: "pointer",
310
+ fontSize: "12px",
311
+ fontWeight: 600,
312
+ background: i === activeSheet ? "white" : PAPER,
313
+ color: i === activeSheet ? TERRACOTTA : MUTED,
314
+ borderBottom: i === activeSheet ? `2px solid ${TERRACOTTA}` : "2px solid transparent",
315
+ whiteSpace: "nowrap"
316
+ },
317
+ children: name
318
+ },
319
+ name
320
+ )) }),
321
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { overflow: "auto", maxHeight: "500px" }, children: /* @__PURE__ */ jsxRuntime.jsx("table", { style: { width: "100%", borderCollapse: "collapse", fontSize: "12px" }, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: data.map((row, ri) => /* @__PURE__ */ jsxRuntime.jsx("tr", { children: row.map((cell, ci) => {
322
+ var _a, _b;
323
+ const isHeader = ri === 0 || ri === 2 && ((_a = data[0]) == null ? void 0 : _a[0]) && !((_b = data[1]) == null ? void 0 : _b[0]);
324
+ const Tag = isHeader ? "th" : "td";
325
+ return /* @__PURE__ */ jsxRuntime.jsx(
326
+ Tag,
327
+ {
328
+ style: {
329
+ padding: "6px 10px",
330
+ borderBottom: `1px solid ${BORDER}`,
331
+ textAlign: typeof cell === "number" ? "right" : "left",
332
+ fontWeight: isHeader ? 600 : 400,
333
+ color: isHeader ? "var(--foreground)" : MUTED,
334
+ background: isHeader ? PAPER : "white",
335
+ whiteSpace: "nowrap",
336
+ fontFamily: typeof cell === "number" ? "var(--font-mono, monospace)" : "var(--font-sans)"
337
+ },
338
+ children: cell != null ? String(cell) : ""
339
+ },
340
+ ci
341
+ );
342
+ }) }, ri)) }) }) })
343
+ ] });
344
+ }
345
+ var TERRACOTTA;
346
+ var init_ExcelViewer = __esm({
347
+ "src/composites/document-preview/ExcelViewer.tsx"() {
348
+ "use client";
349
+ init_theme();
350
+ TERRACOTTA = ACCENT;
351
+ }
352
+ });
353
+
354
+ // src/shared/ColumnSettingsPanel.tsx
355
+ init_theme();
356
+ function ColumnSettingsPanel({ columns, hidden, onToggle, onShowAll, onHideAll }) {
357
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "6px", minWidth: "180px" }, children: [
358
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", paddingBottom: "4px", borderBottom: `1px solid ${BORDER}` }, children: [
359
+ /* @__PURE__ */ jsxRuntime.jsx(
360
+ "button",
361
+ {
362
+ onClick: onShowAll,
363
+ style: { background: "none", border: "none", cursor: "pointer", fontSize: "11px", color: ACCENT, fontWeight: 500, padding: 0 },
364
+ children: "Show all"
365
+ }
366
+ ),
367
+ /* @__PURE__ */ jsxRuntime.jsx(
368
+ "button",
369
+ {
370
+ onClick: onHideAll,
371
+ style: { background: "none", border: "none", cursor: "pointer", fontSize: "11px", color: MUTED, fontWeight: 500, padding: 0 },
372
+ children: "Hide all"
373
+ }
374
+ )
375
+ ] }),
376
+ columns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(
377
+ "label",
378
+ {
379
+ style: { display: "flex", alignItems: "center", gap: "8px", cursor: "pointer", fontSize: "12px", color: "var(--foreground)" },
380
+ children: [
381
+ /* @__PURE__ */ jsxRuntime.jsx(
382
+ "input",
383
+ {
384
+ type: "checkbox",
385
+ checked: !hidden.has(col.key),
386
+ onChange: () => onToggle(col.key),
387
+ style: { accentColor: ACCENT, width: "14px", height: "14px", margin: 0, cursor: "pointer" }
388
+ }
389
+ ),
390
+ col.label
391
+ ]
392
+ },
393
+ col.key
394
+ ))
395
+ ] });
396
+ }
397
+
398
+ // src/shared/ComponentActions.tsx
399
+ init_theme();
400
+ var DOT_COLOR = "#aaaaaa";
401
+ var DOT_HOVER = "#555555";
402
+ function ComponentActions({ children, onDownloadCSV, columnConfig, filename = "component" }) {
403
+ const [open, setOpen] = React5.useState(false);
404
+ const [view, setView] = React5.useState("main");
405
+ const contentRef = React5.useRef(null);
406
+ const menuRef = React5.useRef(null);
407
+ const btnRef = React5.useRef(null);
408
+ const close = React5.useCallback(() => {
409
+ setOpen(false);
410
+ setView("main");
411
+ }, []);
412
+ React5.useEffect(() => {
413
+ if (!open) return;
414
+ const handler = (e) => {
415
+ var _a, _b;
416
+ if ((_a = menuRef.current) == null ? void 0 : _a.contains(e.target)) return;
417
+ if ((_b = btnRef.current) == null ? void 0 : _b.contains(e.target)) return;
418
+ close();
419
+ };
420
+ document.addEventListener("mousedown", handler);
421
+ return () => document.removeEventListener("mousedown", handler);
422
+ }, [open, close]);
423
+ const handleDownloadPNG = React5.useCallback(async () => {
424
+ if (!contentRef.current) return;
425
+ try {
426
+ const url = await htmlToImage.toPng(contentRef.current, { backgroundColor: "white", pixelRatio: 2 });
427
+ const a = document.createElement("a");
428
+ a.href = url;
429
+ a.download = `${filename}.png`;
430
+ a.click();
431
+ } catch (e) {
432
+ }
433
+ close();
434
+ }, [filename, close]);
435
+ const handleCSV = React5.useCallback(() => {
436
+ onDownloadCSV == null ? void 0 : onDownloadCSV();
437
+ close();
438
+ }, [onDownloadCSV, close]);
439
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { width: "100%", display: "flex", flexDirection: "column" }, children: [
440
+ /* @__PURE__ */ jsxRuntime.jsx("div", { ref: contentRef, style: { width: "100%" }, children }),
441
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "flex-end", marginTop: "4px", position: "relative", zIndex: 10, flexShrink: 0 }, children: [
442
+ /* @__PURE__ */ jsxRuntime.jsx(
443
+ "button",
444
+ {
445
+ ref: btnRef,
446
+ onClick: () => {
447
+ setOpen((o) => !o);
448
+ setView("main");
449
+ },
450
+ "aria-label": "Component actions",
451
+ style: {
452
+ background: "none",
453
+ border: "none",
454
+ cursor: "pointer",
455
+ padding: "4px 8px",
456
+ display: "flex",
457
+ gap: "3px",
458
+ alignItems: "center",
459
+ borderRadius: "6px",
460
+ transition: "background 0.15s"
461
+ },
462
+ onMouseEnter: (e) => {
463
+ e.currentTarget.style.background = "#f2f2f2";
464
+ e.currentTarget.querySelectorAll("circle").forEach((c) => c.style.fill = DOT_HOVER);
465
+ },
466
+ onMouseLeave: (e) => {
467
+ e.currentTarget.style.background = "none";
468
+ e.currentTarget.querySelectorAll("circle").forEach((c) => c.style.fill = DOT_COLOR);
469
+ },
470
+ children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "20", height: "6", viewBox: "0 0 20 6", children: [
471
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "3", cy: "3", r: "2", style: { fill: DOT_COLOR, transition: "fill 0.15s" } }),
472
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "10", cy: "3", r: "2", style: { fill: DOT_COLOR, transition: "fill 0.15s" } }),
473
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "17", cy: "3", r: "2", style: { fill: DOT_COLOR, transition: "fill 0.15s" } })
474
+ ] })
475
+ }
476
+ ),
477
+ open && /* @__PURE__ */ jsxRuntime.jsx(
478
+ "div",
479
+ {
480
+ ref: menuRef,
481
+ style: {
482
+ position: "absolute",
483
+ bottom: "100%",
484
+ right: 0,
485
+ marginBottom: "4px",
486
+ background: "white",
487
+ border: `1px solid ${BORDER}`,
488
+ borderRadius: "0.75rem",
489
+ boxShadow: "0 4px 12px rgba(0,0,0,0.06)",
490
+ zIndex: 50,
491
+ padding: view === "columns" ? "10px" : "4px",
492
+ minWidth: view === "columns" ? "200px" : "160px"
493
+ },
494
+ children: view === "main" ? /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column" }, children: [
495
+ columnConfig && /* @__PURE__ */ jsxRuntime.jsx(MenuButton, { label: "Customize columns", onClick: () => setView("columns") }),
496
+ onDownloadCSV && /* @__PURE__ */ jsxRuntime.jsx(MenuButton, { label: "Download CSV", onClick: handleCSV }),
497
+ /* @__PURE__ */ jsxRuntime.jsx(MenuButton, { label: "Download PNG", onClick: handleDownloadPNG })
498
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
499
+ /* @__PURE__ */ jsxRuntime.jsx(
500
+ "button",
501
+ {
502
+ onClick: () => setView("main"),
503
+ style: { background: "none", border: "none", cursor: "pointer", fontSize: "11px", color: MUTED, marginBottom: "6px", padding: 0 },
504
+ children: "\u2190 Back"
505
+ }
506
+ ),
507
+ /* @__PURE__ */ jsxRuntime.jsx(
508
+ ColumnSettingsPanel,
509
+ {
510
+ columns: columnConfig.columns,
511
+ hidden: columnConfig.hidden,
512
+ onToggle: columnConfig.onToggle,
513
+ onShowAll: columnConfig.onShowAll,
514
+ onHideAll: columnConfig.onHideAll
515
+ }
516
+ )
517
+ ] })
518
+ }
519
+ )
520
+ ] })
521
+ ] });
522
+ }
523
+ function MenuButton({ label, onClick }) {
524
+ return /* @__PURE__ */ jsxRuntime.jsx(
525
+ "button",
526
+ {
527
+ onClick,
528
+ style: {
529
+ background: "none",
530
+ border: "none",
531
+ cursor: "pointer",
532
+ padding: "8px 12px",
533
+ fontSize: "12.5px",
534
+ color: "var(--foreground)",
535
+ textAlign: "left",
536
+ borderRadius: "8px",
537
+ transition: "background 0.15s",
538
+ whiteSpace: "nowrap"
539
+ },
540
+ onMouseEnter: (e) => e.currentTarget.style.background = "#f2f2f2",
541
+ onMouseLeave: (e) => e.currentTarget.style.background = "none",
542
+ children: label
543
+ }
544
+ );
545
+ }
546
+
547
+ // src/shared/Markdown.tsx
548
+ init_theme();
549
+ function renderInline(text) {
550
+ const parts = [];
551
+ let rest = text;
552
+ let k = 0;
553
+ const nextIndex = (needle) => {
554
+ const idx = rest.indexOf(needle);
555
+ return idx >= 0 ? idx : Infinity;
556
+ };
557
+ while (rest.length > 0) {
558
+ const boldIdx = nextIndex("**");
559
+ const codeIdx = nextIndex("`");
560
+ const linkIdx = nextIndex("[");
561
+ let italicIdx = rest.indexOf("*");
562
+ if (italicIdx === boldIdx) italicIdx = rest.indexOf("*", italicIdx + 2);
563
+ const italicIdxN = italicIdx >= 0 ? italicIdx : Infinity;
564
+ const nextSpecial = Math.min(boldIdx, codeIdx, linkIdx, italicIdxN);
565
+ if (nextSpecial === Infinity) {
566
+ parts.push(/* @__PURE__ */ jsxRuntime.jsx("span", { children: rest }, k++));
567
+ break;
568
+ }
569
+ if (nextSpecial > 0) {
570
+ parts.push(/* @__PURE__ */ jsxRuntime.jsx("span", { children: rest.slice(0, nextSpecial) }, k++));
571
+ rest = rest.slice(nextSpecial);
572
+ }
573
+ if (rest.startsWith("**")) {
574
+ const end = rest.indexOf("**", 2);
575
+ if (end > 2) {
576
+ parts.push(
577
+ /* @__PURE__ */ jsxRuntime.jsx("strong", { style: { fontWeight: 600, color: "var(--foreground)" }, children: renderInline(rest.slice(2, end)) }, k++)
578
+ );
579
+ rest = rest.slice(end + 2);
580
+ continue;
581
+ }
582
+ }
583
+ if (rest.startsWith("`")) {
584
+ const end = rest.indexOf("`", 1);
585
+ if (end > 1) {
586
+ parts.push(
587
+ /* @__PURE__ */ jsxRuntime.jsx(
588
+ "code",
589
+ {
590
+ style: {
591
+ fontSize: "0.9em",
592
+ padding: "1px 5px",
593
+ borderRadius: "4px",
594
+ background: "#f0f0f0",
595
+ fontFamily: "monospace",
596
+ color: ACCENT
597
+ },
598
+ children: rest.slice(1, end)
599
+ },
600
+ k++
601
+ )
602
+ );
603
+ rest = rest.slice(end + 1);
604
+ continue;
605
+ }
606
+ }
607
+ if (rest.startsWith("[")) {
608
+ const closeText = rest.indexOf("]");
609
+ if (closeText > 0 && rest[closeText + 1] === "(") {
610
+ const closeUrl = rest.indexOf(")", closeText + 2);
611
+ if (closeUrl > closeText + 1) {
612
+ const label = rest.slice(1, closeText);
613
+ const url = rest.slice(closeText + 2, closeUrl);
614
+ parts.push(
615
+ /* @__PURE__ */ jsxRuntime.jsx(
616
+ "a",
617
+ {
618
+ href: url,
619
+ target: "_blank",
620
+ rel: "noopener noreferrer",
621
+ style: { color: SECONDARY, textDecoration: "none" },
622
+ children: renderInline(label)
623
+ },
624
+ k++
625
+ )
626
+ );
627
+ rest = rest.slice(closeUrl + 1);
628
+ continue;
629
+ }
630
+ }
631
+ }
632
+ if (rest.startsWith("*")) {
633
+ const end = rest.indexOf("*", 1);
634
+ if (end > 1) {
635
+ parts.push(
636
+ /* @__PURE__ */ jsxRuntime.jsx("em", { style: { fontStyle: "italic" }, children: renderInline(rest.slice(1, end)) }, k++)
637
+ );
638
+ rest = rest.slice(end + 1);
639
+ continue;
640
+ }
641
+ }
642
+ parts.push(/* @__PURE__ */ jsxRuntime.jsx("span", { children: rest[0] }, k++));
643
+ rest = rest.slice(1);
644
+ }
645
+ return parts;
646
+ }
647
+ function MarkdownBlock({ content }) {
648
+ var _a;
649
+ const lines = content.split("\n");
650
+ const elements = [];
651
+ let key = 0;
652
+ let i = 0;
653
+ while (i < lines.length) {
654
+ const trimmed = lines[i].trim();
655
+ if (!trimmed) {
656
+ i++;
657
+ continue;
658
+ }
659
+ const headingMatch = trimmed.match(/^(#{1,4})\s+(.+)/);
660
+ if (headingMatch) {
661
+ const level = headingMatch[1].length;
662
+ const cfg = {
663
+ 1: { size: "15px", weight: 600, serif: true, mt: "0" },
664
+ 2: { size: "14px", weight: 600, serif: true, mt: "14px" },
665
+ 3: { size: "12px", weight: 600, serif: false, mt: "12px" },
666
+ 4: { size: "11px", weight: 600, serif: false, mt: "10px" }
667
+ };
668
+ const s = (_a = cfg[level]) != null ? _a : cfg[3];
669
+ elements.push(
670
+ /* @__PURE__ */ jsxRuntime.jsx(
671
+ "div",
672
+ {
673
+ style: {
674
+ fontSize: s.size,
675
+ fontWeight: s.weight,
676
+ fontFamily: s.serif ? "var(--font-serif)" : "var(--font-sans)",
677
+ color: "var(--foreground)",
678
+ letterSpacing: s.serif ? "-0.005em" : "0",
679
+ marginTop: s.mt,
680
+ marginBottom: "6px",
681
+ lineHeight: 1.3
682
+ },
683
+ children: renderInline(headingMatch[2])
684
+ },
685
+ key++
686
+ )
687
+ );
688
+ i++;
689
+ continue;
690
+ }
691
+ if (trimmed.startsWith("- ") || trimmed.startsWith("* ")) {
692
+ const items = [];
693
+ while (i < lines.length) {
694
+ const li = lines[i].trim();
695
+ if (!li.startsWith("- ") && !li.startsWith("* ")) break;
696
+ items.push(li.slice(2));
697
+ i++;
698
+ }
699
+ elements.push(
700
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { margin: "4px 0 8px 0", paddingLeft: "4px" }, children: items.map((text, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
701
+ "div",
702
+ {
703
+ style: {
704
+ display: "flex",
705
+ gap: "8px",
706
+ marginBottom: "5px",
707
+ alignItems: "baseline"
708
+ },
709
+ children: [
710
+ /* @__PURE__ */ jsxRuntime.jsx(
711
+ "span",
712
+ {
713
+ style: {
714
+ width: "4px",
715
+ height: "4px",
716
+ borderRadius: "9999px",
717
+ background: ACCENT,
718
+ opacity: 0.5,
719
+ flexShrink: 0,
720
+ marginTop: "7px"
721
+ }
722
+ }
723
+ ),
724
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { flex: 1 }, children: renderInline(text) })
725
+ ]
726
+ },
727
+ idx
728
+ )) }, key++)
729
+ );
730
+ continue;
731
+ }
732
+ const numMatch = trimmed.match(/^(\d+)\.\s+(.+)/);
733
+ if (numMatch) {
734
+ const items = [];
735
+ while (i < lines.length) {
736
+ const li = lines[i].trim();
737
+ const m = li.match(/^(\d+)\.\s+(.+)/);
738
+ if (!m) break;
739
+ items.push({ num: m[1], text: m[2] });
740
+ i++;
741
+ }
742
+ elements.push(
743
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { margin: "4px 0 8px 0", paddingLeft: "4px" }, children: items.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
744
+ "div",
745
+ {
746
+ style: {
747
+ display: "flex",
748
+ gap: "8px",
749
+ marginBottom: "6px",
750
+ alignItems: "baseline"
751
+ },
752
+ children: [
753
+ /* @__PURE__ */ jsxRuntime.jsx(
754
+ "span",
755
+ {
756
+ style: {
757
+ fontSize: "10px",
758
+ fontWeight: 700,
759
+ color: ACCENT,
760
+ opacity: 0.7,
761
+ minWidth: "14px",
762
+ textAlign: "right",
763
+ fontVariantNumeric: "tabular-nums",
764
+ flexShrink: 0
765
+ },
766
+ children: item.num
767
+ }
768
+ ),
769
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { flex: 1 }, children: renderInline(item.text) })
770
+ ]
771
+ },
772
+ idx
773
+ )) }, key++)
774
+ );
775
+ continue;
776
+ }
777
+ elements.push(
778
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { margin: "0 0 8px 0", lineHeight: 1.65 }, children: renderInline(trimmed) }, key++)
779
+ );
780
+ i++;
781
+ }
782
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: elements });
783
+ }
784
+ function Markdown({
785
+ content,
786
+ inline = false
787
+ }) {
788
+ if (!content) return null;
789
+ if (inline) {
790
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { whiteSpace: "pre-wrap" }, children: renderInline(content) });
791
+ }
792
+ return /* @__PURE__ */ jsxRuntime.jsx(MarkdownBlock, { content });
793
+ }
794
+ function useFullscreen(ref) {
795
+ const [isFullscreen, setIsFullscreen] = React5.useState(false);
796
+ React5.useEffect(() => {
797
+ const handler = () => {
798
+ setIsFullscreen(!!document.fullscreenElement);
799
+ };
800
+ document.addEventListener("fullscreenchange", handler);
801
+ return () => document.removeEventListener("fullscreenchange", handler);
802
+ }, []);
803
+ const enter = React5.useCallback(() => {
804
+ var _a, _b;
805
+ (_b = (_a = ref.current) == null ? void 0 : _a.requestFullscreen) == null ? void 0 : _b.call(_a);
806
+ }, [ref]);
807
+ const exit = React5.useCallback(() => {
808
+ var _a;
809
+ if (document.fullscreenElement) (_a = document.exitFullscreen) == null ? void 0 : _a.call(document);
810
+ }, []);
811
+ const toggle = React5.useCallback(() => {
812
+ if (isFullscreen) exit();
813
+ else enter();
814
+ }, [isFullscreen, enter, exit]);
815
+ return { isFullscreen, enter, exit, toggle };
816
+ }
817
+
818
+ // src/composites/document-preview/resolver.tsx
819
+ init_theme();
820
+
821
+ // src/shared/ThemeContext.tsx
822
+ init_theme();
823
+ var DEFAULT_TOKENS = {
824
+ BORDER,
825
+ MUTED,
826
+ PAPER,
827
+ ACCENT,
828
+ ACCENT_SOFT,
829
+ SECONDARY,
830
+ CHART_PALETTE: [...CHART_PALETTE]
831
+ };
832
+ var GenUIThemeContext = React5.createContext(DEFAULT_TOKENS);
833
+ function useTheme() {
834
+ return React5.useContext(GenUIThemeContext);
835
+ }
836
+ var PdfViewer2 = React5__default.default.lazy(
837
+ () => Promise.resolve().then(() => (init_PdfViewer(), PdfViewer_exports)).then((m) => ({ default: m.PdfViewer }))
838
+ );
839
+ var ExcelViewer2 = React5__default.default.lazy(
840
+ () => Promise.resolve().then(() => (init_ExcelViewer(), ExcelViewer_exports)).then((m) => ({ default: m.ExcelViewer }))
841
+ );
842
+ var highlightColors = {
843
+ yellow: { bg: "rgba(234,179,8,0.15)", border: "#eab308" },
844
+ red: { bg: "rgba(220,38,38,0.12)", border: "#dc2626" },
845
+ green: { bg: "rgba(21,128,61,0.12)", border: "#15803d" },
846
+ blue: { bg: "rgba(29,78,216,0.12)", border: "#1d4ed8" }
847
+ };
848
+ function sanitizeFilename(name) {
849
+ var _a;
850
+ return (_a = name.replace(/\.\.\//g, "").replace(/\.\.\\/g, "").split(/[/\\]/).pop()) != null ? _a : name;
851
+ }
852
+ function IconButton({ title, onClick, href, download, children }) {
853
+ const style = {
854
+ background: "none",
855
+ borderTop: `1px solid ${BORDER}`,
856
+ borderLeft: `1px solid ${BORDER}`,
857
+ borderRight: `1px solid ${BORDER}`,
858
+ borderBottom: `1px solid ${BORDER}`,
859
+ borderRadius: "4px",
860
+ cursor: "pointer",
861
+ padding: "3px 7px",
862
+ fontSize: "13px",
863
+ color: MUTED,
864
+ lineHeight: 1,
865
+ display: "flex",
866
+ alignItems: "center",
867
+ justifyContent: "center",
868
+ transition: "background 0.15s",
869
+ textDecoration: "none"
870
+ };
871
+ const handlers = {
872
+ onMouseEnter: (e) => e.currentTarget.style.background = PAPER,
873
+ onMouseLeave: (e) => e.currentTarget.style.background = "none"
874
+ };
875
+ if (href) {
876
+ return /* @__PURE__ */ jsxRuntime.jsx("a", __spreadProps(__spreadValues({ href, download, title, style }, handlers), { children }));
877
+ }
878
+ return /* @__PURE__ */ jsxRuntime.jsx("button", __spreadProps(__spreadValues({ onClick, title, style }, handlers), { children }));
879
+ }
880
+ function DownloadIcon() {
881
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
882
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7 2v7.5M4 7l3 3 3-3" }),
883
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2.5 11.5h9" })
884
+ ] });
885
+ }
886
+ function DocumentPreviewResolver(p) {
887
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;
888
+ const { BORDER: BORDER2, MUTED: MUTED2, PAPER: PAPER2, ACCENT: ACCENT2 } = useTheme();
889
+ const [currentPage, setCurrentPage] = React5.useState(0);
890
+ const containerRef = React5.useRef(null);
891
+ const { isFullscreen, toggle } = useFullscreen(containerRef);
892
+ const hasRealFile = !!(((_a = p.source) == null ? void 0 : _a.url) || ((_b = p.source) == null ? void 0 : _b.base64));
893
+ const isPdf = p.documentType === "pdf";
894
+ const isExcel = p.documentType === "excel";
895
+ const totalPages = ((_c = p.pages) != null ? _c : []).length;
896
+ const page = p.pages[currentPage];
897
+ const pageHighlights = ((_d = p.highlights) != null ? _d : []).filter((h) => h.pageIndex === currentPage);
898
+ const handlePdfLoad = React5.useCallback(() => {
899
+ }, []);
900
+ const handleExcelLoad = React5.useCallback(() => {
901
+ }, []);
902
+ return /* @__PURE__ */ jsxRuntime.jsx(ComponentActions, { filename: (_e = p.title) != null ? _e : "document-preview", children: /* @__PURE__ */ jsxRuntime.jsxs(
903
+ "div",
904
+ {
905
+ ref: containerRef,
906
+ style: {
907
+ width: "100%",
908
+ display: "flex",
909
+ flexDirection: "column",
910
+ gap: "0",
911
+ background: isFullscreen ? "white" : void 0
912
+ },
913
+ children: [
914
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { style: {
915
+ display: "flex",
916
+ alignItems: "center",
917
+ gap: "10px",
918
+ padding: "8px 14px",
919
+ background: PAPER2,
920
+ borderRadius: isFullscreen ? "0" : "0.75rem 0.75rem 0 0",
921
+ borderTop: `1px solid ${BORDER2}`,
922
+ borderLeft: `1px solid ${BORDER2}`,
923
+ borderRight: `1px solid ${BORDER2}`,
924
+ borderBottom: "none",
925
+ flexWrap: "wrap",
926
+ overflow: "hidden"
927
+ }, children: [
928
+ p.title && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontFamily: "var(--font-serif)", fontSize: "14px", fontWeight: 600, color: "var(--foreground)" }, children: p.title }),
929
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: "12px", color: MUTED2, fontFamily: "monospace" }, children: sanitizeFilename((_g = (_f = p.source) == null ? void 0 : _f.filename) != null ? _g : "file") }),
930
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: {
931
+ fontSize: "10px",
932
+ fontWeight: 600,
933
+ padding: "2px 6px",
934
+ borderRadius: "4px",
935
+ background: isExcel ? "#dcfce7" : "#eff6ff",
936
+ color: isExcel ? "#15803d" : "#1d4ed8",
937
+ textTransform: "uppercase"
938
+ }, children: p.documentType }),
939
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { marginLeft: "auto", display: "flex", alignItems: "center", gap: "10px" }, children: [
940
+ p.metadata && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", gap: "10px", fontSize: "11px", color: MUTED2 }, children: [
941
+ p.metadata.fileSize && /* @__PURE__ */ jsxRuntime.jsx("span", { children: p.metadata.fileSize }),
942
+ p.metadata.lastModified && /* @__PURE__ */ jsxRuntime.jsx("span", { children: p.metadata.lastModified }),
943
+ p.metadata.pageCount && /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
944
+ p.metadata.pageCount,
945
+ " pages"
946
+ ] })
947
+ ] }),
948
+ /* @__PURE__ */ jsxRuntime.jsx(
949
+ IconButton,
950
+ {
951
+ title: `Download ${sanitizeFilename((_i = (_h = p.source) == null ? void 0 : _h.filename) != null ? _i : "file")}`,
952
+ href: (_k = (_j = p.source) == null ? void 0 : _j.url) != null ? _k : void 0,
953
+ download: sanitizeFilename((_m = (_l = p.source) == null ? void 0 : _l.filename) != null ? _m : "file"),
954
+ onClick: !((_n = p.source) == null ? void 0 : _n.url) && ((_o = p.source) == null ? void 0 : _o.base64) ? () => {
955
+ var _a2, _b2;
956
+ const mime = isPdf ? "application/pdf" : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
957
+ const binary = atob(p.source.base64);
958
+ const bytes = new Uint8Array(binary.length);
959
+ for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);
960
+ const blob = new Blob([bytes], { type: mime });
961
+ const a = document.createElement("a");
962
+ a.href = URL.createObjectURL(blob);
963
+ a.download = sanitizeFilename((_b2 = (_a2 = p.source) == null ? void 0 : _a2.filename) != null ? _b2 : "file");
964
+ a.click();
965
+ URL.revokeObjectURL(a.href);
966
+ } : void 0,
967
+ children: /* @__PURE__ */ jsxRuntime.jsx(DownloadIcon, {})
968
+ }
969
+ ),
970
+ /* @__PURE__ */ jsxRuntime.jsx(IconButton, { title: isFullscreen ? "Exit fullscreen" : "Fullscreen", onClick: toggle, children: isFullscreen ? "\u2913" : "\u26F6" })
971
+ ] })
972
+ ] }),
973
+ !hasRealFile && isExcel ? /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", gap: "0", borderLeft: `1px solid ${BORDER2}`, borderRight: `1px solid ${BORDER2}`, overflowX: "auto" }, children: ((_p = p.pages) != null ? _p : []).map((pg, i) => /* @__PURE__ */ jsxRuntime.jsx(
974
+ "button",
975
+ {
976
+ onClick: () => setCurrentPage(i),
977
+ style: {
978
+ padding: "6px 14px",
979
+ borderTop: "none",
980
+ borderLeft: "none",
981
+ borderRight: "none",
982
+ cursor: "pointer",
983
+ fontSize: "12px",
984
+ fontWeight: 600,
985
+ background: i === currentPage ? "white" : PAPER2,
986
+ color: i === currentPage ? ACCENT2 : MUTED2,
987
+ borderBottom: i === currentPage ? `2px solid ${ACCENT2}` : `1px solid ${BORDER2}`,
988
+ whiteSpace: "nowrap"
989
+ },
990
+ children: pg.label
991
+ },
992
+ i
993
+ )) }) : !hasRealFile && totalPages > 1 && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", padding: "6px 14px", borderLeft: `1px solid ${BORDER2}`, borderRight: `1px solid ${BORDER2}`, background: "white" }, children: [
994
+ /* @__PURE__ */ jsxRuntime.jsx("button", { onClick: () => setCurrentPage(Math.max(0, currentPage - 1)), disabled: currentPage === 0, style: { border: `1px solid ${BORDER2}`, borderRadius: "4px", padding: "2px 8px", background: "white", cursor: "pointer", fontSize: "12px", color: currentPage === 0 ? BORDER2 : MUTED2 }, children: "\u2190" }),
995
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { fontSize: "12px", color: MUTED2 }, children: [
996
+ currentPage + 1,
997
+ " / ",
998
+ totalPages
999
+ ] }),
1000
+ /* @__PURE__ */ jsxRuntime.jsx("button", { onClick: () => setCurrentPage(Math.min(totalPages - 1, currentPage + 1)), disabled: currentPage === totalPages - 1, style: { border: `1px solid ${BORDER2}`, borderRadius: "4px", padding: "2px 8px", background: "white", cursor: "pointer", fontSize: "12px", color: currentPage === totalPages - 1 ? BORDER2 : MUTED2 }, children: "\u2192" })
1001
+ ] }),
1002
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { style: {
1003
+ minHeight: "200px",
1004
+ borderRadius: isFullscreen ? "0" : "0 0 0.75rem 0.75rem",
1005
+ border: `1px solid ${BORDER2}`,
1006
+ background: "white",
1007
+ boxShadow: isFullscreen ? "none" : "0 1px 2px rgba(0,0,0,0.03), 0 4px 12px rgba(0,0,0,0.04)",
1008
+ overflow: "hidden",
1009
+ flex: isFullscreen ? 1 : void 0,
1010
+ display: "flex",
1011
+ flexDirection: "column"
1012
+ }, children: [
1013
+ hasRealFile && isPdf ? /* @__PURE__ */ jsxRuntime.jsx(React5.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(PdfViewer2, { url: (_q = p.source) == null ? void 0 : _q.url, base64: (_r = p.source) == null ? void 0 : _r.base64, onLoadSuccess: handlePdfLoad }) }) : hasRealFile && isExcel ? /* @__PURE__ */ jsxRuntime.jsx(React5.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(ExcelViewer2, { url: (_s = p.source) == null ? void 0 : _s.url, base64: (_t = p.source) == null ? void 0 : _t.base64, onLoadSuccess: handleExcelLoad }) }) : (page == null ? void 0 : page.imageUrl) ? /* @__PURE__ */ jsxRuntime.jsx("div", { style: { padding: "20px" }, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: page.imageUrl, alt: page.label, style: { maxWidth: "100%", borderRadius: "4px" } }) }) : (page == null ? void 0 : page.content) ? /* @__PURE__ */ jsxRuntime.jsx("div", { style: { fontFamily: "var(--font-sans, system-ui)", fontSize: "13px", color: "var(--foreground)", lineHeight: 1.6, margin: 0, padding: "20px" }, children: /* @__PURE__ */ jsxRuntime.jsx(Markdown, { content: page.content }) }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", height: "120px", color: MUTED2, fontSize: "13px" }, children: [
1014
+ "No content available for ",
1015
+ (_u = page == null ? void 0 : page.label) != null ? _u : "this page"
1016
+ ] }),
1017
+ pageHighlights.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { padding: "0 20px 20px", display: "flex", flexDirection: "column", gap: "6px" }, children: pageHighlights.map((h, i) => {
1018
+ var _a2;
1019
+ const hc = (_a2 = highlightColors[h.color]) != null ? _a2 : highlightColors.yellow;
1020
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { padding: "6px 10px", borderRadius: "4px", background: hc.bg, borderLeft: `3px solid ${hc.border}`, fontSize: "12px" }, children: [
1021
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontWeight: 600 }, children: h.text }),
1022
+ h.note && /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { color: MUTED2, marginLeft: "8px" }, children: [
1023
+ "-- ",
1024
+ /* @__PURE__ */ jsxRuntime.jsx(Markdown, { inline: true, content: h.note })
1025
+ ] })
1026
+ ] }, i);
1027
+ }) })
1028
+ ] })
1029
+ ]
1030
+ }
1031
+ ) });
1032
+ }
1033
+
1034
+ exports.DocumentPreviewResolver = DocumentPreviewResolver;
1035
+ //# sourceMappingURL=resolver.cjs.map
1036
+ //# sourceMappingURL=resolver.cjs.map