pixelize-design-library 2.4.1-beta.1 → 2.4.1-beta.11

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 (573) hide show
  1. package/dist/Assets/defaultLogo.d.ts.map +1 -1
  2. package/dist/Assets/defaultLogo.js +1 -3
  3. package/dist/Assets/defaultLogo.tsx +4 -8
  4. package/dist/Components/Accordion/accordionColors.d.ts.map +1 -1
  5. package/dist/Components/Accordion/accordionColors.js +17 -3
  6. package/dist/Components/Checkbox/Checkbox.styles.d.ts.map +1 -1
  7. package/dist/Components/Checkbox/Checkbox.styles.js +13 -2
  8. package/dist/Components/CustomModulesTable/EditModuleModal.d.ts.map +1 -1
  9. package/dist/Components/CustomModulesTable/EditModuleModal.js +5 -1
  10. package/dist/Components/DatePicker/CalendarPanel.d.ts.map +1 -1
  11. package/dist/Components/DatePicker/CalendarPanel.js +15 -4
  12. package/dist/Components/DatePicker/SingleDatePicker.d.ts.map +1 -1
  13. package/dist/Components/DatePicker/SingleDatePicker.js +11 -9
  14. package/dist/Components/DatePicker/TimeOnlyPicker.js +2 -2
  15. package/dist/Components/DatePicker/TimePicker.d.ts.map +1 -1
  16. package/dist/Components/DatePicker/TimePicker.js +14 -2
  17. package/dist/Components/DatePicker/TimePickerInput.d.ts.map +1 -1
  18. package/dist/Components/DatePicker/TimePickerInput.js +9 -1
  19. package/dist/Components/Editor/joditThemeVars.d.ts.map +1 -1
  20. package/dist/Components/Editor/joditThemeVars.js +9 -0
  21. package/dist/Components/FilePreview/FilePreview.d.ts.map +1 -1
  22. package/dist/Components/FilePreview/FilePreview.js +3 -1
  23. package/dist/Components/FileUploader/FileUploader.js +2 -2
  24. package/dist/Components/FilterSidebar/FilterSidebar.js +1 -1
  25. package/dist/Components/LimitReachedModal/LimitReachedModal.d.ts +5 -0
  26. package/dist/Components/LimitReachedModal/LimitReachedModal.d.ts.map +1 -0
  27. package/dist/Components/LimitReachedModal/LimitReachedModal.js +45 -0
  28. package/dist/Components/LimitReachedModal/LimitReachedModalProps.d.ts +16 -0
  29. package/dist/Components/LimitReachedModal/LimitReachedModalProps.d.ts.map +1 -0
  30. package/dist/Components/LimitReachedModal/LimitReachedModalProps.js +2 -0
  31. package/dist/Components/LimitReachedModal/limitReachedCopy.d.ts +7 -0
  32. package/dist/Components/LimitReachedModal/limitReachedCopy.d.ts.map +1 -0
  33. package/dist/Components/LimitReachedModal/limitReachedCopy.js +54 -0
  34. package/dist/Components/Loading/Loading.d.ts +1 -1
  35. package/dist/Components/Loading/Loading.d.ts.map +1 -1
  36. package/dist/Components/Loading/Loading.js +2 -2
  37. package/dist/Components/Loading/LoadingProps.d.ts +2 -0
  38. package/dist/Components/Loading/LoadingProps.d.ts.map +1 -1
  39. package/dist/Components/Modal/Modal.d.ts.map +1 -1
  40. package/dist/Components/Modal/Modal.js +1 -4
  41. package/dist/Components/NavigationBar/NavigationBar.d.ts.map +1 -1
  42. package/dist/Components/NavigationBar/NavigationBar.js +10 -6
  43. package/dist/Components/OrgSwitcher/OrgSwitcher.d.ts.map +1 -1
  44. package/dist/Components/OrgSwitcher/OrgSwitcher.js +22 -3
  45. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +9 -1
  46. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts.map +1 -1
  47. package/dist/Components/OrgSwitcher/OrgSwitcherProps.js +19 -5
  48. package/dist/Components/OrganizationDetails/CreateOrgModal.js +6 -4
  49. package/dist/Components/OrganizationDetails/OrganizationDetails.d.ts.map +1 -1
  50. package/dist/Components/OrganizationDetails/OrganizationDetails.js +66 -9
  51. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts +47 -14
  52. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts.map +1 -1
  53. package/dist/Components/PlanBadge/PlanBadge.d.ts +12 -0
  54. package/dist/Components/PlanBadge/PlanBadge.d.ts.map +1 -0
  55. package/dist/Components/PlanBadge/PlanBadge.js +22 -0
  56. package/dist/Components/PlanBadge/PlanBadgeProps.d.ts +11 -0
  57. package/dist/Components/PlanBadge/PlanBadgeProps.d.ts.map +1 -0
  58. package/dist/Components/PlanBadge/PlanBadgeProps.js +2 -0
  59. package/dist/Components/PlanPill/PlanPill.d.ts +5 -0
  60. package/dist/Components/PlanPill/PlanPill.d.ts.map +1 -0
  61. package/dist/Components/PlanPill/PlanPill.js +42 -0
  62. package/dist/Components/PlanPill/PlanPillProps.d.ts +28 -0
  63. package/dist/Components/PlanPill/PlanPillProps.d.ts.map +1 -0
  64. package/dist/Components/PlanPill/PlanPillProps.js +2 -0
  65. package/dist/Components/PlanPill/planPillGradient.d.ts +22 -0
  66. package/dist/Components/PlanPill/planPillGradient.d.ts.map +1 -0
  67. package/dist/Components/PlanPill/planPillGradient.js +20 -0
  68. package/dist/Components/Search/Search.d.ts.map +1 -1
  69. package/dist/Components/Search/Search.js +4 -2
  70. package/dist/Components/Select/Select.styles.d.ts.map +1 -1
  71. package/dist/Components/Select/Select.styles.js +29 -20
  72. package/dist/Components/SelectSearch/SelectSearch.js +1 -1
  73. package/dist/Components/SelectV2/SelectV2.d.ts +3 -0
  74. package/dist/Components/SelectV2/SelectV2.d.ts.map +1 -0
  75. package/dist/Components/SelectV2/SelectV2.js +185 -0
  76. package/dist/Components/SelectV2/SelectV2Props.d.ts +67 -0
  77. package/dist/Components/SelectV2/SelectV2Props.d.ts.map +1 -0
  78. package/dist/Components/SelectV2/SelectV2Props.js +2 -0
  79. package/dist/Components/SideBar/SecondaryBar.d.ts.map +1 -1
  80. package/dist/Components/SideBar/SecondaryBar.js +10 -2
  81. package/dist/Components/SideBar/SideBar.js +2 -2
  82. package/dist/Components/SideBar/components/MenuItemBox.d.ts.map +1 -1
  83. package/dist/Components/SideBar/components/MenuItemBox.js +7 -6
  84. package/dist/Components/Table/components/tableRowHoverStyle.d.ts +9 -8
  85. package/dist/Components/Table/components/tableRowHoverStyle.d.ts.map +1 -1
  86. package/dist/Components/Table/components/tableRowHoverStyle.js +12 -12
  87. package/dist/Components/Table/settings/ManageColumns.js +2 -2
  88. package/dist/Components/UpgradeButton/UpgradeButton.d.ts.map +1 -1
  89. package/dist/Components/UpgradeButton/UpgradeButton.js +25 -7
  90. package/dist/Components/UserDetails/UserDetails.d.ts.map +1 -1
  91. package/dist/Components/UserDetails/UserDetails.js +5 -2
  92. package/dist/Components/WorkspaceWindow/WorkspaceTrayPreview.js +2 -1
  93. package/dist/Components/WorkspaceWindow/WorkspaceWindow.d.ts +2 -2
  94. package/dist/Components/WorkspaceWindow/WorkspaceWindow.d.ts.map +1 -1
  95. package/dist/Components/WorkspaceWindow/WorkspaceWindow.js +25 -4
  96. package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts +18 -0
  97. package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts.map +1 -1
  98. package/dist/Theme/chakra/Avatar.styles.d.ts +33 -0
  99. package/dist/Theme/chakra/Avatar.styles.d.ts.map +1 -0
  100. package/dist/Theme/chakra/Avatar.styles.js +28 -0
  101. package/dist/Theme/chakra/Drawer.styles.d.ts +32 -0
  102. package/dist/Theme/chakra/Drawer.styles.d.ts.map +1 -0
  103. package/dist/Theme/chakra/Drawer.styles.js +26 -0
  104. package/dist/Theme/chakra/Menu.styles.d.ts +70 -0
  105. package/dist/Theme/chakra/Menu.styles.d.ts.map +1 -0
  106. package/dist/Theme/chakra/Menu.styles.js +50 -0
  107. package/dist/Theme/chakra/Modal.styles.d.ts +32 -0
  108. package/dist/Theme/chakra/Modal.styles.d.ts.map +1 -0
  109. package/dist/Theme/chakra/Modal.styles.js +26 -0
  110. package/dist/Theme/chakra/Popover.styles.d.ts +37 -0
  111. package/dist/Theme/chakra/Popover.styles.d.ts.map +1 -0
  112. package/dist/Theme/chakra/Popover.styles.js +30 -0
  113. package/dist/Theme/chakra/Slider.styles.d.ts +31 -0
  114. package/dist/Theme/chakra/Slider.styles.d.ts.map +1 -0
  115. package/dist/Theme/chakra/Slider.styles.js +25 -0
  116. package/dist/Theme/chakra/Switch.styles.d.ts +31 -0
  117. package/dist/Theme/chakra/Switch.styles.d.ts.map +1 -0
  118. package/dist/Theme/chakra/Switch.styles.js +24 -0
  119. package/dist/Theme/chakra/Tabs.styles.d.ts +43 -0
  120. package/dist/Theme/chakra/Tabs.styles.d.ts.map +1 -0
  121. package/dist/Theme/chakra/Tabs.styles.js +41 -0
  122. package/dist/Theme/chakra/common.web.d.ts.map +1 -1
  123. package/dist/Theme/chakra/common.web.js +4 -1
  124. package/dist/Theme/chakra/componentStyles.d.ts +230 -1
  125. package/dist/Theme/chakra/componentStyles.d.ts.map +1 -1
  126. package/dist/Theme/chakra/componentStyles.js +136 -0
  127. package/dist/Theme/chakra/createBrandTheme.d.ts.map +1 -1
  128. package/dist/Theme/chakra/createBrandTheme.js +47 -0
  129. package/dist/Theme/provider/PixelizeThemeProvider.d.ts +22 -3
  130. package/dist/Theme/provider/PixelizeThemeProvider.d.ts.map +1 -1
  131. package/dist/Theme/provider/PixelizeThemeProvider.js +115 -5
  132. package/dist/Theme/provider/ThemeSwitcher.d.ts.map +1 -1
  133. package/dist/Theme/provider/ThemeSwitcher.js +23 -11
  134. package/dist/Theme/tokens/brands/index.d.ts.map +1 -1
  135. package/dist/Theme/tokens/brands/index.js +20 -18
  136. package/dist/Theme/tokens/brands/lavender/palette.light.d.ts.map +1 -1
  137. package/dist/Theme/tokens/brands/lavender/palette.light.js +22 -15
  138. package/dist/Theme/tokens/brands/zinc/palette.dark.d.ts.map +1 -1
  139. package/dist/Theme/tokens/brands/zinc/palette.dark.js +5 -2
  140. package/dist/Theme/tokens/builders/buildDarkPalette.d.ts.map +1 -1
  141. package/dist/Theme/tokens/builders/buildDarkPalette.js +19 -4
  142. package/dist/Theme/tokens/builders/outlineRung.d.ts +35 -0
  143. package/dist/Theme/tokens/builders/outlineRung.d.ts.map +1 -0
  144. package/dist/Theme/tokens/builders/outlineRung.js +69 -0
  145. package/dist/Theme/tokens/builders/statusTone.d.ts +35 -0
  146. package/dist/Theme/tokens/builders/statusTone.d.ts.map +1 -0
  147. package/dist/Theme/tokens/builders/statusTone.js +63 -0
  148. package/dist/Utils/accountHandoff.d.ts +54 -0
  149. package/dist/Utils/accountHandoff.d.ts.map +1 -0
  150. package/dist/Utils/accountHandoff.js +144 -0
  151. package/dist/Utils/planBadge.d.ts +39 -0
  152. package/dist/Utils/planBadge.d.ts.map +1 -0
  153. package/dist/Utils/planBadge.js +108 -0
  154. package/dist/Utils/planExpiry.d.ts +35 -0
  155. package/dist/Utils/planExpiry.d.ts.map +1 -0
  156. package/dist/Utils/planExpiry.js +115 -0
  157. package/dist/index.d.ts +18 -1
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/index.js +36 -3
  160. package/package.json +6 -2
  161. package/.claude/settings.local.json +0 -51
  162. package/.cursor/TASK-SETUP.md +0 -43
  163. package/.cursor/agents/be-impl.md +0 -37
  164. package/.cursor/agents/fe-impl.md +0 -39
  165. package/.cursor/agents/task-plan.md +0 -56
  166. package/.cursor/agents/test-create.md +0 -31
  167. package/.cursor/agents/test-exec.md +0 -26
  168. package/.cursor/hooks/task-hint.env +0 -1
  169. package/.cursor/hooks/task-skill-nudge.sh +0 -71
  170. package/.cursor/hooks/task-slash-guard.sh +0 -31
  171. package/.cursor/hooks.json +0 -13
  172. package/.cursor/modules/account-management/MODULE.md +0 -34
  173. package/.cursor/modules/buttons/MODULE.md +0 -47
  174. package/.cursor/modules/cards/MODULE.md +0 -55
  175. package/.cursor/modules/charts/MODULE.md +0 -40
  176. package/.cursor/modules/common/MODULE.md +0 -36
  177. package/.cursor/modules/contact-auth/MODULE.md +0 -19
  178. package/.cursor/modules/data-display/MODULE.md +0 -42
  179. package/.cursor/modules/feedback/MODULE.md +0 -32
  180. package/.cursor/modules/form/MODULE.md +0 -13
  181. package/.cursor/modules/inputs-basic/MODULE.md +0 -42
  182. package/.cursor/modules/inputs-date-file/MODULE.md +0 -56
  183. package/.cursor/modules/inputs-select/MODULE.md +0 -27
  184. package/.cursor/modules/inputs-toggle/MODULE.md +0 -18
  185. package/.cursor/modules/kanban/MODULE.md +0 -22
  186. package/.cursor/modules/layout-navigation/MODULE.md +0 -269
  187. package/.cursor/modules/overlays/MODULE.md +0 -69
  188. package/.cursor/modules/playground/MODULE.md +0 -28
  189. package/.cursor/modules/table/MODULE.md +0 -78
  190. package/.cursor/modules/theme/MODULE.md +0 -314
  191. package/.cursor/modules/types-exports/MODULE.md +0 -17
  192. package/.cursor/modules/utility-ui/MODULE.md +0 -50
  193. package/.cursor/modules/utils-hooks/MODULE.md +0 -35
  194. package/.cursor/pixelize-task-statusline.sh +0 -64
  195. package/.cursor/plans/blocked/.gitkeep +0 -0
  196. package/.cursor/plans/current.md +0 -12
  197. package/.cursor/plans/current.theme-tokens-dark-mode.md +0 -77
  198. package/.cursor/plans/current.theme-tokens-dark.md +0 -155
  199. package/.cursor/plans/done/.gitkeep +0 -0
  200. package/.cursor/rules +0 -31
  201. package/.cursor/skills/task/SKILL.md +0 -167
  202. package/CLAUDE.md +0 -148
  203. package/__mocks__/styleMock.js +0 -8
  204. package/coverage/clover.xml +0 -405
  205. package/coverage/coverage-final.json +0 -16
  206. package/coverage/coverage-summary.json +0 -50
  207. package/coverage/lcov-report/Button/Button.tsx.html +0 -244
  208. package/coverage/lcov-report/Button/index.html +0 -116
  209. package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +0 -433
  210. package/coverage/lcov-report/Checkbox/index.html +0 -116
  211. package/coverage/lcov-report/Common/ErrorMessage.tsx.html +0 -148
  212. package/coverage/lcov-report/Common/FormLabel.tsx.html +0 -331
  213. package/coverage/lcov-report/Common/HelperText.tsx.html +0 -124
  214. package/coverage/lcov-report/Common/index.html +0 -146
  215. package/coverage/lcov-report/Components/Button/Button.tsx.html +0 -244
  216. package/coverage/lcov-report/Components/Button/index.html +0 -116
  217. package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +0 -433
  218. package/coverage/lcov-report/Components/Checkbox/index.html +0 -116
  219. package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +0 -148
  220. package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +0 -331
  221. package/coverage/lcov-report/Components/Common/HelperText.tsx.html +0 -124
  222. package/coverage/lcov-report/Components/Common/index.html +0 -146
  223. package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +0 -712
  224. package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +0 -343
  225. package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +0 -313
  226. package/coverage/lcov-report/Components/CustomModulesTable/index.html +0 -146
  227. package/coverage/lcov-report/Components/Divider/Divider.tsx.html +0 -133
  228. package/coverage/lcov-report/Components/Divider/index.html +0 -116
  229. package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +0 -994
  230. package/coverage/lcov-report/Components/Dropdown/index.html +0 -116
  231. package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +0 -466
  232. package/coverage/lcov-report/Components/EmptyState/index.html +0 -116
  233. package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +0 -373
  234. package/coverage/lcov-report/Components/Header/index.html +0 -116
  235. package/coverage/lcov-report/Components/Input/TextInput.tsx.html +0 -487
  236. package/coverage/lcov-report/Components/Input/index.html +0 -116
  237. package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +0 -205
  238. package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +0 -547
  239. package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +0 -190
  240. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +0 -247
  241. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +0 -116
  242. package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +0 -3598
  243. package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +0 -283
  244. package/coverage/lcov-report/Components/KanbanBoard/index.html +0 -161
  245. package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  246. package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  247. package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  248. package/coverage/lcov-report/Components/OrganizationDetails/index.html +0 -146
  249. package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  250. package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +0 -1732
  251. package/coverage/lcov-report/Components/RolesPermission/index.html +0 -131
  252. package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +0 -2575
  253. package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  254. package/coverage/lcov-report/Components/SearchSelect/index.html +0 -146
  255. package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +0 -496
  256. package/coverage/lcov-report/Components/Select/Select.tsx.html +0 -361
  257. package/coverage/lcov-report/Components/Select/index.html +0 -116
  258. package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +0 -562
  259. package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +0 -346
  260. package/coverage/lcov-report/Components/SideBar/components/index.html +0 -116
  261. package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +0 -490
  262. package/coverage/lcov-report/Components/SignInActivityTable/index.html +0 -116
  263. package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +0 -595
  264. package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +0 -2212
  265. package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +0 -358
  266. package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +0 -358
  267. package/coverage/lcov-report/Components/Table/components/index.html +0 -161
  268. package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +0 -856
  269. package/coverage/lcov-report/Components/Table/settings/index.html +0 -116
  270. package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +0 -331
  271. package/coverage/lcov-report/Components/Tag/Tag.tsx.html +0 -256
  272. package/coverage/lcov-report/Components/Tag/index.html +0 -131
  273. package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +0 -286
  274. package/coverage/lcov-report/Components/ToolTip/index.html +0 -116
  275. package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +0 -709
  276. package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +0 -505
  277. package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +0 -379
  278. package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +0 -1900
  279. package/coverage/lcov-report/Components/UserDetails/index.html +0 -161
  280. package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +0 -466
  281. package/coverage/lcov-report/EmptyState/index.html +0 -116
  282. package/coverage/lcov-report/Hooks/index.html +0 -116
  283. package/coverage/lcov-report/Hooks/usePreferences.ts.html +0 -421
  284. package/coverage/lcov-report/Input/TextInput.tsx.html +0 -487
  285. package/coverage/lcov-report/Input/index.html +0 -131
  286. package/coverage/lcov-report/Input/textInputIconSize.ts.html +0 -205
  287. package/coverage/lcov-report/KanbanBoard.tsx.html +0 -3481
  288. package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  289. package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  290. package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  291. package/coverage/lcov-report/OrganizationDetails/index.html +0 -146
  292. package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  293. package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +0 -1732
  294. package/coverage/lcov-report/RolesPermission/index.html +0 -116
  295. package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +0 -2575
  296. package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  297. package/coverage/lcov-report/SearchSelect/index.html +0 -146
  298. package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +0 -496
  299. package/coverage/lcov-report/Table/CompactSelect.tsx.html +0 -379
  300. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +0 -514
  301. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +0 -373
  302. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +0 -574
  303. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +0 -574
  304. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +0 -1027
  305. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +0 -397
  306. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +0 -1060
  307. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +0 -361
  308. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +0 -337
  309. package/coverage/lcov-report/Table/Components/index.html +0 -266
  310. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +0 -178
  311. package/coverage/lcov-report/Table/Components/useTable.ts.html +0 -778
  312. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +0 -1810
  313. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +0 -178
  314. package/coverage/lcov-report/Table/Table.tsx.html +0 -1567
  315. package/coverage/lcov-report/Table/TableProps.tsx.html +0 -658
  316. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +0 -619
  317. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +0 -229
  318. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +0 -532
  319. package/coverage/lcov-report/Table/TableSettings/index.html +0 -146
  320. package/coverage/lcov-report/Table/TableToDo.tsx.html +0 -973
  321. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +0 -271
  322. package/coverage/lcov-report/Table/filterTypes.ts.html +0 -97
  323. package/coverage/lcov-report/Table/index.html +0 -176
  324. package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +0 -856
  325. package/coverage/lcov-report/Table/settings/index.html +0 -116
  326. package/coverage/lcov-report/Tag/Tag.tsx.html +0 -256
  327. package/coverage/lcov-report/Tag/index.html +0 -116
  328. package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +0 -175
  329. package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +0 -214
  330. package/coverage/lcov-report/Theme/index.html +0 -131
  331. package/coverage/lcov-report/Theme/useCustomTheme.ts.html +0 -100
  332. package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +0 -286
  333. package/coverage/lcov-report/ToolTip/index.html +0 -116
  334. package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +0 -709
  335. package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +0 -505
  336. package/coverage/lcov-report/UserDetails/index.html +0 -116
  337. package/coverage/lcov-report/Utils/functions.ts.html +0 -106
  338. package/coverage/lcov-report/Utils/index.html +0 -116
  339. package/coverage/lcov-report/Utils/table.ts.html +0 -1189
  340. package/coverage/lcov-report/base.css +0 -224
  341. package/coverage/lcov-report/block-navigation.js +0 -87
  342. package/coverage/lcov-report/favicon.png +0 -0
  343. package/coverage/lcov-report/index.html +0 -251
  344. package/coverage/lcov-report/prettify.css +0 -1
  345. package/coverage/lcov-report/prettify.js +0 -2
  346. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  347. package/coverage/lcov-report/sorter.js +0 -210
  348. package/coverage/lcov.info +0 -981
  349. package/dist/App.d.ts +0 -4
  350. package/dist/App.js +0 -95
  351. package/dist/Layout.d.ts +0 -3
  352. package/dist/Layout.js +0 -286
  353. package/dist/Pages/TInput.d.ts +0 -3
  354. package/dist/Pages/TInput.d.ts.map +0 -1
  355. package/dist/Pages/TInput.js +0 -20
  356. package/dist/Pages/accordion.d.ts +0 -3
  357. package/dist/Pages/accordion.d.ts.map +0 -1
  358. package/dist/Pages/accordion.js +0 -21
  359. package/dist/Pages/alertdialog.d.ts +0 -3
  360. package/dist/Pages/alertdialog.d.ts.map +0 -1
  361. package/dist/Pages/alertdialog.js +0 -53
  362. package/dist/Pages/button.d.ts +0 -3
  363. package/dist/Pages/button.d.ts.map +0 -1
  364. package/dist/Pages/button.js +0 -32
  365. package/dist/Pages/card.d.ts +0 -3
  366. package/dist/Pages/card.d.ts.map +0 -1
  367. package/dist/Pages/card.js +0 -102
  368. package/dist/Pages/chart.d.ts +0 -4
  369. package/dist/Pages/chart.d.ts.map +0 -1
  370. package/dist/Pages/chart.js +0 -25
  371. package/dist/Pages/checkbox.d.ts +0 -3
  372. package/dist/Pages/checkbox.d.ts.map +0 -1
  373. package/dist/Pages/checkbox.js +0 -11
  374. package/dist/Pages/contactForm.d.ts +0 -3
  375. package/dist/Pages/contactForm.d.ts.map +0 -1
  376. package/dist/Pages/contactForm.js +0 -15
  377. package/dist/Pages/customModulesTable.d.ts +0 -4
  378. package/dist/Pages/customModulesTable.d.ts.map +0 -1
  379. package/dist/Pages/customModulesTable.js +0 -25
  380. package/dist/Pages/datePick.d.ts +0 -3
  381. package/dist/Pages/datePick.d.ts.map +0 -1
  382. package/dist/Pages/datePick.js +0 -49
  383. package/dist/Pages/drawer.d.ts +0 -3
  384. package/dist/Pages/drawer.d.ts.map +0 -1
  385. package/dist/Pages/drawer.js +0 -53
  386. package/dist/Pages/dropdown.d.ts +0 -3
  387. package/dist/Pages/dropdown.d.ts.map +0 -1
  388. package/dist/Pages/dropdown.js +0 -21
  389. package/dist/Pages/editor.d.ts +0 -3
  390. package/dist/Pages/editor.d.ts.map +0 -1
  391. package/dist/Pages/editor.js +0 -13
  392. package/dist/Pages/feedback.d.ts +0 -2
  393. package/dist/Pages/feedback.d.ts.map +0 -1
  394. package/dist/Pages/feedback.js +0 -12
  395. package/dist/Pages/fileUpload.d.ts +0 -2
  396. package/dist/Pages/fileUpload.d.ts.map +0 -1
  397. package/dist/Pages/fileUpload.js +0 -36
  398. package/dist/Pages/input.d.ts +0 -3
  399. package/dist/Pages/input.d.ts.map +0 -1
  400. package/dist/Pages/input.js +0 -48
  401. package/dist/Pages/kanbanboard.d.ts +0 -3
  402. package/dist/Pages/kanbanboard.d.ts.map +0 -1
  403. package/dist/Pages/kanbanboard.js +0 -182
  404. package/dist/Pages/modal.d.ts +0 -3
  405. package/dist/Pages/modal.d.ts.map +0 -1
  406. package/dist/Pages/modal.js +0 -61
  407. package/dist/Pages/multiSelect.d.ts +0 -3
  408. package/dist/Pages/multiSelect.d.ts.map +0 -1
  409. package/dist/Pages/multiSelect.js +0 -22
  410. package/dist/Pages/noteArea.d.ts +0 -3
  411. package/dist/Pages/noteArea.d.ts.map +0 -1
  412. package/dist/Pages/noteArea.js +0 -26
  413. package/dist/Pages/notification.d.ts +0 -3
  414. package/dist/Pages/notification.d.ts.map +0 -1
  415. package/dist/Pages/notification.js +0 -37
  416. package/dist/Pages/numberInput.d.ts +0 -3
  417. package/dist/Pages/numberInput.d.ts.map +0 -1
  418. package/dist/Pages/numberInput.js +0 -16
  419. package/dist/Pages/orgSwitcher.d.ts +0 -4
  420. package/dist/Pages/orgSwitcher.d.ts.map +0 -1
  421. package/dist/Pages/orgSwitcher.js +0 -36
  422. package/dist/Pages/organizationDetails.d.ts +0 -4
  423. package/dist/Pages/organizationDetails.d.ts.map +0 -1
  424. package/dist/Pages/organizationDetails.js +0 -64
  425. package/dist/Pages/photoViewer.d.ts +0 -3
  426. package/dist/Pages/photoViewer.d.ts.map +0 -1
  427. package/dist/Pages/photoViewer.js +0 -12
  428. package/dist/Pages/pinInputs.d.ts +0 -3
  429. package/dist/Pages/pinInputs.d.ts.map +0 -1
  430. package/dist/Pages/pinInputs.js +0 -11
  431. package/dist/Pages/productCaard.d.ts +0 -3
  432. package/dist/Pages/productCaard.d.ts.map +0 -1
  433. package/dist/Pages/productCaard.js +0 -311
  434. package/dist/Pages/productDetailCard.d.ts +0 -3
  435. package/dist/Pages/productDetailCard.d.ts.map +0 -1
  436. package/dist/Pages/productDetailCard.js +0 -78
  437. package/dist/Pages/productFilter.d.ts +0 -3
  438. package/dist/Pages/productFilter.d.ts.map +0 -1
  439. package/dist/Pages/productFilter.js +0 -148
  440. package/dist/Pages/progressbar.d.ts +0 -3
  441. package/dist/Pages/progressbar.d.ts.map +0 -1
  442. package/dist/Pages/progressbar.js +0 -11
  443. package/dist/Pages/radioButton.d.ts +0 -3
  444. package/dist/Pages/radioButton.d.ts.map +0 -1
  445. package/dist/Pages/radioButton.js +0 -18
  446. package/dist/Pages/rolesPermission.d.ts +0 -4
  447. package/dist/Pages/rolesPermission.d.ts.map +0 -1
  448. package/dist/Pages/rolesPermission.js +0 -144
  449. package/dist/Pages/search.d.ts +0 -3
  450. package/dist/Pages/search.d.ts.map +0 -1
  451. package/dist/Pages/search.js +0 -21
  452. package/dist/Pages/searchSelect.d.ts +0 -3
  453. package/dist/Pages/searchSelect.d.ts.map +0 -1
  454. package/dist/Pages/searchSelect.js +0 -97
  455. package/dist/Pages/select.d.ts +0 -3
  456. package/dist/Pages/select.d.ts.map +0 -1
  457. package/dist/Pages/select.js +0 -20
  458. package/dist/Pages/selectSearch.d.ts +0 -3
  459. package/dist/Pages/selectSearch.d.ts.map +0 -1
  460. package/dist/Pages/selectSearch.js +0 -58
  461. package/dist/Pages/signInActivityTable.d.ts +0 -4
  462. package/dist/Pages/signInActivityTable.d.ts.map +0 -1
  463. package/dist/Pages/signInActivityTable.js +0 -17
  464. package/dist/Pages/skeleton.d.ts +0 -3
  465. package/dist/Pages/skeleton.d.ts.map +0 -1
  466. package/dist/Pages/skeleton.js +0 -12
  467. package/dist/Pages/stageProgress.d.ts +0 -4
  468. package/dist/Pages/stageProgress.d.ts.map +0 -1
  469. package/dist/Pages/stageProgress.js +0 -31
  470. package/dist/Pages/switch.d.ts +0 -3
  471. package/dist/Pages/switch.d.ts.map +0 -1
  472. package/dist/Pages/switch.js +0 -17
  473. package/dist/Pages/table.d.ts +0 -3
  474. package/dist/Pages/table.d.ts.map +0 -1
  475. package/dist/Pages/table.js +0 -182
  476. package/dist/Pages/tag.d.ts +0 -3
  477. package/dist/Pages/tag.d.ts.map +0 -1
  478. package/dist/Pages/tag.js +0 -27
  479. package/dist/Pages/textArea.d.ts +0 -3
  480. package/dist/Pages/textArea.d.ts.map +0 -1
  481. package/dist/Pages/textArea.js +0 -14
  482. package/dist/Pages/tier1.d.ts +0 -4
  483. package/dist/Pages/tier1.d.ts.map +0 -1
  484. package/dist/Pages/tier1.js +0 -86
  485. package/dist/Pages/timeline.d.ts +0 -3
  486. package/dist/Pages/timeline.d.ts.map +0 -1
  487. package/dist/Pages/timeline.js +0 -73
  488. package/dist/Pages/tooltip.d.ts +0 -3
  489. package/dist/Pages/tooltip.d.ts.map +0 -1
  490. package/dist/Pages/tooltip.js +0 -11
  491. package/dist/Pages/toster.d.ts +0 -3
  492. package/dist/Pages/toster.d.ts.map +0 -1
  493. package/dist/Pages/toster.js +0 -53
  494. package/dist/Pages/upgradeButton.d.ts +0 -4
  495. package/dist/Pages/upgradeButton.d.ts.map +0 -1
  496. package/dist/Pages/upgradeButton.js +0 -17
  497. package/dist/Pages/userDetails.d.ts +0 -4
  498. package/dist/Pages/userDetails.d.ts.map +0 -1
  499. package/dist/Pages/userDetails.js +0 -79
  500. package/dist/Pages/verifyEmail.d.ts +0 -3
  501. package/dist/Pages/verifyEmail.d.ts.map +0 -1
  502. package/dist/Pages/verifyEmail.js +0 -17
  503. package/dist/Theme/Dark/theme.d.ts +0 -3
  504. package/dist/Theme/Dark/theme.d.ts.map +0 -1
  505. package/dist/Theme/Dark/theme.js +0 -277
  506. package/dist/Theme/Default/palette.d.ts +0 -375
  507. package/dist/Theme/Default/palette.d.ts.map +0 -1
  508. package/dist/Theme/Default/palette.js +0 -306
  509. package/dist/Theme/Default/theme.d.ts +0 -3
  510. package/dist/Theme/Default/theme.d.ts.map +0 -1
  511. package/dist/Theme/Default/theme.js +0 -19
  512. package/dist/Theme/Emerald/palette.d.ts +0 -375
  513. package/dist/Theme/Emerald/palette.d.ts.map +0 -1
  514. package/dist/Theme/Emerald/palette.js +0 -125
  515. package/dist/Theme/Emerald/theme.d.ts +0 -3
  516. package/dist/Theme/Emerald/theme.d.ts.map +0 -1
  517. package/dist/Theme/Emerald/theme.js +0 -19
  518. package/dist/Theme/Meadow/palette.d.ts +0 -375
  519. package/dist/Theme/Meadow/palette.d.ts.map +0 -1
  520. package/dist/Theme/Meadow/palette.js +0 -123
  521. package/dist/Theme/Meadow/theme.d.ts +0 -3
  522. package/dist/Theme/Meadow/theme.d.ts.map +0 -1
  523. package/dist/Theme/Meadow/theme.js +0 -19
  524. package/dist/Theme/Radiant/palette.d.ts +0 -375
  525. package/dist/Theme/Radiant/palette.d.ts.map +0 -1
  526. package/dist/Theme/Radiant/palette.js +0 -125
  527. package/dist/Theme/Radiant/theme.d.ts +0 -3
  528. package/dist/Theme/Radiant/theme.d.ts.map +0 -1
  529. package/dist/Theme/Radiant/theme.js +0 -19
  530. package/dist/Theme/Rosewood/palette.d.ts +0 -375
  531. package/dist/Theme/Rosewood/palette.d.ts.map +0 -1
  532. package/dist/Theme/Rosewood/palette.js +0 -125
  533. package/dist/Theme/Rosewood/theme.d.ts +0 -3
  534. package/dist/Theme/Rosewood/theme.d.ts.map +0 -1
  535. package/dist/Theme/Rosewood/theme.js +0 -19
  536. package/dist/Theme/Skyline/palette.d.ts +0 -375
  537. package/dist/Theme/Skyline/palette.d.ts.map +0 -1
  538. package/dist/Theme/Skyline/palette.js +0 -123
  539. package/dist/Theme/Skyline/theme.d.ts +0 -3
  540. package/dist/Theme/Skyline/theme.d.ts.map +0 -1
  541. package/dist/Theme/Skyline/theme.js +0 -19
  542. package/dist/Theme/Slate/palette.d.ts +0 -375
  543. package/dist/Theme/Slate/palette.d.ts.map +0 -1
  544. package/dist/Theme/Slate/palette.js +0 -123
  545. package/dist/Theme/Slate/theme.d.ts +0 -3
  546. package/dist/Theme/Slate/theme.d.ts.map +0 -1
  547. package/dist/Theme/Slate/theme.js +0 -19
  548. package/dist/Theme/buildBrandTokens.d.ts +0 -16
  549. package/dist/Theme/buildBrandTokens.d.ts.map +0 -1
  550. package/dist/Theme/buildBrandTokens.js +0 -33
  551. package/dist/Theme/chartColorsFromTheme.d.ts +0 -19
  552. package/dist/Theme/chartColorsFromTheme.d.ts.map +0 -1
  553. package/dist/Theme/chartColorsFromTheme.js +0 -34
  554. package/dist/Theme/common.d.ts +0 -167
  555. package/dist/Theme/common.d.ts.map +0 -1
  556. package/dist/Theme/common.js +0 -112
  557. package/dist/Theme/componentStyles.d.ts +0 -10
  558. package/dist/Theme/componentStyles.d.ts.map +0 -1
  559. package/dist/Theme/componentStyles.js +0 -19
  560. package/dist/Theme/fonts.d.ts +0 -37
  561. package/dist/Theme/fonts.d.ts.map +0 -1
  562. package/dist/Theme/fonts.js +0 -41
  563. package/dist/Theme/space.d.ts +0 -34
  564. package/dist/Theme/space.d.ts.map +0 -1
  565. package/dist/Theme/space.js +0 -35
  566. package/dist/Theme/theme.d.ts +0 -3
  567. package/dist/Theme/theme.d.ts.map +0 -1
  568. package/dist/Theme/theme.js +0 -12
  569. package/dist/bootstrap.d.ts +0 -2
  570. package/dist/bootstrap.js +0 -16
  571. package/eslint.config.js +0 -48
  572. package/index.html +0 -13
  573. package/vite.config.ts +0 -13
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = SelectV2;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const react_2 = require("@chakra-ui/react");
10
+ const lucide_react_1 = require("lucide-react");
11
+ const useCustomTheme_1 = require("../../Theme/useCustomTheme");
12
+ const fieldStyles_1 = require("../Common/fieldStyles");
13
+ const FormLabel_1 = require("../Common/FormLabel");
14
+ const ErrorMessage_1 = __importDefault(require("../Common/ErrorMessage"));
15
+ const HelperText_1 = __importDefault(require("../Common/HelperText"));
16
+ // Mirrors Select.styles.ts sizing so a call site swapping Select -> SelectV2 keeps its layout.
17
+ const SIZE_MAP = {
18
+ sm: { h: "2.125rem", fontSize: "0.8125rem", px: "0.5rem" },
19
+ md: { h: "2.375rem", fontSize: "0.875rem", px: "0.75rem" },
20
+ lg: { h: "2.75rem", fontSize: "0.9375rem", px: "1rem" },
21
+ };
22
+ const asIdSet = (values) => new Set((values !== null && values !== void 0 ? values : []).map((v) => v.toString()));
23
+ function SelectV2(props) {
24
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
25
+ const { options = [], placeholder = "Select Option", label, error = false, errorMessage, helperText, isDisabled = false, isRequired = false, size = "md", isSearchable = true, width, formControlStyle, onBlur, onFocus, renderOption, renderValue, maxMenuHeight = "16rem", defaultOpen = false, "data-testid": dataTestId, "aria-label": ariaLabel, } = props;
26
+ const theme = (0, useCustomTheme_1.useCustomTheme)();
27
+ const { isOpen, onOpen, onClose } = (0, react_2.useDisclosure)({ defaultIsOpen: defaultOpen });
28
+ const [filterText, setFilterText] = (0, react_1.useState)("");
29
+ const [activeIndex, setActiveIndex] = (0, react_1.useState)(-1);
30
+ const triggerRef = (0, react_1.useRef)(null);
31
+ const filterInputRef = (0, react_1.useRef)(null);
32
+ const listRef = (0, react_1.useRef)(null);
33
+ const s = (_a = SIZE_MAP[size]) !== null && _a !== void 0 ? _a : SIZE_MAP.md;
34
+ const fieldStyles = (0, fieldStyles_1.getFieldStateStyles)(theme, { error, focused: isOpen });
35
+ const selectedIds = (0, react_1.useMemo)(() => props.isMulti
36
+ ? asIdSet(props.value)
37
+ : asIdSet(props.value !== undefined ? [props.value] : undefined),
38
+ // eslint-disable-next-line react-hooks/exhaustive-deps
39
+ [props.isMulti, props.isMulti ? props.value : props.value]);
40
+ const selectedOptions = (0, react_1.useMemo)(() => options.filter((option) => selectedIds.has(option.id.toString())), [options, selectedIds]);
41
+ const filteredOptions = (0, react_1.useMemo)(() => {
42
+ if (!isSearchable || !filterText.trim())
43
+ return options;
44
+ const needle = filterText.trim().toLowerCase();
45
+ return options.filter((option) => option.label.toString().toLowerCase().includes(needle));
46
+ }, [options, filterText, isSearchable]);
47
+ const resetAndClose = (0, react_1.useCallback)((opts) => {
48
+ if (props.isMulti && (opts === null || opts === void 0 ? void 0 : opts.keepOpenForMulti))
49
+ return;
50
+ onClose();
51
+ setFilterText("");
52
+ setActiveIndex(-1);
53
+ onBlur === null || onBlur === void 0 ? void 0 : onBlur();
54
+ },
55
+ // eslint-disable-next-line react-hooks/exhaustive-deps
56
+ [onClose, onBlur, props.isMulti]);
57
+ const handleOpen = () => {
58
+ var _a;
59
+ if (isDisabled)
60
+ return;
61
+ onFocus === null || onFocus === void 0 ? void 0 : onFocus();
62
+ onOpen();
63
+ const firstSelected = props.isMulti ? (_a = props.value) === null || _a === void 0 ? void 0 : _a[0] : props.value;
64
+ const selectedFilteredIndex = filteredOptions.findIndex((option) => option.id.toString() === (firstSelected === null || firstSelected === void 0 ? void 0 : firstSelected.toString()));
65
+ setActiveIndex(selectedFilteredIndex);
66
+ };
67
+ const handleSelect = (option) => {
68
+ var _a, _b;
69
+ if (option.isDisabled)
70
+ return;
71
+ if (props.isMulti) {
72
+ const alreadySelected = selectedIds.has(option.id.toString());
73
+ const next = alreadySelected
74
+ ? selectedOptions.filter((selected) => selected.id.toString() !== option.id.toString())
75
+ : [...selectedOptions, option];
76
+ props.onChange(next);
77
+ resetAndClose({ keepOpenForMulti: true });
78
+ (_a = filterInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
79
+ return;
80
+ }
81
+ props.onChange(option);
82
+ resetAndClose();
83
+ (_b = triggerRef.current) === null || _b === void 0 ? void 0 : _b.focus();
84
+ };
85
+ (0, react_1.useEffect)(() => {
86
+ if (isOpen && isSearchable) {
87
+ // Popover content mounts after open; defer focus so it lands on the rendered input.
88
+ const id = requestAnimationFrame(() => { var _a; return (_a = filterInputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); });
89
+ return () => cancelAnimationFrame(id);
90
+ }
91
+ }, [isOpen, isSearchable]);
92
+ (0, react_1.useEffect)(() => {
93
+ var _a;
94
+ if (activeIndex < 0 || !listRef.current)
95
+ return;
96
+ const activeEl = listRef.current.querySelector(`[data-index="${activeIndex}"]`);
97
+ (_a = activeEl === null || activeEl === void 0 ? void 0 : activeEl.scrollIntoView) === null || _a === void 0 ? void 0 : _a.call(activeEl, { block: "nearest" });
98
+ }, [activeIndex]);
99
+ const moveActive = (delta) => {
100
+ if (!filteredOptions.length)
101
+ return;
102
+ setActiveIndex((current) => {
103
+ const next = current + delta;
104
+ if (next < 0)
105
+ return filteredOptions.length - 1;
106
+ if (next >= filteredOptions.length)
107
+ return 0;
108
+ return next;
109
+ });
110
+ };
111
+ const handleTriggerKeyDown = (event) => {
112
+ if (isDisabled)
113
+ return;
114
+ if (event.key === "ArrowDown" || event.key === "ArrowUp" || event.key === "Enter" || event.key === " ") {
115
+ event.preventDefault();
116
+ handleOpen();
117
+ }
118
+ };
119
+ const handleListKeyDown = (event) => {
120
+ var _a;
121
+ switch (event.key) {
122
+ case "ArrowDown":
123
+ event.preventDefault();
124
+ moveActive(1);
125
+ break;
126
+ case "ArrowUp":
127
+ event.preventDefault();
128
+ moveActive(-1);
129
+ break;
130
+ case "Enter": {
131
+ event.preventDefault();
132
+ const activeOption = filteredOptions[activeIndex];
133
+ if (activeOption)
134
+ handleSelect(activeOption);
135
+ break;
136
+ }
137
+ case "Escape":
138
+ event.preventDefault();
139
+ resetAndClose();
140
+ (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
141
+ break;
142
+ case "Tab":
143
+ resetAndClose();
144
+ break;
145
+ default:
146
+ break;
147
+ }
148
+ };
149
+ const listboxId = `selectv2-listbox-${label !== null && label !== void 0 ? label : "field"}`;
150
+ const defaultTriggerContent = () => {
151
+ var _a;
152
+ if (props.isMulti) {
153
+ const max = (_a = props.maxLabelsBeforeSummary) !== null && _a !== void 0 ? _a : 2;
154
+ if (selectedOptions.length === 0)
155
+ return placeholder;
156
+ if (selectedOptions.length > max) {
157
+ return `${selectedOptions.length} selected`;
158
+ }
159
+ return selectedOptions.map((o) => o.label).join(", ");
160
+ }
161
+ return selectedOptions[0] ? selectedOptions[0].label : placeholder;
162
+ };
163
+ const triggerIcon = !props.isMulti && ((_b = selectedOptions[0]) === null || _b === void 0 ? void 0 : _b.icon) ? selectedOptions[0].icon : null;
164
+ return ((0, jsx_runtime_1.jsxs)(react_2.FormControl, { isInvalid: error, isDisabled: isDisabled, style: formControlStyle, width: width, children: [label && ((0, jsx_runtime_1.jsx)(FormLabel_1.TextLabel, { label: label, isRequired: isRequired })), (0, jsx_runtime_1.jsxs)(react_2.Popover, { isOpen: isOpen, onClose: () => resetAndClose(), placement: "bottom-start", matchWidth: true, autoFocus: false, returnFocusOnClose: false, gutter: 4, children: [(0, jsx_runtime_1.jsx)(react_2.PopoverTrigger, { children: (0, jsx_runtime_1.jsxs)(react_2.Box, { as: "button", type: "button", ref: triggerRef, role: "combobox", "aria-haspopup": "listbox", "aria-expanded": isOpen, "aria-controls": listboxId, "aria-disabled": isDisabled, "aria-label": ariaLabel, disabled: isDisabled, onClick: handleOpen, onKeyDown: handleTriggerKeyDown, display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%", h: s.h, px: s.px, fontSize: s.fontSize, fontWeight: 500, textAlign: "left", cursor: isDisabled ? "not-allowed" : "pointer", opacity: isDisabled ? 0.4 : 1, color: selectedOptions.length ? (_c = theme.colors.text) === null || _c === void 0 ? void 0 : _c[900] : (_d = theme.colors.gray) === null || _d === void 0 ? void 0 : _d[500], "data-testid": dataTestId, ...fieldStyles, children: [(0, jsx_runtime_1.jsxs)(react_2.Box, { as: "span", display: "inline-flex", alignItems: "center", gap: 1.5, minW: 0, isTruncated: true, children: [triggerIcon ? ((0, jsx_runtime_1.jsx)(react_2.Box, { as: "span", display: "inline-flex", flexShrink: 0, children: triggerIcon })) : null, (0, jsx_runtime_1.jsx)(react_2.Box, { as: "span", isTruncated: true, fontStyle: selectedOptions.length ? "normal" : "italic", children: renderValue ? renderValue(selectedOptions) : defaultTriggerContent() })] }), (0, jsx_runtime_1.jsx)(react_2.Box, { as: "span", display: "inline-flex", flexShrink: 0, ml: 2, transition: "transform 0.2s ease", transform: isOpen ? "rotate(180deg)" : "rotate(0deg)", color: (_e = theme.colors.gray) === null || _e === void 0 ? void 0 : _e[500], children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { size: 16 }) })] }) }), (0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsxs)(react_2.PopoverContent, { width: "100%", borderRadius: "0.625rem", border: `0.063rem solid ${(_g = (_f = theme.colors.boxborder) === null || _f === void 0 ? void 0 : _f[200]) !== null && _g !== void 0 ? _g : (_h = theme.colors.gray) === null || _h === void 0 ? void 0 : _h[200]}`, boxShadow: (_j = theme.shadows) === null || _j === void 0 ? void 0 : _j.lg, overflow: "hidden", onKeyDown: handleListKeyDown, children: [isSearchable && ((0, jsx_runtime_1.jsx)(react_2.Box, { p: 2, borderBottom: `0.063rem solid ${(_l = (_k = theme.colors.boxborder) === null || _k === void 0 ? void 0 : _k[100]) !== null && _l !== void 0 ? _l : (_m = theme.colors.gray) === null || _m === void 0 ? void 0 : _m[200]}`, children: (0, jsx_runtime_1.jsx)(react_2.Input, { ref: filterInputRef, size: "sm", placeholder: "Type to filter...", value: filterText, onChange: (event) => {
165
+ setFilterText(event.target.value);
166
+ setActiveIndex(0);
167
+ }, "aria-label": "Filter options" }) })), (0, jsx_runtime_1.jsxs)(react_2.Box, { id: listboxId, ref: listRef, role: "listbox", "aria-multiselectable": props.isMulti || undefined, maxH: maxMenuHeight, overflowY: "auto", py: 1, sx: {
168
+ scrollbarWidth: "thin",
169
+ scrollbarColor: `${(_o = theme.colors.gray) === null || _o === void 0 ? void 0 : _o[300]} transparent`,
170
+ "&::-webkit-scrollbar": { width: "6px" },
171
+ "&::-webkit-scrollbar-thumb": {
172
+ background: (_p = theme.colors.gray) === null || _p === void 0 ? void 0 : _p[300],
173
+ borderRadius: "3px",
174
+ },
175
+ }, children: [filteredOptions.length === 0 && ((0, jsx_runtime_1.jsx)(react_2.Box, { px: 3, py: 2, fontSize: "0.8125rem", color: (_q = theme.colors.gray) === null || _q === void 0 ? void 0 : _q[500], children: "No Options" })), filteredOptions.map((option, index) => {
176
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
177
+ const isSelected = selectedIds.has(option.id.toString());
178
+ const isActive = index === activeIndex;
179
+ return ((0, jsx_runtime_1.jsxs)(react_2.Box, { id: `${listboxId}-option-${index}`, "data-index": index, role: "option", "aria-selected": isSelected, "aria-disabled": option.isDisabled, onMouseEnter: () => setActiveIndex(index), onClick: () => handleSelect(option), mx: 1.5, px: 2.5, py: 1.5, borderRadius: "0.375rem", cursor: option.isDisabled ? "not-allowed" : "pointer", opacity: option.isDisabled ? 0.4 : 1, display: "flex", alignItems: "center", gap: 2, fontSize: "0.8125rem", fontWeight: isSelected && !props.isMulti ? 600 : 500, color: isSelected && !props.isMulti
180
+ ? (_b = (_a = theme.colors.primary) === null || _a === void 0 ? void 0 : _a[700]) !== null && _b !== void 0 ? _b : (_c = theme.colors.primary) === null || _c === void 0 ? void 0 : _c[600]
181
+ : (_e = (_d = theme.colors.text) === null || _d === void 0 ? void 0 : _d[700]) !== null && _e !== void 0 ? _e : (_f = theme.colors.gray) === null || _f === void 0 ? void 0 : _f[700], bg: isActive
182
+ ? (_j = (_h = (_g = theme.colors.primary) === null || _g === void 0 ? void 0 : _g.opacity) === null || _h === void 0 ? void 0 : _h[8]) !== null && _j !== void 0 ? _j : (_k = theme.colors.gray) === null || _k === void 0 ? void 0 : _k[100]
183
+ : "transparent", transition: "background 0.12s ease, color 0.12s ease", children: [props.isMulti ? ((0, jsx_runtime_1.jsx)(react_2.Checkbox, { isChecked: isSelected, isDisabled: option.isDisabled, pointerEvents: "none", tabIndex: -1 })) : null, renderOption ? ((0, jsx_runtime_1.jsx)(react_2.Box, { flex: 1, minW: 0, children: renderOption(option, { isSelected, isActive }) })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [option.icon ? ((0, jsx_runtime_1.jsx)(react_2.Box, { as: "span", display: "inline-flex", flexShrink: 0, children: option.icon })) : null, (0, jsx_runtime_1.jsxs)(react_2.Box, { flex: 1, minW: 0, isTruncated: true, children: [(0, jsx_runtime_1.jsx)(react_2.Box, { as: "span", isTruncated: true, children: option.label }), option.description ? ((0, jsx_runtime_1.jsx)(react_2.Box, { as: "span", display: "block", fontSize: "0.75rem", fontWeight: 400, color: (_l = theme.colors.gray) === null || _l === void 0 ? void 0 : _l[500], isTruncated: true, children: option.description })) : null] })] }))] }, option.id));
184
+ })] })] }) })] }), error && (0, jsx_runtime_1.jsx)(ErrorMessage_1.default, { errorMessage: errorMessage }), helperText && !error && (0, jsx_runtime_1.jsx)(HelperText_1.default, { helperText: helperText })] }));
185
+ }
@@ -0,0 +1,67 @@
1
+ import type { ReactNode } from "react";
2
+ export type OptionProp = {
3
+ id: string | number;
4
+ label: string | number;
5
+ /** Optional leading icon/avatar for this option's row (and the trigger, when selected). */
6
+ icon?: ReactNode;
7
+ /** Optional secondary line under the label (e.g. an email under a name). */
8
+ description?: string;
9
+ isDisabled?: boolean;
10
+ };
11
+ export type SelectV2Size = "sm" | "md" | "lg";
12
+ type SelectV2CommonProps = {
13
+ options: OptionProp[];
14
+ placeholder?: string;
15
+ label?: string;
16
+ error?: boolean;
17
+ errorMessage?: string;
18
+ helperText?: string;
19
+ isDisabled?: boolean;
20
+ isRequired?: boolean;
21
+ size?: SelectV2Size;
22
+ /** Shows a type-ahead filter input at the top of the popup. Defaults to true. */
23
+ isSearchable?: boolean;
24
+ /** Width applied to the trigger + popup. Defaults to 100% of the container. */
25
+ width?: string | number;
26
+ formControlStyle?: React.CSSProperties;
27
+ onBlur?: () => void;
28
+ onFocus?: () => void;
29
+ /** Forwarded to the trigger button — lets call sites keep existing RTL/e2e queries when migrating from `Select`. */
30
+ "data-testid"?: string;
31
+ /** Forwarded to the trigger button — for a labelless select (no `label` prop) that still needs an accessible name. */
32
+ "aria-label"?: string;
33
+ /**
34
+ * Full control over an option row's contents (icon + label + badge, avatar + name/email, etc).
35
+ * Falls back to plain `option.label` text when omitted. Receives `isSelected`/`isActive` so a
36
+ * custom row can mirror the built-in selected/keyboard-active styling if it re-implements them.
37
+ */
38
+ renderOption?: (option: OptionProp, state: {
39
+ isSelected: boolean;
40
+ isActive: boolean;
41
+ }) => ReactNode;
42
+ /** Custom trigger content when a value (or values) is selected. Falls back to label text / icon. */
43
+ renderValue?: (selected: OptionProp[]) => ReactNode;
44
+ /** Max popup height before the option list scrolls. Defaults to "16rem". */
45
+ maxMenuHeight?: string;
46
+ /**
47
+ * Opens the popup immediately on mount instead of waiting for a click — for inline-edit
48
+ * patterns (a table cell that swaps to a select the instant it becomes editable). Clicking
49
+ * away still closes it via the normal Popover close-on-blur behavior (which fires `onBlur`).
50
+ */
51
+ defaultOpen?: boolean;
52
+ };
53
+ export type SelectV2SingleProps = SelectV2CommonProps & {
54
+ isMulti?: false;
55
+ value?: string | number;
56
+ onChange: (selectedOption: OptionProp | undefined) => void;
57
+ };
58
+ export type SelectV2MultiProps = SelectV2CommonProps & {
59
+ isMulti: true;
60
+ value?: (string | number)[];
61
+ onChange: (selectedOptions: OptionProp[]) => void;
62
+ /** Show "N selected" once more than this many are chosen, instead of listing every label. Defaults to 2. */
63
+ maxLabelsBeforeSummary?: number;
64
+ };
65
+ export type SelectV2Props = SelectV2SingleProps | SelectV2MultiProps;
66
+ export {};
67
+ //# sourceMappingURL=SelectV2Props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectV2Props.d.ts","sourceRoot":"","sources":["../../../src/Components/SelectV2/SelectV2Props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,2FAA2F;IAC3F,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9C,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oHAAoH;IACpH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sHAAsH;IACtH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAC9C,SAAS,CAAC;IACf,oGAAoG;IACpG,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,SAAS,CAAC;IACpD,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG;IACtD,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,EAAE,CAAC,cAAc,EAAE,UAAU,GAAG,SAAS,KAAK,IAAI,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG;IACrD,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5B,QAAQ,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAClD,4GAA4G;IAC5G,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"SecondaryBar.d.ts","sourceRoot":"","sources":["../../../src/Components/SideBar/SecondaryBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgBxC,OAAO,EAAa,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAuK9D,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyH7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"SecondaryBar.d.ts","sourceRoot":"","sources":["../../../src/Components/SideBar/SecondaryBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgBxC,OAAO,EAAa,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA+K9D,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyH7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -28,7 +28,13 @@ const CollapsedItem = ({ item, isActive, itemFontSize, onItemClick }) => {
28
28
  const isDark = (0, accentText_1.isDarkCanvas)((_b = (_a = theme.colors.backgroundColor) === null || _a === void 0 ? void 0 : _a.main) !== null && _b !== void 0 ? _b : "#ffffff");
29
29
  const activeAccent = (0, sidebarAccentColors_1.useSidebarActiveAccent)(theme.colors, isDark);
30
30
  const { badgeVal, colorScheme, radius, variant } = parseBadge(item.badge);
31
- return ((0, jsx_runtime_1.jsxs)(react_2.Popover, { trigger: "hover", placement: "right-start", closeOnBlur: false, isLazy: true, children: [(0, jsx_runtime_1.jsx)(react_2.PopoverTrigger, { children: (0, jsx_runtime_1.jsx)(react_2.Box, { role: "group", py: "8px", mb: "2px", borderRadius: "7px", display: "flex", alignItems: "center", justifyContent: "center", cursor: item.disabled ? "not-allowed" : "pointer", opacity: item.disabled ? 0.6 : 1, borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.primary[500] : "transparent", _hover: { bg: item.disabled ? "transparent" : "whiteAlpha.100" }, onClick: () => !item.disabled && (onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item)), bg: isActive ? theme.colors.primary.opacity[16] : "transparent", transition: "background 0.12s", children: (0, jsx_runtime_1.jsxs)(react_2.Box, { position: "relative", display: "flex", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: item.icon, fontSize: "1rem", color: isActive ? activeAccent.icon : "whiteAlpha.600", _groupHover: isActive ? undefined : { color: "whiteAlpha.800" }, transition: "color 0.12s" }), badgeVal != null && ((0, jsx_runtime_1.jsx)(react_2.Box, { position: "absolute", top: "0", right: "0", w: "0.375rem", h: "0.375rem", borderRadius: "full", bg: theme.colors.red[400] }))] }) }) }), (0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { borderRadius: "0.5rem", bg: theme.colors.sidebar.background[200], boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", cursor: item.disabled ? "not-allowed" : "pointer", zIndex: 1500, color: "white", border: 'none', children: (0, jsx_runtime_1.jsx)(react_2.PopoverBody, { p: "0.75rem", children: (0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "0.5rem", justify: "space-between", children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "0.5rem", flex: "1", minW: 0, children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: item.icon, fontSize: "1rem", flexShrink: 0 }), (0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "right", maxWidth: "100%", fontSize: itemFontSize, fontWeight: "medium", as: "p", children: item.title })] }), badgeVal != null && ((0, jsx_runtime_1.jsx)(react_2.Badge, { colorScheme: colorScheme, fontSize: "0.625rem", variant: variant, borderRadius: radius, children: badgeVal }))] }) }) }) })] }));
31
+ return ((0, jsx_runtime_1.jsxs)(react_2.Popover, { trigger: "hover", placement: "right-start", closeOnBlur: false, isLazy: true, children: [(0, jsx_runtime_1.jsx)(react_2.PopoverTrigger, { children: (0, jsx_runtime_1.jsx)(react_2.Box, { role: "group", py: "8px", mb: "2px", borderRadius: "7px", display: "flex", alignItems: "center", justifyContent: "center", cursor: item.disabled ? "not-allowed" : "pointer", opacity: item.disabled ? 0.6 : 1, borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.primary[500] : "transparent", _hover: {
32
+ bg: item.disabled
33
+ ? "transparent"
34
+ : isActive
35
+ ? "whiteAlpha.400"
36
+ : "whiteAlpha.200",
37
+ }, onClick: () => !item.disabled && (onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item)), bg: isActive ? "whiteAlpha.300" : "transparent", transition: "background 0.12s", children: (0, jsx_runtime_1.jsxs)(react_2.Box, { position: "relative", display: "flex", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: item.icon, fontSize: "1rem", color: isActive ? activeAccent.icon : "whiteAlpha.600", _groupHover: isActive ? undefined : { color: "whiteAlpha.800" }, transition: "color 0.12s" }), badgeVal != null && ((0, jsx_runtime_1.jsx)(react_2.Box, { position: "absolute", top: "0", right: "0", w: "0.375rem", h: "0.375rem", borderRadius: "full", bg: theme.colors.red[400] }))] }) }) }), (0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { borderRadius: "0.5rem", bg: theme.colors.sidebar.background[200], boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", cursor: item.disabled ? "not-allowed" : "pointer", zIndex: 1500, color: "white", border: 'none', children: (0, jsx_runtime_1.jsx)(react_2.PopoverBody, { p: "0.75rem", children: (0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "0.5rem", justify: "space-between", children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "0.5rem", flex: "1", minW: 0, children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: item.icon, fontSize: "1rem", flexShrink: 0 }), (0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "right", maxWidth: "100%", fontSize: itemFontSize, fontWeight: "medium", as: "p", children: item.title })] }), badgeVal != null && ((0, jsx_runtime_1.jsx)(react_2.Badge, { colorScheme: colorScheme, fontSize: "0.625rem", variant: variant, borderRadius: radius, children: badgeVal }))] }) }) }) })] }));
32
38
  };
33
39
  const ExpandedItem = ({ item, isActive, itemFontSize, onItemClick }) => {
34
40
  var _a, _b;
@@ -36,7 +42,9 @@ const ExpandedItem = ({ item, isActive, itemFontSize, onItemClick }) => {
36
42
  const isDark = (0, accentText_1.isDarkCanvas)((_b = (_a = theme.colors.backgroundColor) === null || _a === void 0 ? void 0 : _a.main) !== null && _b !== void 0 ? _b : "#ffffff");
37
43
  const activeAccent = (0, sidebarAccentColors_1.useSidebarActiveAccent)(theme.colors, isDark);
38
44
  const { badgeVal, colorScheme, radius, variant } = parseBadge(item.badge);
39
- return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { role: "group", px: "8px", py: "7px", mb: "2px", borderRadius: "7px", align: "center", justify: "space-between", gap: "8px", overflow: "hidden", cursor: item.disabled ? "not-allowed" : "pointer", opacity: item.disabled ? 0.6 : 1, bg: isActive ? theme.colors.primary.opacity[16] : "transparent", _hover: { bg: item.disabled ? "transparent" : "whiteAlpha.100" }, onClick: () => !item.disabled && (onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item)), borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.primary[500] : "transparent", transition: "background 0.12s", children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "8px", flex: "1", minW: 0, overflow: "hidden", children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: item.icon, fontSize: "0.95rem", flexShrink: 0, color: isActive ? activeAccent.icon : "whiteAlpha.800", _groupHover: isActive ? undefined : { color: "white" }, transition: "color 0.12s" }), (0, jsx_runtime_1.jsx)(react_2.Box, { flex: "1", minW: 0, children: (0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "right", maxWidth: "100%", fontSize: itemFontSize, fontWeight: isActive ? 600 : 500, color: isActive ? activeAccent.label : "whiteAlpha.900", _groupHover: isActive ? undefined : { color: "white" }, as: "p", children: item.title }) })] }), badgeVal != null && ((0, jsx_runtime_1.jsx)(react_2.Badge, { colorScheme: colorScheme, fontSize: "0.625rem", variant: variant, borderRadius: radius, children: badgeVal }))] }));
45
+ return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { role: "group", px: "8px", py: "7px", mb: "2px", borderRadius: "7px", align: "center", justify: "space-between", gap: "8px", overflow: "hidden", cursor: item.disabled ? "not-allowed" : "pointer", opacity: item.disabled ? 0.6 : 1, bg: isActive ? "whiteAlpha.300" : "transparent", _hover: {
46
+ bg: item.disabled ? "transparent" : isActive ? "whiteAlpha.400" : "whiteAlpha.200",
47
+ }, onClick: () => !item.disabled && (onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item)), borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.primary[500] : "transparent", transition: "background 0.12s", children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "8px", flex: "1", minW: 0, overflow: "hidden", children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: item.icon, fontSize: "0.95rem", flexShrink: 0, color: isActive ? activeAccent.icon : "whiteAlpha.800", _groupHover: isActive ? undefined : { color: "white" }, transition: "color 0.12s" }), (0, jsx_runtime_1.jsx)(react_2.Box, { flex: "1", minW: 0, children: (0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "right", maxWidth: "100%", fontSize: itemFontSize, fontWeight: isActive ? 600 : 500, color: isActive ? activeAccent.label : "whiteAlpha.900", _groupHover: isActive ? undefined : { color: "white" }, as: "p", children: item.title }) })] }), badgeVal != null && ((0, jsx_runtime_1.jsx)(react_2.Badge, { colorScheme: colorScheme, fontSize: "0.625rem", variant: variant, borderRadius: radius, children: badgeVal }))] }));
40
48
  };
41
49
  const SecondaryBar = ({ items = [], defaultCollapsed = true, collapsedWidth = "3.5rem", expandedWidth = "10rem", headerFontSize = "0.75rem", itemFontSize = "0.75rem", selected, onItemClick, title, icon, }) => {
42
50
  var _a, _b;
@@ -29,7 +29,7 @@ const SidebarHeader = ({ logo, companyName, companySubtitle, toggle, isLoading,
29
29
  if (isLoading) {
30
30
  return ((0, jsx_runtime_1.jsx)(react_2.Box, { w: "100%", px: toggle ? 2 : 4, py: 2, h: Sidebar_1.HEADER_HEIGHT, display: "flex", alignItems: "center", flexShrink: 0, children: toggle ? ((0, jsx_runtime_1.jsx)(react_2.Flex, { align: "center", gap: 4, justifyContent: "center", w: "100%", children: (0, jsx_runtime_1.jsx)(react_2.Skeleton, { w: "28px", h: "28px", borderRadius: "md", startColor: "gray.600", endColor: "gray.500" }) })) : ((0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: 3, w: "100%", children: [(0, jsx_runtime_1.jsx)(react_2.Skeleton, { w: "28px", h: "28px", borderRadius: "md", startColor: "gray.600", endColor: "gray.500" }), (0, jsx_runtime_1.jsx)(react_2.Skeleton, { h: "1.25rem", w: "60%", borderRadius: "md", startColor: "gray.600", endColor: "gray.500" })] })) }));
31
31
  }
32
- const logoNode = logo ? ((0, jsx_runtime_1.jsx)(react_2.Image, { borderRadius: "md", boxSize: "1.75rem", src: logo, alt: "Company Logo", flexShrink: 0, cursor: toggle ? "pointer" : undefined, onClick: toggle ? onToggle : undefined, "aria-label": toggle ? "Expand sidebar" : undefined })) : ((0, jsx_runtime_1.jsx)(react_2.Box, { bg: theme.colors.primary[500], color: theme.colors.white, borderRadius: "md", boxSize: "1.75rem", display: "flex", alignItems: "center", justifyContent: "center", fontWeight: "bold", flexShrink: 0, cursor: toggle ? "pointer" : undefined, onClick: toggle ? onToggle : undefined, "aria-label": toggle ? "Expand sidebar" : undefined, children: (0, jsx_runtime_1.jsx)(defaultLogo_1.default, {}) }));
32
+ const logoNode = logo ? ((0, jsx_runtime_1.jsx)(react_2.Image, { borderRadius: "md", boxSize: "1.75rem", src: logo, alt: "Company Logo", flexShrink: 0, cursor: toggle ? "pointer" : undefined, onClick: toggle ? onToggle : undefined, "aria-label": toggle ? "Expand sidebar" : undefined })) : ((0, jsx_runtime_1.jsx)(react_2.Box, { bg: theme.colors.primary[500], color: (0, accentText_1.onFilled)(theme.colors.primary[500], theme.colors.white, theme.colors.black), borderRadius: "md", boxSize: "1.75rem", display: "flex", alignItems: "center", justifyContent: "center", fontWeight: "bold", flexShrink: 0, cursor: toggle ? "pointer" : undefined, onClick: toggle ? onToggle : undefined, "aria-label": toggle ? "Expand sidebar" : undefined, children: (0, jsx_runtime_1.jsx)(defaultLogo_1.default, {}) }));
33
33
  return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { h: Sidebar_1.HEADER_HEIGHT, w: "100%", alignItems: "center", justifyContent: toggle ? "center" : "flex-start", gap: "8px", px: toggle ? "8px" : "10px", borderBottom: "1px solid", borderColor: "whiteAlpha.100", minW: 0, overflow: "hidden", flexShrink: 0, children: [logoNode, !toggle && ((0, jsx_runtime_1.jsxs)(react_2.Box, { flex: "1", minW: 0, children: [(0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "right", fontWeight: 600, fontSize: "12.5px", textAlign: "left", color: theme.colors.white, lineHeight: "1.3", as: "p", width: "100%", children: companyName !== null && companyName !== void 0 ? companyName : "" }), companySubtitle && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "10px", color: "whiteAlpha.500", lineHeight: "1.3", isTruncated: true, children: companySubtitle }))] })), !toggle && ((0, jsx_runtime_1.jsx)(react_2.Box, { as: "button", type: "button", onClick: overlay ? onClose : onToggle, "aria-label": overlay ? "Close menu" : "Collapse sidebar", w: "22px", h: "22px", borderRadius: "5px", bg: "whiteAlpha.100", display: "flex", alignItems: "center", justifyContent: "center", flexShrink: 0, _hover: { bg: "whiteAlpha.300" }, transition: "background 0.15s", children: overlay ? ((0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 15, color: theme.colors.white, opacity: 0.7 })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronLeft, { size: 14, color: theme.colors.white, opacity: 0.6 })) }))] }));
34
34
  };
35
35
  const SkeletonMenuRow = ({ toggle }) => ((0, jsx_runtime_1.jsx)(react_2.Box, { w: "100%", px: toggle ? 1 : 2, py: 2, children: toggle ? ((0, jsx_runtime_1.jsx)(react_2.Flex, { align: "center", gap: 4, justifyContent: "center", children: (0, jsx_runtime_1.jsx)(react_2.Skeleton, { w: "24px", h: "24px", borderRadius: "md", startColor: "gray.600", endColor: "gray.500" }) })) : ((0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: 3, children: [(0, jsx_runtime_1.jsx)(react_2.Skeleton, { w: "18px", h: "18px", borderRadius: "md", startColor: "gray.600", endColor: "gray.500" }), (0, jsx_runtime_1.jsx)(react_2.Skeleton, { h: "0.875rem", w: "80%", borderRadius: "md", startColor: "gray.600", endColor: "gray.500" })] })) }));
@@ -64,7 +64,7 @@ const ControlCell = ({ onClick, label, accent, children }) => {
64
64
  const theme = (0, useCustomTheme_1.useCustomTheme)();
65
65
  const isDark = (0, accentText_1.isDarkCanvas)((_b = (_a = theme.colors.backgroundColor) === null || _a === void 0 ? void 0 : _a.main) !== null && _b !== void 0 ? _b : "#ffffff");
66
66
  const activeAccent = (0, sidebarAccentColors_1.useSidebarActiveAccent)(theme.colors, isDark);
67
- return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", flex: "1", minW: 0, alignItems: "center", justifyContent: "center", gap: "7px", px: "6px", py: "8px", cursor: "pointer", border: "none", bg: accent ? theme.colors.primary.opacity[16] : "transparent", onClick: onClick, _hover: { bg: accent ? theme.colors.primary.opacity[32] : "whiteAlpha.100" }, transition: "background 0.15s", children: [children, label && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "11.5px", color: accent ? activeAccent.icon : "whiteAlpha.700", fontWeight: "medium", children: label }))] }));
67
+ return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", flex: "1", minW: 0, alignItems: "center", justifyContent: "center", gap: "7px", px: "6px", py: "8px", cursor: "pointer", border: "none", bg: accent ? "whiteAlpha.300" : "transparent", onClick: onClick, _hover: { bg: accent ? "whiteAlpha.400" : "whiteAlpha.200" }, transition: "background 0.15s", children: [children, label && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "11.5px", color: accent ? activeAccent.icon : "whiteAlpha.700", fontWeight: "medium", children: label }))] }));
68
68
  };
69
69
  // Collapse (mini-rail) sits next to the Hide/Show navbar-mode toggle. In the
70
70
  // desktop mobile-nav overlay only "Show" (return to the docked sidebar) is shown;
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemBox.d.ts","sourceRoot":"","sources":["../../../../src/Components/SideBar/components/MenuItemBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,UAAU,KAAK;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuShC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"MenuItemBox.d.ts","sourceRoot":"","sources":["../../../../src/Components/SideBar/components/MenuItemBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,UAAU,KAAK;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwShC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -39,8 +39,11 @@ const MenuItemBox = ({ menu, activeMenu, toggle, handleClick, isOpen, onToggle,
39
39
  if (!disabled)
40
40
  handleClick === null || handleClick === void 0 ? void 0 : handleClick(menu);
41
41
  };
42
- // Pill-style nav item. Active items use a translucent-purple fill + a left
43
- // accent bar; idle items rely on a subtle white-overlay hover.
42
+ // Pill-style nav item. The fill is a white overlay, not a brand tint: the sidebar is a
43
+ // near-black surface in BOTH modes, and a `primary.opacity` tint of a dark accent on it is
44
+ // imperceptible for most brands (measured 1.03-1.15 idle->hover) and exactly 1.000 for zinc
45
+ // light, whose primary[500] IS the sidebar colour. Brand identity stays in the accent bar
46
+ // and icon below. See interactionStates.test.ts.
44
47
  const commonStyles = {
45
48
  role: "group",
46
49
  w: "100%",
@@ -50,14 +53,12 @@ const MenuItemBox = ({ menu, activeMenu, toggle, handleClick, isOpen, onToggle,
50
53
  fontWeight: "medium",
51
54
  borderLeft: "2px solid",
52
55
  borderLeftColor: isAnyActive ? theme.colors.primary[500] : "transparent",
53
- backgroundColor: isAnyActive ? theme.colors.primary.opacity[16] : "transparent",
56
+ backgroundColor: isAnyActive ? "whiteAlpha.300" : "transparent",
54
57
  color: disabled ? "whiteAlpha.400" : "whiteAlpha.700",
55
58
  _hover: disabled
56
59
  ? {}
57
60
  : {
58
- backgroundColor: isAnyActive
59
- ? theme.colors.primary.opacity[16]
60
- : "whiteAlpha.100",
61
+ backgroundColor: isAnyActive ? "whiteAlpha.400" : "whiteAlpha.200",
61
62
  },
62
63
  cursor: disabled ? "not-allowed" : "pointer",
63
64
  opacity: disabled ? 0.6 : 1,
@@ -1,13 +1,14 @@
1
1
  import type { PaletteProps } from "../../../Theme/tokens/types";
2
2
  /**
3
- * Per-cell hover fill for a table row. `table.hover[300]` (the token built for this) still works
4
- * in light mode — a pale tint against a white canvas — but in dark mode that rung sits within
5
- * ~10 lightness points of the near-black canvas (both compressed near L7-15), so it computes to
6
- * ~1.2:1 contrast: invisible, which is exactly what QA reported. `background[900]` is this
7
- * palette's dark-mode "bright highlight" rung (~9.7-10.7:1 against the canvas, verified
8
- * numerically across brands) — but the row's resting ink (`text[500]`) is tuned for a near-black
9
- * backdrop and goes illegible against a bright one, so hover must also flip `color`, mirroring how
10
- * Jodit's own dark-mode hover rule flips text to its canvas color alongside the brighter fill.
3
+ * Per-cell hover fill for a table row. `table.hover[300]` works in light mode — a pale tint on a
4
+ * white canvas — but in dark mode that rung sits within ~10 lightness points of the near-black
5
+ * canvas, computing to ~1.2:1: invisible, as QA reported.
6
+ *
7
+ * The first fix for that overshot to `background[900]`, the palette's BRIGHTEST rung (~10:1), and
8
+ * had to invert the row's ink to keep it readable — a near-white slab in a dark table. Dark-mode
9
+ * hover is a *lifted surface*, not an inversion: `table.hover[500]` is a visible step up from the
10
+ * canvas while staying dark enough that the row's resting `text[500]` ink is still legible, so no
11
+ * `color` flip is needed. Pinned by tableRowHoverStyle.test.ts.
11
12
  */
12
13
  export declare const getTableRowHoverStyle: (colors: PaletteProps, isDark: boolean) => Record<string, string>;
13
14
  //# sourceMappingURL=tableRowHoverStyle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableRowHoverStyle.d.ts","sourceRoot":"","sources":["../../../../src/Components/Table/components/tableRowHoverStyle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,YAAY,EAAE,QAAQ,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAUlG,CAAC"}
1
+ {"version":3,"file":"tableRowHoverStyle.d.ts","sourceRoot":"","sources":["../../../../src/Components/Table/components/tableRowHoverStyle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,YAAY,EAAE,QAAQ,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CASlG,CAAC"}
@@ -2,25 +2,25 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTableRowHoverStyle = void 0;
4
4
  /**
5
- * Per-cell hover fill for a table row. `table.hover[300]` (the token built for this) still works
6
- * in light mode — a pale tint against a white canvas — but in dark mode that rung sits within
7
- * ~10 lightness points of the near-black canvas (both compressed near L7-15), so it computes to
8
- * ~1.2:1 contrast: invisible, which is exactly what QA reported. `background[900]` is this
9
- * palette's dark-mode "bright highlight" rung (~9.7-10.7:1 against the canvas, verified
10
- * numerically across brands) — but the row's resting ink (`text[500]`) is tuned for a near-black
11
- * backdrop and goes illegible against a bright one, so hover must also flip `color`, mirroring how
12
- * Jodit's own dark-mode hover rule flips text to its canvas color alongside the brighter fill.
5
+ * Per-cell hover fill for a table row. `table.hover[300]` works in light mode — a pale tint on a
6
+ * white canvas — but in dark mode that rung sits within ~10 lightness points of the near-black
7
+ * canvas, computing to ~1.2:1: invisible, as QA reported.
8
+ *
9
+ * The first fix for that overshot to `background[900]`, the palette's BRIGHTEST rung (~10:1), and
10
+ * had to invert the row's ink to keep it readable — a near-white slab in a dark table. Dark-mode
11
+ * hover is a *lifted surface*, not an inversion: `table.hover[500]` is a visible step up from the
12
+ * canvas while staying dark enough that the row's resting `text[500]` ink is still legible, so no
13
+ * `color` flip is needed. Pinned by tableRowHoverStyle.test.ts.
13
14
  */
14
15
  const getTableRowHoverStyle = (colors, isDark) => {
15
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
16
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
16
17
  if (isDark) {
17
18
  return {
18
- backgroundColor: (_b = (_a = colors.background) === null || _a === void 0 ? void 0 : _a[900]) !== null && _b !== void 0 ? _b : (_d = (_c = colors.table) === null || _c === void 0 ? void 0 : _c.hover) === null || _d === void 0 ? void 0 : _d[300],
19
- color: (_e = colors.backgroundColor) === null || _e === void 0 ? void 0 : _e.main,
19
+ backgroundColor: (_c = (_b = (_a = colors.table) === null || _a === void 0 ? void 0 : _a.hover) === null || _b === void 0 ? void 0 : _b[500]) !== null && _c !== void 0 ? _c : (_d = colors.background) === null || _d === void 0 ? void 0 : _d[400],
20
20
  };
21
21
  }
22
22
  return {
23
- backgroundColor: (_h = (_g = (_f = colors.table) === null || _f === void 0 ? void 0 : _f.hover) === null || _g === void 0 ? void 0 : _g[300]) !== null && _h !== void 0 ? _h : (_k = (_j = colors.secondary) === null || _j === void 0 ? void 0 : _j.opacity) === null || _k === void 0 ? void 0 : _k[4],
23
+ backgroundColor: (_g = (_f = (_e = colors.table) === null || _e === void 0 ? void 0 : _e.hover) === null || _f === void 0 ? void 0 : _f[300]) !== null && _g !== void 0 ? _g : (_j = (_h = colors.secondary) === null || _h === void 0 ? void 0 : _h.opacity) === null || _j === void 0 ? void 0 : _j[4],
24
24
  };
25
25
  };
26
26
  exports.getTableRowHoverStyle = getTableRowHoverStyle;
@@ -95,7 +95,7 @@ const ManageColumns = ({ columns, items, setItems, childInputMethodsRef, }) => {
95
95
  // color={theme.colors.gray[300]}
96
96
  _hover: { color: theme.colors.gray[500], bg: "transparent" } }), (0, jsx_runtime_1.jsx)(Checkbox_1.default, { isChecked: !item.isHidden, label: String(item.label), onChange: () => toggleCheckbox(item.id), size: "sm", labelSx: {
97
97
  color: item.isHidden ? theme.colors.gray[500] : theme.colors.gray[700],
98
- } }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "12px", color: theme.colors.gray[400], ml: 'auto', children: index + 1 })] }, item.id));
99
- })) : ((0, jsx_runtime_1.jsx)(react_2.Text, { color: "gray.400", textAlign: "center", fontSize: "sm", py: 6, children: "No columns found" })) }), (0, jsx_runtime_1.jsxs)(react_2.Text, { fontSize: "xs", color: theme.colors.gray[400], mt: 2, textAlign: "right", children: [visibleCount, " / ", items.length, " visible"] })] }));
98
+ } }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "12px", color: theme.colors.gray[500], ml: 'auto', children: index + 1 })] }, item.id));
99
+ })) : ((0, jsx_runtime_1.jsx)(react_2.Text, { color: "gray.500", textAlign: "center", fontSize: "sm", py: 6, children: "No columns found" })) }), (0, jsx_runtime_1.jsxs)(react_2.Text, { fontSize: "xs", color: theme.colors.gray[500], mt: 2, textAlign: "right", children: [visibleCount, " / ", items.length, " visible"] })] }));
100
100
  };
101
101
  exports.default = ManageColumns;
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradeButton.d.ts","sourceRoot":"","sources":["../../../src/Components/UpgradeButton/UpgradeButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EACL,kBAAkB,EAGnB,MAAM,sBAAsB,CAAC;AAW9B,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2J/C,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"UpgradeButton.d.ts","sourceRoot":"","sources":["../../../src/Components/UpgradeButton/UpgradeButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EACL,kBAAkB,EAGnB,MAAM,sBAAsB,CAAC;AAgB9B,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAyK/C,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -5,21 +5,33 @@ 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");
10
+ /** The brand's gold sparkle accent, kept only where it clears 3:1 on the button's own fill. */
11
+ const ACCENT_GOLD = "#FFD66B";
8
12
  const sizeMap = {
9
- sm: { px: "12px", py: "4px", font: "12px", sub: "8px", icon: 11, radius: "40px" },
13
+ // Compact, not tiny: an 8px subtitle was unreadable, so `sm` sits deliberately
14
+ // close to `md` — it's the dense variant of the same badge, not a smaller one.
15
+ sm: { px: "14px", py: "4px", font: "13px", sub: "9px", icon: 12, radius: "44px" },
10
16
  md: { px: "20px", py: "5px", font: "14px", sub: "10px", icon: 13, radius: "50px" },
11
17
  lg: { px: "26px", py: "8px", font: "16px", sub: "11px", icon: 16, radius: "60px" },
12
18
  };
13
- const UpgradeButton = ({ label, mobileLabel, subtitle, icon = lucide_react_1.Sparkles, iconColor = "#FFD66B", variant = "brand", gradient, size = "md", shimmer = true, isLoading = false, isDisabled = false, maxLabelWidth = "160px", ariaLabel, onClick, }) => {
19
+ const UpgradeButton = ({ label, mobileLabel, subtitle, icon = lucide_react_1.Sparkles, iconColor, variant = "brand", gradient, size = "md", shimmer = true, isLoading = false, isDisabled = false, maxLabelWidth = "160px", ariaLabel, onClick, }) => {
14
20
  var _a, _b;
15
21
  const theme = (0, useCustomTheme_1.useCustomTheme)();
16
22
  const c = theme.colors;
17
23
  // Only reachable if a consumer hand-builds a palette without `gradient`; every shipped brand sets it.
18
24
  const themeGradient = (_a = c.gradient) !== null && _a !== void 0 ? _a : { from: c.primary[500], to: c.primary[700] };
25
+ // `primary`/`secondary` at [500]->[700] / [400]->[600] sit in the mid-luminance band where
26
+ // neither white nor black ink clears AA at both ends at once (measured worst-case as low as
27
+ // 2.72:1 across brands — no ink choice fixes a gradient with no readable ink at all). One rung
28
+ // darker moves both stops onto the same side of that divide; verified universally >=4.5 at
29
+ // both ends across all 9 brands x both modes. `success`/`warning`/`danger`/`info` already sit
30
+ // there at [400]->[600] and don't need the shift.
19
31
  const variantGradient = {
20
32
  brand: themeGradient,
21
- primary: { from: c.primary[500], to: c.primary[700] },
22
- secondary: { from: c.secondary[400], to: c.secondary[600] },
33
+ primary: { from: c.primary[600], to: c.primary[800] },
34
+ secondary: { from: c.secondary[600], to: c.secondary[800] },
23
35
  success: { from: c.semantic.success[400], to: c.semantic.success[600] },
24
36
  warning: { from: c.semantic.warning[400], to: c.semantic.warning[600] },
25
37
  danger: { from: c.semantic.error[400], to: c.semantic.error[600] },
@@ -27,9 +39,15 @@ const UpgradeButton = ({ label, mobileLabel, subtitle, icon = lucide_react_1.Spa
27
39
  };
28
40
  const resolved = (_b = gradient !== null && gradient !== void 0 ? gradient : variantGradient[variant]) !== null && _b !== void 0 ? _b : themeGradient;
29
41
  // `iconColor`'s gold default fails AA as body text against this gradient (measured ~1.4-3.3
30
- // across brands) — the label/subtitle share this computed ink instead. The icon/spinner keep
31
- // `iconColor` since non-text UI only needs WCAG 1.4.11's 3:1, which the gold clears.
42
+ // across brands) — the label/subtitle share this computed ink instead.
32
43
  const ink = (0, accentText_1.onGradient)(resolved.from, resolved.to, c.white, c.black);
44
+ // The gold only clears 1.4.11's 3:1 on a DARK gradient. zinc dark inverts `primary` to a
45
+ // near-white fill, where gold-on-near-white measures ~1.3:1 and the icon vanishes, so fall
46
+ // back to the label's ink whenever the gold misses either stop.
47
+ const resolvedIconColor = iconColor !== null && iconColor !== void 0 ? iconColor : ((0, color_1.contrastRatio)(ACCENT_GOLD, resolved.from) >= outlineRung_1.AA_NON_TEXT &&
48
+ (0, color_1.contrastRatio)(ACCENT_GOLD, resolved.to) >= outlineRung_1.AA_NON_TEXT
49
+ ? ACCENT_GOLD
50
+ : ink);
33
51
  const s = sizeMap[size];
34
52
  const Icon = icon;
35
53
  const blocked = isLoading || isDisabled;
@@ -58,6 +76,6 @@ const UpgradeButton = ({ label, mobileLabel, subtitle, icon = lucide_react_1.Spa
58
76
  pointerEvents: "none",
59
77
  },
60
78
  }
61
- : undefined, children: [(0, jsx_runtime_1.jsxs)(react_1.Flex, { align: "center", gap: "6px", maxW: maxLabelWidth, overflow: "hidden", whiteSpace: "nowrap", zIndex: 1, children: [(0, jsx_runtime_1.jsx)(react_1.Text, { as: "span", fontSize: s.font, overflow: "hidden", textOverflow: "ellipsis", display: hasMobile ? { base: "none", md: "block" } : "block", children: label }), hasMobile && ((0, jsx_runtime_1.jsx)(react_1.Text, { as: "span", fontSize: s.font, overflow: "hidden", textOverflow: "ellipsis", display: { base: "block", md: "none" }, children: mobileLabel })), isLoading ? ((0, jsx_runtime_1.jsx)(react_1.Spinner, { size: "xs", thickness: "1.5px", color: iconColor })) : (Icon && (0, jsx_runtime_1.jsx)(Icon, { size: s.icon, color: iconColor, style: { flexShrink: 0 } }))] }), subtitle && ((0, jsx_runtime_1.jsx)(react_1.Text, { as: "span", mt: "1px", fontSize: s.sub, fontWeight: "bold", color: ink, maxW: maxLabelWidth, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", zIndex: 1, children: subtitle }))] }));
79
+ : undefined, children: [(0, jsx_runtime_1.jsxs)(react_1.Flex, { align: "center", gap: "6px", maxW: maxLabelWidth, overflow: "hidden", whiteSpace: "nowrap", zIndex: 1, children: [(0, jsx_runtime_1.jsx)(react_1.Text, { as: "span", fontSize: s.font, overflow: "hidden", textOverflow: "ellipsis", display: hasMobile ? { base: "none", md: "block" } : "block", children: label }), hasMobile && ((0, jsx_runtime_1.jsx)(react_1.Text, { as: "span", fontSize: s.font, overflow: "hidden", textOverflow: "ellipsis", display: { base: "block", md: "none" }, children: mobileLabel })), isLoading ? ((0, jsx_runtime_1.jsx)(react_1.Spinner, { size: "xs", thickness: "1.5px", color: resolvedIconColor })) : (Icon && (0, jsx_runtime_1.jsx)(Icon, { size: s.icon, color: resolvedIconColor, style: { flexShrink: 0 } }))] }), subtitle && ((0, jsx_runtime_1.jsx)(react_1.Text, { as: "span", mt: "1px", fontSize: s.sub, fontWeight: "bold", color: ink, maxW: maxLabelWidth, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", zIndex: 1, children: subtitle }))] }));
62
80
  };
63
81
  exports.default = UpgradeButton;
@@ -1 +1 @@
1
- {"version":3,"file":"UserDetails.d.ts","sourceRoot":"","sources":["../../../src/Components/UserDetails/UserDetails.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAkCjD,OAAO,EAEL,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAyC5B,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAmhB3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"UserDetails.d.ts","sourceRoot":"","sources":["../../../src/Components/UserDetails/UserDetails.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAmCjD,OAAO,EAEL,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAyC5B,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAwhB3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -41,6 +41,7 @@ const react_1 = __importStar(require("react"));
41
41
  const react_2 = require("@chakra-ui/react");
42
42
  const lucide_react_1 = require("lucide-react");
43
43
  const useCustomTheme_1 = require("../../Theme/useCustomTheme");
44
+ const outlineRung_1 = require("../../Theme/tokens/builders/outlineRung");
44
45
  const accentText_1 = require("../../Theme/tokens/builders/accentText");
45
46
  const EmptyState_1 = __importDefault(require("../EmptyState/EmptyState"));
46
47
  const AddUserModal_1 = __importDefault(require("./AddUserModal"));
@@ -130,9 +131,11 @@ const UserDetails = ({ users, selectedUser, selectedUserId, roleOptions = [], ca
130
131
  onConfirmOpen();
131
132
  }
132
133
  }, children: labels.deactivateUser }))] }))] }), (0, jsx_runtime_1.jsxs)(react_2.Box, { p: 4, children: [(0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "xs", fontWeight: 600, textTransform: "uppercase", letterSpacing: "0.05em", color: muted, mb: 3, children: labels.personalInformation }), (0, jsx_runtime_1.jsx)(react_2.Box, { border: "1px solid", borderColor: border, borderRadius: "lg", overflow: "hidden", children: selectedUser.details.map((detail, index) => {
133
- var _a, _b, _c, _d, _e, _f, _g;
134
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
134
135
  const Icon = (_a = detail.icon) !== null && _a !== void 0 ? _a : lucide_react_1.UserRound;
135
- return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { gap: 3, px: 3, py: 2.5, _hover: { bg: (_c = (_b = colors === null || colors === void 0 ? void 0 : colors.gray) === null || _b === void 0 ? void 0 : _b[50]) !== null && _c !== void 0 ? _c : "#F8FAFC" }, alignItems: "center", transition: "background 0.15s ease", children: [(0, jsx_runtime_1.jsx)(react_2.Flex, { align: "center", justify: "center", boxSize: "30px", bg: (_e = (_d = colors === null || colors === void 0 ? void 0 : colors.primary) === null || _d === void 0 ? void 0 : _d[50]) !== null && _e !== void 0 ? _e : "#EEF2FF", borderRadius: "lg", color: (_g = (_f = colors === null || colors === void 0 ? void 0 : colors.primary) === null || _f === void 0 ? void 0 : _f[600]) !== null && _g !== void 0 ? _g : "#4F46E5", flexShrink: 0, children: (0, jsx_runtime_1.jsx)(Icon, { size: 15 }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { minWidth: "110px", children: (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "xs", fontWeight: 600, color: muted, children: detail.label }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { flex: 1, children: (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "sm", color: heading, fontWeight: 500, children: detail.value }) })] }), index < selectedUser.details.length - 1 && ((0, jsx_runtime_1.jsx)(react_2.Divider, { borderColor: border }))] }, index));
136
+ return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { gap: 3, px: 3, py: 2.5, _hover: {
137
+ bg: (0, outlineRung_1.resolveHoverTint)((_c = (_b = colors === null || colors === void 0 ? void 0 : colors.gray) === null || _b === void 0 ? void 0 : _b[50]) !== null && _c !== void 0 ? _c : "#F8FAFC", (_e = (_d = colors === null || colors === void 0 ? void 0 : colors.background) === null || _d === void 0 ? void 0 : _d[50]) !== null && _e !== void 0 ? _e : "#ffffff"),
138
+ }, alignItems: "center", transition: "background 0.15s ease", children: [(0, jsx_runtime_1.jsx)(react_2.Flex, { align: "center", justify: "center", boxSize: "30px", bg: (_g = (_f = colors === null || colors === void 0 ? void 0 : colors.primary) === null || _f === void 0 ? void 0 : _f[50]) !== null && _g !== void 0 ? _g : "#EEF2FF", borderRadius: "lg", color: (_j = (_h = colors === null || colors === void 0 ? void 0 : colors.primary) === null || _h === void 0 ? void 0 : _h[600]) !== null && _j !== void 0 ? _j : "#4F46E5", flexShrink: 0, children: (0, jsx_runtime_1.jsx)(Icon, { size: 15 }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { minWidth: "110px", children: (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "xs", fontWeight: 600, color: muted, children: detail.label }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { flex: 1, children: (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "sm", color: heading, fontWeight: 500, children: detail.value }) })] }), index < selectedUser.details.length - 1 && ((0, jsx_runtime_1.jsx)(react_2.Divider, { borderColor: border }))] }, index));
136
139
  }) })] })] })) : ((0, jsx_runtime_1.jsx)(EmptyState_1.default, { icon: lucide_react_1.UserRound, title: labels.selectTeamMember, description: labels.noUserSelected, minH: "300px" })) })] }), (0, jsx_runtime_1.jsx)(AddUserModal_1.default, { isOpen: isAddUserOpen, onClose: onAddUserClose, roleOptions: roleOptions, isLoading: isAddUserLoading, onSubmit: async (values) => {
137
140
  await (onAddUserSubmit === null || onAddUserSubmit === void 0 ? void 0 : onAddUserSubmit(values));
138
141
  onAddUserClose();