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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/dist/Components/Accordion/accordionColors.d.ts.map +1 -1
  2. package/dist/Components/Accordion/accordionColors.js +17 -3
  3. package/dist/Components/Checkbox/Checkbox.styles.d.ts.map +1 -1
  4. package/dist/Components/Checkbox/Checkbox.styles.js +13 -2
  5. package/dist/Components/CustomModulesTable/EditModuleModal.d.ts.map +1 -1
  6. package/dist/Components/CustomModulesTable/EditModuleModal.js +5 -1
  7. package/dist/Components/DatePicker/CalendarPanel.d.ts.map +1 -1
  8. package/dist/Components/DatePicker/CalendarPanel.js +3 -1
  9. package/dist/Components/Editor/joditThemeVars.d.ts.map +1 -1
  10. package/dist/Components/Editor/joditThemeVars.js +9 -0
  11. package/dist/Components/FilePreview/FilePreview.d.ts.map +1 -1
  12. package/dist/Components/FilePreview/FilePreview.js +3 -1
  13. package/dist/Components/FileUploader/FileUploader.js +2 -2
  14. package/dist/Components/FilterSidebar/FilterSidebar.js +1 -1
  15. package/dist/Components/NavigationBar/NavigationBar.d.ts.map +1 -1
  16. package/dist/Components/NavigationBar/NavigationBar.js +10 -6
  17. package/dist/Components/OrgSwitcher/OrgSwitcher.d.ts.map +1 -1
  18. package/dist/Components/OrgSwitcher/OrgSwitcher.js +22 -3
  19. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +1 -0
  20. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts.map +1 -1
  21. package/dist/Components/OrgSwitcher/OrgSwitcherProps.js +3 -3
  22. package/dist/Components/OrganizationDetails/CreateOrgModal.js +6 -4
  23. package/dist/Components/OrganizationDetails/OrganizationDetails.d.ts.map +1 -1
  24. package/dist/Components/OrganizationDetails/OrganizationDetails.js +55 -7
  25. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts +24 -14
  26. package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts.map +1 -1
  27. package/dist/Components/PlanPill/PlanPill.d.ts +5 -0
  28. package/dist/Components/PlanPill/PlanPill.d.ts.map +1 -0
  29. package/dist/Components/PlanPill/PlanPill.js +41 -0
  30. package/dist/Components/PlanPill/PlanPillProps.d.ts +28 -0
  31. package/dist/Components/PlanPill/PlanPillProps.d.ts.map +1 -0
  32. package/dist/Components/PlanPill/PlanPillProps.js +2 -0
  33. package/dist/Components/Search/Search.d.ts.map +1 -1
  34. package/dist/Components/Search/Search.js +4 -2
  35. package/dist/Components/Select/Select.styles.d.ts.map +1 -1
  36. package/dist/Components/Select/Select.styles.js +29 -20
  37. package/dist/Components/SelectSearch/SelectSearch.js +1 -1
  38. package/dist/Components/SideBar/SecondaryBar.d.ts.map +1 -1
  39. package/dist/Components/SideBar/SecondaryBar.js +10 -2
  40. package/dist/Components/SideBar/SideBar.js +1 -1
  41. package/dist/Components/SideBar/components/MenuItemBox.d.ts.map +1 -1
  42. package/dist/Components/SideBar/components/MenuItemBox.js +7 -6
  43. package/dist/Components/Table/components/tableRowHoverStyle.d.ts +9 -8
  44. package/dist/Components/Table/components/tableRowHoverStyle.d.ts.map +1 -1
  45. package/dist/Components/Table/components/tableRowHoverStyle.js +12 -12
  46. package/dist/Components/Table/settings/ManageColumns.js +2 -2
  47. package/dist/Components/UpgradeButton/UpgradeButton.d.ts.map +1 -1
  48. package/dist/Components/UpgradeButton/UpgradeButton.js +25 -7
  49. package/dist/Components/UserDetails/UserDetails.d.ts.map +1 -1
  50. package/dist/Components/UserDetails/UserDetails.js +5 -2
  51. package/dist/Theme/chakra/componentStyles.d.ts +2 -0
  52. package/dist/Theme/chakra/componentStyles.d.ts.map +1 -1
  53. package/dist/Theme/chakra/componentStyles.js +74 -0
  54. package/dist/Theme/chakra/createBrandTheme.d.ts.map +1 -1
  55. package/dist/Theme/chakra/createBrandTheme.js +47 -0
  56. package/dist/Theme/tokens/brands/index.d.ts.map +1 -1
  57. package/dist/Theme/tokens/brands/index.js +20 -18
  58. package/dist/Theme/tokens/brands/zinc/palette.dark.d.ts.map +1 -1
  59. package/dist/Theme/tokens/brands/zinc/palette.dark.js +4 -2
  60. package/dist/Theme/tokens/builders/outlineRung.d.ts +35 -0
  61. package/dist/Theme/tokens/builders/outlineRung.d.ts.map +1 -0
  62. package/dist/Theme/tokens/builders/outlineRung.js +69 -0
  63. package/dist/Theme/tokens/builders/statusTone.d.ts +35 -0
  64. package/dist/Theme/tokens/builders/statusTone.d.ts.map +1 -0
  65. package/dist/Theme/tokens/builders/statusTone.js +63 -0
  66. package/dist/Utils/planExpiry.d.ts +19 -0
  67. package/dist/Utils/planExpiry.d.ts.map +1 -0
  68. package/dist/Utils/planExpiry.js +61 -0
  69. package/dist/index.d.ts +7 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +21 -3
  72. package/package.json +5 -1
  73. package/.claude/settings.local.json +0 -51
  74. package/.cursor/TASK-SETUP.md +0 -43
  75. package/.cursor/agents/be-impl.md +0 -37
  76. package/.cursor/agents/fe-impl.md +0 -39
  77. package/.cursor/agents/task-plan.md +0 -56
  78. package/.cursor/agents/test-create.md +0 -31
  79. package/.cursor/agents/test-exec.md +0 -26
  80. package/.cursor/hooks/task-hint.env +0 -1
  81. package/.cursor/hooks/task-skill-nudge.sh +0 -71
  82. package/.cursor/hooks/task-slash-guard.sh +0 -31
  83. package/.cursor/hooks.json +0 -13
  84. package/.cursor/modules/account-management/MODULE.md +0 -41
  85. package/.cursor/modules/buttons/MODULE.md +0 -47
  86. package/.cursor/modules/cards/MODULE.md +0 -55
  87. package/.cursor/modules/charts/MODULE.md +0 -40
  88. package/.cursor/modules/common/MODULE.md +0 -36
  89. package/.cursor/modules/contact-auth/MODULE.md +0 -19
  90. package/.cursor/modules/data-display/MODULE.md +0 -42
  91. package/.cursor/modules/feedback/MODULE.md +0 -38
  92. package/.cursor/modules/form/MODULE.md +0 -13
  93. package/.cursor/modules/inputs-basic/MODULE.md +0 -42
  94. package/.cursor/modules/inputs-date-file/MODULE.md +0 -67
  95. package/.cursor/modules/inputs-select/MODULE.md +0 -89
  96. package/.cursor/modules/inputs-toggle/MODULE.md +0 -24
  97. package/.cursor/modules/kanban/MODULE.md +0 -22
  98. package/.cursor/modules/layout-navigation/MODULE.md +0 -319
  99. package/.cursor/modules/overlays/MODULE.md +0 -82
  100. package/.cursor/modules/playground/MODULE.md +0 -28
  101. package/.cursor/modules/table/MODULE.md +0 -84
  102. package/.cursor/modules/theme/MODULE.md +0 -431
  103. package/.cursor/modules/types-exports/MODULE.md +0 -17
  104. package/.cursor/modules/utility-ui/MODULE.md +0 -50
  105. package/.cursor/modules/utils-hooks/MODULE.md +0 -35
  106. package/.cursor/pixelize-task-statusline.sh +0 -64
  107. package/.cursor/plans/blocked/.gitkeep +0 -0
  108. package/.cursor/plans/current.md +0 -12
  109. package/.cursor/plans/current.theme-tokens-dark-mode.md +0 -77
  110. package/.cursor/plans/current.theme-tokens-dark.md +0 -155
  111. package/.cursor/plans/done/.gitkeep +0 -0
  112. package/.cursor/rules +0 -31
  113. package/.cursor/skills/task/SKILL.md +0 -167
  114. package/CLAUDE.md +0 -148
  115. package/__mocks__/styleMock.js +0 -8
  116. package/coverage/clover.xml +0 -405
  117. package/coverage/coverage-final.json +0 -16
  118. package/coverage/coverage-summary.json +0 -50
  119. package/coverage/lcov-report/Button/Button.tsx.html +0 -244
  120. package/coverage/lcov-report/Button/index.html +0 -116
  121. package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +0 -433
  122. package/coverage/lcov-report/Checkbox/index.html +0 -116
  123. package/coverage/lcov-report/Common/ErrorMessage.tsx.html +0 -148
  124. package/coverage/lcov-report/Common/FormLabel.tsx.html +0 -331
  125. package/coverage/lcov-report/Common/HelperText.tsx.html +0 -124
  126. package/coverage/lcov-report/Common/index.html +0 -146
  127. package/coverage/lcov-report/Components/Button/Button.tsx.html +0 -244
  128. package/coverage/lcov-report/Components/Button/index.html +0 -116
  129. package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +0 -433
  130. package/coverage/lcov-report/Components/Checkbox/index.html +0 -116
  131. package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +0 -148
  132. package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +0 -331
  133. package/coverage/lcov-report/Components/Common/HelperText.tsx.html +0 -124
  134. package/coverage/lcov-report/Components/Common/index.html +0 -146
  135. package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +0 -712
  136. package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +0 -343
  137. package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +0 -313
  138. package/coverage/lcov-report/Components/CustomModulesTable/index.html +0 -146
  139. package/coverage/lcov-report/Components/Divider/Divider.tsx.html +0 -133
  140. package/coverage/lcov-report/Components/Divider/index.html +0 -116
  141. package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +0 -994
  142. package/coverage/lcov-report/Components/Dropdown/index.html +0 -116
  143. package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +0 -466
  144. package/coverage/lcov-report/Components/EmptyState/index.html +0 -116
  145. package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +0 -373
  146. package/coverage/lcov-report/Components/Header/index.html +0 -116
  147. package/coverage/lcov-report/Components/Input/TextInput.tsx.html +0 -487
  148. package/coverage/lcov-report/Components/Input/index.html +0 -116
  149. package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +0 -205
  150. package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +0 -547
  151. package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +0 -190
  152. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +0 -247
  153. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +0 -116
  154. package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +0 -3598
  155. package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +0 -283
  156. package/coverage/lcov-report/Components/KanbanBoard/index.html +0 -161
  157. package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  158. package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  159. package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  160. package/coverage/lcov-report/Components/OrganizationDetails/index.html +0 -146
  161. package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  162. package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +0 -1732
  163. package/coverage/lcov-report/Components/RolesPermission/index.html +0 -131
  164. package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +0 -2575
  165. package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  166. package/coverage/lcov-report/Components/SearchSelect/index.html +0 -146
  167. package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +0 -496
  168. package/coverage/lcov-report/Components/Select/Select.tsx.html +0 -361
  169. package/coverage/lcov-report/Components/Select/index.html +0 -116
  170. package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +0 -562
  171. package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +0 -346
  172. package/coverage/lcov-report/Components/SideBar/components/index.html +0 -116
  173. package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +0 -490
  174. package/coverage/lcov-report/Components/SignInActivityTable/index.html +0 -116
  175. package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +0 -595
  176. package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +0 -2212
  177. package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +0 -358
  178. package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +0 -358
  179. package/coverage/lcov-report/Components/Table/components/index.html +0 -161
  180. package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +0 -856
  181. package/coverage/lcov-report/Components/Table/settings/index.html +0 -116
  182. package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +0 -331
  183. package/coverage/lcov-report/Components/Tag/Tag.tsx.html +0 -256
  184. package/coverage/lcov-report/Components/Tag/index.html +0 -131
  185. package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +0 -286
  186. package/coverage/lcov-report/Components/ToolTip/index.html +0 -116
  187. package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +0 -709
  188. package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +0 -505
  189. package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +0 -379
  190. package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +0 -1900
  191. package/coverage/lcov-report/Components/UserDetails/index.html +0 -161
  192. package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +0 -466
  193. package/coverage/lcov-report/EmptyState/index.html +0 -116
  194. package/coverage/lcov-report/Hooks/index.html +0 -116
  195. package/coverage/lcov-report/Hooks/usePreferences.ts.html +0 -421
  196. package/coverage/lcov-report/Input/TextInput.tsx.html +0 -487
  197. package/coverage/lcov-report/Input/index.html +0 -131
  198. package/coverage/lcov-report/Input/textInputIconSize.ts.html +0 -205
  199. package/coverage/lcov-report/KanbanBoard.tsx.html +0 -3481
  200. package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
  201. package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
  202. package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
  203. package/coverage/lcov-report/OrganizationDetails/index.html +0 -146
  204. package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +0 -328
  205. package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +0 -1732
  206. package/coverage/lcov-report/RolesPermission/index.html +0 -116
  207. package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +0 -2575
  208. package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
  209. package/coverage/lcov-report/SearchSelect/index.html +0 -146
  210. package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +0 -496
  211. package/coverage/lcov-report/Table/CompactSelect.tsx.html +0 -379
  212. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +0 -514
  213. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +0 -373
  214. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +0 -574
  215. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +0 -574
  216. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +0 -1027
  217. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +0 -397
  218. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +0 -1060
  219. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +0 -361
  220. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +0 -337
  221. package/coverage/lcov-report/Table/Components/index.html +0 -266
  222. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +0 -178
  223. package/coverage/lcov-report/Table/Components/useTable.ts.html +0 -778
  224. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +0 -1810
  225. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +0 -178
  226. package/coverage/lcov-report/Table/Table.tsx.html +0 -1567
  227. package/coverage/lcov-report/Table/TableProps.tsx.html +0 -658
  228. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +0 -619
  229. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +0 -229
  230. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +0 -532
  231. package/coverage/lcov-report/Table/TableSettings/index.html +0 -146
  232. package/coverage/lcov-report/Table/TableToDo.tsx.html +0 -973
  233. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +0 -271
  234. package/coverage/lcov-report/Table/filterTypes.ts.html +0 -97
  235. package/coverage/lcov-report/Table/index.html +0 -176
  236. package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +0 -856
  237. package/coverage/lcov-report/Table/settings/index.html +0 -116
  238. package/coverage/lcov-report/Tag/Tag.tsx.html +0 -256
  239. package/coverage/lcov-report/Tag/index.html +0 -116
  240. package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +0 -175
  241. package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +0 -214
  242. package/coverage/lcov-report/Theme/index.html +0 -131
  243. package/coverage/lcov-report/Theme/useCustomTheme.ts.html +0 -100
  244. package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +0 -286
  245. package/coverage/lcov-report/ToolTip/index.html +0 -116
  246. package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +0 -709
  247. package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +0 -505
  248. package/coverage/lcov-report/UserDetails/index.html +0 -116
  249. package/coverage/lcov-report/Utils/functions.ts.html +0 -106
  250. package/coverage/lcov-report/Utils/index.html +0 -116
  251. package/coverage/lcov-report/Utils/table.ts.html +0 -1189
  252. package/coverage/lcov-report/base.css +0 -224
  253. package/coverage/lcov-report/block-navigation.js +0 -87
  254. package/coverage/lcov-report/favicon.png +0 -0
  255. package/coverage/lcov-report/index.html +0 -251
  256. package/coverage/lcov-report/prettify.css +0 -1
  257. package/coverage/lcov-report/prettify.js +0 -2
  258. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  259. package/coverage/lcov-report/sorter.js +0 -210
  260. package/coverage/lcov.info +0 -981
  261. package/dist/Theme/Dark/theme.d.ts +0 -3
  262. package/dist/Theme/Dark/theme.d.ts.map +0 -1
  263. package/dist/Theme/Dark/theme.js +0 -277
  264. package/dist/Theme/Default/palette.d.ts +0 -375
  265. package/dist/Theme/Default/palette.d.ts.map +0 -1
  266. package/dist/Theme/Default/palette.js +0 -306
  267. package/dist/Theme/Default/theme.d.ts +0 -3
  268. package/dist/Theme/Default/theme.d.ts.map +0 -1
  269. package/dist/Theme/Default/theme.js +0 -19
  270. package/dist/Theme/Emerald/palette.d.ts +0 -375
  271. package/dist/Theme/Emerald/palette.d.ts.map +0 -1
  272. package/dist/Theme/Emerald/palette.js +0 -125
  273. package/dist/Theme/Emerald/theme.d.ts +0 -3
  274. package/dist/Theme/Emerald/theme.d.ts.map +0 -1
  275. package/dist/Theme/Emerald/theme.js +0 -19
  276. package/dist/Theme/Meadow/palette.d.ts +0 -375
  277. package/dist/Theme/Meadow/palette.d.ts.map +0 -1
  278. package/dist/Theme/Meadow/palette.js +0 -123
  279. package/dist/Theme/Meadow/theme.d.ts +0 -3
  280. package/dist/Theme/Meadow/theme.d.ts.map +0 -1
  281. package/dist/Theme/Meadow/theme.js +0 -19
  282. package/dist/Theme/Radiant/palette.d.ts +0 -375
  283. package/dist/Theme/Radiant/palette.d.ts.map +0 -1
  284. package/dist/Theme/Radiant/palette.js +0 -125
  285. package/dist/Theme/Radiant/theme.d.ts +0 -3
  286. package/dist/Theme/Radiant/theme.d.ts.map +0 -1
  287. package/dist/Theme/Radiant/theme.js +0 -19
  288. package/dist/Theme/Rosewood/palette.d.ts +0 -375
  289. package/dist/Theme/Rosewood/palette.d.ts.map +0 -1
  290. package/dist/Theme/Rosewood/palette.js +0 -125
  291. package/dist/Theme/Rosewood/theme.d.ts +0 -3
  292. package/dist/Theme/Rosewood/theme.d.ts.map +0 -1
  293. package/dist/Theme/Rosewood/theme.js +0 -19
  294. package/dist/Theme/Skyline/palette.d.ts +0 -375
  295. package/dist/Theme/Skyline/palette.d.ts.map +0 -1
  296. package/dist/Theme/Skyline/palette.js +0 -123
  297. package/dist/Theme/Skyline/theme.d.ts +0 -3
  298. package/dist/Theme/Skyline/theme.d.ts.map +0 -1
  299. package/dist/Theme/Skyline/theme.js +0 -19
  300. package/dist/Theme/Slate/palette.d.ts +0 -375
  301. package/dist/Theme/Slate/palette.d.ts.map +0 -1
  302. package/dist/Theme/Slate/palette.js +0 -123
  303. package/dist/Theme/Slate/theme.d.ts +0 -3
  304. package/dist/Theme/Slate/theme.d.ts.map +0 -1
  305. package/dist/Theme/Slate/theme.js +0 -19
  306. package/dist/Theme/buildBrandTokens.d.ts +0 -16
  307. package/dist/Theme/buildBrandTokens.d.ts.map +0 -1
  308. package/dist/Theme/buildBrandTokens.js +0 -33
  309. package/dist/Theme/chartColorsFromTheme.d.ts +0 -19
  310. package/dist/Theme/chartColorsFromTheme.d.ts.map +0 -1
  311. package/dist/Theme/chartColorsFromTheme.js +0 -34
  312. package/dist/Theme/common.d.ts +0 -167
  313. package/dist/Theme/common.d.ts.map +0 -1
  314. package/dist/Theme/common.js +0 -112
  315. package/dist/Theme/componentStyles.d.ts +0 -10
  316. package/dist/Theme/componentStyles.d.ts.map +0 -1
  317. package/dist/Theme/componentStyles.js +0 -19
  318. package/dist/Theme/fonts.d.ts +0 -37
  319. package/dist/Theme/fonts.d.ts.map +0 -1
  320. package/dist/Theme/fonts.js +0 -41
  321. package/dist/Theme/space.d.ts +0 -34
  322. package/dist/Theme/space.d.ts.map +0 -1
  323. package/dist/Theme/space.js +0 -35
  324. package/dist/Theme/theme.d.ts +0 -3
  325. package/dist/Theme/theme.d.ts.map +0 -1
  326. package/dist/Theme/theme.js +0 -12
  327. package/eslint.config.js +0 -48
  328. package/index.html +0 -13
  329. package/vite.config.ts +0 -13
@@ -30,6 +30,10 @@ const DEFAULT_LABELS = {
30
30
  deleteOrganization: "Delete Organization",
31
31
  protectedOrganization: "Protected organization",
32
32
  delete: "Delete",
33
+ editOrganization: "Edit organization name",
34
+ save: "Save",
35
+ saving: "Saving...",
36
+ emptyNameError: "Organization name cannot be empty",
33
37
  noOrganizationsTitle: "No organizations found",
34
38
  noOrganizationsDescription: "Get started by creating your first organization or wait for an invitation",
35
39
  companyName: "Company Name",
@@ -44,12 +48,16 @@ const DEFAULT_LABELS = {
44
48
  copyright: "Pixelize Corp. All rights reserved.",
45
49
  termsOfService: "Terms of Service",
46
50
  };
47
- const OrganizationDetails = ({ activeOrganizations, invitedOrganizations, isLoading = false, switchingOrgIds = [], respondingOrgIds = [], isCreating = false, userName, userAvatarUrl, onSetDefault, onAcceptInvite, onDeclineInvite, onDeleteOrganization, onCreateOrganization, onBack, footerSlot, labels: labelOverrides, }) => {
51
+ const OrganizationDetails = ({ activeOrganizations, invitedOrganizations, isLoading = false, switchingOrgIds = [], respondingOrgIds = [], editingOrgIds = [], isCreating = false, userName, userAvatarUrl, onSetDefault, onAcceptInvite, onDeclineInvite, onDeleteOrganization, onCreateOrganization, onEditOrganization, onBack, footerSlot, labels: labelOverrides, }) => {
48
52
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
49
53
  const { colors } = (0, useCustomTheme_1.useCustomTheme)();
50
54
  const labels = (0, react_1.useMemo)(() => ({ ...DEFAULT_LABELS, ...labelOverrides }), [labelOverrides]);
51
55
  const [isCreateOpen, setCreateOpen] = (0, react_1.useState)(false);
52
56
  const [deleteOrgId, setDeleteOrgId] = (0, react_1.useState)(null);
57
+ // --- Inline "edit organization name" state ---
58
+ const [editingOrgId, setEditingOrgId] = (0, react_1.useState)(null);
59
+ const [editValue, setEditValue] = (0, react_1.useState)("");
60
+ const [editError, setEditError] = (0, react_1.useState)("");
53
61
  const border = (_d = (_b = (_a = colors === null || colors === void 0 ? void 0 : colors.boxborder) === null || _a === void 0 ? void 0 : _a[200]) !== null && _b !== void 0 ? _b : (_c = colors === null || colors === void 0 ? void 0 : colors.gray) === null || _c === void 0 ? void 0 : _c[200]) !== null && _d !== void 0 ? _d : "#E2E8F0";
54
62
  const surface = (_g = (_f = (_e = colors === null || colors === void 0 ? void 0 : colors.background) === null || _e === void 0 ? void 0 : _e[50]) !== null && _f !== void 0 ? _f : colors === null || colors === void 0 ? void 0 : colors.white) !== null && _g !== void 0 ? _g : "#FFFFFF";
55
63
  const muted = (_j = (_h = colors === null || colors === void 0 ? void 0 : colors.gray) === null || _h === void 0 ? void 0 : _h[500]) !== null && _j !== void 0 ? _j : "#64748B";
@@ -68,18 +76,56 @@ const OrganizationDetails = ({ activeOrganizations, invitedOrganizations, isLoad
68
76
  boxShadow: "0 1px 2px rgba(16,24,40,0.05)",
69
77
  };
70
78
  const sectionBadge = (count, scheme) => ((0, jsx_runtime_1.jsx)(react_2.Badge, { colorScheme: scheme, variant: "subtle", borderRadius: "full", px: 2, py: 0.5, fontSize: "0.65rem", children: count }));
79
+ const startEditing = (item) => {
80
+ setEditingOrgId(item.orgId);
81
+ setEditValue(item.company_name);
82
+ setEditError("");
83
+ };
84
+ const cancelEditing = () => {
85
+ setEditingOrgId(null);
86
+ setEditValue("");
87
+ setEditError("");
88
+ };
89
+ const submitEditing = async (item) => {
90
+ const trimmed = editValue.trim();
91
+ if (!trimmed) {
92
+ setEditError(labels.emptyNameError);
93
+ return;
94
+ }
95
+ if (trimmed === item.company_name) {
96
+ cancelEditing();
97
+ return;
98
+ }
99
+ await (onEditOrganization === null || onEditOrganization === void 0 ? void 0 : onEditOrganization(item.orgId, trimmed));
100
+ setEditingOrgId(null);
101
+ setEditValue("");
102
+ setEditError("");
103
+ };
71
104
  const renderActiveCard = (item) => {
72
- var _a, _b, _c, _d, _e, _f;
105
+ var _a, _b, _c, _d, _e, _f, _g, _h;
73
106
  const isSwitching = switchingOrgIds.includes(item.orgId);
74
107
  const isProtected = item.defaultOrg === 1;
108
+ const isEditingThis = editingOrgId === item.orgId;
109
+ const isSavingThis = editingOrgIds.includes(item.orgId);
75
110
  return ((0, jsx_runtime_1.jsxs)(react_2.Box, { ...cardSx, p: 3, position: "relative", transition: "all 0.2s ease", _hover: {
76
111
  borderColor: (_b = (_a = colors === null || colors === void 0 ? void 0 : colors.primary) === null || _a === void 0 ? void 0 : _a[300]) !== null && _b !== void 0 ? _b : "#A5B4FC",
77
112
  boxShadow: "0 8px 24px rgba(16,24,40,0.10)",
78
113
  transform: "translateY(-3px)",
79
- }, children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { justifyContent: "space-between", alignItems: "flex-start", mb: 2, children: [(0, jsx_runtime_1.jsx)(react_2.Flex, { align: "center", justify: "center", boxSize: "36px", borderRadius: "lg", bg: primary50, color: primary600, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Building2, { size: 18 }) }), (0, jsx_runtime_1.jsx)(react_2.Box, { mr: "2rem", children: item.default === 1 ? ((0, jsx_runtime_1.jsxs)(react_2.Badge, { colorScheme: "green", borderRadius: "full", px: 2, py: 0.5, display: "flex", alignItems: "center", gap: 1, fontSize: "0.7rem", fontWeight: 600, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.CheckCircle2, { size: 12 }), labels.default] })) : isSwitching ? ((0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: 2, color: primary500, children: [(0, jsx_runtime_1.jsx)(react_2.Spinner, { size: "sm" }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "xs", children: labels.settingDefault })] })) : ((0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: 1, fontSize: "xs", color: primary600, fontWeight: 600, cursor: "pointer", _hover: { color: primary500, gap: 2 }, transition: "all 0.2s ease", onClick: () => onSetDefault === null || onSetDefault === void 0 ? void 0 : onSetDefault(item.orgId), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.CheckCircle2, { size: 12 }), (0, jsx_runtime_1.jsx)(react_2.Text, { children: labels.setAsDefault })] })) })] }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "sm", fontWeight: 700, color: heading, noOfLines: 1, children: item.company_name }), (0, jsx_runtime_1.jsx)(react_2.Tooltip, { label: isProtected ? labels.protectedOrganization : labels.deleteOrganization, hasArrow: true, children: (0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": labels.deleteOrganization, icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Trash2, { size: 14 }), size: "xs", variant: "ghost", position: "absolute", top: 2, right: 2, borderRadius: "full", color: muted, isDisabled: isProtected, _hover: {
80
- bg: (_d = (_c = colors === null || colors === void 0 ? void 0 : colors.red) === null || _c === void 0 ? void 0 : _c[50]) !== null && _d !== void 0 ? _d : "#FEF2F2",
81
- color: (_f = (_e = colors === null || colors === void 0 ? void 0 : colors.red) === null || _e === void 0 ? void 0 : _e[600]) !== null && _f !== void 0 ? _f : "#DC2626",
82
- }, onClick: () => setDeleteOrgId(item.orgId) }) })] }, item.orgId));
114
+ }, children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { justifyContent: "space-between", alignItems: "center", mb: 2, children: [(0, jsx_runtime_1.jsx)(react_2.Flex, { align: "center", justify: "center", boxSize: "36px", borderRadius: "lg", bg: primary50, color: primary600, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Building2, { size: 18 }) }), (0, jsx_runtime_1.jsxs)(react_2.HStack, { spacing: 1, children: [item.default === 1 ? ((0, jsx_runtime_1.jsxs)(react_2.Badge, { colorScheme: "green", borderRadius: "full", px: 2, py: 0.5, display: "flex", alignItems: "center", gap: 1, fontSize: "0.7rem", fontWeight: 600, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.CheckCircle2, { size: 12 }), labels.default] })) : isSwitching ? ((0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: 2, color: primary500, children: [(0, jsx_runtime_1.jsx)(react_2.Spinner, { size: "sm" }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "xs", children: labels.settingDefault })] })) : ((0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: 1, fontSize: "xs", color: primary600, fontWeight: 600, cursor: "pointer", _hover: { color: primary500, gap: 2 }, transition: "all 0.2s ease", onClick: () => onSetDefault === null || onSetDefault === void 0 ? void 0 : onSetDefault(item.orgId), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.CheckCircle2, { size: 12 }), (0, jsx_runtime_1.jsx)(react_2.Text, { children: labels.setAsDefault })] })), (0, jsx_runtime_1.jsx)(react_2.Tooltip, { label: labels.editOrganization, hasArrow: true, children: (0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": labels.editOrganization, icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Pencil, { size: 12 }), size: "xs", variant: "ghost", color: muted, borderRadius: "full", _hover: { color: primary600, bg: primary50 }, onClick: () => startEditing(item) }) }), (0, jsx_runtime_1.jsx)(react_2.Tooltip, { label: isProtected
115
+ ? labels.protectedOrganization
116
+ : labels.deleteOrganization, hasArrow: true, children: (0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": labels.deleteOrganization, icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Trash2, { size: 12 }), size: "xs", variant: "ghost", borderRadius: "full", color: muted, isDisabled: isProtected, _hover: {
117
+ bg: (_d = (_c = colors === null || colors === void 0 ? void 0 : colors.red) === null || _c === void 0 ? void 0 : _c[50]) !== null && _d !== void 0 ? _d : "#FEF2F2",
118
+ color: (_f = (_e = colors === null || colors === void 0 ? void 0 : colors.red) === null || _e === void 0 ? void 0 : _e[600]) !== null && _f !== void 0 ? _f : "#DC2626",
119
+ }, onClick: () => setDeleteOrgId(item.orgId) }) })] })] }), isEditingThis ? ((0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsxs)(react_2.HStack, { spacing: 1, children: [(0, jsx_runtime_1.jsx)(react_2.Input, { value: editValue, onChange: (e) => {
120
+ setEditValue(e.target.value);
121
+ if (editError)
122
+ setEditError("");
123
+ }, size: "sm", fontSize: "sm", fontWeight: 700, autoFocus: true, isDisabled: isSavingThis, onKeyDown: (e) => {
124
+ if (e.key === "Enter")
125
+ submitEditing(item);
126
+ if (e.key === "Escape")
127
+ cancelEditing();
128
+ } }), (0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": labels.save, icon: isSavingThis ? (0, jsx_runtime_1.jsx)(react_2.Spinner, { size: "xs" }) : (0, jsx_runtime_1.jsx)(lucide_react_1.Check, { size: 14 }), size: "xs", colorScheme: "green", isDisabled: isSavingThis, onClick: () => submitEditing(item) }), (0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": labels.cancel, icon: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 14 }), size: "xs", variant: "ghost", isDisabled: isSavingThis, onClick: cancelEditing })] }), editError && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "0.7rem", color: (_h = (_g = colors === null || colors === void 0 ? void 0 : colors.red) === null || _g === void 0 ? void 0 : _g[600]) !== null && _h !== void 0 ? _h : "#DC2626", mt: 1, children: editError }))] })) : ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "sm", fontWeight: 700, color: heading, noOfLines: 1, children: item.company_name }))] }, item.orgId));
83
129
  };
84
130
  const renderInvitedCard = (item) => {
85
131
  var _a, _b, _c, _d;
@@ -100,7 +146,9 @@ const OrganizationDetails = ({ activeOrganizations, invitedOrganizations, isLoad
100
146
  width: "100%",
101
147
  };
102
148
  const hasOrganizations = activeOrganizations.length > 0 || invitedOrganizations.length > 0;
103
- return ((0, jsx_runtime_1.jsxs)(react_2.Box, { backgroundColor: pageBg, minHeight: "100%", p: { base: 2, md: 3 }, children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { ...cardSx, px: 3, py: 2.5, mb: 3, alignItems: "center", justifyContent: "space-between", flexWrap: "wrap", gap: 3, bgGradient: `linear(135deg, ${primary50} 0%, ${primary100} 100%)`, children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { alignItems: "center", gap: 3, children: [onBack && ((0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": "Go back", icon: (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowLeft, { size: 18 }), variant: "ghost", size: "sm", color: subtle, onClick: onBack })), (0, jsx_runtime_1.jsx)(react_2.Flex, { align: "center", justify: "center", boxSize: "36px", borderRadius: "full", bg: primary500, color: "white", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Building2, { size: 18 }) }), (0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsxs)(react_2.HStack, { spacing: 2, children: [(0, jsx_runtime_1.jsx)(react_2.Heading, { size: "sm", color: heading, fontWeight: 700, children: userName ? `${labels.greeting.replace(/User!?/, "")}${userName}!`.trim() : labels.greeting }), (0, jsx_runtime_1.jsx)(react_2.Avatar, { size: "xs", name: userName, src: userAvatarUrl })] }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "xs", color: subtle, mt: 0.5, children: labels.manageSubtitle })] })] }), (0, jsx_runtime_1.jsx)(Button_1.default, { label: labels.createNewOrganization, onClick: () => setCreateOpen(true), leftIcon: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 16 }), colorScheme: "primary", size: "sm" })] }), isLoading ? ((0, jsx_runtime_1.jsx)(react_2.Box, { ...gridSx, children: Array.from({ length: 6 }).map((_, idx) => ((0, jsx_runtime_1.jsxs)(react_2.Box, { ...cardSx, p: 3, children: [(0, jsx_runtime_1.jsx)(react_2.Skeleton, { boxSize: "36px", borderRadius: "lg", mb: 2 }), (0, jsx_runtime_1.jsx)(react_2.SkeletonText, { noOfLines: 2, spacing: 2 })] }, idx))) })) : !hasOrganizations ? ((0, jsx_runtime_1.jsx)(EmptyState_1.default, { icon: lucide_react_1.Building2, title: labels.noOrganizationsTitle, description: labels.noOrganizationsDescription, minH: "40vh", action: (0, jsx_runtime_1.jsx)(Button_1.default, { label: labels.createOrganization, onClick: () => setCreateOpen(true), leftIcon: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 16 }), colorScheme: "primary", size: "sm" }) })) : ((0, jsx_runtime_1.jsxs)(react_2.VStack, { align: "stretch", spacing: 4, children: [activeOrganizations.length > 0 && ((0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: 2, mb: 2, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Users, { size: 16, color: primary500 }), (0, jsx_runtime_1.jsx)(react_2.Heading, { size: "sm", color: heading, fontWeight: 600, children: labels.activeOrganizations }), sectionBadge(activeOrganizations.length, "blue")] }), (0, jsx_runtime_1.jsx)(react_2.Box, { ...gridSx, children: activeOrganizations.map(renderActiveCard) })] })), invitedOrganizations.length > 0 && ((0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: 2, mb: 2, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Mail, { size: 16, color: (_0 = (_z = colors === null || colors === void 0 ? void 0 : colors.yellow) === null || _z === void 0 ? void 0 : _z[500]) !== null && _0 !== void 0 ? _0 : "#EAB308" }), (0, jsx_runtime_1.jsx)(react_2.Heading, { size: "sm", color: heading, fontWeight: 600, children: labels.invitedOrganizations }), sectionBadge(invitedOrganizations.length, "yellow")] }), (0, jsx_runtime_1.jsx)(react_2.Box, { ...gridSx, children: invitedOrganizations.map(renderInvitedCard) })] }))] })), footerSlot, (0, jsx_runtime_1.jsx)(CreateOrgModal_1.default, { isOpen: isCreateOpen, onClose: () => setCreateOpen(false), isLoading: isCreating, onSubmit: async (values) => {
149
+ return ((0, jsx_runtime_1.jsxs)(react_2.Box, { backgroundColor: pageBg, minHeight: "100%", p: { base: 2, md: 3 }, children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { ...cardSx, px: 3, py: 2.5, mb: 3, alignItems: "center", justifyContent: "space-between", flexWrap: "wrap", gap: 3, bgGradient: `linear(135deg, ${primary50} 0%, ${primary100} 100%)`, children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { alignItems: "center", gap: 3, children: [onBack && ((0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": "Go back", icon: (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowLeft, { size: 18 }), variant: "ghost", size: "sm", color: subtle, onClick: onBack })), (0, jsx_runtime_1.jsx)(react_2.Flex, { align: "center", justify: "center", boxSize: "36px", borderRadius: "full", bg: primary500, color: "white", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Building2, { size: 18 }) }), (0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsxs)(react_2.HStack, { spacing: 2, children: [(0, jsx_runtime_1.jsx)(react_2.Heading, { size: "sm", color: heading, fontWeight: 700, children: userName
150
+ ? `${labels.greeting.replace(/User!?/, "")}${userName}!`.trim()
151
+ : labels.greeting }), (0, jsx_runtime_1.jsx)(react_2.Avatar, { size: "xs", name: userName, src: userAvatarUrl })] }), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "xs", color: subtle, mt: 0.5, children: labels.manageSubtitle })] })] }), (0, jsx_runtime_1.jsx)(Button_1.default, { label: labels.createNewOrganization, onClick: () => setCreateOpen(true), leftIcon: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 16 }), colorScheme: "primary", size: "sm" })] }), isLoading ? ((0, jsx_runtime_1.jsx)(react_2.Box, { ...gridSx, children: Array.from({ length: 6 }).map((_, idx) => ((0, jsx_runtime_1.jsxs)(react_2.Box, { ...cardSx, p: 3, children: [(0, jsx_runtime_1.jsx)(react_2.Skeleton, { boxSize: "36px", borderRadius: "lg", mb: 2 }), (0, jsx_runtime_1.jsx)(react_2.SkeletonText, { noOfLines: 2, spacing: 2 })] }, idx))) })) : !hasOrganizations ? ((0, jsx_runtime_1.jsx)(EmptyState_1.default, { icon: lucide_react_1.Building2, title: labels.noOrganizationsTitle, description: labels.noOrganizationsDescription, minH: "40vh", action: (0, jsx_runtime_1.jsx)(Button_1.default, { label: labels.createOrganization, onClick: () => setCreateOpen(true), leftIcon: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { size: 16 }), colorScheme: "primary", size: "sm" }) })) : ((0, jsx_runtime_1.jsxs)(react_2.VStack, { align: "stretch", spacing: 4, children: [activeOrganizations.length > 0 && ((0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: 2, mb: 2, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Users, { size: 16, color: primary500 }), (0, jsx_runtime_1.jsx)(react_2.Heading, { size: "sm", color: heading, fontWeight: 600, children: labels.activeOrganizations }), sectionBadge(activeOrganizations.length, "blue")] }), (0, jsx_runtime_1.jsx)(react_2.Box, { ...gridSx, children: activeOrganizations.map(renderActiveCard) })] })), invitedOrganizations.length > 0 && ((0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: 2, mb: 2, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Mail, { size: 16, color: (_0 = (_z = colors === null || colors === void 0 ? void 0 : colors.yellow) === null || _z === void 0 ? void 0 : _z[500]) !== null && _0 !== void 0 ? _0 : "#EAB308" }), (0, jsx_runtime_1.jsx)(react_2.Heading, { size: "sm", color: heading, fontWeight: 600, children: labels.invitedOrganizations }), sectionBadge(invitedOrganizations.length, "yellow")] }), (0, jsx_runtime_1.jsx)(react_2.Box, { ...gridSx, children: invitedOrganizations.map(renderInvitedCard) })] }))] })), footerSlot, (0, jsx_runtime_1.jsx)(CreateOrgModal_1.default, { isOpen: isCreateOpen, onClose: () => setCreateOpen(false), isLoading: isCreating, onSubmit: async (values) => {
104
152
  await (onCreateOrganization === null || onCreateOrganization === void 0 ? void 0 : onCreateOrganization(values));
105
153
  setCreateOpen(false);
106
154
  }, labels: labels }), (0, jsx_runtime_1.jsx)(DeleteOrgModal_1.default, { isOpen: deleteOrgId !== null, onClose: () => setDeleteOrgId(null), onConfirm: async () => {
@@ -2,7 +2,7 @@ import { ReactNode } from "react";
2
2
  export type OrganizationItem = {
3
3
  orgId: number;
4
4
  company_name: string;
5
- company_url: string;
5
+ company_url?: string;
6
6
  /** 1 when this org is the user's default org. */
7
7
  default: number;
8
8
  /** 1 = active/accepted, 0 = pending invite. */
@@ -13,12 +13,10 @@ export type OrganizationItem = {
13
13
  export type CreateOrgFormValues = {
14
14
  company_name: string;
15
15
  company_address: string;
16
- phone: string;
16
+ phone?: string;
17
+ default?: number;
18
+ defaultOrg?: number;
17
19
  };
18
- /**
19
- * All user-facing strings. Provide translated values from the host app; every
20
- * key has a sensible English default so the component works standalone.
21
- */
22
20
  export type OrganizationDetailsLabels = {
23
21
  greeting?: string;
24
22
  manageSubtitle?: string;
@@ -37,6 +35,10 @@ export type OrganizationDetailsLabels = {
37
35
  deleteOrganization?: string;
38
36
  protectedOrganization?: string;
39
37
  delete?: string;
38
+ editOrganization?: string;
39
+ save?: string;
40
+ saving?: string;
41
+ emptyNameError?: string;
40
42
  noOrganizationsTitle?: string;
41
43
  noOrganizationsDescription?: string;
42
44
  companyName?: string;
@@ -51,23 +53,31 @@ export type OrganizationDetailsLabels = {
51
53
  copyright?: string;
52
54
  termsOfService?: string;
53
55
  };
56
+ export interface CreateOrganizationValues {
57
+ company_name: string;
58
+ company_address?: string;
59
+ phone?: string;
60
+ }
54
61
  export interface OrganizationDetailsProps {
55
62
  activeOrganizations: OrganizationItem[];
56
63
  invitedOrganizations: OrganizationItem[];
57
64
  isLoading?: boolean;
58
- /** Org ids currently being switched to default. */
65
+ isCreating?: boolean;
66
+ /** orgIds currently switching to default (shows a spinner on that card) */
59
67
  switchingOrgIds?: number[];
60
- /** Org ids currently responding to an invite. */
68
+ /** orgIds currently accepting/declining an invite (shows a spinner on that card) */
61
69
  respondingOrgIds?: number[];
62
- isCreating?: boolean;
63
- createError?: string;
70
+ /** orgIds currently saving a renamed organization (shows a spinner on that card) */
71
+ editingOrgIds?: number[];
64
72
  userName?: string;
65
73
  userAvatarUrl?: string;
66
- onSetDefault?: (orgId: number) => void;
67
- onAcceptInvite?: (orgId: number) => void;
68
- onDeclineInvite?: (orgId: number) => void;
74
+ onSetDefault?: (orgId: number) => void | Promise<void>;
75
+ onAcceptInvite?: (orgId: number) => void | Promise<void>;
76
+ onDeclineInvite?: (orgId: number) => void | Promise<void>;
69
77
  onDeleteOrganization?: (orgId: number) => void | Promise<void>;
70
- onCreateOrganization?: (values: CreateOrgFormValues) => void | Promise<void>;
78
+ onCreateOrganization?: (values: CreateOrganizationValues) => void | Promise<void>;
79
+ /** Called when the user confirms a new name for an organization */
80
+ onEditOrganization?: (orgId: number, newName: string) => void | Promise<void>;
71
81
  onBack?: () => void;
72
82
  footerSlot?: ReactNode;
73
83
  labels?: OrganizationDetailsLabels;
@@ -1 +1 @@
1
- {"version":3,"file":"OrganizationDetailsProps.d.ts","sourceRoot":"","sources":["../../../src/Components/OrganizationDetails/OrganizationDetailsProps.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OrganizationDetailsProps.d.ts","sourceRoot":"","sources":["../../../src/Components/OrganizationDetails/OrganizationDetailsProps.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { PlanPillProps } from "./PlanPillProps";
3
+ declare const PlanPill: React.FC<PlanPillProps>;
4
+ export default PlanPill;
5
+ //# sourceMappingURL=PlanPill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanPill.d.ts","sourceRoot":"","sources":["../../../src/Components/PlanPill/PlanPill.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AAQ9D,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAuGrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("@chakra-ui/react");
5
+ const lucide_react_1 = require("lucide-react");
6
+ const useCustomTheme_1 = require("../../Theme/useCustomTheme");
7
+ const accentText_1 = require("../../Theme/tokens/builders/accentText");
8
+ const TONE_ICON = {
9
+ normal: lucide_react_1.Sparkles,
10
+ warning: lucide_react_1.Clock,
11
+ danger: lucide_react_1.AlertCircle,
12
+ };
13
+ const PlanPill = ({ label, mobileLabel, status, tone = "normal", icon, gradient, maxLabelWidth = "150px", ariaLabel, onClick, }) => {
14
+ var _a;
15
+ const theme = (0, useCustomTheme_1.useCustomTheme)();
16
+ const c = theme.colors;
17
+ // Only reachable if a consumer hand-builds a palette without `gradient`; every shipped brand sets it.
18
+ const themeGradient = (_a = c.gradient) !== null && _a !== void 0 ? _a : { from: c.primary[500], to: c.primary[700] };
19
+ const toneGradient = {
20
+ normal: themeGradient,
21
+ warning: { from: c.semantic.warning[400], to: c.semantic.warning[600] },
22
+ danger: { from: c.semantic.error[400], to: c.semantic.error[600] },
23
+ };
24
+ const resolved = gradient !== null && gradient !== void 0 ? gradient : toneGradient[tone];
25
+ const ink = (0, accentText_1.onGradient)(resolved.from, resolved.to, c.white, c.black);
26
+ // The chip is a translucent inset of the pill itself, so it tints with whichever
27
+ // ink won — a white wash under black text would wash the chip out entirely.
28
+ const onDark = ink === c.white;
29
+ const Icon = icon === undefined ? TONE_ICON[tone] : icon;
30
+ const hasMobile = !!mobileLabel && mobileLabel !== label;
31
+ return ((0, jsx_runtime_1.jsxs)(react_1.Box, { as: "button", type: "button", "aria-label": ariaLabel || (status ? `${label} — ${status}` : label), onClick: onClick, display: "inline-flex", alignItems: "center", gap: "7px", pl: "12px", pr: status ? "5px" : "12px", py: "3px", bgImage: `linear-gradient(135deg, ${resolved.from} 0%, ${resolved.to} 100%)`, color: ink, borderRadius: "999px", whiteSpace: "nowrap", cursor: "pointer", transition: "transform 0.2s ease, box-shadow 0.2s ease", _hover: {
32
+ transform: "translateY(-1px)",
33
+ boxShadow: `0 6px 18px ${resolved.from}59`,
34
+ }, _focusVisible: { outline: "none", boxShadow: `0 0 0 3px ${resolved.from}55` }, sx: {
35
+ "@media (prefers-reduced-motion: reduce)": {
36
+ transition: "none",
37
+ _hover: { transform: "none" },
38
+ },
39
+ }, children: [Icon ? (0, jsx_runtime_1.jsx)(Icon, { size: 12, strokeWidth: 2.5, "aria-hidden": true }) : null, (0, jsx_runtime_1.jsx)(react_1.Text, { as: "span", fontSize: "12.5px", fontWeight: "600", lineHeight: "18px", overflow: "hidden", textOverflow: "ellipsis", maxW: maxLabelWidth, display: hasMobile ? { base: "none", md: "block" } : "block", children: label }), hasMobile ? ((0, jsx_runtime_1.jsx)(react_1.Text, { as: "span", fontSize: "12.5px", fontWeight: "600", lineHeight: "18px", display: { base: "block", md: "none" }, children: mobileLabel })) : null, status ? ((0, jsx_runtime_1.jsx)(react_1.Flex, { as: "span", align: "center", px: "8px", borderRadius: "999px", bg: onDark ? "rgba(255,255,255,0.22)" : "rgba(0,0,0,0.12)", border: "1px solid", borderColor: onDark ? "rgba(255,255,255,0.28)" : "rgba(0,0,0,0.08)", fontSize: "11px", fontWeight: "700", lineHeight: "18px", sx: { fontVariantNumeric: "tabular-nums" }, children: status })) : null] }));
40
+ };
41
+ exports.default = PlanPill;
@@ -0,0 +1,28 @@
1
+ import { ElementType } from "react";
2
+ /**
3
+ * Urgency of the plan state. Drives the gradient and the leading icon, so the
4
+ * badge reads as healthy / expiring soon / expired before the text is read.
5
+ */
6
+ export type PlanPillTone = "normal" | "warning" | "danger";
7
+ export interface PlanPillProps {
8
+ /** Primary label, e.g. the plan name or an upgrade prompt. */
9
+ label: string;
10
+ /** Compact label for small screens. Defaults to `label`. */
11
+ mobileLabel?: string;
12
+ /** Remaining time, e.g. `3mo left`. Rendered as an inset chip; omitted when empty. */
13
+ status?: string;
14
+ tone?: PlanPillTone;
15
+ /** Leading icon. Defaults to a tone-appropriate lucide icon. Pass null to hide. */
16
+ icon?: ElementType | null;
17
+ /** Explicit gradient stops. Overrides the tone's theme gradient. */
18
+ gradient?: {
19
+ from: string;
20
+ to: string;
21
+ };
22
+ /** Truncate the label beyond this width. */
23
+ maxLabelWidth?: string;
24
+ /** Accessible label (falls back to `label — status`). */
25
+ ariaLabel?: string;
26
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
27
+ }
28
+ //# sourceMappingURL=PlanPillProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanPillProps.d.ts","sourceRoot":"","sources":["../../../src/Components/PlanPill/PlanPillProps.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,mFAAmF;IACnF,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;CACtD"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../../src/Components/Search/Search.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC9B,WAAyB,EACzB,QAAQ,EACR,OAAO,EACP,QAAmB,EACnB,KAAK,EACL,KAAK,EACL,YAAY,EACZ,UAAU,EACV,KAAK,EACL,EAAE,EACF,aAAa,EACb,kBAAkB,EAClB,UAAU,GACV,EAAE,WAAW,2CAoFb"}
1
+ {"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../../src/Components/Search/Search.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC9B,WAAyB,EACzB,QAAQ,EACR,OAAO,EACP,QAAmB,EACnB,KAAK,EACL,KAAK,EACL,YAAY,EACZ,UAAU,EACV,KAAK,EACL,EAAE,EACF,aAAa,EACb,kBAAkB,EAClB,UAAU,GACV,EAAE,WAAW,2CAqFb"}
@@ -11,7 +11,9 @@ const lucide_react_1 = require("lucide-react");
11
11
  const FormLabel_1 = require("../Common/FormLabel");
12
12
  const HelperText_1 = __importDefault(require("../Common/HelperText"));
13
13
  const ErrorMessage_1 = __importDefault(require("../Common/ErrorMessage"));
14
+ const useCustomTheme_1 = require("../../Theme/useCustomTheme");
14
15
  function Search({ placeholder = "Search...", onSearch, onclose, shortcut = "Ctrl+K", query, error, errorMessage, helperText, label, id, isInformation, informationMessage, isRequired, }) {
16
+ const theme = (0, useCustomTheme_1.useCustomTheme)();
15
17
  const inputRef = (0, react_1.useRef)(null);
16
18
  (0, react_1.useEffect)(() => {
17
19
  const handleKeyDown = (event) => {
@@ -28,6 +30,6 @@ function Search({ placeholder = "Search...", onSearch, onclose, shortcut = "Ctrl
28
30
  window.removeEventListener("keydown", handleKeyDown);
29
31
  };
30
32
  }, [shortcut]);
31
- return ((0, jsx_runtime_1.jsxs)(react_2.FormControl, { id: id, isInvalid: !!error, children: [label && ((0, jsx_runtime_1.jsx)(FormLabel_1.TextLabel, { label: label, id: id, isInformation: isInformation, informationMessage: informationMessage, isRequired: isRequired })), (0, jsx_runtime_1.jsxs)(react_2.InputGroup, { w: "100%", children: [(0, jsx_runtime_1.jsx)(react_2.InputLeftElement, { pointerEvents: "none", children: (0, jsx_runtime_1.jsx)(react_2.Icon, { as: lucide_react_1.Search, color: "gray.500" }) }), (0, jsx_runtime_1.jsx)(react_2.Input, { ref: inputRef, type: "text", value: query, onChange: onSearch, placeholder: placeholder, variant: "outline", isInvalid: error }), (0, jsx_runtime_1.jsxs)(react_2.InputRightElement, { w: "auto", pr: "3", display: "flex", alignItems: "center" // ✅ centers vertically
32
- , gap: "2", children: [query && ((0, jsx_runtime_1.jsx)(react_2.Icon, { as: lucide_react_1.X, color: "gray.500", boxSize: 5, cursor: "pointer", onClick: onclose })), shortcut && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "sm", color: "gray.500", px: "2", py: "0.5", borderRadius: "md", bg: "gray.100", children: shortcut }))] })] }), error && (0, jsx_runtime_1.jsx)(ErrorMessage_1.default, { errorMessage: errorMessage }), helperText && !error && (0, jsx_runtime_1.jsx)(HelperText_1.default, { helperText: helperText })] }));
33
+ return ((0, jsx_runtime_1.jsxs)(react_2.FormControl, { id: id, isInvalid: !!error, children: [label && ((0, jsx_runtime_1.jsx)(FormLabel_1.TextLabel, { label: label, id: id, isInformation: isInformation, informationMessage: informationMessage, isRequired: isRequired })), (0, jsx_runtime_1.jsxs)(react_2.InputGroup, { w: "100%", children: [(0, jsx_runtime_1.jsx)(react_2.InputLeftElement, { pointerEvents: "none", children: (0, jsx_runtime_1.jsx)(react_2.Icon, { as: lucide_react_1.Search, color: theme.colors.gray[500] }) }), (0, jsx_runtime_1.jsx)(react_2.Input, { ref: inputRef, type: "text", value: query, onChange: onSearch, placeholder: placeholder, variant: "outline", isInvalid: error }), (0, jsx_runtime_1.jsxs)(react_2.InputRightElement, { w: "auto", pr: "3", display: "flex", alignItems: "center" // ✅ centers vertically
34
+ , gap: "2", children: [query && ((0, jsx_runtime_1.jsx)(react_2.Icon, { as: lucide_react_1.X, color: theme.colors.gray[500], boxSize: 5, cursor: "pointer", onClick: onclose })), shortcut && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "sm", color: theme.colors.gray[500], px: "2", py: "0.5", borderRadius: "md", bg: theme.colors.gray[100], children: shortcut }))] })] }), error && (0, jsx_runtime_1.jsx)(ErrorMessage_1.default, { errorMessage: errorMessage }), helperText && !error && (0, jsx_runtime_1.jsx)(HelperText_1.default, { helperText: helperText })] }));
33
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Select.styles.d.ts","sourceRoot":"","sources":["../../../src/Components/Select/Select.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,eAAO,MAAM,MAAM,EAAE,oBAkGpB,CAAC"}
1
+ {"version":3,"file":"Select.styles.d.ts","sourceRoot":"","sources":["../../../src/Components/Select/Select.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAsB,MAAM,kBAAkB,CAAC;AAE5E,eAAO,MAAM,MAAM,EAAE,oBAwGpB,CAAC"}
@@ -2,27 +2,36 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Select = void 0;
4
4
  exports.Select = {
5
- baseStyle: {
6
- field: {
7
- fontWeight: 500,
8
- fontSize: "0.875rem",
9
- letterSpacing: "0.044rem",
10
- borderRadius: "0.5rem",
11
- transition: "border-color 0.2s, box-shadow 0.2s",
12
- minWidth: "0", // allow shrinking inside flex
13
- width: "100%", // full container width
14
- maxWidth: "100%",
15
- _placeholder: {
16
- fontStyle: "italic",
17
- whiteSpace: "nowrap",
18
- overflow: "hidden",
19
- textOverflow: "ellipsis",
5
+ baseStyle: ({ theme }) => {
6
+ var _a, _b;
7
+ return ({
8
+ field: {
9
+ // Chakra's stock Select sets `--select-bg: colors.white` and swaps it to gray.700 behind
10
+ // `.chakra-ui-dark`/`[data-theme="dark"]` — selectors that NEVER match here, because dark
11
+ // mode swaps the palette instead of flipping Chakra's colour mode. The variable therefore
12
+ // stayed `#fff`, painting the native `<option>` list white-on-white in dark. `background[50]`
13
+ // is the canvas-following equivalent: byte-identical `#ffffff` in light, dark in dark.
14
+ "--select-bg": (_b = (_a = theme.colors) === null || _a === void 0 ? void 0 : _a.background) === null || _b === void 0 ? void 0 : _b[50],
15
+ fontWeight: 500,
16
+ fontSize: "0.875rem",
17
+ letterSpacing: "0.044rem",
18
+ borderRadius: "0.5rem",
19
+ transition: "border-color 0.2s, box-shadow 0.2s",
20
+ minWidth: "0", // allow shrinking inside flex
21
+ width: "100%", // full container width
22
+ maxWidth: "100%",
23
+ _placeholder: {
24
+ fontStyle: "italic",
25
+ whiteSpace: "nowrap",
26
+ overflow: "hidden",
27
+ textOverflow: "ellipsis",
28
+ },
20
29
  },
21
- },
22
- icon: {
23
- width: "1.25rem",
24
- height: "1.25rem",
25
- },
30
+ icon: {
31
+ width: "1.25rem",
32
+ height: "1.25rem",
33
+ },
34
+ });
26
35
  },
27
36
  sizes: {
28
37
  sm: {
@@ -18,7 +18,7 @@ const RenderOptions = ({ isOptionLoading, filteredOptions, loadingText, handleOp
18
18
  return ((0, jsx_runtime_1.jsxs)(react_2.VStack, { py: 2, children: [(0, jsx_runtime_1.jsx)(react_2.Spinner, { size: "sm", color: theme.colors.primary[500] }), (0, jsx_runtime_1.jsx)(react_2.Text, { color: theme.colors.primary[500], children: loadingText })] }));
19
19
  }
20
20
  if (filteredOptions === null || filteredOptions === void 0 ? void 0 : filteredOptions.length) {
21
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: filteredOptions.map((option) => ((0, jsx_runtime_1.jsxs)(react_2.Box, { px: 4, py: 2, cursor: "pointer", _hover: { backgroundColor: theme.colors.primary[50] }, onClick: () => handleOptionClick(option), display: "flex", alignItems: "center", gap: "0.5rem", children: [isProfile && ((0, jsx_runtime_1.jsx)(react_2.Box, { children: (0, jsx_runtime_1.jsx)(react_2.Avatar, { size: "sm", name: option.label.toLocaleUpperCase(), src: option.profileUrl ? option.profileUrl : undefined }) })), isColorOptions && ((0, jsx_runtime_1.jsx)(react_2.Box, { width: "0.8rem", height: "0.8rem", content: "", backgroundColor: option === null || option === void 0 ? void 0 : option.color, borderRadius: "50%" })), (0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsx)(react_2.Box, { children: option.label }), option.email && ((0, jsx_runtime_1.jsx)(react_2.Box, { fontSize: 12, color: "gray.400", children: option.email }))] })] }, option.id))) }));
21
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: filteredOptions.map((option) => ((0, jsx_runtime_1.jsxs)(react_2.Box, { px: 4, py: 2, cursor: "pointer", _hover: { backgroundColor: theme.colors.primary[50] }, onClick: () => handleOptionClick(option), display: "flex", alignItems: "center", gap: "0.5rem", children: [isProfile && ((0, jsx_runtime_1.jsx)(react_2.Box, { children: (0, jsx_runtime_1.jsx)(react_2.Avatar, { size: "sm", name: option.label.toLocaleUpperCase(), src: option.profileUrl ? option.profileUrl : undefined }) })), isColorOptions && ((0, jsx_runtime_1.jsx)(react_2.Box, { width: "0.8rem", height: "0.8rem", content: "", backgroundColor: option === null || option === void 0 ? void 0 : option.color, borderRadius: "50%" })), (0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsx)(react_2.Box, { children: option.label }), option.email && ((0, jsx_runtime_1.jsx)(react_2.Box, { fontSize: 12, color: "gray.500", children: option.email }))] })] }, option.id))) }));
22
22
  }
23
23
  return ((0, jsx_runtime_1.jsx)(react_2.Text, { px: 4, py: 2, color: "gray.500", children: "No options found" }));
24
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SecondaryBar.d.ts","sourceRoot":"","sources":["../../../src/Components/SideBar/SecondaryBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgBxC,OAAO,EAAa,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAuK9D,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyH7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"SecondaryBar.d.ts","sourceRoot":"","sources":["../../../src/Components/SideBar/SecondaryBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgBxC,OAAO,EAAa,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA+K9D,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyH7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -28,7 +28,13 @@ const CollapsedItem = ({ item, isActive, itemFontSize, onItemClick }) => {
28
28
  const isDark = (0, accentText_1.isDarkCanvas)((_b = (_a = theme.colors.backgroundColor) === null || _a === void 0 ? void 0 : _a.main) !== null && _b !== void 0 ? _b : "#ffffff");
29
29
  const activeAccent = (0, sidebarAccentColors_1.useSidebarActiveAccent)(theme.colors, isDark);
30
30
  const { badgeVal, colorScheme, radius, variant } = parseBadge(item.badge);
31
- return ((0, jsx_runtime_1.jsxs)(react_2.Popover, { trigger: "hover", placement: "right-start", closeOnBlur: false, isLazy: true, children: [(0, jsx_runtime_1.jsx)(react_2.PopoverTrigger, { children: (0, jsx_runtime_1.jsx)(react_2.Box, { role: "group", py: "8px", mb: "2px", borderRadius: "7px", display: "flex", alignItems: "center", justifyContent: "center", cursor: item.disabled ? "not-allowed" : "pointer", opacity: item.disabled ? 0.6 : 1, borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.primary[500] : "transparent", _hover: { bg: item.disabled ? "transparent" : "whiteAlpha.100" }, onClick: () => !item.disabled && (onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item)), bg: isActive ? theme.colors.primary.opacity[16] : "transparent", transition: "background 0.12s", children: (0, jsx_runtime_1.jsxs)(react_2.Box, { position: "relative", display: "flex", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: item.icon, fontSize: "1rem", color: isActive ? activeAccent.icon : "whiteAlpha.600", _groupHover: isActive ? undefined : { color: "whiteAlpha.800" }, transition: "color 0.12s" }), badgeVal != null && ((0, jsx_runtime_1.jsx)(react_2.Box, { position: "absolute", top: "0", right: "0", w: "0.375rem", h: "0.375rem", borderRadius: "full", bg: theme.colors.red[400] }))] }) }) }), (0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { borderRadius: "0.5rem", bg: theme.colors.sidebar.background[200], boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", cursor: item.disabled ? "not-allowed" : "pointer", zIndex: 1500, color: "white", border: 'none', children: (0, jsx_runtime_1.jsx)(react_2.PopoverBody, { p: "0.75rem", children: (0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "0.5rem", justify: "space-between", children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "0.5rem", flex: "1", minW: 0, children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: item.icon, fontSize: "1rem", flexShrink: 0 }), (0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "right", maxWidth: "100%", fontSize: itemFontSize, fontWeight: "medium", as: "p", children: item.title })] }), badgeVal != null && ((0, jsx_runtime_1.jsx)(react_2.Badge, { colorScheme: colorScheme, fontSize: "0.625rem", variant: variant, borderRadius: radius, children: badgeVal }))] }) }) }) })] }));
31
+ return ((0, jsx_runtime_1.jsxs)(react_2.Popover, { trigger: "hover", placement: "right-start", closeOnBlur: false, isLazy: true, children: [(0, jsx_runtime_1.jsx)(react_2.PopoverTrigger, { children: (0, jsx_runtime_1.jsx)(react_2.Box, { role: "group", py: "8px", mb: "2px", borderRadius: "7px", display: "flex", alignItems: "center", justifyContent: "center", cursor: item.disabled ? "not-allowed" : "pointer", opacity: item.disabled ? 0.6 : 1, borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.primary[500] : "transparent", _hover: {
32
+ bg: item.disabled
33
+ ? "transparent"
34
+ : isActive
35
+ ? "whiteAlpha.400"
36
+ : "whiteAlpha.200",
37
+ }, onClick: () => !item.disabled && (onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item)), bg: isActive ? "whiteAlpha.300" : "transparent", transition: "background 0.12s", children: (0, jsx_runtime_1.jsxs)(react_2.Box, { position: "relative", display: "flex", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: item.icon, fontSize: "1rem", color: isActive ? activeAccent.icon : "whiteAlpha.600", _groupHover: isActive ? undefined : { color: "whiteAlpha.800" }, transition: "color 0.12s" }), badgeVal != null && ((0, jsx_runtime_1.jsx)(react_2.Box, { position: "absolute", top: "0", right: "0", w: "0.375rem", h: "0.375rem", borderRadius: "full", bg: theme.colors.red[400] }))] }) }) }), (0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { borderRadius: "0.5rem", bg: theme.colors.sidebar.background[200], boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", cursor: item.disabled ? "not-allowed" : "pointer", zIndex: 1500, color: "white", border: 'none', children: (0, jsx_runtime_1.jsx)(react_2.PopoverBody, { p: "0.75rem", children: (0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "0.5rem", justify: "space-between", children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "0.5rem", flex: "1", minW: 0, children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: item.icon, fontSize: "1rem", flexShrink: 0 }), (0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "right", maxWidth: "100%", fontSize: itemFontSize, fontWeight: "medium", as: "p", children: item.title })] }), badgeVal != null && ((0, jsx_runtime_1.jsx)(react_2.Badge, { colorScheme: colorScheme, fontSize: "0.625rem", variant: variant, borderRadius: radius, children: badgeVal }))] }) }) }) })] }));
32
38
  };
33
39
  const ExpandedItem = ({ item, isActive, itemFontSize, onItemClick }) => {
34
40
  var _a, _b;
@@ -36,7 +42,9 @@ const ExpandedItem = ({ item, isActive, itemFontSize, onItemClick }) => {
36
42
  const isDark = (0, accentText_1.isDarkCanvas)((_b = (_a = theme.colors.backgroundColor) === null || _a === void 0 ? void 0 : _a.main) !== null && _b !== void 0 ? _b : "#ffffff");
37
43
  const activeAccent = (0, sidebarAccentColors_1.useSidebarActiveAccent)(theme.colors, isDark);
38
44
  const { badgeVal, colorScheme, radius, variant } = parseBadge(item.badge);
39
- return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { role: "group", px: "8px", py: "7px", mb: "2px", borderRadius: "7px", align: "center", justify: "space-between", gap: "8px", overflow: "hidden", cursor: item.disabled ? "not-allowed" : "pointer", opacity: item.disabled ? 0.6 : 1, bg: isActive ? theme.colors.primary.opacity[16] : "transparent", _hover: { bg: item.disabled ? "transparent" : "whiteAlpha.100" }, onClick: () => !item.disabled && (onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item)), borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.primary[500] : "transparent", transition: "background 0.12s", children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "8px", flex: "1", minW: 0, overflow: "hidden", children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: item.icon, fontSize: "0.95rem", flexShrink: 0, color: isActive ? activeAccent.icon : "whiteAlpha.800", _groupHover: isActive ? undefined : { color: "white" }, transition: "color 0.12s" }), (0, jsx_runtime_1.jsx)(react_2.Box, { flex: "1", minW: 0, children: (0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "right", maxWidth: "100%", fontSize: itemFontSize, fontWeight: isActive ? 600 : 500, color: isActive ? activeAccent.label : "whiteAlpha.900", _groupHover: isActive ? undefined : { color: "white" }, as: "p", children: item.title }) })] }), badgeVal != null && ((0, jsx_runtime_1.jsx)(react_2.Badge, { colorScheme: colorScheme, fontSize: "0.625rem", variant: variant, borderRadius: radius, children: badgeVal }))] }));
45
+ return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { role: "group", px: "8px", py: "7px", mb: "2px", borderRadius: "7px", align: "center", justify: "space-between", gap: "8px", overflow: "hidden", cursor: item.disabled ? "not-allowed" : "pointer", opacity: item.disabled ? 0.6 : 1, bg: isActive ? "whiteAlpha.300" : "transparent", _hover: {
46
+ bg: item.disabled ? "transparent" : isActive ? "whiteAlpha.400" : "whiteAlpha.200",
47
+ }, onClick: () => !item.disabled && (onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item)), borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.primary[500] : "transparent", transition: "background 0.12s", children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "8px", flex: "1", minW: 0, overflow: "hidden", children: [(0, jsx_runtime_1.jsx)(react_2.Icon, { as: item.icon, fontSize: "0.95rem", flexShrink: 0, color: isActive ? activeAccent.icon : "whiteAlpha.800", _groupHover: isActive ? undefined : { color: "white" }, transition: "color 0.12s" }), (0, jsx_runtime_1.jsx)(react_2.Box, { flex: "1", minW: 0, children: (0, jsx_runtime_1.jsx)(OverflowTooltipText_1.default, { placement: "right", maxWidth: "100%", fontSize: itemFontSize, fontWeight: isActive ? 600 : 500, color: isActive ? activeAccent.label : "whiteAlpha.900", _groupHover: isActive ? undefined : { color: "white" }, as: "p", children: item.title }) })] }), badgeVal != null && ((0, jsx_runtime_1.jsx)(react_2.Badge, { colorScheme: colorScheme, fontSize: "0.625rem", variant: variant, borderRadius: radius, children: badgeVal }))] }));
40
48
  };
41
49
  const SecondaryBar = ({ items = [], defaultCollapsed = true, collapsedWidth = "3.5rem", expandedWidth = "10rem", headerFontSize = "0.75rem", itemFontSize = "0.75rem", selected, onItemClick, title, icon, }) => {
42
50
  var _a, _b;
@@ -64,7 +64,7 @@ const ControlCell = ({ onClick, label, accent, children }) => {
64
64
  const theme = (0, useCustomTheme_1.useCustomTheme)();
65
65
  const isDark = (0, accentText_1.isDarkCanvas)((_b = (_a = theme.colors.backgroundColor) === null || _a === void 0 ? void 0 : _a.main) !== null && _b !== void 0 ? _b : "#ffffff");
66
66
  const activeAccent = (0, sidebarAccentColors_1.useSidebarActiveAccent)(theme.colors, isDark);
67
- return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", flex: "1", minW: 0, alignItems: "center", justifyContent: "center", gap: "7px", px: "6px", py: "8px", cursor: "pointer", border: "none", bg: accent ? theme.colors.primary.opacity[16] : "transparent", onClick: onClick, _hover: { bg: accent ? theme.colors.primary.opacity[32] : "whiteAlpha.100" }, transition: "background 0.15s", children: [children, label && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "11.5px", color: accent ? activeAccent.icon : "whiteAlpha.700", fontWeight: "medium", children: label }))] }));
67
+ return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", flex: "1", minW: 0, alignItems: "center", justifyContent: "center", gap: "7px", px: "6px", py: "8px", cursor: "pointer", border: "none", bg: accent ? "whiteAlpha.300" : "transparent", onClick: onClick, _hover: { bg: accent ? "whiteAlpha.400" : "whiteAlpha.200" }, transition: "background 0.15s", children: [children, label && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "11.5px", color: accent ? activeAccent.icon : "whiteAlpha.700", fontWeight: "medium", children: label }))] }));
68
68
  };
69
69
  // Collapse (mini-rail) sits next to the Hide/Show navbar-mode toggle. In the
70
70
  // desktop mobile-nav overlay only "Show" (return to the docked sidebar) is shown;
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemBox.d.ts","sourceRoot":"","sources":["../../../../src/Components/SideBar/components/MenuItemBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,UAAU,KAAK;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuShC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"MenuItemBox.d.ts","sourceRoot":"","sources":["../../../../src/Components/SideBar/components/MenuItemBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,UAAU,KAAK;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwShC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -39,8 +39,11 @@ const MenuItemBox = ({ menu, activeMenu, toggle, handleClick, isOpen, onToggle,
39
39
  if (!disabled)
40
40
  handleClick === null || handleClick === void 0 ? void 0 : handleClick(menu);
41
41
  };
42
- // Pill-style nav item. Active items use a translucent-purple fill + a left
43
- // accent bar; idle items rely on a subtle white-overlay hover.
42
+ // Pill-style nav item. The fill is a white overlay, not a brand tint: the sidebar is a
43
+ // near-black surface in BOTH modes, and a `primary.opacity` tint of a dark accent on it is
44
+ // imperceptible for most brands (measured 1.03-1.15 idle->hover) and exactly 1.000 for zinc
45
+ // light, whose primary[500] IS the sidebar colour. Brand identity stays in the accent bar
46
+ // and icon below. See interactionStates.test.ts.
44
47
  const commonStyles = {
45
48
  role: "group",
46
49
  w: "100%",
@@ -50,14 +53,12 @@ const MenuItemBox = ({ menu, activeMenu, toggle, handleClick, isOpen, onToggle,
50
53
  fontWeight: "medium",
51
54
  borderLeft: "2px solid",
52
55
  borderLeftColor: isAnyActive ? theme.colors.primary[500] : "transparent",
53
- backgroundColor: isAnyActive ? theme.colors.primary.opacity[16] : "transparent",
56
+ backgroundColor: isAnyActive ? "whiteAlpha.300" : "transparent",
54
57
  color: disabled ? "whiteAlpha.400" : "whiteAlpha.700",
55
58
  _hover: disabled
56
59
  ? {}
57
60
  : {
58
- backgroundColor: isAnyActive
59
- ? theme.colors.primary.opacity[16]
60
- : "whiteAlpha.100",
61
+ backgroundColor: isAnyActive ? "whiteAlpha.400" : "whiteAlpha.200",
61
62
  },
62
63
  cursor: disabled ? "not-allowed" : "pointer",
63
64
  opacity: disabled ? 0.6 : 1,
@@ -1,13 +1,14 @@
1
1
  import type { PaletteProps } from "../../../Theme/tokens/types";
2
2
  /**
3
- * Per-cell hover fill for a table row. `table.hover[300]` (the token built for this) still works
4
- * in light mode — a pale tint against a white canvas — but in dark mode that rung sits within
5
- * ~10 lightness points of the near-black canvas (both compressed near L7-15), so it computes to
6
- * ~1.2:1 contrast: invisible, which is exactly what QA reported. `background[900]` is this
7
- * palette's dark-mode "bright highlight" rung (~9.7-10.7:1 against the canvas, verified
8
- * numerically across brands) — but the row's resting ink (`text[500]`) is tuned for a near-black
9
- * backdrop and goes illegible against a bright one, so hover must also flip `color`, mirroring how
10
- * Jodit's own dark-mode hover rule flips text to its canvas color alongside the brighter fill.
3
+ * Per-cell hover fill for a table row. `table.hover[300]` works in light mode a pale tint on a
4
+ * white canvas — but in dark mode that rung sits within ~10 lightness points of the near-black
5
+ * canvas, computing to ~1.2:1: invisible, as QA reported.
6
+ *
7
+ * The first fix for that overshot to `background[900]`, the palette's BRIGHTEST rung (~10:1), and
8
+ * had to invert the row's ink to keep it readable a near-white slab in a dark table. Dark-mode
9
+ * hover is a *lifted surface*, not an inversion: `table.hover[500]` is a visible step up from the
10
+ * canvas while staying dark enough that the row's resting `text[500]` ink is still legible, so no
11
+ * `color` flip is needed. Pinned by tableRowHoverStyle.test.ts.
11
12
  */
12
13
  export declare const getTableRowHoverStyle: (colors: PaletteProps, isDark: boolean) => Record<string, string>;
13
14
  //# sourceMappingURL=tableRowHoverStyle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableRowHoverStyle.d.ts","sourceRoot":"","sources":["../../../../src/Components/Table/components/tableRowHoverStyle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,YAAY,EAAE,QAAQ,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAUlG,CAAC"}
1
+ {"version":3,"file":"tableRowHoverStyle.d.ts","sourceRoot":"","sources":["../../../../src/Components/Table/components/tableRowHoverStyle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,YAAY,EAAE,QAAQ,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CASlG,CAAC"}