pixelize-design-library 2.4.1-beta.2 → 2.4.1-beta.4

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 (350) hide show
  1. package/dist/Components/Accordion/accordionColors.d.ts.map +1 -1
  2. package/dist/Components/Accordion/accordionColors.js +17 -3
  3. package/dist/Components/Checkbox/Checkbox.styles.d.ts.map +1 -1
  4. package/dist/Components/Checkbox/Checkbox.styles.js +13 -2
  5. package/dist/Components/CustomModulesTable/EditModuleModal.d.ts.map +1 -1
  6. package/dist/Components/CustomModulesTable/EditModuleModal.js +5 -1
  7. package/dist/Components/DatePicker/CalendarPanel.d.ts.map +1 -1
  8. package/dist/Components/DatePicker/CalendarPanel.js +3 -1
  9. package/dist/Components/Editor/joditThemeVars.d.ts.map +1 -1
  10. package/dist/Components/Editor/joditThemeVars.js +9 -0
  11. package/dist/Components/FilePreview/FilePreview.d.ts.map +1 -1
  12. package/dist/Components/FilePreview/FilePreview.js +3 -1
  13. package/dist/Components/FileUploader/FileUploader.js +2 -2
  14. package/dist/Components/FilterSidebar/FilterSidebar.js +1 -1
  15. package/dist/Components/LimitReachedModal/LimitReachedModal.d.ts +5 -0
  16. package/dist/Components/LimitReachedModal/LimitReachedModal.d.ts.map +1 -0
  17. package/dist/Components/LimitReachedModal/LimitReachedModal.js +40 -0
  18. package/dist/Components/LimitReachedModal/LimitReachedModalProps.d.ts +16 -0
  19. package/dist/Components/LimitReachedModal/LimitReachedModalProps.d.ts.map +1 -0
  20. package/dist/Components/LimitReachedModal/LimitReachedModalProps.js +2 -0
  21. package/dist/Components/LimitReachedModal/limitReachedCopy.d.ts +7 -0
  22. package/dist/Components/LimitReachedModal/limitReachedCopy.d.ts.map +1 -0
  23. package/dist/Components/LimitReachedModal/limitReachedCopy.js +54 -0
  24. package/dist/Components/NavigationBar/NavigationBar.d.ts.map +1 -1
  25. package/dist/Components/NavigationBar/NavigationBar.js +10 -6
  26. package/dist/Components/OrgSwitcher/OrgSwitcher.d.ts.map +1 -1
  27. package/dist/Components/OrgSwitcher/OrgSwitcher.js +22 -3
  28. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +1 -0
  29. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts.map +1 -1
  30. package/dist/Components/OrgSwitcher/OrgSwitcherProps.js +3 -3
  31. package/dist/Components/OrganizationDetails/CreateOrgModal.js +6 -4
  32. package/dist/Components/OrganizationDetails/OrganizationDetails.d.ts.map +1 -1
  33. package/dist/Components/OrganizationDetails/OrganizationDetails.js +55 -7
  34. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts +24 -14
  35. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts.map +1 -1
  36. package/dist/Components/PlanBadge/PlanBadge.d.ts +12 -0
  37. package/dist/Components/PlanBadge/PlanBadge.d.ts.map +1 -0
  38. package/dist/Components/PlanBadge/PlanBadge.js +22 -0
  39. package/dist/Components/PlanBadge/PlanBadgeProps.d.ts +11 -0
  40. package/dist/Components/PlanBadge/PlanBadgeProps.d.ts.map +1 -0
  41. package/dist/Components/PlanBadge/PlanBadgeProps.js +2 -0
  42. package/dist/Components/PlanPill/PlanPill.d.ts +5 -0
  43. package/dist/Components/PlanPill/PlanPill.d.ts.map +1 -0
  44. package/dist/Components/PlanPill/PlanPill.js +42 -0
  45. package/dist/Components/PlanPill/PlanPillProps.d.ts +28 -0
  46. package/dist/Components/PlanPill/PlanPillProps.d.ts.map +1 -0
  47. package/dist/Components/PlanPill/PlanPillProps.js +2 -0
  48. package/dist/Components/PlanPill/planPillGradient.d.ts +22 -0
  49. package/dist/Components/PlanPill/planPillGradient.d.ts.map +1 -0
  50. package/dist/Components/PlanPill/planPillGradient.js +20 -0
  51. package/dist/Components/Search/Search.d.ts.map +1 -1
  52. package/dist/Components/Search/Search.js +4 -2
  53. package/dist/Components/Select/Select.styles.d.ts.map +1 -1
  54. package/dist/Components/Select/Select.styles.js +29 -20
  55. package/dist/Components/SelectSearch/SelectSearch.js +1 -1
  56. package/dist/Components/SideBar/SecondaryBar.d.ts.map +1 -1
  57. package/dist/Components/SideBar/SecondaryBar.js +10 -2
  58. package/dist/Components/SideBar/SideBar.js +1 -1
  59. package/dist/Components/SideBar/components/MenuItemBox.d.ts.map +1 -1
  60. package/dist/Components/SideBar/components/MenuItemBox.js +7 -6
  61. package/dist/Components/Table/components/tableRowHoverStyle.d.ts +9 -8
  62. package/dist/Components/Table/components/tableRowHoverStyle.d.ts.map +1 -1
  63. package/dist/Components/Table/components/tableRowHoverStyle.js +12 -12
  64. package/dist/Components/Table/settings/ManageColumns.js +2 -2
  65. package/dist/Components/UpgradeButton/UpgradeButton.d.ts.map +1 -1
  66. package/dist/Components/UpgradeButton/UpgradeButton.js +25 -7
  67. package/dist/Components/UserDetails/UserDetails.d.ts.map +1 -1
  68. package/dist/Components/UserDetails/UserDetails.js +5 -2
  69. package/dist/Theme/chakra/componentStyles.d.ts +2 -0
  70. package/dist/Theme/chakra/componentStyles.d.ts.map +1 -1
  71. package/dist/Theme/chakra/componentStyles.js +74 -0
  72. package/dist/Theme/chakra/createBrandTheme.d.ts.map +1 -1
  73. package/dist/Theme/chakra/createBrandTheme.js +47 -0
  74. package/dist/Theme/tokens/brands/index.d.ts.map +1 -1
  75. package/dist/Theme/tokens/brands/index.js +20 -18
  76. package/dist/Theme/tokens/brands/zinc/palette.dark.d.ts.map +1 -1
  77. package/dist/Theme/tokens/brands/zinc/palette.dark.js +4 -2
  78. package/dist/Theme/tokens/builders/outlineRung.d.ts +35 -0
  79. package/dist/Theme/tokens/builders/outlineRung.d.ts.map +1 -0
  80. package/dist/Theme/tokens/builders/outlineRung.js +69 -0
  81. package/dist/Theme/tokens/builders/statusTone.d.ts +35 -0
  82. package/dist/Theme/tokens/builders/statusTone.d.ts.map +1 -0
  83. package/dist/Theme/tokens/builders/statusTone.js +63 -0
  84. package/dist/Utils/planBadge.d.ts +39 -0
  85. package/dist/Utils/planBadge.d.ts.map +1 -0
  86. package/dist/Utils/planBadge.js +108 -0
  87. package/dist/Utils/planExpiry.d.ts +35 -0
  88. package/dist/Utils/planExpiry.d.ts.map +1 -0
  89. package/dist/Utils/planExpiry.js +115 -0
  90. package/dist/index.d.ts +14 -1
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +29 -3
  93. package/package.json +6 -2
  94. package/.claude/settings.local.json +0 -51
  95. package/.cursor/TASK-SETUP.md +0 -43
  96. package/.cursor/agents/be-impl.md +0 -37
  97. package/.cursor/agents/fe-impl.md +0 -39
  98. package/.cursor/agents/task-plan.md +0 -56
  99. package/.cursor/agents/test-create.md +0 -31
  100. package/.cursor/agents/test-exec.md +0 -26
  101. package/.cursor/hooks/task-hint.env +0 -1
  102. package/.cursor/hooks/task-skill-nudge.sh +0 -71
  103. package/.cursor/hooks/task-slash-guard.sh +0 -31
  104. package/.cursor/hooks.json +0 -13
  105. package/.cursor/modules/account-management/MODULE.md +0 -41
  106. package/.cursor/modules/buttons/MODULE.md +0 -47
  107. package/.cursor/modules/cards/MODULE.md +0 -55
  108. package/.cursor/modules/charts/MODULE.md +0 -40
  109. package/.cursor/modules/common/MODULE.md +0 -36
  110. package/.cursor/modules/contact-auth/MODULE.md +0 -19
  111. package/.cursor/modules/data-display/MODULE.md +0 -42
  112. package/.cursor/modules/feedback/MODULE.md +0 -38
  113. package/.cursor/modules/form/MODULE.md +0 -13
  114. package/.cursor/modules/inputs-basic/MODULE.md +0 -42
  115. package/.cursor/modules/inputs-date-file/MODULE.md +0 -67
  116. package/.cursor/modules/inputs-select/MODULE.md +0 -89
  117. package/.cursor/modules/inputs-toggle/MODULE.md +0 -24
  118. package/.cursor/modules/kanban/MODULE.md +0 -22
  119. package/.cursor/modules/layout-navigation/MODULE.md +0 -319
  120. package/.cursor/modules/overlays/MODULE.md +0 -82
  121. package/.cursor/modules/playground/MODULE.md +0 -28
  122. package/.cursor/modules/table/MODULE.md +0 -84
  123. package/.cursor/modules/theme/MODULE.md +0 -431
  124. package/.cursor/modules/types-exports/MODULE.md +0 -17
  125. package/.cursor/modules/utility-ui/MODULE.md +0 -50
  126. package/.cursor/modules/utils-hooks/MODULE.md +0 -35
  127. package/.cursor/pixelize-task-statusline.sh +0 -64
  128. package/.cursor/plans/blocked/.gitkeep +0 -0
  129. package/.cursor/plans/current.md +0 -12
  130. package/.cursor/plans/current.theme-tokens-dark-mode.md +0 -77
  131. package/.cursor/plans/current.theme-tokens-dark.md +0 -155
  132. package/.cursor/plans/done/.gitkeep +0 -0
  133. package/.cursor/rules +0 -31
  134. package/.cursor/skills/task/SKILL.md +0 -167
  135. package/CLAUDE.md +0 -148
  136. package/__mocks__/styleMock.js +0 -8
  137. package/coverage/clover.xml +0 -405
  138. package/coverage/coverage-final.json +0 -16
  139. package/coverage/coverage-summary.json +0 -50
  140. package/coverage/lcov-report/Button/Button.tsx.html +0 -244
  141. package/coverage/lcov-report/Button/index.html +0 -116
  142. package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +0 -433
  143. package/coverage/lcov-report/Checkbox/index.html +0 -116
  144. package/coverage/lcov-report/Common/ErrorMessage.tsx.html +0 -148
  145. package/coverage/lcov-report/Common/FormLabel.tsx.html +0 -331
  146. package/coverage/lcov-report/Common/HelperText.tsx.html +0 -124
  147. package/coverage/lcov-report/Common/index.html +0 -146
  148. package/coverage/lcov-report/Components/Button/Button.tsx.html +0 -244
  149. package/coverage/lcov-report/Components/Button/index.html +0 -116
  150. package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +0 -433
  151. package/coverage/lcov-report/Components/Checkbox/index.html +0 -116
  152. package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +0 -148
  153. package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +0 -331
  154. package/coverage/lcov-report/Components/Common/HelperText.tsx.html +0 -124
  155. package/coverage/lcov-report/Components/Common/index.html +0 -146
  156. package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +0 -712
  157. package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +0 -343
  158. package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +0 -313
  159. package/coverage/lcov-report/Components/CustomModulesTable/index.html +0 -146
  160. package/coverage/lcov-report/Components/Divider/Divider.tsx.html +0 -133
  161. package/coverage/lcov-report/Components/Divider/index.html +0 -116
  162. package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +0 -994
  163. package/coverage/lcov-report/Components/Dropdown/index.html +0 -116
  164. package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +0 -466
  165. package/coverage/lcov-report/Components/EmptyState/index.html +0 -116
  166. package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +0 -373
  167. package/coverage/lcov-report/Components/Header/index.html +0 -116
  168. package/coverage/lcov-report/Components/Input/TextInput.tsx.html +0 -487
  169. package/coverage/lcov-report/Components/Input/index.html +0 -116
  170. package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +0 -205
  171. package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +0 -547
  172. package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +0 -190
  173. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +0 -247
  174. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +0 -116
  175. package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +0 -3598
  176. package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +0 -283
  177. package/coverage/lcov-report/Components/KanbanBoard/index.html +0 -161
  178. package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  179. package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  180. package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  181. package/coverage/lcov-report/Components/OrganizationDetails/index.html +0 -146
  182. package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  183. package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +0 -1732
  184. package/coverage/lcov-report/Components/RolesPermission/index.html +0 -131
  185. package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +0 -2575
  186. package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  187. package/coverage/lcov-report/Components/SearchSelect/index.html +0 -146
  188. package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +0 -496
  189. package/coverage/lcov-report/Components/Select/Select.tsx.html +0 -361
  190. package/coverage/lcov-report/Components/Select/index.html +0 -116
  191. package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +0 -562
  192. package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +0 -346
  193. package/coverage/lcov-report/Components/SideBar/components/index.html +0 -116
  194. package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +0 -490
  195. package/coverage/lcov-report/Components/SignInActivityTable/index.html +0 -116
  196. package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +0 -595
  197. package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +0 -2212
  198. package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +0 -358
  199. package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +0 -358
  200. package/coverage/lcov-report/Components/Table/components/index.html +0 -161
  201. package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +0 -856
  202. package/coverage/lcov-report/Components/Table/settings/index.html +0 -116
  203. package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +0 -331
  204. package/coverage/lcov-report/Components/Tag/Tag.tsx.html +0 -256
  205. package/coverage/lcov-report/Components/Tag/index.html +0 -131
  206. package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +0 -286
  207. package/coverage/lcov-report/Components/ToolTip/index.html +0 -116
  208. package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +0 -709
  209. package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +0 -505
  210. package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +0 -379
  211. package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +0 -1900
  212. package/coverage/lcov-report/Components/UserDetails/index.html +0 -161
  213. package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +0 -466
  214. package/coverage/lcov-report/EmptyState/index.html +0 -116
  215. package/coverage/lcov-report/Hooks/index.html +0 -116
  216. package/coverage/lcov-report/Hooks/usePreferences.ts.html +0 -421
  217. package/coverage/lcov-report/Input/TextInput.tsx.html +0 -487
  218. package/coverage/lcov-report/Input/index.html +0 -131
  219. package/coverage/lcov-report/Input/textInputIconSize.ts.html +0 -205
  220. package/coverage/lcov-report/KanbanBoard.tsx.html +0 -3481
  221. package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  222. package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  223. package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  224. package/coverage/lcov-report/OrganizationDetails/index.html +0 -146
  225. package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  226. package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +0 -1732
  227. package/coverage/lcov-report/RolesPermission/index.html +0 -116
  228. package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +0 -2575
  229. package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  230. package/coverage/lcov-report/SearchSelect/index.html +0 -146
  231. package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +0 -496
  232. package/coverage/lcov-report/Table/CompactSelect.tsx.html +0 -379
  233. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +0 -514
  234. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +0 -373
  235. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +0 -574
  236. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +0 -574
  237. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +0 -1027
  238. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +0 -397
  239. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +0 -1060
  240. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +0 -361
  241. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +0 -337
  242. package/coverage/lcov-report/Table/Components/index.html +0 -266
  243. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +0 -178
  244. package/coverage/lcov-report/Table/Components/useTable.ts.html +0 -778
  245. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +0 -1810
  246. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +0 -178
  247. package/coverage/lcov-report/Table/Table.tsx.html +0 -1567
  248. package/coverage/lcov-report/Table/TableProps.tsx.html +0 -658
  249. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +0 -619
  250. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +0 -229
  251. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +0 -532
  252. package/coverage/lcov-report/Table/TableSettings/index.html +0 -146
  253. package/coverage/lcov-report/Table/TableToDo.tsx.html +0 -973
  254. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +0 -271
  255. package/coverage/lcov-report/Table/filterTypes.ts.html +0 -97
  256. package/coverage/lcov-report/Table/index.html +0 -176
  257. package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +0 -856
  258. package/coverage/lcov-report/Table/settings/index.html +0 -116
  259. package/coverage/lcov-report/Tag/Tag.tsx.html +0 -256
  260. package/coverage/lcov-report/Tag/index.html +0 -116
  261. package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +0 -175
  262. package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +0 -214
  263. package/coverage/lcov-report/Theme/index.html +0 -131
  264. package/coverage/lcov-report/Theme/useCustomTheme.ts.html +0 -100
  265. package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +0 -286
  266. package/coverage/lcov-report/ToolTip/index.html +0 -116
  267. package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +0 -709
  268. package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +0 -505
  269. package/coverage/lcov-report/UserDetails/index.html +0 -116
  270. package/coverage/lcov-report/Utils/functions.ts.html +0 -106
  271. package/coverage/lcov-report/Utils/index.html +0 -116
  272. package/coverage/lcov-report/Utils/table.ts.html +0 -1189
  273. package/coverage/lcov-report/base.css +0 -224
  274. package/coverage/lcov-report/block-navigation.js +0 -87
  275. package/coverage/lcov-report/favicon.png +0 -0
  276. package/coverage/lcov-report/index.html +0 -251
  277. package/coverage/lcov-report/prettify.css +0 -1
  278. package/coverage/lcov-report/prettify.js +0 -2
  279. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  280. package/coverage/lcov-report/sorter.js +0 -210
  281. package/coverage/lcov.info +0 -981
  282. package/dist/Theme/Dark/theme.d.ts +0 -3
  283. package/dist/Theme/Dark/theme.d.ts.map +0 -1
  284. package/dist/Theme/Dark/theme.js +0 -277
  285. package/dist/Theme/Default/palette.d.ts +0 -375
  286. package/dist/Theme/Default/palette.d.ts.map +0 -1
  287. package/dist/Theme/Default/palette.js +0 -306
  288. package/dist/Theme/Default/theme.d.ts +0 -3
  289. package/dist/Theme/Default/theme.d.ts.map +0 -1
  290. package/dist/Theme/Default/theme.js +0 -19
  291. package/dist/Theme/Emerald/palette.d.ts +0 -375
  292. package/dist/Theme/Emerald/palette.d.ts.map +0 -1
  293. package/dist/Theme/Emerald/palette.js +0 -125
  294. package/dist/Theme/Emerald/theme.d.ts +0 -3
  295. package/dist/Theme/Emerald/theme.d.ts.map +0 -1
  296. package/dist/Theme/Emerald/theme.js +0 -19
  297. package/dist/Theme/Meadow/palette.d.ts +0 -375
  298. package/dist/Theme/Meadow/palette.d.ts.map +0 -1
  299. package/dist/Theme/Meadow/palette.js +0 -123
  300. package/dist/Theme/Meadow/theme.d.ts +0 -3
  301. package/dist/Theme/Meadow/theme.d.ts.map +0 -1
  302. package/dist/Theme/Meadow/theme.js +0 -19
  303. package/dist/Theme/Radiant/palette.d.ts +0 -375
  304. package/dist/Theme/Radiant/palette.d.ts.map +0 -1
  305. package/dist/Theme/Radiant/palette.js +0 -125
  306. package/dist/Theme/Radiant/theme.d.ts +0 -3
  307. package/dist/Theme/Radiant/theme.d.ts.map +0 -1
  308. package/dist/Theme/Radiant/theme.js +0 -19
  309. package/dist/Theme/Rosewood/palette.d.ts +0 -375
  310. package/dist/Theme/Rosewood/palette.d.ts.map +0 -1
  311. package/dist/Theme/Rosewood/palette.js +0 -125
  312. package/dist/Theme/Rosewood/theme.d.ts +0 -3
  313. package/dist/Theme/Rosewood/theme.d.ts.map +0 -1
  314. package/dist/Theme/Rosewood/theme.js +0 -19
  315. package/dist/Theme/Skyline/palette.d.ts +0 -375
  316. package/dist/Theme/Skyline/palette.d.ts.map +0 -1
  317. package/dist/Theme/Skyline/palette.js +0 -123
  318. package/dist/Theme/Skyline/theme.d.ts +0 -3
  319. package/dist/Theme/Skyline/theme.d.ts.map +0 -1
  320. package/dist/Theme/Skyline/theme.js +0 -19
  321. package/dist/Theme/Slate/palette.d.ts +0 -375
  322. package/dist/Theme/Slate/palette.d.ts.map +0 -1
  323. package/dist/Theme/Slate/palette.js +0 -123
  324. package/dist/Theme/Slate/theme.d.ts +0 -3
  325. package/dist/Theme/Slate/theme.d.ts.map +0 -1
  326. package/dist/Theme/Slate/theme.js +0 -19
  327. package/dist/Theme/buildBrandTokens.d.ts +0 -16
  328. package/dist/Theme/buildBrandTokens.d.ts.map +0 -1
  329. package/dist/Theme/buildBrandTokens.js +0 -33
  330. package/dist/Theme/chartColorsFromTheme.d.ts +0 -19
  331. package/dist/Theme/chartColorsFromTheme.d.ts.map +0 -1
  332. package/dist/Theme/chartColorsFromTheme.js +0 -34
  333. package/dist/Theme/common.d.ts +0 -167
  334. package/dist/Theme/common.d.ts.map +0 -1
  335. package/dist/Theme/common.js +0 -112
  336. package/dist/Theme/componentStyles.d.ts +0 -10
  337. package/dist/Theme/componentStyles.d.ts.map +0 -1
  338. package/dist/Theme/componentStyles.js +0 -19
  339. package/dist/Theme/fonts.d.ts +0 -37
  340. package/dist/Theme/fonts.d.ts.map +0 -1
  341. package/dist/Theme/fonts.js +0 -41
  342. package/dist/Theme/space.d.ts +0 -34
  343. package/dist/Theme/space.d.ts.map +0 -1
  344. package/dist/Theme/space.js +0 -35
  345. package/dist/Theme/theme.d.ts +0 -3
  346. package/dist/Theme/theme.d.ts.map +0 -1
  347. package/dist/Theme/theme.js +0 -12
  348. package/eslint.config.js +0 -48
  349. package/index.html +0 -13
  350. package/vite.config.ts +0 -13
@@ -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;
@@ -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();
@@ -1,6 +1,7 @@
1
1
  import { ComponentStyleConfig, StyleFunctionProps } from "@chakra-ui/react";
2
2
  export declare const componentStyles: {
3
3
  Checkbox: ComponentStyleConfig;
4
+ Radio: import("@chakra-ui/react").ComponentSingleStyleConfig;
4
5
  Input: ComponentStyleConfig;
5
6
  Button: ComponentStyleConfig;
6
7
  Select: ComponentStyleConfig;
@@ -236,5 +237,6 @@ export declare const componentStyles: {
236
237
  };
237
238
  Skeleton: import("@chakra-ui/react").ComponentSingleStyleConfig;
238
239
  Tooltip: import("@chakra-ui/react").ComponentSingleStyleConfig;
240
+ CloseButton: import("@chakra-ui/react").ComponentSingleStyleConfig;
239
241
  };
240
242
  //# sourceMappingURL=componentStyles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"componentStyles.d.ts","sourceRoot":"","sources":["../../../src/Theme/chakra/componentStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAU,MAAM,kBAAkB,CAAC;AA4HpF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoB3B,CAAC"}
1
+ {"version":3,"file":"componentStyles.d.ts","sourceRoot":"","sources":["../../../src/Theme/chakra/componentStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAU,MAAM,kBAAkB,CAAC;AAqMpF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsB3B,CAAC"}
@@ -11,6 +11,7 @@ const InputTextArea_style_1 = require("../../Components/InputTextArea/InputTextA
11
11
  const NumberInput_styles_1 = require("../../Components/NumberInput/NumberInput.styles");
12
12
  const accentText_1 = require("../tokens/builders/accentText");
13
13
  const color_1 = require("../tokens/builders/color");
14
+ const outlineRung_1 = require("../tokens/builders/outlineRung");
14
15
  const Drawer_styles_1 = require("./Drawer.styles");
15
16
  const Menu_styles_1 = require("./Menu.styles");
16
17
  const Modal_styles_1 = require("./Modal.styles");
@@ -127,8 +128,80 @@ const Skeleton = {
127
128
  });
128
129
  },
129
130
  };
131
+ // Chakra's `extendTheme` does not REPLACE a component's stock baseStyle when ours is also a
132
+ // function — it calls BOTH and deep-merges the two returned plain objects, key by key. Chakra's
133
+ // own stock Radio (@chakra-ui/theme radio.mjs) writes its checked dot with the shorthand style
134
+ // props `bg`/`w`/`h`/`pos`; an earlier version of this override used the full CSS property names
135
+ // (`background`/`width`/`height`/`position`). A deep merge treats those as DIFFERENT keys, so
136
+ // both survived into the final style object instead of one cleanly overwriting the other — and
137
+ // in practice Chakra's own `bg: "currentColor"` rung won, leaving a hardcoded-black dot. Using
138
+ // the exact same keys Chakra's stock style uses makes every one of ours a scalar overwrite, and
139
+ // `!important` on the two colour-bearing declarations removes any remaining doubt about which
140
+ // value survives serialization — verified against the actual rendered cascade, not just this
141
+ // function's return value (see componentStyles.radioDotMerge.test.ts, which asserts the merge
142
+ // behavior directly rather than only the function output).
143
+ const Radio = {
144
+ baseStyle: ({ theme, colorScheme }) => {
145
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
146
+ const swatch = (_a = theme.colors) === null || _a === void 0 ? void 0 : _a[colorScheme];
147
+ const fill = (_b = swatch === null || swatch === void 0 ? void 0 : swatch[500]) !== null && _b !== void 0 ? _b : (_d = (_c = theme.colors) === null || _c === void 0 ? void 0 : _c.primary) === null || _d === void 0 ? void 0 : _d[500];
148
+ const white = (_f = (_e = theme.colors) === null || _e === void 0 ? void 0 : _e.white) !== null && _f !== void 0 ? _f : "#ffffff";
149
+ const black = (_h = (_g = theme.colors) === null || _g === void 0 ? void 0 : _g.black) !== null && _h !== void 0 ? _h : "#000000";
150
+ const dot = (0, accentText_1.onFilled)(fill, white, black);
151
+ // A browser probe found the checked radio's hover repeating its own resting `fill` —
152
+ // Chakra's stock checked._hover (inherited from checkbox) lands on the SAME `bg`/`borderColor`
153
+ // keys we do, so extendTheme's merge is a scalar overwrite here, not a coexisting selector;
154
+ // ours must supply a value that actually differs from resting, same fix shape as
155
+ // NavigationBar/OrgSwitcher's "hand a fill its own resting bg as the backdrop" pattern.
156
+ const hoverFill = (0, outlineRung_1.resolveHoverTint)(fill, fill);
157
+ return {
158
+ control: {
159
+ borderColor: (_k = (_j = theme.colors) === null || _j === void 0 ? void 0 : _j.boxborder) === null || _k === void 0 ? void 0 : _k[500],
160
+ _checked: {
161
+ bg: `${fill} !important`,
162
+ borderColor: `${fill} !important`,
163
+ color: `${dot} !important`,
164
+ _before: {
165
+ content: `""`,
166
+ display: "inline-block",
167
+ pos: "relative",
168
+ w: "50%",
169
+ h: "50%",
170
+ borderRadius: "50%",
171
+ bg: `${dot} !important`,
172
+ },
173
+ _hover: { bg: `${hoverFill} !important`, borderColor: `${hoverFill} !important` },
174
+ },
175
+ },
176
+ };
177
+ },
178
+ defaultProps: { colorScheme: "primary" },
179
+ };
180
+ const $closeButtonBg = (0, react_1.cssVar)("close-button-bg");
181
+ /**
182
+ * Chakra's stock CloseButton hover/active wash (`blackAlpha.100`/`.200`) only swaps to
183
+ * `whiteAlpha.100`/`.200` under `_dark` — dead in this app (see createBrandTheme's colorMode
184
+ * comment) — so a CloseButton on a dark canvas keeps the light-mode blackAlpha wash, which reads
185
+ * as almost no affordance against a dark surface. The light-mode values themselves also measure
186
+ * borderline against `background[50]` (1.14/1.19, under `MIN_PERCEPTIBLE_STEP`). Branch on the
187
+ * palette's own actual canvas (`isDarkCanvas`), not Chakra's dead colorMode, and step one rung up
188
+ * each scale (`.200`/`.300`) — verified >=1.19 across all 9 brands x both modes
189
+ * (closeButtonHover.test.ts).
190
+ */
191
+ const CloseButton = {
192
+ baseStyle: ({ theme }) => {
193
+ var _a, _b, _c, _d, _e;
194
+ const dark = (0, accentText_1.isDarkCanvas)((_c = (_b = (_a = theme.colors) === null || _a === void 0 ? void 0 : _a.backgroundColor) === null || _b === void 0 ? void 0 : _b.main) !== null && _c !== void 0 ? _c : "#ffffff");
195
+ const alpha = dark ? (_d = theme.colors) === null || _d === void 0 ? void 0 : _d.whiteAlpha : (_e = theme.colors) === null || _e === void 0 ? void 0 : _e.blackAlpha;
196
+ return {
197
+ _hover: { [$closeButtonBg.variable]: alpha === null || alpha === void 0 ? void 0 : alpha[200] },
198
+ _active: { [$closeButtonBg.variable]: alpha === null || alpha === void 0 ? void 0 : alpha[300] },
199
+ };
200
+ },
201
+ };
130
202
  exports.componentStyles = {
131
203
  Checkbox: Checkbox_styles_1.Checkbox,
204
+ Radio,
132
205
  Input: TextInput_styles_1.Input,
133
206
  Button: Button_styles_1.Button,
134
207
  Select: Select_styles_1.Select,
@@ -147,4 +220,5 @@ exports.componentStyles = {
147
220
  Avatar: Avatar_styles_1.Avatar,
148
221
  Skeleton,
149
222
  Tooltip,
223
+ CloseButton,
150
224
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createBrandTheme.d.ts","sourceRoot":"","sources":["../../../src/Theme/chakra/createBrandTheme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAMvE,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,YAAY,EACrB,UAAS,uBAA4B,wBAwDtC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"createBrandTheme.d.ts","sourceRoot":"","sources":["../../../src/Theme/chakra/createBrandTheme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAOvE,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,YAAY,EACrB,UAAS,uBAA4B,wBAuGtC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -8,6 +8,7 @@ const react_1 = require("@chakra-ui/react");
8
8
  const common_web_1 = __importDefault(require("./common.web"));
9
9
  const fonts_web_1 = __importDefault(require("./fonts.web"));
10
10
  const componentStyles_1 = require("./componentStyles");
11
+ const accentText_1 = require("../tokens/builders/accentText");
11
12
  /**
12
13
  * Builds a Chakra theme from a pure brand palette.
13
14
  *
@@ -63,10 +64,56 @@ const createBrandTheme = (palette, options = {}) => {
63
64
  ? {
64
65
  styles: {
65
66
  global: {
67
+ // Native widgets the page cannot style — the `<select>` dropdown list and the
68
+ // time/date picker popups — are painted by the browser, which defaults to light
69
+ // and produced white popups on the dark canvas. `color-scheme` is the only way to
70
+ // tell it otherwise.
71
+ html: {
72
+ colorScheme: "dark",
73
+ },
66
74
  body: {
67
75
  bg: palette.backgroundColor.main,
68
76
  color: palette.text[900],
69
77
  },
78
+ // Text selection is another browser-painted surface `color-scheme` doesn't cover —
79
+ // the UA default `::selection` stays a light highlight regardless of theme, so
80
+ // selecting text anywhere (e.g. a table cell) shows a stray white/lavender patch on
81
+ // the dark canvas. Brand it instead, with WCAG-safe ink via the same `onFilled` math
82
+ // used for buttons/badges.
83
+ "::selection": {
84
+ background: palette.primary[500],
85
+ color: (0, accentText_1.onFilled)(palette.primary[500], palette.white, palette.black),
86
+ },
87
+ "::-moz-selection": {
88
+ background: palette.primary[500],
89
+ color: (0, accentText_1.onFilled)(palette.primary[500], palette.white, palette.black),
90
+ },
91
+ // `color-scheme: dark` gives WebKit/Blink a dark scrollbar by default, but it's the
92
+ // OS's generic dark gray, not brand-aware — style it explicitly so it matches the
93
+ // canvas instead of floating as a mismatched gray bar.
94
+ "::-webkit-scrollbar": {
95
+ width: "10px",
96
+ height: "10px",
97
+ },
98
+ "::-webkit-scrollbar-track": {
99
+ background: palette.backgroundColor.main,
100
+ },
101
+ "::-webkit-scrollbar-thumb": {
102
+ background: palette.gray[600],
103
+ borderRadius: "6px",
104
+ },
105
+ "::-webkit-scrollbar-thumb:hover": {
106
+ background: palette.gray[500],
107
+ },
108
+ // Chrome/Edge autofill paints its own opaque yellow/white fill behind the input
109
+ // text via `-webkit-box-shadow` (not `background`), so a plain `bg` override never
110
+ // reaches it — a bright light box survives on every dark autofilled field unless
111
+ // overridden with the same trick.
112
+ "input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus": {
113
+ WebkitBoxShadow: `0 0 0px 1000px ${palette.backgroundColor.secondary} inset`,
114
+ WebkitTextFillColor: palette.text[900],
115
+ caretColor: palette.text[900],
116
+ },
70
117
  },
71
118
  },
72
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Theme/tokens/brands/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAChD,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAC5C,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,KAAK,MAAM,uBAAuB,CAAC;AAC1C,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAChD,OAAO,UAAU,MAAM,4BAA4B,CAAC;AACpD,OAAO,IAAI,MAAM,sBAAsB,CAAC;AAExC,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAe3E,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC1F,OAAO,EACL,YAAY,EACZ,UAAU,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,cAAc,EACd,QAAQ,GACT,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAUzD,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAUxD,CAAC;AAIF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAU/E,CAAC;AAEF,eAAO,MAAM,UAAU,EAAiC,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Theme/tokens/brands/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAChD,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAC5C,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,KAAK,MAAM,uBAAuB,CAAC;AAC1C,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAChD,OAAO,UAAU,MAAM,4BAA4B,CAAC;AACpD,OAAO,IAAI,MAAM,sBAAsB,CAAC;AAExC,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAgB3E,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC1F,OAAO,EACL,YAAY,EACZ,UAAU,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,cAAc,EACd,QAAQ,GACT,CAAC;AAKF,4EAA4E;AAC5E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAUzD,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAUxD,CAAC;AAIF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAU/E,CAAC;AAEF,eAAO,MAAM,UAAU,EAAiC,SAAS,EAAE,CAAC"}
@@ -41,6 +41,7 @@ exports.storefrontDark = palette_dark_8.default;
41
41
  const palette_dark_9 = __importDefault(require("./zinc/palette.dark"));
42
42
  exports.zincDark = palette_dark_9.default;
43
43
  const accentText_1 = require("../builders/accentText");
44
+ const outlineRung_1 = require("../builders/outlineRung");
44
45
  /**
45
46
  * Derived here rather than hand-written into each brand's literal: it must track that brand's
46
47
  * own primary scale and canvas, and a stale hand-copied hex would silently fail AA.
@@ -53,29 +54,30 @@ const withAccentText = (palette) => {
53
54
  accentText: (_a = palette.accentText) !== null && _a !== void 0 ? _a : (0, accentText_1.pickAccentText)(palette.primary, palette.backgroundColor.main, "light"),
54
55
  });
55
56
  };
57
+ const lightBrand = (palette) => (0, outlineRung_1.withOutlineRung)(withAccentText(palette), "light");
56
58
  /** Light palette per brand. `lavender` is the base the other six extend. */
57
59
  exports.lightPalettes = {
58
- lavender: withAccentText(palette_light_1.default),
59
- meadow: withAccentText(palette_light_2.default),
60
- radiant: withAccentText(palette_light_3.default),
61
- skyline: withAccentText(palette_light_4.default),
62
- slate: withAccentText(palette_light_5.default),
63
- emerald: withAccentText(palette_light_6.default),
64
- rosewood: withAccentText(palette_light_7.default),
65
- storefront: withAccentText(palette_light_8.default),
66
- zinc: withAccentText(palette_light_9.default),
60
+ lavender: lightBrand(palette_light_1.default),
61
+ meadow: lightBrand(palette_light_2.default),
62
+ radiant: lightBrand(palette_light_3.default),
63
+ skyline: lightBrand(palette_light_4.default),
64
+ slate: lightBrand(palette_light_5.default),
65
+ emerald: lightBrand(palette_light_6.default),
66
+ rosewood: lightBrand(palette_light_7.default),
67
+ storefront: lightBrand(palette_light_8.default),
68
+ zinc: lightBrand(palette_light_9.default),
67
69
  };
68
70
  /** Dark palette per brand, derived from the matching light palette. */
69
71
  exports.darkPalettes = {
70
- lavender: palette_dark_1.default,
71
- meadow: palette_dark_2.default,
72
- radiant: palette_dark_3.default,
73
- skyline: palette_dark_4.default,
74
- slate: palette_dark_5.default,
75
- emerald: palette_dark_6.default,
76
- rosewood: palette_dark_7.default,
77
- storefront: palette_dark_8.default,
78
- zinc: palette_dark_9.default,
72
+ lavender: (0, outlineRung_1.withOutlineRung)(palette_dark_1.default, "dark"),
73
+ meadow: (0, outlineRung_1.withOutlineRung)(palette_dark_2.default, "dark"),
74
+ radiant: (0, outlineRung_1.withOutlineRung)(palette_dark_3.default, "dark"),
75
+ skyline: (0, outlineRung_1.withOutlineRung)(palette_dark_4.default, "dark"),
76
+ slate: (0, outlineRung_1.withOutlineRung)(palette_dark_5.default, "dark"),
77
+ emerald: (0, outlineRung_1.withOutlineRung)(palette_dark_6.default, "dark"),
78
+ rosewood: (0, outlineRung_1.withOutlineRung)(palette_dark_7.default, "dark"),
79
+ storefront: (0, outlineRung_1.withOutlineRung)(palette_dark_8.default, "dark"),
80
+ zinc: (0, outlineRung_1.withOutlineRung)(palette_dark_9.default, "dark"),
79
81
  };
80
82
  // Built from lightPalettes/darkPalettes (not the raw literals) so accentText can never be
81
83
  // present on one map and missing on the other.
@@ -1 +1 @@
1
- {"version":3,"file":"palette.dark.d.ts","sourceRoot":"","sources":["../../../../../src/Theme/tokens/brands/zinc/palette.dark.ts"],"names":[],"mappings":"AAqLA,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"palette.dark.d.ts","sourceRoot":"","sources":["../../../../../src/Theme/tokens/brands/zinc/palette.dark.ts"],"names":[],"mappings":"AAuLA,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -93,13 +93,15 @@ const header = {
93
93
  900: "#ffffff",
94
94
  };
95
95
  // muted-foreground = gray[500] = #a1a1aa (5.81:1 on the #27272a muted surface); it also serves
96
- // as the focus ring on the #09090b canvas (7.76:1). gray[400] = the #6b6b75 interactive border.
96
+ // as the focus ring on the #09090b canvas (7.76:1). gray[400] = the interactive border/icon rung:
97
+ // #6b6b75 (matching border[500]) measured 2.95:1 on the LIGHTEST named surface, just under the 3:1
98
+ // non-text bar it is used at, so it is one step lighter than border[500] here.
97
99
  const gray = {
98
100
  50: "#18181b",
99
101
  100: "#27272a",
100
102
  200: "#3f3f46",
101
103
  300: "#52525b",
102
- 400: "#6b6b75",
104
+ 400: "#71717a",
103
105
  500: "#a1a1aa",
104
106
  600: "#b4b4bb",
105
107
  700: "#d4d4d8",