pixelize-design-library 2.4.1-beta.1 → 2.4.1-beta.11
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.
- package/dist/Assets/defaultLogo.d.ts.map +1 -1
- package/dist/Assets/defaultLogo.js +1 -3
- package/dist/Assets/defaultLogo.tsx +4 -8
- package/dist/Components/Accordion/accordionColors.d.ts.map +1 -1
- package/dist/Components/Accordion/accordionColors.js +17 -3
- package/dist/Components/Checkbox/Checkbox.styles.d.ts.map +1 -1
- package/dist/Components/Checkbox/Checkbox.styles.js +13 -2
- package/dist/Components/CustomModulesTable/EditModuleModal.d.ts.map +1 -1
- package/dist/Components/CustomModulesTable/EditModuleModal.js +5 -1
- package/dist/Components/DatePicker/CalendarPanel.d.ts.map +1 -1
- package/dist/Components/DatePicker/CalendarPanel.js +15 -4
- package/dist/Components/DatePicker/SingleDatePicker.d.ts.map +1 -1
- package/dist/Components/DatePicker/SingleDatePicker.js +11 -9
- package/dist/Components/DatePicker/TimeOnlyPicker.js +2 -2
- package/dist/Components/DatePicker/TimePicker.d.ts.map +1 -1
- package/dist/Components/DatePicker/TimePicker.js +14 -2
- package/dist/Components/DatePicker/TimePickerInput.d.ts.map +1 -1
- package/dist/Components/DatePicker/TimePickerInput.js +9 -1
- package/dist/Components/Editor/joditThemeVars.d.ts.map +1 -1
- package/dist/Components/Editor/joditThemeVars.js +9 -0
- package/dist/Components/FilePreview/FilePreview.d.ts.map +1 -1
- package/dist/Components/FilePreview/FilePreview.js +3 -1
- package/dist/Components/FileUploader/FileUploader.js +2 -2
- package/dist/Components/FilterSidebar/FilterSidebar.js +1 -1
- package/dist/Components/LimitReachedModal/LimitReachedModal.d.ts +5 -0
- package/dist/Components/LimitReachedModal/LimitReachedModal.d.ts.map +1 -0
- package/dist/Components/LimitReachedModal/LimitReachedModal.js +45 -0
- package/dist/Components/LimitReachedModal/LimitReachedModalProps.d.ts +16 -0
- package/dist/Components/LimitReachedModal/LimitReachedModalProps.d.ts.map +1 -0
- package/dist/Components/LimitReachedModal/LimitReachedModalProps.js +2 -0
- package/dist/Components/LimitReachedModal/limitReachedCopy.d.ts +7 -0
- package/dist/Components/LimitReachedModal/limitReachedCopy.d.ts.map +1 -0
- package/dist/Components/LimitReachedModal/limitReachedCopy.js +54 -0
- package/dist/Components/Loading/Loading.d.ts +1 -1
- package/dist/Components/Loading/Loading.d.ts.map +1 -1
- package/dist/Components/Loading/Loading.js +2 -2
- package/dist/Components/Loading/LoadingProps.d.ts +2 -0
- package/dist/Components/Loading/LoadingProps.d.ts.map +1 -1
- package/dist/Components/Modal/Modal.d.ts.map +1 -1
- package/dist/Components/Modal/Modal.js +1 -4
- package/dist/Components/NavigationBar/NavigationBar.d.ts.map +1 -1
- package/dist/Components/NavigationBar/NavigationBar.js +10 -6
- package/dist/Components/OrgSwitcher/OrgSwitcher.d.ts.map +1 -1
- package/dist/Components/OrgSwitcher/OrgSwitcher.js +22 -3
- package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +9 -1
- package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts.map +1 -1
- package/dist/Components/OrgSwitcher/OrgSwitcherProps.js +19 -5
- package/dist/Components/OrganizationDetails/CreateOrgModal.js +6 -4
- package/dist/Components/OrganizationDetails/OrganizationDetails.d.ts.map +1 -1
- package/dist/Components/OrganizationDetails/OrganizationDetails.js +66 -9
- package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts +47 -14
- package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts.map +1 -1
- package/dist/Components/PlanBadge/PlanBadge.d.ts +12 -0
- package/dist/Components/PlanBadge/PlanBadge.d.ts.map +1 -0
- package/dist/Components/PlanBadge/PlanBadge.js +22 -0
- package/dist/Components/PlanBadge/PlanBadgeProps.d.ts +11 -0
- package/dist/Components/PlanBadge/PlanBadgeProps.d.ts.map +1 -0
- package/dist/Components/PlanBadge/PlanBadgeProps.js +2 -0
- package/dist/Components/PlanPill/PlanPill.d.ts +5 -0
- package/dist/Components/PlanPill/PlanPill.d.ts.map +1 -0
- package/dist/Components/PlanPill/PlanPill.js +42 -0
- package/dist/Components/PlanPill/PlanPillProps.d.ts +28 -0
- package/dist/Components/PlanPill/PlanPillProps.d.ts.map +1 -0
- package/dist/Components/PlanPill/PlanPillProps.js +2 -0
- package/dist/Components/PlanPill/planPillGradient.d.ts +22 -0
- package/dist/Components/PlanPill/planPillGradient.d.ts.map +1 -0
- package/dist/Components/PlanPill/planPillGradient.js +20 -0
- package/dist/Components/Search/Search.d.ts.map +1 -1
- package/dist/Components/Search/Search.js +4 -2
- package/dist/Components/Select/Select.styles.d.ts.map +1 -1
- package/dist/Components/Select/Select.styles.js +29 -20
- package/dist/Components/SelectSearch/SelectSearch.js +1 -1
- package/dist/Components/SelectV2/SelectV2.d.ts +3 -0
- package/dist/Components/SelectV2/SelectV2.d.ts.map +1 -0
- package/dist/Components/SelectV2/SelectV2.js +185 -0
- package/dist/Components/SelectV2/SelectV2Props.d.ts +67 -0
- package/dist/Components/SelectV2/SelectV2Props.d.ts.map +1 -0
- package/dist/Components/SelectV2/SelectV2Props.js +2 -0
- package/dist/Components/SideBar/SecondaryBar.d.ts.map +1 -1
- package/dist/Components/SideBar/SecondaryBar.js +10 -2
- package/dist/Components/SideBar/SideBar.js +2 -2
- package/dist/Components/SideBar/components/MenuItemBox.d.ts.map +1 -1
- package/dist/Components/SideBar/components/MenuItemBox.js +7 -6
- package/dist/Components/Table/components/tableRowHoverStyle.d.ts +9 -8
- package/dist/Components/Table/components/tableRowHoverStyle.d.ts.map +1 -1
- package/dist/Components/Table/components/tableRowHoverStyle.js +12 -12
- package/dist/Components/Table/settings/ManageColumns.js +2 -2
- package/dist/Components/UpgradeButton/UpgradeButton.d.ts.map +1 -1
- package/dist/Components/UpgradeButton/UpgradeButton.js +25 -7
- package/dist/Components/UserDetails/UserDetails.d.ts.map +1 -1
- package/dist/Components/UserDetails/UserDetails.js +5 -2
- package/dist/Components/WorkspaceWindow/WorkspaceTrayPreview.js +2 -1
- package/dist/Components/WorkspaceWindow/WorkspaceWindow.d.ts +2 -2
- package/dist/Components/WorkspaceWindow/WorkspaceWindow.d.ts.map +1 -1
- package/dist/Components/WorkspaceWindow/WorkspaceWindow.js +25 -4
- package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts +18 -0
- package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts.map +1 -1
- package/dist/Theme/chakra/Avatar.styles.d.ts +33 -0
- package/dist/Theme/chakra/Avatar.styles.d.ts.map +1 -0
- package/dist/Theme/chakra/Avatar.styles.js +28 -0
- package/dist/Theme/chakra/Drawer.styles.d.ts +32 -0
- package/dist/Theme/chakra/Drawer.styles.d.ts.map +1 -0
- package/dist/Theme/chakra/Drawer.styles.js +26 -0
- package/dist/Theme/chakra/Menu.styles.d.ts +70 -0
- package/dist/Theme/chakra/Menu.styles.d.ts.map +1 -0
- package/dist/Theme/chakra/Menu.styles.js +50 -0
- package/dist/Theme/chakra/Modal.styles.d.ts +32 -0
- package/dist/Theme/chakra/Modal.styles.d.ts.map +1 -0
- package/dist/Theme/chakra/Modal.styles.js +26 -0
- package/dist/Theme/chakra/Popover.styles.d.ts +37 -0
- package/dist/Theme/chakra/Popover.styles.d.ts.map +1 -0
- package/dist/Theme/chakra/Popover.styles.js +30 -0
- package/dist/Theme/chakra/Slider.styles.d.ts +31 -0
- package/dist/Theme/chakra/Slider.styles.d.ts.map +1 -0
- package/dist/Theme/chakra/Slider.styles.js +25 -0
- package/dist/Theme/chakra/Switch.styles.d.ts +31 -0
- package/dist/Theme/chakra/Switch.styles.d.ts.map +1 -0
- package/dist/Theme/chakra/Switch.styles.js +24 -0
- package/dist/Theme/chakra/Tabs.styles.d.ts +43 -0
- package/dist/Theme/chakra/Tabs.styles.d.ts.map +1 -0
- package/dist/Theme/chakra/Tabs.styles.js +41 -0
- package/dist/Theme/chakra/common.web.d.ts.map +1 -1
- package/dist/Theme/chakra/common.web.js +4 -1
- package/dist/Theme/chakra/componentStyles.d.ts +230 -1
- package/dist/Theme/chakra/componentStyles.d.ts.map +1 -1
- package/dist/Theme/chakra/componentStyles.js +136 -0
- package/dist/Theme/chakra/createBrandTheme.d.ts.map +1 -1
- package/dist/Theme/chakra/createBrandTheme.js +47 -0
- package/dist/Theme/provider/PixelizeThemeProvider.d.ts +22 -3
- package/dist/Theme/provider/PixelizeThemeProvider.d.ts.map +1 -1
- package/dist/Theme/provider/PixelizeThemeProvider.js +115 -5
- package/dist/Theme/provider/ThemeSwitcher.d.ts.map +1 -1
- package/dist/Theme/provider/ThemeSwitcher.js +23 -11
- package/dist/Theme/tokens/brands/index.d.ts.map +1 -1
- package/dist/Theme/tokens/brands/index.js +20 -18
- package/dist/Theme/tokens/brands/lavender/palette.light.d.ts.map +1 -1
- package/dist/Theme/tokens/brands/lavender/palette.light.js +22 -15
- package/dist/Theme/tokens/brands/zinc/palette.dark.d.ts.map +1 -1
- package/dist/Theme/tokens/brands/zinc/palette.dark.js +5 -2
- package/dist/Theme/tokens/builders/buildDarkPalette.d.ts.map +1 -1
- package/dist/Theme/tokens/builders/buildDarkPalette.js +19 -4
- package/dist/Theme/tokens/builders/outlineRung.d.ts +35 -0
- package/dist/Theme/tokens/builders/outlineRung.d.ts.map +1 -0
- package/dist/Theme/tokens/builders/outlineRung.js +69 -0
- package/dist/Theme/tokens/builders/statusTone.d.ts +35 -0
- package/dist/Theme/tokens/builders/statusTone.d.ts.map +1 -0
- package/dist/Theme/tokens/builders/statusTone.js +63 -0
- package/dist/Utils/accountHandoff.d.ts +54 -0
- package/dist/Utils/accountHandoff.d.ts.map +1 -0
- package/dist/Utils/accountHandoff.js +144 -0
- package/dist/Utils/planBadge.d.ts +39 -0
- package/dist/Utils/planBadge.d.ts.map +1 -0
- package/dist/Utils/planBadge.js +108 -0
- package/dist/Utils/planExpiry.d.ts +35 -0
- package/dist/Utils/planExpiry.d.ts.map +1 -0
- package/dist/Utils/planExpiry.js +115 -0
- package/dist/index.d.ts +18 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -3
- package/package.json +6 -2
- package/.claude/settings.local.json +0 -51
- package/.cursor/TASK-SETUP.md +0 -43
- package/.cursor/agents/be-impl.md +0 -37
- package/.cursor/agents/fe-impl.md +0 -39
- package/.cursor/agents/task-plan.md +0 -56
- package/.cursor/agents/test-create.md +0 -31
- package/.cursor/agents/test-exec.md +0 -26
- package/.cursor/hooks/task-hint.env +0 -1
- package/.cursor/hooks/task-skill-nudge.sh +0 -71
- package/.cursor/hooks/task-slash-guard.sh +0 -31
- package/.cursor/hooks.json +0 -13
- package/.cursor/modules/account-management/MODULE.md +0 -34
- package/.cursor/modules/buttons/MODULE.md +0 -47
- package/.cursor/modules/cards/MODULE.md +0 -55
- package/.cursor/modules/charts/MODULE.md +0 -40
- package/.cursor/modules/common/MODULE.md +0 -36
- package/.cursor/modules/contact-auth/MODULE.md +0 -19
- package/.cursor/modules/data-display/MODULE.md +0 -42
- package/.cursor/modules/feedback/MODULE.md +0 -32
- package/.cursor/modules/form/MODULE.md +0 -13
- package/.cursor/modules/inputs-basic/MODULE.md +0 -42
- package/.cursor/modules/inputs-date-file/MODULE.md +0 -56
- package/.cursor/modules/inputs-select/MODULE.md +0 -27
- package/.cursor/modules/inputs-toggle/MODULE.md +0 -18
- package/.cursor/modules/kanban/MODULE.md +0 -22
- package/.cursor/modules/layout-navigation/MODULE.md +0 -269
- package/.cursor/modules/overlays/MODULE.md +0 -69
- package/.cursor/modules/playground/MODULE.md +0 -28
- package/.cursor/modules/table/MODULE.md +0 -78
- package/.cursor/modules/theme/MODULE.md +0 -314
- package/.cursor/modules/types-exports/MODULE.md +0 -17
- package/.cursor/modules/utility-ui/MODULE.md +0 -50
- package/.cursor/modules/utils-hooks/MODULE.md +0 -35
- package/.cursor/pixelize-task-statusline.sh +0 -64
- package/.cursor/plans/blocked/.gitkeep +0 -0
- package/.cursor/plans/current.md +0 -12
- package/.cursor/plans/current.theme-tokens-dark-mode.md +0 -77
- package/.cursor/plans/current.theme-tokens-dark.md +0 -155
- package/.cursor/plans/done/.gitkeep +0 -0
- package/.cursor/rules +0 -31
- package/.cursor/skills/task/SKILL.md +0 -167
- package/CLAUDE.md +0 -148
- package/__mocks__/styleMock.js +0 -8
- package/coverage/clover.xml +0 -405
- package/coverage/coverage-final.json +0 -16
- package/coverage/coverage-summary.json +0 -50
- package/coverage/lcov-report/Button/Button.tsx.html +0 -244
- package/coverage/lcov-report/Button/index.html +0 -116
- package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +0 -433
- package/coverage/lcov-report/Checkbox/index.html +0 -116
- package/coverage/lcov-report/Common/ErrorMessage.tsx.html +0 -148
- package/coverage/lcov-report/Common/FormLabel.tsx.html +0 -331
- package/coverage/lcov-report/Common/HelperText.tsx.html +0 -124
- package/coverage/lcov-report/Common/index.html +0 -146
- package/coverage/lcov-report/Components/Button/Button.tsx.html +0 -244
- package/coverage/lcov-report/Components/Button/index.html +0 -116
- package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +0 -433
- package/coverage/lcov-report/Components/Checkbox/index.html +0 -116
- package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +0 -148
- package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +0 -331
- package/coverage/lcov-report/Components/Common/HelperText.tsx.html +0 -124
- package/coverage/lcov-report/Components/Common/index.html +0 -146
- package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +0 -712
- package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +0 -343
- package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +0 -313
- package/coverage/lcov-report/Components/CustomModulesTable/index.html +0 -146
- package/coverage/lcov-report/Components/Divider/Divider.tsx.html +0 -133
- package/coverage/lcov-report/Components/Divider/index.html +0 -116
- package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +0 -994
- package/coverage/lcov-report/Components/Dropdown/index.html +0 -116
- package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +0 -466
- package/coverage/lcov-report/Components/EmptyState/index.html +0 -116
- package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +0 -373
- package/coverage/lcov-report/Components/Header/index.html +0 -116
- package/coverage/lcov-report/Components/Input/TextInput.tsx.html +0 -487
- package/coverage/lcov-report/Components/Input/index.html +0 -116
- package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +0 -205
- package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +0 -547
- package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +0 -190
- package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +0 -247
- package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +0 -116
- package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +0 -3598
- package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +0 -283
- package/coverage/lcov-report/Components/KanbanBoard/index.html +0 -161
- package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
- package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
- package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
- package/coverage/lcov-report/Components/OrganizationDetails/index.html +0 -146
- package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +0 -328
- package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +0 -1732
- package/coverage/lcov-report/Components/RolesPermission/index.html +0 -131
- package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +0 -2575
- package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
- package/coverage/lcov-report/Components/SearchSelect/index.html +0 -146
- package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +0 -496
- package/coverage/lcov-report/Components/Select/Select.tsx.html +0 -361
- package/coverage/lcov-report/Components/Select/index.html +0 -116
- package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +0 -562
- package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +0 -346
- package/coverage/lcov-report/Components/SideBar/components/index.html +0 -116
- package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +0 -490
- package/coverage/lcov-report/Components/SignInActivityTable/index.html +0 -116
- package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +0 -595
- package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +0 -2212
- package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +0 -358
- package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +0 -358
- package/coverage/lcov-report/Components/Table/components/index.html +0 -161
- package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +0 -856
- package/coverage/lcov-report/Components/Table/settings/index.html +0 -116
- package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +0 -331
- package/coverage/lcov-report/Components/Tag/Tag.tsx.html +0 -256
- package/coverage/lcov-report/Components/Tag/index.html +0 -131
- package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +0 -286
- package/coverage/lcov-report/Components/ToolTip/index.html +0 -116
- package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +0 -709
- package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +0 -505
- package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +0 -379
- package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +0 -1900
- package/coverage/lcov-report/Components/UserDetails/index.html +0 -161
- package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +0 -466
- package/coverage/lcov-report/EmptyState/index.html +0 -116
- package/coverage/lcov-report/Hooks/index.html +0 -116
- package/coverage/lcov-report/Hooks/usePreferences.ts.html +0 -421
- package/coverage/lcov-report/Input/TextInput.tsx.html +0 -487
- package/coverage/lcov-report/Input/index.html +0 -131
- package/coverage/lcov-report/Input/textInputIconSize.ts.html +0 -205
- package/coverage/lcov-report/KanbanBoard.tsx.html +0 -3481
- package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +0 -511
- package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +0 -334
- package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +0 -1519
- package/coverage/lcov-report/OrganizationDetails/index.html +0 -146
- package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +0 -328
- package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +0 -1732
- package/coverage/lcov-report/RolesPermission/index.html +0 -116
- package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +0 -2575
- package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +0 -202
- package/coverage/lcov-report/SearchSelect/index.html +0 -146
- package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +0 -496
- package/coverage/lcov-report/Table/CompactSelect.tsx.html +0 -379
- package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +0 -514
- package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +0 -373
- package/coverage/lcov-report/Table/Components/Pagination.tsx.html +0 -574
- package/coverage/lcov-report/Table/Components/TableActions.tsx.html +0 -574
- package/coverage/lcov-report/Table/Components/TableBody.tsx.html +0 -1027
- package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +0 -397
- package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +0 -1060
- package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +0 -361
- package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +0 -337
- package/coverage/lcov-report/Table/Components/index.html +0 -266
- package/coverage/lcov-report/Table/Components/useDebounce.ts.html +0 -178
- package/coverage/lcov-report/Table/Components/useTable.ts.html +0 -778
- package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +0 -1810
- package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +0 -178
- package/coverage/lcov-report/Table/Table.tsx.html +0 -1567
- package/coverage/lcov-report/Table/TableProps.tsx.html +0 -658
- package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +0 -619
- package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +0 -229
- package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +0 -532
- package/coverage/lcov-report/Table/TableSettings/index.html +0 -146
- package/coverage/lcov-report/Table/TableToDo.tsx.html +0 -973
- package/coverage/lcov-report/Table/TextOperationControls.tsx.html +0 -271
- package/coverage/lcov-report/Table/filterTypes.ts.html +0 -97
- package/coverage/lcov-report/Table/index.html +0 -176
- package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +0 -856
- package/coverage/lcov-report/Table/settings/index.html +0 -116
- package/coverage/lcov-report/Tag/Tag.tsx.html +0 -256
- package/coverage/lcov-report/Tag/index.html +0 -116
- package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +0 -175
- package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +0 -214
- package/coverage/lcov-report/Theme/index.html +0 -131
- package/coverage/lcov-report/Theme/useCustomTheme.ts.html +0 -100
- package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +0 -286
- package/coverage/lcov-report/ToolTip/index.html +0 -116
- package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +0 -709
- package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +0 -505
- package/coverage/lcov-report/UserDetails/index.html +0 -116
- package/coverage/lcov-report/Utils/functions.ts.html +0 -106
- package/coverage/lcov-report/Utils/index.html +0 -116
- package/coverage/lcov-report/Utils/table.ts.html +0 -1189
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -251
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov.info +0 -981
- package/dist/App.d.ts +0 -4
- package/dist/App.js +0 -95
- package/dist/Layout.d.ts +0 -3
- package/dist/Layout.js +0 -286
- package/dist/Pages/TInput.d.ts +0 -3
- package/dist/Pages/TInput.d.ts.map +0 -1
- package/dist/Pages/TInput.js +0 -20
- package/dist/Pages/accordion.d.ts +0 -3
- package/dist/Pages/accordion.d.ts.map +0 -1
- package/dist/Pages/accordion.js +0 -21
- package/dist/Pages/alertdialog.d.ts +0 -3
- package/dist/Pages/alertdialog.d.ts.map +0 -1
- package/dist/Pages/alertdialog.js +0 -53
- package/dist/Pages/button.d.ts +0 -3
- package/dist/Pages/button.d.ts.map +0 -1
- package/dist/Pages/button.js +0 -32
- package/dist/Pages/card.d.ts +0 -3
- package/dist/Pages/card.d.ts.map +0 -1
- package/dist/Pages/card.js +0 -102
- package/dist/Pages/chart.d.ts +0 -4
- package/dist/Pages/chart.d.ts.map +0 -1
- package/dist/Pages/chart.js +0 -25
- package/dist/Pages/checkbox.d.ts +0 -3
- package/dist/Pages/checkbox.d.ts.map +0 -1
- package/dist/Pages/checkbox.js +0 -11
- package/dist/Pages/contactForm.d.ts +0 -3
- package/dist/Pages/contactForm.d.ts.map +0 -1
- package/dist/Pages/contactForm.js +0 -15
- package/dist/Pages/customModulesTable.d.ts +0 -4
- package/dist/Pages/customModulesTable.d.ts.map +0 -1
- package/dist/Pages/customModulesTable.js +0 -25
- package/dist/Pages/datePick.d.ts +0 -3
- package/dist/Pages/datePick.d.ts.map +0 -1
- package/dist/Pages/datePick.js +0 -49
- package/dist/Pages/drawer.d.ts +0 -3
- package/dist/Pages/drawer.d.ts.map +0 -1
- package/dist/Pages/drawer.js +0 -53
- package/dist/Pages/dropdown.d.ts +0 -3
- package/dist/Pages/dropdown.d.ts.map +0 -1
- package/dist/Pages/dropdown.js +0 -21
- package/dist/Pages/editor.d.ts +0 -3
- package/dist/Pages/editor.d.ts.map +0 -1
- package/dist/Pages/editor.js +0 -13
- package/dist/Pages/feedback.d.ts +0 -2
- package/dist/Pages/feedback.d.ts.map +0 -1
- package/dist/Pages/feedback.js +0 -12
- package/dist/Pages/fileUpload.d.ts +0 -2
- package/dist/Pages/fileUpload.d.ts.map +0 -1
- package/dist/Pages/fileUpload.js +0 -36
- package/dist/Pages/input.d.ts +0 -3
- package/dist/Pages/input.d.ts.map +0 -1
- package/dist/Pages/input.js +0 -48
- package/dist/Pages/kanbanboard.d.ts +0 -3
- package/dist/Pages/kanbanboard.d.ts.map +0 -1
- package/dist/Pages/kanbanboard.js +0 -182
- package/dist/Pages/modal.d.ts +0 -3
- package/dist/Pages/modal.d.ts.map +0 -1
- package/dist/Pages/modal.js +0 -61
- package/dist/Pages/multiSelect.d.ts +0 -3
- package/dist/Pages/multiSelect.d.ts.map +0 -1
- package/dist/Pages/multiSelect.js +0 -22
- package/dist/Pages/noteArea.d.ts +0 -3
- package/dist/Pages/noteArea.d.ts.map +0 -1
- package/dist/Pages/noteArea.js +0 -26
- package/dist/Pages/notification.d.ts +0 -3
- package/dist/Pages/notification.d.ts.map +0 -1
- package/dist/Pages/notification.js +0 -37
- package/dist/Pages/numberInput.d.ts +0 -3
- package/dist/Pages/numberInput.d.ts.map +0 -1
- package/dist/Pages/numberInput.js +0 -16
- package/dist/Pages/orgSwitcher.d.ts +0 -4
- package/dist/Pages/orgSwitcher.d.ts.map +0 -1
- package/dist/Pages/orgSwitcher.js +0 -36
- package/dist/Pages/organizationDetails.d.ts +0 -4
- package/dist/Pages/organizationDetails.d.ts.map +0 -1
- package/dist/Pages/organizationDetails.js +0 -64
- package/dist/Pages/photoViewer.d.ts +0 -3
- package/dist/Pages/photoViewer.d.ts.map +0 -1
- package/dist/Pages/photoViewer.js +0 -12
- package/dist/Pages/pinInputs.d.ts +0 -3
- package/dist/Pages/pinInputs.d.ts.map +0 -1
- package/dist/Pages/pinInputs.js +0 -11
- package/dist/Pages/productCaard.d.ts +0 -3
- package/dist/Pages/productCaard.d.ts.map +0 -1
- package/dist/Pages/productCaard.js +0 -311
- package/dist/Pages/productDetailCard.d.ts +0 -3
- package/dist/Pages/productDetailCard.d.ts.map +0 -1
- package/dist/Pages/productDetailCard.js +0 -78
- package/dist/Pages/productFilter.d.ts +0 -3
- package/dist/Pages/productFilter.d.ts.map +0 -1
- package/dist/Pages/productFilter.js +0 -148
- package/dist/Pages/progressbar.d.ts +0 -3
- package/dist/Pages/progressbar.d.ts.map +0 -1
- package/dist/Pages/progressbar.js +0 -11
- package/dist/Pages/radioButton.d.ts +0 -3
- package/dist/Pages/radioButton.d.ts.map +0 -1
- package/dist/Pages/radioButton.js +0 -18
- package/dist/Pages/rolesPermission.d.ts +0 -4
- package/dist/Pages/rolesPermission.d.ts.map +0 -1
- package/dist/Pages/rolesPermission.js +0 -144
- package/dist/Pages/search.d.ts +0 -3
- package/dist/Pages/search.d.ts.map +0 -1
- package/dist/Pages/search.js +0 -21
- package/dist/Pages/searchSelect.d.ts +0 -3
- package/dist/Pages/searchSelect.d.ts.map +0 -1
- package/dist/Pages/searchSelect.js +0 -97
- package/dist/Pages/select.d.ts +0 -3
- package/dist/Pages/select.d.ts.map +0 -1
- package/dist/Pages/select.js +0 -20
- package/dist/Pages/selectSearch.d.ts +0 -3
- package/dist/Pages/selectSearch.d.ts.map +0 -1
- package/dist/Pages/selectSearch.js +0 -58
- package/dist/Pages/signInActivityTable.d.ts +0 -4
- package/dist/Pages/signInActivityTable.d.ts.map +0 -1
- package/dist/Pages/signInActivityTable.js +0 -17
- package/dist/Pages/skeleton.d.ts +0 -3
- package/dist/Pages/skeleton.d.ts.map +0 -1
- package/dist/Pages/skeleton.js +0 -12
- package/dist/Pages/stageProgress.d.ts +0 -4
- package/dist/Pages/stageProgress.d.ts.map +0 -1
- package/dist/Pages/stageProgress.js +0 -31
- package/dist/Pages/switch.d.ts +0 -3
- package/dist/Pages/switch.d.ts.map +0 -1
- package/dist/Pages/switch.js +0 -17
- package/dist/Pages/table.d.ts +0 -3
- package/dist/Pages/table.d.ts.map +0 -1
- package/dist/Pages/table.js +0 -182
- package/dist/Pages/tag.d.ts +0 -3
- package/dist/Pages/tag.d.ts.map +0 -1
- package/dist/Pages/tag.js +0 -27
- package/dist/Pages/textArea.d.ts +0 -3
- package/dist/Pages/textArea.d.ts.map +0 -1
- package/dist/Pages/textArea.js +0 -14
- package/dist/Pages/tier1.d.ts +0 -4
- package/dist/Pages/tier1.d.ts.map +0 -1
- package/dist/Pages/tier1.js +0 -86
- package/dist/Pages/timeline.d.ts +0 -3
- package/dist/Pages/timeline.d.ts.map +0 -1
- package/dist/Pages/timeline.js +0 -73
- package/dist/Pages/tooltip.d.ts +0 -3
- package/dist/Pages/tooltip.d.ts.map +0 -1
- package/dist/Pages/tooltip.js +0 -11
- package/dist/Pages/toster.d.ts +0 -3
- package/dist/Pages/toster.d.ts.map +0 -1
- package/dist/Pages/toster.js +0 -53
- package/dist/Pages/upgradeButton.d.ts +0 -4
- package/dist/Pages/upgradeButton.d.ts.map +0 -1
- package/dist/Pages/upgradeButton.js +0 -17
- package/dist/Pages/userDetails.d.ts +0 -4
- package/dist/Pages/userDetails.d.ts.map +0 -1
- package/dist/Pages/userDetails.js +0 -79
- package/dist/Pages/verifyEmail.d.ts +0 -3
- package/dist/Pages/verifyEmail.d.ts.map +0 -1
- package/dist/Pages/verifyEmail.js +0 -17
- package/dist/Theme/Dark/theme.d.ts +0 -3
- package/dist/Theme/Dark/theme.d.ts.map +0 -1
- package/dist/Theme/Dark/theme.js +0 -277
- package/dist/Theme/Default/palette.d.ts +0 -375
- package/dist/Theme/Default/palette.d.ts.map +0 -1
- package/dist/Theme/Default/palette.js +0 -306
- package/dist/Theme/Default/theme.d.ts +0 -3
- package/dist/Theme/Default/theme.d.ts.map +0 -1
- package/dist/Theme/Default/theme.js +0 -19
- package/dist/Theme/Emerald/palette.d.ts +0 -375
- package/dist/Theme/Emerald/palette.d.ts.map +0 -1
- package/dist/Theme/Emerald/palette.js +0 -125
- package/dist/Theme/Emerald/theme.d.ts +0 -3
- package/dist/Theme/Emerald/theme.d.ts.map +0 -1
- package/dist/Theme/Emerald/theme.js +0 -19
- package/dist/Theme/Meadow/palette.d.ts +0 -375
- package/dist/Theme/Meadow/palette.d.ts.map +0 -1
- package/dist/Theme/Meadow/palette.js +0 -123
- package/dist/Theme/Meadow/theme.d.ts +0 -3
- package/dist/Theme/Meadow/theme.d.ts.map +0 -1
- package/dist/Theme/Meadow/theme.js +0 -19
- package/dist/Theme/Radiant/palette.d.ts +0 -375
- package/dist/Theme/Radiant/palette.d.ts.map +0 -1
- package/dist/Theme/Radiant/palette.js +0 -125
- package/dist/Theme/Radiant/theme.d.ts +0 -3
- package/dist/Theme/Radiant/theme.d.ts.map +0 -1
- package/dist/Theme/Radiant/theme.js +0 -19
- package/dist/Theme/Rosewood/palette.d.ts +0 -375
- package/dist/Theme/Rosewood/palette.d.ts.map +0 -1
- package/dist/Theme/Rosewood/palette.js +0 -125
- package/dist/Theme/Rosewood/theme.d.ts +0 -3
- package/dist/Theme/Rosewood/theme.d.ts.map +0 -1
- package/dist/Theme/Rosewood/theme.js +0 -19
- package/dist/Theme/Skyline/palette.d.ts +0 -375
- package/dist/Theme/Skyline/palette.d.ts.map +0 -1
- package/dist/Theme/Skyline/palette.js +0 -123
- package/dist/Theme/Skyline/theme.d.ts +0 -3
- package/dist/Theme/Skyline/theme.d.ts.map +0 -1
- package/dist/Theme/Skyline/theme.js +0 -19
- package/dist/Theme/Slate/palette.d.ts +0 -375
- package/dist/Theme/Slate/palette.d.ts.map +0 -1
- package/dist/Theme/Slate/palette.js +0 -123
- package/dist/Theme/Slate/theme.d.ts +0 -3
- package/dist/Theme/Slate/theme.d.ts.map +0 -1
- package/dist/Theme/Slate/theme.js +0 -19
- package/dist/Theme/buildBrandTokens.d.ts +0 -16
- package/dist/Theme/buildBrandTokens.d.ts.map +0 -1
- package/dist/Theme/buildBrandTokens.js +0 -33
- package/dist/Theme/chartColorsFromTheme.d.ts +0 -19
- package/dist/Theme/chartColorsFromTheme.d.ts.map +0 -1
- package/dist/Theme/chartColorsFromTheme.js +0 -34
- package/dist/Theme/common.d.ts +0 -167
- package/dist/Theme/common.d.ts.map +0 -1
- package/dist/Theme/common.js +0 -112
- package/dist/Theme/componentStyles.d.ts +0 -10
- package/dist/Theme/componentStyles.d.ts.map +0 -1
- package/dist/Theme/componentStyles.js +0 -19
- package/dist/Theme/fonts.d.ts +0 -37
- package/dist/Theme/fonts.d.ts.map +0 -1
- package/dist/Theme/fonts.js +0 -41
- package/dist/Theme/space.d.ts +0 -34
- package/dist/Theme/space.d.ts.map +0 -1
- package/dist/Theme/space.js +0 -35
- package/dist/Theme/theme.d.ts +0 -3
- package/dist/Theme/theme.d.ts.map +0 -1
- package/dist/Theme/theme.js +0 -12
- package/dist/bootstrap.d.ts +0 -2
- package/dist/bootstrap.js +0 -16
- package/eslint.config.js +0 -48
- package/index.html +0 -13
- package/vite.config.ts +0 -13
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { LimitKind } from "./LimitReachedModalProps";
|
|
2
|
+
export declare function resolveLimitCopy(kind: LimitKind, canManageBilling: boolean): {
|
|
3
|
+
title: string;
|
|
4
|
+
message: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function formatLimitUsage(kind: LimitKind, used?: number | null, limit?: number | null): string | null;
|
|
7
|
+
//# sourceMappingURL=limitReachedCopy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limitReachedCopy.d.ts","sourceRoot":"","sources":["../../../src/Components/LimitReachedModal/limitReachedCopy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AA0DrD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,EACf,gBAAgB,EAAE,OAAO,GACxB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAGpC;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,EACf,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACpB,MAAM,GAAG,IAAI,CAGf"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveLimitCopy = resolveLimitCopy;
|
|
4
|
+
exports.formatLimitUsage = formatLimitUsage;
|
|
5
|
+
// Canonical strings ported from crm-frontend's orgPlanLimits.ts / orgRecordLimit.ts and
|
|
6
|
+
// account-frontend's useSeatLimitGate.ts, kept verbatim so the promoted modal reads exactly
|
|
7
|
+
// like the copies it replaces. `projects`/`tickets` are new — matched to the same voice.
|
|
8
|
+
const COPY = {
|
|
9
|
+
record: {
|
|
10
|
+
title: "Record limit reached",
|
|
11
|
+
unit: "records",
|
|
12
|
+
admin: "You have reached your plan record limit. Upgrade to add more records.",
|
|
13
|
+
member: "Your organization has reached its record limit. Contact your organization administrator to upgrade the plan.",
|
|
14
|
+
},
|
|
15
|
+
automation: {
|
|
16
|
+
title: "Automation limit reached",
|
|
17
|
+
unit: "automations",
|
|
18
|
+
admin: "You have reached your plan automation limit. Upgrade to create more workflows and cadences.",
|
|
19
|
+
member: "Your organization has reached its automation limit. Contact your organization administrator to upgrade the plan.",
|
|
20
|
+
},
|
|
21
|
+
custom_modules: {
|
|
22
|
+
title: "Custom module limit reached",
|
|
23
|
+
unit: "custom modules",
|
|
24
|
+
admin: "You have reached your plan custom module limit. Upgrade to add more custom modules.",
|
|
25
|
+
member: "Your organization has reached its custom module limit. Contact your organization administrator to upgrade the plan.",
|
|
26
|
+
},
|
|
27
|
+
user: {
|
|
28
|
+
title: "Seat limit reached",
|
|
29
|
+
unit: "users",
|
|
30
|
+
admin: "You have reached the number of users included on your plan. Upgrade to add more.",
|
|
31
|
+
member: "Your organization has reached its user limit. Contact your organization administrator to upgrade the plan.",
|
|
32
|
+
},
|
|
33
|
+
projects: {
|
|
34
|
+
title: "Project limit reached",
|
|
35
|
+
unit: "projects",
|
|
36
|
+
admin: "You have reached your plan project limit. Upgrade to create more projects.",
|
|
37
|
+
member: "Your organization has reached its project limit. Contact your organization administrator to upgrade the plan.",
|
|
38
|
+
},
|
|
39
|
+
tickets: {
|
|
40
|
+
title: "Ticket limit reached",
|
|
41
|
+
unit: "tickets",
|
|
42
|
+
admin: "You have reached your plan ticket limit. Upgrade to create more tickets.",
|
|
43
|
+
member: "Your organization has reached its ticket limit. Contact your organization administrator to upgrade the plan.",
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
function resolveLimitCopy(kind, canManageBilling) {
|
|
47
|
+
const c = COPY[kind];
|
|
48
|
+
return { title: c.title, message: canManageBilling ? c.admin : c.member };
|
|
49
|
+
}
|
|
50
|
+
function formatLimitUsage(kind, used, limit) {
|
|
51
|
+
if (used == null || limit == null)
|
|
52
|
+
return null;
|
|
53
|
+
return `${used} of ${limit} ${COPY[kind].unit} used`;
|
|
54
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { LoadingProps } from "./LoadingProps";
|
|
2
|
-
export default function Loading({ text, isLoading, onlytext }: LoadingProps): import("react/jsx-runtime").JSX.Element | null;
|
|
2
|
+
export default function Loading({ text, isLoading, onlytext, container }: LoadingProps): import("react/jsx-runtime").JSX.Element | null;
|
|
3
3
|
//# sourceMappingURL=Loading.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loading.d.ts","sourceRoot":"","sources":["../../../src/Components/Loading/Loading.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAgB9C,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"Loading.d.ts","sourceRoot":"","sources":["../../../src/Components/Loading/Loading.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAgB9C,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,YAAY,kDAoDrF"}
|
|
@@ -16,12 +16,12 @@ const colorTransition = (0, react_2.keyframes) `
|
|
|
16
16
|
color: black;
|
|
17
17
|
}
|
|
18
18
|
`;
|
|
19
|
-
function Loading({ text, isLoading, onlytext }) {
|
|
19
|
+
function Loading({ text, isLoading, onlytext, container }) {
|
|
20
20
|
const theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
21
21
|
if (!isLoading) {
|
|
22
22
|
return null;
|
|
23
23
|
}
|
|
24
|
-
return ((0, jsx_runtime_1.jsx)(react_1.Box, { position: "fixed", top: "0", right: "0", bottom: "0", left: "0", backgroundColor: "blackAlpha.600", backdropFilter: "blur(60px)", display: "flex", alignItems: "center", justifyContent: "center", flexDirection: "column", zIndex: "9999", children: (0, jsx_runtime_1.jsx)(react_1.Center, { height: "100vh", children: !onlytext ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_1.Spinner, { thickness: "4px", speed: "0.65s", emptyColor: "gray.200", color: theme.colors.primary[500], size: "xl" }), (0, jsx_runtime_1.jsx)(react_1.Text, { mt: "2", ml: "5", children: text })] })) : ((0, jsx_runtime_1.jsx)(react_1.Text, { mt: "2", ml: "5", fontSize: "50px", textTransform: "uppercase", fontWeight: 500, css: (0, react_2.css) `
|
|
24
|
+
return ((0, jsx_runtime_1.jsx)(react_1.Box, { position: container ? "absolute" : "fixed", top: "0", right: "0", bottom: "0", left: "0", backgroundColor: container ? "blackAlpha.500" : "blackAlpha.600", backdropFilter: container ? undefined : "blur(60px)", display: "flex", alignItems: "center", justifyContent: "center", flexDirection: "column", zIndex: container ? "10" : "9999", children: (0, jsx_runtime_1.jsx)(react_1.Center, { height: container ? "100%" : "100vh", children: !onlytext ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_1.Spinner, { thickness: "4px", speed: "0.65s", emptyColor: "gray.200", color: theme.colors.primary[500], size: "xl" }), (0, jsx_runtime_1.jsx)(react_1.Text, { mt: "2", ml: "5", children: text })] })) : ((0, jsx_runtime_1.jsx)(react_1.Text, { mt: "2", ml: "5", fontSize: "50px", textTransform: "uppercase", fontWeight: 500, css: (0, react_2.css) `
|
|
25
25
|
animation: ${colorTransition} 2s infinite;
|
|
26
26
|
`, children: text })) }) }));
|
|
27
27
|
}
|
|
@@ -2,5 +2,7 @@ export type LoadingProps = {
|
|
|
2
2
|
text?: string;
|
|
3
3
|
isLoading: boolean;
|
|
4
4
|
onlytext?: boolean;
|
|
5
|
+
/** Scope the overlay to the nearest positioned ancestor with a MUI-style scrim, instead of full-viewport. */
|
|
6
|
+
container?: boolean;
|
|
5
7
|
};
|
|
6
8
|
//# sourceMappingURL=LoadingProps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingProps.d.ts","sourceRoot":"","sources":["../../../src/Components/Loading/LoadingProps.tsx"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LoadingProps.d.ts","sourceRoot":"","sources":["../../../src/Components/Loading/LoadingProps.tsx"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6GAA6G;IAC7G,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/Components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuB,MAAM,OAAO,CAAC;AAW5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/Components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuB,MAAM,OAAO,CAAC;AAW5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAE/D,CAAC;AACF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAE7D,CAAC;AACF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAE/D,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,IAAI,EACJ,MAAc,EACd,OAAO,EACP,SAA4B,EAC5B,qBAAsD,EACtD,qBAAqB,EACrB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,2CAwElB"}
|
|
@@ -8,7 +8,6 @@ exports.default = Modal;
|
|
|
8
8
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
9
|
const react_1 = __importDefault(require("react"));
|
|
10
10
|
const react_2 = require("@chakra-ui/react");
|
|
11
|
-
const useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
12
11
|
const ModalHeader = ({ children }) => {
|
|
13
12
|
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
|
|
14
13
|
};
|
|
@@ -22,8 +21,6 @@ const ModalFooter = ({ children }) => {
|
|
|
22
21
|
};
|
|
23
22
|
exports.ModalFooter = ModalFooter;
|
|
24
23
|
function Modal({ size, isOpen = false, onClose, overlaybg = "blackAlpha.300", overlaybackdropFilter = "blur(10px) hue-rotate(90deg)", overlaybackdropInvert, overlaybackdropBlur, isCentered, finalFocusRef, blockScrollOnMount, initialFocusRef, closeOnOverlayClick, motionPreset, scrollBehavior, children, isLoading, }) {
|
|
25
|
-
var _a;
|
|
26
|
-
const { colors } = (0, useCustomTheme_1.useCustomTheme)();
|
|
27
24
|
if (!isOpen)
|
|
28
25
|
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
|
29
26
|
const isReactElement = (child) => {
|
|
@@ -32,7 +29,7 @@ function Modal({ size, isOpen = false, onClose, overlaybg = "blackAlpha.300", ov
|
|
|
32
29
|
const header = react_1.default.Children.toArray(children).find((child) => isReactElement(child) && child.type === exports.ModalHeader);
|
|
33
30
|
const body = react_1.default.Children.toArray(children).find((child) => isReactElement(child) && child.type === exports.ModalBody);
|
|
34
31
|
const footer = react_1.default.Children.toArray(children).find((child) => isReactElement(child) && child.type === exports.ModalFooter);
|
|
35
|
-
return ((0, jsx_runtime_1.jsxs)(react_2.Modal, { isOpen: true, onClose: onClose, size: size, isCentered: isCentered, finalFocusRef: finalFocusRef, blockScrollOnMount: blockScrollOnMount, initialFocusRef: initialFocusRef, closeOnOverlayClick: closeOnOverlayClick, motionPreset: motionPreset, scrollBehavior: scrollBehavior, children: [(0, jsx_runtime_1.jsx)(react_2.ModalOverlay, { bg: overlaybg, backdropFilter: overlaybackdropFilter, backdropInvert: overlaybackdropInvert, backdropBlur: overlaybackdropBlur }), (0, jsx_runtime_1.jsx)(react_2.ModalContent, {
|
|
32
|
+
return ((0, jsx_runtime_1.jsxs)(react_2.Modal, { isOpen: true, onClose: onClose, size: size, isCentered: isCentered, finalFocusRef: finalFocusRef, blockScrollOnMount: blockScrollOnMount, initialFocusRef: initialFocusRef, closeOnOverlayClick: closeOnOverlayClick, motionPreset: motionPreset, scrollBehavior: scrollBehavior, children: [(0, jsx_runtime_1.jsx)(react_2.ModalOverlay, { bg: overlaybg, backdropFilter: overlaybackdropFilter, backdropInvert: overlaybackdropInvert, backdropBlur: overlaybackdropBlur }), (0, jsx_runtime_1.jsx)(react_2.ModalContent, { children: isLoading ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
36
33
|
display: "flex",
|
|
37
34
|
justifyContent: "center",
|
|
38
35
|
alignItems: "center",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationBar.d.ts","sourceRoot":"","sources":["../../../src/Components/NavigationBar/NavigationBar.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAa,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"NavigationBar.d.ts","sourceRoot":"","sources":["../../../src/Components/NavigationBar/NavigationBar.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAa,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAW9D,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC9B,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,kBAA0B,GAC1B,EAAE,WAAW,2CA+Kb"}
|
|
@@ -5,9 +5,10 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("@chakra-ui/react");
|
|
6
6
|
const useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
7
7
|
const accentText_1 = require("../../Theme/tokens/builders/accentText");
|
|
8
|
+
const outlineRung_1 = require("../../Theme/tokens/builders/outlineRung");
|
|
8
9
|
const lucide_react_1 = require("lucide-react");
|
|
9
10
|
function NavBar({ userAvathar, userName, userRole, navMenu, moreIcon, handleNavOnClick, handleLogout, logoutText, navigationBarText, sideBarToggole, onSideBarToggole, forceSideBarToggle = false, }) {
|
|
10
|
-
var _a, _b, _c, _d, _e;
|
|
11
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
11
12
|
const theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
12
13
|
// Shared rounded pill affordance for the bar's icon controls.
|
|
13
14
|
const iconButtonStyle = {
|
|
@@ -20,6 +21,9 @@ function NavBar({ userAvathar, userName, userRole, navMenu, moreIcon, handleNavO
|
|
|
20
21
|
transition: "background 0.15s",
|
|
21
22
|
_hover: { bg: "blackAlpha.50" },
|
|
22
23
|
};
|
|
24
|
+
// For a near-neutral brand (e.g. zinc), `primary[50]` is itself a pale near-white tint — on
|
|
25
|
+
// the menu's own near-white surface that measured as low as ~1.02:1, an invisible hover.
|
|
26
|
+
const menuHoverBg = (0, outlineRung_1.resolveHoverTint)(theme.colors.primary[50], (_d = (_b = (_a = theme.colors.backgroundColor) === null || _a === void 0 ? void 0 : _a.light) !== null && _b !== void 0 ? _b : (_c = theme.colors.background) === null || _c === void 0 ? void 0 : _c[50]) !== null && _d !== void 0 ? _d : "#ffffff");
|
|
23
27
|
// Light elevated pill item.
|
|
24
28
|
const menuItemStyle = {
|
|
25
29
|
bg: "transparent",
|
|
@@ -32,16 +36,16 @@ function NavBar({ userAvathar, userName, userRole, navMenu, moreIcon, handleNavO
|
|
|
32
36
|
color: "gray.700",
|
|
33
37
|
gap: theme.space["2"],
|
|
34
38
|
transition: "background 0.12s",
|
|
35
|
-
_hover: { bg:
|
|
36
|
-
_focus: { bg:
|
|
37
|
-
_active: { bg:
|
|
39
|
+
_hover: { bg: menuHoverBg, color: theme.colors.primary[700] },
|
|
40
|
+
_focus: { bg: menuHoverBg, color: theme.colors.primary[700] },
|
|
41
|
+
_active: { bg: menuHoverBg, color: theme.colors.primary[700] },
|
|
38
42
|
};
|
|
39
|
-
return ((0, jsx_runtime_1.jsx)(react_1.Box, { bg: theme.colors.backgroundColor.light, px: 4, borderBottom: "1px solid", borderColor: "blackAlpha.100", children: (0, jsx_runtime_1.jsxs)(react_1.Flex, { h: 16, alignItems: "center", justifyContent: "space-between", children: [(0, jsx_runtime_1.jsxs)(react_1.Box, { display: "flex", gap: 1.5, alignItems: "center", children: [(0, jsx_runtime_1.jsx)(react_1.Box, { onClick: () => onSideBarToggole === null || onSideBarToggole === void 0 ? void 0 : onSideBarToggole(), display: forceSideBarToggle ? "flex" : { base: "flex", lg: "none" }, "aria-label": sideBarToggole ? "Close navigation menu" : "Open navigation menu", ...iconButtonStyle, children: sideBarToggole ? ((0, jsx_runtime_1.jsx)(lucide_react_1.PanelLeftClose, { size: "1.25rem" })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.PanelRightClose, { size: "1.25rem" })) }), (navigationBarText === null || navigationBarText === void 0 ? void 0 : navigationBarText.onIconClick) && ((0, jsx_runtime_1.jsx)(react_1.Box, { ...iconButtonStyle, display: "flex", onClick: () => { var _a; return (_a = navigationBarText === null || navigationBarText === void 0 ? void 0 : navigationBarText.onIconClick) === null || _a === void 0 ? void 0 : _a.call(navigationBarText); }, children: (0, jsx_runtime_1.jsx)(lucide_react_1.CircleArrowLeft, { size: "1.25rem", color: (
|
|
43
|
+
return ((0, jsx_runtime_1.jsx)(react_1.Box, { bg: theme.colors.backgroundColor.light, px: 4, borderBottom: "1px solid", borderColor: "blackAlpha.100", children: (0, jsx_runtime_1.jsxs)(react_1.Flex, { h: 16, alignItems: "center", justifyContent: "space-between", children: [(0, jsx_runtime_1.jsxs)(react_1.Box, { display: "flex", gap: 1.5, alignItems: "center", children: [(0, jsx_runtime_1.jsx)(react_1.Box, { onClick: () => onSideBarToggole === null || onSideBarToggole === void 0 ? void 0 : onSideBarToggole(), display: forceSideBarToggle ? "flex" : { base: "flex", lg: "none" }, "aria-label": sideBarToggole ? "Close navigation menu" : "Open navigation menu", ...iconButtonStyle, children: sideBarToggole ? ((0, jsx_runtime_1.jsx)(lucide_react_1.PanelLeftClose, { size: "1.25rem" })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.PanelRightClose, { size: "1.25rem" })) }), (navigationBarText === null || navigationBarText === void 0 ? void 0 : navigationBarText.onIconClick) && ((0, jsx_runtime_1.jsx)(react_1.Box, { ...iconButtonStyle, display: "flex", onClick: () => { var _a; return (_a = navigationBarText === null || navigationBarText === void 0 ? void 0 : navigationBarText.onIconClick) === null || _a === void 0 ? void 0 : _a.call(navigationBarText); }, children: (0, jsx_runtime_1.jsx)(lucide_react_1.CircleArrowLeft, { size: "1.25rem", color: (_f = (_e = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _e === void 0 ? void 0 : _e.text) === null || _f === void 0 ? void 0 : _f[500] }) })), (navigationBarText === null || navigationBarText === void 0 ? void 0 : navigationBarText.text) && ((0, jsx_runtime_1.jsx)(react_1.Text, { color: (0, accentText_1.accentTextOnCanvas)((_g = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _g === void 0 ? void 0 : _g.secondary, (_j = (_h = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _h === void 0 ? void 0 : _h.backgroundColor) === null || _j === void 0 ? void 0 : _j.light), fontSize: "1.25rem", fontWeight: 600, fontFamily: "open-sans, sans-serif", letterSpacing: "-0.013rem", children: navigationBarText === null || navigationBarText === void 0 ? void 0 : navigationBarText.text }))] }), (0, jsx_runtime_1.jsx)(react_1.Flex, { minW: 0, flexShrink: 1, children: (0, jsx_runtime_1.jsxs)(react_1.Stack, { direction: "row", alignItems: "center", spacing: 4, minW: 0, children: [moreIcon && ((0, jsx_runtime_1.jsx)(react_1.Box, { display: "flex", alignItems: "center", minW: 0, children: moreIcon })), (0, jsx_runtime_1.jsxs)(react_1.Menu, { children: [(0, jsx_runtime_1.jsx)(react_1.MenuButton, { as: react_1.Button, rounded: "full", variant: "link", cursor: "pointer", minW: 0, flexShrink: 0, children: (0, jsx_runtime_1.jsx)(react_1.Avatar, { size: "sm", name: userName, src: userAvathar }) }), (0, jsx_runtime_1.jsx)(react_1.MenuList, { alignItems: "center", zIndex: 5, p: 0, py: "0.375rem", bg: theme.colors.backgroundColor.light,
|
|
40
44
|
// Chakra's MenuItem renders `background: var(--menu-bg)` at rest; its MenuList
|
|
41
45
|
// baseStyle hardcodes that var to "#fff" (gated behind `_dark`, which this theme-swap
|
|
42
46
|
// app never triggers). The `bg` prop above only recolors the list itself, not the
|
|
43
47
|
// inherited var, so items fall back to white until hover/focus — set the var too.
|
|
44
|
-
sx: { "--menu-bg": theme.colors.backgroundColor.light }, border: "1px solid", borderColor: "blackAlpha.100", borderRadius: "0.75rem", boxShadow: "lg", color:
|
|
48
|
+
sx: { "--menu-bg": theme.colors.backgroundColor.light }, border: "1px solid", borderColor: "blackAlpha.100", borderRadius: "0.75rem", boxShadow: "lg", color: theme.colors.text[900], overflow: "hidden", children: (0, jsx_runtime_1.jsxs)(react_1.Box, { display: "flex", flexDirection: "column", maxH: "90vh", children: [(0, jsx_runtime_1.jsx)(react_1.Center, { pt: 4, pb: 2, children: (0, jsx_runtime_1.jsx)(react_1.Avatar, { size: "xl", name: userName, src: userAvathar }) }), (0, jsx_runtime_1.jsxs)(react_1.Center, { flexDirection: "column", gap: "0.125rem", pb: 2, px: 4, children: [(0, jsx_runtime_1.jsx)(react_1.Text, { fontWeight: 600, fontSize: "14px", color: theme.colors.text[900], isTruncated: true, maxW: "100%", children: userName }), userRole && ((0, jsx_runtime_1.jsx)(react_1.Text, { fontSize: "11px", color: theme.colors.text[500], isTruncated: true, maxW: "100%", children: userRole }))] }), (0, jsx_runtime_1.jsx)(react_1.MenuDivider, { borderColor: "blackAlpha.100" }), (0, jsx_runtime_1.jsx)(react_1.Box, { flex: 1, overflowY: "auto", children: navMenu === null || navMenu === void 0 ? void 0 : navMenu.map((menu, idx) => {
|
|
45
49
|
var _a, _b, _c;
|
|
46
50
|
return ((0, jsx_runtime_1.jsxs)(react_1.MenuItem, { onClick: () => handleNavOnClick(menu.url), sx: menuItemStyle, children: [menu.icon && ((0, jsx_runtime_1.jsx)(react_1.Box, { display: "flex", alignItems: "center", flexShrink: 0, sx: { "& svg": { width: "16px", height: "16px" } }, children: menu === null || menu === void 0 ? void 0 : menu.icon })), (0, jsx_runtime_1.jsx)(react_1.Box, { children: menu.title })] }, `${String((_c = (_b = (_a = menu.id) !== null && _a !== void 0 ? _a : menu.url) !== null && _b !== void 0 ? _b : menu.title) !== null && _c !== void 0 ? _c : idx)}-${idx}`));
|
|
47
51
|
}) }), (0, jsx_runtime_1.jsx)(react_1.MenuDivider, { borderColor: "blackAlpha.100" }), (0, jsx_runtime_1.jsxs)(react_1.MenuItem, { onClick: handleLogout, sx: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrgSwitcher.d.ts","sourceRoot":"","sources":["../../../src/Components/OrgSwitcher/OrgSwitcher.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"OrgSwitcher.d.ts","sourceRoot":"","sources":["../../../src/Components/OrgSwitcher/OrgSwitcher.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAoBzD,OAAO,EAGL,gBAAgB,EAGjB,MAAM,oBAAoB,CAAC;AAkD5B,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA4N3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -5,6 +5,8 @@ const react_1 = require("react");
|
|
|
5
5
|
const react_2 = require("@chakra-ui/react");
|
|
6
6
|
const lucide_react_1 = require("lucide-react");
|
|
7
7
|
const useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
8
|
+
const accentText_1 = require("../../Theme/tokens/builders/accentText");
|
|
9
|
+
const outlineRung_1 = require("../../Theme/tokens/builders/outlineRung");
|
|
8
10
|
const OrgSwitcherProps_1 = require("./OrgSwitcherProps");
|
|
9
11
|
const sizeMap = {
|
|
10
12
|
sm: { h: "32px", avatar: "22px", font: "0.8rem", sub: "0.65rem", px: 2 },
|
|
@@ -15,7 +17,12 @@ const Avatar = ({ org, boxSize, fontSize, }) => {
|
|
|
15
17
|
if (org.logoUrl) {
|
|
16
18
|
return ((0, jsx_runtime_1.jsx)(react_2.Image, { src: org.logoUrl, alt: org.name, boxSize: boxSize, borderRadius: "8px", objectFit: "cover", flexShrink: 0 }));
|
|
17
19
|
}
|
|
18
|
-
|
|
20
|
+
// `AVATAR_COLORS` is a fixed 8-swatch palette hashed from the org name (not theme-derived, so
|
|
21
|
+
// it can't lean on a per-brand text rung). Two of the eight — amber `#F59E0B`, teal `#14B8A6` —
|
|
22
|
+
// measure 2.15:1 / 2.49:1 against hardcoded white, well under AA. `onFilled` is provably >=4.5
|
|
23
|
+
// against ANY fill, so it's the correct ink for an arbitrary, theme-independent swatch.
|
|
24
|
+
const fill = (0, OrgSwitcherProps_1.avatarColor)(org.name);
|
|
25
|
+
return ((0, jsx_runtime_1.jsx)(react_2.Flex, { align: "center", justify: "center", boxSize: boxSize, borderRadius: "8px", flexShrink: 0, bg: fill, color: (0, accentText_1.onFilled)(fill, "#ffffff", "#000000"), fontSize: fontSize, fontWeight: 700, children: (0, OrgSwitcherProps_1.orgInitial)(org.name) }));
|
|
19
26
|
};
|
|
20
27
|
const OrgSwitcher = ({ organizations, value, onChange, isLoading = false, isSearchable, searchThreshold = 6, triggerVariant = "ghost", size = "md", maxWidth = "200px", menuMinWidth = "280px", placeholder = "Select organization", ariaLabel = "Switch organization", showRole = true, }) => {
|
|
21
28
|
var _a, _b, _c;
|
|
@@ -40,6 +47,11 @@ const OrgSwitcher = ({ organizations, value, onChange, isLoading = false, isSear
|
|
|
40
47
|
: triggerVariant === "subtle"
|
|
41
48
|
? { bg: theme.colors.gray[50] }
|
|
42
49
|
: { bg: "transparent" };
|
|
50
|
+
// `gray[100]` hover on a "transparent" trigger reads against whatever's actually behind it —
|
|
51
|
+
// this control lives in a navbar-like shell, so `backgroundColor.light` is that surface. For a
|
|
52
|
+
// near-neutral brand (zinc) the two measured near-1.0: an invisible hover, same bug shape as
|
|
53
|
+
// NavigationBar's menu items.
|
|
54
|
+
const triggerHoverBg = (0, outlineRung_1.resolveHoverTint)(theme.colors.gray[100], theme.colors.backgroundColor.light);
|
|
43
55
|
const handleSelect = (org) => {
|
|
44
56
|
onClose();
|
|
45
57
|
setQuery("");
|
|
@@ -49,14 +61,21 @@ const OrgSwitcher = ({ organizations, value, onChange, isLoading = false, isSear
|
|
|
49
61
|
return ((0, jsx_runtime_1.jsxs)(react_2.Popover, { isOpen: isOpen, onOpen: onOpen, onClose: () => {
|
|
50
62
|
onClose();
|
|
51
63
|
setQuery("");
|
|
52
|
-
}, placement: "bottom-start", initialFocusRef: showSearch ? searchRef : undefined, isLazy: true, children: [(0, jsx_runtime_1.jsx)(react_2.PopoverTrigger, { children: (0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", "aria-label": ariaLabel, align: "center", gap: s.px === 2 ? "8px" : "10px", h: s.h, px: s.px, borderRadius: "10px", cursor: isLoading ? "default" : "pointer", opacity: isLoading ? 0.6 : 1, pointerEvents: isLoading ? "none" : "auto", transition: "background 0.15s ease", _hover: { bg: triggerVariant === "ghost" ?
|
|
64
|
+
}, placement: "bottom-start", initialFocusRef: showSearch ? searchRef : undefined, isLazy: true, children: [(0, jsx_runtime_1.jsx)(react_2.PopoverTrigger, { children: (0, jsx_runtime_1.jsxs)(react_2.Flex, { as: "button", type: "button", "aria-label": ariaLabel, align: "center", gap: s.px === 2 ? "8px" : "10px", h: s.h, px: s.px, borderRadius: "10px", cursor: isLoading ? "default" : "pointer", opacity: isLoading ? 0.6 : 1, pointerEvents: isLoading ? "none" : "auto", transition: "background 0.15s ease", _hover: { bg: triggerVariant === "ghost" ? triggerHoverBg : undefined }, ...triggerStyles, children: [selected ? ((0, jsx_runtime_1.jsx)(Avatar, { org: selected, boxSize: s.avatar, fontSize: s.sub })) : ((0, jsx_runtime_1.jsx)(react_2.Flex, { align: "center", justify: "center", boxSize: s.avatar, borderRadius: "8px", bg: theme.colors.gray[100], color: theme.colors.gray[400], flexShrink: 0, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Building2, { size: 14 }) })), (0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.font, fontWeight: 600, color: theme.colors.gray[700], maxW: maxWidth, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", textAlign: "left", children: (_c = selected === null || selected === void 0 ? void 0 : selected.name) !== null && _c !== void 0 ? _c : placeholder }), isLoading ? ((0, jsx_runtime_1.jsx)(react_2.Spinner, { size: "xs", thickness: "1.5px", color: theme.colors.primary[500], flexShrink: 0 })) : ((0, jsx_runtime_1.jsx)(react_2.Box, { as: lucide_react_1.ChevronsUpDown, size: 16, color: theme.colors.gray[400], flexShrink: 0 }))] }) }), (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { minW: menuMinWidth, w: "auto",
|
|
53
65
|
// Chakra's PopoverContent baseStyle defaults bg to var(--popper-bg), which is hardcoded
|
|
54
66
|
// to colors.white and only repointed under Chakra's own `_dark` — dead code here since
|
|
55
67
|
// this app toggles dark mode by swapping the palette, not Chakra's colorMode. Without an
|
|
56
68
|
// explicit bg the panel always rendered white regardless of the active theme.
|
|
57
69
|
bg: theme.colors.backgroundColor.light, borderRadius: "12px", overflow: "hidden", boxShadow: `0 10px 30px ${theme.colors.boxShadow.default}`, _focus: { outline: "none", boxShadow: `0 10px 30px ${theme.colors.boxShadow.default}` }, children: (0, jsx_runtime_1.jsxs)(react_2.PopoverBody, { p: 0, children: [showSearch && ((0, jsx_runtime_1.jsx)(react_2.Box, { p: 2, borderBottom: "1px solid", borderColor: theme.colors.gray[100], children: (0, jsx_runtime_1.jsxs)(react_2.InputGroup, { size: "sm", children: [(0, jsx_runtime_1.jsx)(react_2.InputLeftElement, { pointerEvents: "none", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Search, { size: 15, color: theme.colors.gray[400] }) }), (0, jsx_runtime_1.jsx)(react_2.Input, { ref: searchRef, placeholder: "Search organizations", value: query, onChange: (e) => setQuery(e.target.value), borderRadius: "8px" })] }) })), (0, jsx_runtime_1.jsxs)(react_2.Box, { maxH: "320px", overflowY: "auto", py: 1, children: [filtered.map((org) => {
|
|
58
70
|
const isActive = org.id === value;
|
|
59
|
-
|
|
71
|
+
// Active row's hover repeated its own resting `primary[50]` fill — a zero-delta
|
|
72
|
+
// hover, invisible by construction. `resolveHoverTint` walks a fill away from a
|
|
73
|
+
// backdrop until distinguishable, so handing it its own resting bg as the backdrop
|
|
74
|
+
// is enough to make hover read as a real state change on both active and inactive rows.
|
|
75
|
+
const rowHoverBg = isActive
|
|
76
|
+
? (0, outlineRung_1.resolveHoverTint)(theme.colors.primary[50], theme.colors.primary[50])
|
|
77
|
+
: (0, outlineRung_1.resolveHoverTint)(theme.colors.gray[50], theme.colors.backgroundColor.light);
|
|
78
|
+
return ((0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "10px", px: 3, py: 2, cursor: "pointer", bg: isActive ? theme.colors.primary[50] : "transparent", transition: "background 0.12s ease", _hover: { bg: rowHoverBg }, onClick: () => handleSelect(org), children: [(0, jsx_runtime_1.jsx)(Avatar, { org: org, boxSize: s.avatar, fontSize: s.sub }), (0, jsx_runtime_1.jsxs)(react_2.Box, { flex: "1", minW: 0, children: [(0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.font, fontWeight: isActive ? 600 : 500, color: theme.colors.text[900], overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", children: org.name }), showRole && org.role && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: s.sub, color: theme.colors.text[500], overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", children: org.role }))] }), isActive && ((0, jsx_runtime_1.jsx)(react_2.Box, { as: lucide_react_1.Check, size: 16, color: theme.colors.primary[500], flexShrink: 0 }))] }, org.id));
|
|
60
79
|
}), filtered.length === 0 && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "sm", color: theme.colors.gray[500], textAlign: "center", py: 6, children: "No organizations found" }))] })] }) })] }));
|
|
61
80
|
};
|
|
62
81
|
exports.default = OrgSwitcher;
|
|
@@ -35,8 +35,16 @@ export interface OrgSwitcherProps {
|
|
|
35
35
|
/** Show the role subtitle inside the dropdown rows. Default true. */
|
|
36
36
|
showRole?: boolean;
|
|
37
37
|
}
|
|
38
|
+
export declare const AVATAR_COLORS: string[];
|
|
38
39
|
/** Deterministically pick an avatar color from an org name. */
|
|
39
40
|
export declare const avatarColor: (seed: string) => string;
|
|
40
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* Fallback-avatar initials, up to 2 characters. A single letter reads well for one
|
|
43
|
+
* org but collides constantly across a real list — two orgs both starting with
|
|
44
|
+
* "P" render the identical circle, distinguishable only by the hashed color.
|
|
45
|
+
* A multi-word name takes one letter each word ("pixelize default" -> "PD"); a
|
|
46
|
+
* single word takes its own first two letters ("Default1" -> "DE") so a
|
|
47
|
+
* one-word org still gets a distinct-looking mark instead of falling back to one.
|
|
48
|
+
*/
|
|
41
49
|
export declare const orgInitial: (name: string) => string;
|
|
42
50
|
//# sourceMappingURL=OrgSwitcherProps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrgSwitcherProps.d.ts","sourceRoot":"","sources":["../../../src/Components/OrgSwitcher/OrgSwitcherProps.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,qDAAqD;IACrD,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;IACxD,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChD,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"OrgSwitcherProps.d.ts","sourceRoot":"","sources":["../../../src/Components/OrgSwitcher/OrgSwitcherProps.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,qDAAqD;IACrD,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;IACxD,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChD,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,UASzB,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAM1C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAKzC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.orgInitial = exports.avatarColor = void 0;
|
|
4
|
-
|
|
3
|
+
exports.orgInitial = exports.avatarColor = exports.AVATAR_COLORS = void 0;
|
|
4
|
+
exports.AVATAR_COLORS = [
|
|
5
5
|
"#6366F1",
|
|
6
6
|
"#0EA5E9",
|
|
7
7
|
"#10B981",
|
|
@@ -17,9 +17,23 @@ const avatarColor = (seed) => {
|
|
|
17
17
|
for (let i = 0; i < seed.length; i += 1) {
|
|
18
18
|
hash = seed.charCodeAt(i) + ((hash << 5) - hash);
|
|
19
19
|
}
|
|
20
|
-
return AVATAR_COLORS[Math.abs(hash) % AVATAR_COLORS.length];
|
|
20
|
+
return exports.AVATAR_COLORS[Math.abs(hash) % exports.AVATAR_COLORS.length];
|
|
21
21
|
};
|
|
22
22
|
exports.avatarColor = avatarColor;
|
|
23
|
-
/**
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Fallback-avatar initials, up to 2 characters. A single letter reads well for one
|
|
25
|
+
* org but collides constantly across a real list — two orgs both starting with
|
|
26
|
+
* "P" render the identical circle, distinguishable only by the hashed color.
|
|
27
|
+
* A multi-word name takes one letter each word ("pixelize default" -> "PD"); a
|
|
28
|
+
* single word takes its own first two letters ("Default1" -> "DE") so a
|
|
29
|
+
* one-word org still gets a distinct-looking mark instead of falling back to one.
|
|
30
|
+
*/
|
|
31
|
+
const orgInitial = (name) => {
|
|
32
|
+
const words = (name !== null && name !== void 0 ? name : "").trim().split(/\s+/).filter(Boolean);
|
|
33
|
+
if (words.length === 0)
|
|
34
|
+
return "?";
|
|
35
|
+
if (words.length === 1)
|
|
36
|
+
return words[0].slice(0, 2).toUpperCase();
|
|
37
|
+
return (words[0][0] + words[1][0]).toUpperCase();
|
|
38
|
+
};
|
|
25
39
|
exports.orgInitial = orgInitial;
|
|
@@ -31,28 +31,30 @@ const CreateOrgModal = ({ isOpen, onClose, isLoading, onSubmit, labels, }) => {
|
|
|
31
31
|
setErrors((prev) => ({ ...prev, [key]: undefined }));
|
|
32
32
|
};
|
|
33
33
|
const validate = () => {
|
|
34
|
+
var _a, _b;
|
|
34
35
|
const next = {};
|
|
35
36
|
if (!values.company_name.trim())
|
|
36
37
|
next.company_name = labels.requiredField;
|
|
37
38
|
if (!values.company_address.trim())
|
|
38
39
|
next.company_address = labels.requiredField;
|
|
39
|
-
const digits = values.phone.replace(/\D/g, "");
|
|
40
|
-
if (!values.phone.trim()) {
|
|
40
|
+
const digits = (_a = values === null || values === void 0 ? void 0 : values.phone) === null || _a === void 0 ? void 0 : _a.replace(/\D/g, "");
|
|
41
|
+
if (!((_b = values === null || values === void 0 ? void 0 : values.phone) === null || _b === void 0 ? void 0 : _b.trim())) {
|
|
41
42
|
next.phone = labels.requiredField;
|
|
42
43
|
}
|
|
43
|
-
else if (digits.length < 8) {
|
|
44
|
+
else if (digits && (digits === null || digits === void 0 ? void 0 : digits.length) < 8) {
|
|
44
45
|
next.phone = labels.invalidPhone;
|
|
45
46
|
}
|
|
46
47
|
setErrors(next);
|
|
47
48
|
return Object.keys(next).length === 0;
|
|
48
49
|
};
|
|
49
50
|
const handleSubmit = () => {
|
|
51
|
+
var _a;
|
|
50
52
|
if (!validate())
|
|
51
53
|
return;
|
|
52
54
|
onSubmit({
|
|
53
55
|
company_name: values.company_name.trim(),
|
|
54
56
|
company_address: values.company_address.trim(),
|
|
55
|
-
phone: values.phone.trim(),
|
|
57
|
+
phone: (_a = values === null || values === void 0 ? void 0 : values.phone) === null || _a === void 0 ? void 0 : _a.trim(),
|
|
56
58
|
});
|
|
57
59
|
};
|
|
58
60
|
return ((0, jsx_runtime_1.jsxs)(react_2.Modal, { isOpen: isOpen, onClose: onClose, isCentered: true, autoFocus: false, children: [(0, jsx_runtime_1.jsx)(react_2.ModalOverlay, { backdropFilter: "blur(4px)" }), (0, jsx_runtime_1.jsxs)(react_2.ModalContent, { bg: colors.background[50], borderRadius: "2xl", overflow: "hidden", children: [(0, jsx_runtime_1.jsx)(react_2.ModalHeader, { borderBottom: "1px solid", borderColor: (_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], fontSize: "1.05rem", fontWeight: 600, children: labels.createOrganization }), (0, jsx_runtime_1.jsx)(react_2.ModalCloseButton, {}), (0, jsx_runtime_1.jsxs)(react_2.ModalBody, { py: 6, children: [(0, jsx_runtime_1.jsxs)(react_2.VStack, { spacing: 4, align: "stretch", children: [(0, jsx_runtime_1.jsx)(TextInput_1.default, { label: labels.companyName, value: values.company_name, onChange: (e) => setField("company_name", e.target.value), isRequired: true, width: "100%", placeholder: "Enter Company Name", error: !!errors.company_name, errorMessage: errors.company_name }), (0, jsx_runtime_1.jsx)(TextInput_1.default, { label: labels.companyAddress, value: values.company_address, onChange: (e) => setField("company_address", e.target.value), isRequired: true, width: "100%", placeholder: "Enter Company Address", error: !!errors.company_address, errorMessage: errors.company_address }), (0, jsx_runtime_1.jsx)(TextInput_1.default, { label: labels.phone, value: values.phone, onChange: (e) => setField("phone", e.target.value), isRequired: true, width: "100%", placeholder: "Enter Phone Number", error: !!errors.phone, errorMessage: errors.phone })] }), (0, jsx_runtime_1.jsxs)(react_2.HStack, { justifyContent: "center", spacing: 4, mt: 6, children: [(0, jsx_runtime_1.jsx)(Button_1.default, { label: labels.cancel, onClick: onClose, variant: "outline", colorScheme: "red", size: "sm" }), (0, jsx_runtime_1.jsx)(Button_1.default, { label: labels.submit, onClick: handleSubmit, colorScheme: "primary", size: "sm", isLoading: isLoading })] })] })] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationDetails.d.ts","sourceRoot":"","sources":["../../../src/Components/OrganizationDetails/OrganizationDetails.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"OrganizationDetails.d.ts","sourceRoot":"","sources":["../../../src/Components/OrganizationDetails/OrganizationDetails.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAsCjD,OAAO,EAEL,wBAAwB,EAEzB,MAAM,4BAA4B,CAAC;AAyCpC,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA+hB3D,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -10,6 +10,7 @@ const lucide_react_1 = require("lucide-react");
|
|
|
10
10
|
const useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
11
11
|
const Button_1 = __importDefault(require("../Button/Button"));
|
|
12
12
|
const EmptyState_1 = __importDefault(require("../EmptyState/EmptyState"));
|
|
13
|
+
const Tag_1 = __importDefault(require("../Tag/Tag"));
|
|
13
14
|
const CreateOrgModal_1 = __importDefault(require("./CreateOrgModal"));
|
|
14
15
|
const DeleteOrgModal_1 = __importDefault(require("./DeleteOrgModal"));
|
|
15
16
|
const DEFAULT_LABELS = {
|
|
@@ -23,6 +24,7 @@ const DEFAULT_LABELS = {
|
|
|
23
24
|
setAsDefault: "Set as Default",
|
|
24
25
|
settingDefault: "Setting...",
|
|
25
26
|
default: "Default",
|
|
27
|
+
owner: "Owner",
|
|
26
28
|
pending: "Pending",
|
|
27
29
|
accept: "Accept",
|
|
28
30
|
accepting: "Accepting...",
|
|
@@ -30,6 +32,10 @@ const DEFAULT_LABELS = {
|
|
|
30
32
|
deleteOrganization: "Delete Organization",
|
|
31
33
|
protectedOrganization: "Protected organization",
|
|
32
34
|
delete: "Delete",
|
|
35
|
+
editOrganization: "Edit organization name",
|
|
36
|
+
save: "Save",
|
|
37
|
+
saving: "Saving...",
|
|
38
|
+
emptyNameError: "Organization name cannot be empty",
|
|
33
39
|
noOrganizationsTitle: "No organizations found",
|
|
34
40
|
noOrganizationsDescription: "Get started by creating your first organization or wait for an invitation",
|
|
35
41
|
companyName: "Company Name",
|
|
@@ -44,12 +50,16 @@ const DEFAULT_LABELS = {
|
|
|
44
50
|
copyright: "Pixelize Corp. All rights reserved.",
|
|
45
51
|
termsOfService: "Terms of Service",
|
|
46
52
|
};
|
|
47
|
-
const OrganizationDetails = ({ activeOrganizations, invitedOrganizations, isLoading = false, switchingOrgIds = [], respondingOrgIds = [], isCreating = false, userName, userAvatarUrl, onSetDefault, onAcceptInvite, onDeclineInvite, onDeleteOrganization, onCreateOrganization, onBack, footerSlot, labels: labelOverrides, }) => {
|
|
53
|
+
const OrganizationDetails = ({ activeOrganizations, invitedOrganizations, isLoading = false, switchingOrgIds = [], respondingOrgIds = [], editingOrgIds = [], isCreating = false, userName, userAvatarUrl, onSetDefault, onAcceptInvite, onDeclineInvite, onDeleteOrganization, onDeleteRequest, onCreateOrganization, onEditOrganization, onBack, footerSlot, labels: labelOverrides, }) => {
|
|
48
54
|
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
55
|
const { colors } = (0, useCustomTheme_1.useCustomTheme)();
|
|
50
56
|
const labels = (0, react_1.useMemo)(() => ({ ...DEFAULT_LABELS, ...labelOverrides }), [labelOverrides]);
|
|
51
57
|
const [isCreateOpen, setCreateOpen] = (0, react_1.useState)(false);
|
|
52
58
|
const [deleteOrgId, setDeleteOrgId] = (0, react_1.useState)(null);
|
|
59
|
+
// --- Inline "edit organization name" state ---
|
|
60
|
+
const [editingOrgId, setEditingOrgId] = (0, react_1.useState)(null);
|
|
61
|
+
const [editValue, setEditValue] = (0, react_1.useState)("");
|
|
62
|
+
const [editError, setEditError] = (0, react_1.useState)("");
|
|
53
63
|
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
64
|
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
65
|
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 +78,63 @@ const OrganizationDetails = ({ activeOrganizations, invitedOrganizations, isLoad
|
|
|
68
78
|
boxShadow: "0 1px 2px rgba(16,24,40,0.05)",
|
|
69
79
|
};
|
|
70
80
|
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 }));
|
|
81
|
+
const startEditing = (item) => {
|
|
82
|
+
setEditingOrgId(item.orgId);
|
|
83
|
+
setEditValue(item.company_name);
|
|
84
|
+
setEditError("");
|
|
85
|
+
};
|
|
86
|
+
const cancelEditing = () => {
|
|
87
|
+
setEditingOrgId(null);
|
|
88
|
+
setEditValue("");
|
|
89
|
+
setEditError("");
|
|
90
|
+
};
|
|
91
|
+
const submitEditing = async (item) => {
|
|
92
|
+
const trimmed = editValue.trim();
|
|
93
|
+
if (!trimmed) {
|
|
94
|
+
setEditError(labels.emptyNameError);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (trimmed === item.company_name) {
|
|
98
|
+
cancelEditing();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
await (onEditOrganization === null || onEditOrganization === void 0 ? void 0 : onEditOrganization(item.orgId, trimmed));
|
|
102
|
+
setEditingOrgId(null);
|
|
103
|
+
setEditValue("");
|
|
104
|
+
setEditError("");
|
|
105
|
+
};
|
|
71
106
|
const renderActiveCard = (item) => {
|
|
72
|
-
var _a, _b, _c, _d, _e, _f;
|
|
107
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
73
108
|
const isSwitching = switchingOrgIds.includes(item.orgId);
|
|
74
|
-
|
|
109
|
+
// Role name is a display value, not a permission — apps pass the real rule.
|
|
110
|
+
const canEdit = (_a = item.canRename) !== null && _a !== void 0 ? _a : item.roleName === "Super Admin";
|
|
111
|
+
const canProtect = !((_b = item.canDelete) !== null && _b !== void 0 ? _b : item.roleName === "Super Admin");
|
|
112
|
+
const isProtected = item.defaultOrg === 1 || canProtect;
|
|
113
|
+
const isEditingThis = canEdit && editingOrgId === item.orgId;
|
|
114
|
+
const isSavingThis = editingOrgIds.includes(item.orgId);
|
|
115
|
+
const roleLabel = (_c = item.roleName) === null || _c === void 0 ? void 0 : _c.trim();
|
|
116
|
+
const deleteButton = ((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: (_e = (_d = colors === null || colors === void 0 ? void 0 : colors.red) === null || _d === void 0 ? void 0 : _d[50]) !== null && _e !== void 0 ? _e : "#FEF2F2",
|
|
118
|
+
color: (_g = (_f = colors === null || colors === void 0 ? void 0 : colors.red) === null || _f === void 0 ? void 0 : _f[600]) !== null && _g !== void 0 ? _g : "#DC2626",
|
|
119
|
+
}, onClick: () => onDeleteRequest
|
|
120
|
+
? onDeleteRequest(item.orgId)
|
|
121
|
+
: setDeleteOrgId(item.orgId) }));
|
|
75
122
|
return ((0, jsx_runtime_1.jsxs)(react_2.Box, { ...cardSx, p: 3, position: "relative", transition: "all 0.2s ease", _hover: {
|
|
76
|
-
borderColor: (
|
|
123
|
+
borderColor: (_j = (_h = colors === null || colors === void 0 ? void 0 : colors.primary) === null || _h === void 0 ? void 0 : _h[300]) !== null && _j !== void 0 ? _j : "#A5B4FC",
|
|
77
124
|
boxShadow: "0 8px 24px rgba(16,24,40,0.10)",
|
|
78
125
|
transform: "translateY(-3px)",
|
|
79
|
-
}, children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { justifyContent: "space-between", alignItems: "
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
126
|
+
}, 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 })] })), canEdit && ((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
|
|
127
|
+
? ((_k = item.deleteDisabledReason) !== null && _k !== void 0 ? _k : labels.protectedOrganization)
|
|
128
|
+
: labels.deleteOrganization, hasArrow: true, children: isProtected ? ((0, jsx_runtime_1.jsx)(react_2.Box, { as: "span", display: "inline-flex", children: deleteButton })) : (deleteButton) })] })] }), 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) => {
|
|
129
|
+
setEditValue(e.target.value);
|
|
130
|
+
if (editError)
|
|
131
|
+
setEditError("");
|
|
132
|
+
}, size: "sm", fontSize: "sm", fontWeight: 700, autoFocus: true, isDisabled: isSavingThis, onKeyDown: (e) => {
|
|
133
|
+
if (e.key === "Enter")
|
|
134
|
+
submitEditing(item);
|
|
135
|
+
if (e.key === "Escape")
|
|
136
|
+
cancelEditing();
|
|
137
|
+
} }), (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), variant: "ghost" }), (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: (_m = (_l = colors === null || colors === void 0 ? void 0 : colors.red) === null || _l === void 0 ? void 0 : _l[600]) !== null && _m !== void 0 ? _m : "#DC2626", mt: 1, children: editError }))] })) : ((0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "sm", fontWeight: 700, color: heading, noOfLines: 1, children: item.company_name }), (item.isOwner || roleLabel) && ((0, jsx_runtime_1.jsxs)(react_2.HStack, { spacing: 1, mt: 1, children: [item.isOwner && ((0, jsx_runtime_1.jsx)(Tag_1.default, { label: labels.owner, icon: lucide_react_1.Crown, colorScheme: "primary", variant: "subtle", size: "xs" })), roleLabel && ((0, jsx_runtime_1.jsx)(Tag_1.default, { label: roleLabel, colorScheme: "gray", variant: "subtle", size: "xs" }))] }))] }))] }, item.orgId));
|
|
83
138
|
};
|
|
84
139
|
const renderInvitedCard = (item) => {
|
|
85
140
|
var _a, _b, _c, _d;
|
|
@@ -100,7 +155,9 @@ const OrganizationDetails = ({ activeOrganizations, invitedOrganizations, isLoad
|
|
|
100
155
|
width: "100%",
|
|
101
156
|
};
|
|
102
157
|
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
|
|
158
|
+
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
|
|
159
|
+
? `${labels.greeting.replace(/User!?/, "")}${userName}!`.trim()
|
|
160
|
+
: 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
161
|
await (onCreateOrganization === null || onCreateOrganization === void 0 ? void 0 : onCreateOrganization(values));
|
|
105
162
|
setCreateOpen(false);
|
|
106
163
|
}, labels: labels }), (0, jsx_runtime_1.jsx)(DeleteOrgModal_1.default, { isOpen: deleteOrgId !== null, onClose: () => setDeleteOrgId(null), onConfirm: async () => {
|