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

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 (329) 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/NavigationBar/NavigationBar.d.ts.map +1 -1
  16. package/dist/Components/NavigationBar/NavigationBar.js +10 -6
  17. package/dist/Components/OrgSwitcher/OrgSwitcher.d.ts.map +1 -1
  18. package/dist/Components/OrgSwitcher/OrgSwitcher.js +22 -3
  19. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +1 -0
  20. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts.map +1 -1
  21. package/dist/Components/OrgSwitcher/OrgSwitcherProps.js +3 -3
  22. package/dist/Components/OrganizationDetails/CreateOrgModal.js +6 -4
  23. package/dist/Components/OrganizationDetails/OrganizationDetails.d.ts.map +1 -1
  24. package/dist/Components/OrganizationDetails/OrganizationDetails.js +55 -7
  25. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts +24 -14
  26. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts.map +1 -1
  27. package/dist/Components/PlanPill/PlanPill.d.ts +5 -0
  28. package/dist/Components/PlanPill/PlanPill.d.ts.map +1 -0
  29. package/dist/Components/PlanPill/PlanPill.js +41 -0
  30. package/dist/Components/PlanPill/PlanPillProps.d.ts +28 -0
  31. package/dist/Components/PlanPill/PlanPillProps.d.ts.map +1 -0
  32. package/dist/Components/PlanPill/PlanPillProps.js +2 -0
  33. package/dist/Components/Search/Search.d.ts.map +1 -1
  34. package/dist/Components/Search/Search.js +4 -2
  35. package/dist/Components/Select/Select.styles.d.ts.map +1 -1
  36. package/dist/Components/Select/Select.styles.js +29 -20
  37. package/dist/Components/SelectSearch/SelectSearch.js +1 -1
  38. package/dist/Components/SideBar/SecondaryBar.d.ts.map +1 -1
  39. package/dist/Components/SideBar/SecondaryBar.js +10 -2
  40. package/dist/Components/SideBar/SideBar.js +1 -1
  41. package/dist/Components/SideBar/components/MenuItemBox.d.ts.map +1 -1
  42. package/dist/Components/SideBar/components/MenuItemBox.js +7 -6
  43. package/dist/Components/Table/components/tableRowHoverStyle.d.ts +9 -8
  44. package/dist/Components/Table/components/tableRowHoverStyle.d.ts.map +1 -1
  45. package/dist/Components/Table/components/tableRowHoverStyle.js +12 -12
  46. package/dist/Components/Table/settings/ManageColumns.js +2 -2
  47. package/dist/Components/UpgradeButton/UpgradeButton.d.ts.map +1 -1
  48. package/dist/Components/UpgradeButton/UpgradeButton.js +25 -7
  49. package/dist/Components/UserDetails/UserDetails.d.ts.map +1 -1
  50. package/dist/Components/UserDetails/UserDetails.js +5 -2
  51. package/dist/Theme/chakra/componentStyles.d.ts +2 -0
  52. package/dist/Theme/chakra/componentStyles.d.ts.map +1 -1
  53. package/dist/Theme/chakra/componentStyles.js +74 -0
  54. package/dist/Theme/chakra/createBrandTheme.d.ts.map +1 -1
  55. package/dist/Theme/chakra/createBrandTheme.js +47 -0
  56. package/dist/Theme/tokens/brands/index.d.ts.map +1 -1
  57. package/dist/Theme/tokens/brands/index.js +20 -18
  58. package/dist/Theme/tokens/brands/zinc/palette.dark.d.ts.map +1 -1
  59. package/dist/Theme/tokens/brands/zinc/palette.dark.js +4 -2
  60. package/dist/Theme/tokens/builders/outlineRung.d.ts +35 -0
  61. package/dist/Theme/tokens/builders/outlineRung.d.ts.map +1 -0
  62. package/dist/Theme/tokens/builders/outlineRung.js +69 -0
  63. package/dist/Theme/tokens/builders/statusTone.d.ts +35 -0
  64. package/dist/Theme/tokens/builders/statusTone.d.ts.map +1 -0
  65. package/dist/Theme/tokens/builders/statusTone.js +63 -0
  66. package/dist/Utils/planExpiry.d.ts +19 -0
  67. package/dist/Utils/planExpiry.d.ts.map +1 -0
  68. package/dist/Utils/planExpiry.js +61 -0
  69. package/dist/index.d.ts +7 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +21 -3
  72. package/package.json +5 -1
  73. package/.claude/settings.local.json +0 -51
  74. package/.cursor/TASK-SETUP.md +0 -43
  75. package/.cursor/agents/be-impl.md +0 -37
  76. package/.cursor/agents/fe-impl.md +0 -39
  77. package/.cursor/agents/task-plan.md +0 -56
  78. package/.cursor/agents/test-create.md +0 -31
  79. package/.cursor/agents/test-exec.md +0 -26
  80. package/.cursor/hooks/task-hint.env +0 -1
  81. package/.cursor/hooks/task-skill-nudge.sh +0 -71
  82. package/.cursor/hooks/task-slash-guard.sh +0 -31
  83. package/.cursor/hooks.json +0 -13
  84. package/.cursor/modules/account-management/MODULE.md +0 -41
  85. package/.cursor/modules/buttons/MODULE.md +0 -47
  86. package/.cursor/modules/cards/MODULE.md +0 -55
  87. package/.cursor/modules/charts/MODULE.md +0 -40
  88. package/.cursor/modules/common/MODULE.md +0 -36
  89. package/.cursor/modules/contact-auth/MODULE.md +0 -19
  90. package/.cursor/modules/data-display/MODULE.md +0 -42
  91. package/.cursor/modules/feedback/MODULE.md +0 -38
  92. package/.cursor/modules/form/MODULE.md +0 -13
  93. package/.cursor/modules/inputs-basic/MODULE.md +0 -42
  94. package/.cursor/modules/inputs-date-file/MODULE.md +0 -67
  95. package/.cursor/modules/inputs-select/MODULE.md +0 -89
  96. package/.cursor/modules/inputs-toggle/MODULE.md +0 -24
  97. package/.cursor/modules/kanban/MODULE.md +0 -22
  98. package/.cursor/modules/layout-navigation/MODULE.md +0 -319
  99. package/.cursor/modules/overlays/MODULE.md +0 -82
  100. package/.cursor/modules/playground/MODULE.md +0 -28
  101. package/.cursor/modules/table/MODULE.md +0 -84
  102. package/.cursor/modules/theme/MODULE.md +0 -431
  103. package/.cursor/modules/types-exports/MODULE.md +0 -17
  104. package/.cursor/modules/utility-ui/MODULE.md +0 -50
  105. package/.cursor/modules/utils-hooks/MODULE.md +0 -35
  106. package/.cursor/pixelize-task-statusline.sh +0 -64
  107. package/.cursor/plans/blocked/.gitkeep +0 -0
  108. package/.cursor/plans/current.md +0 -12
  109. package/.cursor/plans/current.theme-tokens-dark-mode.md +0 -77
  110. package/.cursor/plans/current.theme-tokens-dark.md +0 -155
  111. package/.cursor/plans/done/.gitkeep +0 -0
  112. package/.cursor/rules +0 -31
  113. package/.cursor/skills/task/SKILL.md +0 -167
  114. package/CLAUDE.md +0 -148
  115. package/__mocks__/styleMock.js +0 -8
  116. package/coverage/clover.xml +0 -405
  117. package/coverage/coverage-final.json +0 -16
  118. package/coverage/coverage-summary.json +0 -50
  119. package/coverage/lcov-report/Button/Button.tsx.html +0 -244
  120. package/coverage/lcov-report/Button/index.html +0 -116
  121. package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +0 -433
  122. package/coverage/lcov-report/Checkbox/index.html +0 -116
  123. package/coverage/lcov-report/Common/ErrorMessage.tsx.html +0 -148
  124. package/coverage/lcov-report/Common/FormLabel.tsx.html +0 -331
  125. package/coverage/lcov-report/Common/HelperText.tsx.html +0 -124
  126. package/coverage/lcov-report/Common/index.html +0 -146
  127. package/coverage/lcov-report/Components/Button/Button.tsx.html +0 -244
  128. package/coverage/lcov-report/Components/Button/index.html +0 -116
  129. package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +0 -433
  130. package/coverage/lcov-report/Components/Checkbox/index.html +0 -116
  131. package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +0 -148
  132. package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +0 -331
  133. package/coverage/lcov-report/Components/Common/HelperText.tsx.html +0 -124
  134. package/coverage/lcov-report/Components/Common/index.html +0 -146
  135. package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +0 -712
  136. package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +0 -343
  137. package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +0 -313
  138. package/coverage/lcov-report/Components/CustomModulesTable/index.html +0 -146
  139. package/coverage/lcov-report/Components/Divider/Divider.tsx.html +0 -133
  140. package/coverage/lcov-report/Components/Divider/index.html +0 -116
  141. package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +0 -994
  142. package/coverage/lcov-report/Components/Dropdown/index.html +0 -116
  143. package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +0 -466
  144. package/coverage/lcov-report/Components/EmptyState/index.html +0 -116
  145. package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +0 -373
  146. package/coverage/lcov-report/Components/Header/index.html +0 -116
  147. package/coverage/lcov-report/Components/Input/TextInput.tsx.html +0 -487
  148. package/coverage/lcov-report/Components/Input/index.html +0 -116
  149. package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +0 -205
  150. package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +0 -547
  151. package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +0 -190
  152. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +0 -247
  153. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +0 -116
  154. package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +0 -3598
  155. package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +0 -283
  156. package/coverage/lcov-report/Components/KanbanBoard/index.html +0 -161
  157. package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  158. package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  159. package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  160. package/coverage/lcov-report/Components/OrganizationDetails/index.html +0 -146
  161. package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  162. package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +0 -1732
  163. package/coverage/lcov-report/Components/RolesPermission/index.html +0 -131
  164. package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +0 -2575
  165. package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  166. package/coverage/lcov-report/Components/SearchSelect/index.html +0 -146
  167. package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +0 -496
  168. package/coverage/lcov-report/Components/Select/Select.tsx.html +0 -361
  169. package/coverage/lcov-report/Components/Select/index.html +0 -116
  170. package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +0 -562
  171. package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +0 -346
  172. package/coverage/lcov-report/Components/SideBar/components/index.html +0 -116
  173. package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +0 -490
  174. package/coverage/lcov-report/Components/SignInActivityTable/index.html +0 -116
  175. package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +0 -595
  176. package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +0 -2212
  177. package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +0 -358
  178. package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +0 -358
  179. package/coverage/lcov-report/Components/Table/components/index.html +0 -161
  180. package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +0 -856
  181. package/coverage/lcov-report/Components/Table/settings/index.html +0 -116
  182. package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +0 -331
  183. package/coverage/lcov-report/Components/Tag/Tag.tsx.html +0 -256
  184. package/coverage/lcov-report/Components/Tag/index.html +0 -131
  185. package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +0 -286
  186. package/coverage/lcov-report/Components/ToolTip/index.html +0 -116
  187. package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +0 -709
  188. package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +0 -505
  189. package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +0 -379
  190. package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +0 -1900
  191. package/coverage/lcov-report/Components/UserDetails/index.html +0 -161
  192. package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +0 -466
  193. package/coverage/lcov-report/EmptyState/index.html +0 -116
  194. package/coverage/lcov-report/Hooks/index.html +0 -116
  195. package/coverage/lcov-report/Hooks/usePreferences.ts.html +0 -421
  196. package/coverage/lcov-report/Input/TextInput.tsx.html +0 -487
  197. package/coverage/lcov-report/Input/index.html +0 -131
  198. package/coverage/lcov-report/Input/textInputIconSize.ts.html +0 -205
  199. package/coverage/lcov-report/KanbanBoard.tsx.html +0 -3481
  200. package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  201. package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  202. package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  203. package/coverage/lcov-report/OrganizationDetails/index.html +0 -146
  204. package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  205. package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +0 -1732
  206. package/coverage/lcov-report/RolesPermission/index.html +0 -116
  207. package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +0 -2575
  208. package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  209. package/coverage/lcov-report/SearchSelect/index.html +0 -146
  210. package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +0 -496
  211. package/coverage/lcov-report/Table/CompactSelect.tsx.html +0 -379
  212. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +0 -514
  213. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +0 -373
  214. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +0 -574
  215. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +0 -574
  216. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +0 -1027
  217. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +0 -397
  218. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +0 -1060
  219. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +0 -361
  220. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +0 -337
  221. package/coverage/lcov-report/Table/Components/index.html +0 -266
  222. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +0 -178
  223. package/coverage/lcov-report/Table/Components/useTable.ts.html +0 -778
  224. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +0 -1810
  225. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +0 -178
  226. package/coverage/lcov-report/Table/Table.tsx.html +0 -1567
  227. package/coverage/lcov-report/Table/TableProps.tsx.html +0 -658
  228. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +0 -619
  229. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +0 -229
  230. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +0 -532
  231. package/coverage/lcov-report/Table/TableSettings/index.html +0 -146
  232. package/coverage/lcov-report/Table/TableToDo.tsx.html +0 -973
  233. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +0 -271
  234. package/coverage/lcov-report/Table/filterTypes.ts.html +0 -97
  235. package/coverage/lcov-report/Table/index.html +0 -176
  236. package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +0 -856
  237. package/coverage/lcov-report/Table/settings/index.html +0 -116
  238. package/coverage/lcov-report/Tag/Tag.tsx.html +0 -256
  239. package/coverage/lcov-report/Tag/index.html +0 -116
  240. package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +0 -175
  241. package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +0 -214
  242. package/coverage/lcov-report/Theme/index.html +0 -131
  243. package/coverage/lcov-report/Theme/useCustomTheme.ts.html +0 -100
  244. package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +0 -286
  245. package/coverage/lcov-report/ToolTip/index.html +0 -116
  246. package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +0 -709
  247. package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +0 -505
  248. package/coverage/lcov-report/UserDetails/index.html +0 -116
  249. package/coverage/lcov-report/Utils/functions.ts.html +0 -106
  250. package/coverage/lcov-report/Utils/index.html +0 -116
  251. package/coverage/lcov-report/Utils/table.ts.html +0 -1189
  252. package/coverage/lcov-report/base.css +0 -224
  253. package/coverage/lcov-report/block-navigation.js +0 -87
  254. package/coverage/lcov-report/favicon.png +0 -0
  255. package/coverage/lcov-report/index.html +0 -251
  256. package/coverage/lcov-report/prettify.css +0 -1
  257. package/coverage/lcov-report/prettify.js +0 -2
  258. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  259. package/coverage/lcov-report/sorter.js +0 -210
  260. package/coverage/lcov.info +0 -981
  261. package/dist/Theme/Dark/theme.d.ts +0 -3
  262. package/dist/Theme/Dark/theme.d.ts.map +0 -1
  263. package/dist/Theme/Dark/theme.js +0 -277
  264. package/dist/Theme/Default/palette.d.ts +0 -375
  265. package/dist/Theme/Default/palette.d.ts.map +0 -1
  266. package/dist/Theme/Default/palette.js +0 -306
  267. package/dist/Theme/Default/theme.d.ts +0 -3
  268. package/dist/Theme/Default/theme.d.ts.map +0 -1
  269. package/dist/Theme/Default/theme.js +0 -19
  270. package/dist/Theme/Emerald/palette.d.ts +0 -375
  271. package/dist/Theme/Emerald/palette.d.ts.map +0 -1
  272. package/dist/Theme/Emerald/palette.js +0 -125
  273. package/dist/Theme/Emerald/theme.d.ts +0 -3
  274. package/dist/Theme/Emerald/theme.d.ts.map +0 -1
  275. package/dist/Theme/Emerald/theme.js +0 -19
  276. package/dist/Theme/Meadow/palette.d.ts +0 -375
  277. package/dist/Theme/Meadow/palette.d.ts.map +0 -1
  278. package/dist/Theme/Meadow/palette.js +0 -123
  279. package/dist/Theme/Meadow/theme.d.ts +0 -3
  280. package/dist/Theme/Meadow/theme.d.ts.map +0 -1
  281. package/dist/Theme/Meadow/theme.js +0 -19
  282. package/dist/Theme/Radiant/palette.d.ts +0 -375
  283. package/dist/Theme/Radiant/palette.d.ts.map +0 -1
  284. package/dist/Theme/Radiant/palette.js +0 -125
  285. package/dist/Theme/Radiant/theme.d.ts +0 -3
  286. package/dist/Theme/Radiant/theme.d.ts.map +0 -1
  287. package/dist/Theme/Radiant/theme.js +0 -19
  288. package/dist/Theme/Rosewood/palette.d.ts +0 -375
  289. package/dist/Theme/Rosewood/palette.d.ts.map +0 -1
  290. package/dist/Theme/Rosewood/palette.js +0 -125
  291. package/dist/Theme/Rosewood/theme.d.ts +0 -3
  292. package/dist/Theme/Rosewood/theme.d.ts.map +0 -1
  293. package/dist/Theme/Rosewood/theme.js +0 -19
  294. package/dist/Theme/Skyline/palette.d.ts +0 -375
  295. package/dist/Theme/Skyline/palette.d.ts.map +0 -1
  296. package/dist/Theme/Skyline/palette.js +0 -123
  297. package/dist/Theme/Skyline/theme.d.ts +0 -3
  298. package/dist/Theme/Skyline/theme.d.ts.map +0 -1
  299. package/dist/Theme/Skyline/theme.js +0 -19
  300. package/dist/Theme/Slate/palette.d.ts +0 -375
  301. package/dist/Theme/Slate/palette.d.ts.map +0 -1
  302. package/dist/Theme/Slate/palette.js +0 -123
  303. package/dist/Theme/Slate/theme.d.ts +0 -3
  304. package/dist/Theme/Slate/theme.d.ts.map +0 -1
  305. package/dist/Theme/Slate/theme.js +0 -19
  306. package/dist/Theme/buildBrandTokens.d.ts +0 -16
  307. package/dist/Theme/buildBrandTokens.d.ts.map +0 -1
  308. package/dist/Theme/buildBrandTokens.js +0 -33
  309. package/dist/Theme/chartColorsFromTheme.d.ts +0 -19
  310. package/dist/Theme/chartColorsFromTheme.d.ts.map +0 -1
  311. package/dist/Theme/chartColorsFromTheme.js +0 -34
  312. package/dist/Theme/common.d.ts +0 -167
  313. package/dist/Theme/common.d.ts.map +0 -1
  314. package/dist/Theme/common.js +0 -112
  315. package/dist/Theme/componentStyles.d.ts +0 -10
  316. package/dist/Theme/componentStyles.d.ts.map +0 -1
  317. package/dist/Theme/componentStyles.js +0 -19
  318. package/dist/Theme/fonts.d.ts +0 -37
  319. package/dist/Theme/fonts.d.ts.map +0 -1
  320. package/dist/Theme/fonts.js +0 -41
  321. package/dist/Theme/space.d.ts +0 -34
  322. package/dist/Theme/space.d.ts.map +0 -1
  323. package/dist/Theme/space.js +0 -35
  324. package/dist/Theme/theme.d.ts +0 -3
  325. package/dist/Theme/theme.d.ts.map +0 -1
  326. package/dist/Theme/theme.js +0 -12
  327. package/eslint.config.js +0 -48
  328. package/index.html +0 -13
  329. package/vite.config.ts +0 -13
@@ -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",
@@ -0,0 +1,35 @@
1
+ import type { PaletteProps, ResolvedColorMode } from "../types";
2
+ /**
3
+ * The floor a hover/active state's step off its own resting surface must clear to be seen at
4
+ * all — same value the SideBar ladder, Accordion, and NavigationBar hover states are held to.
5
+ * A "hover" a user cannot perceive is not a hover.
6
+ */
7
+ export declare const MIN_PERCEPTIBLE_STEP = 1.15;
8
+ /** WCAG 1.4.11 — a control outline is a UI component boundary, held to 3:1. */
9
+ export declare const AA_NON_TEXT = 3;
10
+ /**
11
+ * Walks a hex toward `target` contrast against `backdrop`, keeping its hue and saturation so the
12
+ * result still reads as the same colour. Darkens when `mode` is light, lightens when dark, and
13
+ * stops at the FIRST passing step so nothing overshoots to black or white.
14
+ */
15
+ export declare function liftToContrast(hex: string, backdrop: string, mode: ResolvedColorMode, target?: number): string;
16
+ /**
17
+ * `boxborder[500]` is the rung every control outline reads (Checkbox, SearchSelect, the date
18
+ * pickers, the editor's inputs). It was authored as a decorative value — measured 1.30-2.56:1
19
+ * across brands, so those controls rendered effectively borderless in BOTH modes. Resolved here
20
+ * rather than hand-pinned per brand: a copied hex goes stale the moment a canvas moves.
21
+ *
22
+ * `border[*]` is deliberately untouched — that ramp draws table gridlines, which are decorative
23
+ * and outside 1.4.11.
24
+ */
25
+ export declare function withOutlineRung(palette: PaletteProps, mode: ResolvedColorMode): PaletteProps;
26
+ /**
27
+ * A hover/active tint resolved against the surface it actually sits on, guaranteed to clear
28
+ * `MIN_PERCEPTIBLE_STEP`. Written for the recurring shape found across NavigationBar, UserDetails
29
+ * and Accordion: a pale `primary[50]`/`gray[50]` tint that measures near-1.0 on a near-white
30
+ * surface — invisible — with no dark-mode branch, so the same call site is wrong in both modes at
31
+ * once. `restSurface` is required rather than assumed white/black: a menu item's hover sits on
32
+ * its OWN list background, not necessarily the page canvas.
33
+ */
34
+ export declare function resolveHoverTint(seed: string, restSurface: string): string;
35
+ //# sourceMappingURL=outlineRung.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outlineRung.d.ts","sourceRoot":"","sources":["../../../../src/Theme/tokens/builders/outlineRung.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,+EAA+E;AAC/E,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,iBAAiB,EACvB,MAAM,GAAE,MAAoB,GAC3B,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,GAAG,YAAY,CAc5F;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAG1E"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AA_NON_TEXT = exports.MIN_PERCEPTIBLE_STEP = void 0;
4
+ exports.liftToContrast = liftToContrast;
5
+ exports.withOutlineRung = withOutlineRung;
6
+ exports.resolveHoverTint = resolveHoverTint;
7
+ const color_1 = require("./color");
8
+ const accentText_1 = require("./accentText");
9
+ /**
10
+ * The floor a hover/active state's step off its own resting surface must clear to be seen at
11
+ * all — same value the SideBar ladder, Accordion, and NavigationBar hover states are held to.
12
+ * A "hover" a user cannot perceive is not a hover.
13
+ */
14
+ exports.MIN_PERCEPTIBLE_STEP = 1.15;
15
+ /** WCAG 1.4.11 — a control outline is a UI component boundary, held to 3:1. */
16
+ exports.AA_NON_TEXT = 3;
17
+ /**
18
+ * Walks a hex toward `target` contrast against `backdrop`, keeping its hue and saturation so the
19
+ * result still reads as the same colour. Darkens when `mode` is light, lightens when dark, and
20
+ * stops at the FIRST passing step so nothing overshoots to black or white.
21
+ */
22
+ function liftToContrast(hex, backdrop, mode, target = exports.AA_NON_TEXT) {
23
+ if ((0, color_1.contrastRatio)(hex, backdrop) >= target)
24
+ return hex;
25
+ const { s } = (0, color_1.hexToHsl)(hex);
26
+ const step = mode === "dark" ? 1 : -1;
27
+ let { l } = (0, color_1.hexToHsl)(hex);
28
+ while (l > 0 && l < 100) {
29
+ l += step;
30
+ const next = (0, color_1.withLightness)(hex, l, s);
31
+ if ((0, color_1.contrastRatio)(next, backdrop) >= target)
32
+ return next;
33
+ }
34
+ return (0, color_1.withLightness)(hex, mode === "dark" ? 100 : 0, s);
35
+ }
36
+ /**
37
+ * `boxborder[500]` is the rung every control outline reads (Checkbox, SearchSelect, the date
38
+ * pickers, the editor's inputs). It was authored as a decorative value — measured 1.30-2.56:1
39
+ * across brands, so those controls rendered effectively borderless in BOTH modes. Resolved here
40
+ * rather than hand-pinned per brand: a copied hex goes stale the moment a canvas moves.
41
+ *
42
+ * `border[*]` is deliberately untouched — that ramp draws table gridlines, which are decorative
43
+ * and outside 1.4.11.
44
+ */
45
+ function withOutlineRung(palette, mode) {
46
+ const current = palette.boxborder[500];
47
+ // The border sits between the control's fill and the surface behind it; hold it to the
48
+ // harder of the two.
49
+ const backdrop = (0, color_1.contrastRatio)(current, palette.backgroundColor.main) <=
50
+ (0, color_1.contrastRatio)(current, palette.background[50])
51
+ ? palette.backgroundColor.main
52
+ : palette.background[50];
53
+ const resolved = liftToContrast(current, backdrop, mode);
54
+ if (resolved === current)
55
+ return palette;
56
+ return { ...palette, boxborder: { ...palette.boxborder, 500: resolved } };
57
+ }
58
+ /**
59
+ * A hover/active tint resolved against the surface it actually sits on, guaranteed to clear
60
+ * `MIN_PERCEPTIBLE_STEP`. Written for the recurring shape found across NavigationBar, UserDetails
61
+ * and Accordion: a pale `primary[50]`/`gray[50]` tint that measures near-1.0 on a near-white
62
+ * surface — invisible — with no dark-mode branch, so the same call site is wrong in both modes at
63
+ * once. `restSurface` is required rather than assumed white/black: a menu item's hover sits on
64
+ * its OWN list background, not necessarily the page canvas.
65
+ */
66
+ function resolveHoverTint(seed, restSurface) {
67
+ const mode = (0, accentText_1.isDarkCanvas)(restSurface) ? "dark" : "light";
68
+ return liftToContrast(seed, restSurface, mode, exports.MIN_PERCEPTIBLE_STEP);
69
+ }
@@ -0,0 +1,35 @@
1
+ import type { ColorScale, ResolvedColorMode } from "../types";
2
+ export type StatusTone = {
3
+ /** Chip fill. */
4
+ bg: string;
5
+ /** Label ink, guaranteed >= 4.5:1 on `bg`. */
6
+ fg: string;
7
+ /** Chip outline, guaranteed >= 3:1 on `bg`. */
8
+ border: string;
9
+ };
10
+ /**
11
+ * Status chips (open / in-progress / resolved …) were authored as `X.500` text on an `X.100`
12
+ * tint, which measures 3.3-4.4:1 — under the 4.5:1 body-text bar in BOTH modes. The ink is
13
+ * resolved from the scale's own hue instead of pinned, so every brand and both modes land on the
14
+ * lightest ink that still passes rather than a hand-copied hex that goes stale.
15
+ *
16
+ * `reverseScale` flips the utility ramps in dark, so `X.100` is already a dark tint there and the
17
+ * ink walks lighter instead of darker — hence the mode argument.
18
+ */
19
+ export declare function resolveStatusTone(scale: ColorScale, mode: ResolvedColorMode): StatusTone;
20
+ /**
21
+ * Avatar initials are drawn white on a generated fill. The seed hues in use measured 1.92:1
22
+ * (`#eab308`), 2.54:1 (`#10b981`) and 3.76:1 (`#ef4444`) — failing in light mode too, not just
23
+ * dark. Darkening the fill keeps the intended hue and the white-initials look while clearing AA.
24
+ */
25
+ export declare function resolveAvatarFill(hex: string, target?: number): string;
26
+ /**
27
+ * Hue set for generated avatars. Values are seeds, not final fills — always pass them through
28
+ * `resolveAvatarFill` so the white initials stay legible.
29
+ */
30
+ export declare const AVATAR_SEEDS: readonly ["#ef4444", "#f97316", "#eab308", "#22c55e", "#10b981", "#06b6d4", "#3b82f6", "#8b5cf6", "#ec4899"];
31
+ /** Stable per-name avatar fill: same name always yields the same accessible colour. */
32
+ export declare function avatarFillFor(seedText: string): string;
33
+ /** True when `fg` clears the body-text bar on `bg` — exported for consumer assertions. */
34
+ export declare const meetsBodyText: (fg: string, bg: string) => boolean;
35
+ //# sourceMappingURL=statusTone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusTone.d.ts","sourceRoot":"","sources":["../../../../src/Theme/tokens/builders/statusTone.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,MAAM,UAAU,GAAG;IACvB,iBAAiB;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAUxF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAuB,GAAG,MAAM,CAGtF;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,8GAUf,CAAC;AAEX,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED,0FAA0F;AAC1F,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,EAAE,IAAI,MAAM,KAAG,OACd,CAAC"}