@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,16 +1,10 @@
1
- export interface SelectOption {
2
- value: string;
3
- label: string;
4
- }
5
- export interface SelectFilterProps {
6
- value?: string;
7
- onChange?: (value: string) => void;
8
- options?: (string | SelectOption)[];
9
- label?: string;
10
- placeholder?: string;
11
- className?: string;
12
- }
13
1
  /**
14
2
  * Dropdown select filter.
3
+ *
4
+ * @param {string} value — current selected value
5
+ * @param {Function} onChange — (value) => void
6
+ * @param {Array} options — [{ value, label }] or ["string", ...]
7
+ * @param {string} label — visible label
8
+ * @param {string} placeholder — placeholder when no value selected
15
9
  */
16
- export default function SelectFilter({ value, onChange, options, label, placeholder, className, }: SelectFilterProps): import("react/jsx-runtime").JSX.Element;
10
+ export default function SelectFilter({ value, onChange, options, label, placeholder, className, }: string): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  import { jsxs as n, jsx as t } from "react/jsx-runtime";
2
+ import "react";
2
3
  import { ChevronDownIcon as u } from "@heroicons/react/24/outline";
3
- function f({
4
+ function h({
4
5
  value: r = "all",
5
6
  onChange: s,
6
7
  options: i = [],
@@ -38,6 +39,6 @@ function f({
38
39
  ] });
39
40
  }
40
41
  export {
41
- f as default
42
+ h as default
42
43
  };
43
44
  //# sourceMappingURL=SelectFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectFilter.js","sources":["../../../../src/components/library/filters/SelectFilter.tsx"],"sourcesContent":["import { ChevronDownIcon } from \"@heroicons/react/24/outline\";\n\nexport interface SelectOption {\n value: string;\n label: string;\n}\n\nexport interface SelectFilterProps {\n value?: string;\n onChange?: (value: string) => void;\n options?: (string | SelectOption)[];\n label?: string;\n placeholder?: string;\n className?: string;\n}\n\n/**\n * Dropdown select filter.\n */\nexport default function SelectFilter({\n value = \"all\",\n onChange,\n options = [],\n label,\n placeholder,\n className = \"\",\n}: SelectFilterProps) {\n const normalizedOptions = options.map((opt) =>\n typeof opt === \"string\" ? { value: opt, label: opt } : opt\n );\n\n return (\n <div className={[\"relative inline-flex items-center gap-2\", className].filter(Boolean).join(\" \")}>\n {label ? (\n <span className=\"shrink-0 text-xs font-medium text-slate-500 dark:text-slate-400\">\n {label}\n </span>\n ) : null}\n <div className=\"relative\">\n <select\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n className=\"h-9 appearance-none rounded-lg border border-slate-200 bg-white py-0 pl-3 pr-8 text-sm font-medium text-slate-700 shadow-sm focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-200 dark:focus:ring-offset-slate-950\"\n aria-label={label ?? placeholder ?? \"Filter\"}\n >\n {placeholder ? (\n <option value=\"all\">{placeholder}</option>\n ) : null}\n {normalizedOptions.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <ChevronDownIcon\n className=\"pointer-events-none absolute right-2 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400 dark:text-slate-500\"\n aria-hidden=\"true\"\n />\n </div>\n </div>\n );\n}\n"],"names":["SelectFilter","value","onChange","options","label","placeholder","className","normalizedOptions","opt","jsxs","jsx","ChevronDownIcon"],"mappings":";;AAmBA,SAAwBA,EAAa;AAAA,EACnC,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,SAAAC,IAAU,CAAA;AAAA,EACV,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAsB;AACpB,QAAMC,IAAoBJ,EAAQ;AAAA,IAAI,CAACK,MACrC,OAAOA,KAAQ,WAAW,EAAE,OAAOA,GAAK,OAAOA,MAAQA;AAAA,EAAA;AAGzD,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAW,CAAC,2CAA2CH,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAC5F,UAAA;AAAA,IAAAF,IACC,gBAAAM,EAAC,QAAA,EAAK,WAAU,mEACb,aACH,IACE;AAAA,IACJ,gBAAAD,EAAC,OAAA,EAAI,WAAU,YACb,UAAA;AAAA,MAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAAR;AAAA,UACA,UAAU,CAAC,MAAMC,IAAW,EAAE,OAAO,KAAK;AAAA,UAC1C,WAAU;AAAA,UACV,cAAYE,KAASC,KAAe;AAAA,UAEnC,UAAA;AAAA,YAAAA,IACC,gBAAAK,EAAC,UAAA,EAAO,OAAM,OAAO,aAAY,IAC/B;AAAA,YACHH,EAAkB,IAAI,CAACC,MACtB,gBAAAE,EAAC,UAAA,EAAuB,OAAOF,EAAI,OAChC,UAAAA,EAAI,MAAA,GADMA,EAAI,KAEjB,CACD;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAEH,gBAAAE;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,eAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IACd,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"SelectFilter.js","sources":["../../../../src/components/library/filters/SelectFilter.jsx"],"sourcesContent":["import React from \"react\";\nimport { ChevronDownIcon } from \"@heroicons/react/24/outline\";\n\n/**\n * Dropdown select filter.\n *\n * @param {string} value — current selected value\n * @param {Function} onChange (value) => void\n * @param {Array} options [{ value, label }] or [\"string\", ...]\n * @param {string} label — visible label\n * @param {string} placeholder — placeholder when no value selected\n */\nexport default function SelectFilter({\n value = \"all\",\n onChange,\n options = [],\n label,\n placeholder,\n className = \"\",\n}) {\n const normalizedOptions = options.map((opt) =>\n typeof opt === \"string\" ? { value: opt, label: opt } : opt\n );\n\n return (\n <div className={[\"relative inline-flex items-center gap-2\", className].filter(Boolean).join(\" \")}>\n {label ? (\n <span className=\"shrink-0 text-xs font-medium text-slate-500 dark:text-slate-400\">\n {label}\n </span>\n ) : null}\n <div className=\"relative\">\n <select\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n className=\"h-9 appearance-none rounded-lg border border-slate-200 bg-white py-0 pl-3 pr-8 text-sm font-medium text-slate-700 shadow-sm focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-200 dark:focus:ring-offset-slate-950\"\n aria-label={label ?? placeholder ?? \"Filter\"}\n >\n {placeholder ? (\n <option value=\"all\">{placeholder}</option>\n ) : null}\n {normalizedOptions.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <ChevronDownIcon\n className=\"pointer-events-none absolute right-2 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400 dark:text-slate-500\"\n aria-hidden=\"true\"\n />\n </div>\n </div>\n );\n}\n"],"names":["SelectFilter","value","onChange","options","label","placeholder","className","normalizedOptions","opt","jsxs","jsx","ChevronDownIcon"],"mappings":";;;AAYA,SAAwBA,EAAa;AAAA,EACnC,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,SAAAC,IAAU,CAAA;AAAA,EACV,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAG;AACD,QAAMC,IAAoBJ,EAAQ;AAAA,IAAI,CAACK,MACrC,OAAOA,KAAQ,WAAW,EAAE,OAAOA,GAAK,OAAOA,MAAQA;AAAA,EAAA;AAGzD,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAW,CAAC,2CAA2CH,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAC5F,UAAA;AAAA,IAAAF,IACC,gBAAAM,EAAC,QAAA,EAAK,WAAU,mEACb,aACH,IACE;AAAA,IACJ,gBAAAD,EAAC,OAAA,EAAI,WAAU,YACb,UAAA;AAAA,MAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAAR;AAAA,UACA,UAAU,CAAC,MAAMC,IAAW,EAAE,OAAO,KAAK;AAAA,UAC1C,WAAU;AAAA,UACV,cAAYE,KAASC,KAAe;AAAA,UAEnC,UAAA;AAAA,YAAAA,IACC,gBAAAK,EAAC,UAAA,EAAO,OAAM,OAAO,aAAY,IAC/B;AAAA,YACHH,EAAkB,IAAI,CAACC,MACtB,gBAAAE,EAAC,UAAA,EAAuB,OAAOF,EAAI,OAChC,UAAAA,EAAI,MAAA,GADMA,EAAI,KAEjB,CACD;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAEH,gBAAAE;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,eAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IACd,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
@@ -1,10 +1,8 @@
1
- export interface ToggleFilterProps {
2
- value?: boolean;
3
- onChange?: (value: boolean) => void;
4
- label?: string;
5
- className?: string;
6
- }
7
1
  /**
8
2
  * Toggle switch filter.
3
+ *
4
+ * @param {boolean} value — current on/off state
5
+ * @param {Function} onChange — (boolean) => void
6
+ * @param {string} label — visible label
9
7
  */
10
- export default function ToggleFilter({ value, onChange, label, className, }: ToggleFilterProps): import("react/jsx-runtime").JSX.Element;
8
+ export default function ToggleFilter({ value, onChange, label, className, }: boolean): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import { jsxs as o, jsx as n } from "react/jsx-runtime";
2
- function a({
2
+ import "react";
3
+ function l({
3
4
  value: e = !1,
4
5
  onChange: r,
5
6
  label: t,
@@ -42,6 +43,6 @@ function a({
42
43
  );
43
44
  }
44
45
  export {
45
- a as default
46
+ l as default
46
47
  };
47
48
  //# sourceMappingURL=ToggleFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleFilter.js","sources":["../../../../src/components/library/filters/ToggleFilter.tsx"],"sourcesContent":["export interface ToggleFilterProps {\n value?: boolean;\n onChange?: (value: boolean) => void;\n label?: string;\n className?: string;\n}\n\n/**\n * Toggle switch filter.\n */\nexport default function ToggleFilter({\n value = false,\n onChange,\n label,\n className = \"\",\n}: ToggleFilterProps) {\n return (\n <label\n className={[\n \"inline-flex cursor-pointer items-center gap-2\",\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n onClick={() => onChange?.(!value)}\n className={[\n \"relative inline-flex h-5 w-9 shrink-0 rounded-full border-2 border-transparent transition-colors focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:focus:ring-offset-slate-950\",\n value\n ? \"bg-brand-500\"\n : \"bg-slate-200 dark:bg-slate-700\",\n ].join(\" \")}\n >\n <span\n aria-hidden=\"true\"\n className={[\n \"pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow ring-0 transition-transform\",\n value ? \"translate-x-4\" : \"translate-x-0\",\n ].join(\" \")}\n />\n </button>\n {label ? (\n <span className=\"text-sm font-medium text-slate-700 dark:text-slate-200\">\n {label}\n </span>\n ) : null}\n </label>\n );\n}\n"],"names":["ToggleFilter","value","onChange","label","className","jsxs","jsx"],"mappings":";AAUA,SAAwBA,EAAa;AAAA,EACnC,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAsB;AACpB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACAD;AAAA,MAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MAEX,UAAA;AAAA,QAAA,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,MAAK;AAAA,YACL,gBAAcL;AAAA,YACd,SAAS,MAAMC,IAAW,CAACD,CAAK;AAAA,YAChC,WAAW;AAAA,cACT;AAAA,cACAA,IACI,iBACA;AAAA,YAAA,EACJ,KAAK,GAAG;AAAA,YAEV,UAAA,gBAAAK;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,eAAY;AAAA,gBACZ,WAAW;AAAA,kBACT;AAAA,kBACAL,IAAQ,kBAAkB;AAAA,gBAAA,EAC1B,KAAK,GAAG;AAAA,cAAA;AAAA,YAAA;AAAA,UACZ;AAAA,QAAA;AAAA,QAEDE,IACC,gBAAAG,EAAC,QAAA,EAAK,WAAU,0DACb,aACH,IACE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"ToggleFilter.js","sources":["../../../../src/components/library/filters/ToggleFilter.jsx"],"sourcesContent":["import React from \"react\";\n\n/**\n * Toggle switch filter.\n *\n * @param {boolean} value — current on/off state\n * @param {Function} onChange (boolean) => void\n * @param {string} label visible label\n */\nexport default function ToggleFilter({\n value = false,\n onChange,\n label,\n className = \"\",\n}) {\n return (\n <label\n className={[\n \"inline-flex cursor-pointer items-center gap-2\",\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n onClick={() => onChange?.(!value)}\n className={[\n \"relative inline-flex h-5 w-9 shrink-0 rounded-full border-2 border-transparent transition-colors focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:focus:ring-offset-slate-950\",\n value\n ? \"bg-brand-500\"\n : \"bg-slate-200 dark:bg-slate-700\",\n ].join(\" \")}\n >\n <span\n aria-hidden=\"true\"\n className={[\n \"pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow ring-0 transition-transform\",\n value ? \"translate-x-4\" : \"translate-x-0\",\n ].join(\" \")}\n />\n </button>\n {label ? (\n <span className=\"text-sm font-medium text-slate-700 dark:text-slate-200\">\n {label}\n </span>\n ) : null}\n </label>\n );\n}\n"],"names":["ToggleFilter","value","onChange","label","className","jsxs","jsx"],"mappings":";;AASA,SAAwBA,EAAa;AAAA,EACnC,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAG;AACD,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACAD;AAAA,MAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MAEX,UAAA;AAAA,QAAA,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,MAAK;AAAA,YACL,gBAAcL;AAAA,YACd,SAAS,MAAMC,IAAW,CAACD,CAAK;AAAA,YAChC,WAAW;AAAA,cACT;AAAA,cACAA,IACI,iBACA;AAAA,YAAA,EACJ,KAAK,GAAG;AAAA,YAEV,UAAA,gBAAAK;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,eAAY;AAAA,gBACZ,WAAW;AAAA,kBACT;AAAA,kBACAL,IAAQ,kBAAkB;AAAA,gBAAA,EAC1B,KAAK,GAAG;AAAA,cAAA;AAAA,YAAA;AAAA,UACZ;AAAA,QAAA;AAAA,QAEDE,IACC,gBAAAG,EAAC,QAAA,EAAK,WAAU,0DACb,aACH,IACE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -1,14 +1,12 @@
1
- import type { FormField as FormFieldType } from "./FormRenderer";
2
- export interface FormFieldProps {
3
- field: FormFieldType & Record<string, unknown>;
4
- value: unknown;
5
- error?: string;
6
- touched?: boolean;
7
- onChange: (value: unknown) => void;
8
- onBlur: () => void;
9
- }
10
1
  /**
11
2
  * Renders a single form field with label, description, error message,
12
3
  * and the appropriate input type.
13
4
  */
14
- export default function FormField({ field, value, error, touched, onChange, onBlur }: FormFieldProps): import("react/jsx-runtime").JSX.Element | null;
5
+ export default function FormField({ field, value, error, touched, onChange, onBlur }: {
6
+ field: any;
7
+ value: any;
8
+ error: any;
9
+ touched: any;
10
+ onChange: any;
11
+ onBlur: any;
12
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,4 +1,5 @@
1
1
  import { jsxs as c, jsx as r } from "react/jsx-runtime";
2
+ import "react";
2
3
  import { ChevronDownIcon as m } from "@heroicons/react/24/outline";
3
4
  const p = "h-10 w-full rounded-lg border border-slate-200 bg-white px-3 text-sm text-slate-900 shadow-sm placeholder:text-slate-400 focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-50 dark:placeholder:text-slate-500 dark:focus:ring-offset-slate-950", x = "border-red-300 focus:ring-red-500 dark:border-red-700 dark:focus:ring-red-500";
4
5
  function i(...e) {
@@ -228,7 +229,7 @@ const E = {
228
229
  checkboxGroup: F,
229
230
  toggle: C
230
231
  };
231
- function L({ field: e, value: n, error: s, touched: a, onChange: d, onBlur: t }) {
232
+ function O({ field: e, value: n, error: s, touched: a, onChange: d, onBlur: t }) {
232
233
  const o = E[e.type];
233
234
  if (!o) return null;
234
235
  const l = s && a, b = e.type === "checkbox";
@@ -242,7 +243,7 @@ function L({ field: e, value: n, error: s, touched: a, onChange: d, onBlur: t })
242
243
  value: n,
243
244
  onChange: d,
244
245
  onBlur: t,
245
- error: !!l
246
+ error: l
246
247
  }
247
248
  ),
248
249
  e.type === "toggle" && e.description ? /* @__PURE__ */ r(g, { description: e.description }) : null,
@@ -250,6 +251,6 @@ function L({ field: e, value: n, error: s, touched: a, onChange: d, onBlur: t })
250
251
  ] });
251
252
  }
252
253
  export {
253
- L as default
254
+ O as default
254
255
  };
255
256
  //# sourceMappingURL=FormField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormField.js","sources":["../../../../src/components/library/forms/FormField.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { ChevronDownIcon } from \"@heroicons/react/24/outline\";\nimport type { FormField as FormFieldType } from \"./FormRenderer\";\n\nconst INPUT_BASE =\n \"h-10 w-full rounded-lg border border-slate-200 bg-white px-3 text-sm text-slate-900 shadow-sm placeholder:text-slate-400 focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-50 dark:placeholder:text-slate-500 dark:focus:ring-offset-slate-950\";\n\nconst INPUT_ERROR =\n \"border-red-300 focus:ring-red-500 dark:border-red-700 dark:focus:ring-red-500\";\n\nfunction cx(...classes: (string | boolean | undefined)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n\ninterface FieldLabelProps {\n label?: string;\n required?: boolean;\n htmlFor: string;\n}\n\nfunction FieldLabel({ label, required, htmlFor }: FieldLabelProps) {\n if (!label) return null;\n return (\n <label htmlFor={htmlFor} className=\"block text-sm font-medium text-slate-700 dark:text-slate-200\">\n {label}\n {required ? <span className=\"ml-0.5 text-red-500\">*</span> : null}\n </label>\n );\n}\n\ninterface FieldErrorProps {\n error?: string;\n}\n\nfunction FieldError({ error }: FieldErrorProps) {\n if (!error) return null;\n return <p className=\"text-xs text-red-600 dark:text-red-400\">{error}</p>;\n}\n\ninterface FieldDescriptionProps {\n description?: string;\n}\n\nfunction FieldDescription({ description }: FieldDescriptionProps) {\n if (!description) return null;\n return <p className=\"text-xs text-slate-500 dark:text-slate-400\">{description}</p>;\n}\n\n// ─── Individual field renderers ───\n\ninterface FieldRendererProps {\n field: FormFieldType & Record<string, unknown>;\n value: unknown;\n onChange: (value: unknown) => void;\n onBlur: () => void;\n error?: boolean;\n}\n\nfunction TextField({ field, value, onChange, onBlur, error }: FieldRendererProps) {\n const inputType = (field.inputType as string | undefined) ?? field.type;\n const type = { text: \"text\", email: \"email\", url: \"url\", number: \"number\", date: \"date\" }[inputType] ?? \"text\";\n\n return (\n <input\n id={field.id}\n name={field.id}\n type={type}\n value={(value as string | number) ?? \"\"}\n onChange={(e) => onChange(field.type === \"number\" ? e.target.value : e.target.value)}\n onBlur={onBlur}\n placeholder={field.placeholder as string | undefined}\n disabled={field.disabled as boolean | undefined}\n readOnly={field.readOnly as boolean | undefined}\n min={field.min as number | undefined}\n max={field.max as number | undefined}\n step={field.step as number | undefined}\n className={cx(INPUT_BASE, error && INPUT_ERROR)}\n />\n );\n}\n\nfunction TextareaField({ field, value, onChange, onBlur, error }: FieldRendererProps) {\n return (\n <textarea\n id={field.id}\n name={field.id}\n value={(value as string) ?? \"\"}\n onChange={(e) => onChange(e.target.value)}\n onBlur={onBlur}\n placeholder={field.placeholder as string | undefined}\n disabled={field.disabled as boolean | undefined}\n readOnly={field.readOnly as boolean | undefined}\n rows={(field.rows as number | undefined) ?? 3}\n className={cx(\n \"w-full rounded-lg border border-slate-200 bg-white px-3 py-2 text-sm text-slate-900 shadow-sm placeholder:text-slate-400 focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-50 dark:placeholder:text-slate-500 dark:focus:ring-offset-slate-950\",\n error && INPUT_ERROR\n )}\n />\n );\n}\n\ninterface SelectOption {\n value: string;\n label: string;\n}\n\nfunction SelectField({ field, value, onChange, onBlur, error }: FieldRendererProps) {\n const options = ((field.options as (string | SelectOption)[] | undefined) ?? []).map((opt) =>\n typeof opt === \"string\" ? { value: opt, label: opt } : opt\n );\n\n return (\n <div className=\"relative\">\n <select\n id={field.id}\n name={field.id}\n value={(value as string) ?? \"\"}\n onChange={(e) => onChange(e.target.value)}\n onBlur={onBlur}\n disabled={field.disabled as boolean | undefined}\n className={cx(\n \"h-10 w-full appearance-none rounded-lg border border-slate-200 bg-white py-0 pl-3 pr-9 text-sm font-medium text-slate-700 shadow-sm focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-200 dark:focus:ring-offset-slate-950\",\n error && INPUT_ERROR\n )}\n >\n {field.placeholder ? (\n <option value=\"\">{field.placeholder as string}</option>\n ) : null}\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <ChevronDownIcon\n className=\"pointer-events-none absolute right-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400 dark:text-slate-500\"\n aria-hidden=\"true\"\n />\n </div>\n );\n}\n\ninterface RadioOption extends SelectOption {\n description?: string;\n disabled?: boolean;\n}\n\nfunction RadioField({ field, value, onChange }: FieldRendererProps) {\n const options = ((field.options as (string | RadioOption)[] | undefined) ?? []).map((opt) =>\n typeof opt === \"string\" ? { value: opt, label: opt } : opt\n );\n const layout = (field.layout as string | undefined) ?? (options.length <= 4 ? \"horizontal\" : \"vertical\");\n\n return (\n <div\n className={cx(\n \"flex gap-3\",\n layout === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\"\n )}\n role=\"radiogroup\"\n aria-labelledby={`${field.id}-label`}\n >\n {options.map((opt) => (\n <label\n key={opt.value}\n className=\"inline-flex cursor-pointer items-center gap-2 text-sm text-slate-700 dark:text-slate-200\"\n >\n <input\n type=\"radio\"\n name={field.id}\n value={opt.value}\n checked={value === opt.value}\n onChange={() => onChange(opt.value)}\n disabled={(field.disabled as boolean | undefined) || opt.disabled}\n className=\"h-4 w-4 border-slate-300 text-brand-600 focus:ring-brand-500 dark:border-slate-600 dark:bg-slate-800\"\n />\n {opt.label}\n {opt.description ? (\n <span className=\"text-xs text-slate-400 dark:text-slate-500\">{opt.description}</span>\n ) : null}\n </label>\n ))}\n </div>\n );\n}\n\nfunction CheckboxField({ field, value, onChange }: FieldRendererProps) {\n return (\n <label className=\"inline-flex cursor-pointer items-center gap-2.5 text-sm text-slate-700 dark:text-slate-200\">\n <input\n type=\"checkbox\"\n id={field.id}\n name={field.id}\n checked={Boolean(value)}\n onChange={(e) => onChange(e.target.checked)}\n disabled={field.disabled as boolean | undefined}\n className=\"h-4 w-4 rounded border-slate-300 text-brand-600 focus:ring-brand-500 dark:border-slate-600 dark:bg-slate-800\"\n />\n {(field.checkboxLabel as string | undefined) ?? field.label}\n </label>\n );\n}\n\ninterface CheckboxOption extends SelectOption {\n disabled?: boolean;\n}\n\nfunction CheckboxGroupField({ field, value, onChange }: FieldRendererProps) {\n const selected = Array.isArray(value) ? value : [];\n const options = ((field.options as (string | CheckboxOption)[] | undefined) ?? []).map((opt) =>\n typeof opt === \"string\" ? { value: opt, label: opt } : opt\n );\n const layout = (field.layout as string | undefined) ?? (options.length <= 4 ? \"horizontal\" : \"vertical\");\n\n function toggleValue(optValue: string) {\n const next = selected.includes(optValue)\n ? selected.filter((v) => v !== optValue)\n : [...selected, optValue];\n onChange(next);\n }\n\n return (\n <div\n className={cx(\n \"flex gap-3\",\n layout === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\"\n )}\n >\n {options.map((opt) => (\n <label\n key={opt.value}\n className=\"inline-flex cursor-pointer items-center gap-2 text-sm text-slate-700 dark:text-slate-200\"\n >\n <input\n type=\"checkbox\"\n checked={selected.includes(opt.value)}\n onChange={() => toggleValue(opt.value)}\n disabled={(field.disabled as boolean | undefined) || opt.disabled}\n className=\"h-4 w-4 rounded border-slate-300 text-brand-600 focus:ring-brand-500 dark:border-slate-600 dark:bg-slate-800\"\n />\n {opt.label}\n </label>\n ))}\n </div>\n );\n}\n\nfunction ToggleField({ field, value, onChange }: FieldRendererProps) {\n const checked = Boolean(value);\n\n return (\n <div className=\"flex items-center gap-3\">\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n onClick={() => onChange(!checked)}\n disabled={field.disabled as boolean | undefined}\n className={cx(\n \"relative inline-flex h-6 w-11 shrink-0 rounded-full border-2 border-transparent transition-colors focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:focus:ring-offset-slate-950\",\n checked ? \"bg-brand-500\" : \"bg-slate-200 dark:bg-slate-700\",\n field.disabled && \"cursor-not-allowed opacity-60\"\n )}\n >\n <span\n aria-hidden=\"true\"\n className={cx(\n \"pointer-events-none inline-block h-5 w-5 rounded-full bg-white shadow ring-0 transition-transform\",\n checked ? \"translate-x-5\" : \"translate-x-0\"\n )}\n />\n </button>\n {field.toggleLabel ? (\n <span className=\"text-sm text-slate-700 dark:text-slate-200\">{field.toggleLabel as string}</span>\n ) : null}\n </div>\n );\n}\n\n// ─── Main FormField ───\n\nconst FIELD_RENDERERS: Record<string, React.ComponentType<FieldRendererProps>> = {\n text: TextField,\n email: TextField,\n url: TextField,\n number: TextField,\n date: TextField,\n textarea: TextareaField,\n select: SelectField,\n radio: RadioField,\n checkbox: CheckboxField,\n checkboxGroup: CheckboxGroupField,\n toggle: ToggleField,\n};\n\nexport interface FormFieldProps {\n field: FormFieldType & Record<string, unknown>;\n value: unknown;\n error?: string;\n touched?: boolean;\n onChange: (value: unknown) => void;\n onBlur: () => void;\n}\n\n/**\n * Renders a single form field with label, description, error message,\n * and the appropriate input type.\n */\nexport default function FormField({ field, value, error, touched, onChange, onBlur }: FormFieldProps) {\n const Renderer = FIELD_RENDERERS[field.type];\n if (!Renderer) return null;\n\n const showError = error && touched;\n const noLabel = field.type === \"checkbox\";\n\n return (\n <div className=\"flex flex-col gap-1.5\">\n {!noLabel ? (\n <FieldLabel label={field.label} required={field.required} htmlFor={field.id} />\n ) : null}\n {field.description && field.type !== \"toggle\" ? (\n <FieldDescription description={field.description as string} />\n ) : null}\n <Renderer\n field={field}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n error={Boolean(showError)}\n />\n {field.type === \"toggle\" && field.description ? (\n <FieldDescription description={field.description as string} />\n ) : null}\n {showError ? <FieldError error={error} /> : null}\n </div>\n );\n}\n"],"names":["INPUT_BASE","INPUT_ERROR","cx","classes","FieldLabel","label","required","htmlFor","jsxs","jsx","FieldError","error","FieldDescription","description","TextField","field","value","onChange","onBlur","inputType","type","e","TextareaField","SelectField","options","opt","ChevronDownIcon","RadioField","layout","CheckboxField","CheckboxGroupField","selected","toggleValue","optValue","next","v","ToggleField","checked","FIELD_RENDERERS","FormField","touched","Renderer","showError","noLabel"],"mappings":"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"}
1
+ {"version":3,"file":"FormField.js","sources":["../../../../src/components/library/forms/FormField.jsx"],"sourcesContent":["import React from \"react\";\nimport { ChevronDownIcon } from \"@heroicons/react/24/outline\";\n\nconst INPUT_BASE =\n \"h-10 w-full rounded-lg border border-slate-200 bg-white px-3 text-sm text-slate-900 shadow-sm placeholder:text-slate-400 focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-50 dark:placeholder:text-slate-500 dark:focus:ring-offset-slate-950\";\n\nconst INPUT_ERROR =\n \"border-red-300 focus:ring-red-500 dark:border-red-700 dark:focus:ring-red-500\";\n\nfunction cx(...classes) {\n return classes.filter(Boolean).join(\" \");\n}\n\nfunction FieldLabel({ label, required, htmlFor }) {\n if (!label) return null;\n return (\n <label htmlFor={htmlFor} className=\"block text-sm font-medium text-slate-700 dark:text-slate-200\">\n {label}\n {required ? <span className=\"ml-0.5 text-red-500\">*</span> : null}\n </label>\n );\n}\n\nfunction FieldError({ error }) {\n if (!error) return null;\n return <p className=\"text-xs text-red-600 dark:text-red-400\">{error}</p>;\n}\n\nfunction FieldDescription({ description }) {\n if (!description) return null;\n return <p className=\"text-xs text-slate-500 dark:text-slate-400\">{description}</p>;\n}\n\n// ─── Individual field renderers ───\n\nfunction TextField({ field, value, onChange, onBlur, error }) {\n const inputType = field.inputType ?? field.type;\n const type = { text: \"text\", email: \"email\", url: \"url\", number: \"number\", date: \"date\" }[inputType] ?? \"text\";\n\n return (\n <input\n id={field.id}\n name={field.id}\n type={type}\n value={value ?? \"\"}\n onChange={(e) => onChange(field.type === \"number\" ? e.target.value : e.target.value)}\n onBlur={onBlur}\n placeholder={field.placeholder}\n disabled={field.disabled}\n readOnly={field.readOnly}\n min={field.min}\n max={field.max}\n step={field.step}\n className={cx(INPUT_BASE, error && INPUT_ERROR)}\n />\n );\n}\n\nfunction TextareaField({ field, value, onChange, onBlur, error }) {\n return (\n <textarea\n id={field.id}\n name={field.id}\n value={value ?? \"\"}\n onChange={(e) => onChange(e.target.value)}\n onBlur={onBlur}\n placeholder={field.placeholder}\n disabled={field.disabled}\n readOnly={field.readOnly}\n rows={field.rows ?? 3}\n className={cx(\n \"w-full rounded-lg border border-slate-200 bg-white px-3 py-2 text-sm text-slate-900 shadow-sm placeholder:text-slate-400 focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-50 dark:placeholder:text-slate-500 dark:focus:ring-offset-slate-950\",\n error && INPUT_ERROR\n )}\n />\n );\n}\n\nfunction SelectField({ field, value, onChange, onBlur, error }) {\n const options = (field.options ?? []).map((opt) =>\n typeof opt === \"string\" ? { value: opt, label: opt } : opt\n );\n\n return (\n <div className=\"relative\">\n <select\n id={field.id}\n name={field.id}\n value={value ?? \"\"}\n onChange={(e) => onChange(e.target.value)}\n onBlur={onBlur}\n disabled={field.disabled}\n className={cx(\n \"h-10 w-full appearance-none rounded-lg border border-slate-200 bg-white py-0 pl-3 pr-9 text-sm font-medium text-slate-700 shadow-sm focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-200 dark:focus:ring-offset-slate-950\",\n error && INPUT_ERROR\n )}\n >\n {field.placeholder ? (\n <option value=\"\">{field.placeholder}</option>\n ) : null}\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <ChevronDownIcon\n className=\"pointer-events-none absolute right-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400 dark:text-slate-500\"\n aria-hidden=\"true\"\n />\n </div>\n );\n}\n\nfunction RadioField({ field, value, onChange }) {\n const options = (field.options ?? []).map((opt) =>\n typeof opt === \"string\" ? { value: opt, label: opt } : opt\n );\n const layout = field.layout ?? (options.length <= 4 ? \"horizontal\" : \"vertical\");\n\n return (\n <div\n className={cx(\n \"flex gap-3\",\n layout === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\"\n )}\n role=\"radiogroup\"\n aria-labelledby={`${field.id}-label`}\n >\n {options.map((opt) => (\n <label\n key={opt.value}\n className=\"inline-flex cursor-pointer items-center gap-2 text-sm text-slate-700 dark:text-slate-200\"\n >\n <input\n type=\"radio\"\n name={field.id}\n value={opt.value}\n checked={value === opt.value}\n onChange={() => onChange(opt.value)}\n disabled={field.disabled || opt.disabled}\n className=\"h-4 w-4 border-slate-300 text-brand-600 focus:ring-brand-500 dark:border-slate-600 dark:bg-slate-800\"\n />\n {opt.label}\n {opt.description ? (\n <span className=\"text-xs text-slate-400 dark:text-slate-500\">{opt.description}</span>\n ) : null}\n </label>\n ))}\n </div>\n );\n}\n\nfunction CheckboxField({ field, value, onChange }) {\n return (\n <label className=\"inline-flex cursor-pointer items-center gap-2.5 text-sm text-slate-700 dark:text-slate-200\">\n <input\n type=\"checkbox\"\n id={field.id}\n name={field.id}\n checked={Boolean(value)}\n onChange={(e) => onChange(e.target.checked)}\n disabled={field.disabled}\n className=\"h-4 w-4 rounded border-slate-300 text-brand-600 focus:ring-brand-500 dark:border-slate-600 dark:bg-slate-800\"\n />\n {field.checkboxLabel ?? field.label}\n </label>\n );\n}\n\nfunction CheckboxGroupField({ field, value, onChange }) {\n const selected = Array.isArray(value) ? value : [];\n const options = (field.options ?? []).map((opt) =>\n typeof opt === \"string\" ? { value: opt, label: opt } : opt\n );\n const layout = field.layout ?? (options.length <= 4 ? \"horizontal\" : \"vertical\");\n\n function toggleValue(optValue) {\n const next = selected.includes(optValue)\n ? selected.filter((v) => v !== optValue)\n : [...selected, optValue];\n onChange(next);\n }\n\n return (\n <div\n className={cx(\n \"flex gap-3\",\n layout === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\"\n )}\n >\n {options.map((opt) => (\n <label\n key={opt.value}\n className=\"inline-flex cursor-pointer items-center gap-2 text-sm text-slate-700 dark:text-slate-200\"\n >\n <input\n type=\"checkbox\"\n checked={selected.includes(opt.value)}\n onChange={() => toggleValue(opt.value)}\n disabled={field.disabled || opt.disabled}\n className=\"h-4 w-4 rounded border-slate-300 text-brand-600 focus:ring-brand-500 dark:border-slate-600 dark:bg-slate-800\"\n />\n {opt.label}\n </label>\n ))}\n </div>\n );\n}\n\nfunction ToggleField({ field, value, onChange }) {\n const checked = Boolean(value);\n\n return (\n <div className=\"flex items-center gap-3\">\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n onClick={() => onChange(!checked)}\n disabled={field.disabled}\n className={cx(\n \"relative inline-flex h-6 w-11 shrink-0 rounded-full border-2 border-transparent transition-colors focus:outline-none focus:ring-2 focus:ring-brand-500 focus:ring-offset-2 dark:focus:ring-offset-slate-950\",\n checked ? \"bg-brand-500\" : \"bg-slate-200 dark:bg-slate-700\",\n field.disabled && \"cursor-not-allowed opacity-60\"\n )}\n >\n <span\n aria-hidden=\"true\"\n className={cx(\n \"pointer-events-none inline-block h-5 w-5 rounded-full bg-white shadow ring-0 transition-transform\",\n checked ? \"translate-x-5\" : \"translate-x-0\"\n )}\n />\n </button>\n {field.toggleLabel ? (\n <span className=\"text-sm text-slate-700 dark:text-slate-200\">{field.toggleLabel}</span>\n ) : null}\n </div>\n );\n}\n\n// ─── Main FormField ───\n\nconst FIELD_RENDERERS = {\n text: TextField,\n email: TextField,\n url: TextField,\n number: TextField,\n date: TextField,\n textarea: TextareaField,\n select: SelectField,\n radio: RadioField,\n checkbox: CheckboxField,\n checkboxGroup: CheckboxGroupField,\n toggle: ToggleField,\n};\n\n/**\n * Renders a single form field with label, description, error message,\n * and the appropriate input type.\n */\nexport default function FormField({ field, value, error, touched, onChange, onBlur }) {\n const Renderer = FIELD_RENDERERS[field.type];\n if (!Renderer) return null;\n\n const showError = error && touched;\n const noLabel = field.type === \"checkbox\";\n\n return (\n <div className=\"flex flex-col gap-1.5\">\n {!noLabel ? (\n <FieldLabel label={field.label} required={field.required} htmlFor={field.id} />\n ) : null}\n {field.description && field.type !== \"toggle\" ? (\n <FieldDescription description={field.description} />\n ) : null}\n <Renderer\n field={field}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n error={showError}\n />\n {field.type === \"toggle\" && field.description ? (\n <FieldDescription description={field.description} />\n ) : null}\n {showError ? <FieldError error={error} /> : null}\n </div>\n );\n}\n"],"names":["INPUT_BASE","INPUT_ERROR","cx","classes","FieldLabel","label","required","htmlFor","jsxs","jsx","FieldError","error","FieldDescription","description","TextField","field","value","onChange","onBlur","inputType","type","e","TextareaField","SelectField","options","opt","ChevronDownIcon","RadioField","layout","CheckboxField","CheckboxGroupField","selected","toggleValue","optValue","next","v","ToggleField","checked","FIELD_RENDERERS","FormField","touched","Renderer","showError","noLabel"],"mappings":"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"}
@@ -1,27 +1,18 @@
1
- import type { FormSection } from "./FormRenderer";
2
- declare const SIZE_CLASSES: {
3
- readonly sm: "max-w-md";
4
- readonly md: "max-w-xl";
5
- readonly lg: "max-w-2xl";
6
- readonly xl: "max-w-4xl";
7
- };
8
- export interface FormModalProps {
9
- isOpen?: boolean;
10
- onClose?: () => void;
11
- title: string;
12
- subtitle?: string;
13
- sections?: FormSection[];
14
- initialValues?: Record<string, unknown>;
15
- onSubmit?: (values: Record<string, unknown>) => void | Promise<void>;
16
- submitLabel?: string;
17
- cancelLabel?: string;
18
- size?: keyof typeof SIZE_CLASSES;
19
- destructive?: boolean;
20
- minSubmitMs?: number;
21
- }
22
1
  /**
23
2
  * Modal dialog for creating or editing records.
24
3
  * Wraps FormRenderer + useFormState in an animated overlay.
4
+ *
5
+ * @param {boolean} isOpen — whether the modal is visible
6
+ * @param {Function} onClose — close handler
7
+ * @param {string} title — modal title (e.g. "Edit Service", "New Incident")
8
+ * @param {string} subtitle — optional subtitle
9
+ * @param {Array} sections — form schema sections
10
+ * @param {Object} initialValues — prefill for editing (empty = create mode)
11
+ * @param {Function} onSubmit — async (values) => void, called on valid submit
12
+ * @param {string} submitLabel — submit button text (default: "Save")
13
+ * @param {string} cancelLabel — cancel button text (default: "Cancel")
14
+ * @param {string} size — "sm" | "md" | "lg" | "xl" (default: "lg")
15
+ * @param {boolean} destructive — if true, submit button is red (for delete confirmations)
25
16
  */
26
- export default function FormModal({ isOpen, onClose, title, subtitle, sections, initialValues, onSubmit, submitLabel, cancelLabel, size, destructive, minSubmitMs, }: FormModalProps): import("react").ReactPortal | null;
27
- export {};
17
+ export default function FormModal({ isOpen, onClose, title, subtitle, sections, initialValues, onSubmit, submitLabel, cancelLabel, size, destructive, minSubmitMs, }: boolean): React.ReactPortal | null;
18
+ import React from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"FormModal.js","sources":["../../../../src/components/library/forms/FormModal.tsx"],"sourcesContent":["import { useEffect, useCallback } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport { XMarkIcon } from \"@heroicons/react/24/outline\";\nimport Spinner from \"../ui/Spinner\";\nimport FormRenderer from \"./FormRenderer\";\nimport useFormState from \"./useFormState\";\nimport type { FormSection } from \"./FormRenderer\";\n\nconst OVERLAY_VARIANTS = {\n hidden: { opacity: 0 },\n visible: { opacity: 1 },\n};\n\nconst PANEL_VARIANTS = {\n hidden: { opacity: 0, y: 24, scale: 0.97 },\n visible: { opacity: 1, y: 0, scale: 1, transition: { type: \"spring\" as const, damping: 25, stiffness: 350 } },\n exit: { opacity: 0, y: 16, scale: 0.97, transition: { duration: 0.15 } },\n};\n\nconst SIZE_CLASSES = {\n sm: \"max-w-md\",\n md: \"max-w-xl\",\n lg: \"max-w-2xl\",\n xl: \"max-w-4xl\",\n} as const;\n\nexport interface FormModalProps {\n isOpen?: boolean;\n onClose?: () => void;\n title: string;\n subtitle?: string;\n sections?: FormSection[];\n initialValues?: Record<string, unknown>;\n onSubmit?: (values: Record<string, unknown>) => void | Promise<void>;\n submitLabel?: string;\n cancelLabel?: string;\n size?: keyof typeof SIZE_CLASSES;\n destructive?: boolean;\n minSubmitMs?: number;\n}\n\n/**\n * Modal dialog for creating or editing records.\n * Wraps FormRenderer + useFormState in an animated overlay.\n */\nexport default function FormModal({\n isOpen = false,\n onClose,\n title,\n subtitle,\n sections = [],\n initialValues = {},\n onSubmit,\n submitLabel = \"Save\",\n cancelLabel = \"Cancel\",\n size = \"lg\",\n destructive = false,\n minSubmitMs,\n}: FormModalProps) {\n const form = useFormState({\n initialValues,\n sections,\n minSubmitMs,\n onSubmit: async (vals) => {\n await onSubmit?.(vals);\n onClose?.();\n },\n });\n\n useEffect(() => {\n if (isOpen) form.reset();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose?.();\n },\n [onClose]\n );\n\n useEffect(() => {\n if (!isOpen) return;\n document.addEventListener(\"keydown\", onKeyDown);\n document.body.style.overflow = \"hidden\";\n return () => {\n document.removeEventListener(\"keydown\", onKeyDown);\n document.body.style.overflow = \"\";\n };\n }, [isOpen, onKeyDown]);\n\n if (typeof document === \"undefined\") return null;\n\n return createPortal(\n <AnimatePresence>\n {isOpen ? (\n <div className=\"fixed inset-0 z-50 flex items-start justify-center px-4 pt-[10vh] sm:pt-[12vh]\">\n {/* Backdrop */}\n <motion.div\n key=\"overlay\"\n className=\"fixed inset-0 bg-black/40 backdrop-blur-sm\"\n variants={OVERLAY_VARIANTS}\n initial=\"hidden\"\n animate=\"visible\"\n exit=\"hidden\"\n transition={{ duration: 0.2 }}\n onClick={onClose}\n aria-hidden=\"true\"\n />\n\n {/* Panel */}\n <motion.div\n key=\"panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n variants={PANEL_VARIANTS}\n initial=\"hidden\"\n animate=\"visible\"\n exit=\"exit\"\n className={[\n \"relative z-10 flex w-full flex-col rounded-xl border border-slate-200 bg-white shadow-xl dark:border-slate-800 dark:bg-slate-900\",\n SIZE_CLASSES[size] ?? SIZE_CLASSES.lg,\n \"max-h-[80vh]\",\n ].join(\" \")}\n >\n {/* Header */}\n <div className=\"flex items-start justify-between border-b border-slate-100 px-6 py-4 dark:border-slate-800\">\n <div>\n <h2 className=\"text-base font-semibold text-slate-900 dark:text-slate-50\">\n {title}\n </h2>\n {subtitle ? (\n <p className=\"mt-0.5 text-sm text-slate-500 dark:text-slate-400\">{subtitle}</p>\n ) : null}\n </div>\n <button\n type=\"button\"\n onClick={onClose}\n className=\"rounded-lg p-1.5 text-slate-400 transition hover:bg-slate-100 hover:text-slate-600 dark:text-slate-500 dark:hover:bg-slate-800 dark:hover:text-slate-300\"\n aria-label=\"Close\"\n >\n <XMarkIcon className=\"h-5 w-5\" />\n </button>\n </div>\n\n {/* Body — scrollable */}\n <div className=\"flex-1 overflow-y-auto px-6 py-5\">\n <FormRenderer\n sections={sections}\n values={form.values}\n errors={form.errors}\n touched={form.touched}\n onFieldChange={form.setValue}\n onFieldBlur={form.setTouched}\n formError={form.errors._form}\n />\n </div>\n\n {/* Footer */}\n <div className=\"flex items-center justify-between border-t border-slate-100 px-6 py-4 dark:border-slate-800\">\n <div className=\"text-xs text-slate-400 dark:text-slate-500\">\n {form.isDirty ? \"Unsaved changes\" : \"\\u00A0\"}\n </div>\n <div className=\"flex items-center gap-3\">\n <button\n type=\"button\"\n onClick={onClose}\n className=\"inline-flex h-9 items-center rounded-lg border border-slate-200 bg-white px-4 text-sm font-medium text-slate-700 shadow-sm transition hover:bg-slate-50 dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200 dark:hover:bg-slate-700\"\n >\n {cancelLabel}\n </button>\n <button\n type=\"button\"\n onClick={form.handleSubmit}\n disabled={form.isSubmitting}\n className={[\n \"inline-flex h-9 items-center gap-2 rounded-lg border border-transparent px-4 text-sm font-medium text-white shadow-sm transition\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 dark:focus-visible:ring-offset-slate-900\",\n \"disabled:cursor-not-allowed disabled:opacity-60\",\n destructive\n ? \"bg-red-600 hover:bg-red-500 focus-visible:ring-red-500 dark:bg-red-600 dark:hover:bg-red-500\"\n : \"bg-brand-600 hover:bg-brand-500 focus-visible:ring-brand-500 dark:bg-brand-500 dark:hover:bg-brand-400\",\n ].join(\" \")}\n >\n {form.isSubmitting ? (\n <>\n <Spinner size=\"sm\" tone=\"white\" label=\"Submitting\" />\n Saving…\n </>\n ) : submitLabel}\n </button>\n </div>\n </div>\n </motion.div>\n </div>\n ) : null}\n </AnimatePresence>,\n document.body\n );\n}\n"],"names":["OVERLAY_VARIANTS","PANEL_VARIANTS","SIZE_CLASSES","FormModal","isOpen","onClose","title","subtitle","sections","initialValues","onSubmit","submitLabel","cancelLabel","size","destructive","minSubmitMs","form","useFormState","vals","useEffect","onKeyDown","useCallback","e","createPortal","AnimatePresence","jsxs","jsx","motion","XMarkIcon","FormRenderer","Fragment","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"FormModal.js","sources":["../../../../src/components/library/forms/FormModal.jsx"],"sourcesContent":["import React, { useEffect, useCallback } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport { XMarkIcon } from \"@heroicons/react/24/outline\";\nimport Spinner from \"../ui/Spinner\";\nimport FormRenderer from \"./FormRenderer\";\nimport useFormState from \"./useFormState\";\n\nconst OVERLAY_VARIANTS = {\n hidden: { opacity: 0 },\n visible: { opacity: 1 },\n};\n\nconst PANEL_VARIANTS = {\n hidden: { opacity: 0, y: 24, scale: 0.97 },\n visible: { opacity: 1, y: 0, scale: 1, transition: { type: \"spring\", damping: 25, stiffness: 350 } },\n exit: { opacity: 0, y: 16, scale: 0.97, transition: { duration: 0.15 } },\n};\n\n/**\n * Size → max-width mapping.\n */\nconst SIZE_CLASSES = {\n sm: \"max-w-md\",\n md: \"max-w-xl\",\n lg: \"max-w-2xl\",\n xl: \"max-w-4xl\",\n};\n\n/**\n * Modal dialog for creating or editing records.\n * Wraps FormRenderer + useFormState in an animated overlay.\n *\n * @param {boolean} isOpen — whether the modal is visible\n * @param {Function} onClose — close handler\n * @param {string} title — modal title (e.g. \"Edit Service\", \"New Incident\")\n * @param {string} subtitle — optional subtitle\n * @param {Array} sections — form schema sections\n * @param {Object} initialValues — prefill for editing (empty = create mode)\n * @param {Function} onSubmit — async (values) => void, called on valid submit\n * @param {string} submitLabel — submit button text (default: \"Save\")\n * @param {string} cancelLabel — cancel button text (default: \"Cancel\")\n * @param {string} size — \"sm\" | \"md\" | \"lg\" | \"xl\" (default: \"lg\")\n * @param {boolean} destructive — if true, submit button is red (for delete confirmations)\n */\nexport default function FormModal({\n isOpen = false,\n onClose,\n title,\n subtitle,\n sections = [],\n initialValues = {},\n onSubmit,\n submitLabel = \"Save\",\n cancelLabel = \"Cancel\",\n size = \"lg\",\n destructive = false,\n minSubmitMs,\n}) {\n const form = useFormState({\n initialValues,\n sections,\n minSubmitMs,\n onSubmit: async (vals) => {\n await onSubmit?.(vals);\n onClose?.();\n },\n });\n\n useEffect(() => {\n if (isOpen) form.reset();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n const onKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\") onClose?.();\n },\n [onClose]\n );\n\n useEffect(() => {\n if (!isOpen) return;\n document.addEventListener(\"keydown\", onKeyDown);\n document.body.style.overflow = \"hidden\";\n return () => {\n document.removeEventListener(\"keydown\", onKeyDown);\n document.body.style.overflow = \"\";\n };\n }, [isOpen, onKeyDown]);\n\n if (typeof document === \"undefined\") return null;\n\n return createPortal(\n <AnimatePresence>\n {isOpen ? (\n <div className=\"fixed inset-0 z-50 flex items-start justify-center px-4 pt-[10vh] sm:pt-[12vh]\">\n {/* Backdrop */}\n <motion.div\n key=\"overlay\"\n className=\"fixed inset-0 bg-black/40 backdrop-blur-sm\"\n variants={OVERLAY_VARIANTS}\n initial=\"hidden\"\n animate=\"visible\"\n exit=\"hidden\"\n transition={{ duration: 0.2 }}\n onClick={onClose}\n aria-hidden=\"true\"\n />\n\n {/* Panel */}\n <motion.div\n key=\"panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n variants={PANEL_VARIANTS}\n initial=\"hidden\"\n animate=\"visible\"\n exit=\"exit\"\n className={[\n \"relative z-10 flex w-full flex-col rounded-xl border border-slate-200 bg-white shadow-xl dark:border-slate-800 dark:bg-slate-900\",\n SIZE_CLASSES[size] ?? SIZE_CLASSES.lg,\n \"max-h-[80vh]\",\n ].join(\" \")}\n >\n {/* Header */}\n <div className=\"flex items-start justify-between border-b border-slate-100 px-6 py-4 dark:border-slate-800\">\n <div>\n <h2 className=\"text-base font-semibold text-slate-900 dark:text-slate-50\">\n {title}\n </h2>\n {subtitle ? (\n <p className=\"mt-0.5 text-sm text-slate-500 dark:text-slate-400\">{subtitle}</p>\n ) : null}\n </div>\n <button\n type=\"button\"\n onClick={onClose}\n className=\"rounded-lg p-1.5 text-slate-400 transition hover:bg-slate-100 hover:text-slate-600 dark:text-slate-500 dark:hover:bg-slate-800 dark:hover:text-slate-300\"\n aria-label=\"Close\"\n >\n <XMarkIcon className=\"h-5 w-5\" />\n </button>\n </div>\n\n {/* Body — scrollable */}\n <div className=\"flex-1 overflow-y-auto px-6 py-5\">\n <FormRenderer\n sections={sections}\n values={form.values}\n errors={form.errors}\n touched={form.touched}\n onFieldChange={form.setValue}\n onFieldBlur={form.setTouched}\n formError={form.errors._form}\n />\n </div>\n\n {/* Footer */}\n <div className=\"flex items-center justify-between border-t border-slate-100 px-6 py-4 dark:border-slate-800\">\n <div className=\"text-xs text-slate-400 dark:text-slate-500\">\n {form.isDirty ? \"Unsaved changes\" : \"\\u00A0\"}\n </div>\n <div className=\"flex items-center gap-3\">\n <button\n type=\"button\"\n onClick={onClose}\n className=\"inline-flex h-9 items-center rounded-lg border border-slate-200 bg-white px-4 text-sm font-medium text-slate-700 shadow-sm transition hover:bg-slate-50 dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200 dark:hover:bg-slate-700\"\n >\n {cancelLabel}\n </button>\n <button\n type=\"button\"\n onClick={form.handleSubmit}\n disabled={form.isSubmitting}\n className={[\n \"inline-flex h-9 items-center gap-2 rounded-lg border border-transparent px-4 text-sm font-medium text-white shadow-sm transition\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 dark:focus-visible:ring-offset-slate-900\",\n \"disabled:cursor-not-allowed disabled:opacity-60\",\n destructive\n ? \"bg-red-600 hover:bg-red-500 focus-visible:ring-red-500 dark:bg-red-600 dark:hover:bg-red-500\"\n : \"bg-brand-600 hover:bg-brand-500 focus-visible:ring-brand-500 dark:bg-brand-500 dark:hover:bg-brand-400\",\n ].join(\" \")}\n >\n {form.isSubmitting ? (\n <>\n <Spinner size=\"sm\" tone=\"white\" label=\"Submitting\" />\n Saving…\n </>\n ) : submitLabel}\n </button>\n </div>\n </div>\n </motion.div>\n </div>\n ) : null}\n </AnimatePresence>,\n document.body\n );\n}\n"],"names":["OVERLAY_VARIANTS","PANEL_VARIANTS","SIZE_CLASSES","FormModal","isOpen","onClose","title","subtitle","sections","initialValues","onSubmit","submitLabel","cancelLabel","size","destructive","minSubmitMs","form","useFormState","vals","useEffect","onKeyDown","useCallback","e","createPortal","AnimatePresence","jsxs","jsx","motion","XMarkIcon","FormRenderer","Fragment","Spinner"],"mappings":"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"}
@@ -1,33 +1,13 @@
1
- export interface FormSection {
2
- id?: string;
3
- title?: string;
4
- description?: string;
5
- fields: FormField[];
6
- }
7
- export interface FormField {
8
- id: string;
9
- type: string;
10
- label?: string;
11
- placeholder?: string;
12
- description?: string;
13
- required?: boolean;
14
- requiredMessage?: string;
15
- disabled?: boolean;
16
- readOnly?: boolean;
17
- validate?: (value: unknown, values: Record<string, unknown>) => string | undefined;
18
- [key: string]: unknown;
19
- }
20
- export interface FormRendererProps {
21
- sections?: FormSection[];
22
- values?: Record<string, unknown>;
23
- errors?: Record<string, string>;
24
- touched?: Record<string, boolean>;
25
- onFieldChange: (fieldId: string, value: unknown) => void;
26
- onFieldBlur: (fieldId: string) => void;
27
- formError?: string;
28
- }
29
1
  /**
30
2
  * Renders a complete form from a schema definition.
31
3
  * Pairs with useFormState for state management.
4
+ *
5
+ * @param {Array} sections — form schema sections
6
+ * @param {Object} values — current form values
7
+ * @param {Object} errors — current validation errors
8
+ * @param {Object} touched — which fields have been touched
9
+ * @param {Function} onFieldChange — (fieldId, value) => void
10
+ * @param {Function} onFieldBlur — (fieldId) => void
11
+ * @param {string} formError — top-level form error (e.g. submission failure)
32
12
  */
33
- export default function FormRenderer({ sections, values, errors, touched, onFieldChange, onFieldBlur, formError, }: FormRendererProps): import("react/jsx-runtime").JSX.Element;
13
+ export default function FormRenderer({ sections, values, errors, touched, onFieldChange, onFieldBlur, formError, }: any[]): import("react/jsx-runtime").JSX.Element;
@@ -1,12 +1,13 @@
1
1
  import { jsxs as n, jsx as d } from "react/jsx-runtime";
2
+ import "react";
2
3
  import p from "./FormSection.js";
3
- function b({
4
+ function u({
4
5
  sections: t = [],
5
6
  values: a = {},
6
7
  errors: o = {},
7
8
  touched: m = {},
8
- onFieldChange: s,
9
- onFieldBlur: i,
9
+ onFieldChange: i,
10
+ onFieldBlur: s,
10
11
  formError: r
11
12
  }) {
12
13
  return /* @__PURE__ */ n("div", { className: "space-y-8", children: [
@@ -18,14 +19,14 @@ function b({
18
19
  values: a,
19
20
  errors: o,
20
21
  touched: m,
21
- onFieldChange: s,
22
- onFieldBlur: i
22
+ onFieldChange: i,
23
+ onFieldBlur: s
23
24
  },
24
25
  e.id ?? l
25
26
  ))
26
27
  ] });
27
28
  }
28
29
  export {
29
- b as default
30
+ u as default
30
31
  };
31
32
  //# sourceMappingURL=FormRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormRenderer.js","sources":["../../../../src/components/library/forms/FormRenderer.tsx"],"sourcesContent":["import FormSection from \"./FormSection\";\n\nexport interface FormSection {\n id?: string;\n title?: string;\n description?: string;\n fields: FormField[];\n}\n\nexport interface FormField {\n id: string;\n type: string;\n label?: string;\n placeholder?: string;\n description?: string;\n required?: boolean;\n requiredMessage?: string;\n disabled?: boolean;\n readOnly?: boolean;\n validate?: (value: unknown, values: Record<string, unknown>) => string | undefined;\n [key: string]: unknown;\n}\n\nexport interface FormRendererProps {\n sections?: FormSection[];\n values?: Record<string, unknown>;\n errors?: Record<string, string>;\n touched?: Record<string, boolean>;\n onFieldChange: (fieldId: string, value: unknown) => void;\n onFieldBlur: (fieldId: string) => void;\n formError?: string;\n}\n\n/**\n * Renders a complete form from a schema definition.\n * Pairs with useFormState for state management.\n */\nexport default function FormRenderer({\n sections = [],\n values = {},\n errors = {},\n touched = {},\n onFieldChange,\n onFieldBlur,\n formError,\n}: FormRendererProps) {\n return (\n <div className=\"space-y-8\">\n {formError ? (\n <div className=\"rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700 dark:border-red-800 dark:bg-red-950/30 dark:text-red-300\">\n {formError}\n </div>\n ) : null}\n\n {sections.map((section, idx) => (\n <FormSection\n key={section.id ?? idx}\n section={section}\n values={values}\n errors={errors}\n touched={touched}\n onFieldChange={onFieldChange}\n onFieldBlur={onFieldBlur}\n />\n ))}\n </div>\n );\n}\n"],"names":["FormRenderer","sections","values","errors","touched","onFieldChange","onFieldBlur","formError","jsxs","jsx","section","idx","FormSection"],"mappings":";;AAqCA,SAAwBA,EAAa;AAAA,EACnC,UAAAC,IAAW,CAAA;AAAA,EACX,QAAAC,IAAS,CAAA;AAAA,EACT,QAAAC,IAAS,CAAA;AAAA,EACT,SAAAC,IAAU,CAAA;AAAA,EACV,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AACF,GAAsB;AACpB,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,aACZ,UAAA;AAAA,IAAAD,IACC,gBAAAE,EAAC,OAAA,EAAI,WAAU,sIACZ,aACH,IACE;AAAA,IAEHR,EAAS,IAAI,CAACS,GAASC,MACtB,gBAAAF;AAAA,MAACG;AAAA,MAAA;AAAA,QAEC,SAAAF;AAAA,QACA,QAAAR;AAAA,QACA,QAAAC;AAAA,QACA,SAAAC;AAAA,QACA,eAAAC;AAAA,QACA,aAAAC;AAAA,MAAA;AAAA,MANKI,EAAQ,MAAMC;AAAA,IAAA,CAQtB;AAAA,EAAA,GACH;AAEJ;"}
1
+ {"version":3,"file":"FormRenderer.js","sources":["../../../../src/components/library/forms/FormRenderer.jsx"],"sourcesContent":["import React from \"react\";\nimport FormSection from \"./FormSection\";\n\n/**\n * Renders a complete form from a schema definition.\n * Pairs with useFormState for state management.\n *\n * @param {Array} sections — form schema sections\n * @param {Object} values current form values\n * @param {Object} errors — current validation errors\n * @param {Object} touched which fields have been touched\n * @param {Function} onFieldChange (fieldId, value) => void\n * @param {Function} onFieldBlur (fieldId) => void\n * @param {string} formError top-level form error (e.g. submission failure)\n */\nexport default function FormRenderer({\n sections = [],\n values = {},\n errors = {},\n touched = {},\n onFieldChange,\n onFieldBlur,\n formError,\n}) {\n return (\n <div className=\"space-y-8\">\n {formError ? (\n <div className=\"rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700 dark:border-red-800 dark:bg-red-950/30 dark:text-red-300\">\n {formError}\n </div>\n ) : null}\n\n {sections.map((section, idx) => (\n <FormSection\n key={section.id ?? idx}\n section={section}\n values={values}\n errors={errors}\n touched={touched}\n onFieldChange={onFieldChange}\n onFieldBlur={onFieldBlur}\n />\n ))}\n </div>\n );\n}\n"],"names":["FormRenderer","sections","values","errors","touched","onFieldChange","onFieldBlur","formError","jsxs","jsx","section","idx","FormSection"],"mappings":";;;AAeA,SAAwBA,EAAa;AAAA,EACnC,UAAAC,IAAW,CAAA;AAAA,EACX,QAAAC,IAAS,CAAA;AAAA,EACT,QAAAC,IAAS,CAAA;AAAA,EACT,SAAAC,IAAU,CAAA;AAAA,EACV,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AACF,GAAG;AACD,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,aACZ,UAAA;AAAA,IAAAD,IACC,gBAAAE,EAAC,OAAA,EAAI,WAAU,sIACZ,aACH,IACE;AAAA,IAEHR,EAAS,IAAI,CAACS,GAASC,MACtB,gBAAAF;AAAA,MAACG;AAAA,MAAA;AAAA,QAEC,SAAAF;AAAA,QACA,QAAAR;AAAA,QACA,QAAAC;AAAA,QACA,SAAAC;AAAA,QACA,eAAAC;AAAA,QACA,aAAAC;AAAA,MAAA;AAAA,MANKI,EAAQ,MAAMC;AAAA,IAAA,CAQtB;AAAA,EAAA,GACH;AAEJ;"}
@@ -1,15 +1,13 @@
1
- import type { FormSection as FormSectionType } from "./FormRenderer";
2
- export interface FormSectionProps {
3
- section: FormSectionType;
4
- values: Record<string, unknown>;
5
- errors: Record<string, string>;
6
- touched: Record<string, boolean>;
7
- onFieldChange: (fieldId: string, value: unknown) => void;
8
- onFieldBlur: (fieldId: string) => void;
9
- }
10
1
  /**
11
2
  * A titled section of a form with a 2-column grid layout.
12
3
  * Fields default to 1-column (half width) unless the type is naturally
13
4
  * full-width or the field specifies `colSpan: 2`.
14
5
  */
15
- export default function FormSection({ section, values, errors, touched, onFieldChange, onFieldBlur, }: FormSectionProps): import("react/jsx-runtime").JSX.Element | null;
6
+ export default function FormSection({ section, values, errors, touched, onFieldChange, onFieldBlur, }: {
7
+ section: any;
8
+ values: any;
9
+ errors: any;
10
+ touched: any;
11
+ onFieldChange: any;
12
+ onFieldBlur: any;
13
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,11 +1,12 @@
1
1
  import { jsxs as a, jsx as r } from "react/jsx-runtime";
2
+ import "react";
2
3
  import p from "./FormField.js";
3
4
  const x = /* @__PURE__ */ new Set([
4
5
  "textarea",
5
6
  "radio",
6
7
  "checkboxGroup"
7
8
  ]);
8
- function g({
9
+ function b({
9
10
  section: t,
10
11
  values: l,
11
12
  errors: d,
@@ -43,6 +44,6 @@ function g({
43
44
  ] }) : null;
44
45
  }
45
46
  export {
46
- g as default
47
+ b as default
47
48
  };
48
49
  //# sourceMappingURL=FormSection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormSection.js","sources":["../../../../src/components/library/forms/FormSection.tsx"],"sourcesContent":["import FormField from \"./FormField\";\nimport type { FormSection as FormSectionType, FormField as FormFieldType } from \"./FormRenderer\";\n\nconst FULL_WIDTH_TYPES = new Set([\n \"textarea\",\n \"radio\",\n \"checkboxGroup\",\n]);\n\nexport interface FormSectionProps {\n section: FormSectionType;\n values: Record<string, unknown>;\n errors: Record<string, string>;\n touched: Record<string, boolean>;\n onFieldChange: (fieldId: string, value: unknown) => void;\n onFieldBlur: (fieldId: string) => void;\n}\n\n/**\n * A titled section of a form with a 2-column grid layout.\n * Fields default to 1-column (half width) unless the type is naturally\n * full-width or the field specifies `colSpan: 2`.\n */\nexport default function FormSection({\n section,\n values,\n errors,\n touched,\n onFieldChange,\n onFieldBlur,\n}: FormSectionProps) {\n const fields = section.fields ?? [];\n if (!fields.length) return null;\n\n return (\n <fieldset className=\"space-y-4\">\n {section.title ? (\n <div className=\"border-b border-slate-100 pb-3 dark:border-slate-800\">\n <legend className=\"text-sm font-semibold text-slate-900 dark:text-slate-50\">\n {section.title}\n </legend>\n {section.description ? (\n <p className=\"mt-0.5 text-xs text-slate-500 dark:text-slate-400\">\n {section.description}\n </p>\n ) : null}\n </div>\n ) : null}\n\n <div className=\"grid grid-cols-1 gap-x-4 gap-y-5 sm:grid-cols-2\">\n {fields.map((field: FormFieldType & { colSpan?: number }) => {\n const span =\n field.colSpan ??\n (FULL_WIDTH_TYPES.has(field.type) ? 2 : 1);\n\n return (\n <div\n key={field.id}\n className={span === 2 ? \"sm:col-span-2\" : undefined}\n >\n <FormField\n field={field}\n value={values[field.id]}\n error={errors[field.id]}\n touched={touched[field.id]}\n onChange={(val: unknown) => onFieldChange(field.id, val)}\n onBlur={() => onFieldBlur(field.id)}\n />\n </div>\n );\n })}\n </div>\n </fieldset>\n );\n}\n"],"names":["FULL_WIDTH_TYPES","FormSection","section","values","errors","touched","onFieldChange","onFieldBlur","fields","jsxs","jsx","field","span","FormField","val"],"mappings":";;AAGA,MAAMA,wBAAuB,IAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAgBD,SAAwBC,EAAY;AAAA,EAClC,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,aAAAC;AACF,GAAqB;AACnB,QAAMC,IAASN,EAAQ,UAAU,CAAA;AACjC,SAAKM,EAAO,SAGV,gBAAAC,EAAC,YAAA,EAAS,WAAU,aACjB,UAAA;AAAA,IAAAP,EAAQ,QACP,gBAAAO,EAAC,OAAA,EAAI,WAAU,wDACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,UAAA,EAAO,WAAU,2DACf,UAAAR,EAAQ,OACX;AAAA,MACCA,EAAQ,cACP,gBAAAQ,EAAC,KAAA,EAAE,WAAU,qDACV,UAAAR,EAAQ,aACX,IACE;AAAA,IAAA,EAAA,CACN,IACE;AAAA,sBAEH,OAAA,EAAI,WAAU,mDACZ,UAAAM,EAAO,IAAI,CAACG,MAAgD;AAC3D,YAAMC,IACJD,EAAM,YACLX,EAAiB,IAAIW,EAAM,IAAI,IAAI,IAAI;AAE1C,aACE,gBAAAD;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAWE,MAAS,IAAI,kBAAkB;AAAA,UAE1C,UAAA,gBAAAF;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,OAAAF;AAAA,cACA,OAAOR,EAAOQ,EAAM,EAAE;AAAA,cACtB,OAAOP,EAAOO,EAAM,EAAE;AAAA,cACtB,SAASN,EAAQM,EAAM,EAAE;AAAA,cACzB,UAAU,CAACG,MAAiBR,EAAcK,EAAM,IAAIG,CAAG;AAAA,cACvD,QAAQ,MAAMP,EAAYI,EAAM,EAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QACpC;AAAA,QAVKA,EAAM;AAAA,MAAA;AAAA,IAajB,CAAC,EAAA,CACH;AAAA,EAAA,GACF,IAxCyB;AA0C7B;"}
1
+ {"version":3,"file":"FormSection.js","sources":["../../../../src/components/library/forms/FormSection.jsx"],"sourcesContent":["import React from \"react\";\nimport FormField from \"./FormField\";\n\n/**\n * Fields that naturally span full width by default.\n */\nconst FULL_WIDTH_TYPES = new Set([\n \"textarea\",\n \"radio\",\n \"checkboxGroup\",\n]);\n\n/**\n * A titled section of a form with a 2-column grid layout.\n * Fields default to 1-column (half width) unless the type is naturally\n * full-width or the field specifies `colSpan: 2`.\n */\nexport default function FormSection({\n section,\n values,\n errors,\n touched,\n onFieldChange,\n onFieldBlur,\n}) {\n const fields = section.fields ?? [];\n if (!fields.length) return null;\n\n return (\n <fieldset className=\"space-y-4\">\n {section.title ? (\n <div className=\"border-b border-slate-100 pb-3 dark:border-slate-800\">\n <legend className=\"text-sm font-semibold text-slate-900 dark:text-slate-50\">\n {section.title}\n </legend>\n {section.description ? (\n <p className=\"mt-0.5 text-xs text-slate-500 dark:text-slate-400\">\n {section.description}\n </p>\n ) : null}\n </div>\n ) : null}\n\n <div className=\"grid grid-cols-1 gap-x-4 gap-y-5 sm:grid-cols-2\">\n {fields.map((field) => {\n const span =\n field.colSpan ??\n (FULL_WIDTH_TYPES.has(field.type) ? 2 : 1);\n\n return (\n <div\n key={field.id}\n className={span === 2 ? \"sm:col-span-2\" : undefined}\n >\n <FormField\n field={field}\n value={values[field.id]}\n error={errors[field.id]}\n touched={touched[field.id]}\n onChange={(val) => onFieldChange(field.id, val)}\n onBlur={() => onFieldBlur(field.id)}\n />\n </div>\n );\n })}\n </div>\n </fieldset>\n );\n}\n"],"names":["FULL_WIDTH_TYPES","FormSection","section","values","errors","touched","onFieldChange","onFieldBlur","fields","jsxs","jsx","field","span","FormField","val"],"mappings":";;;AAMA,MAAMA,wBAAuB,IAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAOD,SAAwBC,EAAY;AAAA,EAClC,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,aAAAC;AACF,GAAG;AACD,QAAMC,IAASN,EAAQ,UAAU,CAAA;AACjC,SAAKM,EAAO,SAGV,gBAAAC,EAAC,YAAA,EAAS,WAAU,aACjB,UAAA;AAAA,IAAAP,EAAQ,QACP,gBAAAO,EAAC,OAAA,EAAI,WAAU,wDACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,UAAA,EAAO,WAAU,2DACf,UAAAR,EAAQ,OACX;AAAA,MACCA,EAAQ,cACP,gBAAAQ,EAAC,KAAA,EAAE,WAAU,qDACV,UAAAR,EAAQ,aACX,IACE;AAAA,IAAA,EAAA,CACN,IACE;AAAA,sBAEH,OAAA,EAAI,WAAU,mDACZ,UAAAM,EAAO,IAAI,CAACG,MAAU;AACrB,YAAMC,IACJD,EAAM,YACLX,EAAiB,IAAIW,EAAM,IAAI,IAAI,IAAI;AAE1C,aACE,gBAAAD;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAWE,MAAS,IAAI,kBAAkB;AAAA,UAE1C,UAAA,gBAAAF;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,OAAAF;AAAA,cACA,OAAOR,EAAOQ,EAAM,EAAE;AAAA,cACtB,OAAOP,EAAOO,EAAM,EAAE;AAAA,cACtB,SAASN,EAAQM,EAAM,EAAE;AAAA,cACzB,UAAU,CAACG,MAAQR,EAAcK,EAAM,IAAIG,CAAG;AAAA,cAC9C,QAAQ,MAAMP,EAAYI,EAAM,EAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QACpC;AAAA,QAVKA,EAAM;AAAA,MAAA;AAAA,IAajB,CAAC,EAAA,CACH;AAAA,EAAA,GACF,IAxCyB;AA0C7B;"}
@@ -3,8 +3,3 @@ export { default as FormRenderer } from "./FormRenderer";
3
3
  export { default as FormSection } from "./FormSection";
4
4
  export { default as FormField } from "./FormField";
5
5
  export { default as useFormState } from "./useFormState";
6
- export type { FormModalProps } from "./FormModal";
7
- export type { FormRendererProps } from "./FormRenderer";
8
- export type { FormSection as FormSectionType, FormField as FormFieldType } from "./FormRenderer";
9
- export type { FormSectionProps } from "./FormSection";
10
- export type { FormFieldProps } from "./FormField";
@@ -1,26 +1,18 @@
1
- import type { FormSection } from "./FormRenderer";
2
- interface UseFormStateOptions {
3
- initialValues?: Record<string, unknown>;
4
- sections?: FormSection[];
5
- onSubmit?: (values: Record<string, unknown>) => void | Promise<void>;
6
- minSubmitMs?: number;
7
- }
8
- interface UseFormStateReturn {
9
- values: Record<string, unknown>;
10
- errors: Record<string, string>;
11
- touched: Record<string, boolean>;
12
- isDirty: boolean;
13
- isValid: boolean;
14
- isSubmitting: boolean;
15
- setValue: (id: string, value: unknown) => void;
16
- setValues: (vals: Record<string, unknown>) => void;
17
- setTouched: (id: string) => void;
18
- validate: () => boolean;
19
- reset: () => void;
20
- handleSubmit: (e?: React.FormEvent) => Promise<boolean>;
21
- }
22
1
  /**
23
2
  * Form state management hook.
3
+ *
4
+ * @param {Object} options
5
+ * @param {Object} options.initialValues — prefill for editing (merged over field defaults)
6
+ * @param {Array} options.sections — form schema sections (used for defaults + validation)
7
+ * @param {Function} options.onSubmit — called with (values) when form is valid
8
+ * @param {number} options.minSubmitMs — minimum time the submit spinner shows (default 4000ms, set 0 to disable)
9
+ *
10
+ * @returns {Object} { values, errors, touched, isDirty, isValid, isSubmitting,
11
+ * setValue, setValues, setTouched, validate, reset, handleSubmit }
24
12
  */
25
- export default function useFormState({ initialValues, sections, onSubmit, minSubmitMs }?: UseFormStateOptions): UseFormStateReturn;
26
- export {};
13
+ export default function useFormState({ initialValues, sections, onSubmit, minSubmitMs }?: {
14
+ initialValues: Object;
15
+ sections: any[];
16
+ onSubmit: Function;
17
+ minSubmitMs: number;
18
+ }): Object;