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