pixelize-design-library 2.4.1-beta.1 → 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 (380) 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/NavigationBar/NavigationBar.d.ts.map +1 -1
  26. package/dist/Components/NavigationBar/NavigationBar.js +10 -6
  27. package/dist/Components/OrgSwitcher/OrgSwitcher.d.ts.map +1 -1
  28. package/dist/Components/OrgSwitcher/OrgSwitcher.js +22 -3
  29. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +1 -0
  30. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts.map +1 -1
  31. package/dist/Components/OrgSwitcher/OrgSwitcherProps.js +3 -3
  32. package/dist/Components/OrganizationDetails/CreateOrgModal.js +6 -4
  33. package/dist/Components/OrganizationDetails/OrganizationDetails.d.ts.map +1 -1
  34. package/dist/Components/OrganizationDetails/OrganizationDetails.js +55 -7
  35. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts +24 -14
  36. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts.map +1 -1
  37. package/dist/Components/PlanPill/PlanPill.d.ts +5 -0
  38. package/dist/Components/PlanPill/PlanPill.d.ts.map +1 -0
  39. package/dist/Components/PlanPill/PlanPill.js +41 -0
  40. package/dist/Components/PlanPill/PlanPillProps.d.ts +28 -0
  41. package/dist/Components/PlanPill/PlanPillProps.d.ts.map +1 -0
  42. package/dist/Components/PlanPill/PlanPillProps.js +2 -0
  43. package/dist/Components/Search/Search.d.ts.map +1 -1
  44. package/dist/Components/Search/Search.js +4 -2
  45. package/dist/Components/Select/Select.styles.d.ts.map +1 -1
  46. package/dist/Components/Select/Select.styles.js +29 -20
  47. package/dist/Components/SelectSearch/SelectSearch.js +1 -1
  48. package/dist/Components/SelectV2/SelectV2.d.ts +3 -0
  49. package/dist/Components/SelectV2/SelectV2.d.ts.map +1 -0
  50. package/dist/Components/SelectV2/SelectV2.js +185 -0
  51. package/dist/Components/SelectV2/SelectV2Props.d.ts +67 -0
  52. package/dist/Components/SelectV2/SelectV2Props.d.ts.map +1 -0
  53. package/dist/Components/SelectV2/SelectV2Props.js +2 -0
  54. package/dist/Components/SideBar/SecondaryBar.d.ts.map +1 -1
  55. package/dist/Components/SideBar/SecondaryBar.js +10 -2
  56. package/dist/Components/SideBar/SideBar.js +2 -2
  57. package/dist/Components/SideBar/components/MenuItemBox.d.ts.map +1 -1
  58. package/dist/Components/SideBar/components/MenuItemBox.js +7 -6
  59. package/dist/Components/Table/components/tableRowHoverStyle.d.ts +9 -8
  60. package/dist/Components/Table/components/tableRowHoverStyle.d.ts.map +1 -1
  61. package/dist/Components/Table/components/tableRowHoverStyle.js +12 -12
  62. package/dist/Components/Table/settings/ManageColumns.js +2 -2
  63. package/dist/Components/UpgradeButton/UpgradeButton.d.ts.map +1 -1
  64. package/dist/Components/UpgradeButton/UpgradeButton.js +25 -7
  65. package/dist/Components/UserDetails/UserDetails.d.ts.map +1 -1
  66. package/dist/Components/UserDetails/UserDetails.js +5 -2
  67. package/dist/Components/WorkspaceWindow/WorkspaceTrayPreview.js +2 -1
  68. package/dist/Components/WorkspaceWindow/WorkspaceWindow.d.ts +2 -2
  69. package/dist/Components/WorkspaceWindow/WorkspaceWindow.d.ts.map +1 -1
  70. package/dist/Components/WorkspaceWindow/WorkspaceWindow.js +25 -4
  71. package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts +18 -0
  72. package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts.map +1 -1
  73. package/dist/Theme/chakra/Avatar.styles.d.ts +33 -0
  74. package/dist/Theme/chakra/Avatar.styles.d.ts.map +1 -0
  75. package/dist/Theme/chakra/Avatar.styles.js +28 -0
  76. package/dist/Theme/chakra/Drawer.styles.d.ts +32 -0
  77. package/dist/Theme/chakra/Drawer.styles.d.ts.map +1 -0
  78. package/dist/Theme/chakra/Drawer.styles.js +26 -0
  79. package/dist/Theme/chakra/Menu.styles.d.ts +70 -0
  80. package/dist/Theme/chakra/Menu.styles.d.ts.map +1 -0
  81. package/dist/Theme/chakra/Menu.styles.js +50 -0
  82. package/dist/Theme/chakra/Modal.styles.d.ts +32 -0
  83. package/dist/Theme/chakra/Modal.styles.d.ts.map +1 -0
  84. package/dist/Theme/chakra/Modal.styles.js +26 -0
  85. package/dist/Theme/chakra/Popover.styles.d.ts +37 -0
  86. package/dist/Theme/chakra/Popover.styles.d.ts.map +1 -0
  87. package/dist/Theme/chakra/Popover.styles.js +30 -0
  88. package/dist/Theme/chakra/Slider.styles.d.ts +31 -0
  89. package/dist/Theme/chakra/Slider.styles.d.ts.map +1 -0
  90. package/dist/Theme/chakra/Slider.styles.js +25 -0
  91. package/dist/Theme/chakra/Switch.styles.d.ts +31 -0
  92. package/dist/Theme/chakra/Switch.styles.d.ts.map +1 -0
  93. package/dist/Theme/chakra/Switch.styles.js +24 -0
  94. package/dist/Theme/chakra/Tabs.styles.d.ts +43 -0
  95. package/dist/Theme/chakra/Tabs.styles.d.ts.map +1 -0
  96. package/dist/Theme/chakra/Tabs.styles.js +41 -0
  97. package/dist/Theme/chakra/componentStyles.d.ts +230 -1
  98. package/dist/Theme/chakra/componentStyles.d.ts.map +1 -1
  99. package/dist/Theme/chakra/componentStyles.js +136 -0
  100. package/dist/Theme/chakra/createBrandTheme.d.ts.map +1 -1
  101. package/dist/Theme/chakra/createBrandTheme.js +47 -0
  102. package/dist/Theme/provider/PixelizeThemeProvider.d.ts +11 -1
  103. package/dist/Theme/provider/PixelizeThemeProvider.d.ts.map +1 -1
  104. package/dist/Theme/provider/PixelizeThemeProvider.js +35 -2
  105. package/dist/Theme/provider/ThemeSwitcher.d.ts.map +1 -1
  106. package/dist/Theme/provider/ThemeSwitcher.js +23 -11
  107. package/dist/Theme/tokens/brands/index.d.ts.map +1 -1
  108. package/dist/Theme/tokens/brands/index.js +20 -18
  109. package/dist/Theme/tokens/brands/zinc/palette.dark.d.ts.map +1 -1
  110. package/dist/Theme/tokens/brands/zinc/palette.dark.js +4 -2
  111. package/dist/Theme/tokens/builders/outlineRung.d.ts +35 -0
  112. package/dist/Theme/tokens/builders/outlineRung.d.ts.map +1 -0
  113. package/dist/Theme/tokens/builders/outlineRung.js +69 -0
  114. package/dist/Theme/tokens/builders/statusTone.d.ts +35 -0
  115. package/dist/Theme/tokens/builders/statusTone.d.ts.map +1 -0
  116. package/dist/Theme/tokens/builders/statusTone.js +63 -0
  117. package/dist/Utils/planExpiry.d.ts +19 -0
  118. package/dist/Utils/planExpiry.d.ts.map +1 -0
  119. package/dist/Utils/planExpiry.js +61 -0
  120. package/dist/index.d.ts +9 -1
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js +23 -3
  123. package/package.json +5 -1
  124. package/.claude/settings.local.json +0 -51
  125. package/.cursor/TASK-SETUP.md +0 -43
  126. package/.cursor/agents/be-impl.md +0 -37
  127. package/.cursor/agents/fe-impl.md +0 -39
  128. package/.cursor/agents/task-plan.md +0 -56
  129. package/.cursor/agents/test-create.md +0 -31
  130. package/.cursor/agents/test-exec.md +0 -26
  131. package/.cursor/hooks/task-hint.env +0 -1
  132. package/.cursor/hooks/task-skill-nudge.sh +0 -71
  133. package/.cursor/hooks/task-slash-guard.sh +0 -31
  134. package/.cursor/hooks.json +0 -13
  135. package/.cursor/modules/account-management/MODULE.md +0 -34
  136. package/.cursor/modules/buttons/MODULE.md +0 -47
  137. package/.cursor/modules/cards/MODULE.md +0 -55
  138. package/.cursor/modules/charts/MODULE.md +0 -40
  139. package/.cursor/modules/common/MODULE.md +0 -36
  140. package/.cursor/modules/contact-auth/MODULE.md +0 -19
  141. package/.cursor/modules/data-display/MODULE.md +0 -42
  142. package/.cursor/modules/feedback/MODULE.md +0 -32
  143. package/.cursor/modules/form/MODULE.md +0 -13
  144. package/.cursor/modules/inputs-basic/MODULE.md +0 -42
  145. package/.cursor/modules/inputs-date-file/MODULE.md +0 -56
  146. package/.cursor/modules/inputs-select/MODULE.md +0 -27
  147. package/.cursor/modules/inputs-toggle/MODULE.md +0 -18
  148. package/.cursor/modules/kanban/MODULE.md +0 -22
  149. package/.cursor/modules/layout-navigation/MODULE.md +0 -269
  150. package/.cursor/modules/overlays/MODULE.md +0 -69
  151. package/.cursor/modules/playground/MODULE.md +0 -28
  152. package/.cursor/modules/table/MODULE.md +0 -78
  153. package/.cursor/modules/theme/MODULE.md +0 -314
  154. package/.cursor/modules/types-exports/MODULE.md +0 -17
  155. package/.cursor/modules/utility-ui/MODULE.md +0 -50
  156. package/.cursor/modules/utils-hooks/MODULE.md +0 -35
  157. package/.cursor/pixelize-task-statusline.sh +0 -64
  158. package/.cursor/plans/blocked/.gitkeep +0 -0
  159. package/.cursor/plans/current.md +0 -12
  160. package/.cursor/plans/current.theme-tokens-dark-mode.md +0 -77
  161. package/.cursor/plans/current.theme-tokens-dark.md +0 -155
  162. package/.cursor/plans/done/.gitkeep +0 -0
  163. package/.cursor/rules +0 -31
  164. package/.cursor/skills/task/SKILL.md +0 -167
  165. package/CLAUDE.md +0 -148
  166. package/__mocks__/styleMock.js +0 -8
  167. package/coverage/clover.xml +0 -405
  168. package/coverage/coverage-final.json +0 -16
  169. package/coverage/coverage-summary.json +0 -50
  170. package/coverage/lcov-report/Button/Button.tsx.html +0 -244
  171. package/coverage/lcov-report/Button/index.html +0 -116
  172. package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +0 -433
  173. package/coverage/lcov-report/Checkbox/index.html +0 -116
  174. package/coverage/lcov-report/Common/ErrorMessage.tsx.html +0 -148
  175. package/coverage/lcov-report/Common/FormLabel.tsx.html +0 -331
  176. package/coverage/lcov-report/Common/HelperText.tsx.html +0 -124
  177. package/coverage/lcov-report/Common/index.html +0 -146
  178. package/coverage/lcov-report/Components/Button/Button.tsx.html +0 -244
  179. package/coverage/lcov-report/Components/Button/index.html +0 -116
  180. package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +0 -433
  181. package/coverage/lcov-report/Components/Checkbox/index.html +0 -116
  182. package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +0 -148
  183. package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +0 -331
  184. package/coverage/lcov-report/Components/Common/HelperText.tsx.html +0 -124
  185. package/coverage/lcov-report/Components/Common/index.html +0 -146
  186. package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +0 -712
  187. package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +0 -343
  188. package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +0 -313
  189. package/coverage/lcov-report/Components/CustomModulesTable/index.html +0 -146
  190. package/coverage/lcov-report/Components/Divider/Divider.tsx.html +0 -133
  191. package/coverage/lcov-report/Components/Divider/index.html +0 -116
  192. package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +0 -994
  193. package/coverage/lcov-report/Components/Dropdown/index.html +0 -116
  194. package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +0 -466
  195. package/coverage/lcov-report/Components/EmptyState/index.html +0 -116
  196. package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +0 -373
  197. package/coverage/lcov-report/Components/Header/index.html +0 -116
  198. package/coverage/lcov-report/Components/Input/TextInput.tsx.html +0 -487
  199. package/coverage/lcov-report/Components/Input/index.html +0 -116
  200. package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +0 -205
  201. package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +0 -547
  202. package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +0 -190
  203. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +0 -247
  204. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +0 -116
  205. package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +0 -3598
  206. package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +0 -283
  207. package/coverage/lcov-report/Components/KanbanBoard/index.html +0 -161
  208. package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  209. package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  210. package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  211. package/coverage/lcov-report/Components/OrganizationDetails/index.html +0 -146
  212. package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  213. package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +0 -1732
  214. package/coverage/lcov-report/Components/RolesPermission/index.html +0 -131
  215. package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +0 -2575
  216. package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  217. package/coverage/lcov-report/Components/SearchSelect/index.html +0 -146
  218. package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +0 -496
  219. package/coverage/lcov-report/Components/Select/Select.tsx.html +0 -361
  220. package/coverage/lcov-report/Components/Select/index.html +0 -116
  221. package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +0 -562
  222. package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +0 -346
  223. package/coverage/lcov-report/Components/SideBar/components/index.html +0 -116
  224. package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +0 -490
  225. package/coverage/lcov-report/Components/SignInActivityTable/index.html +0 -116
  226. package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +0 -595
  227. package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +0 -2212
  228. package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +0 -358
  229. package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +0 -358
  230. package/coverage/lcov-report/Components/Table/components/index.html +0 -161
  231. package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +0 -856
  232. package/coverage/lcov-report/Components/Table/settings/index.html +0 -116
  233. package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +0 -331
  234. package/coverage/lcov-report/Components/Tag/Tag.tsx.html +0 -256
  235. package/coverage/lcov-report/Components/Tag/index.html +0 -131
  236. package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +0 -286
  237. package/coverage/lcov-report/Components/ToolTip/index.html +0 -116
  238. package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +0 -709
  239. package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +0 -505
  240. package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +0 -379
  241. package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +0 -1900
  242. package/coverage/lcov-report/Components/UserDetails/index.html +0 -161
  243. package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +0 -466
  244. package/coverage/lcov-report/EmptyState/index.html +0 -116
  245. package/coverage/lcov-report/Hooks/index.html +0 -116
  246. package/coverage/lcov-report/Hooks/usePreferences.ts.html +0 -421
  247. package/coverage/lcov-report/Input/TextInput.tsx.html +0 -487
  248. package/coverage/lcov-report/Input/index.html +0 -131
  249. package/coverage/lcov-report/Input/textInputIconSize.ts.html +0 -205
  250. package/coverage/lcov-report/KanbanBoard.tsx.html +0 -3481
  251. package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  252. package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  253. package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  254. package/coverage/lcov-report/OrganizationDetails/index.html +0 -146
  255. package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  256. package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +0 -1732
  257. package/coverage/lcov-report/RolesPermission/index.html +0 -116
  258. package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +0 -2575
  259. package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  260. package/coverage/lcov-report/SearchSelect/index.html +0 -146
  261. package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +0 -496
  262. package/coverage/lcov-report/Table/CompactSelect.tsx.html +0 -379
  263. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +0 -514
  264. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +0 -373
  265. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +0 -574
  266. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +0 -574
  267. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +0 -1027
  268. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +0 -397
  269. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +0 -1060
  270. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +0 -361
  271. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +0 -337
  272. package/coverage/lcov-report/Table/Components/index.html +0 -266
  273. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +0 -178
  274. package/coverage/lcov-report/Table/Components/useTable.ts.html +0 -778
  275. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +0 -1810
  276. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +0 -178
  277. package/coverage/lcov-report/Table/Table.tsx.html +0 -1567
  278. package/coverage/lcov-report/Table/TableProps.tsx.html +0 -658
  279. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +0 -619
  280. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +0 -229
  281. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +0 -532
  282. package/coverage/lcov-report/Table/TableSettings/index.html +0 -146
  283. package/coverage/lcov-report/Table/TableToDo.tsx.html +0 -973
  284. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +0 -271
  285. package/coverage/lcov-report/Table/filterTypes.ts.html +0 -97
  286. package/coverage/lcov-report/Table/index.html +0 -176
  287. package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +0 -856
  288. package/coverage/lcov-report/Table/settings/index.html +0 -116
  289. package/coverage/lcov-report/Tag/Tag.tsx.html +0 -256
  290. package/coverage/lcov-report/Tag/index.html +0 -116
  291. package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +0 -175
  292. package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +0 -214
  293. package/coverage/lcov-report/Theme/index.html +0 -131
  294. package/coverage/lcov-report/Theme/useCustomTheme.ts.html +0 -100
  295. package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +0 -286
  296. package/coverage/lcov-report/ToolTip/index.html +0 -116
  297. package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +0 -709
  298. package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +0 -505
  299. package/coverage/lcov-report/UserDetails/index.html +0 -116
  300. package/coverage/lcov-report/Utils/functions.ts.html +0 -106
  301. package/coverage/lcov-report/Utils/index.html +0 -116
  302. package/coverage/lcov-report/Utils/table.ts.html +0 -1189
  303. package/coverage/lcov-report/base.css +0 -224
  304. package/coverage/lcov-report/block-navigation.js +0 -87
  305. package/coverage/lcov-report/favicon.png +0 -0
  306. package/coverage/lcov-report/index.html +0 -251
  307. package/coverage/lcov-report/prettify.css +0 -1
  308. package/coverage/lcov-report/prettify.js +0 -2
  309. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  310. package/coverage/lcov-report/sorter.js +0 -210
  311. package/coverage/lcov.info +0 -981
  312. package/dist/Theme/Dark/theme.d.ts +0 -3
  313. package/dist/Theme/Dark/theme.d.ts.map +0 -1
  314. package/dist/Theme/Dark/theme.js +0 -277
  315. package/dist/Theme/Default/palette.d.ts +0 -375
  316. package/dist/Theme/Default/palette.d.ts.map +0 -1
  317. package/dist/Theme/Default/palette.js +0 -306
  318. package/dist/Theme/Default/theme.d.ts +0 -3
  319. package/dist/Theme/Default/theme.d.ts.map +0 -1
  320. package/dist/Theme/Default/theme.js +0 -19
  321. package/dist/Theme/Emerald/palette.d.ts +0 -375
  322. package/dist/Theme/Emerald/palette.d.ts.map +0 -1
  323. package/dist/Theme/Emerald/palette.js +0 -125
  324. package/dist/Theme/Emerald/theme.d.ts +0 -3
  325. package/dist/Theme/Emerald/theme.d.ts.map +0 -1
  326. package/dist/Theme/Emerald/theme.js +0 -19
  327. package/dist/Theme/Meadow/palette.d.ts +0 -375
  328. package/dist/Theme/Meadow/palette.d.ts.map +0 -1
  329. package/dist/Theme/Meadow/palette.js +0 -123
  330. package/dist/Theme/Meadow/theme.d.ts +0 -3
  331. package/dist/Theme/Meadow/theme.d.ts.map +0 -1
  332. package/dist/Theme/Meadow/theme.js +0 -19
  333. package/dist/Theme/Radiant/palette.d.ts +0 -375
  334. package/dist/Theme/Radiant/palette.d.ts.map +0 -1
  335. package/dist/Theme/Radiant/palette.js +0 -125
  336. package/dist/Theme/Radiant/theme.d.ts +0 -3
  337. package/dist/Theme/Radiant/theme.d.ts.map +0 -1
  338. package/dist/Theme/Radiant/theme.js +0 -19
  339. package/dist/Theme/Rosewood/palette.d.ts +0 -375
  340. package/dist/Theme/Rosewood/palette.d.ts.map +0 -1
  341. package/dist/Theme/Rosewood/palette.js +0 -125
  342. package/dist/Theme/Rosewood/theme.d.ts +0 -3
  343. package/dist/Theme/Rosewood/theme.d.ts.map +0 -1
  344. package/dist/Theme/Rosewood/theme.js +0 -19
  345. package/dist/Theme/Skyline/palette.d.ts +0 -375
  346. package/dist/Theme/Skyline/palette.d.ts.map +0 -1
  347. package/dist/Theme/Skyline/palette.js +0 -123
  348. package/dist/Theme/Skyline/theme.d.ts +0 -3
  349. package/dist/Theme/Skyline/theme.d.ts.map +0 -1
  350. package/dist/Theme/Skyline/theme.js +0 -19
  351. package/dist/Theme/Slate/palette.d.ts +0 -375
  352. package/dist/Theme/Slate/palette.d.ts.map +0 -1
  353. package/dist/Theme/Slate/palette.js +0 -123
  354. package/dist/Theme/Slate/theme.d.ts +0 -3
  355. package/dist/Theme/Slate/theme.d.ts.map +0 -1
  356. package/dist/Theme/Slate/theme.js +0 -19
  357. package/dist/Theme/buildBrandTokens.d.ts +0 -16
  358. package/dist/Theme/buildBrandTokens.d.ts.map +0 -1
  359. package/dist/Theme/buildBrandTokens.js +0 -33
  360. package/dist/Theme/chartColorsFromTheme.d.ts +0 -19
  361. package/dist/Theme/chartColorsFromTheme.d.ts.map +0 -1
  362. package/dist/Theme/chartColorsFromTheme.js +0 -34
  363. package/dist/Theme/common.d.ts +0 -167
  364. package/dist/Theme/common.d.ts.map +0 -1
  365. package/dist/Theme/common.js +0 -112
  366. package/dist/Theme/componentStyles.d.ts +0 -10
  367. package/dist/Theme/componentStyles.d.ts.map +0 -1
  368. package/dist/Theme/componentStyles.js +0 -19
  369. package/dist/Theme/fonts.d.ts +0 -37
  370. package/dist/Theme/fonts.d.ts.map +0 -1
  371. package/dist/Theme/fonts.js +0 -41
  372. package/dist/Theme/space.d.ts +0 -34
  373. package/dist/Theme/space.d.ts.map +0 -1
  374. package/dist/Theme/space.js +0 -35
  375. package/dist/Theme/theme.d.ts +0 -3
  376. package/dist/Theme/theme.d.ts.map +0 -1
  377. package/dist/Theme/theme.js +0 -12
  378. package/eslint.config.js +0 -48
  379. package/index.html +0 -13
  380. 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.