pixelize-design-library 2.4.2-beta.3 → 2.4.2-beta.31

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 (284) hide show
  1. package/dist/Components/Accordion/Accordion.js +5 -3
  2. package/dist/Components/AppSwitcher/AppMark.d.ts +19 -0
  3. package/dist/Components/AppSwitcher/AppMark.js +62 -0
  4. package/dist/Components/AppSwitcher/AppSwitcher.d.ts +4 -0
  5. package/dist/Components/AppSwitcher/AppSwitcher.js +315 -0
  6. package/dist/Components/AppSwitcher/AppSwitcherProps.d.ts +64 -0
  7. package/dist/Components/AppSwitcher/AppSwitcherProps.js +86 -0
  8. package/dist/Components/AppSwitcher/useAppSwitcherShortcut.d.ts +3 -0
  9. package/dist/Components/AppSwitcher/useAppSwitcherShortcut.js +31 -0
  10. package/dist/Components/AppearanceSettings/AppearanceSettings.js +2 -1
  11. package/dist/Components/Button/Button.d.ts +2 -2
  12. package/dist/Components/Button/Button.js +4 -3
  13. package/dist/Components/Button/Button.styles.js +39 -25
  14. package/dist/Components/Button/ButtonProps.d.ts +6 -1
  15. package/dist/Components/ButtonGroupIcon/ButtonGroupIcon.js +6 -6
  16. package/dist/Components/Card/Card.d.ts +1 -1
  17. package/dist/Components/Card/Card.js +2 -2
  18. package/dist/Components/Card/CardProps.d.ts +0 -1
  19. package/dist/Components/Card/PaymentCard/PaymentCard.js +7 -7
  20. package/dist/Components/Checkbox/Checkbox.js +1 -1
  21. package/dist/Components/Checkbox/Checkbox.styles.js +12 -7
  22. package/dist/Components/Common/fieldStyles.js +1 -1
  23. package/dist/Components/CopyButton/CopyButton.js +6 -2
  24. package/dist/Components/CustomModulesTable/EditModuleModal.js +1 -1
  25. package/dist/Components/DatePicker/CalendarPanel.d.ts +5 -0
  26. package/dist/Components/DatePicker/CalendarPanel.js +24 -5
  27. package/dist/Components/DatePicker/DatePickerProps.d.ts +21 -0
  28. package/dist/Components/DatePicker/RangeDatePicker.js +4 -4
  29. package/dist/Components/DatePicker/SingleDatePicker.js +2 -2
  30. package/dist/Components/DatePicker/TimeOnlyPicker.js +1 -1
  31. package/dist/Components/DatePicker/dayStates.d.ts +56 -0
  32. package/dist/Components/DatePicker/dayStates.js +87 -0
  33. package/dist/Components/Dropdown/DropDown.js +7 -15
  34. package/dist/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.js +1 -1
  35. package/dist/Components/EmptyState/EmptyState.js +2 -1
  36. package/dist/Components/FilePreview/FilePreview.js +1 -1
  37. package/dist/Components/FileUpload/FileUpload.js +5 -4
  38. package/dist/Components/FileUpload/FileUploadProps.d.ts +3 -1
  39. package/dist/Components/FileUpload/constants.js +1 -0
  40. package/dist/Components/FilterSidebar/FilterSidebar.js +4 -4
  41. package/dist/Components/FilterSidebar/filterHoverStyle.d.ts +0 -9
  42. package/dist/Components/FilterSidebar/filterHoverStyle.js +4 -10
  43. package/dist/Components/Form/FormWrapper.js +1 -1
  44. package/dist/Components/Header/components/mobileMenu.js +12 -3
  45. package/dist/Components/Input/TextInput.styles.js +6 -4
  46. package/dist/Components/InputTextArea/InputTextArea.style.js +5 -4
  47. package/dist/Components/KanbanBoard/KanbanBoard.js +5 -45
  48. package/dist/Components/LimitReachedModal/LimitReachedModal.js +4 -5
  49. package/dist/Components/Loading/Loading.js +15 -14
  50. package/dist/Components/MultiSelect/MultiSelect.js +1 -1
  51. package/dist/Components/NavigationBar/NavigationBar.js +3 -3
  52. package/dist/Components/NoteTextArea/NoteTextArea.js +9 -4
  53. package/dist/Components/NumberInput/NumberInput.js +3 -1
  54. package/dist/Components/NumberInput/NumberInput.styles.js +5 -4
  55. package/dist/Components/OrgSwitcher/OrgSwitcher.js +2 -2
  56. package/dist/Components/PdfViewer/PdfViewer.js +6 -1
  57. package/dist/Components/PinInput/PinInput.js +1 -1
  58. package/dist/Components/PlanPill/PlanPill.js +5 -5
  59. package/dist/Components/PlanPill/planPillGradient.d.ts +2 -14
  60. package/dist/Components/PlanPill/planPillGradient.js +3 -15
  61. package/dist/Components/Primitives/Primitives.d.ts +6 -0
  62. package/dist/Components/Primitives/Primitives.js +113 -0
  63. package/dist/Components/ProductCard/ProductPrice.js +1 -1
  64. package/dist/Components/ProductCard/ProductReview.js +6 -1
  65. package/dist/Components/ProductCard/ProductTags.js +1 -1
  66. package/dist/Components/ProfileCard/ProfileCard.js +1 -1
  67. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +1 -1
  68. package/dist/Components/RadioButton/RadioButton.js +3 -2
  69. package/dist/Components/Reorder/Reorder.js +1 -1
  70. package/dist/Components/ScrollToTop/ScrollToTop.js +2 -0
  71. package/dist/Components/ScrollbarBox/ScrollbarBox.d.ts +13 -0
  72. package/dist/Components/ScrollbarBox/ScrollbarBox.js +11 -0
  73. package/dist/Components/Search/Search.js +2 -2
  74. package/dist/Components/SearchSelect/SearchSelect.js +14 -9
  75. package/dist/Components/SegmentedControl/SegmentedControl.d.ts +2 -0
  76. package/dist/Components/SegmentedControl/SegmentedControl.js +58 -0
  77. package/dist/Components/SegmentedControl/SegmentedControlProps.d.ts +16 -0
  78. package/dist/Components/SegmentedControl/SegmentedControlProps.js +2 -0
  79. package/dist/Components/Select/Select.d.ts +1 -1
  80. package/dist/Components/Select/Select.js +4 -2
  81. package/dist/Components/Select/Select.styles.js +3 -2
  82. package/dist/Components/Select/SelectProps.d.ts +3 -0
  83. package/dist/Components/SelectSearch/SelectSearch.js +7 -4
  84. package/dist/Components/SelectV2/SelectV2.js +18 -14
  85. package/dist/Components/SideBar/SecondaryBar.js +1 -1
  86. package/dist/Components/SideBar/SideBar.js +1 -1
  87. package/dist/Components/SideBar/components/MenuPopoverContent.js +2 -2
  88. package/dist/Components/Slider/Slider.js +8 -1
  89. package/dist/Components/StageProgress/StageProgress.js +2 -9
  90. package/dist/Components/StageProgress/StepperStage.js +2 -2
  91. package/dist/Components/Table/Table.d.ts +1 -1
  92. package/dist/Components/Table/Table.js +17 -24
  93. package/dist/Components/Table/TableProps.d.ts +4 -0
  94. package/dist/Components/Table/components/Pagination.js +1 -1
  95. package/dist/Components/Table/components/TableActions.js +2 -2
  96. package/dist/Components/Table/components/TableBody.js +41 -12
  97. package/dist/Components/Table/components/TableGroupRow.js +1 -1
  98. package/dist/Components/Table/components/TableHeader.js +21 -8
  99. package/dist/Components/Table/components/TableSearch.js +1 -1
  100. package/dist/Components/Table/filters/ActiveFilters.js +2 -18
  101. package/dist/Components/Table/settings/ManageColumns.js +4 -17
  102. package/dist/Components/Table/settings/TableSettings.js +5 -11
  103. package/dist/Components/Table/variants/TableVariantContext.d.ts +4 -0
  104. package/dist/Components/Table/variants/TableVariantContext.js +17 -0
  105. package/dist/Components/Table/variants/classic.d.ts +6 -0
  106. package/dist/Components/Table/variants/classic.js +47 -0
  107. package/dist/Components/Table/variants/index.d.ts +7 -0
  108. package/dist/Components/Table/variants/index.js +27 -0
  109. package/dist/Components/Table/variants/pillInk.d.ts +6 -0
  110. package/dist/Components/Table/variants/pillInk.js +21 -0
  111. package/dist/Components/Table/variants/studio.d.ts +6 -0
  112. package/dist/Components/Table/variants/studio.js +50 -0
  113. package/dist/Components/Table/variants/tokens.d.ts +49 -0
  114. package/dist/Components/Table/variants/tokens.js +2 -0
  115. package/dist/Components/Tag/Tag.styles.js +9 -8
  116. package/dist/Components/Timeline/Timeline.js +2 -2
  117. package/dist/Components/Toaster/Toaster.js +1 -1
  118. package/dist/Components/Toggle/TableToggle.js +11 -7
  119. package/dist/Components/ToggleSwitch/ToggleSwitch.d.ts +2 -0
  120. package/dist/Components/ToggleSwitch/ToggleSwitch.js +18 -0
  121. package/dist/Components/ToggleSwitch/ToggleSwitchProps.d.ts +11 -0
  122. package/dist/Components/ToggleSwitch/ToggleSwitchProps.js +2 -0
  123. package/dist/Components/ToolTip/ToolTip.js +6 -6
  124. package/dist/Components/ToolTip/ToolTipProps.d.ts +3 -1
  125. package/dist/Components/Trail/TrailWorks.js +1 -1
  126. package/dist/Components/UpgradeButton/UpgradeButton.js +3 -3
  127. package/dist/Constants/Sidebar.js +3 -2
  128. package/dist/Theme/assertPalette.d.ts +1 -1
  129. package/dist/Theme/assertPalette.js +3 -2
  130. package/dist/Theme/chakra/Menu.styles.d.ts +3 -0
  131. package/dist/Theme/chakra/Menu.styles.js +5 -0
  132. package/dist/Theme/chakra/Popover.styles.d.ts +3 -0
  133. package/dist/Theme/chakra/Popover.styles.js +5 -1
  134. package/dist/Theme/chakra/componentStyles.d.ts +6 -0
  135. package/dist/Theme/chakra/componentStyles.js +5 -5
  136. package/dist/Theme/chakra/createBrandTheme.js +10 -16
  137. package/dist/Theme/chakra/focusRing.styles.d.ts +52 -0
  138. package/dist/Theme/chakra/focusRing.styles.js +46 -0
  139. package/dist/Theme/provider/ThemeSwitcher.js +5 -2
  140. package/dist/Theme/tokens/brands/index.js +6 -1
  141. package/dist/Theme/tokens/brands/zinc/palette.dark.d.ts +1 -0
  142. package/dist/Theme/tokens/builders/buildDarkPalette.js +6 -1
  143. package/dist/Theme/tokens/builders/chartColorsFromTheme.js +1 -1
  144. package/dist/Theme/tokens/builders/focusRing.d.ts +52 -0
  145. package/dist/Theme/tokens/builders/focusRing.js +92 -0
  146. package/dist/Theme/tokens/builders/gradientInk.d.ts +22 -0
  147. package/dist/Theme/tokens/builders/gradientInk.js +28 -0
  148. package/dist/Theme/tokens/builders/index.d.ts +4 -0
  149. package/dist/Theme/tokens/builders/index.js +4 -0
  150. package/dist/Theme/tokens/builders/outlineRung.d.ts +46 -3
  151. package/dist/Theme/tokens/builders/outlineRung.js +101 -5
  152. package/dist/Theme/tokens/builders/placeholderInk.d.ts +19 -0
  153. package/dist/Theme/tokens/builders/placeholderInk.js +35 -0
  154. package/dist/Theme/tokens/builders/resolvedRungs.d.ts +5 -1
  155. package/dist/Theme/tokens/builders/resolvedRungs.js +7 -2
  156. package/dist/Theme/tokens/builders/rowStates.d.ts +13 -0
  157. package/dist/Theme/tokens/builders/rowStates.js +19 -0
  158. package/dist/Theme/tokens/builders/scrollbar.d.ts +12 -0
  159. package/dist/Theme/tokens/builders/scrollbar.js +57 -0
  160. package/dist/Theme/tokens/builders/solidFillRung.d.ts +4 -0
  161. package/dist/Theme/tokens/builders/solidFillRung.js +33 -0
  162. package/dist/Theme/tokens/builders/surfaceRungs.d.ts +5 -0
  163. package/dist/Theme/tokens/builders/surfaceRungs.js +20 -5
  164. package/dist/Theme/tokens/types.d.ts +21 -1
  165. package/dist/esm/Components/Accordion/Accordion.js +5 -3
  166. package/dist/esm/Components/AppSwitcher/AppMark.js +56 -0
  167. package/dist/esm/Components/AppSwitcher/AppSwitcher.js +280 -0
  168. package/dist/esm/Components/AppSwitcher/AppSwitcherProps.js +78 -0
  169. package/dist/esm/Components/AppSwitcher/useAppSwitcherShortcut.js +27 -0
  170. package/dist/esm/Components/AppearanceSettings/AppearanceSettings.js +2 -1
  171. package/dist/esm/Components/Button/Button.js +5 -4
  172. package/dist/esm/Components/Button/Button.styles.js +40 -26
  173. package/dist/esm/Components/ButtonGroupIcon/ButtonGroupIcon.js +6 -6
  174. package/dist/esm/Components/Card/Card.js +2 -2
  175. package/dist/esm/Components/Card/PaymentCard/PaymentCard.js +7 -7
  176. package/dist/esm/Components/Checkbox/Checkbox.js +1 -1
  177. package/dist/esm/Components/Checkbox/Checkbox.styles.js +13 -8
  178. package/dist/esm/Components/Common/fieldStyles.js +1 -1
  179. package/dist/esm/Components/CopyButton/CopyButton.js +7 -3
  180. package/dist/esm/Components/CustomModulesTable/EditModuleModal.js +1 -1
  181. package/dist/esm/Components/DatePicker/CalendarPanel.js +24 -5
  182. package/dist/esm/Components/DatePicker/RangeDatePicker.js +4 -4
  183. package/dist/esm/Components/DatePicker/SingleDatePicker.js +2 -2
  184. package/dist/esm/Components/DatePicker/TimeOnlyPicker.js +1 -1
  185. package/dist/esm/Components/DatePicker/dayStates.js +79 -0
  186. package/dist/esm/Components/Dropdown/DropDown.js +7 -15
  187. package/dist/esm/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.js +1 -1
  188. package/dist/esm/Components/EmptyState/EmptyState.js +2 -1
  189. package/dist/esm/Components/FilePreview/FilePreview.js +1 -1
  190. package/dist/esm/Components/FileUpload/FileUpload.js +6 -5
  191. package/dist/esm/Components/FileUpload/constants.js +1 -0
  192. package/dist/esm/Components/FilterSidebar/FilterSidebar.js +4 -4
  193. package/dist/esm/Components/FilterSidebar/filterHoverStyle.js +4 -10
  194. package/dist/esm/Components/Form/FormWrapper.js +1 -1
  195. package/dist/esm/Components/Header/components/mobileMenu.js +12 -3
  196. package/dist/esm/Components/Input/TextInput.styles.js +6 -4
  197. package/dist/esm/Components/InputTextArea/InputTextArea.style.js +5 -4
  198. package/dist/esm/Components/KanbanBoard/KanbanBoard.js +5 -45
  199. package/dist/esm/Components/LimitReachedModal/LimitReachedModal.js +4 -5
  200. package/dist/esm/Components/Loading/Loading.js +12 -11
  201. package/dist/esm/Components/MultiSelect/MultiSelect.js +1 -1
  202. package/dist/esm/Components/NavigationBar/NavigationBar.js +3 -3
  203. package/dist/esm/Components/NoteTextArea/NoteTextArea.js +9 -4
  204. package/dist/esm/Components/NumberInput/NumberInput.js +4 -2
  205. package/dist/esm/Components/NumberInput/NumberInput.styles.js +5 -4
  206. package/dist/esm/Components/OrgSwitcher/OrgSwitcher.js +2 -2
  207. package/dist/esm/Components/PdfViewer/PdfViewer.js +6 -1
  208. package/dist/esm/Components/PinInput/PinInput.js +1 -1
  209. package/dist/esm/Components/PlanPill/PlanPill.js +6 -6
  210. package/dist/esm/Components/PlanPill/planPillGradient.js +3 -15
  211. package/dist/esm/Components/Primitives/Primitives.js +6 -0
  212. package/dist/esm/Components/ProductCard/ProductPrice.js +1 -1
  213. package/dist/esm/Components/ProductCard/ProductReview.js +6 -1
  214. package/dist/esm/Components/ProductCard/ProductTags.js +1 -1
  215. package/dist/esm/Components/ProfileCard/ProfileCard.js +1 -1
  216. package/dist/esm/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +1 -1
  217. package/dist/esm/Components/RadioButton/RadioButton.js +3 -2
  218. package/dist/esm/Components/Reorder/Reorder.js +1 -1
  219. package/dist/esm/Components/ScrollToTop/ScrollToTop.js +2 -0
  220. package/dist/esm/Components/ScrollbarBox/ScrollbarBox.js +9 -0
  221. package/dist/esm/Components/Search/Search.js +2 -2
  222. package/dist/esm/Components/SearchSelect/SearchSelect.js +14 -9
  223. package/dist/esm/Components/SegmentedControl/SegmentedControl.js +55 -0
  224. package/dist/esm/Components/SegmentedControl/SegmentedControlProps.js +1 -0
  225. package/dist/esm/Components/Select/Select.js +5 -3
  226. package/dist/esm/Components/Select/Select.styles.js +3 -2
  227. package/dist/esm/Components/SelectSearch/SelectSearch.js +7 -4
  228. package/dist/esm/Components/SelectV2/SelectV2.js +18 -14
  229. package/dist/esm/Components/SideBar/SecondaryBar.js +1 -1
  230. package/dist/esm/Components/SideBar/SideBar.js +1 -1
  231. package/dist/esm/Components/SideBar/components/MenuPopoverContent.js +2 -2
  232. package/dist/esm/Components/Slider/Slider.js +8 -1
  233. package/dist/esm/Components/StageProgress/StageProgress.js +2 -9
  234. package/dist/esm/Components/StageProgress/StepperStage.js +2 -2
  235. package/dist/esm/Components/Table/Table.js +17 -24
  236. package/dist/esm/Components/Table/components/Pagination.js +1 -1
  237. package/dist/esm/Components/Table/components/TableActions.js +2 -2
  238. package/dist/esm/Components/Table/components/TableBody.js +42 -13
  239. package/dist/esm/Components/Table/components/TableGroupRow.js +1 -1
  240. package/dist/esm/Components/Table/components/TableHeader.js +21 -8
  241. package/dist/esm/Components/Table/components/TableSearch.js +1 -1
  242. package/dist/esm/Components/Table/filters/ActiveFilters.js +2 -18
  243. package/dist/esm/Components/Table/settings/ManageColumns.js +4 -17
  244. package/dist/esm/Components/Table/settings/TableSettings.js +5 -11
  245. package/dist/esm/Components/Table/variants/TableVariantContext.js +13 -0
  246. package/dist/esm/Components/Table/variants/classic.js +43 -0
  247. package/dist/esm/Components/Table/variants/index.js +9 -0
  248. package/dist/esm/Components/Table/variants/pillInk.js +18 -0
  249. package/dist/esm/Components/Table/variants/studio.js +46 -0
  250. package/dist/esm/Components/Table/variants/tokens.js +1 -0
  251. package/dist/esm/Components/Tag/Tag.styles.js +10 -9
  252. package/dist/esm/Components/Timeline/Timeline.js +2 -2
  253. package/dist/esm/Components/Toaster/Toaster.js +1 -1
  254. package/dist/esm/Components/Toggle/TableToggle.js +11 -7
  255. package/dist/esm/Components/ToggleSwitch/ToggleSwitch.js +15 -0
  256. package/dist/esm/Components/ToggleSwitch/ToggleSwitchProps.js +1 -0
  257. package/dist/esm/Components/ToolTip/ToolTip.js +6 -6
  258. package/dist/esm/Components/Trail/TrailWorks.js +1 -1
  259. package/dist/esm/Components/UpgradeButton/UpgradeButton.js +3 -3
  260. package/dist/esm/Constants/Sidebar.js +3 -2
  261. package/dist/esm/Theme/assertPalette.js +3 -2
  262. package/dist/esm/Theme/chakra/Menu.styles.js +5 -0
  263. package/dist/esm/Theme/chakra/Popover.styles.js +5 -1
  264. package/dist/esm/Theme/chakra/componentStyles.js +5 -5
  265. package/dist/esm/Theme/chakra/createBrandTheme.js +10 -16
  266. package/dist/esm/Theme/chakra/focusRing.styles.js +40 -0
  267. package/dist/esm/Theme/provider/ThemeSwitcher.js +5 -2
  268. package/dist/esm/Theme/tokens/brands/index.js +6 -1
  269. package/dist/esm/Theme/tokens/builders/buildDarkPalette.js +6 -1
  270. package/dist/esm/Theme/tokens/builders/chartColorsFromTheme.js +1 -1
  271. package/dist/esm/Theme/tokens/builders/focusRing.js +85 -0
  272. package/dist/esm/Theme/tokens/builders/gradientInk.js +22 -0
  273. package/dist/esm/Theme/tokens/builders/index.js +4 -0
  274. package/dist/esm/Theme/tokens/builders/outlineRung.js +96 -4
  275. package/dist/esm/Theme/tokens/builders/placeholderInk.js +29 -0
  276. package/dist/esm/Theme/tokens/builders/resolvedRungs.js +7 -2
  277. package/dist/esm/Theme/tokens/builders/rowStates.js +15 -0
  278. package/dist/esm/Theme/tokens/builders/scrollbar.js +52 -0
  279. package/dist/esm/Theme/tokens/builders/solidFillRung.js +28 -0
  280. package/dist/esm/Theme/tokens/builders/surfaceRungs.js +20 -5
  281. package/dist/esm/index.js +24 -1
  282. package/dist/index.d.ts +27 -3
  283. package/dist/index.js +64 -4
  284. package/package.json +8 -2
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormControl = exports.PopoverCloseButton = exports.PopoverArrow = exports.PopoverFooter = exports.PopoverHeader = exports.PopoverBody = exports.PopoverContent = exports.PopoverTrigger = exports.Popover = exports.TabPanel = exports.TabPanels = exports.Tab = exports.TabList = exports.Tabs = exports.UnorderedList = exports.OrderedList = exports.ListIcon = exports.ListItem = exports.List = exports.Hide = exports.Show = exports.Collapse = exports.Portal = exports.AlertDescription = exports.AlertTitle = exports.AlertIcon = exports.Alert = exports.Spinner = exports.Badge = exports.AvatarGroup = exports.Avatar = exports.Icon = exports.Image = exports.Link = exports.Heading = exports.Text = exports.Divider = exports.Container = exports.Spacer = exports.Center = exports.WrapItem = exports.Wrap = exports.SimpleGrid = exports.GridItem = exports.Grid = exports.HStack = exports.VStack = exports.Stack = exports.Flex = exports.Box = void 0;
4
+ exports.ChakraModalBody = exports.ChakraModal = exports.ChakraSelect = exports.ChakraCard = exports.CardBody = exports.ModalCloseButton = exports.ModalContent = exports.ModalOverlay = exports.Skeleton = exports.RadioGroup = exports.Radio = exports.Progress = exports.Textarea = exports.Input = exports.RangeSlider = exports.TableRoot = exports.useBreakpointValue = exports.useToken = exports.useMediaQuery = exports.useDisclosure = exports.extendTheme = exports.ChakraProvider = exports.SliderMark = exports.SliderThumb = exports.SliderFilledTrack = exports.SliderTrack = exports.AccordionIcon = exports.AccordionPanel = exports.AccordionButton = exports.AccordionItem = exports.Accordion = exports.MenuItemOption = exports.MenuOptionGroup = exports.MenuDivider = exports.MenuGroup = exports.MenuItem = exports.MenuList = exports.MenuButton = exports.Menu = exports.Td = exports.Th = exports.Tr = exports.Tfoot = exports.Tbody = exports.Thead = exports.TableContainer = exports.IconButton = exports.FormHelperText = exports.FormErrorMessage = exports.FormLabel = void 0;
5
+ exports.ChakraModalFooter = exports.ChakraModalHeader = void 0;
6
+ var react_1 = require("@chakra-ui/react");
7
+ Object.defineProperty(exports, "Box", { enumerable: true, get: function () { return react_1.Box; } });
8
+ Object.defineProperty(exports, "Flex", { enumerable: true, get: function () { return react_1.Flex; } });
9
+ Object.defineProperty(exports, "Stack", { enumerable: true, get: function () { return react_1.Stack; } });
10
+ Object.defineProperty(exports, "VStack", { enumerable: true, get: function () { return react_1.VStack; } });
11
+ Object.defineProperty(exports, "HStack", { enumerable: true, get: function () { return react_1.HStack; } });
12
+ Object.defineProperty(exports, "Grid", { enumerable: true, get: function () { return react_1.Grid; } });
13
+ Object.defineProperty(exports, "GridItem", { enumerable: true, get: function () { return react_1.GridItem; } });
14
+ Object.defineProperty(exports, "SimpleGrid", { enumerable: true, get: function () { return react_1.SimpleGrid; } });
15
+ Object.defineProperty(exports, "Wrap", { enumerable: true, get: function () { return react_1.Wrap; } });
16
+ Object.defineProperty(exports, "WrapItem", { enumerable: true, get: function () { return react_1.WrapItem; } });
17
+ Object.defineProperty(exports, "Center", { enumerable: true, get: function () { return react_1.Center; } });
18
+ Object.defineProperty(exports, "Spacer", { enumerable: true, get: function () { return react_1.Spacer; } });
19
+ Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return react_1.Container; } });
20
+ Object.defineProperty(exports, "Divider", { enumerable: true, get: function () { return react_1.Divider; } });
21
+ Object.defineProperty(exports, "Text", { enumerable: true, get: function () { return react_1.Text; } });
22
+ Object.defineProperty(exports, "Heading", { enumerable: true, get: function () { return react_1.Heading; } });
23
+ Object.defineProperty(exports, "Link", { enumerable: true, get: function () { return react_1.Link; } });
24
+ Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return react_1.Image; } });
25
+ Object.defineProperty(exports, "Icon", { enumerable: true, get: function () { return react_1.Icon; } });
26
+ Object.defineProperty(exports, "Avatar", { enumerable: true, get: function () { return react_1.Avatar; } });
27
+ Object.defineProperty(exports, "AvatarGroup", { enumerable: true, get: function () { return react_1.AvatarGroup; } });
28
+ Object.defineProperty(exports, "Badge", { enumerable: true, get: function () { return react_1.Badge; } });
29
+ Object.defineProperty(exports, "Spinner", { enumerable: true, get: function () { return react_1.Spinner; } });
30
+ Object.defineProperty(exports, "Alert", { enumerable: true, get: function () { return react_1.Alert; } });
31
+ Object.defineProperty(exports, "AlertIcon", { enumerable: true, get: function () { return react_1.AlertIcon; } });
32
+ Object.defineProperty(exports, "AlertTitle", { enumerable: true, get: function () { return react_1.AlertTitle; } });
33
+ Object.defineProperty(exports, "AlertDescription", { enumerable: true, get: function () { return react_1.AlertDescription; } });
34
+ Object.defineProperty(exports, "Portal", { enumerable: true, get: function () { return react_1.Portal; } });
35
+ Object.defineProperty(exports, "Collapse", { enumerable: true, get: function () { return react_1.Collapse; } });
36
+ Object.defineProperty(exports, "Show", { enumerable: true, get: function () { return react_1.Show; } });
37
+ Object.defineProperty(exports, "Hide", { enumerable: true, get: function () { return react_1.Hide; } });
38
+ Object.defineProperty(exports, "List", { enumerable: true, get: function () { return react_1.List; } });
39
+ Object.defineProperty(exports, "ListItem", { enumerable: true, get: function () { return react_1.ListItem; } });
40
+ Object.defineProperty(exports, "ListIcon", { enumerable: true, get: function () { return react_1.ListIcon; } });
41
+ Object.defineProperty(exports, "OrderedList", { enumerable: true, get: function () { return react_1.OrderedList; } });
42
+ Object.defineProperty(exports, "UnorderedList", { enumerable: true, get: function () { return react_1.UnorderedList; } });
43
+ Object.defineProperty(exports, "Tabs", { enumerable: true, get: function () { return react_1.Tabs; } });
44
+ Object.defineProperty(exports, "TabList", { enumerable: true, get: function () { return react_1.TabList; } });
45
+ Object.defineProperty(exports, "Tab", { enumerable: true, get: function () { return react_1.Tab; } });
46
+ Object.defineProperty(exports, "TabPanels", { enumerable: true, get: function () { return react_1.TabPanels; } });
47
+ Object.defineProperty(exports, "TabPanel", { enumerable: true, get: function () { return react_1.TabPanel; } });
48
+ Object.defineProperty(exports, "Popover", { enumerable: true, get: function () { return react_1.Popover; } });
49
+ Object.defineProperty(exports, "PopoverTrigger", { enumerable: true, get: function () { return react_1.PopoverTrigger; } });
50
+ Object.defineProperty(exports, "PopoverContent", { enumerable: true, get: function () { return react_1.PopoverContent; } });
51
+ Object.defineProperty(exports, "PopoverBody", { enumerable: true, get: function () { return react_1.PopoverBody; } });
52
+ Object.defineProperty(exports, "PopoverHeader", { enumerable: true, get: function () { return react_1.PopoverHeader; } });
53
+ Object.defineProperty(exports, "PopoverFooter", { enumerable: true, get: function () { return react_1.PopoverFooter; } });
54
+ Object.defineProperty(exports, "PopoverArrow", { enumerable: true, get: function () { return react_1.PopoverArrow; } });
55
+ Object.defineProperty(exports, "PopoverCloseButton", { enumerable: true, get: function () { return react_1.PopoverCloseButton; } });
56
+ Object.defineProperty(exports, "FormControl", { enumerable: true, get: function () { return react_1.FormControl; } });
57
+ Object.defineProperty(exports, "FormLabel", { enumerable: true, get: function () { return react_1.FormLabel; } });
58
+ Object.defineProperty(exports, "FormErrorMessage", { enumerable: true, get: function () { return react_1.FormErrorMessage; } });
59
+ Object.defineProperty(exports, "FormHelperText", { enumerable: true, get: function () { return react_1.FormHelperText; } });
60
+ Object.defineProperty(exports, "IconButton", { enumerable: true, get: function () { return react_1.IconButton; } });
61
+ Object.defineProperty(exports, "TableContainer", { enumerable: true, get: function () { return react_1.TableContainer; } });
62
+ Object.defineProperty(exports, "Thead", { enumerable: true, get: function () { return react_1.Thead; } });
63
+ Object.defineProperty(exports, "Tbody", { enumerable: true, get: function () { return react_1.Tbody; } });
64
+ Object.defineProperty(exports, "Tfoot", { enumerable: true, get: function () { return react_1.Tfoot; } });
65
+ Object.defineProperty(exports, "Tr", { enumerable: true, get: function () { return react_1.Tr; } });
66
+ Object.defineProperty(exports, "Th", { enumerable: true, get: function () { return react_1.Th; } });
67
+ Object.defineProperty(exports, "Td", { enumerable: true, get: function () { return react_1.Td; } });
68
+ Object.defineProperty(exports, "Menu", { enumerable: true, get: function () { return react_1.Menu; } });
69
+ Object.defineProperty(exports, "MenuButton", { enumerable: true, get: function () { return react_1.MenuButton; } });
70
+ Object.defineProperty(exports, "MenuList", { enumerable: true, get: function () { return react_1.MenuList; } });
71
+ Object.defineProperty(exports, "MenuItem", { enumerable: true, get: function () { return react_1.MenuItem; } });
72
+ Object.defineProperty(exports, "MenuGroup", { enumerable: true, get: function () { return react_1.MenuGroup; } });
73
+ Object.defineProperty(exports, "MenuDivider", { enumerable: true, get: function () { return react_1.MenuDivider; } });
74
+ Object.defineProperty(exports, "MenuOptionGroup", { enumerable: true, get: function () { return react_1.MenuOptionGroup; } });
75
+ Object.defineProperty(exports, "MenuItemOption", { enumerable: true, get: function () { return react_1.MenuItemOption; } });
76
+ Object.defineProperty(exports, "Accordion", { enumerable: true, get: function () { return react_1.Accordion; } });
77
+ Object.defineProperty(exports, "AccordionItem", { enumerable: true, get: function () { return react_1.AccordionItem; } });
78
+ Object.defineProperty(exports, "AccordionButton", { enumerable: true, get: function () { return react_1.AccordionButton; } });
79
+ Object.defineProperty(exports, "AccordionPanel", { enumerable: true, get: function () { return react_1.AccordionPanel; } });
80
+ Object.defineProperty(exports, "AccordionIcon", { enumerable: true, get: function () { return react_1.AccordionIcon; } });
81
+ Object.defineProperty(exports, "SliderTrack", { enumerable: true, get: function () { return react_1.SliderTrack; } });
82
+ Object.defineProperty(exports, "SliderFilledTrack", { enumerable: true, get: function () { return react_1.SliderFilledTrack; } });
83
+ Object.defineProperty(exports, "SliderThumb", { enumerable: true, get: function () { return react_1.SliderThumb; } });
84
+ Object.defineProperty(exports, "SliderMark", { enumerable: true, get: function () { return react_1.SliderMark; } });
85
+ Object.defineProperty(exports, "ChakraProvider", { enumerable: true, get: function () { return react_1.ChakraProvider; } });
86
+ Object.defineProperty(exports, "extendTheme", { enumerable: true, get: function () { return react_1.extendTheme; } });
87
+ Object.defineProperty(exports, "useDisclosure", { enumerable: true, get: function () { return react_1.useDisclosure; } });
88
+ Object.defineProperty(exports, "useMediaQuery", { enumerable: true, get: function () { return react_1.useMediaQuery; } });
89
+ Object.defineProperty(exports, "useToken", { enumerable: true, get: function () { return react_1.useToken; } });
90
+ Object.defineProperty(exports, "useBreakpointValue", { enumerable: true, get: function () { return react_1.useBreakpointValue; } });
91
+ // Renamed: the library's own Table and Slider own these names.
92
+ var react_2 = require("@chakra-ui/react");
93
+ Object.defineProperty(exports, "TableRoot", { enumerable: true, get: function () { return react_2.Table; } });
94
+ Object.defineProperty(exports, "RangeSlider", { enumerable: true, get: function () { return react_2.Slider; } });
95
+ var react_3 = require("@chakra-ui/react");
96
+ Object.defineProperty(exports, "Input", { enumerable: true, get: function () { return react_3.Input; } });
97
+ Object.defineProperty(exports, "Textarea", { enumerable: true, get: function () { return react_3.Textarea; } });
98
+ Object.defineProperty(exports, "Progress", { enumerable: true, get: function () { return react_3.Progress; } });
99
+ Object.defineProperty(exports, "Radio", { enumerable: true, get: function () { return react_3.Radio; } });
100
+ Object.defineProperty(exports, "RadioGroup", { enumerable: true, get: function () { return react_3.RadioGroup; } });
101
+ Object.defineProperty(exports, "Skeleton", { enumerable: true, get: function () { return react_3.Skeleton; } });
102
+ Object.defineProperty(exports, "ModalOverlay", { enumerable: true, get: function () { return react_3.ModalOverlay; } });
103
+ Object.defineProperty(exports, "ModalContent", { enumerable: true, get: function () { return react_3.ModalContent; } });
104
+ Object.defineProperty(exports, "ModalCloseButton", { enumerable: true, get: function () { return react_3.ModalCloseButton; } });
105
+ Object.defineProperty(exports, "CardBody", { enumerable: true, get: function () { return react_3.CardBody; } });
106
+ // Prefixed because the library ships its own component under each of these names.
107
+ var react_4 = require("@chakra-ui/react");
108
+ Object.defineProperty(exports, "ChakraCard", { enumerable: true, get: function () { return react_4.Card; } });
109
+ Object.defineProperty(exports, "ChakraSelect", { enumerable: true, get: function () { return react_4.Select; } });
110
+ Object.defineProperty(exports, "ChakraModal", { enumerable: true, get: function () { return react_4.Modal; } });
111
+ Object.defineProperty(exports, "ChakraModalBody", { enumerable: true, get: function () { return react_4.ModalBody; } });
112
+ Object.defineProperty(exports, "ChakraModalHeader", { enumerable: true, get: function () { return react_4.ModalHeader; } });
113
+ Object.defineProperty(exports, "ChakraModalFooter", { enumerable: true, get: function () { return react_4.ModalFooter; } });
@@ -109,7 +109,7 @@ const ProductPrice = ({ options, size, onSelect, rightSlot }) => {
109
109
  }, templateColumns: { base: '1fr auto', md: '1fr auto' },
110
110
  // columnGap={{ base: 2, md: 3 }}
111
111
  // rowGap={{ base: 1.5, md: 2 }}
112
- alignItems: "center", children: [(0, jsx_runtime_1.jsx)(react_2.HStack, { gridColumn: 1, gridRow: 1, spacing: 2, align: "center", minW: 0, mb: 0, children: (0, jsx_runtime_1.jsx)(react_2.Box, { flex: "1", minW: 0, children: (0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "top", maxWidth: "100%", fontSize: { base: "xs", md: "sm" }, fontWeight: "medium", whiteSpace: "nowrap", children: option.label }) }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { gridColumn: 1, gridRow: 2, mt: 0, textAlign: "left", children: (0, jsx_runtime_1.jsxs)(react_2.HStack, { spacing: 2, align: "center", children: [option.offer > 0 && ((0, jsx_runtime_1.jsx)(react_2.Badge, { bg: theme.colors.green[100], color: (0, accentText_1.accentTextOnCanvas)(theme.colors.green, theme.colors.green[100]), borderRadius: "md", px: { base: 0, md: 0.5 }, py: { base: 0, md: 0.25 }, fontWeight: "bold", fontSize: "10px", flexShrink: 0, children: isMobile ? `${option.offer}%` : `${option.offer}% OFF` })), (0, jsx_runtime_1.jsxs)(react_2.Text, { fontSize: "sm", fontWeight: "bold", color: (0, accentText_1.accentTextOnCanvas)(theme.colors.red, isSelected ? theme.colors.red[50] : theme.colors.background[50]), whiteSpace: "nowrap", children: ["\u20B9", discounted] }), option.offer > 0 && ((0, jsx_runtime_1.jsxs)(react_2.Text, { fontSize: "xs", color: theme.colors.textMuted, textDecoration: "line-through", whiteSpace: "nowrap", children: ["\u20B9", option.price] }))] }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { gridColumn: 2, gridRow: 1, ml: { base: 0, md: 0 }, justifySelf: "end", w: { base: "0.625rem", md: "0.75rem" }, h: { base: "0.625rem", md: "0.75rem" }, minW: { base: "0.625rem", md: "0.75rem" }, borderRadius: "full", border: "0.125rem solid", borderColor: isSelected ? theme.colors.red[500] : theme.colors.boxborder[800], bg: theme.colors.background[50], display: "flex", alignItems: "center", justifyContent: "center", boxShadow: "none", children: isSelected && ((0, jsx_runtime_1.jsx)(react_2.Box, { w: { base: "0.25rem", md: "0.3125rem" }, h: { base: "0.25rem", md: "0.3125rem" }, bg: theme.colors.red[500], borderRadius: "full" })) })] }, option.var_id));
112
+ alignItems: "center", children: [(0, jsx_runtime_1.jsx)(react_2.HStack, { gridColumn: 1, gridRow: 1, spacing: 2, align: "center", minW: 0, mb: 0, children: (0, jsx_runtime_1.jsx)(react_2.Box, { flex: "1", minW: 0, children: (0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "top", maxWidth: "100%", fontSize: { base: "xs", md: "sm" }, fontWeight: "medium", whiteSpace: "nowrap", children: option.label }) }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { gridColumn: 1, gridRow: 2, mt: 0, textAlign: "left", children: (0, jsx_runtime_1.jsxs)(react_2.HStack, { spacing: 2, align: "center", children: [option.offer > 0 && ((0, jsx_runtime_1.jsx)(react_2.Badge, { bg: theme.colors.green[100], color: (0, accentText_1.accentTextOnCanvas)(theme.colors.green, theme.colors.green[100]), borderRadius: "md", px: { base: 0, md: 0.5 }, py: { base: 0, md: 0.25 }, fontWeight: "bold", fontSize: "10px", flexShrink: 0, children: isMobile ? `${option.offer}%` : `${option.offer}% OFF` })), (0, jsx_runtime_1.jsxs)(react_2.Text, { fontSize: "sm", fontWeight: "bold", color: (0, accentText_1.accentTextOnCanvas)(theme.colors.red, isSelected ? theme.colors.red[50] : theme.colors.background[50]), whiteSpace: "nowrap", children: ["\u20B9", discounted] }), option.offer > 0 && ((0, jsx_runtime_1.jsxs)(react_2.Text, { fontSize: "xs", color: theme.colors.textMuted, textDecoration: "line-through", whiteSpace: "nowrap", children: ["\u20B9", option.price] }))] }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { gridColumn: 2, gridRow: 1, ml: { base: 0, md: 0 }, justifySelf: "end", w: { base: "0.625rem", md: "0.75rem" }, h: { base: "0.625rem", md: "0.75rem" }, minW: { base: "0.625rem", md: "0.75rem" }, borderRadius: "full", border: "0.125rem solid", borderColor: isSelected ? theme.colors.red[500] : theme.colors.boxborder[500], bg: theme.colors.background[50], display: "flex", alignItems: "center", justifyContent: "center", boxShadow: "none", children: isSelected && ((0, jsx_runtime_1.jsx)(react_2.Box, { w: { base: "0.25rem", md: "0.3125rem" }, h: { base: "0.25rem", md: "0.3125rem" }, bg: theme.colors.red[500], borderRadius: "full" })) })] }, option.var_id));
113
113
  }) }) })), (0, jsx_runtime_1.jsxs)(react_2.Flex, { mt: 2, w: "full", gap: 3, direction: { base: "column", md: "row" }, align: { base: "flex-start", md: "center" }, justify: { base: "flex-start", md: rightSlot ? "space-between" : "flex-start" }, children: [(0, jsx_runtime_1.jsxs)(react_2.Box, { display: "flex", alignItems: "center", fontSize: cfg.price, gap: 2, minW: 0, children: [selected.offer > 0 && ((0, jsx_runtime_1.jsxs)(react_2.Text, { color: theme.colors.textMuted, textDecoration: "line-through", children: ["\u20B9", selected.price] })), (0, jsx_runtime_1.jsxs)(react_2.Text, { color: (0, accentText_1.accentTextOnCanvas)(theme.colors.red, theme.colors.backgroundColor.main), fontWeight: "semibold", children: ["\u20B9", getDiscountedPrice(selected)] })] }), rightSlot && ((0, jsx_runtime_1.jsx)(react_2.Box, { flexShrink: 0, mt: { base: 2, md: 0 }, children: rightSlot }))] })] }));
114
114
  };
115
115
  exports.default = ProductPrice;
@@ -5,6 +5,8 @@ const react_1 = require("@chakra-ui/react");
5
5
  const lucide_react_1 = require("lucide-react");
6
6
  const useCustomTheme_1 = require("../../Theme/useCustomTheme");
7
7
  const accentText_1 = require("../../Theme/tokens/builders/accentText");
8
+ const color_1 = require("../../Theme/tokens/builders/color");
9
+ const outlineRung_1 = require("../../Theme/tokens/builders/outlineRung");
8
10
  // The theme's `yellow` scale reverses index roles in dark mode (like every utility hue), so
9
11
  // pulling it through the theme would silently flip this decorative "filled star" from gold to
10
12
  // pale. A rating star is a universal, brand-independent gold — not something that should follow
@@ -19,6 +21,9 @@ const ProductReview = ({ rating, reviewCount, mb = 0 }) => {
19
21
  // Calculate fill percentage: (rating / 5) * 100%
20
22
  const numericRating = hasRating ? Math.min(Math.max(Number(rating), 0), 5) : 0;
21
23
  const fillPercentage = (numericRating / 6) * 100;
22
- return ((0, jsx_runtime_1.jsxs)(react_1.Flex, { align: "center", gap: 2, mb: mb, children: [hasRating && ((0, jsx_runtime_1.jsxs)(react_1.Flex, { align: "center", gap: 1, bg: colors.teal[50], color: (0, accentText_1.accentTextOnCanvas)(colors.teal, colors.teal[50]), px: 2, borderRadius: "md", children: [(0, jsx_runtime_1.jsxs)(react_1.Box, { position: "relative", flexShrink: 0, display: "inline-block", width: "14px", height: "14px", lineHeight: 0, children: [(0, jsx_runtime_1.jsx)(react_1.Box, { position: "absolute", top: 0, left: 0, width: "14px", height: "14px", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { size: 14, fill: "none", strokeWidth: 1.5 }) }), fillPercentage > 0 && ((0, jsx_runtime_1.jsx)(react_1.Box, { position: "absolute", top: 0, left: 0, width: `${fillPercentage}%`, height: "100%", overflow: "hidden", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { size: 14, color: RATING_STAR_FILL, fill: RATING_STAR_FILL }) }))] }), (0, jsx_runtime_1.jsx)(react_1.Text, { fontSize: "sm", fontWeight: "bold", children: numericRating })] })), hasRating && hasReviewCount && (0, jsx_runtime_1.jsx)(react_1.Box, { h: "4", w: "0.063rem", bg: colors.boxborder[500] }), hasReviewCount && ((0, jsx_runtime_1.jsxs)(react_1.Flex, { align: "center", gap: "1", children: [(0, jsx_runtime_1.jsx)(react_1.Icon, { as: lucide_react_1.BookCheck, boxSize: 3.5 }), (0, jsx_runtime_1.jsxs)(react_1.Text, { fontSize: "sm", color: colors.textMuted, children: ["(", reviewCount, ")"] })] }))] }));
24
+ const chipBg = colors.teal[50];
25
+ const chipInk = (0, accentText_1.accentTextOnCanvas)(colors.teal, chipBg);
26
+ const starFill = (0, color_1.contrastRatio)(RATING_STAR_FILL, chipBg) >= outlineRung_1.AA_NON_TEXT ? RATING_STAR_FILL : chipInk;
27
+ return ((0, jsx_runtime_1.jsxs)(react_1.Flex, { align: "center", gap: 2, mb: mb, children: [hasRating && ((0, jsx_runtime_1.jsxs)(react_1.Flex, { align: "center", gap: 1, bg: chipBg, color: chipInk, px: 2, borderRadius: "md", children: [(0, jsx_runtime_1.jsxs)(react_1.Box, { position: "relative", flexShrink: 0, display: "inline-block", width: "14px", height: "14px", lineHeight: 0, children: [(0, jsx_runtime_1.jsx)(react_1.Box, { position: "absolute", top: 0, left: 0, width: "14px", height: "14px", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { size: 14, fill: "none", strokeWidth: 1.5 }) }), fillPercentage > 0 && ((0, jsx_runtime_1.jsx)(react_1.Box, { position: "absolute", top: 0, left: 0, width: `${fillPercentage}%`, height: "100%", overflow: "hidden", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { size: 14, color: starFill, fill: starFill }) }))] }), (0, jsx_runtime_1.jsx)(react_1.Text, { fontSize: "sm", fontWeight: "bold", children: numericRating })] })), hasRating && hasReviewCount && (0, jsx_runtime_1.jsx)(react_1.Box, { h: "4", w: "0.063rem", bg: colors.boxborder[500] }), hasReviewCount && ((0, jsx_runtime_1.jsxs)(react_1.Flex, { align: "center", gap: "1", children: [(0, jsx_runtime_1.jsx)(react_1.Icon, { as: lucide_react_1.BookCheck, boxSize: 3.5 }), (0, jsx_runtime_1.jsxs)(react_1.Text, { fontSize: "sm", color: colors.textMuted, children: ["(", reviewCount, ")"] })] }))] }));
23
28
  };
24
29
  exports.default = ProductReview;
@@ -25,8 +25,8 @@ const ProductTags = ({ tags, className, size = 'sm' }) => {
25
25
  };
26
26
  const Tag = ({ children, fullWidth = false, size = 'sm', }) => {
27
27
  const { colors } = (0, useCustomTheme_1.useCustomTheme)();
28
- const tagBorder = colors.semanticText.error;
29
28
  const tagText = colors.text[900];
29
+ const tagBorder = colors.boxborder[500];
30
30
  // Size map for tags
31
31
  const tagSizes = {
32
32
  xs: { fontSize: '0.625rem', px: '0.5rem', py: '0.125rem' },
@@ -23,7 +23,7 @@ const ProfileCardFooter = ({ children, }) => {
23
23
  exports.ProfileCardFooter = ProfileCardFooter;
24
24
  function ProfileCard({ maxW, align, variant, direction, justify, children, size, color, overflow, dividercolor, dividersize = "0.5px", dividervariant = "solid", CardStyle, CardHeaderStyle, CardBodyStyle, borderTopColor, borderLeftColor, }) {
25
25
  const { colors } = (0, useCustomTheme_1.useCustomTheme)();
26
- const resolvedDividerColor = dividercolor !== null && dividercolor !== void 0 ? dividercolor : colors.border[400];
26
+ const resolvedDividerColor = dividercolor !== null && dividercolor !== void 0 ? dividercolor : colors.boxborder[200];
27
27
  const accentBorder = `2px solid ${colors.primary[500]}`;
28
28
  const isReactElement = (child) => {
29
29
  return child !== null && typeof child === "object" && "type" in child;
@@ -38,7 +38,7 @@ function ProfilePhotoViewer({ photoUrl, onPhotoChange, imageWidth = "100px", ima
38
38
  // [800], not [300]: the edit IconButton's border is a control boundary — WCAG 1.4.11 needs
39
39
  // >=3.0 against any named surface up to `muted` (lightest); [300] fails there, [800] clears
40
40
  // all with margin.
41
- const border = c.boxborder[800];
41
+ const border = c.boxborder[500];
42
42
  // Shared modern frame for whichever media we render (photo / pdf / fallback).
43
43
  const mediaFrame = {
44
44
  boxSize: imageWidth,
@@ -5,9 +5,10 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("@chakra-ui/react");
6
6
  const useCustomTheme_1 = require("../../Theme/useCustomTheme");
7
7
  const FormLabel_1 = require("../Common/FormLabel");
8
+ const outlineRung_1 = require("../../Theme/tokens/builders/outlineRung");
8
9
  const RadioButton = ({ label, colorScheme, isChecked, onChange, isDisabled, size, value, defaultChecked, labelFontSize = "0.75rem", labelClampLines = 2, showLabelTooltip = (label || "").length > 18, labelTooltip = label, }) => {
9
10
  const theme = (0, useCustomTheme_1.useCustomTheme)();
10
- return ((0, jsx_runtime_1.jsx)(react_1.Radio, { colorScheme: colorScheme, isChecked: isChecked, onChange: onChange, isDisabled: isDisabled, size: size, value: value, defaultChecked: defaultChecked, borderColor: theme.colors.gray[500], borderWidth: "1.6px", _hover: {
11
+ return ((0, jsx_runtime_1.jsx)(react_1.Radio, { colorScheme: colorScheme, isChecked: isChecked, onChange: onChange, isDisabled: isDisabled, size: size, value: value, defaultChecked: defaultChecked, borderColor: theme.colors.boxborder[500], borderWidth: "1.6px", _hover: {
11
12
  borderColor: theme.colors.primary[500],
12
13
  backgroundColor: theme.colors.background[100],
13
14
  }, sx: {
@@ -18,7 +19,7 @@ const RadioButton = ({ label, colorScheme, isChecked, onChange, isDisabled, size
18
19
  "&[data-checked]:hover": {
19
20
  backgroundColor: theme.colors.primary[500],
20
21
  borderColor: theme.colors.primary[500],
21
- boxShadow: `0 0 0 2px ${theme.colors.primary[200]}`,
22
+ boxShadow: `0 0 0 2px ${(0, outlineRung_1.liftToContrast)(theme.colors.primary[200], theme.colors.backgroundColor.main, outlineRung_1.AA_NON_TEXT)}`,
22
23
  },
23
24
  }, children: (0, jsx_runtime_1.jsx)(FormLabel_1.TextLabel, { label: label, fontSize: labelFontSize, showTooltip: showLabelTooltip, tooltipLabel: labelTooltip, clampLines: labelClampLines, inline: true }) }));
24
25
  };
@@ -17,7 +17,7 @@ const ReorderList = ({ label = "", items, onReorder, showRemoveIcon = false, onR
17
17
  };
18
18
  return ((0, jsx_runtime_1.jsxs)(react_1.Box, { borderWidth: "0.063rem", borderRadius: "md", px: 3, py: 2, bg: colors.background[50], children: [(0, jsx_runtime_1.jsxs)(react_1.Box, { display: "flex", alignItems: "center", gap: 2, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.BetweenHorizonalStart, {}), (0, jsx_runtime_1.jsx)(react_1.Text, { fontFamily: "open-sans, sans-serif", fontWeight: 600, fontSize: 14, lineHeight: "100%", letterSpacing: "4%", textTransform: "uppercase", py: 4, children: label })] }), (0, jsx_runtime_1.jsx)(react_1.Divider, {}), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(dnd_1.DragDropContext, { onDragEnd: handleDragEnd, children: (0, jsx_runtime_1.jsx)(dnd_1.Droppable, { droppableId: "item-list", direction: "horizontal", children: (provided) => ((0, jsx_runtime_1.jsxs)(react_1.HStack, { ref: provided.innerRef, ...provided.droppableProps, spacing: 4, overflowX: "auto", children: [items.map((item, index) => ((0, jsx_runtime_1.jsx)(dnd_1.Draggable, { draggableId: item.id, index: index, children: (provided) => {
19
19
  var _a;
20
- return ((0, jsx_runtime_1.jsxs)(react_1.Box, { ref: provided.innerRef, ...provided.draggableProps, ...provided.dragHandleProps, position: "relative", border: "0.063rem solid", borderColor: colors.boxborder[300], borderRadius: "md", overflow: "hidden", children: [(0, jsx_runtime_1.jsx)(react_1.Image, { src: item.previewUrl, alt: (_a = item.name) !== null && _a !== void 0 ? _a : `item-${index}`, boxSize: "7.5rem", objectFit: "cover" }), (0, jsx_runtime_1.jsx)(react_1.IconButton, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.GripVertical, { size: 16, color: colors.textMuted }), "aria-label": "Drag", size: "sm", position: "absolute", top: 1, left: 1, variant: "ghost" }), (0, jsx_runtime_1.jsx)(react_1.Badge, { position: "absolute", colorScheme: "gray", variant: "solid", bottom: 1, right: 1, children: index + 1 }), showRemoveIcon && ((0, jsx_runtime_1.jsx)(react_1.IconButton, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 16, color: colors.semanticText.error }), "aria-label": "Remove", size: "sm", position: "absolute", top: 1, right: 1, variant: "ghost", onClick: () => onRemove === null || onRemove === void 0 ? void 0 : onRemove(item.id) }))] }));
20
+ return ((0, jsx_runtime_1.jsxs)(react_1.Box, { ref: provided.innerRef, ...provided.draggableProps, ...provided.dragHandleProps, position: "relative", border: "0.063rem solid", borderColor: colors.boxborder[200], borderRadius: "md", overflow: "hidden", children: [(0, jsx_runtime_1.jsx)(react_1.Image, { src: item.previewUrl, alt: (_a = item.name) !== null && _a !== void 0 ? _a : `item-${index}`, boxSize: "7.5rem", objectFit: "cover" }), (0, jsx_runtime_1.jsx)(react_1.IconButton, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.GripVertical, { size: 16, color: colors.textMuted }), "aria-label": "Drag", size: "sm", position: "absolute", top: 1, left: 1, variant: "ghost" }), (0, jsx_runtime_1.jsx)(react_1.Badge, { position: "absolute", colorScheme: "gray", variant: "solid", bottom: 1, right: 1, children: index + 1 }), showRemoveIcon && ((0, jsx_runtime_1.jsx)(react_1.IconButton, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 16, color: colors.semanticText.error }), "aria-label": "Remove", size: "sm", position: "absolute", top: 1, right: 1, variant: "ghost", onClick: () => onRemove === null || onRemove === void 0 ? void 0 : onRemove(item.id) }))] }));
21
21
  } }, item.id))), provided.placeholder] })) }) })] }));
22
22
  };
23
23
  exports.default = ReorderList;
@@ -10,6 +10,7 @@ const lucide_react_1 = require("lucide-react");
10
10
  const useCustomTheme_1 = require("../../Theme/useCustomTheme");
11
11
  const ToolTip_1 = __importDefault(require("../ToolTip/ToolTip"));
12
12
  const rafThrottle_1 = require("../../Utils/rafThrottle");
13
+ const accentText_1 = require("../../Theme/tokens/builders/accentText");
13
14
  const ScrollToTop = ({ children, tooltipLabel = "Scroll to top", threshold = 300, duration = 600, useWindow = false, bottom = "2rem", right = "2rem", }) => {
14
15
  const [visible, setVisible] = (0, react_1.useState)(false);
15
16
  const anchorRef = (0, react_1.useRef)(null);
@@ -64,6 +65,7 @@ const ScrollToTop = ({ children, tooltipLabel = "Scroll to top", threshold = 300
64
65
  }, [useWindow, threshold]);
65
66
  return ((0, jsx_runtime_1.jsxs)(react_2.Box, { ref: anchorRef, position: "relative", children: [children, (0, jsx_runtime_1.jsx)(ToolTip_1.default, { label: tooltipLabel, placement: "left", children: (0, jsx_runtime_1.jsx)(react_2.Box, { as: "button", type: "button", onClick: scrollToTop, "aria-label": tooltipLabel, border: "none", position: "fixed", bottom: bottom, right: right, zIndex: 1000, display: "flex", alignItems: "center", justifyContent: "center", boxSize: "44px", borderRadius: "full", cursor: "pointer", bg: theme.colors.primary[500], color: theme.colors.onPrimary, boxShadow: "md", opacity: visible ? 1 : 0, transform: visible ? "translateY(0) scale(1)" : "translateY(16px) scale(0.85)", pointerEvents: visible ? "auto" : "none", transition: "all 0.25s cubic-bezier(0.16, 1, 0.3, 1)", _hover: {
66
67
  bg: theme.colors.primary[600],
68
+ color: (0, accentText_1.onFilled)(theme.colors.primary[600], theme.colors.white, theme.colors.black),
67
69
  transform: "translateY(-2px) scale(1.05)",
68
70
  boxShadow: "lg",
69
71
  }, _active: { transform: "scale(0.95)" }, children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronUp, { size: 24, strokeWidth: 2.5 }) }) })] }));
@@ -0,0 +1,13 @@
1
+ import React, { ReactNode } from "react";
2
+ import { ScrollbarVariant } from "../../Theme/tokens/builders/scrollbar";
3
+ export interface ScrollbarBoxProps {
4
+ children: ReactNode;
5
+ height?: string;
6
+ maxHeight?: string;
7
+ overflowX?: string;
8
+ overflowY?: string;
9
+ variant?: ScrollbarVariant;
10
+ scrollContainerRef?: React.Ref<HTMLDivElement> | null;
11
+ }
12
+ declare const ScrollbarBox: React.FC<ScrollbarBoxProps>;
13
+ export default ScrollbarBox;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("@chakra-ui/react");
5
+ const useCustomTheme_1 = require("../../Theme/useCustomTheme");
6
+ const scrollbar_1 = require("../../Theme/tokens/builders/scrollbar");
7
+ const ScrollbarBox = ({ children, height, maxHeight, overflowX, overflowY = "auto", variant = "default", scrollContainerRef, }) => {
8
+ const { colors } = (0, useCustomTheme_1.useCustomTheme)();
9
+ return ((0, jsx_runtime_1.jsx)(react_1.Box, { ref: scrollContainerRef, height: height, maxHeight: maxHeight, position: "relative", sx: { overflowX, overflowY, ...(0, scrollbar_1.scrollbarStyles)(colors, variant) }, children: children }));
10
+ };
11
+ exports.default = ScrollbarBox;
@@ -30,6 +30,6 @@ function Search({ placeholder = "Search...", onSearch, onclose, shortcut = "Ctrl
30
30
  window.removeEventListener("keydown", handleKeyDown);
31
31
  };
32
32
  }, [shortcut]);
33
- return ((0, jsx_runtime_1.jsxs)(react_2.FormControl, { id: id, isInvalid: !!error, children: [label && ((0, jsx_runtime_1.jsx)(FormLabel_1.TextLabel, { label: label, id: id, isInformation: isInformation, informationMessage: informationMessage, isRequired: isRequired })), (0, jsx_runtime_1.jsxs)(react_2.InputGroup, { w: "100%", children: [(0, jsx_runtime_1.jsx)(react_2.InputLeftElement, { pointerEvents: "none", children: (0, jsx_runtime_1.jsx)(react_2.Icon, { as: lucide_react_1.Search, color: theme.colors.gray[500] }) }), (0, jsx_runtime_1.jsx)(react_2.Input, { ref: inputRef, type: "text", value: query, onChange: onSearch, placeholder: placeholder, variant: "outline", isInvalid: error }), (0, jsx_runtime_1.jsxs)(react_2.InputRightElement, { w: "auto", pr: "3", display: "flex", alignItems: "center" // ✅ centers vertically
34
- , gap: "2", children: [query && ((0, jsx_runtime_1.jsx)(react_2.Icon, { as: lucide_react_1.X, color: theme.colors.gray[500], boxSize: 5, cursor: "pointer", onClick: onclose })), shortcut && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "sm", color: theme.colors.gray[500], px: "2", py: "0.5", borderRadius: "md", bg: theme.colors.gray[100], children: shortcut }))] })] }), error && (0, jsx_runtime_1.jsx)(ErrorMessage_1.default, { errorMessage: errorMessage }), helperText && !error && (0, jsx_runtime_1.jsx)(HelperText_1.default, { helperText: helperText })] }));
33
+ return ((0, jsx_runtime_1.jsxs)(react_2.FormControl, { id: id, isInvalid: !!error, children: [label && ((0, jsx_runtime_1.jsx)(FormLabel_1.TextLabel, { label: label, id: id, isInformation: isInformation, informationMessage: informationMessage, isRequired: isRequired })), (0, jsx_runtime_1.jsxs)(react_2.InputGroup, { w: "100%", children: [(0, jsx_runtime_1.jsx)(react_2.InputLeftElement, { pointerEvents: "none", children: (0, jsx_runtime_1.jsx)(react_2.Icon, { as: lucide_react_1.Search, color: theme.colors.textMuted }) }), (0, jsx_runtime_1.jsx)(react_2.Input, { ref: inputRef, type: "text", value: query, onChange: onSearch, placeholder: placeholder, variant: "outline", isInvalid: error }), (0, jsx_runtime_1.jsxs)(react_2.InputRightElement, { w: "auto", pr: "3", display: "flex", alignItems: "center" // ✅ centers vertically
34
+ , gap: "2", children: [query && ((0, jsx_runtime_1.jsx)(react_2.Icon, { as: lucide_react_1.X, color: theme.colors.textMuted, boxSize: 5, cursor: "pointer", onClick: onclose })), shortcut && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "sm", color: theme.colors.textMuted, px: "2", py: "0.5", borderRadius: "md", bg: theme.colors.backgroundColor.subtle, children: shortcut }))] })] }), error && (0, jsx_runtime_1.jsx)(ErrorMessage_1.default, { errorMessage: errorMessage }), helperText && !error && (0, jsx_runtime_1.jsx)(HelperText_1.default, { helperText: helperText })] }));
35
35
  }
@@ -43,6 +43,8 @@ const lucide_react_1 = require("lucide-react");
43
43
  const FormLabel_1 = require("../Common/FormLabel");
44
44
  const Tag_1 = __importDefault(require("../Tag/Tag"));
45
45
  const useCustomTheme_1 = require("../../Theme/useCustomTheme");
46
+ const placeholderInk_1 = require("../../Theme/tokens/builders/placeholderInk");
47
+ const outlineRung_1 = require("../../Theme/tokens/builders/outlineRung");
46
48
  const ErrorMessage_1 = __importDefault(require("../Common/ErrorMessage"));
47
49
  const HelperText_1 = __importDefault(require("../Common/HelperText"));
48
50
  const ToolTip_1 = __importDefault(require("../ToolTip/ToolTip"));
@@ -87,6 +89,9 @@ const SearchSelect = ({ id, label, options, onSelect, onSearch, isOptionLoading
87
89
  width: 0,
88
90
  });
89
91
  const theme = (0, useCustomTheme_1.useCustomTheme)();
92
+ const customSelectActiveTint = (0, react_1.useMemo)(() => (0, outlineRung_1.resolveHoverTint)(theme.colors.primary[500], theme.colors.background[400]), [theme.colors.primary, theme.colors.background]);
93
+ const dropdownActiveTint = (0, react_1.useMemo)(() => (0, outlineRung_1.resolveHoverTint)(theme.colors.primary[500], theme.colors.background[50]), [theme.colors.primary, theme.colors.background]);
94
+ const dropdownHoverTint = (0, react_1.useMemo)(() => (0, outlineRung_1.resolveHoverTint)(theme.colors.gray[50], theme.colors.background[50]), [theme.colors.gray, theme.colors.background]);
90
95
  // `searchselect-dropdown-portal` is also the DOM id an existing outside-click check and
91
96
  // several tests look up directly — kept as a literal constant, not derived from `baseId`,
92
97
  // so those keep working unchanged.
@@ -487,25 +492,25 @@ const SearchSelect = ({ id, label, options, onSelect, onSearch, isOptionLoading
487
492
  var _a, _b, _c, _d, _e;
488
493
  const insideLabel = (_a = insideSelect.value) === null || _a === void 0 ? void 0 : _a.label;
489
494
  const insidePlaceholder = (_b = insideSelect.placeholder) !== null && _b !== void 0 ? _b : "Select";
490
- return ((0, jsx_runtime_1.jsxs)(react_2.Box, { position: "relative", ref: customSelectRef, flexShrink: 0, ml: s.insideSelectMarginLeft, h: "-webkit-fill-available", borderRight: "0.063rem solid", borderColor: theme.colors.boxborder[300], bg: customSelectOpen
491
- ? theme.colors.primary.opacity[8]
495
+ return ((0, jsx_runtime_1.jsxs)(react_2.Box, { position: "relative", ref: customSelectRef, flexShrink: 0, ml: s.insideSelectMarginLeft, h: "-webkit-fill-available", borderRight: "0.063rem solid", borderColor: theme.colors.boxborder[200], bg: customSelectOpen
496
+ ? customSelectActiveTint
492
497
  : theme.colors.background[400], borderLeftRadius: "md", borderRightRadius: 0, transition: "background 0.15s ease, box-shadow 0.15s ease", boxShadow: customSelectOpen
493
498
  ? `inset 0 0 0 0.063rem ${theme.colors.primary[500]}`
494
499
  : "none", onClick: (e) => {
495
500
  e.stopPropagation();
496
501
  setIsOpen(false);
497
502
  setCustomSelectOpen((prev) => !prev);
498
- }, children: [(0, jsx_runtime_1.jsxs)(react_2.Box, { minW: "4.5rem", cursor: "pointer", display: "flex", justifyContent: "space-between", alignItems: "center", gap: 1, width: insideSelect.width, height: insideSelectBoxHeight, pl: "0.5rem", pr: "0.375rem", children: [insideLabel ? ((0, jsx_runtime_1.jsx)(SelectTruncatedLabel_1.default, { label: insideLabel, maxWidth: insideSelect.width || "6rem", fontSize: s.fieldFontSize })) : ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.fieldFontSize, fontWeight: 500, color: theme.colors.placeholder[500], isTruncated: true, maxW: insideSelect.width || "6rem", children: insidePlaceholder })), (0, jsx_runtime_1.jsx)(react_2.Box, { as: "span", display: "inline-flex", flexShrink: 0, color: customSelectOpen ? theme.colors.accentText : theme.colors.textMuted, transition: "transform 0.2s ease, color 0.15s ease", transform: customSelectOpen ? "rotate(180deg)" : "rotate(0deg)", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { size: s.chevronSize }) })] }), customSelectOpen && ((0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsx)(react_2.Box, { ref: setInsideSelectMenuRef, id: "custom-select-portal", position: "fixed", top: `${customSelectPos.top}px`, left: `${customSelectPos.left}px`, zIndex: 1510, bg: theme.colors.background[50], border: "0.063rem solid", borderColor: theme.colors.boxborder[200], borderRadius: "lg", boxShadow: (_d = (_c = theme.shadows) === null || _c === void 0 ? void 0 : _c.md) !== null && _d !== void 0 ? _d : "md", minW: `${customSelectPos.width}px`, maxW: "20rem", py: 1, overflow: "hidden", children: (_e = insideSelect.option) === null || _e === void 0 ? void 0 : _e.map((item) => {
503
+ }, children: [(0, jsx_runtime_1.jsxs)(react_2.Box, { minW: "4.5rem", cursor: "pointer", display: "flex", justifyContent: "space-between", alignItems: "center", gap: 1, width: insideSelect.width, height: insideSelectBoxHeight, pl: "0.5rem", pr: "0.375rem", children: [insideLabel ? ((0, jsx_runtime_1.jsx)(SelectTruncatedLabel_1.default, { label: insideLabel, maxWidth: insideSelect.width || "6rem", fontSize: s.fieldFontSize })) : ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.fieldFontSize, fontWeight: 500, color: (0, placeholderInk_1.placeholderInk)(theme.colors), isTruncated: true, maxW: insideSelect.width || "6rem", children: insidePlaceholder })), (0, jsx_runtime_1.jsx)(react_2.Box, { as: "span", display: "inline-flex", flexShrink: 0, color: customSelectOpen ? theme.colors.accentText : theme.colors.textMuted, transition: "transform 0.2s ease, color 0.15s ease", transform: customSelectOpen ? "rotate(180deg)" : "rotate(0deg)", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { size: s.chevronSize }) })] }), customSelectOpen && ((0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsx)(react_2.Box, { ref: setInsideSelectMenuRef, id: "custom-select-portal", position: "fixed", top: `${customSelectPos.top}px`, left: `${customSelectPos.left}px`, zIndex: 1510, bg: theme.colors.background[50], border: "0.063rem solid", borderColor: theme.colors.boxborder[200], borderRadius: "lg", boxShadow: (_d = (_c = theme.shadows) === null || _c === void 0 ? void 0 : _c.md) !== null && _d !== void 0 ? _d : "md", minW: `${customSelectPos.width}px`, maxW: "20rem", py: 1, overflow: "hidden", children: (_e = insideSelect.option) === null || _e === void 0 ? void 0 : _e.map((item) => {
499
504
  var _a;
500
505
  const selected = ((_a = insideSelect.value) === null || _a === void 0 ? void 0 : _a.id) === item.id;
501
506
  return ((0, jsx_runtime_1.jsxs)(react_2.Box, { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 2, minH: s.optionRowMinH, py: s.optionRowPy, px: "0.75rem", fontSize: s.dropdownTextFontSize, fontWeight: selected ? 600 : 500, color: selected
502
507
  ? theme.colors.accentText
503
508
  : theme.colors.text[700], bg: selected
504
- ? theme.colors.primary.opacity[8]
509
+ ? dropdownActiveTint
505
510
  : "transparent", _hover: {
506
511
  bg: selected
507
- ? theme.colors.primary.opacity[8]
508
- : theme.colors.gray[50],
512
+ ? dropdownActiveTint
513
+ : dropdownHoverTint,
509
514
  }, cursor: "pointer", onClick: (e) => {
510
515
  e.stopPropagation();
511
516
  handleCustomSelect(item);
@@ -544,10 +549,10 @@ const SearchSelect = ({ id, label, options, onSelect, onSearch, isOptionLoading
544
549
  setCustomSelectOpen(false);
545
550
  return !prev;
546
551
  });
547
- }, "aria-label": "toggle-dropdown", display: "flex", alignItems: "center", children: isOpen ? ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronUp, { size: s.chevronSize })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { size: s.chevronSize })) }))] })] }) }), isOpen && ((0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsxs)(react_2.Box, { ref: setDropdownMenuRef, id: listboxId, role: "listbox", "aria-multiselectable": isMultiple || undefined, position: "fixed", top: `${dropdownPos.top}px`, left: `${dropdownPos.left}px`, width: `${dropdownPos.width}px`, zIndex: 1500, maxH: "20rem", borderWidth: 1, borderColor: theme.colors.boxborder[200], borderRadius: "sm", bg: theme.colors.background[50], boxShadow: "md", display: "flex", flexDirection: "column", children: [isMultiple && isSelectAll && ((0, jsx_runtime_1.jsxs)(react_2.Box, { py: s.optionRowPy, px: 3, cursor: "pointer", onClick: handleSelectAll, display: "flex", alignItems: "center", gap: 2, borderBottom: `0.063rem solid ${theme.colors.boxborder[100]}`, children: [(0, jsx_runtime_1.jsx)(Checkbox_1.default, { isChecked: allFilteredSelected, sx: { pointerEvents: "none" }, size: s.checkboxSize }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.dropdownTextFontSize, children: allFilteredSelected ? "Unselect All" : "Select All" })] })), (0, jsx_runtime_1.jsx)(react_2.Box, { flex: "1", overflowY: "auto", onScroll: handleScroll, maxH: "15rem", borderBottom: "0.063rem solid", borderColor: theme.colors.boxborder[200], children: isOptionLoading && filteredOptions.length === 0 ? ((0, jsx_runtime_1.jsxs)(react_2.Box, { py: s.optionRowPy, px: 3, display: "flex", alignItems: "center", gap: 2, minH: s.optionRowMinH, children: [(0, jsx_runtime_1.jsx)(react_2.Spinner, { size: s.spinnerSize }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.dropdownTextFontSize, children: loadingText })] })) : !isOptionLoading && filteredOptions.length === 0 ? ((0, jsx_runtime_1.jsx)(react_2.Text, { p: 3, fontSize: s.dropdownTextFontSize, color: theme.colors.textMuted, children: "No results found" })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [filteredOptions.map((option, index) => ((0, jsx_runtime_1.jsxs)(react_2.Box, { id: getOptionId(index), role: "option", "aria-selected": isSelected(option.id), py: s.optionRowPy, px: 3, minH: s.optionRowMinH, cursor: "pointer", bg: index === activeIndex
548
- ? theme.colors.primary.opacity[8]
552
+ }, "aria-label": "toggle-dropdown", display: "flex", alignItems: "center", children: isOpen ? ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronUp, { size: s.chevronSize })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { size: s.chevronSize })) }))] })] }) }), isOpen && ((0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsxs)(react_2.Box, { ref: setDropdownMenuRef, id: listboxId, role: "listbox", "aria-multiselectable": isMultiple || undefined, position: "fixed", top: `${dropdownPos.top}px`, left: `${dropdownPos.left}px`, width: `${dropdownPos.width}px`, zIndex: 1500, maxH: "20rem", borderWidth: 1, borderColor: theme.colors.boxborder[200], borderRadius: "sm", bg: theme.colors.background[50], boxShadow: "md", display: "flex", flexDirection: "column", children: [isMultiple && isSelectAll && ((0, jsx_runtime_1.jsxs)(react_2.Box, { py: s.optionRowPy, px: 3, cursor: "pointer", onClick: handleSelectAll, display: "flex", alignItems: "center", gap: 2, borderBottom: `0.063rem solid ${theme.colors.boxborder[200]}`, children: [(0, jsx_runtime_1.jsx)(Checkbox_1.default, { isChecked: allFilteredSelected, sx: { pointerEvents: "none" }, size: s.checkboxSize }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.dropdownTextFontSize, children: allFilteredSelected ? "Unselect All" : "Select All" })] })), (0, jsx_runtime_1.jsx)(react_2.Box, { flex: "1", overflowY: "auto", onScroll: handleScroll, maxH: "15rem", borderBottom: "0.063rem solid", borderColor: theme.colors.boxborder[200], children: isOptionLoading && filteredOptions.length === 0 ? ((0, jsx_runtime_1.jsxs)(react_2.Box, { py: s.optionRowPy, px: 3, display: "flex", alignItems: "center", gap: 2, minH: s.optionRowMinH, children: [(0, jsx_runtime_1.jsx)(react_2.Spinner, { size: s.spinnerSize }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.dropdownTextFontSize, children: loadingText })] })) : !isOptionLoading && filteredOptions.length === 0 ? ((0, jsx_runtime_1.jsx)(react_2.Text, { p: 3, fontSize: s.dropdownTextFontSize, color: theme.colors.textMuted, children: "No results found" })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [filteredOptions.map((option, index) => ((0, jsx_runtime_1.jsxs)(react_2.Box, { id: getOptionId(index), role: "option", "aria-selected": isSelected(option.id), py: s.optionRowPy, px: 3, minH: s.optionRowMinH, cursor: "pointer", bg: index === activeIndex
553
+ ? dropdownActiveTint
549
554
  : isSelected(option.id)
550
555
  ? theme.colors.gray[100]
551
- : "transparent", _hover: { bg: theme.colors.gray[50] }, onClick: () => handleSelect(option), onMouseEnter: () => setActiveIndex(index), display: "flex", alignItems: "center", gap: 2, borderBottom: `0.063rem solid ${theme.colors.boxborder[100]}`, children: [isMultiple && ((0, jsx_runtime_1.jsx)(Checkbox_1.default, { isChecked: isSelected(option.id), sx: { pointerEvents: "none" }, size: s.checkboxSize })), option.view ? ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: option.view })) : ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.dropdownTextFontSize, children: option.label }))] }, option.id))), ((pagination === null || pagination === void 0 ? void 0 : pagination.scrollLoading) || (isOptionLoading && filteredOptions.length > 0)) && ((0, jsx_runtime_1.jsxs)(react_2.Box, { py: s.optionRowPy, px: 3, display: "flex", alignItems: "center", justifyContent: "center", gap: 2, minH: s.optionRowMinH, children: [(0, jsx_runtime_1.jsx)(react_2.Spinner, { size: s.spinnerSize }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.dropdownTextFontSize, children: loadingText })] }))] })) }), (addNew === null || addNew === void 0 ? void 0 : addNew.enabled) && ((0, jsx_runtime_1.jsxs)(react_2.Box, { py: s.optionRowPy, px: 3, borderTop: "0.063rem solid", borderColor: theme.colors.boxborder[200], bg: theme.colors.background[50], display: "flex", alignItems: "center", gap: 2, minH: s.optionRowMinH, cursor: "pointer", onClick: addNew.onClick, _hover: { bg: theme.colors.gray[50] }, children: [addNew.icon || (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: s.addNewIconSize }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.dropdownTextFontSize, children: addNew.text || "Add New" })] }))] }) })), helperText && !error && (0, jsx_runtime_1.jsx)(HelperText_1.default, { helperText: helperText }), error && (0, jsx_runtime_1.jsx)(ErrorMessage_1.default, { errorMessage: errorMessage })] }));
556
+ : "transparent", _hover: { bg: dropdownHoverTint }, onClick: () => handleSelect(option), onMouseEnter: () => setActiveIndex(index), display: "flex", alignItems: "center", gap: 2, borderBottom: `0.063rem solid ${theme.colors.boxborder[200]}`, children: [isMultiple && ((0, jsx_runtime_1.jsx)(Checkbox_1.default, { isChecked: isSelected(option.id), sx: { pointerEvents: "none" }, size: s.checkboxSize })), option.view ? ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: option.view })) : ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.dropdownTextFontSize, children: option.label }))] }, option.id))), ((pagination === null || pagination === void 0 ? void 0 : pagination.scrollLoading) || (isOptionLoading && filteredOptions.length > 0)) && ((0, jsx_runtime_1.jsxs)(react_2.Box, { py: s.optionRowPy, px: 3, display: "flex", alignItems: "center", justifyContent: "center", gap: 2, minH: s.optionRowMinH, children: [(0, jsx_runtime_1.jsx)(react_2.Spinner, { size: s.spinnerSize }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.dropdownTextFontSize, children: loadingText })] }))] })) }), (addNew === null || addNew === void 0 ? void 0 : addNew.enabled) && ((0, jsx_runtime_1.jsxs)(react_2.Box, { py: s.optionRowPy, px: 3, borderTop: "0.063rem solid", borderColor: theme.colors.boxborder[200], bg: theme.colors.background[50], display: "flex", alignItems: "center", gap: 2, minH: s.optionRowMinH, cursor: "pointer", onClick: addNew.onClick, _hover: { bg: dropdownHoverTint }, children: [addNew.icon || (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: s.addNewIconSize }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.dropdownTextFontSize, children: addNew.text || "Add New" })] }))] }) })), helperText && !error && (0, jsx_runtime_1.jsx)(HelperText_1.default, { helperText: helperText }), error && (0, jsx_runtime_1.jsx)(ErrorMessage_1.default, { errorMessage: errorMessage })] }));
552
557
  };
553
558
  exports.default = SearchSelect;
@@ -0,0 +1,2 @@
1
+ import { SegmentedControlProps } from "./SegmentedControlProps";
2
+ export default function SegmentedControl<T extends string = string>({ options, value, onChange, size, isFullWidth, "aria-label": ariaLabel, }: SegmentedControlProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = SegmentedControl;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const react_2 = require("@chakra-ui/react");
7
+ const useCustomTheme_1 = require("../../Theme/useCustomTheme");
8
+ const SIZES = {
9
+ sm: { h: "1.625rem", px: "0.625rem", fontSize: "0.75rem" },
10
+ md: { h: "2rem", px: "0.875rem", fontSize: "0.8125rem" },
11
+ };
12
+ function SegmentedControl({ options, value, onChange, size = "md", isFullWidth = false, "aria-label": ariaLabel, }) {
13
+ const { colors } = (0, useCustomTheme_1.useCustomTheme)();
14
+ const dims = SIZES[size];
15
+ const refs = (0, react_1.useRef)([]);
16
+ const selectedIndex = options.findIndex((o) => o.value === value);
17
+ const enabled = options.reduce((acc, o, i) => (o.isDisabled ? acc : [...acc, i]), []);
18
+ // WAI-APG: with nothing selected, the first enabled segment owns the tab stop.
19
+ const tabIndex = selectedIndex >= 0 ? selectedIndex : enabled[0];
20
+ const selectAt = (index) => {
21
+ var _a;
22
+ (_a = refs.current[index]) === null || _a === void 0 ? void 0 : _a.focus();
23
+ onChange(options[index].value);
24
+ };
25
+ const handleKeyDown = (event) => {
26
+ if (enabled.length === 0)
27
+ return;
28
+ const step = (delta) => {
29
+ const position = enabled.indexOf(tabIndex);
30
+ selectAt(enabled[(position + delta + enabled.length) % enabled.length]);
31
+ };
32
+ if (event.key === "ArrowRight" || event.key === "ArrowDown") {
33
+ event.preventDefault();
34
+ step(1);
35
+ }
36
+ else if (event.key === "ArrowLeft" || event.key === "ArrowUp") {
37
+ event.preventDefault();
38
+ step(-1);
39
+ }
40
+ else if (event.key === "Home") {
41
+ event.preventDefault();
42
+ selectAt(enabled[0]);
43
+ }
44
+ else if (event.key === "End") {
45
+ event.preventDefault();
46
+ selectAt(enabled[enabled.length - 1]);
47
+ }
48
+ };
49
+ return ((0, jsx_runtime_1.jsx)(react_2.Flex, { role: "radiogroup", "aria-label": ariaLabel, onKeyDown: handleKeyDown, display: "inline-flex", align: "center", gap: "0.125rem", p: "0.125rem", borderRadius: "md", bg: colors.background[600], w: isFullWidth ? "100%" : "fit-content", children: options.map((option, index) => {
50
+ const isSelected = option.value === value;
51
+ return ((0, jsx_runtime_1.jsxs)(react_2.Box, { as: "button", type: "button", ref: (node) => {
52
+ refs.current[index] = node;
53
+ }, role: "radio", "aria-checked": isSelected, disabled: option.isDisabled, tabIndex: index === tabIndex ? 0 : -1, onClick: () => onChange(option.value), display: "inline-flex", alignItems: "center", justifyContent: "center", gap: "0.375rem", flex: isFullWidth ? "1" : undefined, h: dims.h, px: dims.px, borderRadius: "base", borderWidth: "1px", borderStyle: "solid", borderColor: isSelected ? colors.background[400] : "transparent", bg: isSelected ? colors.background[50] : "transparent", boxShadow: isSelected ? "sm" : "none", color: isSelected ? colors.text[900] : colors.text[600], fontSize: dims.fontSize, fontWeight: isSelected ? 600 : 500, whiteSpace: "nowrap", opacity: option.isDisabled ? 0.5 : 1, cursor: option.isDisabled ? "not-allowed" : "pointer", transition: "background-color 0.2s ease, color 0.2s ease", _hover: option.isDisabled || isSelected ? undefined : { color: colors.text[900] }, _focusVisible: {
54
+ outline: "none",
55
+ boxShadow: `0 0 0 2px ${colors.primary[300]}`,
56
+ }, children: [option.icon, option.label] }, option.value));
57
+ }) }));
58
+ }
@@ -0,0 +1,16 @@
1
+ export type SegmentedControlSize = "sm" | "md";
2
+ export type SegmentedControlOption<T extends string = string> = {
3
+ value: T;
4
+ label: string;
5
+ icon?: JSX.Element;
6
+ isDisabled?: boolean;
7
+ };
8
+ export type SegmentedControlProps<T extends string = string> = {
9
+ /** Two to five mutually exclusive options. Beyond five, use a Select. */
10
+ options: SegmentedControlOption<T>[];
11
+ value: T;
12
+ onChange: (value: T) => void;
13
+ size?: SegmentedControlSize;
14
+ isFullWidth?: boolean;
15
+ "aria-label": string;
16
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +1,2 @@
1
1
  import { chakraSelectProps } from "./SelectProps";
2
- export default function Select({ placeholder, size, variant, icon, onChange, onBlur, onFocus, errorBorderColor, isDisabled, isReadOnly, isRequired, value, colorScheme, label, error, errorMessage, helperText, options, height, formControlStyle, isInformation, informationMessage, selectStyle, }: chakraSelectProps): import("react/jsx-runtime").JSX.Element;
2
+ export default function Select({ placeholder, size, variant, icon, onChange, onBlur, onFocus, errorBorderColor, isDisabled, isReadOnly, isRequired, value, colorScheme, label, id, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, error, errorMessage, helperText, options, height, formControlStyle, isInformation, informationMessage, selectStyle, }: chakraSelectProps): import("react/jsx-runtime").JSX.Element;
@@ -11,9 +11,11 @@ const textInputIconSize_1 = require("../Input/textInputIconSize");
11
11
  const FormLabel_1 = require("../Common/FormLabel");
12
12
  const ErrorMessage_1 = __importDefault(require("../Common/ErrorMessage"));
13
13
  const HelperText_1 = __importDefault(require("../Common/HelperText"));
14
- function Select({ placeholder = "Select Option", size = "md", variant = "outline", icon, onChange, onBlur, onFocus, errorBorderColor, isDisabled, isReadOnly, isRequired = false, value = "", colorScheme, label, error, errorMessage, helperText, options = [], height, formControlStyle, isInformation = false, informationMessage, selectStyle, }) {
14
+ function Select({ placeholder = "Select Option", size = "md", variant = "outline", icon, onChange, onBlur, onFocus, errorBorderColor, isDisabled, isReadOnly, isRequired = false, value = "", colorScheme, label, id, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, error, errorMessage, helperText, options = [], height, formControlStyle, isInformation = false, informationMessage, selectStyle, }) {
15
15
  const sizeKey = typeof size === "string" ? size : "md";
16
16
  const iconSizePx = (0, textInputIconSize_1.getTextInputIconSizePx)(sizeKey);
17
+ const generatedId = (0, react_1.useId)();
18
+ const selectId = id !== null && id !== void 0 ? id : (label ? generatedId : undefined);
17
19
  const getOptionsList = (0, react_1.useCallback)(() => {
18
20
  if (!options.length)
19
21
  return (0, jsx_runtime_1.jsx)("option", { value: "", children: "No Options" });
@@ -26,5 +28,5 @@ function Select({ placeholder = "Select Option", size = "md", variant = "outline
26
28
  onChange(selectedOption);
27
29
  }
28
30
  };
29
- return ((0, jsx_runtime_1.jsxs)(react_2.FormControl, { isInvalid: error, style: formControlStyle, size: size, children: [label && ((0, jsx_runtime_1.jsx)(FormLabel_1.TextLabel, { label: label, isRequired: isRequired, isInformation: isInformation, informationMessage: informationMessage })), (0, jsx_runtime_1.jsx)(react_2.Select, { placeholder: placeholder, size: size, variant: variant, icon: icon, iconSize: `${iconSizePx}px`, isInvalid: error, value: value, onChange: handleOnChange, onBlur: onBlur, onFocus: onFocus, isDisabled: isDisabled, isReadOnly: isReadOnly, colorScheme: colorScheme, errorBorderColor: errorBorderColor, style: selectStyle, ...(height != null && height !== "" ? { minH: height, h: height } : {}), children: getOptionsList() }), error && (0, jsx_runtime_1.jsx)(ErrorMessage_1.default, { errorMessage: errorMessage }), helperText && !error && (0, jsx_runtime_1.jsx)(HelperText_1.default, { helperText: helperText })] }));
31
+ return ((0, jsx_runtime_1.jsxs)(react_2.FormControl, { isInvalid: error, style: formControlStyle, size: size, children: [label && ((0, jsx_runtime_1.jsx)(FormLabel_1.TextLabel, { label: label, id: selectId, isRequired: isRequired, isInformation: isInformation, informationMessage: informationMessage })), (0, jsx_runtime_1.jsx)(react_2.Select, { id: selectId, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, placeholder: placeholder, size: size, variant: variant, icon: icon, iconSize: `${iconSizePx}px`, isInvalid: error, value: value, onChange: handleOnChange, onBlur: onBlur, onFocus: onFocus, isDisabled: isDisabled, isReadOnly: isReadOnly, colorScheme: colorScheme, errorBorderColor: errorBorderColor, style: selectStyle, ...(height != null && height !== "" ? { minH: height, h: height } : {}), children: getOptionsList() }), error && (0, jsx_runtime_1.jsx)(ErrorMessage_1.default, { errorMessage: errorMessage }), helperText && !error && (0, jsx_runtime_1.jsx)(HelperText_1.default, { helperText: helperText })] }));
30
32
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Select = void 0;
4
+ const placeholderInk_1 = require("../../Theme/tokens/builders/placeholderInk");
4
5
  exports.Select = {
5
6
  baseStyle: ({ theme }) => ({
6
7
  field: {
@@ -19,7 +20,7 @@ exports.Select = {
19
20
  width: "100%", // full container width
20
21
  maxWidth: "100%",
21
22
  _placeholder: {
22
- fontStyle: "italic",
23
+ color: (0, placeholderInk_1.placeholderInk)(theme.colors),
23
24
  whiteSpace: "nowrap",
24
25
  overflow: "hidden",
25
26
  textOverflow: "ellipsis",
@@ -63,7 +64,7 @@ exports.Select = {
63
64
  // [800], not [500]/[700]: WCAG 1.4.11 needs >=3.0 for a control boundary, measured
64
65
  // against the parent surface — up to `muted` (lightest). [700] fails there (2.41-2.72);
65
66
  // [800] clears all named surfaces with margin (3.44-3.90).
66
- const borderColor = theme.colors.boxborder[800];
67
+ const borderColor = theme.colors.boxborder[500];
67
68
  const shadowPrimary = theme.colors.boxShadow.primary;
68
69
  const shadowError = theme.colors.boxShadow.error;
69
70
  const primary = theme.colors.primary[500];
@@ -1,6 +1,9 @@
1
1
  import { SelectProps } from "@chakra-ui/react";
2
2
  export type chakraSelectProps = Pick<SelectProps, "placeholder" | "size" | "variant" | "icon" | "bg" | "borderColor" | "color" | "onBlur" | "onFocus" | "errorBorderColor" | "isDisabled" | "isReadOnly" | "isRequired" | "value" | "colorScheme"> & {
3
3
  label?: string;
4
+ id?: string;
5
+ "aria-label"?: string;
6
+ "aria-labelledby"?: string;
4
7
  error?: boolean;
5
8
  errorMessage?: string;
6
9
  helperText?: string;