@schandlergarcia/sf-web-components 1.9.28 → 1.9.30

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 (998) hide show
  1. package/.a4drules/features/command-center-dashboard-rule.md +6 -10
  2. package/.a4drules/skills/command-center-builder/SKILL.md +29 -629
  3. package/.a4drules/skills/command-center-builder/charts-visualization.md +136 -0
  4. package/.a4drules/skills/command-center-builder/completion-checklist.md +87 -0
  5. package/.a4drules/skills/command-center-builder/components-styling.md +97 -0
  6. package/.a4drules/skills/command-center-builder/data-forms-ai.md +43 -0
  7. package/.a4drules/skills/command-center-builder/getting-started.md +127 -0
  8. package/.a4drules/skills/command-center-builder/page-layout.md +143 -0
  9. package/.a4drules/skills/command-center-guide/SKILL.md +217 -0
  10. package/.a4drules/skills/command-center-project/SKILL.md +4 -4
  11. package/.a4drules/skills/component-library/SKILL.md +27 -1000
  12. package/.a4drules/skills/component-library/card-components.md +253 -0
  13. package/.a4drules/skills/component-library/charts.md +64 -0
  14. package/.a4drules/skills/component-library/chat-data.md +184 -0
  15. package/.a4drules/skills/component-library/common-mistakes.md +25 -0
  16. package/.a4drules/skills/component-library/forms-filters.md +130 -0
  17. package/.a4drules/skills/component-library/hero-ui.md +211 -0
  18. package/.a4drules/skills/component-library/ui-primitives.md +92 -0
  19. package/.a4drules/skills/component-library/when-to-use.md +39 -0
  20. package/README.md +80 -507
  21. package/dist/components/library/cards/ActionList.d.ts +10 -10
  22. package/dist/components/library/cards/ActionList.js +4 -3
  23. package/dist/components/library/cards/ActionList.js.map +1 -1
  24. package/dist/components/library/cards/ActivityCard.d.ts +5 -18
  25. package/dist/components/library/cards/ActivityCard.js +4 -3
  26. package/dist/components/library/cards/ActivityCard.js.map +1 -1
  27. package/dist/components/library/cards/BaseCard.d.ts +24 -30
  28. package/dist/components/library/cards/BaseCard.js +3 -2
  29. package/dist/components/library/cards/BaseCard.js.map +1 -1
  30. package/dist/components/library/cards/CalloutCard.d.ts +9 -11
  31. package/dist/components/library/cards/CalloutCard.js +3 -2
  32. package/dist/components/library/cards/CalloutCard.js.map +1 -1
  33. package/dist/components/library/cards/ChartCard.d.ts +17 -29
  34. package/dist/components/library/cards/ChartCard.js +14 -13
  35. package/dist/components/library/cards/ChartCard.js.map +1 -1
  36. package/dist/components/library/cards/FeedPanel.d.ts +11 -12
  37. package/dist/components/library/cards/FeedPanel.js +4 -3
  38. package/dist/components/library/cards/FeedPanel.js.map +1 -1
  39. package/dist/components/library/cards/ListCard.d.ts +20 -33
  40. package/dist/components/library/cards/ListCard.js +38 -38
  41. package/dist/components/library/cards/ListCard.js.map +1 -1
  42. package/dist/components/library/cards/MetricCard.d.ts +17 -23
  43. package/dist/components/library/cards/MetricCard.js +11 -10
  44. package/dist/components/library/cards/MetricCard.js.map +1 -1
  45. package/dist/components/library/cards/MetricsStrip.d.ts +11 -11
  46. package/dist/components/library/cards/MetricsStrip.js +1 -1
  47. package/dist/components/library/cards/MetricsStrip.js.map +1 -1
  48. package/dist/components/library/cards/SectionCard.d.ts +12 -17
  49. package/dist/components/library/cards/SectionCard.js +19 -18
  50. package/dist/components/library/cards/SectionCard.js.map +1 -1
  51. package/dist/components/library/cards/SemanticMetricCard.d.ts +20 -15
  52. package/dist/components/library/cards/SemanticMetricCardWithLoading.d.ts +7 -8
  53. package/dist/components/library/cards/SemanticTableCard.d.ts +18 -13
  54. package/dist/components/library/cards/SemanticTableCardWithLoading.d.ts +7 -8
  55. package/dist/components/library/cards/StatusCard.d.ts +15 -29
  56. package/dist/components/library/cards/StatusCard.js +17 -16
  57. package/dist/components/library/cards/StatusCard.js.map +1 -1
  58. package/dist/components/library/cards/TableCard.d.ts +23 -40
  59. package/dist/components/library/cards/TableCard.js +56 -56
  60. package/dist/components/library/cards/TableCard.js.map +1 -1
  61. package/dist/components/library/cards/WidgetCard.d.ts +11 -19
  62. package/dist/components/library/cards/WidgetCard.js +4 -4
  63. package/dist/components/library/cards/WidgetCard.js.map +1 -1
  64. package/dist/components/library/charts/D3Chart.d.ts +16 -23
  65. package/dist/components/library/charts/D3Chart.js.map +1 -1
  66. package/dist/components/library/charts/D3ChartTemplates.d.ts +3 -33
  67. package/dist/components/library/charts/D3ChartTemplates.js +7 -7
  68. package/dist/components/library/charts/D3ChartTemplates.js.map +1 -1
  69. package/dist/components/library/charts/GeoMap.d.ts +18 -81
  70. package/dist/components/library/charts/GeoMap.js +26 -28
  71. package/dist/components/library/charts/GeoMap.js.map +1 -1
  72. package/dist/components/library/chat/ChatBar.d.ts +11 -14
  73. package/dist/components/library/chat/ChatBar.js +3 -2
  74. package/dist/components/library/chat/ChatBar.js.map +1 -1
  75. package/dist/components/library/chat/ChatInput.d.ts +8 -9
  76. package/dist/components/library/chat/ChatInput.js.map +1 -1
  77. package/dist/components/library/chat/ChatMessage.d.ts +4 -18
  78. package/dist/components/library/chat/ChatMessage.js.map +1 -1
  79. package/dist/components/library/chat/ChatMessageList.d.ts +8 -11
  80. package/dist/components/library/chat/ChatMessageList.js.map +1 -1
  81. package/dist/components/library/chat/ChatPanel.d.ts +12 -16
  82. package/dist/components/library/chat/ChatPanel.js +9 -8
  83. package/dist/components/library/chat/ChatPanel.js.map +1 -1
  84. package/dist/components/library/chat/ChatSuggestions.d.ts +4 -5
  85. package/dist/components/library/chat/ChatSuggestions.js +3 -2
  86. package/dist/components/library/chat/ChatSuggestions.js.map +1 -1
  87. package/dist/components/library/chat/ChatToolCall.d.ts +3 -11
  88. package/dist/components/library/chat/ChatToolCall.js.map +1 -1
  89. package/dist/components/library/chat/ChatTypingIndicator.d.ts +3 -4
  90. package/dist/components/library/chat/ChatTypingIndicator.js +3 -2
  91. package/dist/components/library/chat/ChatTypingIndicator.js.map +1 -1
  92. package/dist/components/library/chat/ChatWelcome.d.ts +7 -9
  93. package/dist/components/library/chat/ChatWelcome.js +7 -6
  94. package/dist/components/library/chat/ChatWelcome.js.map +1 -1
  95. package/dist/components/library/chat/index.d.ts +0 -10
  96. package/dist/components/library/chat/useChatState.d.ts +11 -37
  97. package/dist/components/library/chat/useChatState.js +46 -63
  98. package/dist/components/library/chat/useChatState.js.map +1 -1
  99. package/dist/components/library/data/DataModeProvider.d.ts +11 -15
  100. package/dist/components/library/data/DataModeProvider.js +9 -9
  101. package/dist/components/library/data/DataModeProvider.js.map +1 -1
  102. package/dist/components/library/data/DataModeToggle.d.ts +3 -4
  103. package/dist/components/library/data/DataModeToggle.js +5 -4
  104. package/dist/components/library/data/DataModeToggle.js.map +1 -1
  105. package/dist/components/library/data/chartDataProvider.d.ts +3 -41
  106. package/dist/components/library/data/filterUtils.d.ts +9 -38
  107. package/dist/components/library/data/filterUtils.js.map +1 -1
  108. package/dist/components/library/data/useDataSource.d.ts +4 -6
  109. package/dist/components/library/data/useDataSource.js.map +1 -1
  110. package/dist/components/library/data/usePageFilters.d.ts +5 -31
  111. package/dist/components/library/data/usePageFilters.js +2 -6
  112. package/dist/components/library/data/usePageFilters.js.map +1 -1
  113. package/dist/components/library/filters/FilterBar.d.ts +8 -18
  114. package/dist/components/library/filters/FilterBar.js +3 -2
  115. package/dist/components/library/filters/FilterBar.js.map +1 -1
  116. package/dist/components/library/filters/SearchFilter.d.ts +6 -7
  117. package/dist/components/library/filters/SearchFilter.js +3 -2
  118. package/dist/components/library/filters/SearchFilter.js.map +1 -1
  119. package/dist/components/library/filters/SelectFilter.d.ts +7 -13
  120. package/dist/components/library/filters/SelectFilter.js +3 -2
  121. package/dist/components/library/filters/SelectFilter.js.map +1 -1
  122. package/dist/components/library/filters/ToggleFilter.d.ts +5 -7
  123. package/dist/components/library/filters/ToggleFilter.js +3 -2
  124. package/dist/components/library/filters/ToggleFilter.js.map +1 -1
  125. package/dist/components/library/forms/FormField.d.ts +8 -10
  126. package/dist/components/library/forms/FormField.js +4 -3
  127. package/dist/components/library/forms/FormField.js.map +1 -1
  128. package/dist/components/library/forms/FormModal.d.ts +14 -23
  129. package/dist/components/library/forms/FormModal.js.map +1 -1
  130. package/dist/components/library/forms/FormRenderer.d.ts +9 -29
  131. package/dist/components/library/forms/FormRenderer.js +7 -6
  132. package/dist/components/library/forms/FormRenderer.js.map +1 -1
  133. package/dist/components/library/forms/FormSection.d.ts +8 -10
  134. package/dist/components/library/forms/FormSection.js +3 -2
  135. package/dist/components/library/forms/FormSection.js.map +1 -1
  136. package/dist/components/library/forms/index.d.ts +0 -5
  137. package/dist/components/library/forms/useFormState.d.ts +15 -23
  138. package/dist/components/library/forms/useFormState.js +47 -53
  139. package/dist/components/library/forms/useFormState.js.map +1 -1
  140. package/dist/components/library/heroui/Accordion.d.ts +5 -6
  141. package/dist/components/library/heroui/Accordion.js +8 -7
  142. package/dist/components/library/heroui/Accordion.js.map +1 -1
  143. package/dist/components/library/heroui/Alert.d.ts +5 -6
  144. package/dist/components/library/heroui/Alert.js +8 -7
  145. package/dist/components/library/heroui/Alert.js.map +1 -1
  146. package/dist/components/library/heroui/Badge.d.ts +5 -8
  147. package/dist/components/library/heroui/Badge.js +3 -2
  148. package/dist/components/library/heroui/Badge.js.map +1 -1
  149. package/dist/components/library/heroui/Breadcrumbs.d.ts +2 -5
  150. package/dist/components/library/heroui/Breadcrumbs.js +5 -4
  151. package/dist/components/library/heroui/Breadcrumbs.js.map +1 -1
  152. package/dist/components/library/heroui/Button.d.ts +26 -16
  153. package/dist/components/library/heroui/Button.js +22 -21
  154. package/dist/components/library/heroui/Button.js.map +1 -1
  155. package/dist/components/library/heroui/Card.d.ts +5 -8
  156. package/dist/components/library/heroui/Card.js +7 -6
  157. package/dist/components/library/heroui/Card.js.map +1 -1
  158. package/dist/components/library/heroui/Collapsible.d.ts +30 -19
  159. package/dist/components/library/heroui/Collapsible.js +17 -13
  160. package/dist/components/library/heroui/Collapsible.js.map +1 -1
  161. package/dist/components/library/heroui/DatePicker.d.ts +52 -24
  162. package/dist/components/library/heroui/DatePicker.js +6 -5
  163. package/dist/components/library/heroui/DatePicker.js.map +1 -1
  164. package/dist/components/library/heroui/Dialog.d.ts +32 -18
  165. package/dist/components/library/heroui/Dialog.js +7 -6
  166. package/dist/components/library/heroui/Dialog.js.map +1 -1
  167. package/dist/components/library/heroui/Drawer.d.ts +2 -6
  168. package/dist/components/library/heroui/Drawer.js +3 -2
  169. package/dist/components/library/heroui/Drawer.js.map +1 -1
  170. package/dist/components/library/heroui/Dropdown.d.ts +2 -6
  171. package/dist/components/library/heroui/Dropdown.js +3 -2
  172. package/dist/components/library/heroui/Dropdown.js.map +1 -1
  173. package/dist/components/library/heroui/Field.d.ts +38 -19
  174. package/dist/components/library/heroui/Field.js +10 -9
  175. package/dist/components/library/heroui/Field.js.map +1 -1
  176. package/dist/components/library/heroui/Input.d.ts +1 -5
  177. package/dist/components/library/heroui/Input.js +1 -0
  178. package/dist/components/library/heroui/Input.js.map +1 -1
  179. package/dist/components/library/heroui/Kbd.d.ts +5 -6
  180. package/dist/components/library/heroui/Kbd.js +5 -4
  181. package/dist/components/library/heroui/Kbd.js.map +1 -1
  182. package/dist/components/library/heroui/Meter.d.ts +5 -7
  183. package/dist/components/library/heroui/Meter.js +5 -4
  184. package/dist/components/library/heroui/Meter.js.map +1 -1
  185. package/dist/components/library/heroui/Modal.d.ts +2 -6
  186. package/dist/components/library/heroui/Modal.js +3 -2
  187. package/dist/components/library/heroui/Modal.js.map +1 -1
  188. package/dist/components/library/heroui/Pagination.d.ts +2 -6
  189. package/dist/components/library/heroui/Pagination.js +5 -4
  190. package/dist/components/library/heroui/Pagination.js.map +1 -1
  191. package/dist/components/library/heroui/Popover.d.ts +40 -23
  192. package/dist/components/library/heroui/Popover.js +20 -20
  193. package/dist/components/library/heroui/Popover.js.map +1 -1
  194. package/dist/components/library/heroui/ProgressBar.d.ts +5 -8
  195. package/dist/components/library/heroui/ProgressBar.js +1 -0
  196. package/dist/components/library/heroui/ProgressBar.js.map +1 -1
  197. package/dist/components/library/heroui/ProgressCircle.d.ts +5 -8
  198. package/dist/components/library/heroui/ProgressCircle.js +1 -0
  199. package/dist/components/library/heroui/ProgressCircle.js.map +1 -1
  200. package/dist/components/library/heroui/ScrollShadow.d.ts +5 -8
  201. package/dist/components/library/heroui/ScrollShadow.js +4 -3
  202. package/dist/components/library/heroui/ScrollShadow.js.map +1 -1
  203. package/dist/components/library/heroui/Select.d.ts +37 -31
  204. package/dist/components/library/heroui/Select.js +11 -8
  205. package/dist/components/library/heroui/Select.js.map +1 -1
  206. package/dist/components/library/heroui/Separator.d.ts +2 -6
  207. package/dist/components/library/heroui/Separator.js +5 -4
  208. package/dist/components/library/heroui/Separator.js.map +1 -1
  209. package/dist/components/library/heroui/Skeleton.d.ts +5 -8
  210. package/dist/components/library/heroui/Skeleton.js +5 -4
  211. package/dist/components/library/heroui/Skeleton.js.map +1 -1
  212. package/dist/components/library/heroui/Tabs.d.ts +5 -6
  213. package/dist/components/library/heroui/Tabs.js +8 -7
  214. package/dist/components/library/heroui/Tabs.js.map +1 -1
  215. package/dist/components/library/heroui/Toast.d.ts +3 -6
  216. package/dist/components/library/heroui/Toast.js +4 -3
  217. package/dist/components/library/heroui/Toast.js.map +1 -1
  218. package/dist/components/library/heroui/Toggle.d.ts +4 -5
  219. package/dist/components/library/heroui/Toggle.js +6 -5
  220. package/dist/components/library/heroui/Toggle.js.map +1 -1
  221. package/dist/components/library/heroui/Tooltip.d.ts +2 -6
  222. package/dist/components/library/heroui/Tooltip.js +3 -2
  223. package/dist/components/library/heroui/Tooltip.js.map +1 -1
  224. package/dist/components/library/index.d.ts +98 -129
  225. package/dist/components/library/index.js +57 -41
  226. package/dist/components/library/index.js.map +1 -1
  227. package/dist/components/library/layout/PageContainer.d.ts +4 -6
  228. package/dist/components/library/layout/PageContainer.js +5 -4
  229. package/dist/components/library/layout/PageContainer.js.map +1 -1
  230. package/dist/components/library/skeletons/CardSkeleton.d.ts +4 -5
  231. package/dist/components/library/skeletons/CardSkeleton.js +3 -2
  232. package/dist/components/library/skeletons/CardSkeleton.js.map +1 -1
  233. package/dist/components/library/theme/AppThemeProvider.d.ts +50 -13
  234. package/dist/components/library/theme/AppThemeProvider.js +4 -4
  235. package/dist/components/library/theme/AppThemeProvider.js.map +1 -1
  236. package/dist/components/library/theme/tokens.d.ts +44 -45
  237. package/dist/components/library/theme/tokens.js.map +1 -1
  238. package/dist/components/library/ui/Alert.d.ts +21 -0
  239. package/dist/components/library/ui/{alert.js → Alert.js} +14 -13
  240. package/dist/components/library/ui/Alert.js.map +1 -0
  241. package/dist/components/library/ui/Avatar.d.ts +10 -22
  242. package/dist/components/library/ui/Avatar.js +16 -39
  243. package/dist/components/library/ui/Avatar.js.map +1 -1
  244. package/dist/components/library/ui/BreadcrumbExtras.d.ts +2 -1
  245. package/dist/components/library/ui/Button.d.ts +10 -9
  246. package/dist/components/library/ui/{UIButton.js → Button.js} +31 -26
  247. package/dist/components/library/ui/Button.js.map +1 -0
  248. package/dist/components/library/ui/Card.d.ts +37 -23
  249. package/dist/components/library/ui/{card.js → Card.js} +26 -24
  250. package/dist/components/library/ui/Card.js.map +1 -0
  251. package/dist/components/library/ui/Checkbox.d.ts +4 -0
  252. package/dist/components/library/ui/{checkbox.js → Checkbox.js} +5 -4
  253. package/dist/components/library/ui/Checkbox.js.map +1 -0
  254. package/dist/components/library/ui/Chip.d.ts +7 -18
  255. package/dist/components/library/ui/Chip.js +12 -11
  256. package/dist/components/library/ui/Chip.js.map +1 -1
  257. package/dist/components/library/ui/{collapsible.d.ts → Collapsible.d.ts} +1 -1
  258. package/dist/components/library/ui/Container.d.ts +13 -12
  259. package/dist/components/library/ui/Container.js +17 -16
  260. package/dist/components/library/ui/Container.js.map +1 -1
  261. package/dist/components/library/ui/{dialog.d.ts → Dialog.d.ts} +1 -1
  262. package/dist/components/library/ui/EmptyState.d.ts +7 -34
  263. package/dist/components/library/ui/EmptyState.js +6 -5
  264. package/dist/components/library/ui/EmptyState.js.map +1 -1
  265. package/dist/components/library/ui/FieldGroup.d.ts +5 -4
  266. package/dist/components/library/ui/FieldGroup.js +5 -4
  267. package/dist/components/library/ui/FieldGroup.js.map +1 -1
  268. package/dist/components/library/ui/Input.d.ts +5 -3
  269. package/dist/components/library/ui/{UIInput.js → Input.js} +7 -6
  270. package/dist/components/library/ui/Input.js.map +1 -0
  271. package/dist/components/library/ui/Label.d.ts +7 -0
  272. package/dist/components/library/ui/Label.js +23 -0
  273. package/dist/components/library/ui/Label.js.map +1 -0
  274. package/dist/components/library/ui/PaginationExtras.d.ts +2 -1
  275. package/dist/components/library/ui/{popover.d.ts → Popover.d.ts} +1 -1
  276. package/dist/components/library/ui/{select.d.ts → Select.d.ts} +1 -1
  277. package/dist/components/library/ui/Spinner.d.ts +5 -21
  278. package/dist/components/library/ui/{spinner.js → Spinner.js} +17 -16
  279. package/dist/components/library/ui/Spinner.js.map +1 -0
  280. package/dist/components/library/ui/Text.d.ts +10 -24
  281. package/dist/components/library/ui/Text.js +23 -20
  282. package/dist/components/library/ui/Text.js.map +1 -1
  283. package/dist/components/library/ui/Toggle.d.ts +5 -0
  284. package/dist/components/library/ui/Toggle.js +47 -0
  285. package/dist/components/library/ui/Toggle.js.map +1 -0
  286. package/dist/components/workspace/ComponentRegistry.d.ts +140 -116
  287. package/dist/components/workspace/ComponentRegistry.js +46 -46
  288. package/dist/components/workspace/ComponentRegistry.js.map +1 -1
  289. package/dist/index.js +241 -229
  290. package/dist/index.js.map +1 -1
  291. package/dist/styles/base.css +0 -8
  292. package/package.json +14 -21
  293. package/scripts/reset-command-center.sh +181 -202
  294. package/scripts/validate-dashboard.sh +21 -30
  295. package/INSTALL.md +0 -200
  296. package/dist/components/library/ui/BreadcrumbExtras.js +0 -109
  297. package/dist/components/library/ui/BreadcrumbExtras.js.map +0 -1
  298. package/dist/components/library/ui/PaginationExtras.js +0 -138
  299. package/dist/components/library/ui/PaginationExtras.js.map +0 -1
  300. package/dist/components/library/ui/UIButton.d.ts +0 -22
  301. package/dist/components/library/ui/UIButton.js.map +0 -1
  302. package/dist/components/library/ui/UIInput.d.ts +0 -4
  303. package/dist/components/library/ui/UIInput.js.map +0 -1
  304. package/dist/components/library/ui/alert.d.ts +0 -23
  305. package/dist/components/library/ui/alert.js.map +0 -1
  306. package/dist/components/library/ui/badge.d.ts +0 -9
  307. package/dist/components/library/ui/badge.js +0 -43
  308. package/dist/components/library/ui/badge.js.map +0 -1
  309. package/dist/components/library/ui/breadcrumb.d.ts +0 -11
  310. package/dist/components/library/ui/breadcrumb.js +0 -103
  311. package/dist/components/library/ui/breadcrumb.js.map +0 -1
  312. package/dist/components/library/ui/button.js +0 -56
  313. package/dist/components/library/ui/button.js.map +0 -1
  314. package/dist/components/library/ui/calendar.d.ts +0 -10
  315. package/dist/components/library/ui/calendar.js +0 -187
  316. package/dist/components/library/ui/calendar.js.map +0 -1
  317. package/dist/components/library/ui/card.js.map +0 -1
  318. package/dist/components/library/ui/checkbox.d.ts +0 -4
  319. package/dist/components/library/ui/checkbox.js.map +0 -1
  320. package/dist/components/library/ui/collapsible.js +0 -29
  321. package/dist/components/library/ui/collapsible.js.map +0 -1
  322. package/dist/components/library/ui/datePicker.js +0 -25
  323. package/dist/components/library/ui/datePicker.js.map +0 -1
  324. package/dist/components/library/ui/dialog.js +0 -137
  325. package/dist/components/library/ui/dialog.js.map +0 -1
  326. package/dist/components/library/ui/field.js +0 -78
  327. package/dist/components/library/ui/field.js.map +0 -1
  328. package/dist/components/library/ui/input.js +0 -20
  329. package/dist/components/library/ui/input.js.map +0 -1
  330. package/dist/components/library/ui/label.d.ts +0 -5
  331. package/dist/components/library/ui/label.js +0 -22
  332. package/dist/components/library/ui/label.js.map +0 -1
  333. package/dist/components/library/ui/pagination.d.ts +0 -17
  334. package/dist/components/library/ui/pagination.js +0 -126
  335. package/dist/components/library/ui/pagination.js.map +0 -1
  336. package/dist/components/library/ui/popover.js +0 -35
  337. package/dist/components/library/ui/popover.js.map +0 -1
  338. package/dist/components/library/ui/select.js +0 -106
  339. package/dist/components/library/ui/select.js.map +0 -1
  340. package/dist/components/library/ui/separator.d.ts +0 -4
  341. package/dist/components/library/ui/separator.js +0 -27
  342. package/dist/components/library/ui/separator.js.map +0 -1
  343. package/dist/components/library/ui/shadcn-exports.d.ts +0 -22
  344. package/dist/components/library/ui/skeleton.d.ts +0 -3
  345. package/dist/components/library/ui/skeleton.js +0 -16
  346. package/dist/components/library/ui/skeleton.js.map +0 -1
  347. package/dist/components/library/ui/sonner.d.ts +0 -15
  348. package/dist/components/library/ui/sonner.js +0 -11
  349. package/dist/components/library/ui/sonner.js.map +0 -1
  350. package/dist/components/library/ui/spinner.js.map +0 -1
  351. package/dist/components/library/ui/table.d.ts +0 -10
  352. package/dist/components/library/ui/table.js +0 -115
  353. package/dist/components/library/ui/table.js.map +0 -1
  354. package/dist/components/library/ui/tabs.d.ts +0 -11
  355. package/dist/components/library/ui/tabs.js +0 -91
  356. package/dist/components/library/ui/tabs.js.map +0 -1
  357. package/dist/node_modules/@date-fns/tz/date/index.js +0 -62
  358. package/dist/node_modules/@date-fns/tz/date/index.js.map +0 -1
  359. package/dist/node_modules/@date-fns/tz/date/mini.js +0 -70
  360. package/dist/node_modules/@date-fns/tz/date/mini.js.map +0 -1
  361. package/dist/node_modules/@date-fns/tz/tzName/index.js +0 -12
  362. package/dist/node_modules/@date-fns/tz/tzName/index.js.map +0 -1
  363. package/dist/node_modules/@date-fns/tz/tzOffset/index.js +0 -23
  364. package/dist/node_modules/@date-fns/tz/tzOffset/index.js.map +0 -1
  365. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +0 -533
  366. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +0 -1
  367. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +0 -404
  368. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +0 -1
  369. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +0 -233
  370. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +0 -1
  371. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +0 -137
  372. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +0 -1
  373. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +0 -129
  374. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +0 -1
  375. package/dist/node_modules/@radix-ui/number/dist/index.js +0 -7
  376. package/dist/node_modules/@radix-ui/number/dist/index.js.map +0 -1
  377. package/dist/node_modules/@radix-ui/primitive/dist/index.js +0 -10
  378. package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +0 -1
  379. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +0 -25
  380. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js.map +0 -1
  381. package/dist/node_modules/@radix-ui/react-arrow/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  382. package/dist/node_modules/@radix-ui/react-arrow/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  383. package/dist/node_modules/@radix-ui/react-arrow/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  384. package/dist/node_modules/@radix-ui/react-arrow/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  385. package/dist/node_modules/@radix-ui/react-checkbox/dist/index.js +0 -252
  386. package/dist/node_modules/@radix-ui/react-checkbox/dist/index.js.map +0 -1
  387. package/dist/node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-context/dist/index.js +0 -54
  388. package/dist/node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-context/dist/index.js.map +0 -1
  389. package/dist/node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  390. package/dist/node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  391. package/dist/node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  392. package/dist/node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  393. package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js +0 -120
  394. package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js.map +0 -1
  395. package/dist/node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-context/dist/index.js +0 -54
  396. package/dist/node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-context/dist/index.js.map +0 -1
  397. package/dist/node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  398. package/dist/node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  399. package/dist/node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  400. package/dist/node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  401. package/dist/node_modules/@radix-ui/react-collection/dist/index.js +0 -51
  402. package/dist/node_modules/@radix-ui/react-collection/dist/index.js.map +0 -1
  403. package/dist/node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context/dist/index.js +0 -54
  404. package/dist/node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context/dist/index.js.map +0 -1
  405. package/dist/node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  406. package/dist/node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  407. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +0 -30
  408. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +0 -1
  409. package/dist/node_modules/@radix-ui/react-dialog/dist/index.js +0 -258
  410. package/dist/node_modules/@radix-ui/react-dialog/dist/index.js.map +0 -1
  411. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-context/dist/index.js +0 -69
  412. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-context/dist/index.js.map +0 -1
  413. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  414. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  415. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  416. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  417. package/dist/node_modules/@radix-ui/react-direction/dist/index.js +0 -11
  418. package/dist/node_modules/@radix-ui/react-direction/dist/index.js.map +0 -1
  419. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +0 -128
  420. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +0 -1
  421. package/dist/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive/dist/index.js +0 -37
  422. package/dist/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  423. package/dist/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  424. package/dist/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  425. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +0 -18
  426. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +0 -1
  427. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +0 -137
  428. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +0 -1
  429. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  430. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  431. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  432. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  433. package/dist/node_modules/@radix-ui/react-id/dist/index.js +0 -14
  434. package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +0 -1
  435. package/dist/node_modules/@radix-ui/react-label/dist/index.js +0 -20
  436. package/dist/node_modules/@radix-ui/react-label/dist/index.js.map +0 -1
  437. package/dist/node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  438. package/dist/node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  439. package/dist/node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  440. package/dist/node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  441. package/dist/node_modules/@radix-ui/react-popover/dist/index.js +0 -240
  442. package/dist/node_modules/@radix-ui/react-popover/dist/index.js.map +0 -1
  443. package/dist/node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-context/dist/index.js +0 -54
  444. package/dist/node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-context/dist/index.js.map +0 -1
  445. package/dist/node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  446. package/dist/node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  447. package/dist/node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  448. package/dist/node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  449. package/dist/node_modules/@radix-ui/react-popper/dist/index.js +0 -220
  450. package/dist/node_modules/@radix-ui/react-popper/dist/index.js.map +0 -1
  451. package/dist/node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context/dist/index.js +0 -54
  452. package/dist/node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context/dist/index.js.map +0 -1
  453. package/dist/node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  454. package/dist/node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  455. package/dist/node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  456. package/dist/node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  457. package/dist/node_modules/@radix-ui/react-portal/dist/index.js +0 -16
  458. package/dist/node_modules/@radix-ui/react-portal/dist/index.js.map +0 -1
  459. package/dist/node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  460. package/dist/node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  461. package/dist/node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  462. package/dist/node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  463. package/dist/node_modules/@radix-ui/react-presence/dist/index.js +0 -71
  464. package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +0 -1
  465. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +0 -184
  466. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +0 -1
  467. package/dist/node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context/dist/index.js +0 -54
  468. package/dist/node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context/dist/index.js.map +0 -1
  469. package/dist/node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  470. package/dist/node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  471. package/dist/node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  472. package/dist/node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  473. package/dist/node_modules/@radix-ui/react-select/dist/index.js +0 -844
  474. package/dist/node_modules/@radix-ui/react-select/dist/index.js.map +0 -1
  475. package/dist/node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-context/dist/index.js +0 -54
  476. package/dist/node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-context/dist/index.js.map +0 -1
  477. package/dist/node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  478. package/dist/node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  479. package/dist/node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  480. package/dist/node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  481. package/dist/node_modules/@radix-ui/react-separator/dist/index.js +0 -25
  482. package/dist/node_modules/@radix-ui/react-separator/dist/index.js.map +0 -1
  483. package/dist/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  484. package/dist/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  485. package/dist/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  486. package/dist/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  487. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js +0 -164
  488. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js.map +0 -1
  489. package/dist/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-context/dist/index.js +0 -54
  490. package/dist/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-context/dist/index.js.map +0 -1
  491. package/dist/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  492. package/dist/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  493. package/dist/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  494. package/dist/node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  495. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +0 -11
  496. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +0 -1
  497. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +0 -53
  498. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +0 -1
  499. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +0 -15
  500. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +0 -1
  501. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +0 -7
  502. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +0 -1
  503. package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js +0 -9
  504. package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js.map +0 -1
  505. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +0 -28
  506. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js.map +0 -1
  507. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +0 -31
  508. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +0 -1
  509. package/dist/node_modules/@radix-ui/react-visually-hidden/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  510. package/dist/node_modules/@radix-ui/react-visually-hidden/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  511. package/dist/node_modules/@radix-ui/react-visually-hidden/node_modules/@radix-ui/react-slot/dist/index.js +0 -50
  512. package/dist/node_modules/@radix-ui/react-visually-hidden/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  513. package/dist/node_modules/aria-hidden/dist/es2015/index.js +0 -53
  514. package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +0 -1
  515. package/dist/node_modules/class-variance-authority/dist/index.js +0 -36
  516. package/dist/node_modules/class-variance-authority/dist/index.js.map +0 -1
  517. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +0 -8
  518. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +0 -1
  519. package/dist/node_modules/date-fns/_lib/defaultOptions.js +0 -8
  520. package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +0 -1
  521. package/dist/node_modules/date-fns/_lib/format/formatters.js +0 -549
  522. package/dist/node_modules/date-fns/_lib/format/formatters.js.map +0 -1
  523. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +0 -59
  524. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +0 -1
  525. package/dist/node_modules/date-fns/_lib/format/longFormatters.js +0 -50
  526. package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +0 -1
  527. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +0 -19
  528. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +0 -1
  529. package/dist/node_modules/date-fns/_lib/normalizeDates.js +0 -12
  530. package/dist/node_modules/date-fns/_lib/normalizeDates.js.map +0 -1
  531. package/dist/node_modules/date-fns/_lib/normalizeInterval.js +0 -9
  532. package/dist/node_modules/date-fns/_lib/normalizeInterval.js.map +0 -1
  533. package/dist/node_modules/date-fns/_lib/protectedTokens.js +0 -21
  534. package/dist/node_modules/date-fns/_lib/protectedTokens.js.map +0 -1
  535. package/dist/node_modules/date-fns/addDays.js +0 -10
  536. package/dist/node_modules/date-fns/addDays.js.map +0 -1
  537. package/dist/node_modules/date-fns/addMonths.js +0 -20
  538. package/dist/node_modules/date-fns/addMonths.js.map +0 -1
  539. package/dist/node_modules/date-fns/addWeeks.js +0 -8
  540. package/dist/node_modules/date-fns/addWeeks.js.map +0 -1
  541. package/dist/node_modules/date-fns/addYears.js +0 -8
  542. package/dist/node_modules/date-fns/addYears.js.map +0 -1
  543. package/dist/node_modules/date-fns/constants.js +0 -7
  544. package/dist/node_modules/date-fns/constants.js.map +0 -1
  545. package/dist/node_modules/date-fns/constructFrom.js +0 -8
  546. package/dist/node_modules/date-fns/constructFrom.js.map +0 -1
  547. package/dist/node_modules/date-fns/differenceInCalendarDays.js +0 -16
  548. package/dist/node_modules/date-fns/differenceInCalendarDays.js.map +0 -1
  549. package/dist/node_modules/date-fns/differenceInCalendarMonths.js +0 -13
  550. package/dist/node_modules/date-fns/differenceInCalendarMonths.js.map +0 -1
  551. package/dist/node_modules/date-fns/eachMonthOfInterval.js +0 -17
  552. package/dist/node_modules/date-fns/eachMonthOfInterval.js.map +0 -1
  553. package/dist/node_modules/date-fns/eachYearOfInterval.js +0 -17
  554. package/dist/node_modules/date-fns/eachYearOfInterval.js.map +0 -1
  555. package/dist/node_modules/date-fns/endOfISOWeek.js +0 -8
  556. package/dist/node_modules/date-fns/endOfISOWeek.js.map +0 -1
  557. package/dist/node_modules/date-fns/endOfMonth.js +0 -9
  558. package/dist/node_modules/date-fns/endOfMonth.js.map +0 -1
  559. package/dist/node_modules/date-fns/endOfWeek.js +0 -10
  560. package/dist/node_modules/date-fns/endOfWeek.js.map +0 -1
  561. package/dist/node_modules/date-fns/endOfYear.js +0 -9
  562. package/dist/node_modules/date-fns/endOfYear.js.map +0 -1
  563. package/dist/node_modules/date-fns/format.js +0 -58
  564. package/dist/node_modules/date-fns/format.js.map +0 -1
  565. package/dist/node_modules/date-fns/getDayOfYear.js +0 -11
  566. package/dist/node_modules/date-fns/getDayOfYear.js.map +0 -1
  567. package/dist/node_modules/date-fns/getDaysInMonth.js +0 -10
  568. package/dist/node_modules/date-fns/getDaysInMonth.js.map +0 -1
  569. package/dist/node_modules/date-fns/getISOWeek.js +0 -12
  570. package/dist/node_modules/date-fns/getISOWeek.js.map +0 -1
  571. package/dist/node_modules/date-fns/getISOWeekYear.js +0 -15
  572. package/dist/node_modules/date-fns/getISOWeekYear.js.map +0 -1
  573. package/dist/node_modules/date-fns/getMonth.js +0 -8
  574. package/dist/node_modules/date-fns/getMonth.js.map +0 -1
  575. package/dist/node_modules/date-fns/getWeek.js +0 -12
  576. package/dist/node_modules/date-fns/getWeek.js.map +0 -1
  577. package/dist/node_modules/date-fns/getWeekYear.js +0 -16
  578. package/dist/node_modules/date-fns/getWeekYear.js.map +0 -1
  579. package/dist/node_modules/date-fns/getYear.js +0 -8
  580. package/dist/node_modules/date-fns/getYear.js.map +0 -1
  581. package/dist/node_modules/date-fns/isAfter.js +0 -8
  582. package/dist/node_modules/date-fns/isAfter.js.map +0 -1
  583. package/dist/node_modules/date-fns/isBefore.js +0 -8
  584. package/dist/node_modules/date-fns/isBefore.js.map +0 -1
  585. package/dist/node_modules/date-fns/isDate.js +0 -7
  586. package/dist/node_modules/date-fns/isDate.js.map +0 -1
  587. package/dist/node_modules/date-fns/isSameDay.js +0 -14
  588. package/dist/node_modules/date-fns/isSameDay.js.map +0 -1
  589. package/dist/node_modules/date-fns/isSameMonth.js +0 -13
  590. package/dist/node_modules/date-fns/isSameMonth.js.map +0 -1
  591. package/dist/node_modules/date-fns/isSameYear.js +0 -13
  592. package/dist/node_modules/date-fns/isSameYear.js.map +0 -1
  593. package/dist/node_modules/date-fns/isValid.js +0 -9
  594. package/dist/node_modules/date-fns/isValid.js.map +0 -1
  595. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +0 -10
  596. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +0 -1
  597. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +0 -19
  598. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +0 -1
  599. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +0 -32
  600. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +0 -1
  601. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +0 -16
  602. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +0 -1
  603. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +0 -71
  604. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +0 -1
  605. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +0 -34
  606. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +0 -1
  607. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +0 -12
  608. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +0 -1
  609. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +0 -156
  610. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +0 -1
  611. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +0 -111
  612. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js.map +0 -1
  613. package/dist/node_modules/date-fns/locale/en-US.js +0 -21
  614. package/dist/node_modules/date-fns/locale/en-US.js.map +0 -1
  615. package/dist/node_modules/date-fns/max.js +0 -14
  616. package/dist/node_modules/date-fns/max.js.map +0 -1
  617. package/dist/node_modules/date-fns/min.js +0 -14
  618. package/dist/node_modules/date-fns/min.js.map +0 -1
  619. package/dist/node_modules/date-fns/setMonth.js +0 -13
  620. package/dist/node_modules/date-fns/setMonth.js.map +0 -1
  621. package/dist/node_modules/date-fns/setYear.js +0 -10
  622. package/dist/node_modules/date-fns/setYear.js.map +0 -1
  623. package/dist/node_modules/date-fns/startOfDay.js +0 -9
  624. package/dist/node_modules/date-fns/startOfDay.js.map +0 -1
  625. package/dist/node_modules/date-fns/startOfISOWeek.js +0 -8
  626. package/dist/node_modules/date-fns/startOfISOWeek.js.map +0 -1
  627. package/dist/node_modules/date-fns/startOfISOWeekYear.js +0 -11
  628. package/dist/node_modules/date-fns/startOfISOWeekYear.js.map +0 -1
  629. package/dist/node_modules/date-fns/startOfMonth.js +0 -9
  630. package/dist/node_modules/date-fns/startOfMonth.js.map +0 -1
  631. package/dist/node_modules/date-fns/startOfWeek.js +0 -10
  632. package/dist/node_modules/date-fns/startOfWeek.js.map +0 -1
  633. package/dist/node_modules/date-fns/startOfWeekYear.js +0 -12
  634. package/dist/node_modules/date-fns/startOfWeekYear.js.map +0 -1
  635. package/dist/node_modules/date-fns/startOfYear.js +0 -9
  636. package/dist/node_modules/date-fns/startOfYear.js.map +0 -1
  637. package/dist/node_modules/date-fns/toDate.js +0 -8
  638. package/dist/node_modules/date-fns/toDate.js.map +0 -1
  639. package/dist/node_modules/get-nonce/dist/es2015/index.js +0 -8
  640. package/dist/node_modules/get-nonce/dist/es2015/index.js.map +0 -1
  641. package/dist/node_modules/radix-ui/node_modules/@radix-ui/react-slot/dist/index.js +0 -53
  642. package/dist/node_modules/radix-ui/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -1
  643. package/dist/node_modules/react-day-picker/dist/esm/DayPicker.js +0 -235
  644. package/dist/node_modules/react-day-picker/dist/esm/DayPicker.js.map +0 -1
  645. package/dist/node_modules/react-day-picker/dist/esm/UI.js +0 -23
  646. package/dist/node_modules/react-day-picker/dist/esm/UI.js.map +0 -1
  647. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js +0 -20
  648. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js.map +0 -1
  649. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js +0 -9
  650. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js.map +0 -1
  651. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js +0 -9
  652. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js.map +0 -1
  653. package/dist/node_modules/react-day-picker/dist/esm/classes/DateLib.js +0 -149
  654. package/dist/node_modules/react-day-picker/dist/esm/classes/DateLib.js.map +0 -1
  655. package/dist/node_modules/react-day-picker/dist/esm/components/Button.js +0 -8
  656. package/dist/node_modules/react-day-picker/dist/esm/components/Button.js.map +0 -1
  657. package/dist/node_modules/react-day-picker/dist/esm/components/CaptionLabel.js +0 -8
  658. package/dist/node_modules/react-day-picker/dist/esm/components/CaptionLabel.js.map +0 -1
  659. package/dist/node_modules/react-day-picker/dist/esm/components/Chevron.js +0 -19
  660. package/dist/node_modules/react-day-picker/dist/esm/components/Chevron.js.map +0 -1
  661. package/dist/node_modules/react-day-picker/dist/esm/components/Day.js +0 -9
  662. package/dist/node_modules/react-day-picker/dist/esm/components/Day.js.map +0 -1
  663. package/dist/node_modules/react-day-picker/dist/esm/components/DayButton.js +0 -11
  664. package/dist/node_modules/react-day-picker/dist/esm/components/DayButton.js.map +0 -1
  665. package/dist/node_modules/react-day-picker/dist/esm/components/Dropdown.js +0 -20
  666. package/dist/node_modules/react-day-picker/dist/esm/components/Dropdown.js.map +0 -1
  667. package/dist/node_modules/react-day-picker/dist/esm/components/DropdownNav.js +0 -8
  668. package/dist/node_modules/react-day-picker/dist/esm/components/DropdownNav.js.map +0 -1
  669. package/dist/node_modules/react-day-picker/dist/esm/components/Footer.js +0 -8
  670. package/dist/node_modules/react-day-picker/dist/esm/components/Footer.js.map +0 -1
  671. package/dist/node_modules/react-day-picker/dist/esm/components/Month.js +0 -9
  672. package/dist/node_modules/react-day-picker/dist/esm/components/Month.js.map +0 -1
  673. package/dist/node_modules/react-day-picker/dist/esm/components/MonthCaption.js +0 -9
  674. package/dist/node_modules/react-day-picker/dist/esm/components/MonthCaption.js.map +0 -1
  675. package/dist/node_modules/react-day-picker/dist/esm/components/MonthGrid.js +0 -8
  676. package/dist/node_modules/react-day-picker/dist/esm/components/MonthGrid.js.map +0 -1
  677. package/dist/node_modules/react-day-picker/dist/esm/components/Months.js +0 -8
  678. package/dist/node_modules/react-day-picker/dist/esm/components/Months.js.map +0 -1
  679. package/dist/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js +0 -10
  680. package/dist/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js.map +0 -1
  681. package/dist/node_modules/react-day-picker/dist/esm/components/Nav.js +0 -28
  682. package/dist/node_modules/react-day-picker/dist/esm/components/Nav.js.map +0 -1
  683. package/dist/node_modules/react-day-picker/dist/esm/components/NextMonthButton.js +0 -10
  684. package/dist/node_modules/react-day-picker/dist/esm/components/NextMonthButton.js.map +0 -1
  685. package/dist/node_modules/react-day-picker/dist/esm/components/Option.js +0 -8
  686. package/dist/node_modules/react-day-picker/dist/esm/components/Option.js.map +0 -1
  687. package/dist/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.js +0 -10
  688. package/dist/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.js.map +0 -1
  689. package/dist/node_modules/react-day-picker/dist/esm/components/Root.js +0 -9
  690. package/dist/node_modules/react-day-picker/dist/esm/components/Root.js.map +0 -1
  691. package/dist/node_modules/react-day-picker/dist/esm/components/Select.js +0 -8
  692. package/dist/node_modules/react-day-picker/dist/esm/components/Select.js.map +0 -1
  693. package/dist/node_modules/react-day-picker/dist/esm/components/Week.js +0 -9
  694. package/dist/node_modules/react-day-picker/dist/esm/components/Week.js.map +0 -1
  695. package/dist/node_modules/react-day-picker/dist/esm/components/WeekNumber.js +0 -9
  696. package/dist/node_modules/react-day-picker/dist/esm/components/WeekNumber.js.map +0 -1
  697. package/dist/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.js +0 -8
  698. package/dist/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.js.map +0 -1
  699. package/dist/node_modules/react-day-picker/dist/esm/components/Weekday.js +0 -8
  700. package/dist/node_modules/react-day-picker/dist/esm/components/Weekday.js.map +0 -1
  701. package/dist/node_modules/react-day-picker/dist/esm/components/Weekdays.js +0 -12
  702. package/dist/node_modules/react-day-picker/dist/esm/components/Weekdays.js.map +0 -1
  703. package/dist/node_modules/react-day-picker/dist/esm/components/Weeks.js +0 -8
  704. package/dist/node_modules/react-day-picker/dist/esm/components/Weeks.js.map +0 -1
  705. package/dist/node_modules/react-day-picker/dist/esm/components/YearsDropdown.js +0 -10
  706. package/dist/node_modules/react-day-picker/dist/esm/components/YearsDropdown.js.map +0 -1
  707. package/dist/node_modules/react-day-picker/dist/esm/components/custom-components.js +0 -55
  708. package/dist/node_modules/react-day-picker/dist/esm/components/custom-components.js.map +0 -1
  709. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js +0 -10
  710. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js.map +0 -1
  711. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatDay.js +0 -8
  712. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatDay.js.map +0 -1
  713. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.js +0 -8
  714. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.js.map +0 -1
  715. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js +0 -8
  716. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js.map +0 -1
  717. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js +0 -7
  718. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js.map +0 -1
  719. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.js +0 -8
  720. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.js.map +0 -1
  721. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js +0 -10
  722. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js.map +0 -1
  723. package/dist/node_modules/react-day-picker/dist/esm/formatters/index.js +0 -19
  724. package/dist/node_modules/react-day-picker/dist/esm/formatters/index.js.map +0 -1
  725. package/dist/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js +0 -20
  726. package/dist/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js.map +0 -1
  727. package/dist/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js +0 -43
  728. package/dist/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js.map +0 -1
  729. package/dist/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js +0 -10
  730. package/dist/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js.map +0 -1
  731. package/dist/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js +0 -8
  732. package/dist/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js.map +0 -1
  733. package/dist/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.js +0 -8
  734. package/dist/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.js.map +0 -1
  735. package/dist/node_modules/react-day-picker/dist/esm/helpers/getComponents.js +0 -11
  736. package/dist/node_modules/react-day-picker/dist/esm/helpers/getComponents.js.map +0 -1
  737. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js +0 -17
  738. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js.map +0 -1
  739. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDates.js +0 -20
  740. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDates.js.map +0 -1
  741. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDays.js +0 -11
  742. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDays.js.map +0 -1
  743. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js +0 -17
  744. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js.map +0 -1
  745. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js +0 -14
  746. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js.map +0 -1
  747. package/dist/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.js +0 -16
  748. package/dist/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.js.map +0 -1
  749. package/dist/node_modules/react-day-picker/dist/esm/helpers/getFormatters.js +0 -11
  750. package/dist/node_modules/react-day-picker/dist/esm/helpers/getFormatters.js.map +0 -1
  751. package/dist/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js +0 -14
  752. package/dist/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js.map +0 -1
  753. package/dist/node_modules/react-day-picker/dist/esm/helpers/getLabels.js +0 -35
  754. package/dist/node_modules/react-day-picker/dist/esm/helpers/getLabels.js.map +0 -1
  755. package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js +0 -14
  756. package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js.map +0 -1
  757. package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonths.js +0 -25
  758. package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonths.js.map +0 -1
  759. package/dist/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.js +0 -14
  760. package/dist/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.js.map +0 -1
  761. package/dist/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.js +0 -13
  762. package/dist/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.js.map +0 -1
  763. package/dist/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.js +0 -13
  764. package/dist/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.js.map +0 -1
  765. package/dist/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.js +0 -13
  766. package/dist/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.js.map +0 -1
  767. package/dist/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js +0 -14
  768. package/dist/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js.map +0 -1
  769. package/dist/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js +0 -12
  770. package/dist/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js.map +0 -1
  771. package/dist/node_modules/react-day-picker/dist/esm/helpers/getWeeks.js +0 -8
  772. package/dist/node_modules/react-day-picker/dist/esm/helpers/getWeeks.js.map +0 -1
  773. package/dist/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js +0 -17
  774. package/dist/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js.map +0 -1
  775. package/dist/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js +0 -8
  776. package/dist/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js.map +0 -1
  777. package/dist/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.js +0 -9
  778. package/dist/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.js.map +0 -1
  779. package/dist/node_modules/react-day-picker/dist/esm/labels/index.js +0 -27
  780. package/dist/node_modules/react-day-picker/dist/esm/labels/index.js.map +0 -1
  781. package/dist/node_modules/react-day-picker/dist/esm/labels/labelDayButton.js +0 -11
  782. package/dist/node_modules/react-day-picker/dist/esm/labels/labelDayButton.js.map +0 -1
  783. package/dist/node_modules/react-day-picker/dist/esm/labels/labelGrid.js +0 -10
  784. package/dist/node_modules/react-day-picker/dist/esm/labels/labelGrid.js.map +0 -1
  785. package/dist/node_modules/react-day-picker/dist/esm/labels/labelGridcell.js +0 -9
  786. package/dist/node_modules/react-day-picker/dist/esm/labels/labelGridcell.js.map +0 -1
  787. package/dist/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js +0 -7
  788. package/dist/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js.map +0 -1
  789. package/dist/node_modules/react-day-picker/dist/esm/labels/labelNav.js +0 -7
  790. package/dist/node_modules/react-day-picker/dist/esm/labels/labelNav.js.map +0 -1
  791. package/dist/node_modules/react-day-picker/dist/esm/labels/labelNext.js +0 -8
  792. package/dist/node_modules/react-day-picker/dist/esm/labels/labelNext.js.map +0 -1
  793. package/dist/node_modules/react-day-picker/dist/esm/labels/labelPrevious.js +0 -7
  794. package/dist/node_modules/react-day-picker/dist/esm/labels/labelPrevious.js.map +0 -1
  795. package/dist/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js +0 -7
  796. package/dist/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js.map +0 -1
  797. package/dist/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js +0 -7
  798. package/dist/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js.map +0 -1
  799. package/dist/node_modules/react-day-picker/dist/esm/labels/labelWeekday.js +0 -8
  800. package/dist/node_modules/react-day-picker/dist/esm/labels/labelWeekday.js.map +0 -1
  801. package/dist/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js +0 -7
  802. package/dist/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js.map +0 -1
  803. package/dist/node_modules/react-day-picker/dist/esm/locale/en-US.js +0 -38
  804. package/dist/node_modules/react-day-picker/dist/esm/locale/en-US.js.map +0 -1
  805. package/dist/node_modules/react-day-picker/dist/esm/noonDateLib.js +0 -105
  806. package/dist/node_modules/react-day-picker/dist/esm/noonDateLib.js.map +0 -1
  807. package/dist/node_modules/react-day-picker/dist/esm/selection/useMulti.js +0 -22
  808. package/dist/node_modules/react-day-picker/dist/esm/selection/useMulti.js.map +0 -1
  809. package/dist/node_modules/react-day-picker/dist/esm/selection/useRange.js +0 -24
  810. package/dist/node_modules/react-day-picker/dist/esm/selection/useRange.js.map +0 -1
  811. package/dist/node_modules/react-day-picker/dist/esm/selection/useSingle.js +0 -16
  812. package/dist/node_modules/react-day-picker/dist/esm/selection/useSingle.js.map +0 -1
  813. package/dist/node_modules/react-day-picker/dist/esm/useAnimation.js +0 -57
  814. package/dist/node_modules/react-day-picker/dist/esm/useAnimation.js.map +0 -1
  815. package/dist/node_modules/react-day-picker/dist/esm/useCalendar.js +0 -76
  816. package/dist/node_modules/react-day-picker/dist/esm/useCalendar.js.map +0 -1
  817. package/dist/node_modules/react-day-picker/dist/esm/useDayPicker.js +0 -13
  818. package/dist/node_modules/react-day-picker/dist/esm/useDayPicker.js.map +0 -1
  819. package/dist/node_modules/react-day-picker/dist/esm/useFocus.js +0 -24
  820. package/dist/node_modules/react-day-picker/dist/esm/useFocus.js.map +0 -1
  821. package/dist/node_modules/react-day-picker/dist/esm/useSelection.js +0 -20
  822. package/dist/node_modules/react-day-picker/dist/esm/useSelection.js.map +0 -1
  823. package/dist/node_modules/react-day-picker/dist/esm/utils/addToRange.js +0 -33
  824. package/dist/node_modules/react-day-picker/dist/esm/utils/addToRange.js.map +0 -1
  825. package/dist/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.js +0 -27
  826. package/dist/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.js.map +0 -1
  827. package/dist/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js +0 -27
  828. package/dist/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js.map +0 -1
  829. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js +0 -16
  830. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js.map +0 -1
  831. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js +0 -29
  832. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js.map +0 -1
  833. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js +0 -10
  834. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js.map +0 -1
  835. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.js +0 -9
  836. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.js.map +0 -1
  837. package/dist/node_modules/react-day-picker/dist/esm/utils/toTimeZone.js +0 -9
  838. package/dist/node_modules/react-day-picker/dist/esm/utils/toTimeZone.js.map +0 -1
  839. package/dist/node_modules/react-day-picker/dist/esm/utils/typeguards.js +0 -27
  840. package/dist/node_modules/react-day-picker/dist/esm/utils/typeguards.js.map +0 -1
  841. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +0 -12
  842. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +0 -1
  843. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +0 -116
  844. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +0 -1
  845. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +0 -32
  846. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js.map +0 -1
  847. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +0 -17
  848. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +0 -1
  849. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +0 -69
  850. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +0 -1
  851. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +0 -6
  852. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js.map +0 -1
  853. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +0 -8
  854. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js.map +0 -1
  855. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +0 -72
  856. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +0 -1
  857. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +0 -8
  858. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +0 -1
  859. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +0 -26
  860. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +0 -1
  861. package/dist/node_modules/react-style-singleton/dist/es2015/component.js +0 -12
  862. package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +0 -1
  863. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +0 -16
  864. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +0 -1
  865. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +0 -31
  866. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +0 -1
  867. package/dist/node_modules/sonner/dist/index.js +0 -265
  868. package/dist/node_modules/sonner/dist/index.js.map +0 -1
  869. package/dist/node_modules/tslib/tslib.es6.js +0 -28
  870. package/dist/node_modules/tslib/tslib.es6.js.map +0 -1
  871. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +0 -7
  872. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +0 -1
  873. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +0 -27
  874. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +0 -1
  875. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +0 -26
  876. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +0 -1
  877. package/dist/node_modules/use-sidecar/dist/es2015/exports.js +0 -19
  878. package/dist/node_modules/use-sidecar/dist/es2015/exports.js.map +0 -1
  879. package/dist/node_modules/use-sidecar/dist/es2015/medium.js +0 -68
  880. package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +0 -1
  881. package/dist/types/conversation.d.ts +0 -44
  882. package/scripts/convert-to-typescript.sh +0 -52
  883. package/scripts/postinstall.mjs +0 -368
  884. package/scripts/remove-local-components.mjs +0 -78
  885. package/src/components/library/cards/ActionList.tsx +0 -42
  886. package/src/components/library/cards/ActivityCard.tsx +0 -85
  887. package/src/components/library/cards/BaseCard.tsx +0 -136
  888. package/src/components/library/cards/CalloutCard.tsx +0 -39
  889. package/src/components/library/cards/ChartCard.tsx +0 -131
  890. package/src/components/library/cards/FeedPanel.tsx +0 -50
  891. package/src/components/library/cards/ListCard.tsx +0 -229
  892. package/src/components/library/cards/MetricCard.tsx +0 -128
  893. package/src/components/library/cards/MetricsStrip.tsx +0 -88
  894. package/src/components/library/cards/SectionCard.tsx +0 -102
  895. package/src/components/library/cards/SemanticMetricCard.tsx +0 -64
  896. package/src/components/library/cards/SemanticMetricCardWithLoading.tsx +0 -29
  897. package/src/components/library/cards/SemanticTableCard.tsx +0 -59
  898. package/src/components/library/cards/SemanticTableCardWithLoading.tsx +0 -26
  899. package/src/components/library/cards/StatusCard.tsx +0 -269
  900. package/src/components/library/cards/TableCard.tsx +0 -376
  901. package/src/components/library/cards/WidgetCard.tsx +0 -113
  902. package/src/components/library/charts/D3Chart.tsx +0 -129
  903. package/src/components/library/charts/D3ChartTemplates.tsx +0 -158
  904. package/src/components/library/charts/GeoMap.tsx +0 -382
  905. package/src/components/library/chat/ChatBar.tsx +0 -267
  906. package/src/components/library/chat/ChatInput.tsx +0 -91
  907. package/src/components/library/chat/ChatMessage.tsx +0 -191
  908. package/src/components/library/chat/ChatMessageList.tsx +0 -75
  909. package/src/components/library/chat/ChatPanel.tsx +0 -100
  910. package/src/components/library/chat/ChatSuggestions.tsx +0 -29
  911. package/src/components/library/chat/ChatToolCall.tsx +0 -110
  912. package/src/components/library/chat/ChatTypingIndicator.tsx +0 -26
  913. package/src/components/library/chat/ChatWelcome.tsx +0 -45
  914. package/src/components/library/chat/index.tsx +0 -26
  915. package/src/components/library/chat/useChatState.tsx +0 -182
  916. package/src/components/library/data/DataModeProvider.tsx +0 -84
  917. package/src/components/library/data/DataModeToggle.tsx +0 -39
  918. package/src/components/library/data/chartDataProvider.tsx +0 -105
  919. package/src/components/library/data/filterUtils.tsx +0 -187
  920. package/src/components/library/data/useDataSource.tsx +0 -40
  921. package/src/components/library/data/usePageFilters.tsx +0 -139
  922. package/src/components/library/filters/FilterBar.tsx +0 -105
  923. package/src/components/library/filters/SearchFilter.tsx +0 -42
  924. package/src/components/library/filters/SelectFilter.tsx +0 -62
  925. package/src/components/library/filters/ToggleFilter.tsx +0 -53
  926. package/src/components/library/filters/index.ts +0 -4
  927. package/src/components/library/forms/FormField.tsx +0 -337
  928. package/src/components/library/forms/FormModal.tsx +0 -202
  929. package/src/components/library/forms/FormRenderer.tsx +0 -68
  930. package/src/components/library/forms/FormSection.tsx +0 -75
  931. package/src/components/library/forms/index.tsx +0 -11
  932. package/src/components/library/forms/useFormState.tsx +0 -185
  933. package/src/components/library/heroui/Accordion.tsx +0 -31
  934. package/src/components/library/heroui/Alert.tsx +0 -13
  935. package/src/components/library/heroui/Badge.tsx +0 -14
  936. package/src/components/library/heroui/Breadcrumbs.tsx +0 -25
  937. package/src/components/library/heroui/Button.tsx +0 -76
  938. package/src/components/library/heroui/Card.tsx +0 -14
  939. package/src/components/library/heroui/Collapsible.tsx +0 -62
  940. package/src/components/library/heroui/DatePicker.tsx +0 -58
  941. package/src/components/library/heroui/Dialog.tsx +0 -43
  942. package/src/components/library/heroui/Drawer.tsx +0 -36
  943. package/src/components/library/heroui/Dropdown.tsx +0 -32
  944. package/src/components/library/heroui/Field.tsx +0 -68
  945. package/src/components/library/heroui/Input.tsx +0 -10
  946. package/src/components/library/heroui/Kbd.tsx +0 -11
  947. package/src/components/library/heroui/Meter.tsx +0 -13
  948. package/src/components/library/heroui/Modal.tsx +0 -35
  949. package/src/components/library/heroui/Pagination.tsx +0 -11
  950. package/src/components/library/heroui/Popover.tsx +0 -95
  951. package/src/components/library/heroui/ProgressBar.tsx +0 -14
  952. package/src/components/library/heroui/ProgressCircle.tsx +0 -14
  953. package/src/components/library/heroui/ScrollShadow.tsx +0 -14
  954. package/src/components/library/heroui/Select.tsx +0 -73
  955. package/src/components/library/heroui/Separator.tsx +0 -11
  956. package/src/components/library/heroui/Skeleton.tsx +0 -14
  957. package/src/components/library/heroui/Tabs.tsx +0 -31
  958. package/src/components/library/heroui/Toast.tsx +0 -28
  959. package/src/components/library/heroui/Toggle.tsx +0 -18
  960. package/src/components/library/heroui/Tooltip.tsx +0 -24
  961. package/src/components/library/index.ts +0 -147
  962. package/src/components/library/layout/PageContainer.tsx +0 -14
  963. package/src/components/library/skeletons/CardSkeleton.tsx +0 -31
  964. package/src/components/library/theme/AppThemeProvider.tsx +0 -80
  965. package/src/components/library/theme/tokens.tsx +0 -106
  966. package/src/components/library/ui/Alert.tsx +0 -90
  967. package/src/components/library/ui/Avatar.tsx +0 -68
  968. package/src/components/library/ui/BreadcrumbExtras.tsx +0 -119
  969. package/src/components/library/ui/Card.tsx +0 -131
  970. package/src/components/library/ui/Checkbox.tsx +0 -19
  971. package/src/components/library/ui/Chip.tsx +0 -42
  972. package/src/components/library/ui/Collapsible.tsx +0 -31
  973. package/src/components/library/ui/Container.tsx +0 -65
  974. package/src/components/library/ui/DatePicker.tsx +0 -34
  975. package/src/components/library/ui/Dialog.tsx +0 -141
  976. package/src/components/library/ui/EmptyState.tsx +0 -49
  977. package/src/components/library/ui/Field.tsx +0 -82
  978. package/src/components/library/ui/FieldGroup.tsx +0 -19
  979. package/src/components/library/ui/Label.tsx +0 -23
  980. package/src/components/library/ui/PaginationExtras.tsx +0 -143
  981. package/src/components/library/ui/Popover.tsx +0 -39
  982. package/src/components/library/ui/Select.tsx +0 -113
  983. package/src/components/library/ui/Spinner.tsx +0 -66
  984. package/src/components/library/ui/Text.tsx +0 -53
  985. package/src/components/library/ui/UIButton.tsx +0 -62
  986. package/src/components/library/ui/UIInput.tsx +0 -21
  987. package/src/components/workspace/ComponentRegistry.tsx +0 -402
  988. package/src/lib/index.ts +0 -1
  989. package/src/lib/utils.ts +0 -6
  990. package/src/templates/config/routes.tsx.template +0 -33
  991. package/src/templates/pages/BlankDashboard.tsx.template +0 -15
  992. package/src/templates/pages/Home.tsx.template +0 -58
  993. package/src/templates/pages/NotFound.tsx.template +0 -19
  994. package/src/templates/pages/Search.tsx.template +0 -13
  995. package/src/templates/workspace/CommandCenter.tsx.template +0 -15
  996. package/src/types/conversation.ts +0 -48
  997. /package/dist/components/library/ui/{datePicker.d.ts → DatePicker.d.ts} +0 -0
  998. /package/dist/components/library/ui/{field.d.ts → Field.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TableCard.js","sources":["../../../../src/components/library/cards/TableCard.tsx"],"sourcesContent":["import React from \"react\";\nimport BaseCard, { BaseCardProps } from \"./BaseCard\";\nimport UIInput from \"../ui/UIInput\";\nimport UIButton from \"../ui/UIButton\";\nimport UIText from \"../ui/Text\";\n\ntype ColumnType = \"currency\" | \"percentage\" | \"number\" | \"text\";\n\nfunction defaultTypeFormat(type: ColumnType | undefined, value: unknown): string {\n if (value == null) return \"\";\n if (!type) return String(value);\n\n if (type === \"currency\") {\n const n = Number(value);\n if (Number.isFinite(n)) return n.toLocaleString(undefined, { style: \"currency\", currency: \"USD\" });\n }\n if (type === \"percentage\") {\n const n = Number(value);\n if (Number.isFinite(n)) return `${n}%`;\n }\n if (type === \"number\") {\n const n = Number(value);\n if (Number.isFinite(n)) return n.toLocaleString();\n }\n return String(value);\n}\n\nfunction stableSort<T>(data: T[], compare: (a: T, b: T) => number): T[] {\n return data\n .map((item, idx) => ({ item, idx }))\n .sort((a, b) => {\n const c = compare(a.item, b.item);\n return c !== 0 ? c : a.idx - b.idx;\n })\n .map((x) => x.item);\n}\n\nexport interface TableColumn {\n key: string;\n label: string;\n type?: ColumnType;\n sortable?: boolean;\n mono?: boolean;\n className?: string;\n render?: (value: unknown, row: Record<string, unknown>) => React.ReactNode;\n}\n\nexport interface SortState {\n key: string;\n direction: \"asc\" | \"desc\";\n}\n\nexport interface TableCardProps extends Omit<BaseCardProps, \"variant\" | \"header\" | \"body\"> {\n data?: Record<string, unknown>[];\n columns?: TableColumn[];\n title?: string;\n subtitle?: string;\n searchable?: boolean;\n sortable?: boolean;\n paginated?: boolean;\n selectable?: boolean;\n pageSize?: number;\n actions?: React.ReactNode;\n rowActions?: (row: Record<string, unknown>) => React.ReactNode;\n onRowSelect?: (row: Record<string, unknown>) => void;\n onSort?: (sort: SortState) => void;\n onSearch?: (query: string) => void;\n loading?: boolean;\n error?: string | Error;\n emptyMessage?: string;\n simulateInitialLoad?: boolean;\n minInitialDelayMs?: number;\n maxInitialDelayMs?: number;\n}\n\nexport default function TableCard({\n data = [],\n columns = [],\n title,\n subtitle,\n searchable = false,\n sortable = false,\n paginated = false,\n selectable = false,\n pageSize = 10,\n actions,\n rowActions,\n onRowSelect,\n onSort,\n onSearch,\n loading = false,\n error,\n emptyMessage = \"No results.\",\n simulateInitialLoad = false,\n minInitialDelayMs = 350,\n maxInitialDelayMs = 900,\n ...cardProps\n}: TableCardProps) {\n const [query, setQuery] = React.useState(\"\");\n const [sortKey, setSortKey] = React.useState<string | null>(null);\n const [sortDir, setSortDir] = React.useState<\"asc\" | \"desc\">(\"asc\");\n const [page, setPage] = React.useState(1);\n const [selectedId, setSelectedId] = React.useState<string | number | undefined>(undefined);\n const [simLoading, setSimLoading] = React.useState(simulateInitialLoad);\n\n React.useEffect(() => {\n if (!simulateInitialLoad) return;\n const delay =\n Math.floor(Math.random() * (maxInitialDelayMs - minInitialDelayMs + 1)) + minInitialDelayMs;\n const t = setTimeout(() => setSimLoading(false), delay);\n return () => clearTimeout(t);\n }, [simulateInitialLoad, minInitialDelayMs, maxInitialDelayMs]);\n\n const effectiveLoading = loading || simLoading;\n\n const filtered = React.useMemo(() => {\n if (!searchable || !query.trim()) return data;\n const q = query.trim().toLowerCase();\n return data.filter((row) =>\n columns.some((col) => {\n const raw = row?.[col.key];\n if (raw == null) return false;\n return String(raw).toLowerCase().includes(q);\n })\n );\n }, [data, columns, query, searchable]);\n\n const sorted = React.useMemo(() => {\n if (!sortable || !sortKey) return filtered;\n const col = columns.find((c) => c.key === sortKey);\n if (!col) return filtered;\n const dir = sortDir === \"desc\" ? -1 : 1;\n return stableSort(filtered, (a, b) => {\n const av = a?.[sortKey];\n const bv = b?.[sortKey];\n if (av == null && bv == null) return 0;\n if (av == null) return -1 * dir;\n if (bv == null) return 1 * dir;\n if (typeof av === \"number\" && typeof bv === \"number\") return (av - bv) * dir;\n return String(av).localeCompare(String(bv)) * dir;\n });\n }, [filtered, sortable, sortKey, sortDir, columns]);\n\n const total = sorted.length;\n const totalPages = paginated ? Math.max(1, Math.ceil(total / pageSize)) : 1;\n const clampedPage = Math.min(page, totalPages);\n\n const pageData = React.useMemo(() => {\n if (!paginated) return sorted;\n const start = (clampedPage - 1) * pageSize;\n return sorted.slice(start, start + pageSize);\n }, [sorted, paginated, clampedPage, pageSize]);\n\n React.useEffect(() => {\n if (page !== clampedPage) setPage(clampedPage);\n }, [page, clampedPage]);\n\n const header = (\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-end sm:justify-between\">\n <div className=\"min-w-0\">\n {title ? (\n <UIText as=\"div\" size=\"sm\" weight=\"medium\">\n {title}\n </UIText>\n ) : null}\n {subtitle ? (\n <UIText as=\"div\" size=\"xs\" muted className=\"mt-1\">\n {subtitle}\n </UIText>\n ) : null}\n </div>\n <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-end\">\n {searchable ? (\n <div className=\"w-full sm:w-64\">\n <UIInput\n value={query}\n onChange={(e) => {\n setQuery(e.target.value);\n setPage(1);\n onSearch?.(e.target.value);\n }}\n placeholder=\"Search…\"\n aria-label=\"Search table\"\n />\n </div>\n ) : null}\n {actions ? <div className=\"flex items-center gap-2\">{actions}</div> : null}\n </div>\n </div>\n );\n\n if (error) {\n return (\n <BaseCard\n header={header}\n body={\n <div className=\"mt-4 rounded-xl border border-rose-200 bg-rose-50 p-4 text-sm text-rose-900 dark:border-rose-900/40 dark:bg-rose-950/30 dark:text-rose-100\">\n {String(error)}\n </div>\n }\n {...cardProps}\n />\n );\n }\n\n const canSort = (col: TableColumn) => sortable && (col.sortable ?? true);\n\n return (\n <BaseCard\n variant=\"table\"\n header={header}\n body={\n <div className=\"mt-4 overflow-hidden rounded-xl border border-slate-200 dark:border-slate-800\">\n <div className=\"w-full overflow-x-auto\">\n <table className=\"min-w-full border-separate border-spacing-0\">\n <thead className=\"bg-slate-50 dark:bg-slate-950/30\">\n <tr>\n {columns.map((col) => {\n const active = sortKey === col.key;\n return (\n <th\n key={col.key}\n scope=\"col\"\n className={[\n \"whitespace-nowrap border-b border-slate-200 px-4 py-3 text-left text-xs font-semibold text-slate-600 dark:border-slate-800 dark:text-slate-300\",\n col.className ?? \"\"\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n {canSort(col) ? (\n <button\n type=\"button\"\n className=\"inline-flex items-center gap-2 hover:text-slate-900 dark:hover:text-slate-50\"\n onClick={() => {\n const nextDir = active && sortDir === \"asc\" ? \"desc\" : \"asc\";\n setSortKey(col.key);\n setSortDir(nextDir);\n onSort?.({ key: col.key, direction: nextDir });\n }}\n >\n <span>{col.label}</span>\n <span className=\"text-[10px] opacity-70\">\n {active ? (sortDir === \"asc\" ? \"▲\" : \"▼\") : \"↕\"}\n </span>\n </button>\n ) : (\n col.label\n )}\n </th>\n );\n })}\n {rowActions ? (\n <th className=\"border-b border-slate-200 px-4 py-3 text-right text-xs font-semibold text-slate-600 dark:border-slate-800 dark:text-slate-300\">\n Actions\n </th>\n ) : null}\n </tr>\n </thead>\n\n <tbody className=\"bg-white dark:bg-slate-900\">\n {effectiveLoading ? (\n Array.from({ length: Math.min(pageSize, 6) }).map((_, idx) => (\n <tr key={idx}>\n {columns.map((col) => (\n <td\n key={col.key}\n className=\"border-b border-slate-200 px-4 py-3 dark:border-slate-800\"\n >\n <div className=\"h-4 w-3/4 animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n </td>\n ))}\n {rowActions ? (\n <td className=\"border-b border-slate-200 px-4 py-3 dark:border-slate-800\">\n <div className=\"h-4 w-10 animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n </td>\n ) : null}\n </tr>\n ))\n ) : pageData.length === 0 ? (\n <tr>\n <td\n colSpan={columns.length + (rowActions ? 1 : 0)}\n className=\"px-4 py-10 text-center text-sm text-slate-600 dark:text-slate-300\"\n >\n {emptyMessage}\n </td>\n </tr>\n ) : (\n pageData.map((row, idx) => {\n const rawId = row?.id;\n const rowId: string | number = typeof rawId === \"string\" || typeof rawId === \"number\" ? rawId : idx;\n const selected = selectable && selectedId === rowId;\n return (\n <tr\n key={String(rowId)}\n className={[\n \"group\",\n selectable ? \"cursor-pointer\" : \"\",\n selected ? \"bg-brand-50 dark:bg-brand-950/30\" : \"\"\n ]\n .filter(Boolean)\n .join(\" \")}\n onClick={() => {\n if (!selectable) return;\n setSelectedId(rowId);\n onRowSelect?.(row);\n }}\n >\n {columns.map((col) => {\n const raw = row?.[col.key];\n const content = col.render ? col.render(raw, row) : defaultTypeFormat(col.type, raw);\n return (\n <td\n key={col.key}\n className={[\n \"border-b border-slate-200 px-4 py-3 text-sm text-slate-700 dark:border-slate-800 dark:text-slate-200\",\n col.mono ? \"font-mono text-[13px]\" : \"\",\n col.className ?? \"\"\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n {content}\n </td>\n );\n })}\n {rowActions ? (\n <td className=\"border-b border-slate-200 px-4 py-3 text-right text-sm dark:border-slate-800\">\n <div className=\"inline-flex items-center justify-end gap-2 opacity-100 sm:opacity-0 sm:group-hover:opacity-100\">\n {rowActions(row)}\n </div>\n </td>\n ) : null}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n\n {paginated && !effectiveLoading ? (\n <div className=\"flex flex-col gap-2 border-t border-slate-200 bg-slate-50 px-4 py-3 dark:border-slate-800 dark:bg-slate-950/30 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"text-xs text-slate-600 dark:text-slate-300\">\n {total === 0 ? \"0 results\" : `Showing ${(clampedPage - 1) * pageSize + 1}-${Math.min(clampedPage * pageSize, total)} of ${total}`}\n </div>\n <div className=\"flex items-center gap-2\">\n <UIButton\n variant=\"outline\"\n size=\"sm\"\n disabled={clampedPage <= 1}\n onClick={() => setPage((p) => Math.max(1, p - 1))}\n >\n Prev\n </UIButton>\n <div className=\"text-xs text-slate-600 dark:text-slate-300\">\n Page {clampedPage} / {totalPages}\n </div>\n <UIButton\n variant=\"outline\"\n size=\"sm\"\n disabled={clampedPage >= totalPages}\n onClick={() => setPage((p) => Math.min(totalPages, p + 1))}\n >\n Next\n </UIButton>\n </div>\n </div>\n ) : null}\n </div>\n }\n {...cardProps}\n />\n );\n}\n"],"names":["defaultTypeFormat","type","value","n","stableSort","data","compare","item","idx","a","b","c","x","TableCard","columns","title","subtitle","searchable","sortable","paginated","selectable","pageSize","actions","rowActions","onRowSelect","onSort","onSearch","loading","error","emptyMessage","simulateInitialLoad","minInitialDelayMs","maxInitialDelayMs","cardProps","query","setQuery","React","sortKey","setSortKey","sortDir","setSortDir","page","setPage","selectedId","setSelectedId","simLoading","setSimLoading","delay","t","effectiveLoading","filtered","q","row","col","raw","sorted","dir","av","bv","total","totalPages","clampedPage","pageData","start","header","jsxs","jsx","UIText","UIInput","BaseCard","canSort","active","nextDir","_","rawId","rowId","content","UIButton","p"],"mappings":"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"}
1
+ {"version":3,"file":"TableCard.js","sources":["../../../../src/components/library/cards/TableCard.jsx"],"sourcesContent":["import React from \"react\";\nimport BaseCard from \"./BaseCard\";\nimport UIInput from \"../ui/Input\";\nimport UIButton from \"../ui/Button\";\nimport UIText from \"../ui/Text\";\n\nfunction defaultTypeFormat(type, value) {\n if (value == null) return \"\";\n if (!type) return String(value);\n\n if (type === \"currency\") {\n const n = Number(value);\n if (Number.isFinite(n)) return n.toLocaleString(undefined, { style: \"currency\", currency: \"USD\" });\n }\n if (type === \"percentage\") {\n const n = Number(value);\n if (Number.isFinite(n)) return `${n}%`;\n }\n if (type === \"number\") {\n const n = Number(value);\n if (Number.isFinite(n)) return n.toLocaleString();\n }\n return String(value);\n}\n\nfunction stableSort(data, compare) {\n return data\n .map((item, idx) => ({ item, idx }))\n .sort((a, b) => {\n const c = compare(a.item, b.item);\n return c !== 0 ? c : a.idx - b.idx;\n })\n .map((x) => x.item);\n}\n\nexport default function TableCard({\n data = [],\n columns = [],\n title,\n subtitle,\n searchable = false,\n sortable = false,\n paginated = false,\n selectable = false,\n pageSize = 10,\n actions,\n rowActions,\n onRowSelect,\n onSort,\n onSearch,\n loading = false,\n error,\n emptyMessage = \"No results.\",\n simulateInitialLoad = false,\n minInitialDelayMs = 350,\n maxInitialDelayMs = 900,\n ...cardProps\n}) {\n const [query, setQuery] = React.useState(\"\");\n const [sortKey, setSortKey] = React.useState(null);\n const [sortDir, setSortDir] = React.useState(\"asc\");\n const [page, setPage] = React.useState(1);\n const [selectedId, setSelectedId] = React.useState(null);\n const [simLoading, setSimLoading] = React.useState(simulateInitialLoad);\n\n React.useEffect(() => {\n if (!simulateInitialLoad) return;\n const delay =\n Math.floor(Math.random() * (maxInitialDelayMs - minInitialDelayMs + 1)) + minInitialDelayMs;\n const t = setTimeout(() => setSimLoading(false), delay);\n return () => clearTimeout(t);\n }, [simulateInitialLoad, minInitialDelayMs, maxInitialDelayMs]);\n\n const effectiveLoading = loading || simLoading;\n\n const filtered = React.useMemo(() => {\n if (!searchable || !query.trim()) return data;\n const q = query.trim().toLowerCase();\n return data.filter((row) =>\n columns.some((col) => {\n const raw = row?.[col.key];\n if (raw == null) return false;\n return String(raw).toLowerCase().includes(q);\n })\n );\n }, [data, columns, query, searchable]);\n\n const sorted = React.useMemo(() => {\n if (!sortable || !sortKey) return filtered;\n const col = columns.find((c) => c.key === sortKey);\n if (!col) return filtered;\n const dir = sortDir === \"desc\" ? -1 : 1;\n return stableSort(filtered, (a, b) => {\n const av = a?.[sortKey];\n const bv = b?.[sortKey];\n if (av == null && bv == null) return 0;\n if (av == null) return -1 * dir;\n if (bv == null) return 1 * dir;\n if (typeof av === \"number\" && typeof bv === \"number\") return (av - bv) * dir;\n return String(av).localeCompare(String(bv)) * dir;\n });\n }, [filtered, sortable, sortKey, sortDir, columns]);\n\n const total = sorted.length;\n const totalPages = paginated ? Math.max(1, Math.ceil(total / pageSize)) : 1;\n const clampedPage = Math.min(page, totalPages);\n\n const pageData = React.useMemo(() => {\n if (!paginated) return sorted;\n const start = (clampedPage - 1) * pageSize;\n return sorted.slice(start, start + pageSize);\n }, [sorted, paginated, clampedPage, pageSize]);\n\n React.useEffect(() => {\n if (page !== clampedPage) setPage(clampedPage);\n }, [page, clampedPage]);\n\n const header = (\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-end sm:justify-between\">\n <div className=\"min-w-0\">\n {title ? (\n <UIText as=\"div\" size=\"sm\" weight=\"medium\">\n {title}\n </UIText>\n ) : null}\n {subtitle ? (\n <UIText as=\"div\" size=\"xs\" muted className=\"mt-1\">\n {subtitle}\n </UIText>\n ) : null}\n </div>\n <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-end\">\n {searchable ? (\n <div className=\"w-full sm:w-64\">\n <UIInput\n value={query}\n onChange={(e) => {\n setQuery(e.target.value);\n setPage(1);\n onSearch?.(e.target.value);\n }}\n placeholder=\"Search…\"\n aria-label=\"Search table\"\n />\n </div>\n ) : null}\n {actions ? <div className=\"flex items-center gap-2\">{actions}</div> : null}\n </div>\n </div>\n );\n\n if (error) {\n return (\n <BaseCard\n header={header}\n body={\n <div className=\"mt-4 rounded-xl border border-rose-200 bg-rose-50 p-4 text-sm text-rose-900 dark:border-rose-900/40 dark:bg-rose-950/30 dark:text-rose-100\">\n {String(error)}\n </div>\n }\n {...cardProps}\n />\n );\n }\n\n const canSort = (col) => sortable && (col.sortable ?? true);\n\n return (\n <BaseCard\n variant=\"table\"\n header={header}\n body={\n <div className=\"mt-4 overflow-hidden rounded-xl border border-slate-200 dark:border-slate-800\">\n <div className=\"w-full overflow-x-auto\">\n <table className=\"min-w-full border-separate border-spacing-0\">\n <thead className=\"bg-slate-50 dark:bg-slate-950/30\">\n <tr>\n {columns.map((col) => {\n const active = sortKey === col.key;\n return (\n <th\n key={col.key}\n scope=\"col\"\n className={[\n \"whitespace-nowrap border-b border-slate-200 px-4 py-3 text-left text-xs font-semibold text-slate-600 dark:border-slate-800 dark:text-slate-300\",\n col.className ?? \"\"\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n {canSort(col) ? (\n <button\n type=\"button\"\n className=\"inline-flex items-center gap-2 hover:text-slate-900 dark:hover:text-slate-50\"\n onClick={() => {\n const nextDir = active && sortDir === \"asc\" ? \"desc\" : \"asc\";\n setSortKey(col.key);\n setSortDir(nextDir);\n onSort?.({ key: col.key, direction: nextDir });\n }}\n >\n <span>{col.label}</span>\n <span className=\"text-[10px] opacity-70\">\n {active ? (sortDir === \"asc\" ? \"▲\" : \"▼\") : \"↕\"}\n </span>\n </button>\n ) : (\n col.label\n )}\n </th>\n );\n })}\n {rowActions ? (\n <th className=\"border-b border-slate-200 px-4 py-3 text-right text-xs font-semibold text-slate-600 dark:border-slate-800 dark:text-slate-300\">\n Actions\n </th>\n ) : null}\n </tr>\n </thead>\n\n <tbody className=\"bg-white dark:bg-slate-900\">\n {effectiveLoading ? (\n Array.from({ length: Math.min(pageSize, 6) }).map((_, idx) => (\n <tr key={idx}>\n {columns.map((col) => (\n <td\n key={col.key}\n className=\"border-b border-slate-200 px-4 py-3 dark:border-slate-800\"\n >\n <div className=\"h-4 w-3/4 animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n </td>\n ))}\n {rowActions ? (\n <td className=\"border-b border-slate-200 px-4 py-3 dark:border-slate-800\">\n <div className=\"h-4 w-10 animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n </td>\n ) : null}\n </tr>\n ))\n ) : pageData.length === 0 ? (\n <tr>\n <td\n colSpan={columns.length + (rowActions ? 1 : 0)}\n className=\"px-4 py-10 text-center text-sm text-slate-600 dark:text-slate-300\"\n >\n {emptyMessage}\n </td>\n </tr>\n ) : (\n pageData.map((row, idx) => {\n const rowId = row?.id ?? idx;\n const selected = selectable && selectedId === rowId;\n return (\n <tr\n key={rowId}\n className={[\n \"group\",\n selectable ? \"cursor-pointer\" : \"\",\n selected ? \"bg-brand-50 dark:bg-brand-950/30\" : \"\"\n ]\n .filter(Boolean)\n .join(\" \")}\n onClick={() => {\n if (!selectable) return;\n setSelectedId(rowId);\n onRowSelect?.(row);\n }}\n >\n {columns.map((col) => {\n const raw = row?.[col.key];\n const content = col.render ? col.render(raw, row) : defaultTypeFormat(col.type, raw);\n return (\n <td\n key={col.key}\n className={[\n \"border-b border-slate-200 px-4 py-3 text-sm text-slate-700 dark:border-slate-800 dark:text-slate-200\",\n col.mono ? \"font-mono text-[13px]\" : \"\",\n col.className ?? \"\"\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n {content}\n </td>\n );\n })}\n {rowActions ? (\n <td className=\"border-b border-slate-200 px-4 py-3 text-right text-sm dark:border-slate-800\">\n <div className=\"inline-flex items-center justify-end gap-2 opacity-100 sm:opacity-0 sm:group-hover:opacity-100\">\n {rowActions(row)}\n </div>\n </td>\n ) : null}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n\n {paginated && !effectiveLoading ? (\n <div className=\"flex flex-col gap-2 border-t border-slate-200 bg-slate-50 px-4 py-3 dark:border-slate-800 dark:bg-slate-950/30 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"text-xs text-slate-600 dark:text-slate-300\">\n {total === 0 ? \"0 results\" : `Showing ${(clampedPage - 1) * pageSize + 1}-${Math.min(clampedPage * pageSize, total)} of ${total}`}\n </div>\n <div className=\"flex items-center gap-2\">\n <UIButton\n variant=\"outline\"\n size=\"sm\"\n disabled={clampedPage <= 1}\n onClick={() => setPage((p) => Math.max(1, p - 1))}\n >\n Prev\n </UIButton>\n <div className=\"text-xs text-slate-600 dark:text-slate-300\">\n Page {clampedPage} / {totalPages}\n </div>\n <UIButton\n variant=\"outline\"\n size=\"sm\"\n disabled={clampedPage >= totalPages}\n onClick={() => setPage((p) => Math.min(totalPages, p + 1))}\n >\n Next\n </UIButton>\n </div>\n </div>\n ) : null}\n </div>\n }\n {...cardProps}\n />\n );\n}\n\n\n"],"names":["defaultTypeFormat","type","value","n","stableSort","data","compare","item","idx","a","b","c","x","TableCard","columns","title","subtitle","searchable","sortable","paginated","selectable","pageSize","actions","rowActions","onRowSelect","onSort","onSearch","loading","error","emptyMessage","simulateInitialLoad","minInitialDelayMs","maxInitialDelayMs","cardProps","query","setQuery","React","sortKey","setSortKey","sortDir","setSortDir","page","setPage","selectedId","setSelectedId","simLoading","setSimLoading","delay","t","effectiveLoading","filtered","q","row","col","raw","sorted","dir","av","bv","total","totalPages","clampedPage","pageData","start","header","jsxs","jsx","UIText","UIInput","BaseCard","canSort","active","nextDir","_","rowId","content","UIButton","p"],"mappings":";;;;;;AAMA,SAASA,GAAkBC,GAAMC,GAAO;AACtC,MAAIA,KAAS,KAAM,QAAO;AAC1B,MAAI,CAACD,EAAM,QAAO,OAAOC,CAAK;AAE9B,MAAID,MAAS,YAAY;AACvB,UAAME,IAAI,OAAOD,CAAK;AACtB,QAAI,OAAO,SAASC,CAAC,EAAG,QAAOA,EAAE,eAAe,QAAW,EAAE,OAAO,YAAY,UAAU,OAAO;AAAA,EACnG;AACA,MAAIF,MAAS,cAAc;AACzB,UAAME,IAAI,OAAOD,CAAK;AACtB,QAAI,OAAO,SAASC,CAAC,EAAG,QAAO,GAAGA,CAAC;AAAA,EACrC;AACA,MAAIF,MAAS,UAAU;AACrB,UAAME,IAAI,OAAOD,CAAK;AACtB,QAAI,OAAO,SAASC,CAAC,EAAG,QAAOA,EAAE,eAAA;AAAA,EACnC;AACA,SAAO,OAAOD,CAAK;AACrB;AAEA,SAASE,GAAWC,GAAMC,GAAS;AACjC,SAAOD,EACJ,IAAI,CAACE,GAAMC,OAAS,EAAE,MAAAD,GAAM,KAAAC,EAAA,EAAM,EAClC,KAAK,CAACC,GAAGC,MAAM;AACd,UAAMC,IAAIL,EAAQG,EAAE,MAAMC,EAAE,IAAI;AAChC,WAAOC,MAAM,IAAIA,IAAIF,EAAE,MAAMC,EAAE;AAAA,EACjC,CAAC,EACA,IAAI,CAACE,MAAMA,EAAE,IAAI;AACtB;AAEA,SAAwBC,GAAU;AAAA,EAChC,MAAAR,IAAO,CAAA;AAAA,EACP,SAAAS,IAAU,CAAA;AAAA,EACV,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,YAAAC,IAAa;AAAA,EACb,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,qBAAAC,IAAsB;AAAA,EACtB,mBAAAC,IAAoB;AAAA,EACpB,mBAAAC,IAAoB;AAAA,EACpB,GAAGC;AACL,GAAG;AACD,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAM,SAAS,EAAE,GACrC,CAACC,GAASC,CAAU,IAAIF,EAAM,SAAS,IAAI,GAC3C,CAACG,GAASC,CAAU,IAAIJ,EAAM,SAAS,KAAK,GAC5C,CAACK,GAAMC,CAAO,IAAIN,EAAM,SAAS,CAAC,GAClC,CAACO,GAAYC,CAAa,IAAIR,EAAM,SAAS,IAAI,GACjD,CAACS,GAAYC,CAAa,IAAIV,EAAM,SAASN,CAAmB;AAEtE,EAAAM,EAAM,UAAU,MAAM;AACpB,QAAI,CAACN,EAAqB;AAC1B,UAAMiB,IACJ,KAAK,MAAM,KAAK,YAAYf,IAAoBD,IAAoB,EAAE,IAAIA,GACtEiB,IAAI,WAAW,MAAMF,EAAc,EAAK,GAAGC,CAAK;AACtD,WAAO,MAAM,aAAaC,CAAC;AAAA,EAC7B,GAAG,CAAClB,GAAqBC,GAAmBC,CAAiB,CAAC;AAE9D,QAAMiB,IAAmBtB,KAAWkB,GAE9BK,IAAWd,EAAM,QAAQ,MAAM;AACnC,QAAI,CAACnB,KAAc,CAACiB,EAAM,KAAA,EAAQ,QAAO7B;AACzC,UAAM8C,IAAIjB,EAAM,KAAA,EAAO,YAAA;AACvB,WAAO7B,EAAK;AAAA,MAAO,CAAC+C,MAClBtC,EAAQ,KAAK,CAACuC,MAAQ;AACpB,cAAMC,IAAMF,IAAMC,EAAI,GAAG;AACzB,eAAIC,KAAO,OAAa,KACjB,OAAOA,CAAG,EAAE,YAAA,EAAc,SAASH,CAAC;AAAA,MAC7C,CAAC;AAAA,IAAA;AAAA,EAEL,GAAG,CAAC9C,GAAMS,GAASoB,GAAOjB,CAAU,CAAC,GAE/BsC,IAASnB,EAAM,QAAQ,MAAM;AAGjC,QAFI,CAAClB,KAAY,CAACmB,KAEd,CADQvB,EAAQ,KAAK,CAACH,MAAMA,EAAE,QAAQ0B,CAAO,EACvC,QAAOa;AACjB,UAAMM,IAAMjB,MAAY,SAAS,KAAK;AACtC,WAAOnC,GAAW8C,GAAU,CAACzC,GAAGC,MAAM;AACpC,YAAM+C,IAAKhD,IAAI4B,CAAO,GAChBqB,IAAKhD,IAAI2B,CAAO;AACtB,aAAIoB,KAAM,QAAQC,KAAM,OAAa,IACjCD,KAAM,OAAa,KAAKD,IACxBE,KAAM,OAAa,IAAIF,IACvB,OAAOC,KAAO,YAAY,OAAOC,KAAO,YAAkBD,IAAKC,KAAMF,IAClE,OAAOC,CAAE,EAAE,cAAc,OAAOC,CAAE,CAAC,IAAIF;AAAA,IAChD,CAAC;AAAA,EACH,GAAG,CAACN,GAAUhC,GAAUmB,GAASE,GAASzB,CAAO,CAAC,GAE5C6C,IAAQJ,EAAO,QACfK,IAAazC,IAAY,KAAK,IAAI,GAAG,KAAK,KAAKwC,IAAQtC,CAAQ,CAAC,IAAI,GACpEwC,IAAc,KAAK,IAAIpB,GAAMmB,CAAU,GAEvCE,IAAW1B,EAAM,QAAQ,MAAM;AACnC,QAAI,CAACjB,EAAW,QAAOoC;AACvB,UAAMQ,KAASF,IAAc,KAAKxC;AAClC,WAAOkC,EAAO,MAAMQ,GAAOA,IAAQ1C,CAAQ;AAAA,EAC7C,GAAG,CAACkC,GAAQpC,GAAW0C,GAAaxC,CAAQ,CAAC;AAE7C,EAAAe,EAAM,UAAU,MAAM;AACpB,IAAIK,MAASoB,KAAanB,EAAQmB,CAAW;AAAA,EAC/C,GAAG,CAACpB,GAAMoB,CAAW,CAAC;AAEtB,QAAMG,IACJ,gBAAAC,EAAC,OAAA,EAAI,WAAU,mEACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,WACZ,UAAA;AAAA,MAAAlD,IACC,gBAAAmD,EAACC,KAAO,IAAG,OAAM,MAAK,MAAK,QAAO,UAC/B,UAAApD,EAAA,CACH,IACE;AAAA,MACHC,IACC,gBAAAkD,EAACC,GAAA,EAAO,IAAG,OAAM,MAAK,MAAK,OAAK,IAAC,WAAU,QACxC,UAAAnD,EAAA,CACH,IACE;AAAA,IAAA,GACN;AAAA,IACA,gBAAAiD,EAAC,OAAA,EAAI,WAAU,kEACZ,UAAA;AAAA,MAAAhD,IACC,gBAAAiD,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA,gBAAAA;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,OAAOlC;AAAA,UACP,UAAU,CAAC,MAAM;AACf,YAAAC,EAAS,EAAE,OAAO,KAAK,GACvBO,EAAQ,CAAC,GACThB,IAAW,EAAE,OAAO,KAAK;AAAA,UAC3B;AAAA,UACA,aAAY;AAAA,UACZ,cAAW;AAAA,QAAA;AAAA,MAAA,GAEf,IACE;AAAA,MACHJ,IAAU,gBAAA4C,EAAC,OAAA,EAAI,WAAU,2BAA2B,aAAQ,IAAS;AAAA,IAAA,EAAA,CACxE;AAAA,EAAA,GACF;AAGF,MAAItC;AACF,WACE,gBAAAsC;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,QAAAL;AAAA,QACA,MACE,gBAAAE,EAAC,OAAA,EAAI,WAAU,8IACZ,UAAA,OAAOtC,CAAK,GACf;AAAA,QAED,GAAGK;AAAA,MAAA;AAAA,IAAA;AAKV,QAAMqC,IAAU,CAACjB,MAAQnC,MAAamC,EAAI,YAAY;AAEtD,SACE,gBAAAa;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,QAAAL;AAAA,MACA,MACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,iFACb,UAAA;AAAA,QAAA,gBAAAC,EAAC,SAAI,WAAU,0BACb,UAAA,gBAAAD,EAAC,SAAA,EAAM,WAAU,+CACf,UAAA;AAAA,UAAA,gBAAAC,EAAC,SAAA,EAAM,WAAU,oCACf,UAAA,gBAAAD,EAAC,MAAA,EACE,UAAA;AAAA,YAAAnD,EAAQ,IAAI,CAACuC,MAAQ;AACpB,oBAAMkB,IAASlC,MAAYgB,EAAI;AAC/B,qBACE,gBAAAa;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,OAAM;AAAA,kBACN,WAAW;AAAA,oBACT;AAAA,oBACAb,EAAI,aAAa;AAAA,kBAAA,EAEhB,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,kBAEV,UAAAiB,EAAQjB,CAAG,IACV,gBAAAY;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,MAAK;AAAA,sBACL,WAAU;AAAA,sBACV,SAAS,MAAM;AACb,8BAAMO,IAAUD,KAAUhC,MAAY,QAAQ,SAAS;AACvD,wBAAAD,EAAWe,EAAI,GAAG,GAClBb,EAAWgC,CAAO,GAClB/C,IAAS,EAAE,KAAK4B,EAAI,KAAK,WAAWmB,GAAS;AAAA,sBAC/C;AAAA,sBAEA,UAAA;AAAA,wBAAA,gBAAAN,EAAC,QAAA,EAAM,YAAI,MAAA,CAAM;AAAA,wBACjB,gBAAAA,EAAC,UAAK,WAAU,0BACb,cAAU3B,MAAY,QAAQ,MAAM,MAAO,IAAA,CAC9C;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBAAA,IAGFc,EAAI;AAAA,gBAAA;AAAA,gBA1BDA,EAAI;AAAA,cAAA;AAAA,YA8Bf,CAAC;AAAA,YACA9B,IACC,gBAAA2C,EAAC,MAAA,EAAG,WAAU,iIAAgI,qBAE9I,IACE;AAAA,UAAA,EAAA,CACN,EAAA,CACF;AAAA,UAEA,gBAAAA,EAAC,WAAM,WAAU,8BACd,cACC,MAAM,KAAK,EAAE,QAAQ,KAAK,IAAI7C,GAAU,CAAC,GAAG,EAAE,IAAI,CAACoD,GAAGjE,MACpD,gBAAAyD,EAAC,MAAA,EACE,UAAA;AAAA,YAAAnD,EAAQ,IAAI,CAACuC,MACZ,gBAAAa;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,WAAU;AAAA,gBAEV,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,iEAAA,CAAiE;AAAA,cAAA;AAAA,cAH3Eb,EAAI;AAAA,YAAA,CAKZ;AAAA,YACA9B,IACC,gBAAA2C,EAAC,MAAA,EAAG,WAAU,6DACZ,4BAAC,OAAA,EAAI,WAAU,gEAAA,CAAgE,EAAA,CACjF,IACE;AAAA,UAAA,KAbG1D,CAcT,CACD,IACCsD,EAAS,WAAW,sBACrB,MAAA,EACC,UAAA,gBAAAI;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAASpD,EAAQ,UAAUS,IAAa,IAAI;AAAA,cAC5C,WAAU;AAAA,cAET,UAAAM;AAAA,YAAA;AAAA,UAAA,GAEL,IAEAiC,EAAS,IAAI,CAACV,GAAK5C,MAAQ;AACzB,kBAAMkE,IAAQtB,GAAK,MAAM5C;AAEzB,mBACE,gBAAAyD;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,WAAW;AAAA,kBACT;AAAA,kBACA7C,IAAa,mBAAmB;AAAA,kBANrBA,KAAcuB,MAAe+B,IAO7B,qCAAqC;AAAA,gBAAA,EAE/C,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,gBACX,SAAS,MAAM;AACb,kBAAKtD,MACLwB,EAAc8B,CAAK,GACnBlD,IAAc4B,CAAG;AAAA,gBACnB;AAAA,gBAEC,UAAA;AAAA,kBAAAtC,EAAQ,IAAI,CAACuC,MAAQ;AACpB,0BAAMC,IAAMF,IAAMC,EAAI,GAAG,GACnBsB,KAAUtB,EAAI,SAASA,EAAI,OAAOC,GAAKF,CAAG,IAAIpD,GAAkBqD,EAAI,MAAMC,CAAG;AACnF,2BACE,gBAAAY;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBAEC,WAAW;AAAA,0BACT;AAAA,0BACAb,EAAI,OAAO,0BAA0B;AAAA,0BACrCA,EAAI,aAAa;AAAA,wBAAA,EAEhB,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,wBAEV,UAAAsB;AAAA,sBAAA;AAAA,sBATItB,EAAI;AAAA,oBAAA;AAAA,kBAYf,CAAC;AAAA,kBACA9B,IACC,gBAAA2C,EAAC,MAAA,EAAG,WAAU,gFACZ,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,kGACZ,UAAA3C,EAAW6B,CAAG,EAAA,CACjB,GACF,IACE;AAAA,gBAAA;AAAA,cAAA;AAAA,cAtCCsB;AAAA,YAAA;AAAA,UAyCX,CAAC,EAAA,CAEL;AAAA,QAAA,EAAA,CACF,EAAA,CACF;AAAA,QAECvD,KAAa,CAAC8B,IACb,gBAAAgB,EAAC,OAAA,EAAI,WAAU,iKACb,UAAA;AAAA,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,8CACZ,UAAAP,MAAU,IAAI,cAAc,YAAYE,IAAc,KAAKxC,IAAW,CAAC,IAAI,KAAK,IAAIwC,IAAcxC,GAAUsC,CAAK,CAAC,OAAOA,CAAK,GAAA,CACjI;AAAA,UACA,gBAAAM,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,YAAA,gBAAAC;AAAA,cAACU;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,UAAUf,KAAe;AAAA,gBACzB,SAAS,MAAMnB,EAAQ,CAACmC,MAAM,KAAK,IAAI,GAAGA,IAAI,CAAC,CAAC;AAAA,gBACjD,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAGD,gBAAAZ,EAAC,OAAA,EAAI,WAAU,8CAA6C,UAAA;AAAA,cAAA;AAAA,cACpDJ;AAAA,cAAY;AAAA,cAAID;AAAA,YAAA,GACxB;AAAA,YACA,gBAAAM;AAAA,cAACU;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,UAAUf,KAAeD;AAAA,gBACzB,SAAS,MAAMlB,EAAQ,CAACmC,MAAM,KAAK,IAAIjB,GAAYiB,IAAI,CAAC,CAAC;AAAA,gBAC1D,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAED,EAAA,CACF;AAAA,QAAA,EAAA,CACF,IACE;AAAA,MAAA,GACN;AAAA,MAED,GAAG5C;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -1,19 +1,11 @@
1
- import React from "react";
2
- import { BaseCardProps } from "./BaseCard";
3
- export interface WidgetSection {
4
- id?: string | number;
5
- title?: string;
6
- actions?: React.ReactNode;
7
- content: React.ReactNode;
8
- }
9
- export interface WidgetCardProps extends Omit<BaseCardProps, "variant" | "header" | "body"> {
10
- header: React.ReactNode;
11
- sections?: WidgetSection[];
12
- footer?: React.ReactNode;
13
- divided?: boolean;
14
- collapsible?: boolean;
15
- defaultExpanded?: boolean;
16
- loading?: boolean;
17
- emptyMessage?: string;
18
- }
19
- export default function WidgetCard({ header, sections, footer, divided, collapsible, defaultExpanded, loading, emptyMessage, ...cardProps }: WidgetCardProps): import("react/jsx-runtime").JSX.Element;
1
+ export default function WidgetCard({ header, sections, footer, divided, collapsible, defaultExpanded, loading, emptyMessage, ...cardProps }: {
2
+ [x: string]: any;
3
+ header: any;
4
+ sections?: never[] | undefined;
5
+ footer: any;
6
+ divided?: boolean | undefined;
7
+ collapsible?: boolean | undefined;
8
+ defaultExpanded?: boolean | undefined;
9
+ loading?: boolean | undefined;
10
+ emptyMessage?: string | undefined;
11
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,11 +1,11 @@
1
1
  import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
2
  import x from "react";
3
3
  import v from "./BaseCard.js";
4
- import f from "../ui/Text.js";
5
- function k({ title: d, actions: a, content: r, divided: l }) {
4
+ import k from "../ui/Text.js";
5
+ function N({ title: d, actions: a, content: r, divided: l }) {
6
6
  return /* @__PURE__ */ s("div", { className: l ? "border-t border-slate-200 pt-4 dark:border-slate-800" : "", children: [
7
7
  d || a ? /* @__PURE__ */ s("div", { className: "mb-3 flex items-start justify-between gap-3", children: [
8
- d ? /* @__PURE__ */ e(f, { as: "div", size: "sm", weight: "medium", children: d }) : /* @__PURE__ */ e("div", {}),
8
+ d ? /* @__PURE__ */ e(k, { as: "div", size: "sm", weight: "medium", children: d }) : /* @__PURE__ */ e("div", {}),
9
9
  a ? /* @__PURE__ */ e("div", { className: "shrink-0", children: a }) : null
10
10
  ] }) : null,
11
11
  /* @__PURE__ */ e("div", { children: r })
@@ -41,7 +41,7 @@ function j({
41
41
  /* @__PURE__ */ e("div", { className: "h-4 w-2/3 animate-pulse rounded bg-slate-200 dark:bg-slate-800" }),
42
42
  /* @__PURE__ */ e("div", { className: "h-4 w-1/2 animate-pulse rounded bg-slate-200 dark:bg-slate-800" })
43
43
  ] }) : i ? a.length === 0 ? /* @__PURE__ */ e("div", { className: "rounded-xl border border-dashed border-slate-300 bg-slate-50 p-6 text-center text-sm text-slate-600 dark:border-slate-700 dark:bg-slate-950/30 dark:text-slate-300", children: b }) : a.map((t, n) => /* @__PURE__ */ e(
44
- k,
44
+ N,
45
45
  {
46
46
  title: t?.title,
47
47
  actions: t?.actions,
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetCard.js","sources":["../../../../src/components/library/cards/WidgetCard.tsx"],"sourcesContent":["import React from \"react\";\nimport BaseCard, { BaseCardProps } from \"./BaseCard\";\nimport UIText from \"../ui/Text\";\n\nexport interface WidgetSection {\n id?: string | number;\n title?: string;\n actions?: React.ReactNode;\n content: React.ReactNode;\n}\n\ninterface SectionProps {\n title?: string;\n actions?: React.ReactNode;\n content: React.ReactNode;\n divided: boolean;\n}\n\nfunction Section({ title, actions, content, divided }: SectionProps) {\n return (\n <div className={divided ? \"border-t border-slate-200 pt-4 dark:border-slate-800\" : \"\"}>\n {(title || actions) ? (\n <div className=\"mb-3 flex items-start justify-between gap-3\">\n {title ? (\n <UIText as=\"div\" size=\"sm\" weight=\"medium\">\n {title}\n </UIText>\n ) : (\n <div />\n )}\n {actions ? <div className=\"shrink-0\">{actions}</div> : null}\n </div>\n ) : null}\n <div>{content}</div>\n </div>\n );\n}\n\nexport interface WidgetCardProps extends Omit<BaseCardProps, \"variant\" | \"header\" | \"body\"> {\n header: React.ReactNode;\n sections?: WidgetSection[];\n footer?: React.ReactNode;\n divided?: boolean;\n collapsible?: boolean;\n defaultExpanded?: boolean;\n loading?: boolean;\n emptyMessage?: string;\n}\n\nexport default function WidgetCard({\n header,\n sections = [],\n footer,\n divided = false,\n collapsible = false,\n defaultExpanded = true,\n loading = false,\n emptyMessage = \"No sections.\",\n ...cardProps\n}: WidgetCardProps) {\n const [expanded, setExpanded] = React.useState(defaultExpanded);\n\n const hdr = (\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">{header}</div>\n {collapsible ? (\n <button\n type=\"button\"\n className=\"rounded-lg border border-slate-200 bg-white px-2 py-1 text-xs font-semibold text-slate-700 shadow-sm hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-200 dark:hover:bg-slate-800\"\n onClick={() => setExpanded((e) => !e)}\n aria-expanded={expanded}\n aria-label=\"Toggle widget\"\n >\n {expanded ? \"Collapse\" : \"Expand\"}\n </button>\n ) : null}\n </div>\n );\n\n const body = (\n <div className=\"mt-4 space-y-4\">\n {loading ? (\n <div className=\"space-y-3\">\n <div className=\"h-4 w-1/3 animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n <div className=\"h-4 w-2/3 animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n <div className=\"h-4 w-1/2 animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n </div>\n ) : expanded ? (\n sections.length === 0 ? (\n <div className=\"rounded-xl border border-dashed border-slate-300 bg-slate-50 p-6 text-center text-sm text-slate-600 dark:border-slate-700 dark:bg-slate-950/30 dark:text-slate-300\">\n {emptyMessage}\n </div>\n ) : (\n sections.map((s, idx) => (\n <Section\n key={s?.id ?? idx}\n title={s?.title}\n actions={s?.actions}\n content={s?.content}\n divided={divided && idx !== 0}\n />\n ))\n )\n ) : (\n <div className=\"text-sm text-slate-600 dark:text-slate-300\">Collapsed.</div>\n )}\n\n {footer ? <div className={divided ? \"border-t border-slate-200 pt-4 dark:border-slate-800\" : \"\"}>{footer}</div> : null}\n </div>\n );\n\n return <BaseCard variant=\"widget\" header={hdr} body={body} {...cardProps} />;\n}\n"],"names":["Section","title","actions","content","divided","jsxs","jsx","UIText","WidgetCard","header","sections","footer","collapsible","defaultExpanded","loading","emptyMessage","cardProps","expanded","setExpanded","React","hdr","e","body","s","idx","BaseCard"],"mappings":";;;;AAkBA,SAASA,EAAQ,EAAE,OAAAC,GAAO,SAAAC,GAAS,SAAAC,GAAS,SAAAC,KAAyB;AACnE,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAWD,IAAU,yDAAyD,IAC/E,UAAA;AAAA,IAAAH,KAASC,IACT,gBAAAG,EAAC,OAAA,EAAI,WAAU,+CACZ,UAAA;AAAA,MAAAJ,IACC,gBAAAK,EAACC,GAAA,EAAO,IAAG,OAAM,MAAK,MAAK,QAAO,UAC/B,UAAAN,EAAA,CACH,IAEA,gBAAAK,EAAC,OAAA,EAAI;AAAA,MAENJ,IAAU,gBAAAI,EAAC,OAAA,EAAI,WAAU,YAAY,aAAQ,IAAS;AAAA,IAAA,EAAA,CACzD,IACE;AAAA,IACJ,gBAAAA,EAAC,SAAK,UAAAH,EAAA,CAAQ;AAAA,EAAA,GAChB;AAEJ;AAaA,SAAwBK,EAAW;AAAA,EACjC,QAAAC;AAAA,EACA,UAAAC,IAAW,CAAA;AAAA,EACX,QAAAC;AAAA,EACA,SAAAP,IAAU;AAAA,EACV,aAAAQ,IAAc;AAAA,EACd,iBAAAC,IAAkB;AAAA,EAClB,SAAAC,IAAU;AAAA,EACV,cAAAC,IAAe;AAAA,EACf,GAAGC;AACL,GAAoB;AAClB,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAM,SAASN,CAAe,GAExDO,IACJ,gBAAAf,EAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,WAAW,UAAAG,GAAO;AAAA,IAChCG,IACC,gBAAAN;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAAS,MAAMY,EAAY,CAACG,MAAM,CAACA,CAAC;AAAA,QACpC,iBAAeJ;AAAA,QACf,cAAW;AAAA,QAEV,cAAW,aAAa;AAAA,MAAA;AAAA,IAAA,IAEzB;AAAA,EAAA,GACN,GAGIK,IACJ,gBAAAjB,EAAC,OAAA,EAAI,WAAU,kBACZ,UAAA;AAAA,IAAAS,IACC,gBAAAT,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,iEAAA,CAAiE;AAAA,MAChF,gBAAAA,EAAC,OAAA,EAAI,WAAU,iEAAA,CAAiE;AAAA,MAChF,gBAAAA,EAAC,OAAA,EAAI,WAAU,iEAAA,CAAiE;AAAA,IAAA,EAAA,CAClF,IACEW,IACFP,EAAS,WAAW,IAClB,gBAAAJ,EAAC,OAAA,EAAI,WAAU,sKACZ,aACH,IAEAI,EAAS,IAAI,CAACa,GAAGC,MACf,gBAAAlB;AAAA,MAACN;AAAA,MAAA;AAAA,QAEC,OAAOuB,GAAG;AAAA,QACV,SAASA,GAAG;AAAA,QACZ,SAASA,GAAG;AAAA,QACZ,SAASnB,KAAWoB,MAAQ;AAAA,MAAA;AAAA,MAJvBD,GAAG,MAAMC;AAAA,IAAA,CAMjB,IAGH,gBAAAlB,EAAC,OAAA,EAAI,WAAU,8CAA6C,UAAA,cAAU;AAAA,IAGvEK,sBAAU,OAAA,EAAI,WAAWP,IAAU,yDAAyD,IAAK,aAAO,IAAS;AAAA,EAAA,GACpH;AAGF,SAAO,gBAAAE,EAACmB,KAAS,SAAQ,UAAS,QAAQL,GAAK,MAAAE,GAAa,GAAGN,GAAW;AAC5E;"}
1
+ {"version":3,"file":"WidgetCard.js","sources":["../../../../src/components/library/cards/WidgetCard.jsx"],"sourcesContent":["import React from \"react\";\nimport BaseCard from \"./BaseCard\";\nimport UIText from \"../ui/Text\";\n\nfunction Section({ title, actions, content, divided }) {\n return (\n <div className={divided ? \"border-t border-slate-200 pt-4 dark:border-slate-800\" : \"\"}>\n {(title || actions) ? (\n <div className=\"mb-3 flex items-start justify-between gap-3\">\n {title ? (\n <UIText as=\"div\" size=\"sm\" weight=\"medium\">\n {title}\n </UIText>\n ) : (\n <div />\n )}\n {actions ? <div className=\"shrink-0\">{actions}</div> : null}\n </div>\n ) : null}\n <div>{content}</div>\n </div>\n );\n}\n\nexport default function WidgetCard({\n header,\n sections = [],\n footer,\n divided = false,\n collapsible = false,\n defaultExpanded = true,\n loading = false,\n emptyMessage = \"No sections.\",\n ...cardProps\n}) {\n const [expanded, setExpanded] = React.useState(defaultExpanded);\n\n const hdr = (\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">{header}</div>\n {collapsible ? (\n <button\n type=\"button\"\n className=\"rounded-lg border border-slate-200 bg-white px-2 py-1 text-xs font-semibold text-slate-700 shadow-sm hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-200 dark:hover:bg-slate-800\"\n onClick={() => setExpanded((e) => !e)}\n aria-expanded={expanded}\n aria-label=\"Toggle widget\"\n >\n {expanded ? \"Collapse\" : \"Expand\"}\n </button>\n ) : null}\n </div>\n );\n\n const body = (\n <div className=\"mt-4 space-y-4\">\n {loading ? (\n <div className=\"space-y-3\">\n <div className=\"h-4 w-1/3 animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n <div className=\"h-4 w-2/3 animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n <div className=\"h-4 w-1/2 animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n </div>\n ) : expanded ? (\n sections.length === 0 ? (\n <div className=\"rounded-xl border border-dashed border-slate-300 bg-slate-50 p-6 text-center text-sm text-slate-600 dark:border-slate-700 dark:bg-slate-950/30 dark:text-slate-300\">\n {emptyMessage}\n </div>\n ) : (\n sections.map((s, idx) => (\n <Section\n key={s?.id ?? idx}\n title={s?.title}\n actions={s?.actions}\n content={s?.content}\n divided={divided && idx !== 0}\n />\n ))\n )\n ) : (\n <div className=\"text-sm text-slate-600 dark:text-slate-300\">Collapsed.</div>\n )}\n\n {footer ? <div className={divided ? \"border-t border-slate-200 pt-4 dark:border-slate-800\" : \"\"}>{footer}</div> : null}\n </div>\n );\n\n return <BaseCard variant=\"widget\" header={hdr} body={body} {...cardProps} />;\n}\n\n\n"],"names":["Section","title","actions","content","divided","jsxs","jsx","UIText","WidgetCard","header","sections","footer","collapsible","defaultExpanded","loading","emptyMessage","cardProps","expanded","setExpanded","React","hdr","e","body","s","idx","BaseCard"],"mappings":";;;;AAIA,SAASA,EAAQ,EAAE,OAAAC,GAAO,SAAAC,GAAS,SAAAC,GAAS,SAAAC,KAAW;AACrD,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAWD,IAAU,yDAAyD,IAC/E,UAAA;AAAA,IAAAH,KAASC,IACT,gBAAAG,EAAC,OAAA,EAAI,WAAU,+CACZ,UAAA;AAAA,MAAAJ,IACC,gBAAAK,EAACC,GAAA,EAAO,IAAG,OAAM,MAAK,MAAK,QAAO,UAC/B,UAAAN,EAAA,CACH,IAEA,gBAAAK,EAAC,OAAA,EAAI;AAAA,MAENJ,IAAU,gBAAAI,EAAC,OAAA,EAAI,WAAU,YAAY,aAAQ,IAAS;AAAA,IAAA,EAAA,CACzD,IACE;AAAA,IACJ,gBAAAA,EAAC,SAAK,UAAAH,EAAA,CAAQ;AAAA,EAAA,GAChB;AAEJ;AAEA,SAAwBK,EAAW;AAAA,EACjC,QAAAC;AAAA,EACA,UAAAC,IAAW,CAAA;AAAA,EACX,QAAAC;AAAA,EACA,SAAAP,IAAU;AAAA,EACV,aAAAQ,IAAc;AAAA,EACd,iBAAAC,IAAkB;AAAA,EAClB,SAAAC,IAAU;AAAA,EACV,cAAAC,IAAe;AAAA,EACf,GAAGC;AACL,GAAG;AACD,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAM,SAASN,CAAe,GAExDO,IACJ,gBAAAf,EAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,WAAW,UAAAG,GAAO;AAAA,IAChCG,IACC,gBAAAN;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAAS,MAAMY,EAAY,CAACG,MAAM,CAACA,CAAC;AAAA,QACpC,iBAAeJ;AAAA,QACf,cAAW;AAAA,QAEV,cAAW,aAAa;AAAA,MAAA;AAAA,IAAA,IAEzB;AAAA,EAAA,GACN,GAGIK,IACJ,gBAAAjB,EAAC,OAAA,EAAI,WAAU,kBACZ,UAAA;AAAA,IAAAS,IACC,gBAAAT,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,iEAAA,CAAiE;AAAA,MAChF,gBAAAA,EAAC,OAAA,EAAI,WAAU,iEAAA,CAAiE;AAAA,MAChF,gBAAAA,EAAC,OAAA,EAAI,WAAU,iEAAA,CAAiE;AAAA,IAAA,EAAA,CAClF,IACEW,IACFP,EAAS,WAAW,IAClB,gBAAAJ,EAAC,OAAA,EAAI,WAAU,sKACZ,aACH,IAEAI,EAAS,IAAI,CAACa,GAAGC,MACf,gBAAAlB;AAAA,MAACN;AAAA,MAAA;AAAA,QAEC,OAAOuB,GAAG;AAAA,QACV,SAASA,GAAG;AAAA,QACZ,SAASA,GAAG;AAAA,QACZ,SAASnB,KAAWoB,MAAQ;AAAA,MAAA;AAAA,MAJvBD,GAAG,MAAMC;AAAA,IAAA,CAMjB,IAGH,gBAAAlB,EAAC,OAAA,EAAI,WAAU,8CAA6C,UAAA,cAAU;AAAA,IAGvEK,sBAAU,OAAA,EAAI,WAAWP,IAAU,yDAAyD,IAAK,aAAO,IAAS;AAAA,EAAA,GACpH;AAGF,SAAO,gBAAAE,EAACmB,KAAS,SAAQ,UAAS,QAAQL,GAAK,MAAAE,GAAa,GAAGN,GAAW;AAC5E;"}
@@ -1,29 +1,22 @@
1
- import React from "react";
2
- interface Dimensions {
3
- width: number;
4
- height: number;
5
- }
6
- export interface D3ChartProps {
7
- data: unknown;
8
- renderChart?: (svg: SVGSVGElement, data: unknown, dims: Dimensions, options: Record<string, unknown>) => void;
9
- options?: Record<string, unknown>;
10
- width?: number;
11
- height?: number;
12
- responsive?: boolean;
13
- aspectRatio?: number;
14
- className?: string;
15
- style?: React.CSSProperties;
16
- containerStyle?: React.CSSProperties;
17
- svgStyle?: React.CSSProperties;
18
- loading?: boolean;
19
- error?: string | Error;
20
- ariaLabel?: string;
21
- }
22
1
  /**
23
2
  * Minimal D3 chart host:
24
3
  * - Owns the <svg> element
25
4
  * - Computes responsive dimensions from container size
26
5
  * - Calls renderChart(svgEl, data, dims, options)
27
6
  */
28
- export default function D3Chart({ data, renderChart, options, width, height, responsive, aspectRatio, className, style, containerStyle, svgStyle, loading, error, ariaLabel }: D3ChartProps): React.ReactElement;
29
- export {};
7
+ export default function D3Chart({ data, renderChart, options, width, height, responsive, aspectRatio, className, style, containerStyle, svgStyle, loading, error, ariaLabel }: {
8
+ data: any;
9
+ renderChart: any;
10
+ options?: {} | undefined;
11
+ width: any;
12
+ height?: number | undefined;
13
+ responsive?: boolean | undefined;
14
+ aspectRatio: any;
15
+ className?: string | undefined;
16
+ style: any;
17
+ containerStyle: any;
18
+ svgStyle: any;
19
+ loading?: boolean | undefined;
20
+ error: any;
21
+ ariaLabel?: string | undefined;
22
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"D3Chart.js","sources":["../../../../src/components/library/charts/D3Chart.tsx"],"sourcesContent":["import React from \"react\";\n\ninterface Dimensions {\n width: number;\n height: number;\n}\n\nexport interface D3ChartProps {\n data: unknown;\n renderChart?: (svg: SVGSVGElement, data: unknown, dims: Dimensions, options: Record<string, unknown>) => void;\n options?: Record<string, unknown>;\n width?: number;\n height?: number;\n responsive?: boolean;\n aspectRatio?: number;\n className?: string;\n style?: React.CSSProperties;\n containerStyle?: React.CSSProperties;\n svgStyle?: React.CSSProperties;\n loading?: boolean;\n error?: string | Error;\n ariaLabel?: string;\n}\n\n/**\n * Minimal D3 chart host:\n * - Owns the <svg> element\n * - Computes responsive dimensions from container size\n * - Calls renderChart(svgEl, data, dims, options)\n */\nexport default function D3Chart({\n data,\n renderChart,\n options = {},\n width,\n height = 280,\n responsive = false,\n aspectRatio,\n className = \"\",\n style,\n containerStyle,\n svgStyle,\n loading = false,\n error,\n ariaLabel = \"Chart\"\n}: D3ChartProps): React.ReactElement {\n const containerRef = React.useRef<HTMLDivElement>(null);\n const svgRef = React.useRef<SVGSVGElement>(null);\n const [containerWidth, setContainerWidth] = React.useState<number | null>(null);\n\n React.useEffect(() => {\n if (!responsive) return;\n const el = containerRef.current;\n if (!el) return;\n\n const obs = new ResizeObserver((entries) => {\n const w = entries?.[0]?.contentRect?.width;\n if (typeof w === \"number\" && Number.isFinite(w)) setContainerWidth(w);\n });\n obs.observe(el);\n return () => obs.disconnect();\n }, [responsive]);\n\n const computedWidth = responsive ? containerWidth : width;\n const computedHeight = React.useMemo(() => {\n if (!responsive) return height;\n if (!containerWidth) return height;\n if (aspectRatio && Number.isFinite(aspectRatio) && aspectRatio > 0) return containerWidth / aspectRatio;\n return height;\n }, [responsive, containerWidth, height, aspectRatio]);\n\n React.useEffect(() => {\n if (loading || error) return;\n if (!renderChart) return;\n const svgEl = svgRef.current;\n if (!svgEl) return;\n\n const dims: Dimensions = {\n width: computedWidth ?? 0,\n height: computedHeight ?? 0\n };\n\n // Avoid calling renderChart before we have a measurable width in responsive mode\n if (responsive && (!dims.width || dims.width < 10)) return;\n if (!dims.height || dims.height < 10) return;\n\n renderChart(svgEl, data, dims, options);\n }, [data, renderChart, options, computedWidth, computedHeight, responsive, loading, error]);\n\n if (error) {\n return (\n <div\n ref={containerRef}\n className={[\"w-full rounded-xl border border-rose-200 bg-rose-50 p-4 text-sm text-rose-900 dark:border-rose-900/40 dark:bg-rose-950/30 dark:text-rose-100\", className]\n .filter(Boolean)\n .join(\" \")}\n style={containerStyle}\n >\n {String(error)}\n </div>\n );\n }\n\n return (\n <div\n ref={containerRef}\n className={[\"w-full\", className].filter(Boolean).join(\" \")}\n style={{ ...containerStyle, position: \"relative\" }}\n >\n {loading ? (\n <div className=\"h-full w-full rounded-xl border border-slate-200 bg-white p-5 shadow-sm dark:border-slate-800 dark:bg-slate-900\">\n <div className=\"space-y-3\">\n <div className=\"h-4 w-1/3 animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n <div className=\"h-44 w-full animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n </div>\n </div>\n ) : (\n <svg\n ref={svgRef}\n role=\"img\"\n aria-label={ariaLabel}\n width={computedWidth ?? width ?? \"100%\"}\n height={computedHeight}\n style={{ ...svgStyle, ...style, display: \"block\" }}\n />\n )}\n </div>\n );\n}\n"],"names":["D3Chart","data","renderChart","options","width","height","responsive","aspectRatio","className","style","containerStyle","svgStyle","loading","error","ariaLabel","containerRef","React","svgRef","containerWidth","setContainerWidth","el","obs","entries","w","computedWidth","computedHeight","svgEl","dims","jsx","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"D3Chart.js","sources":["../../../../src/components/library/charts/D3Chart.jsx"],"sourcesContent":["import React from \"react\";\n\n/**\n * Minimal D3 chart host:\n * - Owns the <svg> element\n * - Computes responsive dimensions from container size\n * - Calls renderChart(svgEl, data, dims, options)\n */\nexport default function D3Chart({\n data,\n renderChart,\n options = {},\n width,\n height = 280,\n responsive = false,\n aspectRatio,\n className = \"\",\n style,\n containerStyle,\n svgStyle,\n loading = false,\n error,\n ariaLabel = \"Chart\"\n}) {\n const containerRef = React.useRef(null);\n const svgRef = React.useRef(null);\n const [containerWidth, setContainerWidth] = React.useState(null);\n\n React.useEffect(() => {\n if (!responsive) return;\n const el = containerRef.current;\n if (!el) return;\n\n const obs = new ResizeObserver((entries) => {\n const w = entries?.[0]?.contentRect?.width;\n if (typeof w === \"number\" && Number.isFinite(w)) setContainerWidth(w);\n });\n obs.observe(el);\n return () => obs.disconnect();\n }, [responsive]);\n\n const computedWidth = responsive ? containerWidth : width;\n const computedHeight = React.useMemo(() => {\n if (!responsive) return height;\n if (!containerWidth) return height;\n if (aspectRatio && Number.isFinite(aspectRatio) && aspectRatio > 0) return containerWidth / aspectRatio;\n return height;\n }, [responsive, containerWidth, height, aspectRatio]);\n\n React.useEffect(() => {\n if (loading || error) return;\n if (!renderChart) return;\n const svgEl = svgRef.current;\n if (!svgEl) return;\n\n const dims = {\n width: computedWidth ?? 0,\n height: computedHeight ?? 0\n };\n\n // Avoid calling renderChart before we have a measurable width in responsive mode\n if (responsive && (!dims.width || dims.width < 10)) return;\n if (!dims.height || dims.height < 10) return;\n\n renderChart(svgEl, data, dims, options);\n }, [data, renderChart, options, computedWidth, computedHeight, responsive, loading, error]);\n\n if (error) {\n return (\n <div\n ref={containerRef}\n className={[\"w-full rounded-xl border border-rose-200 bg-rose-50 p-4 text-sm text-rose-900 dark:border-rose-900/40 dark:bg-rose-950/30 dark:text-rose-100\", className]\n .filter(Boolean)\n .join(\" \")}\n style={containerStyle}\n >\n {String(error)}\n </div>\n );\n }\n\n return (\n <div\n ref={containerRef}\n className={[\"w-full\", className].filter(Boolean).join(\" \")}\n style={{ ...containerStyle, position: \"relative\" }}\n >\n {loading ? (\n <div className=\"h-full w-full rounded-xl border border-slate-200 bg-white p-5 shadow-sm dark:border-slate-800 dark:bg-slate-900\">\n <div className=\"space-y-3\">\n <div className=\"h-4 w-1/3 animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n <div className=\"h-44 w-full animate-pulse rounded bg-slate-200 dark:bg-slate-800\" />\n </div>\n </div>\n ) : (\n <svg\n ref={svgRef}\n role=\"img\"\n aria-label={ariaLabel}\n width={computedWidth ?? width ?? \"100%\"}\n height={computedHeight}\n style={{ ...svgStyle, ...style, display: \"block\" }}\n />\n )}\n </div>\n );\n}\n\n\n"],"names":["D3Chart","data","renderChart","options","width","height","responsive","aspectRatio","className","style","containerStyle","svgStyle","loading","error","ariaLabel","containerRef","React","svgRef","containerWidth","setContainerWidth","el","obs","entries","w","computedWidth","computedHeight","svgEl","dims","jsx","jsxs"],"mappings":"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"}
@@ -1,34 +1,4 @@
1
- interface Dimensions {
2
- width: number;
3
- height: number;
1
+ export namespace D3ChartTemplates {
2
+ function lineChart(svg: any, data: any, dims: any, opts?: {}): void;
3
+ function groupedBarChart(svg: any, data: any, dims: any, opts?: {}): void;
4
4
  }
5
- interface Margin {
6
- top: number;
7
- right: number;
8
- bottom: number;
9
- left: number;
10
- }
11
- interface LineChartOptions {
12
- xKey?: string;
13
- yKey?: string;
14
- margin?: Margin;
15
- stroke?: string;
16
- strokeWidth?: number;
17
- showAxes?: boolean;
18
- showGrid?: boolean;
19
- }
20
- interface GroupedBarChartOptions {
21
- groups?: string[];
22
- margin?: Margin;
23
- xKey?: string;
24
- colors?: string[];
25
- barRadius?: number;
26
- yFormat?: string;
27
- showGrid?: boolean;
28
- }
29
- type DataPoint = Record<string, unknown>;
30
- export declare const D3ChartTemplates: {
31
- lineChart(svg: SVGSVGElement, data: DataPoint[], dims: Dimensions, opts?: LineChartOptions): void;
32
- groupedBarChart(svg: SVGSVGElement, data: DataPoint[], dims: Dimensions, opts?: GroupedBarChartOptions): void;
33
- };
34
- export {};
@@ -14,8 +14,8 @@ const F = {
14
14
  showGrid: A = !0
15
15
  } = w;
16
16
  C(n);
17
- const p = c.width, m = c.height, h = Math.max(0, p - r.left - r.right), i = Math.max(0, m - r.top - r.bottom), d = e.select(n).attr("viewBox", `0 0 ${p} ${m}`).append("g").attr("transform", `translate(${r.left},${r.top})`), g = l.map((t) => t?.[s]).filter((t) => t != null), x = l.map((t) => t?.[a]).filter((t) => t != null), f = e.extent(g), u = e.extent(x), y = e.scaleLinear().domain(f).nice().range([0, h]), o = e.scaleLinear().domain(u).nice().range([i, 0]);
18
- A && d.append("g").attr("class", "grid").call(e.axisLeft(o).ticks(5).tickSize(-h).tickFormat(() => "")).call((t) => t.selectAll("line").attr("stroke", "currentColor").attr("opacity", 0.12)).call((t) => t.selectAll("path").attr("stroke", "none"));
17
+ const p = c.width, m = c.height, h = Math.max(0, p - r.left - r.right), i = Math.max(0, m - r.top - r.bottom), d = e.select(n).attr("viewBox", `0 0 ${p} ${m}`).append("g").attr("transform", `translate(${r.left},${r.top})`), x = l.map((t) => t?.[s]).filter((t) => t != null), f = l.map((t) => t?.[a]).filter((t) => t != null), g = e.extent(x), u = e.extent(f), y = e.scaleLinear().domain(g).nice().range([0, h]), o = e.scaleLinear().domain(u).nice().range([i, 0]);
18
+ A && d.append("g").attr("class", "grid").call(e.axisLeft(o).ticks(5).tickSize(-h).tickFormat("")).call((t) => t.selectAll("line").attr("stroke", "currentColor").attr("opacity", 0.12)).call((t) => t.selectAll("path").attr("stroke", "none"));
19
19
  const B = e.line().x((t) => y(t[s])).y((t) => o(t[a])).defined((t) => t?.[s] != null && t?.[a] != null);
20
20
  d.append("path").datum(l).attr("fill", "none").attr("stroke", k).attr("stroke-width", b).attr("d", B), $ && (d.append("g").attr("transform", `translate(0,${i})`).call(e.axisBottom(y).ticks(6)).call((t) => t.selectAll("text").attr("font-size", 10)), d.append("g").call(e.axisLeft(o).ticks(5)).call((t) => t.selectAll("text").attr("font-size", 10)));
21
21
  },
@@ -30,11 +30,11 @@ const F = {
30
30
  showGrid: A = !0
31
31
  } = w;
32
32
  C(n);
33
- const p = c.width, m = c.height, h = Math.max(0, p - a.left - a.right), i = Math.max(0, m - a.top - a.bottom), g = e.select(n).attr("viewBox", `0 0 ${p} ${m}`).append("g").attr("transform", `translate(${a.left},${a.top})`), x = s.length ? s : Object.keys(l[0] || {}).filter((t) => t !== r), f = e.scaleBand().domain(l.map((t) => String(t[r]))).range([0, h]).padding(0.3), u = e.scaleBand().domain(x).range([0, f.bandwidth()]).padding(0.05), y = (e.max(l, (t) => e.max(x, (z) => t[z])) ?? 0) * 1.15, o = e.scaleLinear().domain([0, y]).range([i, 0]);
34
- g.append("g").attr("transform", `translate(0,${i})`).call(e.axisBottom(f).tickSize(0)).call((t) => t.selectAll("text").attr("fill", "#94a3b8").attr("font-size", "11px")).call((t) => t.select(".domain").remove()), g.append("g").call(e.axisLeft(o).ticks(5).tickFormat(e.format($)).tickSize(A ? -h : 0)).call((t) => t.selectAll("text").attr("fill", "#94a3b8").attr("font-size", "10px")).call((t) => t.selectAll(".tick line").attr("stroke", "#e2e8f0").attr("stroke-dasharray", "2,2")).call((t) => t.select(".domain").remove());
35
- const B = g.selectAll(".bar-group").data(l).join("g").attr("class", "bar-group").attr("transform", (t) => `translate(${f(String(t[r]))},0)`);
36
- x.forEach((t, z) => {
37
- B.append("rect").attr("x", u(t) ?? 0).attr("y", (L) => o(L[t])).attr("width", u.bandwidth()).attr("height", (L) => i - o(L[t])).attr("rx", b).attr("fill", k[z % k.length]);
33
+ const p = c.width, m = c.height, h = Math.max(0, p - a.left - a.right), i = Math.max(0, m - a.top - a.bottom), x = e.select(n).attr("viewBox", `0 0 ${p} ${m}`).append("g").attr("transform", `translate(${a.left},${a.top})`), f = s.length ? s : Object.keys(l[0] || {}).filter((t) => t !== r), g = e.scaleBand().domain(l.map((t) => t[r])).range([0, h]).padding(0.3), u = e.scaleBand().domain(f).range([0, g.bandwidth()]).padding(0.05), y = e.max(l, (t) => e.max(f, (z) => t[z])) * 1.15, o = e.scaleLinear().domain([0, y]).range([i, 0]);
34
+ x.append("g").attr("transform", `translate(0,${i})`).call(e.axisBottom(g).tickSize(0)).call((t) => t.selectAll("text").attr("fill", "#94a3b8").attr("font-size", "11px")).call((t) => t.select(".domain").remove()), x.append("g").call(e.axisLeft(o).ticks(5).tickFormat(e.format($)).tickSize(A ? -h : 0)).call((t) => t.selectAll("text").attr("fill", "#94a3b8").attr("font-size", "10px")).call((t) => t.selectAll(".tick line").attr("stroke", "#e2e8f0").attr("stroke-dasharray", "2,2")).call((t) => t.select(".domain").remove());
35
+ const B = x.selectAll(".bar-group").data(l).join("g").attr("class", "bar-group").attr("transform", (t) => `translate(${g(t[r])},0)`);
36
+ f.forEach((t, z) => {
37
+ B.append("rect").attr("x", u(t)).attr("y", (L) => o(L[t])).attr("width", u.bandwidth()).attr("height", (L) => i - o(L[t])).attr("rx", b).attr("fill", k[z % k.length]);
38
38
  });
39
39
  }
40
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"D3ChartTemplates.js","sources":["../../../../src/components/library/charts/D3ChartTemplates.tsx"],"sourcesContent":["import * as d3 from \"d3\";\n\ninterface Dimensions {\n width: number;\n height: number;\n}\n\ninterface Margin {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\ninterface LineChartOptions {\n xKey?: string;\n yKey?: string;\n margin?: Margin;\n stroke?: string;\n strokeWidth?: number;\n showAxes?: boolean;\n showGrid?: boolean;\n}\n\ninterface GroupedBarChartOptions {\n groups?: string[];\n margin?: Margin;\n xKey?: string;\n colors?: string[];\n barRadius?: number;\n yFormat?: string;\n showGrid?: boolean;\n}\n\ntype DataPoint = Record<string, unknown>;\n\nfunction clear(svg: SVGSVGElement): void {\n d3.select(svg).selectAll(\"*\").remove();\n}\n\nexport const D3ChartTemplates = {\n lineChart(svg: SVGSVGElement, data: DataPoint[], dims: Dimensions, opts: LineChartOptions = {}): void {\n const {\n xKey = \"x\",\n yKey = \"y\",\n margin = { top: 12, right: 16, bottom: 28, left: 40 },\n stroke = \"#6366F1\",\n strokeWidth = 2,\n showAxes = true,\n showGrid = true\n } = opts;\n\n clear(svg);\n\n const width = dims.width;\n const height = dims.height;\n const innerW = Math.max(0, width - margin.left - margin.right);\n const innerH = Math.max(0, height - margin.top - margin.bottom);\n\n const g = d3.select(svg).attr(\"viewBox\", `0 0 ${width} ${height}`).append(\"g\").attr(\"transform\", `translate(${margin.left},${margin.top})`);\n\n const xs = data.map((d) => d?.[xKey]).filter((v) => v != null) as number[];\n const ys = data.map((d) => d?.[yKey]).filter((v) => v != null) as number[];\n\n const xDomain = d3.extent(xs) as [number, number];\n const yDomain = d3.extent(ys) as [number, number];\n\n const x = d3.scaleLinear().domain(xDomain).nice().range([0, innerW]);\n const y = d3.scaleLinear().domain(yDomain).nice().range([innerH, 0]);\n\n if (showGrid) {\n g.append(\"g\")\n .attr(\"class\", \"grid\")\n .call(d3.axisLeft(y).ticks(5).tickSize(-innerW).tickFormat(() => \"\"))\n .call((grid: d3.Selection<SVGGElement, unknown, null, undefined>) => grid.selectAll(\"line\").attr(\"stroke\", \"currentColor\").attr(\"opacity\", 0.12))\n .call((grid: d3.Selection<SVGGElement, unknown, null, undefined>) => grid.selectAll(\"path\").attr(\"stroke\", \"none\"));\n }\n\n const line = d3\n .line<DataPoint>()\n .x((d) => x(d[xKey] as number))\n .y((d) => y(d[yKey] as number))\n .defined((d) => d?.[xKey] != null && d?.[yKey] != null);\n\n g.append(\"path\")\n .datum(data)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", stroke)\n .attr(\"stroke-width\", strokeWidth)\n .attr(\"d\", line);\n\n if (showAxes) {\n g.append(\"g\")\n .attr(\"transform\", `translate(0,${innerH})`)\n .call(d3.axisBottom(x).ticks(6))\n .call((ax: d3.Selection<SVGGElement, unknown, null, undefined>) => ax.selectAll(\"text\").attr(\"font-size\", 10));\n\n g.append(\"g\")\n .call(d3.axisLeft(y).ticks(5))\n .call((ax: d3.Selection<SVGGElement, unknown, null, undefined>) => ax.selectAll(\"text\").attr(\"font-size\", 10));\n }\n },\n\n groupedBarChart(svg: SVGSVGElement, data: DataPoint[], dims: Dimensions, opts: GroupedBarChartOptions = {}): void {\n const {\n groups = [],\n margin = { top: 20, right: 20, bottom: 40, left: 55 },\n xKey = \"x\",\n colors = [\"#6366F1\", \"#CBD5E1\"],\n barRadius = 4,\n yFormat = \",.0f\",\n showGrid = true,\n } = opts;\n\n clear(svg);\n\n const width = dims.width;\n const height = dims.height;\n const innerW = Math.max(0, width - margin.left - margin.right);\n const innerH = Math.max(0, height - margin.top - margin.bottom);\n\n const sel = d3.select(svg).attr(\"viewBox\", `0 0 ${width} ${height}`);\n const g = sel.append(\"g\").attr(\"transform\", `translate(${margin.left},${margin.top})`);\n\n const groupKeys = groups.length ? groups : Object.keys(data[0] || {}).filter((k) => k !== xKey);\n\n const x0 = d3.scaleBand().domain(data.map((d: DataPoint) => String(d[xKey]))).range([0, innerW]).padding(0.3);\n const x1 = d3.scaleBand().domain(groupKeys).range([0, x0.bandwidth()]).padding(0.05);\n const yMax = (d3.max(data, (d: DataPoint) => d3.max(groupKeys, (k: string) => d[k] as number)) ?? 0) * 1.15;\n const y = d3.scaleLinear().domain([0, yMax]).range([innerH, 0]);\n\n g.append(\"g\")\n .attr(\"transform\", `translate(0,${innerH})`)\n .call(d3.axisBottom(x0).tickSize(0))\n .call((ax: d3.Selection<SVGGElement, unknown, null, undefined>) => ax.selectAll(\"text\").attr(\"fill\", \"#94a3b8\").attr(\"font-size\", \"11px\"))\n .call((ax: d3.Selection<SVGGElement, unknown, null, undefined>) => ax.select(\".domain\").remove());\n\n g.append(\"g\")\n .call(d3.axisLeft(y).ticks(5).tickFormat(d3.format(yFormat)).tickSize(showGrid ? -innerW : 0))\n .call((ax: d3.Selection<SVGGElement, unknown, null, undefined>) => ax.selectAll(\"text\").attr(\"fill\", \"#94a3b8\").attr(\"font-size\", \"10px\"))\n .call((ax: d3.Selection<SVGGElement, unknown, null, undefined>) => ax.selectAll(\".tick line\").attr(\"stroke\", \"#e2e8f0\").attr(\"stroke-dasharray\", \"2,2\"))\n .call((ax: d3.Selection<SVGGElement, unknown, null, undefined>) => ax.select(\".domain\").remove());\n\n const rows = g.selectAll(\".bar-group\").data(data).join(\"g\")\n .attr(\"class\", \"bar-group\")\n .attr(\"transform\", (d: DataPoint) => `translate(${x0(String(d[xKey]))},0)`);\n\n groupKeys.forEach((key, i) => {\n rows.append(\"rect\")\n .attr(\"x\", x1(key) ?? 0)\n .attr(\"y\", (d: DataPoint) => y(d[key] as number))\n .attr(\"width\", x1.bandwidth())\n .attr(\"height\", (d: DataPoint) => innerH - y(d[key] as number))\n .attr(\"rx\", barRadius)\n .attr(\"fill\", colors[i % colors.length]);\n });\n },\n};\n"],"names":["clear","svg","d3","D3ChartTemplates","data","dims","opts","xKey","yKey","margin","stroke","strokeWidth","showAxes","showGrid","width","height","innerW","innerH","g","xs","d","v","ys","xDomain","yDomain","x","y","grid","line","ax","groups","colors","barRadius","yFormat","groupKeys","k","x0","x1","yMax","rows","key","i"],"mappings":"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"}
1
+ {"version":3,"file":"D3ChartTemplates.js","sources":["../../../../src/components/library/charts/D3ChartTemplates.jsx"],"sourcesContent":["import * as d3 from \"d3\";\n\nfunction clear(svg) {\n d3.select(svg).selectAll(\"*\").remove();\n}\n\nexport const D3ChartTemplates = {\n lineChart(svg, data, dims, opts = {}) {\n const {\n xKey = \"x\",\n yKey = \"y\",\n margin = { top: 12, right: 16, bottom: 28, left: 40 },\n stroke = \"#6366F1\",\n strokeWidth = 2,\n showAxes = true,\n showGrid = true\n } = opts;\n\n clear(svg);\n\n const width = dims.width;\n const height = dims.height;\n const innerW = Math.max(0, width - margin.left - margin.right);\n const innerH = Math.max(0, height - margin.top - margin.bottom);\n\n const g = d3.select(svg).attr(\"viewBox\", `0 0 ${width} ${height}`).append(\"g\").attr(\"transform\", `translate(${margin.left},${margin.top})`);\n\n const xs = data.map((d) => d?.[xKey]).filter((v) => v != null);\n const ys = data.map((d) => d?.[yKey]).filter((v) => v != null);\n\n const xDomain = d3.extent(xs);\n const yDomain = d3.extent(ys);\n\n const x = d3.scaleLinear().domain(xDomain).nice().range([0, innerW]);\n const y = d3.scaleLinear().domain(yDomain).nice().range([innerH, 0]);\n\n if (showGrid) {\n g.append(\"g\")\n .attr(\"class\", \"grid\")\n .call(d3.axisLeft(y).ticks(5).tickSize(-innerW).tickFormat(\"\"))\n .call((grid) => grid.selectAll(\"line\").attr(\"stroke\", \"currentColor\").attr(\"opacity\", 0.12))\n .call((grid) => grid.selectAll(\"path\").attr(\"stroke\", \"none\"));\n }\n\n const line = d3\n .line()\n .x((d) => x(d[xKey]))\n .y((d) => y(d[yKey]))\n .defined((d) => d?.[xKey] != null && d?.[yKey] != null);\n\n g.append(\"path\")\n .datum(data)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", stroke)\n .attr(\"stroke-width\", strokeWidth)\n .attr(\"d\", line);\n\n if (showAxes) {\n g.append(\"g\")\n .attr(\"transform\", `translate(0,${innerH})`)\n .call(d3.axisBottom(x).ticks(6))\n .call((ax) => ax.selectAll(\"text\").attr(\"font-size\", 10));\n\n g.append(\"g\")\n .call(d3.axisLeft(y).ticks(5))\n .call((ax) => ax.selectAll(\"text\").attr(\"font-size\", 10));\n }\n },\n\n groupedBarChart(svg, data, dims, opts = {}) {\n const {\n groups = [],\n margin = { top: 20, right: 20, bottom: 40, left: 55 },\n xKey = \"x\",\n colors = [\"#6366F1\", \"#CBD5E1\"],\n barRadius = 4,\n yFormat = \",.0f\",\n showGrid = true,\n } = opts;\n\n clear(svg);\n\n const width = dims.width;\n const height = dims.height;\n const innerW = Math.max(0, width - margin.left - margin.right);\n const innerH = Math.max(0, height - margin.top - margin.bottom);\n\n const sel = d3.select(svg).attr(\"viewBox\", `0 0 ${width} ${height}`);\n const g = sel.append(\"g\").attr(\"transform\", `translate(${margin.left},${margin.top})`);\n\n const groupKeys = groups.length ? groups : Object.keys(data[0] || {}).filter((k) => k !== xKey);\n\n const x0 = d3.scaleBand().domain(data.map((d) => d[xKey])).range([0, innerW]).padding(0.3);\n const x1 = d3.scaleBand().domain(groupKeys).range([0, x0.bandwidth()]).padding(0.05);\n const yMax = d3.max(data, (d) => d3.max(groupKeys, (k) => d[k])) * 1.15;\n const y = d3.scaleLinear().domain([0, yMax]).range([innerH, 0]);\n\n g.append(\"g\")\n .attr(\"transform\", `translate(0,${innerH})`)\n .call(d3.axisBottom(x0).tickSize(0))\n .call((ax) => ax.selectAll(\"text\").attr(\"fill\", \"#94a3b8\").attr(\"font-size\", \"11px\"))\n .call((ax) => ax.select(\".domain\").remove());\n\n g.append(\"g\")\n .call(d3.axisLeft(y).ticks(5).tickFormat(d3.format(yFormat)).tickSize(showGrid ? -innerW : 0))\n .call((ax) => ax.selectAll(\"text\").attr(\"fill\", \"#94a3b8\").attr(\"font-size\", \"10px\"))\n .call((ax) => ax.selectAll(\".tick line\").attr(\"stroke\", \"#e2e8f0\").attr(\"stroke-dasharray\", \"2,2\"))\n .call((ax) => ax.select(\".domain\").remove());\n\n const rows = g.selectAll(\".bar-group\").data(data).join(\"g\")\n .attr(\"class\", \"bar-group\")\n .attr(\"transform\", (d) => `translate(${x0(d[xKey])},0)`);\n\n groupKeys.forEach((key, i) => {\n rows.append(\"rect\")\n .attr(\"x\", x1(key))\n .attr(\"y\", (d) => y(d[key]))\n .attr(\"width\", x1.bandwidth())\n .attr(\"height\", (d) => innerH - y(d[key]))\n .attr(\"rx\", barRadius)\n .attr(\"fill\", colors[i % colors.length]);\n });\n },\n};\n\n\n"],"names":["clear","svg","d3","D3ChartTemplates","data","dims","opts","xKey","yKey","margin","stroke","strokeWidth","showAxes","showGrid","width","height","innerW","innerH","g","xs","d","v","ys","xDomain","yDomain","x","y","grid","line","ax","groups","colors","barRadius","yFormat","groupKeys","k","x0","x1","yMax","rows","key","i"],"mappings":"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"}
@@ -1,81 +1,18 @@
1
- import React from "react";
2
- import * as d3 from "d3";
3
- type ProjectionType = "naturalEarth" | "mercator" | "equirectangular";
4
- interface Theme {
5
- bg: string;
6
- bgGradient: [string, string];
7
- land: string;
8
- landStroke: string;
9
- sphere: string;
10
- graticule: string;
11
- graticuleOpacity: number;
12
- markerActive: string;
13
- markerInactive: string;
14
- label: string;
15
- labelInactive: string;
16
- arc: string;
17
- arcHighlight: string;
18
- arcDanger: string;
19
- dot: string;
20
- dotDanger: string;
21
- overlayFill: string;
22
- overlayStroke: string;
23
- }
24
- type ThemeName = "dark" | "light";
25
- export interface Marker {
26
- id: string;
27
- lon: number;
28
- lat: number;
29
- label?: string | false;
30
- active?: boolean;
31
- }
32
- export interface Arc {
33
- id: string;
34
- from: [number, number];
35
- to: [number, number];
36
- danger?: boolean;
37
- color?: string;
38
- dotColor?: string;
39
- progress?: number;
40
- _path?: string | null;
41
- }
42
- export interface Overlay {
43
- id: string;
44
- center: [number, number];
45
- radius?: number;
46
- fill?: string;
47
- stroke?: string;
48
- }
49
- export interface InitialBounds {
50
- sw: [number, number];
51
- ne: [number, number];
52
- padding?: number;
53
- }
54
- interface ChildrenFunctionProps {
55
- proj: d3.GeoProjection;
56
- pathGen: d3.GeoPath;
57
- theme: Theme;
58
- width: number;
59
- height: number;
60
- transform: d3.ZoomTransform;
61
- }
62
- export interface GeoMapProps {
63
- width?: number;
64
- height?: number;
65
- projection?: ProjectionType;
66
- theme?: ThemeName;
67
- markers?: Marker[];
68
- arcs?: Arc[];
69
- overlays?: Overlay[];
70
- selectedId?: string | null;
71
- onArcClick?: (arc: Arc) => void;
72
- onMarkerClick?: (marker: Marker) => void;
73
- zoomable?: boolean;
74
- minZoom?: number;
75
- maxZoom?: number;
76
- initialBounds?: InitialBounds | null;
77
- className?: string;
78
- children?: React.ReactNode | ((props: ChildrenFunctionProps) => React.ReactNode);
79
- }
80
- export default function GeoMap({ width, height, projection: projType, theme, markers, arcs, overlays, selectedId, onArcClick, onMarkerClick, zoomable, minZoom, maxZoom, initialBounds, className, children, }: GeoMapProps): React.ReactElement;
81
- export {};
1
+ export default function GeoMap({ width, height, projection: projType, theme, markers, arcs, overlays, selectedId, onArcClick, onMarkerClick, zoomable, minZoom, maxZoom, initialBounds, className, children, }: {
2
+ width?: number | undefined;
3
+ height?: number | undefined;
4
+ projection?: string | undefined;
5
+ theme?: string | undefined;
6
+ markers?: never[] | undefined;
7
+ arcs?: never[] | undefined;
8
+ overlays?: never[] | undefined;
9
+ selectedId?: null | undefined;
10
+ onArcClick: any;
11
+ onMarkerClick: any;
12
+ zoomable?: boolean | undefined;
13
+ minZoom?: number | undefined;
14
+ maxZoom?: number | undefined;
15
+ initialBounds?: null | undefined;
16
+ className?: string | undefined;
17
+ children: any;
18
+ }): import("react/jsx-runtime").JSX.Element;