@schandlergarcia/sf-web-components 1.9.28 → 1.9.29

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 +66 -515
  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 -20
  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,646 +1,46 @@
1
1
  ---
2
2
  name: command-center-builder
3
- description: >-
4
- Strict rules for building command center pages, dashboards, components, and
5
- layouts. Use when creating or editing dashboard pages, choosing components,
6
- designing layouts, styling with dark mode, or working with charts, tables,
7
- forms, filters, chat, or navigation in this project.
3
+ description: Strict rules for building command center pages, dashboards, components, and layouts. Use when creating or editing dashboard pages, choosing components, designing layouts, styling with dark mode, or working with charts, tables, forms, filters, chat, or navigation in this project.
8
4
  ---
9
5
 
10
6
  # Command Center Builder Rules
11
7
 
12
8
  These rules apply when building dashboards rendered by `CommandCenter.tsx`. For full component API details, read the **component-library** skill.
13
9
 
14
- ## STOP — READ BEFORE WRITING ANY CODE
10
+ ## Documentation Structure
15
11
 
16
- **Every time you build a dashboard, you MUST follow these non-negotiable rules. Violations are the #1 cause of rejected dashboards.**
12
+ This skill is split into focused sub-files for the command center build workflow:
17
13
 
18
- 1. **Actually write COMPLETE files to disk.** Use the file-writing tools to create `.tsx` files (NOT `.jsx`) in `src/pages/` and update `CommandCenter.tsx` to import your dashboard. This is a TypeScript project - all React components MUST use `.tsx` extension. **CRITICAL: Write the ENTIRE file from import statements through the closing brace `}` of the export statement. Do NOT stop mid-file, mid-function, or mid-line. Every JSX tag you open must be closed. Every string you open must be closed. Every className attribute must be complete.** If you only describe what you would build without creating the files, the dashboard will not render. Verify the files exist after writing them.
14
+ | File | What's Inside | When to Use |
15
+ |------|---------------|-------------|
16
+ | **[getting-started.md](./getting-started.md)** | STOP section, CRITICAL rules, Image requirements, Navigation rules | Read FIRST before building any dashboard |
17
+ | **[page-layout.md](./page-layout.md)** | Where dashboards live, How to wire them, Page structure, Layout grids, Map layouts | Creating new dashboard pages or designing layouts |
18
+ | **[components-styling.md](./components-styling.md)** | Component selection, Data contracts, Metric formatting, Brand/accent colors, Semantic colors, Status values, Dark mode, Icons, Fonts, Filtering utilities | Choosing components, styling, theming, formatting data |
19
+ | **[data-forms-ai.md](./data-forms-ai.md)** | Data mode (sample vs live), Forms & record modals, AI chat & agent, Tables | Working with data sources, forms, AI features |
20
+ | **[charts-visualization.md](./charts-visualization.md)** | Charts & visualizations (MANDATORY rules), Portals, Loading/error/empty states | Building charts, visualizations, data viz |
21
+ | **[completion-checklist.md](./completion-checklist.md)** | Pre-completion checklist, Post-completion verification (REQUIRED), Anti-patterns | Before reporting done — validation steps |
19
22
 
20
- 2. **Use ONLY library components** from `@/components/library` for all cards, charts, tables, lists, and feeds. The library has 30+ components — there is no reason to hand-roll HTML. See the component table below.
23
+ ## Quick Start Workflow
21
24
 
22
- 3. **No navigation inside the dashboard.** No `<nav>`, no header bar, no tab bar acting as page-level navigation. The app shell handles navigation. Your dashboard starts with content.
25
+ 1. **Starting a new dashboard?** Read [getting-started.md](./getting-started.md) COMPLETELY FIRST
26
+ 2. **Creating the page file?** → Check [page-layout.md](./page-layout.md) for wiring and structure
27
+ 3. **Adding components?** → Use [components-styling.md](./components-styling.md) + **component-library** skill
28
+ 4. **Building charts?** → Follow [charts-visualization.md](./charts-visualization.md) MANDATORY rules
29
+ 5. **Before reporting done?** → Run [completion-checklist.md](./completion-checklist.md) verification
23
30
 
24
- 4. **Max 4 MetricCards per row.** Never 5. Split into two rows if needed.
31
+ ## Critical Rules Summary
25
32
 
26
- 5. **All charts use `ChartCard` + `D3Chart` or `GeoMap`.** No Recharts, no Chart.js, no custom SVG, no canvas, no hand-drawn paths. The only charting tools allowed are `D3Chart` (with `D3ChartTemplates` or a custom `renderChart` function) and `GeoMap`.
33
+ - **ALWAYS read [getting-started.md](./getting-started.md) FIRST** contains blocking requirements
34
+ - **Never hand-roll HTML cards** — use library components only
35
+ - **Dark mode is MANDATORY** — all color choices must support it
36
+ - **Images are MANDATORY** — every dashboard needs relevant visuals
37
+ - **Charts have strict rules** — D3Chart only, specific templates required
38
+ - **No dashboard-level navigation** — dashboards are nav targets, not nav containers
39
+ - **Validation is REQUIRED** — run post-completion checklist before reporting done
27
40
 
28
- 6. **Never `npm install` Salesforce packages.** The `@salesforce/*` packages are platform-provided via broken symlinks. They are stubbed in `src/stubs/` and aliased in `vite.config.ts`. Do not try to install them — they don't exist on npm. If you see a TypeScript error about `@salesforce/vite-plugin-webapp-experimental`, ignore it — the build still succeeds via `vite build` (the `tsc` error is in `vite.config.ts` which is handled separately by `tsconfig.node.json`).
41
+ ## Where to Find Component Details
29
42
 
30
- If your output violates any of these 6 rules, it will be rejected and you will need to redo the work.
43
+ This skill covers **when** and **how** to use components in command centers. For **exact props and data shapes**, see:
31
44
 
32
- ## CRITICAL: Use Library Components Never Hand-Roll HTML Cards
33
-
34
- **This is the #1 mistake.** The component library (`@/components/library`) provides pre-built, themed, dark-mode-ready cards for every common dashboard need. You MUST use them instead of writing raw `<div>` cards with custom classes.
35
-
36
- ### Before writing ANY card-like UI, check this table:
37
-
38
- | Need | MUST use | NEVER do |
39
- |------|----------|----------|
40
- | KPI / stat | `MetricCard` | `<div className="bg-white border ..."><h3>Total Spend</h3><span>$4,903</span></div>` |
41
- | List of items | `ListCard` | `<div className="bg-white ..."><div className="space-y-3">` with custom item rows |
42
- | Activity feed | `ActivityCard` or `FeedPanel` | `<div>` with hand-rolled interaction rows |
43
- | Data table | `TableCard` | `<table>` or custom grid of rows |
44
- | Stats panel | `WidgetCard` or `SectionCard` | `<div className="bg-white ... p-6">` with label/value pairs |
45
- | Custom interactive content (expand/collapse, inline details) | `WidgetCard` (sections accept arbitrary JSX) or `ListCard` (with `onItemClick` + `itemActions`) | Hand-rolled `<div>` card with custom expand/collapse logic |
46
- | Status items | `StatusCard` | `<div>` with custom status badges |
47
- | Text summary | `NarrativeSummary` / `SectionCard` | `<div>` with headings and paragraphs |
48
- | Alert / callout | `CalloutCard` | Custom banner div |
49
-
50
- **Every visible section of a dashboard should be a library component.** If you find yourself writing `<div className="bg-white border rounded-[10px] shadow-sm p-6">` with content inside, STOP — you are hand-rolling a card. Find the library component that fits.
51
-
52
- ### Correct example:
53
-
54
- ```jsx
55
- import { MetricCard, ListCard, ActivityCard, WidgetCard } from "@/components/library";
56
-
57
- // KPIs — use MetricCard
58
- <MetricCard title="Active Travelers" value={6} subtitle="Currently traveling" />
59
-
60
- // List — use ListCard with items array
61
- <ListCard title="Trip Activity" items={trips.map(t => ({
62
- id: t.id, title: t.hotel, description: `${t.city} · ${t.dates}`,
63
- status: t.status, avatar: t.travelerInitials
64
- }))} />
65
-
66
- // Activity feed — use ActivityCard
67
- <ActivityCard title="Eva — Recent Interactions" items={interactions.map(i => ({
68
- id: i.id, title: i.traveler, description: i.query,
69
- status: i.status, timestamp: i.time
70
- }))} />
71
-
72
- // Stats panel — use WidgetCard
73
- <WidgetCard title="Company Activity">
74
- {/* structured content */}
75
- </WidgetCard>
76
- ```
77
-
78
- ### Wrong example (hand-rolled HTML):
79
-
80
- ```jsx
81
- // ❌ NEVER DO THIS — this is a hand-rolled card
82
- <div className="bg-white border border-engine-border rounded-[10px] shadow-sm">
83
- <div className="p-6 border-b border-engine-border">
84
- <h2 className="text-lg font-semibold">Trip Activity</h2>
85
- </div>
86
- <div className="p-6 space-y-4">
87
- {trips.map(trip => (
88
- <div key={trip.id} className="flex gap-4 p-4 rounded-lg border ...">
89
- ...
90
- </div>
91
- ))}
92
- </div>
93
- </div>
94
- ```
95
-
96
- ## Images (MANDATORY)
97
-
98
- The only image allowed in dashboards is the **company logo**: `src/assets/images/engine_logo.png`. Import it as a module and use it where a logo is needed (nav header, branding, etc.).
99
-
100
- ```jsx
101
- import engineLogo from "@/assets/images/engine_logo.png";
102
-
103
- <img src={engineLogo} alt="Engine" className="h-8 w-auto" />
104
- ```
105
-
106
- - **Do not use external image URLs** (Unsplash, placeholder services, etc.) unless the user explicitly requests images.
107
- - **Do not use other asset images** (codey-*.png, etc.) unless the user asks for them.
108
- - **Preserve aspect ratio** — always use `w-auto` with a fixed height, or `h-auto` with a fixed width. Never set both `w-*` and `h-*` to fixed values on the logo or any image, as this distorts the aspect ratio.
109
-
110
- ```jsx
111
- // ✅ Correct — aspect ratio preserved
112
- <img src={engineLogo} alt="Engine" className="h-8 w-auto" />
113
- <img src={engineLogo} alt="Engine" className="w-24 h-auto" />
114
-
115
- // ❌ Wrong — aspect ratio distorted
116
- <img src={engineLogo} alt="Engine" className="w-8 h-8" />
117
- <div className="w-8 h-8 bg-black rounded" /> // placeholder box instead of logo
118
- ```
119
-
120
- ## No Dashboard-Level Navigation (MANDATORY)
121
-
122
- Dashboard pages must NOT include their own `<nav>`, header bar, or top navigation of any kind. Navigation is handled by `appLayout.tsx`. The dashboard renders inside the app shell — adding a nav inside the dashboard creates a duplicate header, which is the most visually obvious mistake.
123
-
124
- - ❌ `<nav className="bg-white border-b ...">` inside a dashboard page
125
- - ❌ A header bar with logo + nav links + user avatar inside the dashboard
126
- - ❌ Tab bars that act as top-level navigation (Overview, Travelers, Spend, etc.)
127
- - ❌ `useState("overview")` / `useState("travelers")` to toggle between views — this IS tab navigation even without a `<nav>` element
128
- - ❌ `{activeView === "overview" && (...)}` / `{activeView === "travelers" && (...)}` — content-swapping IS multi-tab navigation
129
- - ✅ Dashboard starts directly with content (metrics, then primary content)
130
- - ✅ If you need sub-sections, use the library `Tabs` component **inside a card** — not as a full-width page-level switcher
131
- - ✅ Build a single-page dashboard — all content visible by scrolling. Do NOT split into multiple tab "pages" that swap content.
132
-
133
- **Self-check:** If your dashboard has `useState` for an "active tab" or "active view" that conditionally renders different page sections, you are building multi-tab navigation. Delete it and put all content on one scrollable page.
134
-
135
- **Self-check:** If your dashboard JSX starts with `<nav>`, a sticky tab bar, or a `<div>` that spans the full width with nav links, you are violating this rule. Delete it.
136
-
137
- ### Why no multi-tab dashboards?
138
-
139
- Splitting a dashboard into 5 tab "pages" (Overview, Travelers, Spend, Policy, Eva) means each tab is a separate mini-app. This violates the single-page dashboard pattern. Instead, put **all sections on one scrollable page** using the vertical page structure (metrics → primary content → secondary content). If content is too long, prioritize the most important sections and use cards with `maxBodyHeight` to constrain tall sections.
140
-
141
- ## Where Dashboards Live & How to Wire Them
142
-
143
- - Dashboard page files: `src/pages/` (e.g. `EngineDashboard.tsx`, `FleetDashboard.tsx`)
144
- - File format: `.tsx` (MUST be TypeScript) — this is a TypeScript project, all React components use `.tsx`.
145
- - `CommandCenter.tsx` wraps with `AppThemeProvider` + `DataModeProvider` + `Toaster`. **Never recreate these providers in dashboard pages.**
146
-
147
- ### Wiring a new dashboard (REQUIRED STEPS)
148
-
149
- You must do ALL of these or the dashboard will not render correctly:
150
-
151
- **Step 1:** Create the dashboard file in `src/pages/`:
152
- ```tsx
153
- // src/pages/MyDashboard.tsx
154
- import React from "react";
155
- import { MetricCard, ListCard, ChartCard, D3Chart } from "@/components/library";
156
-
157
- export default function MyDashboard() {
158
- return (
159
- <div className="space-y-6 p-6">
160
- {/* dashboard content using library components */}
161
- </div>
162
- );
163
- }
164
- ```
165
-
166
- **Step 2:** Update `CommandCenter.tsx` to import and render it:
167
- ```tsx
168
- // src/components/workspace/CommandCenter.tsx
169
- import AppThemeProvider from "@/components/library/theme/AppThemeProvider";
170
- import DataModeProvider from "@/components/library/data/DataModeProvider";
171
- import { Toaster } from "sonner";
172
- import MyDashboard from "../../pages/MyDashboard"; // ← change this import
173
-
174
- export default function CommandCenter() {
175
- return (
176
- <AppThemeProvider initialMode="light">
177
- <DataModeProvider initialMode="sample">
178
- <MyDashboard /> {/* ← change this */}
179
- <Toaster position="bottom-right" />
180
- </DataModeProvider>
181
- </AppThemeProvider>
182
- );
183
- }
184
- ```
185
-
186
- **Step 2.5:** Update `Home.tsx` to render `CommandCenter`:
187
- ```tsx
188
- // src/pages/Home.tsx
189
- import CommandCenter from "@/components/workspace/CommandCenter";
190
-
191
- export default function HomePage() {
192
- return <CommandCenter />;
193
- }
194
- ```
195
-
196
- **Step 3:** Update `src/routes.tsx` to make the dashboard the home page. Replace the Search page index route with the Home/CommandCenter route:
197
- ```tsx
198
- // src/routes.tsx — change the index route
199
- {
200
- index: true,
201
- element: <SuspenseWrap><Home /></SuspenseWrap>,
202
- handle: { showInNavigation: true, label: 'Dashboard' }
203
- },
204
- {
205
- path: "search",
206
- element: <SuspenseWrap><Search /></SuspenseWrap>,
207
- handle: { showInNavigation: true, label: 'Search' }
208
- },
209
- ```
210
-
211
- The `Home` page renders `CommandCenter`, which renders your dashboard. The Search page moves to `/search`.
212
-
213
- **Verify:** After writing all files, confirm:
214
- 1. Your dashboard `.tsx` file exists in `src/pages/`
215
- 2. `CommandCenter.tsx` (in `src/components/workspace/`) imports your dashboard (not `BlankDashboard`)
216
- 3. `Home.tsx` (in `src/pages/`) imports and renders `CommandCenter` (not search interface)
217
- 4. `src/routes.tsx` has `Home` as the index route and `Search` at `/search`
218
-
219
- ## Page Structure
220
-
221
- Every page follows this vertical order — never rearrange:
222
- 1. Context (NarrativeSummary or heading) — optional
223
- 2. KPI metrics (MetricsStrip or MetricCard grid) — required for dashboards
224
- 3. Primary content (tables, charts, status)
225
- 4. Secondary content (lists, logs, supporting data) — optional
226
- 5. Actions — optional
227
-
228
- Wrap all page content in `<div className="space-y-6">`. Do NOT use `mb-6` between sections — the wrapper handles spacing.
229
-
230
- ## Layout Grids
231
-
232
- Only these grid patterns — do not invent new ones:
233
-
234
- - **4 metrics (MAXIMUM per row — never 5 or more):** `grid grid-cols-2 gap-3 lg:grid-cols-4`
235
- - **3 metrics:** `grid grid-cols-1 gap-3 sm:grid-cols-3`
236
- - **Wide/narrow split:** `grid grid-cols-1 items-start gap-4 lg:grid-cols-3` with `lg:col-span-2` on the wide side
237
- - **3-col balanced:** `grid grid-cols-1 items-start gap-4 lg:grid-cols-3`
238
- - **Equal two-col:** `grid grid-cols-1 items-start gap-4 lg:grid-cols-2`
239
- - **Full-width:** `<div className="w-full">` — charts with 24+ data points
240
-
241
- `gap-4` for content grids, `gap-3` for metric rows. Start `grid-cols-1` (or `grid-cols-2` for metrics) for mobile. Only `sm:` and `lg:` breakpoints unless justified.
242
-
243
- **Max 4 KPIs per row — NEVER 5 or more.** If you have 5+ metrics, split into two rows (e.g. 4 + 1, or 3 + 2). Always `items-start` on grids pairing different-height cards. Use `maxBodyHeight={px}` for long card bodies. Actions go in card `actions` slot. Place `FilterBar` near the data it controls.
244
-
245
- ## Layout Differentiation
246
-
247
- Every dashboard needs a unique layout structure and at least one domain-specific "signature element" that couldn't exist in another dashboard. Vary section ordering, grid proportions, density, and visual rhythm.
248
-
249
- ## Map Layout
250
-
251
- GeoMap should be placed in a **wide/narrow grid** (`lg:grid-cols-3` with `lg:col-span-2`), not full-width hero. Full-width maps dominate the page and waste space.
252
-
253
- **Pattern: Map + sidebar at matched height**
254
-
255
- ```jsx
256
- <div className="grid grid-cols-1 gap-4 lg:grid-cols-3">
257
- <div className="lg:col-span-2 relative overflow-hidden rounded-xl h-[300px]">
258
- <GeoMap
259
- markers={locations}
260
- arcs={arcs}
261
- overlays={overlays}
262
- initialBounds={{ sw: [-130, 24], ne: [-65, 50], padding: 30 }}
263
- theme="dark"
264
- width={960}
265
- height={480}
266
- zoomable
267
- className="h-full w-full"
268
- />
269
- </div>
270
- {/* Sidebar card — use maxBodyHeight to match map height */}
271
- {/* Map h-[300px] ≈ ListCard maxBodyHeight={236} + ~64px header */}
272
- <ListCard title="Activity" items={items} maxBodyHeight={236} showStatus />
273
- </div>
274
- ```
275
-
276
- Key rules:
277
- - **Do NOT wrap GeoMap in ChartCard** — GeoMap has its own background/borders
278
- - **Match heights** — set map `h-[Xpx]` and sidebar `maxBodyHeight` so they align. Account for ~64px card header padding.
279
- - **Use `initialBounds`** to auto-zoom to the region with data: `{ sw: [lonMin, latMin], ne: [lonMax, latMax], padding: 30 }`
280
- - **Always pass `arcs`** for flight routes and `overlays` for disruption zones — not just markers
281
- - **Use ListCard** (not ActivityCard) for the sidebar — ListCard supports `maxBodyHeight` for scroll, ActivityCard does not
282
- - Keep map height at 280–320px — not 400+
283
-
284
- ## Component Selection
285
-
286
- | Need | Component |
287
- |------|-----------|
288
- | Single KPI | `MetricCard` |
289
- | Row of 2–4 KPIs | `MetricsStrip` (schema) / `MetricCard` grid |
290
- | Tabular data | `TableCard` |
291
- | Time series / distribution | `ChartCard` + `D3Chart` |
292
- | Geographic / flight map | `GeoMap` |
293
- | System health | `StatusCard` |
294
- | Feed / item list | `ListCard` |
295
- | Scrollable side panel | `FeedPanel` |
296
- | Activity feed | `ActivityCard` |
297
- | User avatar | `Avatar` |
298
- | Text summary | `NarrativeSummary` (schema) / `SectionCard` |
299
- | Actions | `ActionList` (schema) / `UIButton` group |
300
- | Alert / callout | `CalloutCard` |
301
- | Multi-section panel | `WidgetCard` |
302
-
303
- ## Component Data Contract
304
-
305
- Common card props: `title`, `subtitle`, `actions`, `loading`, `error`, `emptyMessage`, `...cardProps`.
306
-
307
- Item shape (StatusCard, ListCard, ItemList): `{ id?, title, description?, status?, timestamp?, value?, unit?, avatar? }`. `title` is primary; `name` is alias.
308
-
309
- Never use hardcoded `indigo-*` — use `brand-*` classes.
310
-
311
- ## Metric Formatting
312
-
313
- Use `fmtK()` helper — never manually append K/M/B:
314
-
315
- ```js
316
- function fmtK(n) {
317
- if (n >= 1e6) return `${(n / 1e6).toFixed(1)}M`;
318
- if (n >= 1e3) return `${(n / 1e3).toFixed(1)}K`;
319
- return n.toLocaleString();
320
- }
321
- ```
322
-
323
- ## Brand & Accent Colors
324
-
325
- Defined in `global.css` (`--color-brand-*` and `--color-engine-*`), available as Tailwind classes.
326
-
327
- - `engine-*` for the Engine brand: `engine-teal`, `engine-coral`, `engine-orange`, `engine-savings`, `engine-text`, `engine-muted`, `engine-label`, `engine-border`, `engine-bg`
328
- - `brand-*` for the legacy command center palette (indigo-based)
329
- - Tailwind built-in colors for status (green/amber/red). Never use brand for status.
330
-
331
- ## Semantic Colors
332
-
333
- - `"default"` — neutral | `"primary"` — brand | `"success"` — healthy | `"warning"` — attention | `"danger"` — critical
334
-
335
- `changeType` reflects good/bad, not direction. Revenue down = `"negative"`. Incidents down = `"positive"`.
336
-
337
- ## Status Values
338
-
339
- Canonical: `"operational"`, `"degraded"`, `"outage"`, `"maintenance"`. Always show color + text label.
340
-
341
- ## Dark Mode (MANDATORY)
342
-
343
- Every visible element needs both light and dark styles. Library components handle this automatically — which is another reason to use them.
344
-
345
- For any custom markup you do write:
346
-
347
- | Role | Light | Dark |
348
- |------|-------|------|
349
- | Background | `bg-white` | `dark:bg-slate-900` |
350
- | Surface | `bg-slate-50` | `dark:bg-slate-950/30` |
351
- | Border | `border-slate-200` | `dark:border-slate-800` |
352
- | Text primary | `text-slate-900` | `dark:text-slate-50` |
353
- | Text secondary | `text-slate-600` | `dark:text-slate-300` |
354
- | Text muted | `text-slate-500` | `dark:text-slate-400` |
355
- | Brand tint | `brand-50` | `brand-950` |
356
-
357
- **Never use `text-black` or `text-white`.** Use the slate scale. Never use `bg-black` for surfaces — use `bg-slate-900` / `dark:bg-slate-950`.
358
-
359
- ## Icons (Command Center)
360
-
361
- **Heroicons 2** (`@heroicons/react`) exclusively inside command center pages. No Lucide, no Font Awesome, no inline SVGs.
362
-
363
- - `24/outline` — default | `24/solid` — status/active | `20/solid` — chips/badges
364
- - Sizes: `h-4 w-4` compact, `h-5 w-5` default, `h-6 w-6` emphasis, `h-8 w-8` hero only
365
- - Always set a color class. Pass rendered elements: `icon={<UsersIcon className="h-5 w-5 text-brand-500" />}`
366
- - ❌ Never use inline `<svg>` when a Heroicon exists for the same purpose
367
- - ❌ Never guess icon names — Heroicons uses specific names that don't always match what you'd expect. Common mistakes: `PlaneIcon` (doesn't exist → use `PaperAirplaneIcon`), `FlightIcon` (doesn't exist → use `PaperAirplaneIcon`), `HotelIcon` (doesn't exist → use `BuildingOfficeIcon`), `MoneyIcon` (doesn't exist → use `BanknotesIcon`), `AlertIcon` (doesn't exist → use `ExclamationTriangleIcon`), `PersonIcon` (doesn't exist → use `UserIcon`)
368
-
369
- ## Fonts
370
-
371
- Fonts are set in `global.css` via `@theme` block (`--font-sans`, `--font-mono`). No `next/font` in this project (that's the starter). No Google Fonts `<link>` tags.
372
-
373
- ## Filtering & Data Utilities
374
-
375
- Three layers: `filterUtils.js` (pure) → `usePageFilters` hook (state) → `FilterBar` + components (UI).
376
-
377
- - Pass `sortedData` (not `filteredData`) to components
378
- - Disable `TableCard.searchable` when `FilterBar` provides search
379
- - Declare filter definitions outside component body (or memoize)
380
-
381
- ## Data Mode (Sample vs Live)
382
-
383
- `useDataMode()` returns `{ mode, isSample, isLive, toggle, setMode }`. `useDataSource({ sample, live })` picks based on mode.
384
-
385
- - Every page works in both modes. Default to `"sample"`.
386
- - Same layout for both modes — only data changes.
387
- - Sample data: 10–50 items, realistic, deterministic (no `Math.random()`).
388
- - Define sample data as constants outside the component body.
389
-
390
- ```jsx
391
- // ✅ Correct: data defined outside, selected by mode
392
- const SAMPLE_TRIPS = [ ... ];
393
-
394
- export default function Dashboard() {
395
- const trips = useDataSource({ sample: SAMPLE_TRIPS, live: liveTrips });
396
- ...
397
- }
398
-
399
- // ❌ Wrong: hardcoded data inside the component with no mode switching
400
- export default function Dashboard() {
401
- const trips = [ ... ]; // no useDataSource, no mode awareness
402
- }
403
- ```
404
-
405
- ## Forms & Record Modals
406
-
407
- Schema-driven: `sections[] → fields[]`. Use `FormModal` (modal) or `FormRenderer` (inline). `useFormState` for state.
408
-
409
- Define schemas outside component body. Always `required: true` on mandatory fields. Submissions enforce 4s minimum spinner.
410
-
411
- ## AI Chat & Agent
412
-
413
- Use `ChatBar` (command palette, ⌘K) for dashboards. `ChatPanel` for full-page chat.
414
-
415
- - Always provide 3–5 `suggestions` for starter prompts
416
- - Return `components` for structured data — never markdown tables in text
417
- - Always set height on `ChatPanel`
418
- - Extract `onSend` handlers to module scope when shared
419
-
420
- ## Tables
421
-
422
- `searchable` when 10+ rows (unless `FilterBar` handles search). `sortable` on comparable columns. `paginated` when 10+ rows. Use built-in column `type` before custom `render`.
423
-
424
- ## Charts & Visualizations (MANDATORY)
425
-
426
- **All charts, graphs, maps, and visualizations MUST use library components.** Never use Recharts, Chart.js, Nivo, or any third-party charting library. Never hand-roll SVG, canvas, or custom chart markup. The ONLY charting tools allowed are `D3Chart` (via `D3ChartTemplates` or a custom `renderChart` function) and `GeoMap`.
427
-
428
- | Visualization | MUST use | NEVER do |
429
- |--------------|----------|----------|
430
- | Line chart | `ChartCard` + `D3Chart` with `D3ChartTemplates.lineChart` | Custom `<svg>` with hand-drawn paths/circles |
431
- | Grouped bar chart | `ChartCard` + `D3Chart` with `D3ChartTemplates.groupedBarChart` | Custom `<svg>` bar elements |
432
- | Map / geographic | `GeoMap` | Custom SVG map or embedded iframe |
433
- | Custom visualization | `ChartCard` + `D3Chart` with a custom `renderChart` function | Inline SVG/canvas |
434
-
435
- ### D3Chart API (CRITICAL — read carefully)
436
-
437
- `D3Chart` does NOT use a `template` prop. It uses a `renderChart` callback function:
438
-
439
- ```jsx
440
- <D3Chart
441
- data={array} // data array
442
- renderChart={D3ChartTemplates.lineChart} // function reference, NOT a string
443
- responsive={true} // enables ResizeObserver
444
- height={280} // height in px
445
- />
446
- ```
447
-
448
- ### ChartCard + D3Chart usage
449
-
450
- `ChartCard` takes a `chart` prop (a React element). Pass the `D3Chart` as the `chart` value:
451
-
452
- ```jsx
453
- import { ChartCard, D3Chart, D3ChartTemplates } from "@/components/library";
454
-
455
- // ✅ Line chart — data must have { x, y } shape (numeric x)
456
- const spendData = [
457
- { x: 1, y: 2400 }, { x: 2, y: 3100 }, { x: 3, y: 2800 }, ...
458
- ];
459
- <ChartCard
460
- title="30-Day Spend"
461
- subtitle="Engine savings"
462
- chart={
463
- <D3Chart
464
- data={spendData}
465
- renderChart={D3ChartTemplates.lineChart}
466
- options={{ stroke: "#5BC8C8", xKey: "x", yKey: "y" }}
467
- responsive
468
- height={280}
469
- />
470
- }
471
- />
472
-
473
- // ✅ Grouped bar chart — data must have { x, group1, group2 } shape
474
- const monthlyData = [
475
- { x: "Jan", Hotels: 12000, Flights: 8000 },
476
- { x: "Feb", Hotels: 14000, Flights: 9000 }, ...
477
- ];
478
- <ChartCard
479
- title="Monthly Spend"
480
- chart={
481
- <D3Chart
482
- data={monthlyData}
483
- renderChart={D3ChartTemplates.groupedBarChart}
484
- options={{ xKey: "x", groups: ["Hotels", "Flights"], colors: ["#5BC8C8", "#6366F1"] }}
485
- responsive
486
- height={280}
487
- />
488
- }
489
- />
490
-
491
- // ✅ Custom renderChart function (for donut, horizontal bar, etc.)
492
- function renderDonut(svgEl, data, dims, opts) {
493
- // Use d3 to draw into svgEl
494
- const d3svg = d3.select(svgEl);
495
- d3svg.selectAll("*").remove();
496
- // ... d3 drawing code
497
- }
498
- <ChartCard title="By Department" chart={<D3Chart data={deptData} renderChart={renderDonut} responsive height={280} />} />
499
- ```
500
-
501
- ### Available D3ChartTemplates
502
-
503
- - `D3ChartTemplates.lineChart` — options: `{ xKey, yKey, stroke, strokeWidth, margin, showAxes, showGrid }`
504
- - `D3ChartTemplates.groupedBarChart` — options: `{ xKey, groups, colors, barRadius, margin, yFormat, showGrid }`
505
-
506
- **There is NO `D3ChartTemplates.LINE`, `.BAR`, `.DONUT`, `.AREA`.** Only `lineChart` and `groupedBarChart`. For donut/pie/horizontal bar, write a custom `renderChart` function using d3.
507
-
508
- ### GeoMap API
509
-
510
- ```jsx
511
- import { GeoMap } from "@/components/library";
512
-
513
- // markers: array of { id, lon, lat, active?, label? }
514
- const markers = [
515
- { id: "sf", lon: -122.4, lat: 37.8, active: true, label: "San Francisco" },
516
- { id: "nyc", lon: -74.0, lat: 40.7, active: true, label: "New York" },
517
- ];
518
-
519
- <ChartCard title="Active Locations" chart={
520
- <GeoMap
521
- markers={markers}
522
- theme="dark"
523
- height={400}
524
- width={800}
525
- zoomable
526
- />
527
- } />
528
- ```
529
-
530
- GeoMap props: `width`, `height`, `projection` (`"naturalEarth"` | `"mercator"` | `"equirectangular"`), `theme` (`"dark"` | `"light"`), `markers`, `arcs`, `overlays`, `zoomable`, `minZoom`, `maxZoom`, `onMarkerClick`.
531
-
532
- ### Common mistakes
533
-
534
- ```jsx
535
- // ❌ WRONG — third-party chart libraries are forbidden
536
- import { BarChart, Bar } from "recharts";
537
- <BarChart data={data}><Bar dataKey="count" /></BarChart>
538
-
539
- // ❌ WRONG — template prop doesn't exist
540
- <D3Chart template={D3ChartTemplates.LINE} data={data} />
541
-
542
- // ❌ WRONG — passing as children instead of chart prop
543
- <ChartCard title="Spend"><D3Chart ... /></ChartCard>
544
-
545
- // ❌ WRONG — non-numeric x values with lineChart (use groupedBarChart for categorical x)
546
- <D3Chart data={[{x: "Jan", y: 100}]} renderChart={D3ChartTemplates.lineChart} />
547
-
548
- // ✅ CORRECT
549
- <ChartCard title="Spend" chart={<D3Chart data={data} renderChart={D3ChartTemplates.lineChart} responsive height={280} />} />
550
- ```
551
-
552
- ## Portals
553
-
554
- Any `position: fixed` component **must** use `createPortal(... , document.body)`.
555
-
556
- ## Loading / Error / Empty States
557
-
558
- Every data component handles loading. Error messages are human-readable. Empty states explain what would appear.
559
-
560
- ## Pre-Completion Checklist
561
-
562
- Before finishing a dashboard page, verify ALL of these:
563
-
564
- - [ ] **Every card/panel is a library component** (MetricCard, ListCard, ActivityCard, WidgetCard, TableCard, etc.) — no hand-rolled `<div className="bg-white border ...">` cards
565
- - [ ] **Every chart/visualization is a library component** (ChartCard + D3Chart, GeoMap) — no hand-rolled SVG/canvas
566
- - [ ] **No `<nav>`, header bar, or sticky tab bar** — navigation is handled by appLayout.tsx
567
- - [ ] **Single scrollable page** — no multi-tab layout that swaps content
568
- - [ ] **Max 4 KPIs per row** — if 5+, split across rows
569
- - [ ] **Charts render** — using `renderChart` callback (not `template` prop), data format matches (numeric x for lineChart)
570
- - [ ] **`<div className="space-y-6">` wraps all content** — no `mb-*` for section spacing
571
- - [ ] **Dark mode works** — every custom element has `dark:` variants; no `text-black`, `text-white`, or `bg-black`
572
- - [ ] **No inline `style={{}}` or `<style>` tags** — use Tailwind classes or CSS in global.css
573
- - [ ] **No inline `<svg>`** — use Heroicons from `@heroicons/react`
574
- - [ ] **`position: fixed` uses `createPortal`** — FABs, modals, toasts
575
- - [ ] **Data uses `useDataSource`** — sample data defined outside the component
576
- - [ ] **Only uses company logo** (`@/assets/images/engine_logo.png`) — no external URLs, no placeholder boxes
577
- - [ ] **Images preserve aspect ratio** — one dimension auto, never both fixed
578
- - [ ] **Imports only from `@/components/library`** — no shadcn, no Lucide, no `cn()`
579
- - [ ] **Grid patterns match the approved list** — no custom grid layouts
580
-
581
- ## Post-Completion Verification (REQUIRED — MUST RUN BEFORE REPORTING DONE)
582
-
583
- After building the dashboard, you MUST run the validator and fix ALL errors before reporting the dashboard as complete:
584
-
585
- ```bash
586
- # Run from the web app directory
587
- npm run validate:dashboard
588
- ```
589
-
590
- **Do NOT run `npm run build` or `tsc`.** The TypeScript build has known issues with platform-only Salesforce packages that are not relevant to dashboard development. Only run the validator.
591
-
592
- The validator (`scripts/validate-dashboard.sh`) automatically checks for:
593
- - Hand-rolled HTML cards, tables, and SVGs (must use library components)
594
- - Forbidden colors (`text-black`, `text-white`, `bg-black`)
595
- - Inline `style={{}}` and `<style>` tags
596
- - Missing `useDataSource` for sample/live mode
597
- - Grid layouts with 5+ columns
598
- - `position: fixed` without `createPortal`
599
- - shadcn/Lucide imports in command center code
600
- - Missing `space-y-6` wrappers
601
- - `.jsx` files where `.tsx` is required (this is a TypeScript project)
602
- - Dashboard navigation (`<nav>` elements)
603
-
604
- **If the validator reports errors, you MUST fix them ALL — zero errors required.** Do not report the dashboard as complete with any errors. Do not dismiss errors as "acceptable", "justified", or "expected". Every error has a fix — usually by switching to the correct library component. The validator exits with code 1 on errors — treat this like a failing test.
605
-
606
- **Common validator errors and their fixes:**
607
- - **Hand-rolled card** → Wrap content in `WidgetCard`, `ListCard`, `BaseCard`, or another library card component. `WidgetCard` with a single section can wrap any arbitrary JSX content.
608
- - **Forbidden colors** (`text-white`, `bg-black`) → Use slate scale (`text-slate-50`, `bg-slate-900`)
609
- - **shadcn/Lucide imports** → Replace with library components and Heroicons
610
-
611
- **Do not skip or ignore the validator.** Do not run `npm run build` or `tsc` — only run `npm run validate:dashboard`.
612
-
613
- ## Anti-Patterns (never do these)
614
-
615
- - Hand-rolling HTML cards instead of using library components (MetricCard, ListCard, etc.)
616
- - Using Recharts, Chart.js, Nivo, or any chart library other than D3Chart/GeoMap
617
- - Hand-rolling SVG/canvas charts instead of using ChartCard + D3Chart or GeoMap
618
- - Adding a `<nav>`, header bar, sticky tab bar, or top navigation inside a dashboard page
619
- - Multi-tab layouts that swap content (Overview/Travelers/Spend/etc tabs) — build one scrollable page
620
- - More than 4 KPIs in a single row (max is `lg:grid-cols-4`)
621
- - Using `template` prop on D3Chart (doesn't exist) — use `renderChart={D3ChartTemplates.lineChart}`
622
- - Passing D3Chart as children to ChartCard — use `chart={<D3Chart ... />}` prop
623
- - CSS Modules, styled-components, or inline `style={{}}` for layout
624
- - `<style>` tags with keyframes or custom CSS inside components
625
- - Inline `<svg>` elements when a Heroicon exists
626
- - Importing shadcn components (`src/components/ui/`) into command center pages — `Button`, `Card`, `Input`, `Select`, `Alert`, `Skeleton`, `Label`, `Spinner`, etc. are ALL forbidden. Use the library equivalents from `@/components/library` (`UIButton`, `BaseCard`/`WidgetCard`, `UIInput`, `Select`, `Alert`, `Skeleton`, etc.)
627
- - Importing Lucide icons (`lucide-react`) into command center pages — use Heroicons (`@heroicons/react`) instead
628
- - Using `cn()` helper in command center pages (that's shadcn's utility — use Tailwind classes directly)
629
- - `useEffect` for data in schema components
630
- - `bg-indigo-*` or raw colors for brand — use `brand-*` or `engine-*`
631
- - Recreating providers (`AppThemeProvider`, `DataModeProvider`) in dashboard pages — `CommandCenter.tsx` already provides them
632
- - Tables without search on 10+ rows, charts without tooltips, empty states without messages
633
- - Hard-coded pixel widths or skipping dark mode
634
- - `text-black`, `text-white`, `bg-black` — use slate scale
635
- - `lg:grid-cols-6` for metrics (max 4), manually appending K/M/B
636
- - `mb-6` between sections instead of `space-y-6` wrapper
637
- - Same layout across dashboards, no signature element
638
- - `ChatPanel` in dashboard grid — use `ChatBar`
639
- - `position: fixed` without `createPortal`
640
- - `Math.random()` in sample data, different layouts based on data mode
641
- - Re-declaring filter/form definitions inside component render
642
- - Dismissing validator errors as "acceptable" or "justified" instead of fixing them — every error has a library component fix
643
- - Hardcoded data without `useDataSource` for sample/live mode switching
644
- - External image URLs (Unsplash, placeholders) unless user explicitly requests them
645
- - Placeholder boxes (`<div className="w-8 h-8 bg-black rounded" />`) instead of the actual logo
646
- - Fixed width AND height on images — always let one dimension be `auto` to preserve aspect ratio
45
+ - **component-library** skill Complete API reference with all prop names and types
46
+ - **when-to-use.md** in component-library → Decision matrix for choosing components