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

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 (413) hide show
  1. package/dist/Assets/defaultLogo.d.ts.map +1 -1
  2. package/dist/Assets/defaultLogo.js +1 -3
  3. package/dist/Assets/defaultLogo.tsx +4 -8
  4. package/dist/Components/Accordion/accordionColors.d.ts.map +1 -1
  5. package/dist/Components/Accordion/accordionColors.js +17 -3
  6. package/dist/Components/Checkbox/Checkbox.styles.d.ts.map +1 -1
  7. package/dist/Components/Checkbox/Checkbox.styles.js +13 -2
  8. package/dist/Components/CustomModulesTable/EditModuleModal.d.ts.map +1 -1
  9. package/dist/Components/CustomModulesTable/EditModuleModal.js +5 -1
  10. package/dist/Components/DatePicker/CalendarPanel.d.ts.map +1 -1
  11. package/dist/Components/DatePicker/CalendarPanel.js +15 -4
  12. package/dist/Components/DatePicker/SingleDatePicker.d.ts.map +1 -1
  13. package/dist/Components/DatePicker/SingleDatePicker.js +11 -9
  14. package/dist/Components/DatePicker/TimeOnlyPicker.js +2 -2
  15. package/dist/Components/DatePicker/TimePicker.d.ts.map +1 -1
  16. package/dist/Components/DatePicker/TimePicker.js +14 -2
  17. package/dist/Components/DatePicker/TimePickerInput.d.ts.map +1 -1
  18. package/dist/Components/DatePicker/TimePickerInput.js +9 -1
  19. package/dist/Components/Editor/joditThemeVars.d.ts.map +1 -1
  20. package/dist/Components/Editor/joditThemeVars.js +9 -0
  21. package/dist/Components/FilePreview/FilePreview.d.ts.map +1 -1
  22. package/dist/Components/FilePreview/FilePreview.js +3 -1
  23. package/dist/Components/FileUploader/FileUploader.js +2 -2
  24. package/dist/Components/FilterSidebar/FilterSidebar.js +1 -1
  25. package/dist/Components/LimitReachedModal/LimitReachedModal.d.ts +5 -0
  26. package/dist/Components/LimitReachedModal/LimitReachedModal.d.ts.map +1 -0
  27. package/dist/Components/LimitReachedModal/LimitReachedModal.js +45 -0
  28. package/dist/Components/LimitReachedModal/LimitReachedModalProps.d.ts +16 -0
  29. package/dist/Components/LimitReachedModal/LimitReachedModalProps.d.ts.map +1 -0
  30. package/dist/Components/LimitReachedModal/LimitReachedModalProps.js +2 -0
  31. package/dist/Components/LimitReachedModal/limitReachedCopy.d.ts +7 -0
  32. package/dist/Components/LimitReachedModal/limitReachedCopy.d.ts.map +1 -0
  33. package/dist/Components/LimitReachedModal/limitReachedCopy.js +54 -0
  34. package/dist/Components/Loading/Loading.d.ts +1 -1
  35. package/dist/Components/Loading/Loading.d.ts.map +1 -1
  36. package/dist/Components/Loading/Loading.js +2 -2
  37. package/dist/Components/Loading/LoadingProps.d.ts +2 -0
  38. package/dist/Components/Loading/LoadingProps.d.ts.map +1 -1
  39. package/dist/Components/Modal/Modal.d.ts.map +1 -1
  40. package/dist/Components/Modal/Modal.js +1 -4
  41. package/dist/Components/NavigationBar/NavigationBar.d.ts.map +1 -1
  42. package/dist/Components/NavigationBar/NavigationBar.js +10 -6
  43. package/dist/Components/OrgSwitcher/OrgSwitcher.d.ts.map +1 -1
  44. package/dist/Components/OrgSwitcher/OrgSwitcher.js +22 -3
  45. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +9 -1
  46. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts.map +1 -1
  47. package/dist/Components/OrgSwitcher/OrgSwitcherProps.js +19 -5
  48. package/dist/Components/OrganizationDetails/CreateOrgModal.js +6 -4
  49. package/dist/Components/OrganizationDetails/OrganizationDetails.d.ts.map +1 -1
  50. package/dist/Components/OrganizationDetails/OrganizationDetails.js +66 -9
  51. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts +47 -14
  52. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts.map +1 -1
  53. package/dist/Components/PlanBadge/PlanBadge.d.ts +12 -0
  54. package/dist/Components/PlanBadge/PlanBadge.d.ts.map +1 -0
  55. package/dist/Components/PlanBadge/PlanBadge.js +22 -0
  56. package/dist/Components/PlanBadge/PlanBadgeProps.d.ts +11 -0
  57. package/dist/Components/PlanBadge/PlanBadgeProps.d.ts.map +1 -0
  58. package/dist/Components/PlanBadge/PlanBadgeProps.js +2 -0
  59. package/dist/Components/PlanPill/PlanPill.d.ts +5 -0
  60. package/dist/Components/PlanPill/PlanPill.d.ts.map +1 -0
  61. package/dist/Components/PlanPill/PlanPill.js +42 -0
  62. package/dist/Components/PlanPill/PlanPillProps.d.ts +28 -0
  63. package/dist/Components/PlanPill/PlanPillProps.d.ts.map +1 -0
  64. package/dist/Components/PlanPill/PlanPillProps.js +2 -0
  65. package/dist/Components/PlanPill/planPillGradient.d.ts +22 -0
  66. package/dist/Components/PlanPill/planPillGradient.d.ts.map +1 -0
  67. package/dist/Components/PlanPill/planPillGradient.js +20 -0
  68. package/dist/Components/Search/Search.d.ts.map +1 -1
  69. package/dist/Components/Search/Search.js +4 -2
  70. package/dist/Components/Select/Select.styles.d.ts.map +1 -1
  71. package/dist/Components/Select/Select.styles.js +29 -20
  72. package/dist/Components/SelectSearch/SelectSearch.js +1 -1
  73. package/dist/Components/SelectV2/SelectV2.d.ts +3 -0
  74. package/dist/Components/SelectV2/SelectV2.d.ts.map +1 -0
  75. package/dist/Components/SelectV2/SelectV2.js +185 -0
  76. package/dist/Components/SelectV2/SelectV2Props.d.ts +67 -0
  77. package/dist/Components/SelectV2/SelectV2Props.d.ts.map +1 -0
  78. package/dist/Components/SelectV2/SelectV2Props.js +2 -0
  79. package/dist/Components/SideBar/SecondaryBar.d.ts.map +1 -1
  80. package/dist/Components/SideBar/SecondaryBar.js +10 -2
  81. package/dist/Components/SideBar/SideBar.js +2 -2
  82. package/dist/Components/SideBar/components/MenuItemBox.d.ts.map +1 -1
  83. package/dist/Components/SideBar/components/MenuItemBox.js +7 -6
  84. package/dist/Components/Table/components/tableRowHoverStyle.d.ts +9 -8
  85. package/dist/Components/Table/components/tableRowHoverStyle.d.ts.map +1 -1
  86. package/dist/Components/Table/components/tableRowHoverStyle.js +12 -12
  87. package/dist/Components/Table/settings/ManageColumns.js +2 -2
  88. package/dist/Components/UpgradeButton/UpgradeButton.d.ts.map +1 -1
  89. package/dist/Components/UpgradeButton/UpgradeButton.js +25 -7
  90. package/dist/Components/UserDetails/UserDetails.d.ts.map +1 -1
  91. package/dist/Components/UserDetails/UserDetails.js +5 -2
  92. package/dist/Components/WorkspaceWindow/WorkspaceTrayPreview.js +2 -1
  93. package/dist/Components/WorkspaceWindow/WorkspaceWindow.d.ts +2 -2
  94. package/dist/Components/WorkspaceWindow/WorkspaceWindow.d.ts.map +1 -1
  95. package/dist/Components/WorkspaceWindow/WorkspaceWindow.js +25 -4
  96. package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts +18 -0
  97. package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts.map +1 -1
  98. package/dist/Pages/organizationDetails.d.ts.map +1 -1
  99. package/dist/Pages/organizationDetails.js +31 -15
  100. package/dist/Theme/chakra/Avatar.styles.d.ts +33 -0
  101. package/dist/Theme/chakra/Avatar.styles.d.ts.map +1 -0
  102. package/dist/Theme/chakra/Avatar.styles.js +28 -0
  103. package/dist/Theme/chakra/Drawer.styles.d.ts +32 -0
  104. package/dist/Theme/chakra/Drawer.styles.d.ts.map +1 -0
  105. package/dist/Theme/chakra/Drawer.styles.js +26 -0
  106. package/dist/Theme/chakra/Menu.styles.d.ts +70 -0
  107. package/dist/Theme/chakra/Menu.styles.d.ts.map +1 -0
  108. package/dist/Theme/chakra/Menu.styles.js +50 -0
  109. package/dist/Theme/chakra/Modal.styles.d.ts +32 -0
  110. package/dist/Theme/chakra/Modal.styles.d.ts.map +1 -0
  111. package/dist/Theme/chakra/Modal.styles.js +26 -0
  112. package/dist/Theme/chakra/Popover.styles.d.ts +37 -0
  113. package/dist/Theme/chakra/Popover.styles.d.ts.map +1 -0
  114. package/dist/Theme/chakra/Popover.styles.js +30 -0
  115. package/dist/Theme/chakra/Slider.styles.d.ts +31 -0
  116. package/dist/Theme/chakra/Slider.styles.d.ts.map +1 -0
  117. package/dist/Theme/chakra/Slider.styles.js +25 -0
  118. package/dist/Theme/chakra/Switch.styles.d.ts +31 -0
  119. package/dist/Theme/chakra/Switch.styles.d.ts.map +1 -0
  120. package/dist/Theme/chakra/Switch.styles.js +24 -0
  121. package/dist/Theme/chakra/Tabs.styles.d.ts +43 -0
  122. package/dist/Theme/chakra/Tabs.styles.d.ts.map +1 -0
  123. package/dist/Theme/chakra/Tabs.styles.js +41 -0
  124. package/dist/Theme/chakra/componentStyles.d.ts +230 -1
  125. package/dist/Theme/chakra/componentStyles.d.ts.map +1 -1
  126. package/dist/Theme/chakra/componentStyles.js +136 -0
  127. package/dist/Theme/chakra/createBrandTheme.d.ts.map +1 -1
  128. package/dist/Theme/chakra/createBrandTheme.js +47 -0
  129. package/dist/Theme/provider/PixelizeThemeProvider.d.ts +11 -1
  130. package/dist/Theme/provider/PixelizeThemeProvider.d.ts.map +1 -1
  131. package/dist/Theme/provider/PixelizeThemeProvider.js +90 -2
  132. package/dist/Theme/provider/ThemeSwitcher.d.ts.map +1 -1
  133. package/dist/Theme/provider/ThemeSwitcher.js +23 -11
  134. package/dist/Theme/tokens/brands/index.d.ts.map +1 -1
  135. package/dist/Theme/tokens/brands/index.js +20 -18
  136. package/dist/Theme/tokens/brands/zinc/palette.dark.d.ts.map +1 -1
  137. package/dist/Theme/tokens/brands/zinc/palette.dark.js +4 -2
  138. package/dist/Theme/tokens/builders/outlineRung.d.ts +35 -0
  139. package/dist/Theme/tokens/builders/outlineRung.d.ts.map +1 -0
  140. package/dist/Theme/tokens/builders/outlineRung.js +69 -0
  141. package/dist/Theme/tokens/builders/statusTone.d.ts +35 -0
  142. package/dist/Theme/tokens/builders/statusTone.d.ts.map +1 -0
  143. package/dist/Theme/tokens/builders/statusTone.js +63 -0
  144. package/dist/Utils/accountHandoff.d.ts +54 -0
  145. package/dist/Utils/accountHandoff.d.ts.map +1 -0
  146. package/dist/Utils/accountHandoff.js +144 -0
  147. package/dist/Utils/planBadge.d.ts +39 -0
  148. package/dist/Utils/planBadge.d.ts.map +1 -0
  149. package/dist/Utils/planBadge.js +108 -0
  150. package/dist/Utils/planExpiry.d.ts +35 -0
  151. package/dist/Utils/planExpiry.d.ts.map +1 -0
  152. package/dist/Utils/planExpiry.js +115 -0
  153. package/dist/index.d.ts +18 -1
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.js +36 -3
  156. package/package.json +6 -2
  157. package/.claude/settings.local.json +0 -51
  158. package/.cursor/TASK-SETUP.md +0 -43
  159. package/.cursor/agents/be-impl.md +0 -37
  160. package/.cursor/agents/fe-impl.md +0 -39
  161. package/.cursor/agents/task-plan.md +0 -56
  162. package/.cursor/agents/test-create.md +0 -31
  163. package/.cursor/agents/test-exec.md +0 -26
  164. package/.cursor/hooks/task-hint.env +0 -1
  165. package/.cursor/hooks/task-skill-nudge.sh +0 -71
  166. package/.cursor/hooks/task-slash-guard.sh +0 -31
  167. package/.cursor/hooks.json +0 -13
  168. package/.cursor/modules/account-management/MODULE.md +0 -34
  169. package/.cursor/modules/buttons/MODULE.md +0 -47
  170. package/.cursor/modules/cards/MODULE.md +0 -55
  171. package/.cursor/modules/charts/MODULE.md +0 -40
  172. package/.cursor/modules/common/MODULE.md +0 -36
  173. package/.cursor/modules/contact-auth/MODULE.md +0 -19
  174. package/.cursor/modules/data-display/MODULE.md +0 -42
  175. package/.cursor/modules/feedback/MODULE.md +0 -32
  176. package/.cursor/modules/form/MODULE.md +0 -13
  177. package/.cursor/modules/inputs-basic/MODULE.md +0 -42
  178. package/.cursor/modules/inputs-date-file/MODULE.md +0 -56
  179. package/.cursor/modules/inputs-select/MODULE.md +0 -27
  180. package/.cursor/modules/inputs-toggle/MODULE.md +0 -18
  181. package/.cursor/modules/kanban/MODULE.md +0 -22
  182. package/.cursor/modules/layout-navigation/MODULE.md +0 -269
  183. package/.cursor/modules/overlays/MODULE.md +0 -69
  184. package/.cursor/modules/playground/MODULE.md +0 -28
  185. package/.cursor/modules/table/MODULE.md +0 -78
  186. package/.cursor/modules/theme/MODULE.md +0 -314
  187. package/.cursor/modules/types-exports/MODULE.md +0 -17
  188. package/.cursor/modules/utility-ui/MODULE.md +0 -50
  189. package/.cursor/modules/utils-hooks/MODULE.md +0 -35
  190. package/.cursor/pixelize-task-statusline.sh +0 -64
  191. package/.cursor/plans/blocked/.gitkeep +0 -0
  192. package/.cursor/plans/current.md +0 -12
  193. package/.cursor/plans/current.theme-tokens-dark-mode.md +0 -77
  194. package/.cursor/plans/current.theme-tokens-dark.md +0 -155
  195. package/.cursor/plans/done/.gitkeep +0 -0
  196. package/.cursor/rules +0 -31
  197. package/.cursor/skills/task/SKILL.md +0 -167
  198. package/CLAUDE.md +0 -148
  199. package/__mocks__/styleMock.js +0 -8
  200. package/coverage/clover.xml +0 -405
  201. package/coverage/coverage-final.json +0 -16
  202. package/coverage/coverage-summary.json +0 -50
  203. package/coverage/lcov-report/Button/Button.tsx.html +0 -244
  204. package/coverage/lcov-report/Button/index.html +0 -116
  205. package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +0 -433
  206. package/coverage/lcov-report/Checkbox/index.html +0 -116
  207. package/coverage/lcov-report/Common/ErrorMessage.tsx.html +0 -148
  208. package/coverage/lcov-report/Common/FormLabel.tsx.html +0 -331
  209. package/coverage/lcov-report/Common/HelperText.tsx.html +0 -124
  210. package/coverage/lcov-report/Common/index.html +0 -146
  211. package/coverage/lcov-report/Components/Button/Button.tsx.html +0 -244
  212. package/coverage/lcov-report/Components/Button/index.html +0 -116
  213. package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +0 -433
  214. package/coverage/lcov-report/Components/Checkbox/index.html +0 -116
  215. package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +0 -148
  216. package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +0 -331
  217. package/coverage/lcov-report/Components/Common/HelperText.tsx.html +0 -124
  218. package/coverage/lcov-report/Components/Common/index.html +0 -146
  219. package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +0 -712
  220. package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +0 -343
  221. package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +0 -313
  222. package/coverage/lcov-report/Components/CustomModulesTable/index.html +0 -146
  223. package/coverage/lcov-report/Components/Divider/Divider.tsx.html +0 -133
  224. package/coverage/lcov-report/Components/Divider/index.html +0 -116
  225. package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +0 -994
  226. package/coverage/lcov-report/Components/Dropdown/index.html +0 -116
  227. package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +0 -466
  228. package/coverage/lcov-report/Components/EmptyState/index.html +0 -116
  229. package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +0 -373
  230. package/coverage/lcov-report/Components/Header/index.html +0 -116
  231. package/coverage/lcov-report/Components/Input/TextInput.tsx.html +0 -487
  232. package/coverage/lcov-report/Components/Input/index.html +0 -116
  233. package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +0 -205
  234. package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +0 -547
  235. package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +0 -190
  236. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +0 -247
  237. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +0 -116
  238. package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +0 -3598
  239. package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +0 -283
  240. package/coverage/lcov-report/Components/KanbanBoard/index.html +0 -161
  241. package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  242. package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  243. package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  244. package/coverage/lcov-report/Components/OrganizationDetails/index.html +0 -146
  245. package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  246. package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +0 -1732
  247. package/coverage/lcov-report/Components/RolesPermission/index.html +0 -131
  248. package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +0 -2575
  249. package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  250. package/coverage/lcov-report/Components/SearchSelect/index.html +0 -146
  251. package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +0 -496
  252. package/coverage/lcov-report/Components/Select/Select.tsx.html +0 -361
  253. package/coverage/lcov-report/Components/Select/index.html +0 -116
  254. package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +0 -562
  255. package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +0 -346
  256. package/coverage/lcov-report/Components/SideBar/components/index.html +0 -116
  257. package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +0 -490
  258. package/coverage/lcov-report/Components/SignInActivityTable/index.html +0 -116
  259. package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +0 -595
  260. package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +0 -2212
  261. package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +0 -358
  262. package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +0 -358
  263. package/coverage/lcov-report/Components/Table/components/index.html +0 -161
  264. package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +0 -856
  265. package/coverage/lcov-report/Components/Table/settings/index.html +0 -116
  266. package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +0 -331
  267. package/coverage/lcov-report/Components/Tag/Tag.tsx.html +0 -256
  268. package/coverage/lcov-report/Components/Tag/index.html +0 -131
  269. package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +0 -286
  270. package/coverage/lcov-report/Components/ToolTip/index.html +0 -116
  271. package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +0 -709
  272. package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +0 -505
  273. package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +0 -379
  274. package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +0 -1900
  275. package/coverage/lcov-report/Components/UserDetails/index.html +0 -161
  276. package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +0 -466
  277. package/coverage/lcov-report/EmptyState/index.html +0 -116
  278. package/coverage/lcov-report/Hooks/index.html +0 -116
  279. package/coverage/lcov-report/Hooks/usePreferences.ts.html +0 -421
  280. package/coverage/lcov-report/Input/TextInput.tsx.html +0 -487
  281. package/coverage/lcov-report/Input/index.html +0 -131
  282. package/coverage/lcov-report/Input/textInputIconSize.ts.html +0 -205
  283. package/coverage/lcov-report/KanbanBoard.tsx.html +0 -3481
  284. package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  285. package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  286. package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  287. package/coverage/lcov-report/OrganizationDetails/index.html +0 -146
  288. package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  289. package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +0 -1732
  290. package/coverage/lcov-report/RolesPermission/index.html +0 -116
  291. package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +0 -2575
  292. package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  293. package/coverage/lcov-report/SearchSelect/index.html +0 -146
  294. package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +0 -496
  295. package/coverage/lcov-report/Table/CompactSelect.tsx.html +0 -379
  296. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +0 -514
  297. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +0 -373
  298. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +0 -574
  299. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +0 -574
  300. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +0 -1027
  301. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +0 -397
  302. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +0 -1060
  303. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +0 -361
  304. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +0 -337
  305. package/coverage/lcov-report/Table/Components/index.html +0 -266
  306. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +0 -178
  307. package/coverage/lcov-report/Table/Components/useTable.ts.html +0 -778
  308. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +0 -1810
  309. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +0 -178
  310. package/coverage/lcov-report/Table/Table.tsx.html +0 -1567
  311. package/coverage/lcov-report/Table/TableProps.tsx.html +0 -658
  312. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +0 -619
  313. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +0 -229
  314. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +0 -532
  315. package/coverage/lcov-report/Table/TableSettings/index.html +0 -146
  316. package/coverage/lcov-report/Table/TableToDo.tsx.html +0 -973
  317. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +0 -271
  318. package/coverage/lcov-report/Table/filterTypes.ts.html +0 -97
  319. package/coverage/lcov-report/Table/index.html +0 -176
  320. package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +0 -856
  321. package/coverage/lcov-report/Table/settings/index.html +0 -116
  322. package/coverage/lcov-report/Tag/Tag.tsx.html +0 -256
  323. package/coverage/lcov-report/Tag/index.html +0 -116
  324. package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +0 -175
  325. package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +0 -214
  326. package/coverage/lcov-report/Theme/index.html +0 -131
  327. package/coverage/lcov-report/Theme/useCustomTheme.ts.html +0 -100
  328. package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +0 -286
  329. package/coverage/lcov-report/ToolTip/index.html +0 -116
  330. package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +0 -709
  331. package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +0 -505
  332. package/coverage/lcov-report/UserDetails/index.html +0 -116
  333. package/coverage/lcov-report/Utils/functions.ts.html +0 -106
  334. package/coverage/lcov-report/Utils/index.html +0 -116
  335. package/coverage/lcov-report/Utils/table.ts.html +0 -1189
  336. package/coverage/lcov-report/base.css +0 -224
  337. package/coverage/lcov-report/block-navigation.js +0 -87
  338. package/coverage/lcov-report/favicon.png +0 -0
  339. package/coverage/lcov-report/index.html +0 -251
  340. package/coverage/lcov-report/prettify.css +0 -1
  341. package/coverage/lcov-report/prettify.js +0 -2
  342. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  343. package/coverage/lcov-report/sorter.js +0 -210
  344. package/coverage/lcov.info +0 -981
  345. package/dist/Theme/Dark/theme.d.ts +0 -3
  346. package/dist/Theme/Dark/theme.d.ts.map +0 -1
  347. package/dist/Theme/Dark/theme.js +0 -277
  348. package/dist/Theme/Default/palette.d.ts +0 -375
  349. package/dist/Theme/Default/palette.d.ts.map +0 -1
  350. package/dist/Theme/Default/palette.js +0 -306
  351. package/dist/Theme/Default/theme.d.ts +0 -3
  352. package/dist/Theme/Default/theme.d.ts.map +0 -1
  353. package/dist/Theme/Default/theme.js +0 -19
  354. package/dist/Theme/Emerald/palette.d.ts +0 -375
  355. package/dist/Theme/Emerald/palette.d.ts.map +0 -1
  356. package/dist/Theme/Emerald/palette.js +0 -125
  357. package/dist/Theme/Emerald/theme.d.ts +0 -3
  358. package/dist/Theme/Emerald/theme.d.ts.map +0 -1
  359. package/dist/Theme/Emerald/theme.js +0 -19
  360. package/dist/Theme/Meadow/palette.d.ts +0 -375
  361. package/dist/Theme/Meadow/palette.d.ts.map +0 -1
  362. package/dist/Theme/Meadow/palette.js +0 -123
  363. package/dist/Theme/Meadow/theme.d.ts +0 -3
  364. package/dist/Theme/Meadow/theme.d.ts.map +0 -1
  365. package/dist/Theme/Meadow/theme.js +0 -19
  366. package/dist/Theme/Radiant/palette.d.ts +0 -375
  367. package/dist/Theme/Radiant/palette.d.ts.map +0 -1
  368. package/dist/Theme/Radiant/palette.js +0 -125
  369. package/dist/Theme/Radiant/theme.d.ts +0 -3
  370. package/dist/Theme/Radiant/theme.d.ts.map +0 -1
  371. package/dist/Theme/Radiant/theme.js +0 -19
  372. package/dist/Theme/Rosewood/palette.d.ts +0 -375
  373. package/dist/Theme/Rosewood/palette.d.ts.map +0 -1
  374. package/dist/Theme/Rosewood/palette.js +0 -125
  375. package/dist/Theme/Rosewood/theme.d.ts +0 -3
  376. package/dist/Theme/Rosewood/theme.d.ts.map +0 -1
  377. package/dist/Theme/Rosewood/theme.js +0 -19
  378. package/dist/Theme/Skyline/palette.d.ts +0 -375
  379. package/dist/Theme/Skyline/palette.d.ts.map +0 -1
  380. package/dist/Theme/Skyline/palette.js +0 -123
  381. package/dist/Theme/Skyline/theme.d.ts +0 -3
  382. package/dist/Theme/Skyline/theme.d.ts.map +0 -1
  383. package/dist/Theme/Skyline/theme.js +0 -19
  384. package/dist/Theme/Slate/palette.d.ts +0 -375
  385. package/dist/Theme/Slate/palette.d.ts.map +0 -1
  386. package/dist/Theme/Slate/palette.js +0 -123
  387. package/dist/Theme/Slate/theme.d.ts +0 -3
  388. package/dist/Theme/Slate/theme.d.ts.map +0 -1
  389. package/dist/Theme/Slate/theme.js +0 -19
  390. package/dist/Theme/buildBrandTokens.d.ts +0 -16
  391. package/dist/Theme/buildBrandTokens.d.ts.map +0 -1
  392. package/dist/Theme/buildBrandTokens.js +0 -33
  393. package/dist/Theme/chartColorsFromTheme.d.ts +0 -19
  394. package/dist/Theme/chartColorsFromTheme.d.ts.map +0 -1
  395. package/dist/Theme/chartColorsFromTheme.js +0 -34
  396. package/dist/Theme/common.d.ts +0 -167
  397. package/dist/Theme/common.d.ts.map +0 -1
  398. package/dist/Theme/common.js +0 -112
  399. package/dist/Theme/componentStyles.d.ts +0 -10
  400. package/dist/Theme/componentStyles.d.ts.map +0 -1
  401. package/dist/Theme/componentStyles.js +0 -19
  402. package/dist/Theme/fonts.d.ts +0 -37
  403. package/dist/Theme/fonts.d.ts.map +0 -1
  404. package/dist/Theme/fonts.js +0 -41
  405. package/dist/Theme/space.d.ts +0 -34
  406. package/dist/Theme/space.d.ts.map +0 -1
  407. package/dist/Theme/space.js +0 -35
  408. package/dist/Theme/theme.d.ts +0 -3
  409. package/dist/Theme/theme.d.ts.map +0 -1
  410. package/dist/Theme/theme.js +0 -12
  411. package/eslint.config.js +0 -48
  412. package/index.html +0 -13
  413. package/vite.config.ts +0 -13
@@ -1,55 +0,0 @@
1
- # Cards
2
-
3
- ## Purpose
4
-
5
- Card, PaymentCard, ProfileCard, ProductCard, ProductDetails.
6
-
7
- ## Key paths
8
-
9
- - `src/Components/Card/`, `Card/PaymentCard/`, `ProfileCard/`, `ProductCard/`, `ProductDetails/`
10
-
11
- ## Key rules
12
-
13
- - ProfileCard has Header/Body/Footer subcomponents
14
-
15
- ## Dark mode
16
-
17
- PaymentCard, ProductCard, ProductPrice, ProductDtlPrice and ProductImageSlider read their colors
18
- from `useCustomTheme()` instead of hex literals, so they follow the active light/dark palette.
19
-
20
- - Surfaces use `colors.background[50]`, never `colors.white` — `white` is a foreground token and
21
- stays white in dark. Covers the card body, the ProductPrice dropdown panel and its radio dot,
22
- the unselected pack chip in ProductDtlPrice, and the play-button circle in ProductImageSlider.
23
- - PaymentCard's badge/button label no longer hardcodes `colors.white` — it's picked per
24
- `buttonColor` via `onFilled()` (`Theme/tokens/builders/accentText`), which falls back to
25
- `colors.black` when white would fail AA on that fill. Guarantees WCAG AA across the
26
- active/upgrade/popular/default button colors instead of assuming white always works.
27
- - The product components keep Chakra literals for offer/pack chrome (`red.50`, `orange.50`,
28
- `green.100`). Those are dark-aware already — the theme carries the palette as `colors`, and
29
- `buildDarkPalette` reverses utility hue ramps so index roles survive (`red.50` = pale badge
30
- background in light, deep in dark). They track the hue, not the brand accent.
31
- - ProductPrice's struck-through original price bumped `gray.400` → `gray.500` (still a raw
32
- Chakra literal, not a theme token) for AA contrast against the card surface.
33
- - ProductTags' label swapped `colors.black` → `colors.text[900]` (mode-adaptive ink token) so it
34
- stays legible in dark mode.
35
- - **Known gap:** ProductReview's rating chip (`bg="teal.50"` / `color="teal.900"`) and its star
36
- fill (`RATING_STAR_FILL`, a pinned `#ECC94B` hex — see in-file comment) are still raw
37
- Chakra/hex literals, not `useCustomTheme()` tokens. Pre-existing pattern, not worsened by this
38
- pass, but won't track brand hue or dark mode — needs a mode-stable "rating gold" token added to
39
- `pixelize-design-library` before this can move off literals.
40
-
41
- ## WCAG contrast pass (Wave D, QA-driven)
42
-
43
- - **ProductPrice.tsx** — dropdown-arrow `red.400` (on `red.50` canvas) and discounted/final-price
44
- `red.500` text (on `red.50`/`background[50]` depending on selection state) failed AA (2.6-3.7:1).
45
- Fixed via `accentTextOnCanvas(theme.colors.red, <the actual local canvas>)` at each of the 3
46
- call sites, matching the canvas each already renders on (including the existing `isSelected`
47
- bg ternary). The dot-fill `bg="red.500"` (a filled swatch, not text) was left unchanged — it
48
- clears the 3:1 non-text bar against `background[50]`.
49
- - **ProductDtlPrice.tsx** — price `Text` hardcoded `theme.colors.red[500]` (≈3.46:1 vs the page
50
- canvas, fails) and the pack-swatch `color="orange.600"` (≈2.47-2.67:1 vs either bg state,
51
- fails) both routed through `accentTextOnCanvas`. `borderColor`/`bg` on the swatch button are
52
- decorative and were left alone.
53
- - **ProductImageSlider.tsx** — checked, not changed: all 6 `theme.colors.red[500]` Play-icon
54
- usages sit on an opaque `background[50]` circular scrim (not the raw image), so the applicable
55
- bar is 3:1 (graphical object, not text) — clears at ≈3.68:1 light / ≈6.48:1 dark.
@@ -1,40 +0,0 @@
1
- # Charts
2
-
3
- ## Purpose
4
-
5
- Apexcharts wrappers: Bar, Line, Pie, Polar.
6
-
7
- ## Key paths
8
-
9
- - `src/Components/Apexcharts/ApexBarChart/`, `ApexLineChart/`, `ApexPieChart/`, `ApexPolarCharts/`
10
- - `src/Theme/tokens/builders/chartColorsFromTheme.ts` — shared chart color helpers (+ test)
11
-
12
- ## Key rules
13
-
14
- - react-apexcharts; every color is a theme token, never a literal. Shared helpers:
15
- `getDefaultSeriesColors` (primary / error / success / orange `500`), `mergeChartTitleStyle`
16
- (title → `primary[500]`), `chartAxisLabelColor` (`gray[700]`). The rest read `palette` directly:
17
- legend `text[900]` (Pie/Polar), Bar data labels `primary[500]`, Polar stroke `white`.
18
- - All four read `useTheme().colors` (cast to `CustomThemeProps["colors"]`) rather than styling via
19
- Chakra props, because ApexCharts `options` need resolved hex **strings**.
20
- - The helper sits in the pure token layer: type-only imports, never Chakra/React (see CLAUDE.md).
21
-
22
- ## Dark mode
23
-
24
- - Dark-aware for free — the theme swaps in the dark palette and these tokens re-resolve. No hex
25
- literals remain under `Apexcharts/`.
26
- - Caller color props (`barColor`, `lineColors`, `chartColor`/`donutColors`, `chartColors`,
27
- `titleStyle`, `legendStyle`) override the token defaults and are **not** dark-aware: a consumer
28
- passing a hardcoded hex keeps it in both modes.
29
- - ApexPolarCharts `basic`/`monochrome` stroke slice borders with `colors.white` — foreground on a
30
- filled slice, so it correctly stays white; not a missed `background[50]` surface.
31
- - All four now also set ApexCharts' own `options.theme.mode` (`"dark"`/`"light"`) from
32
- `isDarkCanvas(palette.backgroundColor.main)` (`Theme/tokens/builders/accentText.ts`), so
33
- ApexCharts' internal chrome (gridlines, built-in tooltip, etc.) follows the active canvas too,
34
- not just the token-driven series/title/legend colors. No change to any chart's data/options
35
- prop contract.
36
- - Removed `chartTooltipBackground`/`chartTooltipForeground` from `chartColorsFromTheme.ts` (they
37
- always resolved to a hardcoded dark-styled tooltip — `gray[700]`/`white` — regardless of mode,
38
- now unused repo-wide). `ApexLineChart`'s title-truncation `ToolTip` no longer overrides
39
- `bg`/`color`; it defers to `ToolTip`'s own theme-aware default instead.
40
- - Known gap: titles/legends use `primary[500]` / `text[900]`, not the AA-safe `accentText` token.
@@ -1,36 +0,0 @@
1
- # Common Helpers
2
-
3
- ## Purpose
4
-
5
- Internal shared helpers under `Components/Common/` — not all exported from index.
6
-
7
- ## Key paths
8
-
9
- - `src/Components/Common/` — ErrorComponent, FormLabel, etc.
10
-
11
- ## Key rules
12
-
13
- - Internal use by other components; export only if needed publicly
14
-
15
- ## Dark mode
16
-
17
- - **FormLabel** (`TextLabel`): both tooltips (`showTooltip` / `isInformation`) swapped
18
- Chakra's own `Tooltip` for the library's `ToolTip` (`../ToolTip/ToolTip`), dropping the
19
- hardcoded `bg={gray[600]}` / `color={white}` — `ToolTip` owns its own theme-aware
20
- contrast (see `overlays` MODULE.md). No `TextLabel` prop changes.
21
- - **fieldStyles.ts** (`getFieldStateStyles`): idle border bumped `boxborder[500]` →
22
- `boxborder[800]` — `[500]` failed WCAG 1.4.11 (>=3:1 non-text contrast) against
23
- surfaces up to `muted`; `[800]` clears with margin. Focus/error ring colors and the
24
- function signature are unchanged.
25
- - **ErrorMessage.tsx**, **ErrorComponent.tsx**, **FormLabel.tsx** (required-asterisk), **Label.tsx**:
26
- error text color switched from a hardcoded `theme.colors.red[500]` / `semantic.error[500]` to
27
- `accentTextOnCanvas(scale, canvas)` (`../../Theme/tokens/builders/accentText`) — `red[500]` alone
28
- fails AA (~3.4:1) against the page canvas in every brand; see `theme` MODULE.md "Wave D" for why
29
- this couldn't be a token retune. No prop/API changes.
30
- - **ErrorComponent.tsx's SVG mark ink (code-review catch):** the circle/rect/dot marks drawn on
31
- top of the `errorFill` circle were hardcoded `theme.colors.white`. `errorFill` is tuned for
32
- text-on-page-canvas contrast, not for "carries a white mark on top of itself" — those are
33
- different constraints, and nothing guaranteed white would keep clearing AA there if the token
34
- ever changed (it happened to today). Replaced with
35
- `onFilled(errorFill, theme.colors.white, theme.colors.black)`, the same provably-always-safe
36
- ink-on-a-filled-swatch helper used by FilterSidebar's checkmark and PaymentCard.
@@ -1,19 +0,0 @@
1
- # Contact & Email
2
-
3
- ## Purpose
4
-
5
- ContactForm, VerifyEmailOtp (EmailCards).
6
-
7
- ## Key paths
8
-
9
- - `src/Components/ContactForm/`, `EmailCards/VerifyEmailOtp/`
10
-
11
- ## Key rules
12
-
13
- - OTP flow UI only — API wiring in consumer apps
14
-
15
- ## Dark mode
16
-
17
- - **VerifyEmailOtp**: `PinInputField` idle border bumped `boxborder[300]` → `boxborder[800]` —
18
- `[300]` failed WCAG 1.4.11 (>=3:1 non-text contrast) against surfaces up to `muted`; `[800]`
19
- clears with margin. Already theme-token-driven before this change; no prop/signature changes.
@@ -1,42 +0,0 @@
1
- # Data Display
2
-
3
- ## Purpose
4
-
5
- Tag, Timeline, Reorder, Divider, Trail.
6
-
7
- ## Key paths
8
-
9
- - `src/Components/Tag/` — `Tag.tsx`, `TagProps.ts`, `Tag.styles.tsx` (registered in `Theme/componentStyles.ts`)
10
- - `Timeline/`, `Reorder/`, `Divider/`, `Trail/`
11
- - Demo: `src/Pages/tag.tsx`
12
-
13
- ## Key rules
14
-
15
- - Timeline: each event card renders its manual notes from `event.notes` (`TimelineNote[]` — `log_note_id`, `title`, `note`, `attachments[]`, `created_by`, `created_at`). Adding a note is event-scoped via the per-card "Add note" button → `onAddNote(note, title, files, event, index)`; the consumer persists it against `event.logs_id` and re-supplies it back in `event.notes`. Attachments show as links opening `attachment.url`.
16
- - Timeline notes support edit + delete: hovering a note shows edit/delete icons → `onEditNote(logNoteId, note, title, files, event, index)` (inline `NoteTextArea`) and `onDeleteNote(logNoteId, event, index)` (consumer owns any confirm dialog). Loading props: `addNoteLoading`/`editNoteLoading` keep the editor open with a Save spinner until the request resolves (then auto-close); `deletingNoteId` shows a spinner on the note being deleted. With no loading props wired, the add editor closes immediately on submit (back-compat).
17
- - Trail includes editable cell demos
18
- - Tag styling lives in `Tag.styles.tsx` (Chakra component theme), not hardcoded in `Tag.tsx`
19
- - Tag sizes: `xs | sm | md | lg`; variants: `solid | outline | subtle`
20
- - Tag colors are token-driven from the active theme via `colorScheme` (brand `primary/secondary/tertiary` + global scales); palette resolution falls back to `gray` so a missing scale never throws
21
- - Tag `solid` variant label color is now `onFilled(fill, white, black)` (per state: base/hover/active), not a hardcoded `white` — picks whichever of white/black clears WCAG AA against that swatch, so it stays readable on light brand fills too
22
-
23
- ## WCAG / dark-mode pass (this session)
24
-
25
- - **Tag.styles.tsx** — `solid` variant's foreground swapped from hardcoded `theme.colors?.white` to
26
- `onFilled(fill, white, black)`, computed per bg (base `500`, hover `600`, active `700`); verified
27
- against WCAG AA.
28
- - **Trail/EditableCell.tsx** — `priority` menu's `MenuButton` had a real hover-contrast fix: `bg`
29
- `teal.500`/`color white` → `bg="teal.50"` / `color="teal.900"` (+ hover/active states). **Known
30
- gap:** this uses raw Chakra `teal.*` literals, not `useCustomTheme()` tokens, so it won't track
31
- brand hue or dark mode — needs a follow-up token pass.
32
- - **Known gap (not fixed this pass):** the same `MenuList`/`MenuItem` still has no `bg=`/
33
- `sx={{ "--menu-bg": ... }}` override, so Chakra's `--menu-bg` CSS var still resolves to its
34
- hardcoded light-mode white regardless of this app's active dark mode — same root-cause bug
35
- already fixed this session in `ButtonGroupIcon` (buttons module) and `NavigationBar`
36
- (layout-navigation module). Deliberately deferred, not overlooked.
37
-
38
- ## Dark mode
39
-
40
- - Timeline takes every color from `useCustomTheme()`, so it follows whichever palette the theme carries. Dark works by swapping the palette — there is no `_dark`/`semanticTokens` layer, so a hardcoded value would stay light forever.
41
- - White surfaces use `colors.background[50]`, **not** `colors.white` — `white` is a *foreground* token (label on a filled button) and stays white in dark. Covers Timeline's event card, date chip, and the node ring that punches each node out of the spine. (Timeline's inline `NoteTextArea` is owned by `inputs-basic`.)
42
- - Timeline's remaining `?? "#fff"` fallbacks are defensive only — every brand palette defines `background[50]` (dark included, derived by `buildDarkPalette`).
@@ -1,32 +0,0 @@
1
- # Feedback
2
-
3
- ## Purpose
4
-
5
- Loading, Skeletons, ProgressBar, Notification, FeedbackForm.
6
-
7
- ## Key paths
8
-
9
- - `src/Components/Loading/`, `Skeletons/`, `ProgressBar/`, `Notification/`, `FeedbackForm/`
10
- - `src/services/feedback.ts`
11
-
12
- ## Key rules
13
-
14
- - FeedbackForm may POST to account API in consumer apps — keep props generic
15
-
16
- ## Dark mode
17
-
18
- - **Notification**: default `bgColor` switched `theme.colors.white` → `theme.colors.background[50]`
19
- — `white` is a foreground token (label ink, stays white in dark) and was being used as the card
20
- surface; `background[50]` is the correct dark-mode-aware white-surface token. Real bug fix (was
21
- forcing a white card in dark mode), not a plain refactor. Consumers passing `colors.bgColor`
22
- explicitly are unaffected.
23
- - **`warningColor`/`errorColor`/`successColor` object-vs-string bug (QA-adjacent, real correctness
24
- bug, not WCAG):** `NotificationProps` types these as hex strings, but the defaults were an
25
- un-indexed whole `ColorScale` object (`theme.colors.semantic.warning` instead of
26
- `theme.colors.semantic.warning[500]`) — Chakra silently can't render an object as a `bg=` color,
27
- so the default (no-override) case was broken. Fixed by indexing `[500]` on all three defaults.
28
- - **Time-elapsed icon/label AA gap:** the "time ago" `Icon`/`Text` defaulted to `orange.400`/
29
- `orange.500`, which fail AA (~1.9–2.2:1) against `bgColor` in every brand — same class of bug as
30
- the `error`/`red[500]` gap (theme module). Fixed by routing both through
31
- `accentTextOnCanvas(theme.colors.orange, bgColor)` (`Theme/tokens/builders/accentText`) instead
32
- of a fixed rung.
@@ -1,13 +0,0 @@
1
- # Form
2
-
3
- ## Purpose
4
-
5
- FormWrapper — shared form layout wrapper for entity forms in CRM apps.
6
-
7
- ## Key paths
8
-
9
- - `src/Components/Form/FormWrapper`
10
-
11
- ## Key rules
12
-
13
- - Used with smart forms in crm-frontend; keep generic props
@@ -1,42 +0,0 @@
1
- # Basic Inputs
2
-
3
- ## Purpose
4
-
5
- TextInput, PhoneNumberInput, InputTextArea, NoteTextArea, NumberInput, PinInput, PinInputs.
6
-
7
- ## Key paths
8
-
9
- - `src/Components/Input/`, `InputTextArea/`, `NoteTextArea/`, `NumberInput/`, `PinInput/`, `PinInputs/`
10
-
11
- ## Key rules
12
-
13
- - InputSwitch in `Input/Switch/`
14
-
15
- ## Dark mode
16
-
17
- - No hex literals remain — every field follows the active palette, but by three paths, not one:
18
- `useCustomTheme()` (TextInput, PhoneNumberInput, NoteTextArea, PinInput, InputSwitch), Chakra
19
- `useTheme()` (Input/Input, PinInputs), and `componentStyles` `({ theme })` fns (InputTextArea,
20
- NumberInput — no theme hook at all). The `?? "gray.300"` fallbacks in `*.styles.ts` are token
21
- refs, not literals: `createBrandTheme` sets `colors: palette`, so they resolve against the
22
- swapped palette.
23
- - `NoteTextArea` was the only migration here: its 4 white surfaces moved `colors.white` →
24
- `colors.background[50]`. `colors.white` is a **foreground** token (a label on a filled button)
25
- and stays white in dark; a white *surface* needs `background[50]` (identical `#ffffff` in light).
26
- - `InputSwitch` layers `useColorModeValue` over the palette swap — it picks a different *rung*
27
- (`primary[500]`→`[300]`, `gray[300]`→`[600]`) of the already-dark palette, not a second palette.
28
-
29
- ## Border contrast bump ([500]/[700] → [800])
30
-
31
- - Follow-up fix: `boxborder` at `[500]`/`[700]` only cleared canvas-level surfaces (main/base)
32
- and failed WCAG 1.4.11 (control boundary, >=3.0) against `muted`, the lightest named surface
33
- (2.41-2.72). All seven fields — `Input/Input.tsx`, `TextInput.styles.ts`,
34
- `InputTextArea.style.tsx`, `NumberInput.styles.ts`, `PinInput.tsx`, `PinInputs.tsx`,
35
- `NoteTextArea.tsx` — now use `boxborder?.[800]` for the resting/default border, clearing all
36
- 12 named surfaces (3.44-3.90) in both modes.
37
- - `Input/Input.tsx` also swapped its label/accent color from `colors.secondary?.[500]` to
38
- `accentTextOnCanvas(colors.secondary, colors.backgroundColor?.main)` — relies on the shared
39
- `accentText.ts` guard (Theme module) for safety when rendered without a full Pixelize theme;
40
- no separate fix was needed in this file.
41
- - `Input/Input.tsx` is **not** exported from `src/index.ts` (internal, used only by
42
- `src/Pages/TInput.tsx`) — low external impact.
@@ -1,56 +0,0 @@
1
- # Date & Files
2
-
3
- ## Purpose
4
-
5
- ThemeDatePicker (Single/Range/Time variants), FileUpload, FileUploader, Editor (jodit-react).
6
-
7
- ## Key paths
8
-
9
- - `src/Components/DatePicker/` — `ThemeDatePicker.tsx` (public entry), `SingleDatePicker.tsx`, `RangeDatePicker.tsx`, `TimePicker.tsx`, `TimeOnlyPicker.tsx`, `CalendarPanel.tsx`
10
- - `src/Components/FileUpload/`, `FileUploader/`, `Editor/`
11
-
12
- ## Key rules
13
-
14
- - DatePicker themed for brand tokens — `CalendarPanel` reads every color from `useCustomTheme()` (no hex literals), so it follows the active light/dark palette automatically.
15
- - The month/year `<select>` uses `colors.background[50]`, not `colors.white`: it is a white *surface* and must darken in dark mode. The one remaining `colors.white` (day label on the filled `primary[500]` circle — selected / range start / range end) is a *foreground* and correctly stays white. Don't "fix" it.
16
- - **Calendar/time popover surface bug (user-reported, blocking):** `SingleDatePicker.tsx`, `RangeDatePicker.tsx`, `TimeOnlyPicker.tsx`, and the legacy `DatePicker.tsx` (still reachable — consumed directly by `Table/filters/LeftFilterPane.tsx`, not just via the unused commented-out playground import) each rendered a `PopoverContent` with no explicit `bg=` — the same Chakra-hardcoded-`colors.white`-behind-`_dark` bug as `Modal`/`AlertDialog`/`Drawer` (overlays module). Because `CalendarPanel`'s day/weekday text (`text[700]`/`gray[400]`/`gray[500]`) is computed against the *intended* dark canvas, the panel rendered on Chakra's un-migrated white default while its text was tuned for a dark background — producing exactly the washed-out, near-invisible day numbers reported. Fixed with `bg={theme.colors.background[50]}` on all four `PopoverContent`s (`TimeOnlyPicker.tsx` didn't previously call `useCustomTheme()` at all — added the hook). Verified live via Playwright across all four variants (date-only, date+time, range, time-only).
17
- - **FileUploader (QA-caught)** — its file-count and "Click here" text hardcoded `color="blue.500"`/
18
- `"blue.400"`, which fail AA against the component's canvas (same class as the Notification
19
- orange gap). Fixed via `accentTextOnCanvas(colors.blue, colors.backgroundColor?.main ?? "#ffffff")`
20
- (`Theme/tokens/builders/accentText`), reused for both spots. Rest of the component (drag/drop
21
- chrome, file-row chips) is still Chakra scale literals (`gray.*`), not migrated to
22
- `useCustomTheme()` — out of scope for this pass since those are already dark-aware Chakra
23
- literals (see table/account-management MODULE.md for why plain `gray.*` literals already track
24
- the swapped palette).
25
- - Editor is now theme-aware: it reads `theme.colors.backgroundColor?.main` (with a `"#ffffff"` fallback added after a code-review-caught crash risk) via `isDarkCanvas()` to switch Jodit's own internal `dark`/`default` editor theme — it does not restyle Jodit itself, just picks which built-in Jodit theme renders. FileUpload does use theme (`useCustomTheme()`: `gray`, `red`, `blue`, `background`, `secondary.opacity`) but was not migrated — **known gap**: `FileUpload.tsx:153` paints the uploaded-file row `bg={colors?.white}`, a *surface* on the foreground token, so it stays white in dark mode; should be `background[50]`.
26
- - **Editor dark-mode "not black" bug (user-reported, fixed):** toggling Jodit's `config.theme` between `"dark"`/`"default"` only switches which of Jodit's OWN CSS selectors apply (`.jodit_theme_dark`, 180+ occurrences in `jodit.css`) — those selectors are still driven by Jodit's own hardcoded CSS custom properties (`--jd-dark-background-color: #575757`, a mid-gray, not black; `--jd-color-border-selected: #1e88e5`, generic blue), never fed this library's palette. Fixed in `Editor.tsx` by wrapping `<JoditEditor>` in a `<Box sx={...}>` carrying `getJoditThemeVars(theme.colors, isDark)` (`joditThemeVars.ts`) — inline CSS custom properties, scoped to this instance only (no `:root` leak onto other Jodit instances). Mapping: canvas/toolbar → `backgroundColor.main`/`.secondary`, ink → `text[900]`, icons → `text[700]`, hover/select-bg → `backgroundColor.muted`, border → `boxborder[500]`, accent → `primary[500]` — reusing the SAME role-stable tokens in both modes (`background[50]`/`text[900]` etc. already flip lightness internally per `buildDarkPalette.ts`, so no per-mode branching on VALUES, only on the `--jd-color-*` vs `--jd-dark-*` variable NAMES Jodit's default vs dark theme actually reads). Verified via Playwright: before showed `rgb(87,87,87)` (`#575757`, Jodit's default) on the canvas/toolbar in dark mode; after shows the brand's real near-black surface. Regression tests: `joditThemeVars.test.ts` (contrast + non-default-value assertions, lavender + rosewood).
27
- - **Editor popup/dialog portal gap (user-reported follow-up on the fix above, fixed):** the "Known gap" this section used to note — Jodit appends dialogs and toolbar-dropdown popups (search & replace, image/link properties, font-size list, paragraph format, …) directly to `document.body` (`Dialog.destination` / `getPopupViewRoot` in jodit core), outside the CSS-variable wrapper's DOM subtree, so they kept rendering in Jodit's default (light, unthemed) styling even in dark mode — was reported again as "hovering [in the] editor is not following WCAG standards." Traced via `node_modules/jodit/es2021/jodit.css`: the main toolbar's own `:hover` rule (`.jodit_theme_dark .jodit-toolbar-button:hover`) already clears AA/AA-non-text comfortably once `--jd-dark-background-color`/`--jd-dark-icon-color` are mapped (verified numerically — computed contrast ~10:1+ across all 8 brands, not touched), so the actual gap was specifically the portalled popups never inheriting `themeVars` at all. Fixed by wiring Jodit's own `config.popupRoot` (a supported, documented option — `node_modules/jodit/esm/config.d.ts`: `popupRoot: Nullable<HTMLElement>`) to the wrapper `<Box>`'s own DOM node via a callback ref (`useState<HTMLElement | null>` + `ref={setPopupRoot}` on the `Box`), so `Dialog.destination` resolves to the themed wrapper instead of `document.body` and every popup/dialog now inherits the same CSS custom properties as the toolbar/canvas. Regression test: `Editor.test.tsx` (mocks `jodit-react` to assert `config.popupRoot` is a real DOM node, not `null`/`document.body`). One TS gotcha hit while wiring this: adding a literal `popupRoot` key alongside `...config` (typed `DeepPartial<Config>`, Jodit's huge recursive config type) triggered `TS2589: Type instantiation is excessively deep` — worked around by spreading `config` as `Record<string, unknown>` before the final `as EditorProps["config"]` assertion, since the plain literal-plus-spread pattern is otherwise unaffected (see comment in `Editor.tsx`).
28
- - **Editor dialog inputs/search-panel/button-hover still unthemed (QA follow-up round, fixed):** the
29
- `popupRoot` fix above got popups into the themed DOM subtree, but 3 more Jodit CSS variables were
30
- still unmapped: `--jd-color-panel` (search & replace box background — only set in the light
31
- branch, so dark mode fell to Jodit's own `#f9f9f9`, a near-white panel), `--jd-color-white` /
32
- `--jd-color-gray` (`.jodit-ui-input__input` / `.jodit-ui-select__input` background — Jodit's own
33
- raw white default, unmapped in either mode; `-gray` is what the `_theme_dark`-suffixed variant
34
- reads instead of `-white`, and dialogs don't reliably get that modifier class). Traced each via
35
- `node_modules/jodit/es2021/jodit.css` line-by-line before touching anything. Also found (via a
36
- throwaway jest contrast computation, not assumed): the toolbar/dialog-button hover fill and the
37
- `.jodit-select`/`.jodit-input` background both already mapped to `--jd-dark-background-ligher:
38
- colors.backgroundColor.muted` — computed at ~1.3:1 against the canvas, a near-miss that had
39
- actually shipped (both values sit within ~11 lightness points of each other down near L7-18, where
40
- WCAG contrast collapses non-linearly) — this was the QA-reported "Insert button illegible on
41
- hover." Fixed in `joditThemeVars.ts`: `--jd-color-panel` moved into `shared` (role-stable, same
42
- `backgroundColor.secondary` expression already correct for light); `--jd-color-white:
43
- background[50]` added to `shared`; `--jd-color-gray: background[50]` added to the dark branch;
44
- `--jd-dark-background-ligher` changed to `background[900]` (this palette's dark-mode "bright
45
- highlight" rung, ~9.7-10.7:1 against the canvas across brands — verified before applying, not
46
- guessed). Confirmed via `node_modules/jodit/es2021/jodit.css` that `.jodit_theme_dark` /
47
- `.jodit-dialog_theme_dark` already hardcode `--jd-color-border: #6b6b6b` themselves (a Jodit-owned
48
- override we can't/don't need to touch), so this fix only had to cover panel/input backgrounds and
49
- the hover fill. Regression tests added to `joditThemeVars.test.ts`.
50
- - Masked-input blur must not discard a valid value. `isMaskComplete()` only recognises numeric/`a` tokens, so text month formats (e.g. `MMM d, yyyy`) never look "complete" — `handleInputBlur`/`handleInputFocus` therefore keep any value that `parseValidatedValue()` can parse to a valid date, and only `requestClose(null)` (clear) on empty/unparseable input. The Clear button and emptied-mask paths remain the explicit ways to clear. Regression: `SingleDatePicker.blur.test.tsx`.
51
-
52
- ## Migration notes
53
-
54
- - DatePicker public export moved: `DatePicker/DatePicker` → `DatePicker/ThemeDatePicker` (exported as `DatePicker` from `src/index.ts`)
55
- - Split into Single/Range/Time picker variants under the same folder
56
- - Picker tests build their Chakra theme from `Theme/tokens/brands/lavender/palette.light` (was `Theme/Default/palette`)
@@ -1,27 +0,0 @@
1
- # Select & Search
2
-
3
- ## Purpose
4
-
5
- Select, SearchSelect, SelectSearch, MultiSelect, Dropdown, Search.
6
-
7
- ## Key paths
8
-
9
- - `src/Components/Select/`, `SearchSelect/`, `SelectSearch/`, `MultiSelect/`, `Dropdown/`, `Search/`
10
-
11
- ## Key rules
12
-
13
- - SearchSelect has performance tests; virtualize for large lists
14
- - Dropdown and SearchSelect main options menu are portaled to `<body>` (`position: fixed`) and clamp to the viewport — right-align/flip above when near edges
15
- - `insideSelect` prefix: mutually exclusive with main dropdown; menu uses `position: fixed`, flips above/below based on viewport space, and re-anchors on scroll/resize; supports `placeholder` when no value
16
-
17
- ## Dark mode
18
-
19
- SearchSelect and SelectSearch source every color from `useCustomTheme()` or a palette-backed Chakra scale literal — no hex in source — so they follow the active light/dark palette.
20
-
21
- - Menu/panel surfaces use `colors.background[50]`, never `colors.white` — `white` is a foreground token (label on a filled button) and stays white in dark. The portaled menus are no exception: a portal escapes the DOM, not the theme
22
- - Chakra scale literals (`gray.300`) are palette-backed — the Chakra theme's `colors` *is* the palette — but the literal `bg="white"` hits the same foreground-token trap as `colors.white`
23
- - Lucide icons default to `currentColor` (a bare `<ChevronDown />` inherits the wrapper's `color`), but an explicit `color` prop is a raw CSS string — a scale name like `"gray.500"` won't resolve there; pass a token value
24
- - Known gap: SearchSelect's "Remove All" X passes `colors.black`, which is untouched in dark, on a `gray[50]` control (L10 in dark) — near-invisible; needs a text token
25
- - Control borders (`MultiSelect`, `Select.styles`, `SelectSearch`) bumped `boxborder` step [500]/[700] to **[800]**: WCAG 1.4.11 needs a 3:1 contrast ratio against any named surface up to `muted` (lightest) — [500]/[700] failed there, [800] clears all with margin (see inline comments at each call site)
26
- - Known behavior change: SearchSelect's inside-select placeholder text dropped the `theme.colors.placeholder?.[500] ?? theme.colors.gray[500]` fallback for a flat `theme.colors.gray[500]` — still a valid token, but only the lavender brand defines a distinct `placeholder` scale (other brands inherit it via spread), so lavender's placeholder text loses its tint and now renders plain gray
27
- - SearchSelect's "Remove All" tooltip dropped its explicit `bg`/`color` overrides, now rendering with ToolTip's own default styling instead of a forced `gray[600]`/`white`
@@ -1,18 +0,0 @@
1
- # Toggles
2
-
3
- ## Purpose
4
-
5
- Checkbox, RadioButton, Switch, Slider, Toggle/TableToggle.
6
-
7
- ## Key paths
8
-
9
- - `src/Components/Checkbox/`, `RadioButton/`, `Switch/`, `Slider/`, `Toggle/`
10
-
11
- ## Key rules
12
-
13
- - RadioButtonGroup for grouped radios
14
-
15
- ## Dark-mode / contrast fixes
16
-
17
- - `Checkbox`: label tooltip now uses the shared `ToolTip` component instead of raw Chakra `Tooltip` with hardcoded `gray[600]`/`white` — `ToolTip` resolves a dark-mode-aware surface itself.
18
- - `Toggle/TableToggle`: selected-tab label color changed from `theme.colors.black` (mode-invariant) to `theme.colors.text[900]` (mode-adaptive). Real bug fix: `black` was rendered on `background[50]`, which is near-black in dark mode — black-on-near-black was invisible; `text[900]` flips to near-white in dark mode.
@@ -1,22 +0,0 @@
1
- # Kanban
2
-
3
- ## Purpose
4
-
5
- KanbanBoard with drag-and-drop columns and KanbanActions.
6
-
7
- ## Key paths
8
-
9
- - `src/Components/KanbanBoard/`, `KanbanActions/`
10
- - Tests: `KanbanBoard.test.tsx`, `AccountCard.test.tsx`
11
-
12
- ## Key rules
13
-
14
- - Uses @hello-pangea/dnd; MeasuredItem for layout
15
-
16
- ## Dark mode
17
-
18
- - **KanbanBoard.test.tsx** mocked theme extended with a full `secondary` ramp (`600`-`900`) and
19
- `backgroundColor.main`, for parity with other components' test mocks in this refactor pass.
20
- **Known gap:** neither field is actually read by `KanbanBoard.tsx` or its subcomponents today —
21
- this is inert test-fixture parity, not new dark-mode test coverage. KanbanBoard itself was not
22
- touched in this pass.