pixelize-design-library 2.4.2-beta.4 → 2.4.2-beta.40

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 (525) hide show
  1. package/COMPONENT-GOTCHAS.md +1087 -0
  2. package/README.md +26 -0
  3. package/dist/Components/Accordion/Accordion.d.ts +1 -0
  4. package/dist/Components/Accordion/Accordion.js +4 -1
  5. package/dist/Components/Accordion/AccordionProps.d.ts +2 -0
  6. package/dist/Components/AlertDialog/AlertDialog.d.ts +1 -0
  7. package/dist/Components/AlertDialog/AlertDialog.js +1 -0
  8. package/dist/Components/AlertDialog/AlertDialogProps.d.ts +2 -0
  9. package/dist/Components/Apexcharts/ApexAreaChart/ApexAreaChart.d.ts +1 -0
  10. package/dist/Components/Apexcharts/ApexAreaChart/ApexAreaChart.js +1 -0
  11. package/dist/Components/Apexcharts/ApexAreaChart/ApexAreaChartProps.d.ts +4 -0
  12. package/dist/Components/Apexcharts/ApexBarChart/ApexBarChart.d.ts +1 -0
  13. package/dist/Components/Apexcharts/ApexBarChart/ApexBarChart.js +1 -0
  14. package/dist/Components/Apexcharts/ApexBarChart/ApexBarChartProps.d.ts +6 -0
  15. package/dist/Components/Apexcharts/ApexLineChart/ApexLineChart.d.ts +1 -0
  16. package/dist/Components/Apexcharts/ApexLineChart/ApexLineChart.js +1 -0
  17. package/dist/Components/Apexcharts/ApexLineChart/ApexLineChartProps.d.ts +8 -0
  18. package/dist/Components/Apexcharts/ApexPieChart/ApexPieChart.d.ts +1 -0
  19. package/dist/Components/Apexcharts/ApexPieChart/ApexPieChart.js +1 -0
  20. package/dist/Components/Apexcharts/ApexPieChart/ApexPieChartProps.d.ts +6 -0
  21. package/dist/Components/Apexcharts/ApexPolarCharts/ApexPolarCharts.d.ts +1 -0
  22. package/dist/Components/Apexcharts/ApexPolarCharts/ApexPolarCharts.js +1 -0
  23. package/dist/Components/Apexcharts/ApexPolarCharts/ApexPolarChartsProps.d.ts +3 -0
  24. package/dist/Components/Apexcharts/ApexRadialChart/ApexRadialChart.d.ts +1 -0
  25. package/dist/Components/Apexcharts/ApexRadialChart/ApexRadialChart.js +1 -0
  26. package/dist/Components/Apexcharts/ApexRadialChart/ApexRadialChartProps.d.ts +3 -0
  27. package/dist/Components/AppSwitcher/AppMark.d.ts +19 -0
  28. package/dist/Components/AppSwitcher/AppMark.js +62 -0
  29. package/dist/Components/AppSwitcher/AppSwitcher.d.ts +4 -0
  30. package/dist/Components/AppSwitcher/AppSwitcher.js +278 -0
  31. package/dist/Components/AppSwitcher/AppSwitcherProps.d.ts +70 -0
  32. package/dist/Components/AppSwitcher/AppSwitcherProps.js +86 -0
  33. package/dist/Components/AppSwitcher/useAppSwitcherShortcut.d.ts +3 -0
  34. package/dist/Components/AppSwitcher/useAppSwitcherShortcut.js +31 -0
  35. package/dist/Components/AppearanceSettings/AppearanceSettings.js +2 -1
  36. package/dist/Components/AppearanceSettings/AppearanceSettingsProps.d.ts +2 -0
  37. package/dist/Components/Breadcrumbs/BreadcrumbsProps.d.ts +3 -0
  38. package/dist/Components/Button/Button.d.ts +2 -2
  39. package/dist/Components/Button/Button.js +4 -3
  40. package/dist/Components/Button/Button.styles.js +37 -23
  41. package/dist/Components/Button/ButtonProps.d.ts +9 -1
  42. package/dist/Components/ButtonGroupIcon/ButtonGoupIconProps.d.ts +7 -0
  43. package/dist/Components/ButtonGroupIcon/ButtonGroupIcon.js +2 -4
  44. package/dist/Components/Buttons/ButtonsProps.d.ts +2 -0
  45. package/dist/Components/Card/Card.d.ts +1 -1
  46. package/dist/Components/Card/Card.js +2 -2
  47. package/dist/Components/Card/CardProps.d.ts +3 -1
  48. package/dist/Components/Card/PaymentCard/PaymentCard.js +21 -12
  49. package/dist/Components/Card/PaymentCard/PaymentCardProps.d.ts +6 -0
  50. package/dist/Components/Checkbox/Checkbox.d.ts +1 -0
  51. package/dist/Components/Checkbox/Checkbox.js +2 -1
  52. package/dist/Components/Checkbox/Checkbox.styles.js +12 -7
  53. package/dist/Components/Checkbox/CheckboxProps.d.ts +4 -0
  54. package/dist/Components/Common/ErrorComponent.d.ts +2 -0
  55. package/dist/Components/Common/ErrorComponent.js +7 -5
  56. package/dist/Components/Common/ErrorMessage.js +2 -2
  57. package/dist/Components/Common/FormLabel.d.ts +4 -0
  58. package/dist/Components/Common/FormLabel.js +1 -0
  59. package/dist/Components/Common/FormattedDescription.d.ts +2 -0
  60. package/dist/Components/Common/FormattedDescription.js +1 -0
  61. package/dist/Components/Common/HelperText.d.ts +2 -0
  62. package/dist/Components/Common/HelperText.js +2 -0
  63. package/dist/Components/Common/Label.d.ts +1 -0
  64. package/dist/Components/Common/Label.js +1 -0
  65. package/dist/Components/Common/fieldStyles.js +1 -1
  66. package/dist/Components/ContactForm/ContactForm.d.ts +1 -0
  67. package/dist/Components/ContactForm/ContactForm.js +1 -0
  68. package/dist/Components/ContactForm/ContactFormProps.d.ts +4 -0
  69. package/dist/Components/CopyButton/CopyButton.d.ts +3 -1
  70. package/dist/Components/CopyButton/CopyButton.js +9 -3
  71. package/dist/Components/CustomModulesTable/CustomModulesTableProps.d.ts +8 -0
  72. package/dist/Components/DatePicker/CalendarPanel.d.ts +6 -0
  73. package/dist/Components/DatePicker/CalendarPanel.js +37 -15
  74. package/dist/Components/DatePicker/DatePicker.d.ts +1 -0
  75. package/dist/Components/DatePicker/DatePicker.js +1 -0
  76. package/dist/Components/DatePicker/DatePickerProps.d.ts +30 -0
  77. package/dist/Components/DatePicker/RangeDatePicker.d.ts +1 -0
  78. package/dist/Components/DatePicker/RangeDatePicker.js +30 -5
  79. package/dist/Components/DatePicker/SingleDatePicker.d.ts +1 -0
  80. package/dist/Components/DatePicker/SingleDatePicker.js +49 -14
  81. package/dist/Components/DatePicker/ThemeDatePicker.d.ts +1 -0
  82. package/dist/Components/DatePicker/ThemeDatePicker.js +1 -0
  83. package/dist/Components/DatePicker/TimeOnlyPicker.d.ts +1 -0
  84. package/dist/Components/DatePicker/TimeOnlyPicker.js +11 -2
  85. package/dist/Components/DatePicker/TimePicker.d.ts +1 -0
  86. package/dist/Components/DatePicker/TimePicker.js +4 -3
  87. package/dist/Components/DatePicker/TimePickerInput.d.ts +1 -0
  88. package/dist/Components/DatePicker/TimePickerInput.js +2 -1
  89. package/dist/Components/DatePicker/dayStates.d.ts +56 -0
  90. package/dist/Components/DatePicker/dayStates.js +87 -0
  91. package/dist/Components/Divider/Divider.d.ts +1 -0
  92. package/dist/Components/Divider/Divider.js +1 -0
  93. package/dist/Components/Drawer/DrawerProps.d.ts +2 -0
  94. package/dist/Components/Dropdown/DropDown.d.ts +1 -0
  95. package/dist/Components/Dropdown/DropDown.js +22 -6
  96. package/dist/Components/Dropdown/DropdownProps.d.ts +3 -0
  97. package/dist/Components/Editor/Editor.d.ts +1 -0
  98. package/dist/Components/Editor/Editor.js +1 -0
  99. package/dist/Components/Editor/EditorProps.d.ts +2 -0
  100. package/dist/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.d.ts +1 -0
  101. package/dist/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.js +2 -5
  102. package/dist/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtpProps.d.ts +4 -0
  103. package/dist/Components/EmptyState/EmptyState.d.ts +1 -0
  104. package/dist/Components/EmptyState/EmptyState.js +4 -2
  105. package/dist/Components/EmptyState/EmptyStateProps.d.ts +3 -0
  106. package/dist/Components/FeedbackForm/FeedbackForm.d.ts +3 -0
  107. package/dist/Components/FeedbackForm/FeedbackForm.js +1 -0
  108. package/dist/Components/FieldSelectModal/FieldSelectModal.d.ts +3 -2
  109. package/dist/Components/FieldSelectModal/FieldSelectModal.js +1 -0
  110. package/dist/Components/FilePreview/FilePreview.d.ts +1 -0
  111. package/dist/Components/FilePreview/FilePreview.js +3 -1
  112. package/dist/Components/FilePreview/FilePreviewProps.d.ts +5 -2
  113. package/dist/Components/FileUpload/FileUpload.d.ts +1 -0
  114. package/dist/Components/FileUpload/FileUpload.js +7 -5
  115. package/dist/Components/FileUpload/FileUploadProps.d.ts +7 -1
  116. package/dist/Components/FileUpload/constants.js +1 -0
  117. package/dist/Components/FileUploader/FileUploader.d.ts +1 -0
  118. package/dist/Components/FileUploader/FileUploader.js +1 -0
  119. package/dist/Components/FileUploader/FileUploaderProps.d.ts +2 -0
  120. package/dist/Components/FilterSidebar/FilterSidebar.d.ts +3 -0
  121. package/dist/Components/FilterSidebar/FilterSidebar.js +5 -5
  122. package/dist/Components/FilterSidebar/filterHoverStyle.d.ts +2 -10
  123. package/dist/Components/FilterSidebar/filterHoverStyle.js +3 -10
  124. package/dist/Components/Form/FormWrapper.d.ts +3 -0
  125. package/dist/Components/Form/FormWrapper.js +2 -1
  126. package/dist/Components/Header/HeaderProps.d.ts +5 -0
  127. package/dist/Components/Header/components/mobileMenu.js +12 -3
  128. package/dist/Components/Input/Input/InputProps.d.ts +2 -0
  129. package/dist/Components/Input/PhoneNumberInput.d.ts +1 -0
  130. package/dist/Components/Input/PhoneNumberInput.js +1 -0
  131. package/dist/Components/Input/PhoneNumberInputProps.d.ts +3 -0
  132. package/dist/Components/Input/Switch/InputSwitch.d.ts +2 -0
  133. package/dist/Components/Input/Switch/InputSwitch.js +1 -0
  134. package/dist/Components/Input/TextInput.js +1 -0
  135. package/dist/Components/Input/TextInput.styles.js +8 -10
  136. package/dist/Components/Input/TextInputProps.d.ts +2 -0
  137. package/dist/Components/InputTextArea/InputTextArea.d.ts +1 -0
  138. package/dist/Components/InputTextArea/InputTextArea.js +1 -0
  139. package/dist/Components/InputTextArea/InputTextArea.style.js +7 -6
  140. package/dist/Components/InputTextArea/InputTextAreaProps.d.ts +1 -0
  141. package/dist/Components/KanbanBoard/AccountCard.d.ts +3 -0
  142. package/dist/Components/KanbanBoard/AccountCard.js +1 -0
  143. package/dist/Components/KanbanBoard/AccountRow.d.ts +1 -0
  144. package/dist/Components/KanbanBoard/AccountRow.js +1 -0
  145. package/dist/Components/KanbanBoard/KanbanActions/KanbanActions.d.ts +2 -0
  146. package/dist/Components/KanbanBoard/KanbanActions/KanbanActions.js +2 -2
  147. package/dist/Components/KanbanBoard/KanbanBoard.d.ts +1 -0
  148. package/dist/Components/KanbanBoard/KanbanBoard.js +1 -0
  149. package/dist/Components/KanbanBoard/KanbanBoardProps.d.ts +39 -14
  150. package/dist/Components/KanbanBoard/MeasuredItem.d.ts +1 -0
  151. package/dist/Components/KanbanBoard/MeasuredItem.js +1 -0
  152. package/dist/Components/LazyWrapper/LazyWrapper.d.ts +3 -2
  153. package/dist/Components/LazyWrapper/LazyWrapper.js +1 -0
  154. package/dist/Components/LimitReachedModal/LimitReachedModalProps.d.ts +4 -1
  155. package/dist/Components/LimitReachedModal/limitReachedCopy.d.ts +2 -0
  156. package/dist/Components/LimitReachedModal/limitReachedCopy.js +2 -0
  157. package/dist/Components/Loading/Loading.d.ts +1 -0
  158. package/dist/Components/Loading/Loading.js +16 -14
  159. package/dist/Components/Loading/LoadingProps.d.ts +2 -0
  160. package/dist/Components/Modal/ModalProps.d.ts +2 -0
  161. package/dist/Components/MoreItems/MoreItems.d.ts +1 -0
  162. package/dist/Components/MoreItems/MoreItems.js +4 -1
  163. package/dist/Components/MoreItems/MoreItemsProps.d.ts +4 -2
  164. package/dist/Components/MultiSelect/MultiSelect.js +2 -2
  165. package/dist/Components/MultiSelect/MultiSelectProps.d.ts +2 -0
  166. package/dist/Components/NavigationBar/NavigationBar.js +9 -10
  167. package/dist/Components/NavigationBar/NavigationBarProps.d.ts +3 -0
  168. package/dist/Components/NoteTextArea/NoteTextArea.d.ts +1 -0
  169. package/dist/Components/NoteTextArea/NoteTextArea.js +10 -4
  170. package/dist/Components/NoteTextArea/NoteTextAreaProps.d.ts +2 -0
  171. package/dist/Components/Notification/Notification.d.ts +1 -0
  172. package/dist/Components/Notification/Notification.js +1 -0
  173. package/dist/Components/Notification/NotificationProps.d.ts +6 -0
  174. package/dist/Components/NumberInput/NumberInput.d.ts +1 -0
  175. package/dist/Components/NumberInput/NumberInput.js +4 -1
  176. package/dist/Components/NumberInput/NumberInput.styles.js +7 -6
  177. package/dist/Components/NumberInput/NumberInputProps.d.ts +3 -0
  178. package/dist/Components/OrgSwitcher/OrgSwitcher.js +14 -10
  179. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +6 -1
  180. package/dist/Components/OrgSwitcher/OrgSwitcherProps.js +1 -0
  181. package/dist/Components/OrganizationDetails/OrganizationDetails.d.ts +1 -0
  182. package/dist/Components/OrganizationDetails/OrganizationDetails.js +4 -2
  183. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts +16 -4
  184. package/dist/Components/PdfViewer/PdfViewer.d.ts +2 -1
  185. package/dist/Components/PdfViewer/PdfViewer.js +7 -1
  186. package/dist/Components/PinInput/PinInput.d.ts +1 -0
  187. package/dist/Components/PinInput/PinInput.js +1 -0
  188. package/dist/Components/PinInput/PinInputProps.d.ts +2 -0
  189. package/dist/Components/PinInputs/PinInputs.d.ts +1 -0
  190. package/dist/Components/PinInputs/PinInputs.js +1 -0
  191. package/dist/Components/PinInputs/PinInputsProps.d.ts +1 -0
  192. package/dist/Components/PlanBadge/PlanBadgeProps.d.ts +2 -0
  193. package/dist/Components/PlanPill/PlanPillProps.d.ts +2 -0
  194. package/dist/Components/Primitives/Primitives.d.ts +6 -0
  195. package/dist/Components/Primitives/Primitives.js +113 -0
  196. package/dist/Components/ProductCard/ProductCardProps.d.ts +10 -0
  197. package/dist/Components/ProductCard/ProductReview.d.ts +1 -0
  198. package/dist/Components/ProductCard/ProductReview.js +6 -1
  199. package/dist/Components/ProductCard/ProductTags.js +1 -1
  200. package/dist/Components/ProductDetails/ProductDetailsProps.d.ts +7 -0
  201. package/dist/Components/ProfileCard/ProfileCard.js +1 -1
  202. package/dist/Components/ProfileCard/ProfileCardProps.d.ts +3 -0
  203. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.d.ts +1 -0
  204. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +5 -3
  205. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewerProps.d.ts +9 -1
  206. package/dist/Components/ProgressBar/ProgressBar.d.ts +1 -0
  207. package/dist/Components/ProgressBar/ProgressBar.js +1 -0
  208. package/dist/Components/ProgressBar/ProgressBarProps.d.ts +2 -0
  209. package/dist/Components/RadioButton/RadioButton.js +3 -2
  210. package/dist/Components/RadioButton/RadioButtonProps.d.ts +2 -0
  211. package/dist/Components/Reorder/Reorder.d.ts +2 -0
  212. package/dist/Components/Reorder/Reorder.js +1 -0
  213. package/dist/Components/Reorder/ReorderProps.d.ts +3 -0
  214. package/dist/Components/RolesPermission/RolesPermission.d.ts +1 -0
  215. package/dist/Components/RolesPermission/RolesPermission.js +5 -3
  216. package/dist/Components/RolesPermission/RolesPermissionProps.d.ts +16 -1
  217. package/dist/Components/ScrollToTop/ScrollToTop.d.ts +3 -2
  218. package/dist/Components/ScrollToTop/ScrollToTop.js +4 -1
  219. package/dist/Components/ScrollbarBox/ScrollbarBox.d.ts +7 -0
  220. package/dist/Components/ScrollbarBox/ScrollbarBox.js +1 -0
  221. package/dist/Components/Search/Search.d.ts +1 -0
  222. package/dist/Components/Search/Search.js +3 -2
  223. package/dist/Components/Search/SearchProps.d.ts +2 -0
  224. package/dist/Components/SearchSelect/SearchSelect.d.ts +1 -0
  225. package/dist/Components/SearchSelect/SearchSelect.js +48 -37
  226. package/dist/Components/SearchSelect/SearchSelectProps.d.ts +23 -0
  227. package/dist/Components/SegmentedControl/SegmentedControl.d.ts +3 -0
  228. package/dist/Components/SegmentedControl/SegmentedControl.js +89 -0
  229. package/dist/Components/SegmentedControl/SegmentedControlProps.d.ts +23 -0
  230. package/dist/Components/SegmentedControl/SegmentedControlProps.js +2 -0
  231. package/dist/Components/Select/Select.d.ts +1 -1
  232. package/dist/Components/Select/Select.js +4 -2
  233. package/dist/Components/Select/Select.styles.js +3 -2
  234. package/dist/Components/Select/SelectProps.d.ts +6 -0
  235. package/dist/Components/SelectSearch/SelectSearch.d.ts +1 -0
  236. package/dist/Components/SelectSearch/SelectSearch.js +37 -15
  237. package/dist/Components/SelectSearch/SelectSearchProps.d.ts +5 -0
  238. package/dist/Components/SelectV2/SelectV2.d.ts +1 -0
  239. package/dist/Components/SelectV2/SelectV2.js +20 -5
  240. package/dist/Components/SelectV2/SelectV2Props.d.ts +6 -1
  241. package/dist/Components/SideBar/SecondaryBar.js +1 -1
  242. package/dist/Components/SideBar/SideBar.js +5 -3
  243. package/dist/Components/SideBar/SideBarProps.d.ts +38 -24
  244. package/dist/Components/SideBar/components/MenuPopoverContent.js +2 -2
  245. package/dist/Components/SignInActivityTable/SignInActivityTableProps.d.ts +3 -0
  246. package/dist/Components/Skeletons/SkeletonProps.d.ts +2 -0
  247. package/dist/Components/Skeletons/Skeletons.d.ts +1 -0
  248. package/dist/Components/Skeletons/Skeletons.js +1 -0
  249. package/dist/Components/Slider/Slider.d.ts +3 -0
  250. package/dist/Components/Slider/Slider.js +9 -1
  251. package/dist/Components/StageProgress/StageItem.d.ts +1 -0
  252. package/dist/Components/StageProgress/StageItem.js +1 -0
  253. package/dist/Components/StageProgress/StageProgress.d.ts +1 -0
  254. package/dist/Components/StageProgress/StageProgress.js +1 -0
  255. package/dist/Components/StageProgress/StageProgressProps.d.ts +45 -4
  256. package/dist/Components/StageProgress/StageProgressProps.js +6 -4
  257. package/dist/Components/StageProgress/StepperStage.js +2 -2
  258. package/dist/Components/Switch/Switch.d.ts +1 -0
  259. package/dist/Components/Switch/Switch.js +1 -0
  260. package/dist/Components/Switch/SwitchProps.d.ts +1 -0
  261. package/dist/Components/Table/Table.d.ts +2 -1
  262. package/dist/Components/Table/Table.js +15 -5
  263. package/dist/Components/Table/TableProps.d.ts +47 -0
  264. package/dist/Components/Table/components/Pagination.js +1 -1
  265. package/dist/Components/Table/components/TableActions.js +2 -2
  266. package/dist/Components/Table/components/TableBody.js +44 -18
  267. package/dist/Components/Table/components/TableGroupRow.js +1 -1
  268. package/dist/Components/Table/components/TableHeader.js +21 -8
  269. package/dist/Components/Table/components/TableSearch.js +1 -1
  270. package/dist/Components/Table/filters/CompactSelect.d.ts +1 -0
  271. package/dist/Components/Table/filters/CompactSelect.js +29 -8
  272. package/dist/Components/Table/filters/LeftFilterPane.d.ts +9 -1
  273. package/dist/Components/Table/filters/LeftFilterPane.js +1 -1
  274. package/dist/Components/Table/settings/ManageColumns.js +8 -5
  275. package/dist/Components/Table/settings/TableSettings.js +6 -4
  276. package/dist/Components/Table/variants/TableVariantContext.d.ts +4 -0
  277. package/dist/Components/Table/variants/TableVariantContext.js +17 -0
  278. package/dist/Components/Table/variants/classic.d.ts +6 -0
  279. package/dist/Components/Table/variants/classic.js +47 -0
  280. package/dist/Components/Table/variants/index.d.ts +7 -0
  281. package/dist/Components/Table/variants/index.js +27 -0
  282. package/dist/Components/Table/variants/pillInk.d.ts +6 -0
  283. package/dist/Components/Table/variants/pillInk.js +21 -0
  284. package/dist/Components/Table/variants/studio.d.ts +6 -0
  285. package/dist/Components/Table/variants/studio.js +50 -0
  286. package/dist/Components/Table/variants/tokens.d.ts +49 -0
  287. package/dist/Components/Table/variants/tokens.js +2 -0
  288. package/dist/Components/Tag/Tag.d.ts +1 -0
  289. package/dist/Components/Tag/Tag.js +1 -0
  290. package/dist/Components/Tag/Tag.styles.js +16 -11
  291. package/dist/Components/Tag/TagProps.d.ts +7 -0
  292. package/dist/Components/Timeline/Timeline.d.ts +1 -0
  293. package/dist/Components/Timeline/Timeline.js +1 -0
  294. package/dist/Components/Timeline/TimelineProps.d.ts +8 -0
  295. package/dist/Components/Toaster/Toaster.d.ts +1 -0
  296. package/dist/Components/Toaster/Toaster.js +1 -0
  297. package/dist/Components/Toaster/ToasterProps.d.ts +3 -0
  298. package/dist/Components/Toggle/TableToggle.d.ts +1 -0
  299. package/dist/Components/Toggle/TableToggle.js +73 -18
  300. package/dist/Components/Toggle/TableToggleProps.d.ts +6 -0
  301. package/dist/Components/ToggleSwitch/ToggleSwitch.d.ts +3 -0
  302. package/dist/Components/ToggleSwitch/ToggleSwitch.js +19 -0
  303. package/dist/Components/ToggleSwitch/ToggleSwitchProps.d.ts +13 -0
  304. package/dist/Components/ToggleSwitch/ToggleSwitchProps.js +2 -0
  305. package/dist/Components/ToolTip/ToolTip.d.ts +1 -0
  306. package/dist/Components/ToolTip/ToolTip.js +7 -6
  307. package/dist/Components/ToolTip/ToolTipProps.d.ts +5 -1
  308. package/dist/Components/Trail/EditableCell.d.ts +2 -0
  309. package/dist/Components/Trail/EditableCell.js +2 -1
  310. package/dist/Components/Trail/SelectAllCheckbox.d.ts +1 -0
  311. package/dist/Components/Trail/SelectAllCheckbox.js +1 -0
  312. package/dist/Components/Trail/TrailWorks.d.ts +1 -0
  313. package/dist/Components/Trail/TrailWorks.js +2 -1
  314. package/dist/Components/UpgradeButton/UpgradeButtonProps.d.ts +6 -2
  315. package/dist/Components/UserDetails/DeactivateConfirmModal.js +1 -1
  316. package/dist/Components/UserDetails/UserDetails.d.ts +1 -0
  317. package/dist/Components/UserDetails/UserDetails.js +6 -3
  318. package/dist/Components/UserDetails/UserDetailsProps.d.ts +30 -1
  319. package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts +6 -1
  320. package/dist/Hooks/exclusiveOverlay.d.ts +4 -0
  321. package/dist/Hooks/exclusiveOverlay.js +22 -0
  322. package/dist/Hooks/useExclusiveOverlay.d.ts +5 -0
  323. package/dist/Hooks/useExclusiveOverlay.js +24 -0
  324. package/dist/Theme/assertPalette.d.ts +1 -1
  325. package/dist/Theme/assertPalette.js +3 -2
  326. package/dist/Theme/chakra/Menu.styles.d.ts +2 -0
  327. package/dist/Theme/chakra/Menu.styles.js +9 -5
  328. package/dist/Theme/chakra/Popover.styles.d.ts +3 -0
  329. package/dist/Theme/chakra/Popover.styles.js +5 -1
  330. package/dist/Theme/chakra/componentStyles.d.ts +5 -0
  331. package/dist/Theme/chakra/componentStyles.js +16 -9
  332. package/dist/Theme/chakra/createBrandTheme.js +22 -9
  333. package/dist/Theme/chakra/focusRing.styles.d.ts +52 -0
  334. package/dist/Theme/chakra/focusRing.styles.js +46 -0
  335. package/dist/Theme/provider/ThemeSwitcher.js +5 -2
  336. package/dist/Theme/tokens/brands/index.js +6 -1
  337. package/dist/Theme/tokens/brands/zinc/palette.dark.d.ts +1 -0
  338. package/dist/Theme/tokens/builders/buildDarkPalette.js +6 -1
  339. package/dist/Theme/tokens/builders/chartColorsFromTheme.js +1 -1
  340. package/dist/Theme/tokens/builders/filledSurface.d.ts +29 -0
  341. package/dist/Theme/tokens/builders/filledSurface.js +74 -0
  342. package/dist/Theme/tokens/builders/focusRing.d.ts +52 -0
  343. package/dist/Theme/tokens/builders/focusRing.js +92 -0
  344. package/dist/Theme/tokens/builders/index.d.ts +2 -0
  345. package/dist/Theme/tokens/builders/index.js +2 -0
  346. package/dist/Theme/tokens/builders/outlineRung.d.ts +41 -3
  347. package/dist/Theme/tokens/builders/outlineRung.js +82 -5
  348. package/dist/Theme/tokens/builders/placeholderInk.d.ts +19 -0
  349. package/dist/Theme/tokens/builders/placeholderInk.js +35 -0
  350. package/dist/Theme/tokens/builders/resolvedRungs.d.ts +5 -1
  351. package/dist/Theme/tokens/builders/resolvedRungs.js +7 -2
  352. package/dist/Theme/tokens/builders/rowStates.d.ts +13 -0
  353. package/dist/Theme/tokens/builders/rowStates.js +19 -0
  354. package/dist/Theme/tokens/builders/scrollShadow.d.ts +2 -0
  355. package/dist/Theme/tokens/builders/scrollShadow.js +16 -0
  356. package/dist/Theme/tokens/builders/surfaceRungs.d.ts +5 -2
  357. package/dist/Theme/tokens/builders/surfaceRungs.js +19 -9
  358. package/dist/Theme/tokens/types.d.ts +21 -1
  359. package/dist/Utils/table.d.ts +3 -0
  360. package/dist/Utils/table.js +49 -3
  361. package/dist/esm/Components/Accordion/Accordion.js +4 -1
  362. package/dist/esm/Components/AlertDialog/AlertDialog.js +1 -0
  363. package/dist/esm/Components/Apexcharts/ApexAreaChart/ApexAreaChart.js +1 -0
  364. package/dist/esm/Components/Apexcharts/ApexBarChart/ApexBarChart.js +1 -0
  365. package/dist/esm/Components/Apexcharts/ApexLineChart/ApexLineChart.js +1 -0
  366. package/dist/esm/Components/Apexcharts/ApexPieChart/ApexPieChart.js +1 -0
  367. package/dist/esm/Components/Apexcharts/ApexPolarCharts/ApexPolarCharts.js +1 -0
  368. package/dist/esm/Components/Apexcharts/ApexRadialChart/ApexRadialChart.js +1 -0
  369. package/dist/esm/Components/AppSwitcher/AppMark.js +56 -0
  370. package/dist/esm/Components/AppSwitcher/AppSwitcher.js +243 -0
  371. package/dist/esm/Components/AppSwitcher/AppSwitcherProps.js +78 -0
  372. package/dist/esm/Components/AppSwitcher/useAppSwitcherShortcut.js +27 -0
  373. package/dist/esm/Components/AppearanceSettings/AppearanceSettings.js +2 -1
  374. package/dist/esm/Components/Button/Button.js +5 -4
  375. package/dist/esm/Components/Button/Button.styles.js +38 -24
  376. package/dist/esm/Components/ButtonGroupIcon/ButtonGroupIcon.js +2 -4
  377. package/dist/esm/Components/Card/Card.js +2 -2
  378. package/dist/esm/Components/Card/PaymentCard/PaymentCard.js +21 -12
  379. package/dist/esm/Components/Checkbox/Checkbox.js +2 -1
  380. package/dist/esm/Components/Checkbox/Checkbox.styles.js +13 -8
  381. package/dist/esm/Components/Common/ErrorComponent.js +7 -5
  382. package/dist/esm/Components/Common/ErrorMessage.js +2 -2
  383. package/dist/esm/Components/Common/FormLabel.js +1 -0
  384. package/dist/esm/Components/Common/FormattedDescription.js +1 -0
  385. package/dist/esm/Components/Common/HelperText.js +2 -0
  386. package/dist/esm/Components/Common/Label.js +1 -0
  387. package/dist/esm/Components/Common/fieldStyles.js +1 -1
  388. package/dist/esm/Components/ContactForm/ContactForm.js +1 -0
  389. package/dist/esm/Components/CopyButton/CopyButton.js +10 -4
  390. package/dist/esm/Components/DatePicker/CalendarPanel.js +38 -16
  391. package/dist/esm/Components/DatePicker/DatePicker.js +1 -0
  392. package/dist/esm/Components/DatePicker/RangeDatePicker.js +31 -6
  393. package/dist/esm/Components/DatePicker/SingleDatePicker.js +50 -15
  394. package/dist/esm/Components/DatePicker/ThemeDatePicker.js +1 -0
  395. package/dist/esm/Components/DatePicker/TimeOnlyPicker.js +11 -2
  396. package/dist/esm/Components/DatePicker/TimePicker.js +4 -3
  397. package/dist/esm/Components/DatePicker/TimePickerInput.js +2 -1
  398. package/dist/esm/Components/DatePicker/dayStates.js +79 -0
  399. package/dist/esm/Components/Divider/Divider.js +1 -0
  400. package/dist/esm/Components/Dropdown/DropDown.js +23 -7
  401. package/dist/esm/Components/Editor/Editor.js +1 -0
  402. package/dist/esm/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.js +2 -5
  403. package/dist/esm/Components/EmptyState/EmptyState.js +4 -2
  404. package/dist/esm/Components/FeedbackForm/FeedbackForm.js +1 -0
  405. package/dist/esm/Components/FieldSelectModal/FieldSelectModal.js +1 -0
  406. package/dist/esm/Components/FilePreview/FilePreview.js +3 -1
  407. package/dist/esm/Components/FileUpload/FileUpload.js +8 -6
  408. package/dist/esm/Components/FileUpload/constants.js +1 -0
  409. package/dist/esm/Components/FileUploader/FileUploader.js +1 -0
  410. package/dist/esm/Components/FilterSidebar/FilterSidebar.js +5 -5
  411. package/dist/esm/Components/FilterSidebar/filterHoverStyle.js +3 -10
  412. package/dist/esm/Components/Form/FormWrapper.js +2 -1
  413. package/dist/esm/Components/Header/components/mobileMenu.js +12 -3
  414. package/dist/esm/Components/Input/PhoneNumberInput.js +1 -0
  415. package/dist/esm/Components/Input/Switch/InputSwitch.js +1 -0
  416. package/dist/esm/Components/Input/TextInput.js +1 -0
  417. package/dist/esm/Components/Input/TextInput.styles.js +8 -10
  418. package/dist/esm/Components/InputTextArea/InputTextArea.js +1 -0
  419. package/dist/esm/Components/InputTextArea/InputTextArea.style.js +7 -6
  420. package/dist/esm/Components/KanbanBoard/AccountCard.js +1 -0
  421. package/dist/esm/Components/KanbanBoard/AccountRow.js +1 -0
  422. package/dist/esm/Components/KanbanBoard/KanbanActions/KanbanActions.js +2 -2
  423. package/dist/esm/Components/KanbanBoard/KanbanBoard.js +1 -0
  424. package/dist/esm/Components/KanbanBoard/MeasuredItem.js +1 -0
  425. package/dist/esm/Components/LazyWrapper/LazyWrapper.js +1 -0
  426. package/dist/esm/Components/LimitReachedModal/limitReachedCopy.js +2 -0
  427. package/dist/esm/Components/Loading/Loading.js +13 -11
  428. package/dist/esm/Components/MoreItems/MoreItems.js +4 -1
  429. package/dist/esm/Components/MultiSelect/MultiSelect.js +2 -2
  430. package/dist/esm/Components/NavigationBar/NavigationBar.js +9 -10
  431. package/dist/esm/Components/NoteTextArea/NoteTextArea.js +10 -4
  432. package/dist/esm/Components/Notification/Notification.js +1 -0
  433. package/dist/esm/Components/NumberInput/NumberInput.js +5 -2
  434. package/dist/esm/Components/NumberInput/NumberInput.styles.js +7 -6
  435. package/dist/esm/Components/OrgSwitcher/OrgSwitcher.js +14 -10
  436. package/dist/esm/Components/OrgSwitcher/OrgSwitcherProps.js +1 -0
  437. package/dist/esm/Components/OrganizationDetails/OrganizationDetails.js +5 -3
  438. package/dist/esm/Components/PdfViewer/PdfViewer.js +7 -1
  439. package/dist/esm/Components/PinInput/PinInput.js +1 -0
  440. package/dist/esm/Components/PinInputs/PinInputs.js +1 -0
  441. package/dist/esm/Components/Primitives/Primitives.js +6 -0
  442. package/dist/esm/Components/ProductCard/ProductReview.js +6 -1
  443. package/dist/esm/Components/ProductCard/ProductTags.js +1 -1
  444. package/dist/esm/Components/ProfileCard/ProfileCard.js +1 -1
  445. package/dist/esm/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +6 -4
  446. package/dist/esm/Components/ProgressBar/ProgressBar.js +1 -0
  447. package/dist/esm/Components/RadioButton/RadioButton.js +3 -2
  448. package/dist/esm/Components/Reorder/Reorder.js +1 -0
  449. package/dist/esm/Components/RolesPermission/RolesPermission.js +5 -3
  450. package/dist/esm/Components/ScrollToTop/ScrollToTop.js +4 -1
  451. package/dist/esm/Components/ScrollbarBox/ScrollbarBox.js +1 -0
  452. package/dist/esm/Components/Search/Search.js +3 -2
  453. package/dist/esm/Components/SearchSelect/SearchSelect.js +48 -37
  454. package/dist/esm/Components/SegmentedControl/SegmentedControl.js +86 -0
  455. package/dist/esm/Components/SegmentedControl/SegmentedControlProps.js +1 -0
  456. package/dist/esm/Components/Select/Select.js +5 -3
  457. package/dist/esm/Components/Select/Select.styles.js +3 -2
  458. package/dist/esm/Components/SelectSearch/SelectSearch.js +37 -15
  459. package/dist/esm/Components/SelectV2/SelectV2.js +20 -5
  460. package/dist/esm/Components/SideBar/SecondaryBar.js +1 -1
  461. package/dist/esm/Components/SideBar/SideBar.js +5 -3
  462. package/dist/esm/Components/SideBar/components/MenuPopoverContent.js +2 -2
  463. package/dist/esm/Components/Skeletons/Skeletons.js +1 -0
  464. package/dist/esm/Components/Slider/Slider.js +9 -1
  465. package/dist/esm/Components/StageProgress/StageItem.js +1 -0
  466. package/dist/esm/Components/StageProgress/StageProgress.js +1 -0
  467. package/dist/esm/Components/StageProgress/StageProgressProps.js +7 -5
  468. package/dist/esm/Components/StageProgress/StepperStage.js +2 -2
  469. package/dist/esm/Components/Switch/Switch.js +1 -0
  470. package/dist/esm/Components/Table/Table.js +15 -5
  471. package/dist/esm/Components/Table/components/Pagination.js +1 -1
  472. package/dist/esm/Components/Table/components/TableActions.js +2 -2
  473. package/dist/esm/Components/Table/components/TableBody.js +44 -18
  474. package/dist/esm/Components/Table/components/TableGroupRow.js +1 -1
  475. package/dist/esm/Components/Table/components/TableHeader.js +21 -8
  476. package/dist/esm/Components/Table/components/TableSearch.js +1 -1
  477. package/dist/esm/Components/Table/filters/CompactSelect.js +29 -8
  478. package/dist/esm/Components/Table/filters/LeftFilterPane.js +1 -1
  479. package/dist/esm/Components/Table/settings/ManageColumns.js +8 -5
  480. package/dist/esm/Components/Table/settings/TableSettings.js +7 -5
  481. package/dist/esm/Components/Table/variants/TableVariantContext.js +13 -0
  482. package/dist/esm/Components/Table/variants/classic.js +43 -0
  483. package/dist/esm/Components/Table/variants/index.js +9 -0
  484. package/dist/esm/Components/Table/variants/pillInk.js +18 -0
  485. package/dist/esm/Components/Table/variants/studio.js +46 -0
  486. package/dist/esm/Components/Table/variants/tokens.js +1 -0
  487. package/dist/esm/Components/Tag/Tag.js +1 -0
  488. package/dist/esm/Components/Tag/Tag.styles.js +17 -12
  489. package/dist/esm/Components/Timeline/Timeline.js +1 -0
  490. package/dist/esm/Components/Toaster/Toaster.js +1 -0
  491. package/dist/esm/Components/Toggle/TableToggle.js +72 -17
  492. package/dist/esm/Components/ToggleSwitch/ToggleSwitch.js +16 -0
  493. package/dist/esm/Components/ToggleSwitch/ToggleSwitchProps.js +1 -0
  494. package/dist/esm/Components/ToolTip/ToolTip.js +7 -6
  495. package/dist/esm/Components/Trail/EditableCell.js +2 -1
  496. package/dist/esm/Components/Trail/SelectAllCheckbox.js +1 -0
  497. package/dist/esm/Components/Trail/TrailWorks.js +2 -1
  498. package/dist/esm/Components/UserDetails/DeactivateConfirmModal.js +1 -1
  499. package/dist/esm/Components/UserDetails/UserDetails.js +6 -3
  500. package/dist/esm/Hooks/exclusiveOverlay.js +16 -0
  501. package/dist/esm/Hooks/useExclusiveOverlay.js +20 -0
  502. package/dist/esm/Theme/assertPalette.js +3 -2
  503. package/dist/esm/Theme/chakra/Menu.styles.js +9 -5
  504. package/dist/esm/Theme/chakra/Popover.styles.js +5 -1
  505. package/dist/esm/Theme/chakra/componentStyles.js +16 -9
  506. package/dist/esm/Theme/chakra/createBrandTheme.js +22 -9
  507. package/dist/esm/Theme/chakra/focusRing.styles.js +40 -0
  508. package/dist/esm/Theme/provider/ThemeSwitcher.js +5 -2
  509. package/dist/esm/Theme/tokens/brands/index.js +6 -1
  510. package/dist/esm/Theme/tokens/builders/buildDarkPalette.js +6 -1
  511. package/dist/esm/Theme/tokens/builders/chartColorsFromTheme.js +1 -1
  512. package/dist/esm/Theme/tokens/builders/filledSurface.js +67 -0
  513. package/dist/esm/Theme/tokens/builders/focusRing.js +85 -0
  514. package/dist/esm/Theme/tokens/builders/index.js +2 -0
  515. package/dist/esm/Theme/tokens/builders/outlineRung.js +78 -4
  516. package/dist/esm/Theme/tokens/builders/placeholderInk.js +29 -0
  517. package/dist/esm/Theme/tokens/builders/resolvedRungs.js +7 -2
  518. package/dist/esm/Theme/tokens/builders/rowStates.js +15 -0
  519. package/dist/esm/Theme/tokens/builders/scrollShadow.js +13 -0
  520. package/dist/esm/Theme/tokens/builders/surfaceRungs.js +20 -10
  521. package/dist/esm/Utils/table.js +50 -5
  522. package/dist/esm/index.js +26 -1
  523. package/dist/index.d.ts +26 -3
  524. package/dist/index.js +67 -4
  525. package/package.json +11 -4
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const jsx_runtime_1 = require("react/jsx-runtime");
4
4
  const react_1 = require("@chakra-ui/react");
5
5
  const useCustomTheme_1 = require("../../Theme/useCustomTheme");
6
+ /** Always renders a real Chakra `<label>` (FormLabel), even without `htmlFor` — unlike `TextLabel` (FormLabel.tsx), which falls back to a plain `<span>`. */
6
7
  const Label = ({ label, htmlFor, labelClassName, isRequired, }) => {
7
8
  const { colors } = (0, useCustomTheme_1.useCustomTheme)();
8
9
  return ((0, jsx_runtime_1.jsxs)(react_1.FormLabel, { htmlFor: htmlFor, mb: 1, fontSize: "sm", fontWeight: "medium", className: labelClassName, color: colors.header[500], children: [label, isRequired && ((0, jsx_runtime_1.jsx)(react_1.Text, { as: "span", color: colors.semanticText.error, ml: 1, children: "*" }))] }));
@@ -20,7 +20,7 @@ const getFieldStateStyles = (theme, { error = false, focused = false } = {}) =>
20
20
  const ringPrimary = theme.colors.boxShadow.primary;
21
21
  const ringError = theme.colors.boxShadow.error;
22
22
  return {
23
- bg: theme.colors.gray[50],
23
+ bg: theme.colors.background[50],
24
24
  borderRadius: exports.FIELD_RADIUS,
25
25
  border: `${exports.FIELD_BORDER_WIDTH} solid`,
26
26
  borderColor: error ? errorColor : focused ? primary : idleBorder,
@@ -1,3 +1,4 @@
1
1
  import { ContactFormProps } from "./ContactFormProps";
2
+ /** Fully self-contained enquiry form — validates, POSTs to apiKey, and renders its own success/error alert; there is no onSubmit/onSuccess callback. */
2
3
  declare const ContactForm: ({ apiKey, customFields, getCustomValues, isDisabled, organizationId, customerId, buttonColorScheme, buttonSx, }: ContactFormProps) => import("react/jsx-runtime").JSX.Element;
3
4
  export default ContactForm;
@@ -11,6 +11,7 @@ const lucide_react_1 = require("lucide-react");
11
11
  const useCustomTheme_1 = require("../../Theme/useCustomTheme");
12
12
  const InputTextArea_1 = __importDefault(require("../InputTextArea/InputTextArea"));
13
13
  const Button_1 = __importDefault(require("../Button/Button"));
14
+ /** Fully self-contained enquiry form — validates, POSTs to apiKey, and renders its own success/error alert; there is no onSubmit/onSuccess callback. */
14
15
  const ContactForm = ({ apiKey, customFields, getCustomValues, isDisabled = false, organizationId, customerId, buttonColorScheme = "primary", buttonSx, }) => {
15
16
  const { colors } = (0, useCustomTheme_1.useCustomTheme)();
16
17
  const [formData, setFormData] = (0, react_1.useState)({
@@ -1,11 +1,15 @@
1
1
  import { SystemStyleObject } from "@chakra-ui/react";
2
2
  import { ReactNode } from "react";
3
+ /** apiKey is optional — omitting it fails submission silently with an inline "API key missing" alert, not a thrown error. */
3
4
  export interface ContactFormProps {
5
+ /** The POST endpoint URL the form fetches to — not an auth token; a real API key/secret string fails silently as an invalid URL. */
4
6
  apiKey?: string;
5
7
  customerId: string | number;
6
8
  organizationId: string | number;
7
9
  isDisabled?: boolean;
10
+ /** Rendered markup only — its values are never read automatically; pair with getCustomValues or they're dropped from the submitted payload. */
8
11
  customFields?: ReactNode;
12
+ /** Return value spreads into the payload after the built-in fields — a key like "email" silently overwrites the typed value; customerId/organizationId can't be overridden this way. */
9
13
  getCustomValues?: () => Record<string, unknown>;
10
14
  buttonColorScheme?: "primary" | "blue" | "cyan" | "gray" | "green" | "orange" | "pink" | "purple" | "red" | "teal" | "yellow" | "secondary" | "tertiary" | undefined;
11
15
  buttonSx?: SystemStyleObject;
@@ -14,9 +14,11 @@ export interface CopyButtonProps {
14
14
  feedbackDuration?: number;
15
15
  /** Icon px size. */
16
16
  iconSize?: number;
17
+ /** Only affects the default "icon" variant's IconButton — "button" and "menu-item" ignore it. */
17
18
  size?: "xs" | "sm" | "md";
18
- /** Called after a successful copy. */
19
+ /** Fires only if the clipboard write resolves — a denied/insecure-context failure is swallowed silently. */
19
20
  onCopy?: (value: string) => void;
20
21
  }
22
+ /** Copies `value` to the clipboard in 3 layouts (icon/button/menu-item) — not a full share/export action. */
21
23
  declare const CopyButton: React.FC<CopyButtonProps>;
22
24
  export default CopyButton;
@@ -9,7 +9,10 @@ const react_2 = require("@chakra-ui/react");
9
9
  const lucide_react_1 = require("lucide-react");
10
10
  const useCustomTheme_1 = require("../../Theme/useCustomTheme");
11
11
  const accentText_1 = require("../../Theme/tokens/builders/accentText");
12
+ const rowStates_1 = require("../../Theme/tokens/builders/rowStates");
13
+ const outlineRung_1 = require("../../Theme/tokens/builders/outlineRung");
12
14
  const ToolTip_1 = __importDefault(require("../ToolTip/ToolTip"));
15
+ /** Copies `value` to the clipboard in 3 layouts (icon/button/menu-item) — not a full share/export action. */
13
16
  const CopyButton = ({ value, variant = "icon", label = "Copy", copiedLabel = "Copied!", tooltip = "Copy", feedbackDuration = 1500, iconSize = 16, size = "sm", onCopy, }) => {
14
17
  const theme = (0, useCustomTheme_1.useCustomTheme)();
15
18
  const [copied, setCopied] = (0, react_1.useState)(false);
@@ -33,14 +36,17 @@ const CopyButton = ({ value, variant = "icon", label = "Copy", copiedLabel = "Co
33
36
  // nearest rung that clears AA against the canvas this button actually sits on.
34
37
  const accent = (0, accentText_1.accentTextOnCanvas)(theme.colors.primary, theme.colors.backgroundColor.main);
35
38
  const success = theme.colors.semanticText.success;
39
+ const rowBackgrounds = (0, rowStates_1.listRowBackgrounds)(theme.colors);
36
40
  if (variant === "menu-item") {
37
- return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "0.5rem", px: "12px", py: "8px", width: "100%", cursor: "pointer", borderRadius: "md", transition: "background 0.15s ease", _hover: { bg: theme.colors.gray[100] }, onClick: handleCopy, children: [copied ? (0, jsx_runtime_1.jsx)(lucide_react_1.Check, { size: iconSize, color: success }) : (0, jsx_runtime_1.jsx)(lucide_react_1.Copy, { size: iconSize, color: accent }), (0, jsx_runtime_1.jsx)(react_2.Box, { fontSize: "14px", fontWeight: 500, color: copied ? success : accent, children: copied ? copiedLabel : label })] }));
41
+ const hoverAccent = (0, accentText_1.accentTextOnCanvas)(theme.colors.primary, rowBackgrounds.active);
42
+ const hoverSuccess = (0, outlineRung_1.liftToContrast)(theme.colors.semantic.success[500], rowBackgrounds.active, accentText_1.AA_NORMAL_TEXT);
43
+ return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "0.5rem", px: "12px", py: "8px", width: "100%", cursor: "pointer", borderRadius: "md", transition: "background 0.15s ease", _hover: { bg: rowBackgrounds.active }, onClick: handleCopy, children: [copied ? ((0, jsx_runtime_1.jsx)(lucide_react_1.Check, { size: iconSize, color: hoverSuccess })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.Copy, { size: iconSize, color: hoverAccent })), (0, jsx_runtime_1.jsx)(react_2.Box, { fontSize: "14px", fontWeight: 500, color: copied ? hoverSuccess : hoverAccent, children: copied ? copiedLabel : label })] }));
38
44
  }
39
45
  if (variant === "button") {
40
46
  return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", align: "center", gap: "6px", px: "12px", py: "6px", borderRadius: "lg", border: "1px solid",
41
47
  // [800], not [500]: a real control boundary needs >=3:1 on every surface up to `muted`.
42
- borderColor: copied ? success : theme.colors.boxborder[500], bg: "transparent", color: copied ? success : theme.colors.gray[700], fontSize: "14px", fontWeight: 500, transition: "all 0.15s ease", _hover: { borderColor: accent, color: accent }, onClick: handleCopy, children: [copied ? (0, jsx_runtime_1.jsx)(lucide_react_1.Check, { size: iconSize }) : (0, jsx_runtime_1.jsx)(lucide_react_1.Copy, { size: iconSize }), (0, jsx_runtime_1.jsx)(react_2.Text, { children: copied ? copiedLabel : label })] }));
48
+ borderColor: copied ? success : theme.colors.boxborder[500], bg: "transparent", color: copied ? success : theme.colors.text[700], fontSize: "14px", fontWeight: 500, transition: "all 0.15s ease", _hover: { borderColor: accent, color: accent }, onClick: handleCopy, children: [copied ? (0, jsx_runtime_1.jsx)(lucide_react_1.Check, { size: iconSize }) : (0, jsx_runtime_1.jsx)(lucide_react_1.Copy, { size: iconSize }), (0, jsx_runtime_1.jsx)(react_2.Text, { children: copied ? copiedLabel : label })] }));
43
49
  }
44
- return ((0, jsx_runtime_1.jsx)(ToolTip_1.default, { label: copied ? copiedLabel : tooltip, placement: "top", children: (0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": tooltip, size: size, variant: "ghost", onClick: handleCopy, color: copied ? success : theme.colors.gray[500], _hover: { color: accent, bg: theme.colors.primary[50] }, icon: copied ? (0, jsx_runtime_1.jsx)(lucide_react_1.Check, { size: iconSize }) : (0, jsx_runtime_1.jsx)(lucide_react_1.Copy, { size: iconSize }) }) }));
50
+ return ((0, jsx_runtime_1.jsx)(ToolTip_1.default, { label: copied ? copiedLabel : tooltip, placement: "top", children: (0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": tooltip, size: size, variant: "ghost", onClick: handleCopy, color: copied ? success : theme.colors.textMuted, _hover: { color: accent, bg: rowBackgrounds.active }, icon: copied ? (0, jsx_runtime_1.jsx)(lucide_react_1.Check, { size: iconSize }) : (0, jsx_runtime_1.jsx)(lucide_react_1.Copy, { size: iconSize }) }) }));
45
51
  };
46
52
  exports.default = CopyButton;
@@ -1,8 +1,11 @@
1
+ /** One row in the modules table; `ownerLabel` is display-only and has no counterpart in UpdateModulePayload. */
1
2
  export type ModuleItem = {
3
+ /** snake_case, unlike moduleName/ownerLabel here and unlike UpdateModulePayload.moduleId — casing isn't symmetric. */
2
4
  module_id: number;
3
5
  moduleName: string;
4
6
  ownerLabel?: string;
5
7
  };
8
+ /** Shape passed to onUpdateModule — `moduleId` identifies the item being edited, `moduleName` is the new value from the modal. */
6
9
  export type UpdateModulePayload = {
7
10
  moduleId: number;
8
11
  moduleName: string;
@@ -27,15 +30,19 @@ export type CustomModulesTableLabels = {
27
30
  confirmDeletion?: string;
28
31
  deleteConfirmPrefix?: string;
29
32
  };
33
+ /** Fixed 2-column module list (name, owner) built on raw Chakra table parts, not the library Table — closed props, no ref/...rest reach the root Box. */
30
34
  export interface CustomModulesTableProps {
31
35
  modules: ModuleItem[];
32
36
  isLoading?: boolean;
33
37
  isUpdating?: boolean;
34
38
  isDeleting?: boolean;
39
+ /** Edit modal closes once this promise resolves; a rejection is unhandled (never caught) and isUpdating only toggles the button spinner, not the close. */
35
40
  onUpdateModule?: (payload: UpdateModulePayload) => void | Promise<void>;
41
+ /** Delete modal closes once this promise resolves; a rejection is unhandled (never caught) and isDeleting only toggles the button spinner, not the close. */
36
42
  onDeleteModule?: (moduleId: number) => void | Promise<void>;
37
43
  labels?: CustomModulesTableLabels;
38
44
  }
45
+ /** Internal edit-name dialog rendered by CustomModulesTable; `labels` must already be fully resolved, not per-key optional. */
39
46
  export interface EditModuleModalProps {
40
47
  isOpen: boolean;
41
48
  onClose: () => void;
@@ -44,6 +51,7 @@ export interface EditModuleModalProps {
44
51
  onSubmit: (name: string) => void | Promise<void>;
45
52
  labels: Required<Pick<CustomModulesTableLabels, "editModuleTitle" | "moduleNamePlaceholder" | "cancel" | "update">>;
46
53
  }
54
+ /** Internal delete-confirmation dialog rendered by CustomModulesTable; `moduleName` is optional since the target can be cleared mid-close. */
47
55
  export interface DeleteModuleModalProps {
48
56
  isOpen: boolean;
49
57
  onClose: () => void;
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import { type DayStates, type RenderDayContent } from "./dayStates";
2
3
  export type CalendarPanelProps = {
3
4
  currentMonth: Date;
4
5
  setCurrentMonth: (updater: (prev: Date) => Date) => void;
@@ -19,6 +20,11 @@ export type CalendarPanelProps = {
19
20
  hoveredDate?: Date | null;
20
21
  onDayHover?: (d: Date | null) => void;
21
22
  renderWeekdays?: React.ReactNode;
23
+ /** Marks individual days (weekly off, holiday, …). See `dayStates.ts`. Omit for the plain grid. */
24
+ dayStates?: DayStates;
25
+ /** Custom content inside a day cell, replacing that day's built-in marker dot. */
26
+ renderDayContent?: RenderDayContent;
22
27
  };
28
+ /** Internal month grid shared by Single/RangeDatePicker; not published from index.ts, so only reachable via a deep import. */
23
29
  export declare const CalendarPanel: React.FC<CalendarPanelProps>;
24
30
  export default CalendarPanel;
@@ -10,8 +10,10 @@ const date_fns_1 = require("date-fns");
10
10
  const lucide_react_1 = require("lucide-react");
11
11
  const Button_1 = __importDefault(require("../Button/Button"));
12
12
  const useCustomTheme_1 = require("../../Theme/useCustomTheme");
13
- const accentText_1 = require("../../Theme/tokens/builders/accentText");
14
- const CalendarPanel = ({ currentMonth, setCurrentMonth, today, isRange, tempDate, tempRangeStart, tempRangeEnd, isSameDay, isBefore, isAfter, minDate, maxDate, disablePastDates, disableFutureDates, disableToday, onDaySelect, hoveredDate, onDayHover, renderWeekdays, }) => {
13
+ const filledSurface_1 = require("../../Theme/tokens/builders/filledSurface");
14
+ const dayStates_1 = require("./dayStates");
15
+ /** Internal month grid shared by Single/RangeDatePicker; not published from index.ts, so only reachable via a deep import. */
16
+ const CalendarPanel = ({ currentMonth, setCurrentMonth, today, isRange, tempDate, tempRangeStart, tempRangeEnd, isSameDay, isBefore, isAfter, minDate, maxDate, disablePastDates, disableFutureDates, disableToday, onDaySelect, hoveredDate, onDayHover, renderWeekdays, dayStates, renderDayContent, }) => {
15
17
  const theme = (0, useCustomTheme_1.useCustomTheme)();
16
18
  const rangeBg = theme.colors.primary.opacity[16];
17
19
  const isViewingCurrentMonth = currentMonth.getFullYear() === today.getFullYear() &&
@@ -51,6 +53,7 @@ const CalendarPanel = ({ currentMonth, setCurrentMonth, today, isRange, tempDate
51
53
  },
52
54
  };
53
55
  const renderDays = () => {
56
+ var _a;
54
57
  const monthStart = (0, date_fns_1.startOfMonth)(currentMonth);
55
58
  const monthEnd = (0, date_fns_1.endOfMonth)(currentMonth);
56
59
  const startDate = (0, date_fns_1.startOfWeek)(monthStart);
@@ -69,12 +72,17 @@ const CalendarPanel = ({ currentMonth, setCurrentMonth, today, isRange, tempDate
69
72
  const isSelected = !!(!isRange && tempDate && isSameDay(thisDay, tempDate));
70
73
  const isTentativeEnd = isEnd && isTentative;
71
74
  const circleSolid = !!(isSelected || (isRange && isStart) || (isEnd && !isTentative));
75
+ // Marking is not disabling: only the `disabled` state key blocks selection, and only
76
+ // because the caller asked for it by name.
77
+ const states = (_a = dayStates === null || dayStates === void 0 ? void 0 : dayStates(thisDay)) !== null && _a !== void 0 ? _a : [];
78
+ const stateVisual = states.length ? (0, dayStates_1.resolveDayStateVisual)(states, theme.colors) : null;
72
79
  const disabled = !isInCurrentMonth ||
73
80
  !!(minDate && isBefore(thisDay, minDate)) ||
74
81
  !!(maxDate && isAfter(thisDay, maxDate)) ||
75
82
  !!(disablePastDates && isBefore(thisDay, today) && !isSameDay(thisDay, today)) ||
76
83
  !!(disableFutureDates && isAfter(thisDay, today) && !isSameDay(thisDay, today)) ||
77
- !!(disableToday && isToday);
84
+ !!(disableToday && isToday) ||
85
+ !!(stateVisual === null || stateVisual === void 0 ? void 0 : stateVisual.blocksSelection);
78
86
  // Connected range band painted on the cell background; start/end use a
79
87
  // half gradient so the band meets the solid day circle cleanly.
80
88
  let cellBg;
@@ -88,19 +96,21 @@ const CalendarPanel = ({ currentMonth, setCurrentMonth, today, isRange, tempDate
88
96
  else if (isEnd)
89
97
  cellBg = `linear-gradient(to right, ${rangeBg} 50%, transparent 50%)`;
90
98
  }
99
+ // Selection feedback outranks a state tint — the band is what tells the user what they picked.
100
+ if (!cellBg && (stateVisual === null || stateVisual === void 0 ? void 0 : stateVisual.cellBg))
101
+ cellBg = stateVisual.cellBg;
91
102
  // Solid fill (selected/range-endpoint) needs the ink checked against that
92
103
  // specific fill — `primary[500]` doesn't reliably clear AA for white text on
93
104
  // every brand/mode (same gap the solid Button variant already accounts for).
94
- const solidFill = theme.colors.primary[500];
95
- const solidHoverFill = theme.colors.primary[600];
105
+ const primarySolid = (0, filledSurface_1.resolveFilledSurface)(theme.colors.primary, theme.colors);
106
+ const solidFill = primarySolid.fill;
107
+ const solidHoverFill = primarySolid.hoverFill;
96
108
  const circleColor = circleSolid
97
- ? (0, accentText_1.onFilled)(solidFill, theme.colors.white, theme.colors.black)
109
+ ? primarySolid.color
98
110
  : isInCurrentMonth
99
111
  ? theme.colors.text[700]
100
112
  : theme.colors.gray[400];
101
- const circleHoverColor = circleSolid
102
- ? (0, accentText_1.onFilled)(solidHoverFill, theme.colors.white, theme.colors.black)
103
- : circleColor;
113
+ const circleHoverColor = circleSolid ? primarySolid.hoverColor : circleColor;
104
114
  const circleBorder = circleSolid
105
115
  ? "1px solid transparent"
106
116
  : isTentativeEnd
@@ -108,21 +118,33 @@ const CalendarPanel = ({ currentMonth, setCurrentMonth, today, isRange, tempDate
108
118
  : isToday
109
119
  ? `1px solid ${theme.colors.primary[300]}`
110
120
  : "1px solid transparent";
111
- days.push((0, jsx_runtime_1.jsx)(react_1.Box, { h: "2rem", display: "flex", alignItems: "center", justifyContent: "center", style: cellBg ? { background: cellBg } : undefined, children: (0, jsx_runtime_1.jsx)(react_1.Box, { as: "button", type: "button", disabled: disabled, onClick: () => !disabled && onDaySelect(new Date(thisDay)), onMouseEnter: () => !disabled && (onDayHover === null || onDayHover === void 0 ? void 0 : onDayHover(new Date(thisDay))), w: "1.75rem", h: "1.75rem", borderRadius: "full", display: "flex", alignItems: "center", justifyContent: "center", fontSize: "0.8125rem", fontWeight: circleSolid ? 600 : 500, lineHeight: "1", cursor: disabled ? "not-allowed" : "pointer", bg: circleSolid ? solidFill : "transparent", color: circleColor, border: circleBorder, transition: "background 0.12s, color 0.12s", _hover: disabled
121
+ // A filled circle owns its own ink (checked against that fill by `onFilled`), so a state
122
+ // never repaints a selected day — it would undo that contrast guarantee.
123
+ const dayColor = !circleSolid && (stateVisual === null || stateVisual === void 0 ? void 0 : stateVisual.color) ? stateVisual.color : circleColor;
124
+ const dayBorder = !circleSolid && (stateVisual === null || stateVisual === void 0 ? void 0 : stateVisual.border) ? stateVisual.border : circleBorder;
125
+ const customContent = renderDayContent ? renderDayContent(thisDay, states) : null;
126
+ const markerColor = customContent == null && (stateVisual === null || stateVisual === void 0 ? void 0 : stateVisual.markerColor) ? stateVisual.markerColor : null;
127
+ const hasDayOverlay = customContent != null || markerColor != null;
128
+ const dayLabel = dayStates
129
+ ? (0, dayStates_1.dayAccessibleName)((0, date_fns_1.format)(thisDay, "d MMMM yyyy"), states)
130
+ : (0, date_fns_1.format)(thisDay, "d MMMM yyyy");
131
+ days.push((0, jsx_runtime_1.jsx)(react_1.Box, { role: "gridcell", h: "2rem", display: "flex", alignItems: "center", justifyContent: "center", style: cellBg ? { background: cellBg } : undefined, children: (0, jsx_runtime_1.jsxs)(react_1.Box, { as: "button", type: "button", disabled: disabled, className: dayStates ? (0, dayStates_1.dayStateClassName)(states) : undefined, "aria-label": dayLabel, "aria-selected": isSelected || isStart || isEnd || undefined, "aria-current": isToday ? "date" : undefined, onClick: () => !disabled && onDaySelect(new Date(thisDay)), onMouseEnter: () => !disabled && (onDayHover === null || onDayHover === void 0 ? void 0 : onDayHover(new Date(thisDay))), position: hasDayOverlay ? "relative" : undefined, w: "1.75rem", h: "1.75rem", borderRadius: "full", display: "flex", alignItems: "center", justifyContent: "center", fontSize: "0.8125rem", fontWeight: circleSolid ? 600 : 500, lineHeight: "1", cursor: disabled ? "not-allowed" : "pointer", bg: circleSolid ? solidFill : "transparent", color: dayColor, textDecoration: (stateVisual === null || stateVisual === void 0 ? void 0 : stateVisual.strikethrough) ? "line-through" : undefined, border: dayBorder, transition: "background 0.12s, color 0.12s", _hover: disabled
112
132
  ? {}
113
133
  : circleSolid
114
134
  ? { bg: solidHoverFill, color: circleHoverColor }
115
- : { bg: rangeBg }, children: (0, date_fns_1.format)(thisDay, "d") }) }, thisDay.toString()));
135
+ : { bg: rangeBg }, children: [(0, date_fns_1.format)(thisDay, "d"), hasDayOverlay && ((0, jsx_runtime_1.jsx)(react_1.Box, { as: "span", className: `${dayStates_1.DAY_CLASS}__content`, position: "absolute", left: 0, right: 0, bottom: "0.0625rem", display: "flex", alignItems: "flex-end", justifyContent: "center", lineHeight: "1", fontSize: "0.5rem",
136
+ // The overlay is decoration: clicks belong to the day button under it.
137
+ pointerEvents: "none", children: customContent !== null && customContent !== void 0 ? customContent : ((0, jsx_runtime_1.jsx)(react_1.Box, { as: "span", className: `${dayStates_1.DAY_CLASS}__marker`, w: "0.25rem", h: "0.25rem", borderRadius: "full", bg: markerColor })) }))] }) }, thisDay.toString()));
116
138
  day = (0, date_fns_1.addDays)(day, 1);
117
139
  }
118
- rows.push((0, jsx_runtime_1.jsx)(react_1.Grid, { templateColumns: "repeat(7, 1fr)", gap: 0, children: days }, day.toString()));
140
+ rows.push((0, jsx_runtime_1.jsx)(react_1.Box, { role: "row", display: "grid", gridTemplateColumns: "repeat(7, 1fr)", gap: 0, children: days }, day.toString()));
119
141
  }
120
142
  return rows;
121
143
  };
122
- return ((0, jsx_runtime_1.jsxs)(react_1.Box, { children: [(0, jsx_runtime_1.jsxs)(react_1.Box, { display: "flex", alignItems: "center", justifyContent: "space-between", mb: 2, gap: 1, children: [(0, jsx_runtime_1.jsx)(Button_1.default, { variant: "ghost", size: "xs", sx: { flexShrink: 0 }, onClick: () => setCurrentMonth((prev) => new Date(prev.getFullYear(), prev.getMonth() - 1, 1)), "aria-label": "Previous month", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronLeftIcon, { size: 16 }) }), (0, jsx_runtime_1.jsxs)(react_1.Box, { display: "flex", alignItems: "center", gap: 1.5, minW: 0, children: [(0, jsx_runtime_1.jsx)(react_1.Box, { as: "select", value: currentMonth.getMonth(), onChange: (e) => {
144
+ return ((0, jsx_runtime_1.jsxs)(react_1.Box, { children: [(0, jsx_runtime_1.jsxs)(react_1.Box, { display: "flex", alignItems: "center", justifyContent: "space-between", mb: 2, gap: 1, children: [(0, jsx_runtime_1.jsx)(Button_1.default, { variant: "ghost", size: "xs", sx: { flexShrink: 0 }, onClick: () => setCurrentMonth((prev) => new Date(prev.getFullYear(), prev.getMonth() - 1, 1)), "aria-label": "Previous month", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronLeftIcon, { size: 16 }) }), (0, jsx_runtime_1.jsxs)(react_1.Box, { display: "flex", alignItems: "center", gap: 1.5, minW: 0, children: [(0, jsx_runtime_1.jsx)(react_1.Box, { as: "select", "aria-label": "Month", value: currentMonth.getMonth(), onChange: (e) => {
123
145
  const newMonth = parseInt(e.target.value, 10);
124
146
  setCurrentMonth((prev) => new Date(prev.getFullYear(), newMonth, 1));
125
- }, ...selectStyles, children: Array.from({ length: 12 }).map((_, i) => ((0, jsx_runtime_1.jsx)("option", { value: i, children: (0, date_fns_1.format)(new Date(2000, i, 1), "MMMM") }, i))) }), (0, jsx_runtime_1.jsx)(react_1.Box, { as: "select", value: currentMonth.getFullYear(), onChange: (e) => {
147
+ }, ...selectStyles, children: Array.from({ length: 12 }).map((_, i) => ((0, jsx_runtime_1.jsx)("option", { value: i, children: (0, date_fns_1.format)(new Date(2000, i, 1), "MMMM") }, i))) }), (0, jsx_runtime_1.jsx)(react_1.Box, { as: "select", "aria-label": "Year", value: currentMonth.getFullYear(), onChange: (e) => {
126
148
  const newYear = parseInt(e.target.value, 10);
127
149
  setCurrentMonth((prev) => new Date(newYear, prev.getMonth(), 1));
128
150
  }, ...selectStyles, children: Array.from({ length: 100 }).map((_, i) => {
@@ -133,7 +155,7 @@ const CalendarPanel = ({ currentMonth, setCurrentMonth, today, isRange, tempDate
133
155
  if (!disableToday) {
134
156
  onDaySelect(new Date(today));
135
157
  }
136
- }, "aria-label": "Today", sx: { fontSize: "0.7rem", px: 2, flexShrink: 0 }, isDisabled: disableToday, children: "Today" })), (0, jsx_runtime_1.jsx)(Button_1.default, { variant: "ghost", size: "xs", sx: { flexShrink: 0 }, onClick: () => setCurrentMonth((prev) => new Date(prev.getFullYear(), prev.getMonth() + 1, 1)), "aria-label": "Next month", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronRightIcon, { size: 16 }) })] })] }), renderWeekdays !== null && renderWeekdays !== void 0 ? renderWeekdays : ((0, jsx_runtime_1.jsx)(react_1.Grid, { templateColumns: "repeat(7, 1fr)", gap: 0, mb: 1, children: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map((day) => ((0, jsx_runtime_1.jsx)(react_1.Box, { textAlign: "center", fontSize: "0.7rem", fontWeight: 600, textTransform: "uppercase", letterSpacing: "0.02em", color: theme.colors.textMuted, py: 1, children: day }, day))) })), (0, jsx_runtime_1.jsx)(react_1.Box, { onMouseLeave: () => onDayHover === null || onDayHover === void 0 ? void 0 : onDayHover(null), children: renderDays() })] }));
158
+ }, "aria-label": "Today", sx: { fontSize: "0.7rem", px: 2, flexShrink: 0 }, isDisabled: disableToday, children: "Today" })), (0, jsx_runtime_1.jsx)(Button_1.default, { variant: "ghost", size: "xs", sx: { flexShrink: 0 }, onClick: () => setCurrentMonth((prev) => new Date(prev.getFullYear(), prev.getMonth() + 1, 1)), "aria-label": "Next month", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronRightIcon, { size: 16 }) })] })] }), (0, jsx_runtime_1.jsxs)(react_1.Box, { role: "grid", "aria-label": "Calendar", children: [renderWeekdays !== null && renderWeekdays !== void 0 ? renderWeekdays : ((0, jsx_runtime_1.jsx)(react_1.Box, { role: "row", display: "grid", gridTemplateColumns: "repeat(7, 1fr)", gap: 0, mb: 1, children: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map((day) => ((0, jsx_runtime_1.jsx)(react_1.Box, { role: "columnheader", textAlign: "center", fontSize: "0.7rem", fontWeight: 600, textTransform: "uppercase", letterSpacing: "0.02em", color: theme.colors.textMuted, py: 1, children: day }, day))) })), (0, jsx_runtime_1.jsx)(react_1.Box, { onMouseLeave: () => onDayHover === null || onDayHover === void 0 ? void 0 : onDayHover(null), children: renderDays() })] })] }));
137
159
  };
138
160
  exports.CalendarPanel = CalendarPanel;
139
161
  exports.default = exports.CalendarPanel;
@@ -1,2 +1,3 @@
1
1
  import { DatePickerProps } from "./DatePickerProps";
2
+ /** Legacy pre-split implementation, still used internally by Table's filter pane — new code should use ThemeDatePicker (exported as DatePicker). */
2
3
  export default function CustomDatePicker(props: DatePickerProps): import("react/jsx-runtime").JSX.Element;
@@ -24,6 +24,7 @@ const inferPickerTypeFromFormat = (formatStr) => {
24
24
  return "time";
25
25
  return "date";
26
26
  };
27
+ /** Legacy pre-split implementation, still used internally by Table's filter pane — new code should use ThemeDatePicker (exported as DatePicker). */
27
28
  function CustomDatePicker(props) {
28
29
  var _a, _b;
29
30
  const { id, name, label, isRequired, isInformation, informationMessage, error, errorMessage, helperText, placeholderText = "Select a date", dateFormat = "dd/MM/yyyy", pickerType, minDate, maxDate, disableFutureDates, disablePastDates, isRange, autoComplete = "off", disabled, width = "100%", disableToday = false, size = "md", } = props;
@@ -1,4 +1,7 @@
1
+ import type { DayStates, RenderDayContent } from "./dayStates";
2
+ /** Governs which UI renders inside the popover — date grid, time selects, or both; inferred from dateFormat when omitted. */
1
3
  export type PickerType = "date" | "time" | "datetime";
4
+ /** Fields shared by both picker variants — combined via `&` with Single/RangeDatePickerProps below, never used on its own. */
2
5
  export type BaseDatePickerProps = {
3
6
  id?: string;
4
7
  name?: string;
@@ -11,6 +14,7 @@ export type BaseDatePickerProps = {
11
14
  helperText?: string;
12
15
  placeholderText?: string;
13
16
  dateFormat?: string;
17
+ /** Ignored by RangeDatePicker — only `dateFormat`'s time tokens decide whether time inputs render, never this. */
14
18
  pickerType?: PickerType;
15
19
  minDate?: Date;
16
20
  maxDate?: Date;
@@ -23,6 +27,7 @@ export type BaseDatePickerProps = {
23
27
  /** Chakra `Input` / `InputGroup` size for the field and chevron (calendar/clock) scale. */
24
28
  size?: "xs" | "sm" | "md" | "lg";
25
29
  };
30
+ /** Single-date variant — `isRange` must be false or omitted; this is the discriminant the DatePickerProps union switches on. */
26
31
  export type SingleDatePickerProps = BaseDatePickerProps & {
27
32
  isRange?: false;
28
33
  selectedDate?: Date | null;
@@ -30,18 +35,43 @@ export type SingleDatePickerProps = BaseDatePickerProps & {
30
35
  value?: Date | null;
31
36
  onChange: (date: Date | null) => void;
32
37
  };
38
+ /** A date range's two endpoints, each independently nullable — used for both the controlled value and onChange's payload. */
33
39
  export type RangeDate = {
34
40
  from: Date | null;
35
41
  to: Date | null;
36
42
  };
43
+ /** Range variant — `isRange` must be true; adds dayStates/renderDayContent day-marking on top of the shared base fields. */
37
44
  export type RangeDatePickerProps = BaseDatePickerProps & {
38
45
  isRange: true;
39
46
  selectedDate?: RangeDate | null;
40
47
  /** Alias for `selectedDate` (legacy / form libraries). */
41
48
  value?: RangeDate | null;
49
+ /** Only fires via Apply or Escape once both ends are picked — clicking outside the popover discards the pending range instead of committing it. */
42
50
  onChange: (range: RangeDate | null) => void;
51
+ /**
52
+ * Marks individual days with zero or more state keys — `["weekly-off"]`, `["Onam", "holiday"]`,
53
+ * `["excluded"]`. The keys in `DAY_STATE_KEYS` (`weekly-off`, `holiday`, `optional-holiday`,
54
+ * `excluded`, `disabled`) carry built-in, token-driven styling; any other key is announced to a
55
+ * screen reader but left unstyled, which is how a day gets named without a second prop.
56
+ *
57
+ * Marking is not disabling: a marked day stays selectable unless the caller also returns
58
+ * `"disabled"`, or blocks the day with `minDate`/`maxDate`/`disablePastDates`/`disableFutureDates`.
59
+ *
60
+ * Supplying this also spells each day's accessible name out in full — "16 September 2025, Onam,
61
+ * holiday" instead of "16". Called once per rendered day (42 per month), so keep it cheap and pure.
62
+ */
63
+ dayStates?: DayStates;
64
+ /**
65
+ * Custom content rendered inside the day cell, centred under the day number — a dot, a short
66
+ * label, a tooltip trigger. Receives that day's resolved state keys. Returning a node replaces
67
+ * the built-in marker dot for that day; the number, the accessible name and hit target are
68
+ * unchanged (the overlay does not take pointer events).
69
+ */
70
+ renderDayContent?: RenderDayContent;
43
71
  };
72
+ /** Discriminated union consumed by ThemeDatePicker (exported as DatePicker) — `isRange` selects Single vs Range at the type level. */
44
73
  export type DatePickerProps = SingleDatePickerProps | RangeDatePickerProps;
74
+ /** Props for the Hour/Minute/AM-PM trio; `dateFormat` only toggles 12h vs 24h display — seconds aren't supported. */
45
75
  export type TimePickerProps = {
46
76
  date: Date;
47
77
  onChange: (date: Date) => void;
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
2
  import { RangeDatePickerProps } from "./DatePickerProps";
3
+ /** Two-endpoint range field; `onChange` fires only via Apply/Escape, never on a bare day click or on outside-click close. */
3
4
  export declare const RangeDatePicker: React.FC<RangeDatePickerProps>;
4
5
  export default RangeDatePicker;
@@ -18,19 +18,24 @@ const useCustomTheme_1 = require("../../Theme/useCustomTheme");
18
18
  const textInputIconSize_1 = require("../Input/textInputIconSize");
19
19
  const TimePicker_1 = __importDefault(require("./TimePicker"));
20
20
  const TimePickerInput_1 = require("./TimePickerInput");
21
+ const useExclusiveOverlay_1 = require("../../Hooks/useExclusiveOverlay");
21
22
  // helper to set time on date while preserving date part
22
23
  const setTimeFrom = (base, time) => {
23
24
  const b = base ? new Date(base) : new Date();
24
25
  return new Date(b.getFullYear(), b.getMonth(), b.getDate(), time.getHours(), time.getMinutes(), time.getSeconds(), 0);
25
26
  };
27
+ /** Two-endpoint range field; `onChange` fires only via Apply/Escape, never on a bare day click or on outside-click close. */
26
28
  const RangeDatePicker = (props) => {
27
29
  var _a, _b, _c, _d;
28
- const { id, name, label, isRequired, isInformation, informationMessage, error, errorMessage, helperText, placeholderText, dateFormat = "dd/MM/yyyy", minDate, maxDate, disableFutureDates, disablePastDates, autoComplete = "off", disabled, width = "100%", disableToday = false, size = "md", } = props;
30
+ const { id, name, label, isRequired, isInformation, informationMessage, error, errorMessage, helperText, placeholderText, dateFormat = "dd/MM/yyyy", minDate, maxDate, disableFutureDates, disablePastDates, autoComplete = "off", disabled, width = "100%", disableToday = false, size = "md", dayStates, renderDayContent, } = props;
29
31
  const theme = (0, useCustomTheme_1.useCustomTheme)();
30
32
  const sizeKey = typeof size === "string" ? size : "md";
31
33
  const calendarIconPx = (0, textInputIconSize_1.getTextInputIconSizePx)(sizeKey);
32
34
  const calendarIconWrapperSx = (0, textInputIconSize_1.getTextInputIconWrapperSx)(sizeKey);
33
35
  const { isOpen, onOpen, onClose } = (0, react_2.useDisclosure)();
36
+ const requestExclusiveOpen = (0, useExclusiveOverlay_1.useExclusiveOverlay)(isOpen, onClose);
37
+ const errorFieldId = id ? `${id}-error` : undefined;
38
+ const calendarLabel = label !== null && label !== void 0 ? label : "Choose date range";
34
39
  const inputRef = (0, react_1.useRef)(null);
35
40
  const triggerRef = (0, react_1.useRef)(null);
36
41
  const popoverRef = (0, react_1.useRef)(null);
@@ -97,8 +102,20 @@ const RangeDatePicker = (props) => {
97
102
  onClose();
98
103
  };
99
104
  const handleOpen = () => {
105
+ requestExclusiveOpen();
100
106
  onOpen();
101
107
  };
108
+ const handleInputKeyDown = (e) => {
109
+ if (e.key === "Escape" && isOpen) {
110
+ e.preventDefault();
111
+ onClose();
112
+ return;
113
+ }
114
+ if (!isOpen && (e.key === "ArrowDown" || e.key === "Enter")) {
115
+ e.preventDefault();
116
+ handleOpen();
117
+ }
118
+ };
102
119
  const handleDaySelect = (day) => {
103
120
  const updated = new Date(day);
104
121
  if (selectingStart) {
@@ -165,7 +182,7 @@ const RangeDatePicker = (props) => {
165
182
  return `${(0, date_fns_1.format)(tempRangeStart, dateFormat)} -`;
166
183
  return "";
167
184
  }, [inputValue, tempRangeStart, tempRangeEnd, dateFormat]);
168
- return ((0, jsx_runtime_1.jsxs)(react_2.FormControl, { id: id, isInvalid: error, isRequired: isRequired, isDisabled: disabled, width: width, children: [label && ((0, jsx_runtime_1.jsx)(FormLabel_1.TextLabel, { label: label, isRequired: isRequired, isInformation: isInformation, informationMessage: informationMessage })), (0, jsx_runtime_1.jsxs)(react_2.Popover, { isLazy: true, isOpen: isOpen, onClose: finalize, placement: "bottom-start", closeOnBlur: false, returnFocusOnClose: false, children: [(0, jsx_runtime_1.jsx)(react_2.PopoverTrigger, { children: (0, jsx_runtime_1.jsx)(react_2.Box, { ref: triggerRef, as: "div", children: (0, jsx_runtime_1.jsxs)(react_2.InputGroup, { size: sizeKey, children: [(0, jsx_runtime_1.jsx)(react_2.Input, { ref: inputRef, id: id, name: name, size: sizeKey, placeholder: placeholder, value: displayValue, readOnly: true, isDisabled: disabled, autoComplete: autoComplete, onFocus: () => {
185
+ return ((0, jsx_runtime_1.jsxs)(react_2.FormControl, { id: id, isInvalid: error, isRequired: isRequired, isDisabled: disabled, width: width, children: [label && ((0, jsx_runtime_1.jsx)(FormLabel_1.TextLabel, { label: label, id: id, isRequired: isRequired, isInformation: isInformation, informationMessage: informationMessage })), (0, jsx_runtime_1.jsxs)(react_2.Popover, { isLazy: true, isOpen: isOpen, onClose: finalize, placement: "bottom-start", closeOnBlur: false, returnFocusOnClose: true, children: [(0, jsx_runtime_1.jsx)(react_2.PopoverAnchor, { children: (0, jsx_runtime_1.jsx)(react_2.Box, { ref: triggerRef, as: "div", children: (0, jsx_runtime_1.jsxs)(react_2.InputGroup, { size: sizeKey, children: [(0, jsx_runtime_1.jsx)(react_2.Input, { ref: inputRef, id: id, name: name, size: sizeKey, placeholder: placeholder, value: displayValue, readOnly: true, isDisabled: disabled, isInvalid: error, isRequired: isRequired, "aria-describedby": error && errorMessage ? errorFieldId : undefined, autoComplete: autoComplete, onKeyDown: handleInputKeyDown, onFocus: () => {
169
186
  if (!isOpen)
170
187
  handleOpen();
171
188
  }, onClick: () => {
@@ -178,10 +195,18 @@ const RangeDatePicker = (props) => {
178
195
  : `0 0 0 1px ${theme.colors.primary[500]}`,
179
196
  }, _hover: {
180
197
  borderColor: error ? theme.colors.semanticText.error : undefined,
181
- }, cursor: "pointer" }), (0, jsx_runtime_1.jsx)(react_2.InputRightElement, { height: "100%", display: "flex", alignItems: "center", pointerEvents: "auto", style: { cursor: "pointer" }, onClick: () => (isOpen ? onClose() : handleOpen()), children: (0, jsx_runtime_1.jsx)(react_2.Box, { as: "span", sx: calendarIconWrapperSx, children: (0, jsx_runtime_1.jsx)(lucide_react_1.CalendarIcon, { size: calendarIconPx, color: theme.colors.textMuted }) }) })] }) }) }), (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { w: "18rem", maxW: "18rem", p: 3, ref: popoverRef, boxShadow: "lg", borderRadius: "xl", border: "1px solid", borderColor: theme.colors.boxborder[500], bg: theme.colors.background[50], children: (0, jsx_runtime_1.jsxs)(react_2.PopoverBody, { p: 0, children: [(0, jsx_runtime_1.jsx)(react_2.Box, { display: "flex", flexWrap: "wrap", gap: 2, mb: 3, children: presets.map((p) => ((0, jsx_runtime_1.jsx)(Button_1.default, { size: "xs", variant: "outline", colorScheme: "gray", sx: { flex: "1 1 auto" }, onClick: () => {
198
+ }, cursor: "pointer" }), (0, jsx_runtime_1.jsx)(react_2.InputRightElement, { height: "100%", display: "flex", alignItems: "center", pointerEvents: "auto", children: (0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": "Open calendar", variant: "ghost", size: "sm", minW: "auto", h: "auto", isDisabled: disabled, onClick: (e) => {
199
+ e.stopPropagation();
200
+ if (!isOpen) {
201
+ handleOpen();
202
+ }
203
+ else {
204
+ onClose();
205
+ }
206
+ }, icon: (0, jsx_runtime_1.jsx)(react_2.Box, { as: "span", sx: calendarIconWrapperSx, children: (0, jsx_runtime_1.jsx)(lucide_react_1.CalendarIcon, { size: calendarIconPx, color: theme.colors.textMuted }) }) }) })] }) }) }), (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { w: "18rem", maxW: "18rem", p: 3, ref: popoverRef, boxShadow: "lg", borderRadius: "xl", bg: theme.colors.background[50], role: "dialog", "aria-label": calendarLabel, children: (0, jsx_runtime_1.jsxs)(react_2.PopoverBody, { p: 0, children: [(0, jsx_runtime_1.jsx)(react_2.Box, { display: "flex", flexWrap: "wrap", gap: 2, mb: 3, children: presets.map((p) => ((0, jsx_runtime_1.jsx)(Button_1.default, { size: "xs", variant: "outline", colorScheme: "gray", sx: { flex: "1 1 auto" }, onClick: () => {
182
207
  const [from, to] = p.getRange();
183
208
  applyPreset(from, to);
184
- }, children: p.label }, p.label))) }), (0, jsx_runtime_1.jsx)(CalendarPanel_1.default, { currentMonth: currentMonth, setCurrentMonth: (updater) => setCurrentMonthState((prev) => updater(prev)), today: today, isRange: true, tempDate: null, tempRangeStart: tempRangeStart, tempRangeEnd: tempRangeEnd, hoveredDate: hoveredDate, onDayHover: setHoveredDate, isSameDay: date_fns_1.isSameDay, isBefore: date_fns_1.isBefore, isAfter: date_fns_1.isAfter, minDate: minDate, maxDate: maxDate, disablePastDates: disablePastDates, disableFutureDates: disableFutureDates, disableToday: disableToday, onDaySelect: handleDaySelect }), formatHasTime && ((0, jsx_runtime_1.jsxs)(react_2.Box, { mt: 3, display: "grid", gridTemplateColumns: "1fr", gap: 2, children: [(0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsx)(react_2.Box, { fontSize: "xs", color: theme.colors.textMuted, mb: 1, children: "Start time" }), shouldUseSelectTimePicker ? ((0, jsx_runtime_1.jsx)(TimePicker_1.default, { date: startTimeBaseDate, onChange: (updated) => {
209
+ }, children: p.label }, p.label))) }), (0, jsx_runtime_1.jsx)(CalendarPanel_1.default, { currentMonth: currentMonth, setCurrentMonth: (updater) => setCurrentMonthState((prev) => updater(prev)), today: today, isRange: true, tempDate: null, tempRangeStart: tempRangeStart, tempRangeEnd: tempRangeEnd, hoveredDate: hoveredDate, onDayHover: setHoveredDate, isSameDay: date_fns_1.isSameDay, isBefore: date_fns_1.isBefore, isAfter: date_fns_1.isAfter, minDate: minDate, maxDate: maxDate, disablePastDates: disablePastDates, disableFutureDates: disableFutureDates, disableToday: disableToday, onDaySelect: handleDaySelect, dayStates: dayStates, renderDayContent: renderDayContent }), formatHasTime && ((0, jsx_runtime_1.jsxs)(react_2.Box, { mt: 3, display: "grid", gridTemplateColumns: "1fr", gap: 2, children: [(0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsx)(react_2.Box, { fontSize: "xs", color: theme.colors.textMuted, mb: 1, children: "Start time" }), shouldUseSelectTimePicker ? ((0, jsx_runtime_1.jsx)(TimePicker_1.default, { date: startTimeBaseDate, onChange: (updated) => {
185
210
  if (!tempRangeStart) {
186
211
  setTempRangeStart(updated);
187
212
  return;
@@ -207,7 +232,7 @@ const RangeDatePicker = (props) => {
207
232
  return;
208
233
  }
209
234
  setTempRangeEnd(setTimeFrom(endTimeBaseDate, t));
210
- }, dateFormat: timePickerFormat, disabled: disabled || !tempRangeEnd, size: sizeKey }))] })] })), (0, jsx_runtime_1.jsxs)(react_2.Box, { display: "flex", justifyContent: "space-between", alignItems: "center", mt: 3, pt: 3, borderTop: "1px solid", borderColor: theme.colors.boxborder[200], children: [(0, jsx_runtime_1.jsx)(Button_1.default, { size: "sm", variant: "ghost", colorScheme: "gray", onClick: handleClear, children: "Clear" }), (0, jsx_runtime_1.jsx)(Button_1.default, { size: "sm", variant: "gradient", onClick: requestClose, children: "Apply" })] })] }) })] }), error && errorMessage && (0, jsx_runtime_1.jsx)(ErrorMessage_1.default, { errorMessage: errorMessage }), helperText && !error && (0, jsx_runtime_1.jsx)(HelperText_1.default, { helperText: helperText })] }));
235
+ }, dateFormat: timePickerFormat, disabled: disabled || !tempRangeEnd, size: sizeKey }))] })] })), (0, jsx_runtime_1.jsxs)(react_2.Box, { display: "flex", justifyContent: "space-between", alignItems: "center", mt: 3, pt: 3, borderTop: "1px solid", borderColor: theme.colors.boxborder[200], children: [(0, jsx_runtime_1.jsx)(Button_1.default, { size: "sm", variant: "ghost", colorScheme: "gray", onClick: handleClear, children: "Clear" }), (0, jsx_runtime_1.jsx)(Button_1.default, { size: "sm", variant: "gradient", onClick: requestClose, children: "Apply" })] })] }) })] }), error && errorMessage && ((0, jsx_runtime_1.jsx)(ErrorMessage_1.default, { id: errorFieldId, errorMessage: errorMessage })), helperText && !error && (0, jsx_runtime_1.jsx)(HelperText_1.default, { helperText: helperText })] }));
211
236
  };
212
237
  exports.RangeDatePicker = RangeDatePicker;
213
238
  exports.default = exports.RangeDatePicker;
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
2
  import { SingleDatePickerProps } from "./DatePickerProps";
3
+ /** Date/datetime field with typed-mask input + calendar popover. Import via `DatePicker` (ThemeDatePicker) — direct import bypasses its isRange/pickerType routing. */
3
4
  export declare const SingleDatePicker: React.FC<SingleDatePickerProps>;
4
5
  export default SingleDatePicker;