@solidxai/core-ui 0.1.8-beta.19 → 0.1.8-beta.20
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/adapters/auth/getSession.d.ts.map +1 -1
- package/dist/adapters/auth/getSession.js +1 -1
- package/dist/adapters/auth/getSession.js.map +1 -1
- package/dist/adapters/auth/getSession.ts +1 -0
- package/dist/adapters/auth/helper.d.ts.map +1 -1
- package/dist/adapters/auth/helper.js +1 -0
- package/dist/adapters/auth/helper.js.map +1 -1
- package/dist/adapters/auth/helper.ts +3 -1
- package/dist/adapters/auth/signIn.d.ts.map +1 -1
- package/dist/adapters/auth/signIn.js +1 -0
- package/dist/adapters/auth/signIn.js.map +1 -1
- package/dist/adapters/auth/signIn.ts +3 -1
- package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts +1 -0
- package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts.map +1 -1
- package/dist/adapters/auth/signInWithOAuthAccessCode.js +10 -9
- package/dist/adapters/auth/signInWithOAuthAccessCode.js.map +1 -1
- package/dist/adapters/auth/signInWithOAuthAccessCode.ts +6 -3
- package/dist/adapters/auth/signOut.d.ts.map +1 -1
- package/dist/adapters/auth/signOut.js +7 -1
- package/dist/adapters/auth/signOut.js.map +1 -1
- package/dist/adapters/auth/signOut.ts +7 -1
- package/dist/adapters/auth/types.d.ts +1 -0
- package/dist/adapters/auth/types.d.ts.map +1 -1
- package/dist/adapters/auth/types.js.map +1 -1
- package/dist/adapters/auth/types.ts +1 -0
- package/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +2 -1
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +2 -1
- package/dist/components/auth/FacebookAuthChecking.d.ts +2 -0
- package/dist/components/auth/FacebookAuthChecking.d.ts.map +1 -0
- package/dist/components/auth/FacebookAuthChecking.js +103 -0
- package/dist/components/auth/FacebookAuthChecking.js.map +1 -0
- package/dist/components/auth/FacebookAuthChecking.tsx +64 -0
- package/dist/components/auth/GoogleAuthChecking.js +0 -1
- package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
- package/dist/components/auth/GoogleAuthChecking.tsx +1 -1
- package/dist/components/auth/MicrosoftAuthChecking.d.ts +2 -0
- package/dist/components/auth/MicrosoftAuthChecking.d.ts.map +1 -0
- package/dist/components/auth/MicrosoftAuthChecking.js +103 -0
- package/dist/components/auth/MicrosoftAuthChecking.js.map +1 -0
- package/dist/components/auth/MicrosoftAuthChecking.tsx +64 -0
- package/dist/components/auth/SolidInitialLoginOtp.js +0 -1
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js +28 -12
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.tsx +26 -11
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +7 -4
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +15 -3
- package/dist/components/auth/SolidRegister.d.ts.map +1 -1
- package/dist/components/auth/SolidRegister.js +48 -17
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +87 -30
- package/dist/components/common/AuthBanner.js.map +1 -1
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +228 -146
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +1103 -772
- package/dist/components/common/SettingsComponent.d.ts +2 -0
- package/dist/components/common/SettingsComponent.d.ts.map +1 -0
- package/dist/components/common/SettingsComponent.js +351 -0
- package/dist/components/common/SettingsComponent.js.map +1 -0
- package/dist/components/common/SettingsComponent.module.css +421 -0
- package/dist/components/common/SettingsComponent.tsx +582 -0
- package/dist/components/common/SocialMediaLogin.d.ts +8 -1
- package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
- package/dist/components/common/SocialMediaLogin.js +6 -13
- package/dist/components/common/SocialMediaLogin.js.map +1 -1
- package/dist/components/common/SocialMediaLogin.tsx +120 -58
- package/dist/components/common/SolidExport.d.ts.map +1 -1
- package/dist/components/common/SolidExport.js +1 -1
- package/dist/components/common/SolidExport.js.map +1 -1
- package/dist/components/common/SolidExport.tsx +2 -1
- package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
- package/dist/components/common/SolidFormStepper.js +2 -1
- package/dist/components/common/SolidFormStepper.js.map +1 -1
- package/dist/components/common/SolidFormStepper.tsx +2 -1
- package/dist/components/common/solid-export.css +26 -0
- package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardView.js +24 -25
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +22 -27
- package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.tsx +1 -1
- package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatter.js +39 -9
- package/dist/components/core/chatter/SolidChatter.js.map +1 -1
- package/dist/components/core/chatter/SolidChatter.tsx +42 -7
- package/dist/components/core/chatter/SolidChatterAuditMessage.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.js +19 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +22 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +3 -0
- package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.js +68 -4
- package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.tsx +45 -3
- package/dist/components/core/chatter/chatter.module.css +0 -3
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +3 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +3 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +9 -8
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +4 -2
- package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts +3 -0
- package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js +81 -0
- package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.tsx +114 -0
- package/dist/components/core/form/SolidFormActionHeader.d.ts +1 -1
- package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.js +5 -3
- package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.tsx +27 -1
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +67 -27
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +54 -7
- package/dist/components/core/form/fields/SolidComputedField.d.ts +25 -0
- package/dist/components/core/form/fields/SolidComputedField.d.ts.map +1 -0
- package/dist/components/core/form/fields/SolidComputedField.js +128 -0
- package/dist/components/core/form/fields/SolidComputedField.js.map +1 -0
- package/dist/components/core/form/fields/SolidComputedField.tsx +134 -0
- package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js +11 -3
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +13 -4
- package/dist/components/core/kanban/KanbanBoard.js +1 -1
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +1 -1
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +216 -102
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +204 -72
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +1 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +21 -10
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +18 -10
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +3 -6
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +30 -24
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
- package/dist/components/core/list/SolidDataTablePagination.d.ts +15 -0
- package/dist/components/core/list/SolidDataTablePagination.d.ts.map +1 -0
- package/dist/components/core/list/SolidDataTablePagination.js +22 -0
- package/dist/components/core/list/SolidDataTablePagination.js.map +1 -0
- package/dist/components/core/list/SolidDataTablePagination.tsx +71 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +58 -61
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +42 -46
- package/dist/components/core/list/SolidListViewConfigure.js +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +6 -7
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +9 -10
- package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
- package/dist/components/layout/user-profile-menu.js +15 -14
- package/dist/components/layout/user-profile-menu.js.map +1 -1
- package/dist/components/layout/user-profile-menu.tsx +8 -6
- package/dist/components/shad-cn-ui/SolidDialog.d.ts +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.tsx +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -2
- package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.js +3 -4
- package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.tsx +12 -15
- package/dist/components/shad-cn-ui/SolidRichTextEditor.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidRichTextEditor.js +9 -1
- package/dist/components/shad-cn-ui/SolidRichTextEditor.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidRichTextEditor.tsx +8 -1
- package/dist/components/shad-cn-ui/SolidTabs.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidTabs.js +2 -2
- package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidTabs.tsx +12 -1
- package/dist/components/solid-ui/SolidButton.d.ts +14 -0
- package/dist/components/solid-ui/SolidButton.d.ts.map +1 -0
- package/dist/components/solid-ui/SolidButton.js +36 -0
- package/dist/components/solid-ui/SolidButton.js.map +1 -0
- package/dist/components/solid-ui/SolidButton.tsx +54 -0
- package/dist/components/solid-ui/SolidTabs.d.ts +18 -0
- package/dist/components/solid-ui/SolidTabs.d.ts.map +1 -0
- package/dist/components/solid-ui/SolidTabs.js +22 -0
- package/dist/components/solid-ui/SolidTabs.js.map +1 -0
- package/dist/components/solid-ui/SolidTabs.tsx +73 -0
- package/dist/components/solid-ui/index.d.ts +3 -0
- package/dist/components/solid-ui/index.d.ts.map +1 -0
- package/dist/components/solid-ui/index.js +3 -0
- package/dist/components/solid-ui/index.js.map +1 -0
- package/dist/components/solid-ui/index.ts +2 -0
- package/dist/helpers/registry.d.ts +2 -2
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +4 -0
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +5 -3
- package/dist/helpers/settingsPayload.d.ts +32 -0
- package/dist/helpers/settingsPayload.d.ts.map +1 -0
- package/dist/helpers/settingsPayload.js +72 -0
- package/dist/helpers/settingsPayload.js.map +1 -0
- package/dist/helpers/settingsPayload.ts +125 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +4 -0
- package/dist/redux/api/solidChatterMessageApi.d.ts +2 -1
- package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
- package/dist/redux/api/solidChatterMessageApi.js +11 -1
- package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
- package/dist/redux/api/solidChatterMessageApi.ts +10 -1
- package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/resources/globals.css +5 -1
- package/dist/resources/shadcn-base.css +242 -81
- package/dist/resources/solid-responsive.css +22 -4
- package/dist/routes/AppEventListener.js +1 -1
- package/dist/routes/AppEventListener.js.map +1 -1
- package/dist/routes/AppEventListener.tsx +1 -1
- package/dist/routes/pages/admin/core/SettingsPage.js +2 -2
- package/dist/routes/pages/admin/core/SettingsPage.js.map +1 -1
- package/dist/routes/pages/admin/core/SettingsPage.tsx +2 -2
- package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts +2 -0
- package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts.map +1 -0
- package/dist/routes/pages/auth/InitiateFacebookOauthPage.js +6 -0
- package/dist/routes/pages/auth/InitiateFacebookOauthPage.js.map +1 -0
- package/dist/routes/pages/auth/InitiateFacebookOauthPage.tsx +5 -0
- package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts +2 -0
- package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts.map +1 -0
- package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js +6 -0
- package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js.map +1 -0
- package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.tsx +5 -0
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +5 -1
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +5 -1
- package/dist/routes/types.d.ts +1 -1
- package/dist/routes/types.d.ts.map +1 -1
- package/dist/routes/types.js.map +1 -1
- package/dist/routes/types.ts +2 -0
- package/dist/types/extension-registry.d.ts +1 -0
- package/dist/types/extension-registry.d.ts.map +1 -1
- package/dist/types/extension-registry.js +1 -0
- package/dist/types/extension-registry.js.map +1 -1
- package/dist/types/extension-registry.ts +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/solid-core.d.ts +10 -0
- package/package.json +1 -1
- package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
- package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
- package/dist/components/auth/SolidOTPVerify.js +0 -67
- package/dist/components/auth/SolidOTPVerify.js.map +0 -1
- package/dist/components/auth/SolidOTPVerify.tsx +0 -133
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
- package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
- package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
- package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
- package/dist/nextAuth/authProviders.d.ts +0 -4
- package/dist/nextAuth/authProviders.d.ts.map +0 -1
- package/dist/nextAuth/authProviders.js +0 -198
- package/dist/nextAuth/authProviders.js.map +0 -1
- package/dist/nextAuth/authProviders.tsx +0 -232
- package/dist/nextAuth/handleLogout.d.ts +0 -2
- package/dist/nextAuth/handleLogout.d.ts.map +0 -1
- package/dist/nextAuth/handleLogout.js +0 -36
- package/dist/nextAuth/handleLogout.js.map +0 -1
- package/dist/nextAuth/handleLogout.tsx +0 -39
- package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
- package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
- package/dist/nextAuth/refreshAccessToken.js +0 -24
- package/dist/nextAuth/refreshAccessToken.js.map +0 -1
- package/dist/nextAuth/refreshAccessToken.tsx +0 -28
- package/dist/redux/features/settingsSlice.d.ts +0 -20
- package/dist/redux/features/settingsSlice.d.ts.map +0 -1
- package/dist/redux/features/settingsSlice.js +0 -39
- package/dist/redux/features/settingsSlice.js.map +0 -1
- package/dist/redux/features/settingsSlice.ts +0 -60
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-profile-menu.js","sourceRoot":"","sources":["../../../src/components/layout/user-profile-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { SolidAccountSettings } from \"../core/common/SolidAccountSettings/SolidAccountSettings\";\nimport { useGetUserQuery } from \"../../redux/api/userApi\";\nimport { handleLogout } from \"../../adapters/auth/handleLogout\";\nimport { useLazyGetSolidSettingsQuery } from \"../../redux/api/solidSettingsApi\";\nimport { useSession } from \"../../hooks/useSession\";\nimport { SolidButton } from \"../shad-cn-ui/SolidButton\";\nimport { SolidIcon, parseSolidIconMeta } from \"../shad-cn-ui/SolidIcon\";\n\ntype InlineToast = {\n id: number;\n severity: \"success\" | \"error\" | \"info\" | \"warn\";\n summary?: string;\n detail?: string;\n sticky?: boolean;\n life?: number;\n};\n\nconst UserProfileMenu = () => {\n const menuRef = useRef<HTMLDivElement>(null);\n const [showProfileSettingsDialog, setShowProfileSettingsDialog] = useState(false);\n const [menuOpen, setMenuOpen] = useState(false);\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n const [toast, setToast] = useState<InlineToast | null>(null);\n\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [trigger])\n\n const session = useSession();\n const userId = session?.data?.user?.id;\n\n const { data: userData } = useGetUserQuery(userId, {\n skip: !userId,\n });\n const [confirmLogout, setConfirmLogout] = useState(false);\n\n useEffect(() => {\n if (!menuOpen) return;\n const onPointerDown = (event: MouseEvent) => {\n if (!menuRef.current) return;\n if (!menuRef.current.contains(event.target as Node)) {\n setMenuOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", onPointerDown);\n return () => document.removeEventListener(\"mousedown\", onPointerDown);\n }, [menuOpen]);\n\n useEffect(() => {\n if (!toast || toast.sticky) return;\n const timer = window.setTimeout(() => setToast((current) => (current?.id === toast.id ? null : current)), toast.life ?? 3000);\n return () => window.clearTimeout(timer);\n }, [toast]);\n\n const toastRef = useMemo(\n () => ({\n current: {\n show: (message: Partial<InlineToast>) => {\n const nextToast: InlineToast = {\n id: Date.now(),\n severity: (message.severity as InlineToast[\"severity\"]) || \"info\",\n summary: message.summary,\n detail: message.detail,\n sticky: Boolean(message.sticky),\n life: typeof message.life === \"number\" ? message.life : 3000,\n };\n setToast(nextToast);\n },\n },\n }),\n []\n );\n\n const getInitials = (value: string) => {\n if (!value) return \"\";\n\n const email = value.includes('@') ? value.split('@')[0] : value;\n return email[0]?.toUpperCase() || \"\";\n };\n\n const getColorFromInitials = (initials: string) => {\n let hash = 0;\n for (let i = 0; i < initials.length; i++) {\n hash = initials.charCodeAt(i) + ((hash << 5) - hash);\n }\n const hue = Math.abs(hash) % 360;\n return `hsl(${hue}, 60%, 60%)`;\n };\n\n\n const value = userData?.data?.email;\n const initials = getInitials(value);\n const bgColor = getColorFromInitials(initials);\n const roleLabel = userData?.data?.roles\n ?.filter((role: any) => role.name !== \"Internal User\")\n .map((role: any) => role.name)\n .join(\" | \");\n const displayName = solidSettingsData?.data?.enableUsername\n ? userData?.data?.username\n : userData?.data?.email;\n const primaryRole = roleLabel?.split(\"|\")?.[0]?.trim() || \"User\";\n const toastSeverityClass =\n toast?.severity === \"error\"\n ? \"is-error\"\n : toast?.severity === \"success\"\n ? \"is-success\"\n : toast?.severity === \"warn\"\n ? \"is-warn\"\n : \"is-info\";\n\n const UserProfileAvatar = ({ compact = false }: { compact?: boolean }) => {\n const imageUrl = userData?.data?._media?.profilePicture?.[0]?._full_url;\n const sizeClass = compact ? \"is-compact\" : \"\";\n return (\n <span\n className={`solid-user-avatar ${sizeClass}`}\n style={imageUrl ? undefined : { backgroundColor: bgColor }}\n aria-hidden=\"true\"\n >\n {imageUrl ? (\n <img src={imageUrl} alt=\"Profile\" className=\"solid-user-avatar-image\" />\n ) : (\n <span className=\"solid-user-avatar-text\">{initials || \"U\"}</span>\n )}\n </span>\n );\n };\n\n return (\n <div className=\"userProfile\">\n {toast && (\n <div className={`solid-inline-toast ${toastSeverityClass}`} role=\"status\" aria-live=\"polite\">\n <div className=\"solid-inline-toast-body\">\n {toast.summary && <div className=\"solid-inline-toast-title\">{toast.summary}</div>}\n {toast.detail && <div className=\"solid-inline-toast-detail\">{toast.detail}</div>}\n </div>\n <button\n type=\"button\"\n className=\"solid-inline-toast-close\"\n onClick={() => setToast(null)}\n aria-label=\"Close notification\"\n >\n ×\n </button>\n </div>\n )}\n <div className=\"solid-user-menu\" ref={menuRef}>\n <button\n type=\"button\"\n className=\"solid-user-menu-trigger\"\n onClick={() => setMenuOpen((prev) => !prev)}\n aria-haspopup=\"menu\"\n aria-expanded={menuOpen}\n aria-label=\"Open user menu\"\n >\n <span className=\"solid-user-menu-trigger-left\">\n <UserProfileAvatar compact />\n <span className=\"solid-user-menu-trigger-meta\">\n <span className=\"solid-user-menu-trigger-name\">{displayName || \"User\"}</span>\n <span className=\"solid-user-menu-trigger-role\">{primaryRole}</span>\n </span>\n </span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M7 5.83301L3.5 9.33301H10.5L7 5.83301Z\" fill=\"currentColor\" />\n </svg>\n </button>\n\n {menuOpen && (\n <div className=\"solid-user-menu-content\" role=\"menu\">\n <div className=\"solid-user-menu-header\">\n <UserProfileAvatar />\n <div className=\"solid-user-menu-meta\">\n <span className=\"solid-user-menu-title\">{displayName || \"User\"}</span>\n <span className=\"solid-user-menu-subtitle\">{roleLabel || \"User\"}</span>\n </div>\n </div>\n\n <div className=\"solid-user-menu-sep\" />\n\n <button\n type=\"button\"\n className=\"solid-user-menu-item\"\n onClick={() => {\n setMenuOpen(false);\n setShowProfileSettingsDialog(true);\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M8.1191 16.5C7.7816 16.5 7.49098 16.3875 7.24723 16.1625C7.00348 15.9375 6.8566 15.6625 6.8066 15.3375L6.63785 14.1C6.47535 14.0375 6.32223 13.9625 6.17848 13.875C6.03473 13.7875 5.8941 13.6938 5.7566 13.5938L4.5941 14.0813C4.2816 14.2188 3.9691 14.2313 3.6566 14.1188C3.3441 14.0063 3.10035 13.8063 2.92535 13.5188L2.0441 11.9813C1.8691 11.6938 1.8191 11.3875 1.8941 11.0625C1.9691 10.7375 2.13785 10.4688 2.40035 10.2563L3.3941 9.50625C3.3816 9.41875 3.37535 9.33438 3.37535 9.25313V8.74688C3.37535 8.66563 3.3816 8.58125 3.3941 8.49375L2.40035 7.74375C2.13785 7.53125 1.9691 7.2625 1.8941 6.9375C1.8191 6.6125 1.8691 6.30625 2.0441 6.01875L2.92535 4.48125C3.10035 4.19375 3.3441 3.99375 3.6566 3.88125C3.9691 3.76875 4.2816 3.78125 4.5941 3.91875L5.7566 4.40625C5.8941 4.30625 6.03785 4.2125 6.18785 4.125C6.33785 4.0375 6.48785 3.9625 6.63785 3.9L6.8066 2.6625C6.8566 2.3375 7.00348 2.0625 7.24723 1.8375C7.49098 1.6125 7.7816 1.5 8.1191 1.5H9.8816C10.2191 1.5 10.5097 1.6125 10.7535 1.8375C10.9972 2.0625 11.1441 2.3375 11.1941 2.6625L11.3629 3.9C11.5254 3.9625 11.6785 4.0375 11.8222 4.125C11.966 4.2125 12.1066 4.30625 12.2441 4.40625L13.4066 3.91875C13.7191 3.78125 14.0316 3.76875 14.3441 3.88125C14.6566 3.99375 14.9004 4.19375 15.0754 4.48125L15.9566 6.01875C16.1316 6.30625 16.1816 6.6125 16.1066 6.9375C16.0316 7.2625 15.8629 7.53125 15.6004 7.74375L14.6066 8.49375C14.6191 8.58125 14.6254 8.66563 14.6254 8.74688V9.25313C14.6254 9.33438 14.6129 9.41875 14.5879 9.50625L15.5816 10.2563C15.8441 10.4688 16.0129 10.7375 16.0879 11.0625C16.1629 11.3875 16.1129 11.6938 15.9379 11.9813L15.0379 13.5188C14.8629 13.8063 14.6191 14.0063 14.3066 14.1188C13.9941 14.2313 13.6816 14.2188 13.3691 14.0813L12.2441 13.5938C12.1066 13.6938 11.9629 13.7875 11.8129 13.875C11.6629 13.9625 11.5129 14.0375 11.3629 14.1L11.1941 15.3375C11.1441 15.6625 10.9972 15.9375 10.7535 16.1625C10.5097 16.3875 10.2191 16.5 9.8816 16.5H8.1191ZM8.25035 15H9.7316L9.9941 13.0125C10.3816 12.9125 10.741 12.7656 11.0722 12.5719C11.4035 12.3781 11.7066 12.1438 11.9816 11.8688L13.8379 12.6375L14.5691 11.3625L12.9566 10.1438C13.0191 9.96875 13.0629 9.78438 13.0879 9.59063C13.1129 9.39688 13.1254 9.2 13.1254 9C13.1254 8.8 13.1129 8.60313 13.0879 8.40938C13.0629 8.21563 13.0191 8.03125 12.9566 7.85625L14.5691 6.6375L13.8379 5.3625L11.9816 6.15C11.7066 5.8625 11.4035 5.62188 11.0722 5.42813C10.741 5.23438 10.3816 5.0875 9.9941 4.9875L9.75035 3H8.2691L8.0066 4.9875C7.6191 5.0875 7.25973 5.23438 6.92848 5.42813C6.59723 5.62188 6.2941 5.85625 6.0191 6.13125L4.16285 5.3625L3.4316 6.6375L5.0441 7.8375C4.9816 8.025 4.93785 8.2125 4.91285 8.4C4.88785 8.5875 4.87535 8.7875 4.87535 9C4.87535 9.2 4.88785 9.39375 4.91285 9.58125C4.93785 9.76875 4.9816 9.95625 5.0441 10.1438L3.4316 11.3625L4.16285 12.6375L6.0191 11.85C6.2941 12.1375 6.59723 12.3781 6.92848 12.5719C7.25973 12.7656 7.6191 12.9125 8.0066 13.0125L8.25035 15ZM9.03785 11.625C9.76285 11.625 10.3816 11.3688 10.8941 10.8563C11.4066 10.3438 11.6629 9.725 11.6629 9C11.6629 8.275 11.4066 7.65625 10.8941 7.14375C10.3816 6.63125 9.76285 6.375 9.03785 6.375C8.30035 6.375 7.67848 6.63125 7.17223 7.14375C6.66598 7.65625 6.41285 8.275 6.41285 9C6.41285 9.725 6.66598 10.3438 7.17223 10.8563C7.67848 11.3688 8.30035 11.625 9.03785 11.625Z\" fill=\"currentColor\" />\n </svg>\n <span>Account Settings</span>\n </button>\n\n {solidSettingsData?.data?.contactSupportEmail && (\n <button\n type=\"button\"\n className=\"solid-user-menu-item\"\n onClick={() => {\n setMenuOpen(false);\n window.location.href = `mailto:${solidSettingsData?.data?.contactSupportEmail}`;\n }}\n >\n {solidSettingsData?.data?.contactSupportIcon ? (\n (() => { const m = parseSolidIconMeta(solidSettingsData?.data?.contactSupportIcon); return m ? <SolidIcon name={m.name} spin={m.spin} aria-hidden=\"true\" /> : <i className={solidSettingsData?.data?.contactSupportIcon} aria-hidden=\"true\" />; })()\n ) : (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3 4.5C3 3.67157 3.67157 3 4.5 3H13.5C14.3284 3 15 3.67157 15 4.5V13.5C15 14.3284 14.3284 15 13.5 15H4.5C3.67157 15 3 14.3284 3 13.5V4.5Z\" stroke=\"currentColor\" strokeWidth=\"1.25\" />\n <path d=\"M4.125 5.25L9 9L13.875 5.25\" stroke=\"currentColor\" strokeWidth=\"1.25\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n <span>{solidSettingsData?.data?.contactSupportDisplayName || \"Contact Support\"}</span>\n </button>\n )}\n\n <div className=\"solid-user-menu-sep\" />\n\n <button\n type=\"button\"\n className=\"solid-user-menu-item is-danger\"\n onClick={() => {\n setMenuOpen(false);\n setConfirmLogout(true);\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3.75 15.75C3.3375 15.75 2.98438 15.6031 2.69063 15.3094C2.39687 15.0156 2.25 14.6625 2.25 14.25V3.75C2.25 3.3375 2.39687 2.98438 2.69063 2.69063C2.98438 2.39687 3.3375 2.25 3.75 2.25H9V3.75H3.75V14.25H9V15.75H3.75ZM12 12.75L10.9688 11.6625L12.8813 9.75H6.75V8.25H12.8813L10.9688 6.3375L12 5.25L15.75 9L12 12.75Z\" fill=\"currentColor\" />\n </svg>\n <span>Logout</span>\n </button>\n </div>\n )}\n </div>\n {confirmLogout && (\n <div\n className=\"solid-dialog-backdrop\"\n role=\"presentation\"\n onClick={() => setConfirmLogout(false)}\n >\n <div\n className=\"solid-confirm-dialog solid-shadcn-confirm-dialog\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"solid-logout-dialog-title\"\n onClick={(event) => event.stopPropagation()}\n >\n <div className=\"solid-shadcn-dialog-head\">\n <h3 id=\"solid-logout-dialog-title\">Logout</h3>\n </div>\n <div className=\"solid-shadcn-dialog-sep\" />\n <div className=\"solid-shadcn-dialog-body\">\n <p className=\"solid-shadcn-dialog-text\">Are you sure you want to log out?</p>\n </div>\n <div className=\"solid-shadcn-dialog-actions\">\n <SolidButton size=\"sm\" variant=\"destructive\" onClick={() => handleLogout({ toast: toastRef })}>\n Logout\n </SolidButton>\n <SolidButton size=\"sm\" variant=\"outline\" onClick={() => setConfirmLogout(false)}>\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n )}\n {showProfileSettingsDialog &&\n <SolidAccountSettings\n showProfileSettingsDialog={showProfileSettingsDialog}\n setShowProfileSettingsDialog={setShowProfileSettingsDialog}\n />\n }\n </div>\n );\n};\n\nexport default UserProfileMenu;\n"]}
|
|
1
|
+
{"version":3,"file":"user-profile-menu.js","sourceRoot":"","sources":["../../../src/components/layout/user-profile-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { SolidAccountSettings } from \"../core/common/SolidAccountSettings/SolidAccountSettings\";\nimport { useGetUserQuery } from \"../../redux/api/userApi\";\nimport { handleLogout } from \"../../adapters/auth/handleLogout\";\nimport { useLazyGetSolidSettingsQuery } from \"../../redux/api/solidSettingsApi\";\nimport { useSession } from \"../../hooks/useSession\";\nimport { SolidButton } from \"../shad-cn-ui/SolidButton\";\nimport { SolidIcon, parseSolidIconMeta } from \"../shad-cn-ui/SolidIcon\";\nimport { getSettingsMap } from \"../../helpers/settingsPayload\";\n\ntype InlineToast = {\n id: number;\n severity: \"success\" | \"error\" | \"info\" | \"warn\";\n summary?: string;\n detail?: string;\n sticky?: boolean;\n life?: number;\n};\n\nconst UserProfileMenu = () => {\n const menuRef = useRef<HTMLDivElement>(null);\n const [showProfileSettingsDialog, setShowProfileSettingsDialog] = useState(false);\n const [menuOpen, setMenuOpen] = useState(false);\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n const [toast, setToast] = useState<InlineToast | null>(null);\n\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [trigger])\n const settingsMap = useMemo(() => getSettingsMap(solidSettingsData), [solidSettingsData]);\n\n const session = useSession();\n const userId = session?.data?.user?.id;\n\n const { data: userData } = useGetUserQuery(userId, {\n skip: !userId,\n });\n const [confirmLogout, setConfirmLogout] = useState(false);\n\n useEffect(() => {\n if (!menuOpen) return;\n const onPointerDown = (event: MouseEvent) => {\n if (!menuRef.current) return;\n if (!menuRef.current.contains(event.target as Node)) {\n setMenuOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", onPointerDown);\n return () => document.removeEventListener(\"mousedown\", onPointerDown);\n }, [menuOpen]);\n\n useEffect(() => {\n if (!toast || toast.sticky) return;\n const timer = window.setTimeout(() => setToast((current) => (current?.id === toast.id ? null : current)), toast.life ?? 3000);\n return () => window.clearTimeout(timer);\n }, [toast]);\n\n const toastRef = useMemo(\n () => ({\n current: {\n show: (message: Partial<InlineToast>) => {\n const nextToast: InlineToast = {\n id: Date.now(),\n severity: (message.severity as InlineToast[\"severity\"]) || \"info\",\n summary: message.summary,\n detail: message.detail,\n sticky: Boolean(message.sticky),\n life: typeof message.life === \"number\" ? message.life : 3000,\n };\n setToast(nextToast);\n },\n },\n }),\n []\n );\n\n const getInitials = (value: string) => {\n if (!value) return \"\";\n\n const email = value.includes('@') ? value.split('@')[0] : value;\n return email[0]?.toUpperCase() || \"\";\n };\n\n const getColorFromInitials = (initials: string) => {\n let hash = 0;\n for (let i = 0; i < initials.length; i++) {\n hash = initials.charCodeAt(i) + ((hash << 5) - hash);\n }\n const hue = Math.abs(hash) % 360;\n return `hsl(${hue}, 60%, 60%)`;\n };\n\n\n const value = userData?.data?.email;\n const initials = getInitials(value);\n const bgColor = getColorFromInitials(initials);\n const roleLabel = userData?.data?.roles\n ?.filter((role: any) => role.name !== \"Internal User\")\n .map((role: any) => role.name)\n .join(\" | \");\n const displayName = settingsMap?.enableUsername\n ? userData?.data?.username\n : userData?.data?.email;\n const primaryRole = roleLabel?.split(\"|\")?.[0]?.trim() || \"User\";\n const toastSeverityClass =\n toast?.severity === \"error\"\n ? \"is-error\"\n : toast?.severity === \"success\"\n ? \"is-success\"\n : toast?.severity === \"warn\"\n ? \"is-warn\"\n : \"is-info\";\n\n const UserProfileAvatar = ({ compact = false }: { compact?: boolean }) => {\n const imageUrl = userData?.data?._media?.profilePicture?.[0]?._full_url;\n const sizeClass = compact ? \"is-compact\" : \"\";\n return (\n <span\n className={`solid-user-avatar ${sizeClass}`}\n style={imageUrl ? undefined : { backgroundColor: bgColor }}\n aria-hidden=\"true\"\n >\n {imageUrl ? (\n <img src={imageUrl} alt=\"Profile\" className=\"solid-user-avatar-image\" />\n ) : (\n <span className=\"solid-user-avatar-text\">{initials || \"U\"}</span>\n )}\n </span>\n );\n };\n\n return (\n <div className=\"userProfile\">\n {toast && (\n <div className={`solid-inline-toast ${toastSeverityClass}`} role=\"status\" aria-live=\"polite\">\n <div className=\"solid-inline-toast-body\">\n {toast.summary && <div className=\"solid-inline-toast-title\">{toast.summary}</div>}\n {toast.detail && <div className=\"solid-inline-toast-detail\">{toast.detail}</div>}\n </div>\n <button\n type=\"button\"\n className=\"solid-inline-toast-close\"\n onClick={() => setToast(null)}\n aria-label=\"Close notification\"\n >\n ×\n </button>\n </div>\n )}\n <div className=\"solid-user-menu\" ref={menuRef}>\n <button\n type=\"button\"\n className=\"solid-user-menu-trigger\"\n onClick={() => setMenuOpen((prev) => !prev)}\n aria-haspopup=\"menu\"\n aria-expanded={menuOpen}\n aria-label=\"Open user menu\"\n >\n <span className=\"solid-user-menu-trigger-left\">\n <UserProfileAvatar compact />\n <span className=\"solid-user-menu-trigger-meta\">\n <span className=\"solid-user-menu-trigger-name\">{displayName || \"User\"}</span>\n <span className=\"solid-user-menu-trigger-role\">{primaryRole}</span>\n </span>\n </span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M7 5.83301L3.5 9.33301H10.5L7 5.83301Z\" fill=\"currentColor\" />\n </svg>\n </button>\n\n {menuOpen && (\n <div className=\"solid-user-menu-content\" role=\"menu\">\n <div className=\"solid-user-menu-header\">\n <UserProfileAvatar />\n <div className=\"solid-user-menu-meta\">\n <span className=\"solid-user-menu-title\">{displayName || \"User\"}</span>\n <span className=\"solid-user-menu-subtitle\">{roleLabel || \"User\"}</span>\n </div>\n </div>\n\n <div className=\"solid-user-menu-sep\" />\n\n <button\n type=\"button\"\n className=\"solid-user-menu-item\"\n onClick={() => {\n setMenuOpen(false);\n setShowProfileSettingsDialog(true);\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M8.1191 16.5C7.7816 16.5 7.49098 16.3875 7.24723 16.1625C7.00348 15.9375 6.8566 15.6625 6.8066 15.3375L6.63785 14.1C6.47535 14.0375 6.32223 13.9625 6.17848 13.875C6.03473 13.7875 5.8941 13.6938 5.7566 13.5938L4.5941 14.0813C4.2816 14.2188 3.9691 14.2313 3.6566 14.1188C3.3441 14.0063 3.10035 13.8063 2.92535 13.5188L2.0441 11.9813C1.8691 11.6938 1.8191 11.3875 1.8941 11.0625C1.9691 10.7375 2.13785 10.4688 2.40035 10.2563L3.3941 9.50625C3.3816 9.41875 3.37535 9.33438 3.37535 9.25313V8.74688C3.37535 8.66563 3.3816 8.58125 3.3941 8.49375L2.40035 7.74375C2.13785 7.53125 1.9691 7.2625 1.8941 6.9375C1.8191 6.6125 1.8691 6.30625 2.0441 6.01875L2.92535 4.48125C3.10035 4.19375 3.3441 3.99375 3.6566 3.88125C3.9691 3.76875 4.2816 3.78125 4.5941 3.91875L5.7566 4.40625C5.8941 4.30625 6.03785 4.2125 6.18785 4.125C6.33785 4.0375 6.48785 3.9625 6.63785 3.9L6.8066 2.6625C6.8566 2.3375 7.00348 2.0625 7.24723 1.8375C7.49098 1.6125 7.7816 1.5 8.1191 1.5H9.8816C10.2191 1.5 10.5097 1.6125 10.7535 1.8375C10.9972 2.0625 11.1441 2.3375 11.1941 2.6625L11.3629 3.9C11.5254 3.9625 11.6785 4.0375 11.8222 4.125C11.966 4.2125 12.1066 4.30625 12.2441 4.40625L13.4066 3.91875C13.7191 3.78125 14.0316 3.76875 14.3441 3.88125C14.6566 3.99375 14.9004 4.19375 15.0754 4.48125L15.9566 6.01875C16.1316 6.30625 16.1816 6.6125 16.1066 6.9375C16.0316 7.2625 15.8629 7.53125 15.6004 7.74375L14.6066 8.49375C14.6191 8.58125 14.6254 8.66563 14.6254 8.74688V9.25313C14.6254 9.33438 14.6129 9.41875 14.5879 9.50625L15.5816 10.2563C15.8441 10.4688 16.0129 10.7375 16.0879 11.0625C16.1629 11.3875 16.1129 11.6938 15.9379 11.9813L15.0379 13.5188C14.8629 13.8063 14.6191 14.0063 14.3066 14.1188C13.9941 14.2313 13.6816 14.2188 13.3691 14.0813L12.2441 13.5938C12.1066 13.6938 11.9629 13.7875 11.8129 13.875C11.6629 13.9625 11.5129 14.0375 11.3629 14.1L11.1941 15.3375C11.1441 15.6625 10.9972 15.9375 10.7535 16.1625C10.5097 16.3875 10.2191 16.5 9.8816 16.5H8.1191ZM8.25035 15H9.7316L9.9941 13.0125C10.3816 12.9125 10.741 12.7656 11.0722 12.5719C11.4035 12.3781 11.7066 12.1438 11.9816 11.8688L13.8379 12.6375L14.5691 11.3625L12.9566 10.1438C13.0191 9.96875 13.0629 9.78438 13.0879 9.59063C13.1129 9.39688 13.1254 9.2 13.1254 9C13.1254 8.8 13.1129 8.60313 13.0879 8.40938C13.0629 8.21563 13.0191 8.03125 12.9566 7.85625L14.5691 6.6375L13.8379 5.3625L11.9816 6.15C11.7066 5.8625 11.4035 5.62188 11.0722 5.42813C10.741 5.23438 10.3816 5.0875 9.9941 4.9875L9.75035 3H8.2691L8.0066 4.9875C7.6191 5.0875 7.25973 5.23438 6.92848 5.42813C6.59723 5.62188 6.2941 5.85625 6.0191 6.13125L4.16285 5.3625L3.4316 6.6375L5.0441 7.8375C4.9816 8.025 4.93785 8.2125 4.91285 8.4C4.88785 8.5875 4.87535 8.7875 4.87535 9C4.87535 9.2 4.88785 9.39375 4.91285 9.58125C4.93785 9.76875 4.9816 9.95625 5.0441 10.1438L3.4316 11.3625L4.16285 12.6375L6.0191 11.85C6.2941 12.1375 6.59723 12.3781 6.92848 12.5719C7.25973 12.7656 7.6191 12.9125 8.0066 13.0125L8.25035 15ZM9.03785 11.625C9.76285 11.625 10.3816 11.3688 10.8941 10.8563C11.4066 10.3438 11.6629 9.725 11.6629 9C11.6629 8.275 11.4066 7.65625 10.8941 7.14375C10.3816 6.63125 9.76285 6.375 9.03785 6.375C8.30035 6.375 7.67848 6.63125 7.17223 7.14375C6.66598 7.65625 6.41285 8.275 6.41285 9C6.41285 9.725 6.66598 10.3438 7.17223 10.8563C7.67848 11.3688 8.30035 11.625 9.03785 11.625Z\" fill=\"currentColor\" />\n </svg>\n <span>Account Settings</span>\n </button>\n\n {settingsMap?.contactSupportEmail && (\n <button\n type=\"button\"\n className=\"solid-user-menu-item\"\n onClick={() => {\n setMenuOpen(false);\n window.location.href = `mailto:${settingsMap?.contactSupportEmail}`;\n }}\n >\n {settingsMap?.contactSupportIcon ? (\n (() => { const m = parseSolidIconMeta(settingsMap?.contactSupportIcon); return m ? <SolidIcon name={m.name} spin={m.spin} aria-hidden=\"true\" /> : <i className={settingsMap?.contactSupportIcon} aria-hidden=\"true\" />; })()\n ) : (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3 4.5C3 3.67157 3.67157 3 4.5 3H13.5C14.3284 3 15 3.67157 15 4.5V13.5C15 14.3284 14.3284 15 13.5 15H4.5C3.67157 15 3 14.3284 3 13.5V4.5Z\" stroke=\"currentColor\" strokeWidth=\"1.25\" />\n <path d=\"M4.125 5.25L9 9L13.875 5.25\" stroke=\"currentColor\" strokeWidth=\"1.25\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n <span>{settingsMap?.contactSupportDisplayName || \"Contact Support\"}</span>\n </button>\n )}\n\n <div className=\"solid-user-menu-sep\" />\n\n <button\n type=\"button\"\n className=\"solid-user-menu-item is-danger\"\n onClick={() => {\n setMenuOpen(false);\n setConfirmLogout(true);\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3.75 15.75C3.3375 15.75 2.98438 15.6031 2.69063 15.3094C2.39687 15.0156 2.25 14.6625 2.25 14.25V3.75C2.25 3.3375 2.39687 2.98438 2.69063 2.69063C2.98438 2.39687 3.3375 2.25 3.75 2.25H9V3.75H3.75V14.25H9V15.75H3.75ZM12 12.75L10.9688 11.6625L12.8813 9.75H6.75V8.25H12.8813L10.9688 6.3375L12 5.25L15.75 9L12 12.75Z\" fill=\"currentColor\" />\n </svg>\n <span>Logout</span>\n </button>\n </div>\n )}\n </div>\n {confirmLogout && (\n <div\n className=\"solid-dialog-backdrop\"\n role=\"presentation\"\n onClick={() => setConfirmLogout(false)}\n >\n <div\n className=\"solid-confirm-dialog solid-shadcn-confirm-dialog\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"solid-logout-dialog-title\"\n onClick={(event) => event.stopPropagation()}\n >\n <div className=\"solid-shadcn-dialog-head\">\n <h3 id=\"solid-logout-dialog-title\">Logout</h3>\n </div>\n <div className=\"solid-shadcn-dialog-sep\" />\n <div className=\"solid-shadcn-dialog-body\">\n <p className=\"solid-shadcn-dialog-text\">Are you sure you want to log out?</p>\n </div>\n <div className=\"solid-shadcn-dialog-actions\">\n <SolidButton size=\"sm\" variant=\"destructive\" onClick={() => handleLogout({ toast: toastRef })}>\n Logout\n </SolidButton>\n <SolidButton size=\"sm\" variant=\"outline\" onClick={() => setConfirmLogout(false)}>\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n )}\n {showProfileSettingsDialog &&\n <SolidAccountSettings\n showProfileSettingsDialog={showProfileSettingsDialog}\n setShowProfileSettingsDialog={setShowProfileSettingsDialog}\n />\n }\n </div>\n );\n};\n\nexport default UserProfileMenu;\n"]}
|
|
@@ -6,6 +6,7 @@ import { useLazyGetSolidSettingsQuery } from "../../redux/api/solidSettingsApi";
|
|
|
6
6
|
import { useSession } from "../../hooks/useSession";
|
|
7
7
|
import { SolidButton } from "../shad-cn-ui/SolidButton";
|
|
8
8
|
import { SolidIcon, parseSolidIconMeta } from "../shad-cn-ui/SolidIcon";
|
|
9
|
+
import { getSettingsMap } from "../../helpers/settingsPayload";
|
|
9
10
|
|
|
10
11
|
type InlineToast = {
|
|
11
12
|
id: number;
|
|
@@ -26,6 +27,7 @@ const UserProfileMenu = () => {
|
|
|
26
27
|
useEffect(() => {
|
|
27
28
|
trigger("") // Fetch settings on mount
|
|
28
29
|
}, [trigger])
|
|
30
|
+
const settingsMap = useMemo(() => getSettingsMap(solidSettingsData), [solidSettingsData]);
|
|
29
31
|
|
|
30
32
|
const session = useSession();
|
|
31
33
|
const userId = session?.data?.user?.id;
|
|
@@ -96,7 +98,7 @@ const UserProfileMenu = () => {
|
|
|
96
98
|
?.filter((role: any) => role.name !== "Internal User")
|
|
97
99
|
.map((role: any) => role.name)
|
|
98
100
|
.join(" | ");
|
|
99
|
-
const displayName =
|
|
101
|
+
const displayName = settingsMap?.enableUsername
|
|
100
102
|
? userData?.data?.username
|
|
101
103
|
: userData?.data?.email;
|
|
102
104
|
const primaryRole = roleLabel?.split("|")?.[0]?.trim() || "User";
|
|
@@ -192,24 +194,24 @@ const UserProfileMenu = () => {
|
|
|
192
194
|
<span>Account Settings</span>
|
|
193
195
|
</button>
|
|
194
196
|
|
|
195
|
-
{
|
|
197
|
+
{settingsMap?.contactSupportEmail && (
|
|
196
198
|
<button
|
|
197
199
|
type="button"
|
|
198
200
|
className="solid-user-menu-item"
|
|
199
201
|
onClick={() => {
|
|
200
202
|
setMenuOpen(false);
|
|
201
|
-
window.location.href = `mailto:${
|
|
203
|
+
window.location.href = `mailto:${settingsMap?.contactSupportEmail}`;
|
|
202
204
|
}}
|
|
203
205
|
>
|
|
204
|
-
{
|
|
205
|
-
(() => { const m = parseSolidIconMeta(
|
|
206
|
+
{settingsMap?.contactSupportIcon ? (
|
|
207
|
+
(() => { const m = parseSolidIconMeta(settingsMap?.contactSupportIcon); return m ? <SolidIcon name={m.name} spin={m.spin} aria-hidden="true" /> : <i className={settingsMap?.contactSupportIcon} aria-hidden="true" />; })()
|
|
206
208
|
) : (
|
|
207
209
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 18 18" fill="none" aria-hidden="true">
|
|
208
210
|
<path d="M3 4.5C3 3.67157 3.67157 3 4.5 3H13.5C14.3284 3 15 3.67157 15 4.5V13.5C15 14.3284 14.3284 15 13.5 15H4.5C3.67157 15 3 14.3284 3 13.5V4.5Z" stroke="currentColor" strokeWidth="1.25" />
|
|
209
211
|
<path d="M4.125 5.25L9 9L13.875 5.25" stroke="currentColor" strokeWidth="1.25" strokeLinecap="round" strokeLinejoin="round" />
|
|
210
212
|
</svg>
|
|
211
213
|
)}
|
|
212
|
-
<span>{
|
|
214
|
+
<span>{settingsMap?.contactSupportDisplayName || "Contact Support"}</span>
|
|
213
215
|
</button>
|
|
214
216
|
)}
|
|
215
217
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidDialog.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"SolidDialog.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAE5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAMF,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,UAAiB,EACjB,eAAe,EACf,YAAY,EACZ,WAAkB,GACnB,EAAE,gBAAgB,2CAqClB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAEjF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAEhF;AAED,wBAAgB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAMtF;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAE/E;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAEjF;AAED,wBAAgB,oBAAoB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAEzE;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,QAAQ,EACR,OAAO,EACP,YAAY,EAAE,SAA0B,GACzC,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,2CAaA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidDialog.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\n\ntype SolidDialogProps = {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children
|
|
1
|
+
{"version":3,"file":"SolidDialog.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\n\ntype SolidDialogProps = {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: React.ReactNode;\n className?: string;\n contentClassName?: string;\n overlayClassName?: string;\n style?: React.CSSProperties;\n // Compatibility props\n visible?: boolean;\n onHide?: () => void;\n modal?: boolean;\n header?: React.ReactNode;\n footer?: React.ReactNode;\n showHeader?: boolean;\n headerClassName?: string;\n contentStyle?: React.CSSProperties;\n breakpoints?: Record<string, string>;\n dismissible?: boolean;\n};\n\ntype SolidDialogSectionProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidDialog({\n open,\n onOpenChange,\n children,\n className,\n contentClassName,\n overlayClassName,\n style,\n visible,\n onHide,\n header,\n footer,\n showHeader = true,\n headerClassName,\n contentStyle,\n dismissible = true,\n}: SolidDialogProps) {\n const controlledOpen = open ?? visible ?? false;\n const handleOpenChange = (next: boolean) => {\n if (!dismissible && !next) return;\n onOpenChange?.(next);\n if (!next) onHide?.();\n };\n\n return (\n <Dialog.Root open={controlledOpen} onOpenChange={handleOpenChange}>\n <Dialog.Portal>\n <Dialog.Overlay className={cx(\"solid-radix-dialog-overlay\", overlayClassName)} />\n <Dialog.Content\n className={cx(\"solid-radix-dialog-content\", className, contentClassName)}\n style={style ?? contentStyle}\n onEscapeKeyDown={(event: any) => {\n if (!dismissible) event.preventDefault();\n }}\n onPointerDownOutside={(event: any) => {\n if (!dismissible) event.preventDefault();\n }}\n onInteractOutside={(event: any) => {\n if (!dismissible) event.preventDefault();\n }}\n >\n {showHeader && (header || onHide) ? (\n <SolidDialogHeader className={headerClassName}>\n {header ? <SolidDialogTitle>{header}</SolidDialogTitle> : null}\n <SolidDialogClose aria-label=\"Close\" />\n </SolidDialogHeader>\n ) : null}\n {children}\n {footer ? <SolidDialogFooter>{footer}</SolidDialogFooter> : null}\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n );\n}\n\nexport function SolidDialogHeader({ children, className }: SolidDialogSectionProps) {\n return <div className={cx(\"solid-radix-dialog-header\", className)}>{children}</div>;\n}\n\nexport function SolidDialogTitle({ children, className }: SolidDialogSectionProps) {\n return <Dialog.Title className={cx(\"solid-radix-dialog-title\", className)}>{children}</Dialog.Title>;\n}\n\nexport function SolidDialogDescription({ children, className }: SolidDialogSectionProps) {\n return (\n <Dialog.Description className={cx(\"solid-radix-dialog-description\", className)}>\n {children}\n </Dialog.Description>\n );\n}\n\nexport function SolidDialogBody({ children, className }: SolidDialogSectionProps) {\n return <div className={cx(\"solid-radix-dialog-body\", className)}>{children}</div>;\n}\n\nexport function SolidDialogFooter({ children, className }: SolidDialogSectionProps) {\n return <div className={cx(\"solid-radix-dialog-footer\", className)}>{children}</div>;\n}\n\nexport function SolidDialogSeparator({ className }: { className?: string }) {\n return <div className={cx(\"solid-radix-dialog-separator\", className)} />;\n}\n\nexport function SolidDialogClose({\n className,\n children,\n onClick,\n \"aria-label\": ariaLabel = \"Close dialog\",\n}: {\n className?: string;\n children?: React.ReactNode;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n \"aria-label\"?: string;\n}) {\n return (\n <Dialog.Close asChild>\n <button\n type=\"button\"\n className={cx(\"solid-radix-dialog-close\", className)}\n aria-label={ariaLabel}\n onClick={onClick}\n >\n {children ?? <X size={16} />}\n </button>\n </Dialog.Close>\n );\n}\n"]}
|
|
@@ -75,13 +75,13 @@ declare const ICON_MAP: {
|
|
|
75
75
|
"si-wifi": React.ForwardRefExoticComponent<Omit<import("lucide-react").LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
76
76
|
};
|
|
77
77
|
export type SolidIconName = keyof typeof ICON_MAP;
|
|
78
|
-
export interface SolidIconProps extends React.
|
|
78
|
+
export interface SolidIconProps extends React.SVGAttributes<SVGSVGElement> {
|
|
79
79
|
name: SolidIconName;
|
|
80
80
|
size?: number | string;
|
|
81
81
|
spin?: boolean;
|
|
82
82
|
}
|
|
83
83
|
export declare const ICON_KEYS: ("si-android" | "si-angle-double-left" | "si-angle-double-right" | "si-angle-down" | "si-angle-left" | "si-angle-right" | "si-angle-up" | "si-arrow-left" | "si-arrow-right" | "si-bars" | "si-bell" | "si-calendar" | "si-calendar-minus" | "si-calendar-plus" | "si-chart-bar" | "si-check" | "si-check-circle" | "si-chevron-down" | "si-chevron-left" | "si-chevron-right" | "si-chevron-up" | "si-clone" | "si-cloud-download" | "si-cloud-upload" | "si-code" | "si-cog" | "si-comments" | "si-copy" | "si-download" | "si-ellipsis-h" | "si-ellipsis-v" | "si-envelope" | "si-exclamation-circle" | "si-exclamation-triangle" | "si-external-link" | "si-eye" | "si-eye-slash" | "si-file" | "si-file-edit" | "si-file-excel" | "si-file-pdf" | "si-file-word" | "si-filter" | "si-filter-fill" | "si-filter-slash" | "si-history" | "si-image" | "si-inbox" | "si-info-circle" | "si-lock" | "si-minus" | "si-objects-column" | "si-pencil" | "si-plus" | "si-power-off" | "si-refresh" | "si-save" | "si-search" | "si-send" | "si-sliders-h" | "si-sort-down-fill" | "si-sort-up-fill" | "si-spinner" | "si-star" | "si-terminal" | "si-th-large" | "si-times" | "si-times-circle" | "si-trash" | "si-upload" | "si-user" | "si-users" | "si-wifi")[];
|
|
84
|
-
export declare
|
|
84
|
+
export declare function SolidIcon({ name, size, spin, className, ...rest }: SolidIconProps): import("react/jsx-runtime").JSX.Element;
|
|
85
85
|
export type SolidIconMeta = {
|
|
86
86
|
name: SolidIconName;
|
|
87
87
|
spin?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidIcon.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA2E1B,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0E2B,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,QAAQ,CAAC;AAYlD,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"SolidIcon.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA2E1B,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0E2B,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,QAAQ,CAAC;AAYlD,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;IACxE,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,SAAS,isCAA2C,CAAC;AAElE,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,IAAY,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,2CAUzF;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CA2BnF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CAEvF"}
|
|
@@ -21,7 +21,6 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
return t;
|
|
22
22
|
};
|
|
23
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
-
import React from "react";
|
|
25
24
|
import { AlertCircle, AlertTriangle, ArrowDownWideNarrow, ArrowLeft, ArrowRight, ArrowUpWideNarrow, BarChart3, Bell, Bot, Calendar, CalendarMinus, CalendarPlus, Check, CheckCircle2, ChevronsLeft, ChevronsRight, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, CircleHelp, Code, Cog, Columns3, Copy, Download, DownloadCloud, ExternalLink, Eye, EyeOff, File, FilePenLine, FileSpreadsheet, FileText, FileType, Filter, FilterX, History, Image as ImageIcon, Inbox, Info, LayoutGrid, Loader2, Lock, Mail, Menu, MessageSquare, Minus, MoreHorizontal, MoreVertical, Pencil, Plus, Power, RefreshCcw, Save, Search, Send, SlidersHorizontal, Star, Terminal, Trash2, Upload, UploadCloud, User, Users, Wifi, X, XCircle } from "lucide-react";
|
|
26
25
|
var ICON_MAP = {
|
|
27
26
|
"si-android": Bot,
|
|
@@ -110,12 +109,12 @@ function isSolidIconName(name) {
|
|
|
110
109
|
return Object.prototype.hasOwnProperty.call(ICON_MAP, name);
|
|
111
110
|
}
|
|
112
111
|
export var ICON_KEYS = Object.keys(ICON_MAP);
|
|
113
|
-
export
|
|
112
|
+
export function SolidIcon(_a) {
|
|
114
113
|
var _b;
|
|
115
114
|
var name = _a.name, _c = _a.size, size = _c === void 0 ? "1em" : _c, spin = _a.spin, className = _a.className, rest = __rest(_a, ["name", "size", "spin", "className"]);
|
|
116
115
|
var IconComponent = (_b = ICON_MAP[name]) !== null && _b !== void 0 ? _b : CircleHelp;
|
|
117
|
-
return (_jsx(IconComponent, __assign({
|
|
118
|
-
}
|
|
116
|
+
return (_jsx(IconComponent, __assign({ size: size, className: cx("solid-icon", spin && "solid-icon--spin", className) }, rest)));
|
|
117
|
+
}
|
|
119
118
|
export function parseSolidIconMeta(value) {
|
|
120
119
|
if (!value)
|
|
121
120
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidIcon.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidIcon.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SolidIcon.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidIcon.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport type { LucideIcon } from \"lucide-react\";\nimport {\n AlertCircle,\n AlertTriangle,\n ArrowDownWideNarrow,\n ArrowLeft,\n ArrowRight,\n ArrowUpWideNarrow,\n BarChart3,\n Bell,\n Bot,\n Calendar,\n CalendarMinus,\n CalendarPlus,\n Check,\n CheckCircle2,\n ChevronsLeft,\n ChevronsRight,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n CircleHelp,\n Code,\n Cog,\n Columns3,\n Copy,\n Download,\n DownloadCloud,\n ExternalLink,\n Eye,\n EyeOff,\n File,\n FilePenLine,\n FileSpreadsheet,\n FileText,\n FileType,\n Filter,\n FilterX,\n History,\n Image as ImageIcon,\n Inbox,\n Info,\n LayoutGrid,\n Loader2,\n Lock,\n Mail,\n Menu,\n MessageSquare,\n Minus,\n MoreHorizontal,\n MoreVertical,\n Pencil,\n Plus,\n Power,\n RefreshCcw,\n Save,\n Search,\n Send,\n SlidersHorizontal,\n Star,\n Terminal,\n Trash2,\n Upload,\n UploadCloud,\n User,\n Users,\n Wifi,\n X,\n XCircle\n} from \"lucide-react\";\n\ntype IconComponent = LucideIcon;\n\nconst ICON_MAP = {\n \"si-android\": Bot,\n \"si-angle-double-left\": ChevronsLeft,\n \"si-angle-double-right\": ChevronsRight,\n \"si-angle-down\": ChevronDown,\n \"si-angle-left\": ChevronLeft,\n \"si-angle-right\": ChevronRight,\n \"si-angle-up\": ChevronUp,\n \"si-arrow-left\": ArrowLeft,\n \"si-arrow-right\": ArrowRight,\n \"si-bars\": Menu,\n \"si-bell\": Bell,\n \"si-calendar\": Calendar,\n \"si-calendar-minus\": CalendarMinus,\n \"si-calendar-plus\": CalendarPlus,\n \"si-chart-bar\": BarChart3,\n \"si-check\": Check,\n \"si-check-circle\": CheckCircle2,\n \"si-chevron-down\": ChevronDown,\n \"si-chevron-left\": ChevronLeft,\n \"si-chevron-right\": ChevronRight,\n \"si-chevron-up\": ChevronUp,\n \"si-clone\": Copy,\n \"si-cloud-download\": DownloadCloud,\n \"si-cloud-upload\": UploadCloud,\n \"si-code\": Code,\n \"si-cog\": Cog,\n \"si-comments\": MessageSquare,\n \"si-copy\": Copy,\n \"si-download\": Download,\n \"si-ellipsis-h\": MoreHorizontal,\n \"si-ellipsis-v\": MoreVertical,\n \"si-envelope\": Mail,\n \"si-exclamation-circle\": AlertCircle,\n \"si-exclamation-triangle\": AlertTriangle,\n \"si-external-link\": ExternalLink,\n \"si-eye\": Eye,\n \"si-eye-slash\": EyeOff,\n \"si-file\": File,\n \"si-file-edit\": FilePenLine,\n \"si-file-excel\": FileSpreadsheet,\n \"si-file-pdf\": FileText,\n \"si-file-word\": FileType,\n \"si-filter\": Filter,\n \"si-filter-fill\": Filter,\n \"si-filter-slash\": FilterX,\n \"si-history\": History,\n \"si-image\": ImageIcon,\n \"si-inbox\": Inbox,\n \"si-info-circle\": Info,\n \"si-lock\": Lock,\n \"si-minus\": Minus,\n \"si-objects-column\": Columns3,\n \"si-pencil\": Pencil,\n \"si-plus\": Plus,\n \"si-power-off\": Power,\n \"si-refresh\": RefreshCcw,\n \"si-save\": Save,\n \"si-search\": Search,\n \"si-send\": Send,\n \"si-sliders-h\": SlidersHorizontal,\n \"si-sort-down-fill\": ArrowDownWideNarrow,\n \"si-sort-up-fill\": ArrowUpWideNarrow,\n \"si-spinner\": Loader2,\n \"si-star\": Star,\n \"si-terminal\": Terminal,\n \"si-th-large\": LayoutGrid,\n \"si-times\": X,\n \"si-times-circle\": XCircle,\n \"si-trash\": Trash2,\n \"si-upload\": Upload,\n \"si-user\": User,\n \"si-users\": Users,\n \"si-wifi\": Wifi\n} satisfies Record<string, IconComponent>;\n\nexport type SolidIconName = keyof typeof ICON_MAP;\n\nconst SPIN_CLASSNAMES = new Set([\"pi-spin\", \"si-spin\"]);\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nfunction isSolidIconName(name: string): name is SolidIconName {\n return Object.prototype.hasOwnProperty.call(ICON_MAP, name);\n}\n\nexport interface SolidIconProps extends React.SVGAttributes<SVGSVGElement> {\n name: SolidIconName;\n size?: number | string;\n spin?: boolean;\n}\n\nexport const ICON_KEYS = Object.keys(ICON_MAP) as SolidIconName[];\n\nexport function SolidIcon({ name, size = \"1em\", spin, className, ...rest }: SolidIconProps) {\n const IconComponent = ICON_MAP[name] ?? CircleHelp;\n\n return (\n <IconComponent\n size={size}\n className={cx(\"solid-icon\", spin && \"solid-icon--spin\", className)}\n {...rest}\n />\n );\n}\n\nexport type SolidIconMeta = {\n name: SolidIconName;\n spin?: boolean;\n};\n\nexport function parseSolidIconMeta(value?: string | null): SolidIconMeta | undefined {\n if (!value) return undefined;\n const tokens = value.trim().split(/\\s+/).filter(Boolean);\n if (tokens.length === 0) return undefined;\n\n let spin = false;\n let matchedName: SolidIconName | undefined;\n\n for (const token of tokens) {\n if (SPIN_CLASSNAMES.has(token)) {\n spin = true;\n continue;\n }\n\n if (!token.startsWith(\"pi-\") && !token.startsWith(\"si-\")) {\n continue;\n }\n\n const normalized = token.startsWith(\"pi-\") ? `si-${token.slice(3)}` : token;\n if (isSolidIconName(normalized)) {\n matchedName = normalized;\n }\n }\n\n if (!matchedName) return undefined;\n\n return { name: matchedName, spin };\n}\n\nexport function normalizeSolidIconName(value?: string | null): SolidIconName | undefined {\n return parseSolidIconMeta(value)?.name;\n}\n"]}
|
|
@@ -161,7 +161,7 @@ function isSolidIconName(name: string): name is SolidIconName {
|
|
|
161
161
|
return Object.prototype.hasOwnProperty.call(ICON_MAP, name);
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
export interface SolidIconProps extends React.
|
|
164
|
+
export interface SolidIconProps extends React.SVGAttributes<SVGSVGElement> {
|
|
165
165
|
name: SolidIconName;
|
|
166
166
|
size?: number | string;
|
|
167
167
|
spin?: boolean;
|
|
@@ -169,20 +169,17 @@ export interface SolidIconProps extends React.ComponentPropsWithoutRef<"svg"> {
|
|
|
169
169
|
|
|
170
170
|
export const ICON_KEYS = Object.keys(ICON_MAP) as SolidIconName[];
|
|
171
171
|
|
|
172
|
-
export
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
);
|
|
184
|
-
}
|
|
185
|
-
);
|
|
172
|
+
export function SolidIcon({ name, size = "1em", spin, className, ...rest }: SolidIconProps) {
|
|
173
|
+
const IconComponent = ICON_MAP[name] ?? CircleHelp;
|
|
174
|
+
|
|
175
|
+
return (
|
|
176
|
+
<IconComponent
|
|
177
|
+
size={size}
|
|
178
|
+
className={cx("solid-icon", spin && "solid-icon--spin", className)}
|
|
179
|
+
{...rest}
|
|
180
|
+
/>
|
|
181
|
+
);
|
|
182
|
+
}
|
|
186
183
|
|
|
187
184
|
export type SolidIconMeta = {
|
|
188
185
|
name: SolidIconName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidRichTextEditor.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidRichTextEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAc,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,2BAA2B,CAAC;AAEnC,KAAK,wBAAwB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAgCF,wBAAgB,mBAAmB,CAAC,EAClC,KAAU,EACV,QAAQ,EACR,QAAgB,EAChB,SAAS,EACT,EAAE,EACF,WAAW,EACX,OAAwB,EACxB,OAAwB,EACxB,KAAK,GACN,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"SolidRichTextEditor.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidRichTextEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAc,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,2BAA2B,CAAC;AAEnC,KAAK,wBAAwB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAgCF,wBAAgB,mBAAmB,CAAC,EAClC,KAAU,EACV,QAAQ,EACR,QAAgB,EAChB,SAAS,EACT,EAAE,EACF,WAAW,EACX,OAAwB,EACxB,OAAwB,EACxB,KAAK,GACN,EAAE,wBAAwB,2CAgG1B"}
|
|
@@ -32,6 +32,7 @@ var defaultFormats = [
|
|
|
32
32
|
];
|
|
33
33
|
export function SolidRichTextEditor(_a) {
|
|
34
34
|
var _b = _a.value, value = _b === void 0 ? "" : _b, onChange = _a.onChange, _c = _a.readOnly, readOnly = _c === void 0 ? false : _c, className = _a.className, id = _a.id, placeholder = _a.placeholder, _d = _a.modules, modules = _d === void 0 ? defaultModules : _d, _e = _a.formats, formats = _e === void 0 ? defaultFormats : _e, style = _a.style;
|
|
35
|
+
var parentRef = useRef(null);
|
|
35
36
|
var containerRef = useRef(null);
|
|
36
37
|
var quillRef = useRef(null);
|
|
37
38
|
var lastHtmlRef = useRef("");
|
|
@@ -66,8 +67,15 @@ export function SolidRichTextEditor(_a) {
|
|
|
66
67
|
};
|
|
67
68
|
quill.on("text-change", handleChange);
|
|
68
69
|
return function () {
|
|
70
|
+
var _a;
|
|
69
71
|
quill.off("text-change", handleChange);
|
|
70
72
|
quillRef.current = null;
|
|
73
|
+
// Quill creates the toolbar as a sibling to the editor container.
|
|
74
|
+
// We need to remove it specifically to avoid duplication on remount.
|
|
75
|
+
var toolbar = (_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(".ql-toolbar");
|
|
76
|
+
if (toolbar) {
|
|
77
|
+
toolbar.remove();
|
|
78
|
+
}
|
|
71
79
|
};
|
|
72
80
|
}, []);
|
|
73
81
|
useEffect(function () {
|
|
@@ -104,6 +112,6 @@ export function SolidRichTextEditor(_a) {
|
|
|
104
112
|
}
|
|
105
113
|
quill.root.setAttribute("data-placeholder", placeholder !== null && placeholder !== void 0 ? placeholder : "");
|
|
106
114
|
}, [placeholder]);
|
|
107
|
-
return (_jsx("div", { id: id, className: className, style: style, children: _jsx("div", { ref: containerRef }) }));
|
|
115
|
+
return (_jsx("div", { id: id, className: className, style: style, ref: parentRef, children: _jsx("div", { ref: containerRef }) }));
|
|
108
116
|
}
|
|
109
117
|
//# sourceMappingURL=SolidRichTextEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidRichTextEditor.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidRichTextEditor.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SolidRichTextEditor.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidRichTextEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useRef, type CSSProperties } from \"react\";\nimport Quill, { type QuillOptions } from \"quill\";\nimport \"quill/dist/quill.snow.css\";\n\ntype SolidRichTextEditorProps = {\n value?: string;\n onChange?: (value: string) => void;\n readOnly?: boolean;\n className?: string;\n id?: string;\n placeholder?: string;\n modules?: QuillOptions[\"modules\"];\n formats?: string[] | null;\n style?: CSSProperties;\n};\n\nconst defaultModules: NonNullable<QuillOptions[\"modules\"]> = {\n toolbar: [\n [{ header: [1, 2, 3, false] }],\n [\"bold\", \"italic\", \"underline\", \"strike\"],\n [{ color: [] }, { background: [] }],\n [{ script: \"sub\" }, { script: \"super\" }],\n [{ list: \"ordered\" }, { list: \"bullet\" }],\n [{ indent: \"-1\" }, { indent: \"+1\" }],\n [{ align: [] }],\n [\"link\", \"image\"],\n [\"clean\"],\n ],\n};\n\nconst defaultFormats = [\n \"header\",\n \"bold\",\n \"italic\",\n \"underline\",\n \"strike\",\n \"color\",\n \"background\",\n \"script\",\n \"list\",\n \"indent\",\n \"align\",\n \"link\",\n \"image\",\n];\n\nexport function SolidRichTextEditor({\n value = \"\",\n onChange,\n readOnly = false,\n className,\n id,\n placeholder,\n modules = defaultModules,\n formats = defaultFormats,\n style,\n}: SolidRichTextEditorProps) {\n const parentRef = useRef<HTMLDivElement | null>(null);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const quillRef = useRef<Quill | null>(null);\n const lastHtmlRef = useRef<string>(\"\");\n const onChangeRef = useRef(onChange);\n\n useEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n useEffect(() => {\n if (!containerRef.current || quillRef.current) {\n return;\n }\n\n const quill = new Quill(containerRef.current, {\n theme: \"snow\",\n readOnly,\n placeholder,\n modules,\n formats,\n });\n\n quillRef.current = quill;\n\n const initialValue = value ?? \"\";\n const delta = quill.clipboard.convert({ html: initialValue });\n quill.setContents(delta, Quill.sources.SILENT);\n lastHtmlRef.current = initialValue;\n\n const handleChange = (_delta: unknown, _oldContents: unknown, source: string) => {\n if (source !== Quill.sources.USER) {\n return;\n }\n const html = quill.root.innerHTML;\n lastHtmlRef.current = html;\n onChangeRef.current?.(html);\n };\n\n quill.on(\"text-change\", handleChange);\n\n return () => {\n quill.off(\"text-change\", handleChange);\n quillRef.current = null;\n // Quill creates the toolbar as a sibling to the editor container.\n // We need to remove it specifically to avoid duplication on remount.\n const toolbar = parentRef.current?.querySelector(\".ql-toolbar\");\n if (toolbar) {\n toolbar.remove();\n }\n };\n }, []);\n\n useEffect(() => {\n const quill = quillRef.current;\n if (!quill) {\n return;\n }\n const normalizedHtml = value ?? \"\";\n if (normalizedHtml === lastHtmlRef.current) {\n return;\n }\n\n const selection = quill.getSelection();\n const delta = quill.clipboard.convert({ html: normalizedHtml });\n quill.setContents(delta, Quill.sources.SILENT);\n if (selection) {\n const index = Math.min(selection.index, quill.getLength());\n const length = selection.length ?? 0;\n quill.setSelection(index, length, Quill.sources.SILENT);\n }\n lastHtmlRef.current = normalizedHtml;\n }, [value]);\n\n useEffect(() => {\n const quill = quillRef.current;\n if (!quill) {\n return;\n }\n quill.enable(!readOnly);\n }, [readOnly]);\n\n useEffect(() => {\n const quill = quillRef.current;\n if (!quill) {\n return;\n }\n quill.root.setAttribute(\"data-placeholder\", placeholder ?? \"\");\n }, [placeholder]);\n\n return (\n <div id={id} className={className} style={style} ref={parentRef}>\n <div ref={containerRef} />\n </div>\n );\n}\n"]}
|
|
@@ -55,6 +55,7 @@ export function SolidRichTextEditor({
|
|
|
55
55
|
formats = defaultFormats,
|
|
56
56
|
style,
|
|
57
57
|
}: SolidRichTextEditorProps) {
|
|
58
|
+
const parentRef = useRef<HTMLDivElement | null>(null);
|
|
58
59
|
const containerRef = useRef<HTMLDivElement | null>(null);
|
|
59
60
|
const quillRef = useRef<Quill | null>(null);
|
|
60
61
|
const lastHtmlRef = useRef<string>("");
|
|
@@ -98,6 +99,12 @@ export function SolidRichTextEditor({
|
|
|
98
99
|
return () => {
|
|
99
100
|
quill.off("text-change", handleChange);
|
|
100
101
|
quillRef.current = null;
|
|
102
|
+
// Quill creates the toolbar as a sibling to the editor container.
|
|
103
|
+
// We need to remove it specifically to avoid duplication on remount.
|
|
104
|
+
const toolbar = parentRef.current?.querySelector(".ql-toolbar");
|
|
105
|
+
if (toolbar) {
|
|
106
|
+
toolbar.remove();
|
|
107
|
+
}
|
|
101
108
|
};
|
|
102
109
|
}, []);
|
|
103
110
|
|
|
@@ -139,7 +146,7 @@ export function SolidRichTextEditor({
|
|
|
139
146
|
}, [placeholder]);
|
|
140
147
|
|
|
141
148
|
return (
|
|
142
|
-
<div id={id} className={className} style={style}>
|
|
149
|
+
<div id={id} className={className} style={style} ref={parentRef}>
|
|
143
150
|
<div ref={containerRef} />
|
|
144
151
|
</div>
|
|
145
152
|
);
|
|
@@ -13,9 +13,10 @@ type SolidTabGroupProps = {
|
|
|
13
13
|
listClassName?: string;
|
|
14
14
|
panelClassName?: string;
|
|
15
15
|
tabPosition?: "left" | "center" | "right";
|
|
16
|
+
orientation?: "horizontal" | "vertical";
|
|
16
17
|
extra?: React.ReactNode;
|
|
17
18
|
};
|
|
18
19
|
export declare function SolidTab(_props: SolidTabProps): null;
|
|
19
|
-
export declare function SolidTabGroup({ tabs, value, onValueChange, className, listClassName, panelClassName, tabPosition, extra, }: SolidTabGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare function SolidTabGroup({ tabs, value, onValueChange, className, listClassName, panelClassName, tabPosition, orientation, extra, }: SolidTabGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
20
21
|
export {};
|
|
21
22
|
//# sourceMappingURL=SolidTabs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidTabs.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,QAE7C;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAoB,EACpB,KAAK,GACN,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"SolidTabs.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,QAE7C;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAoB,EACpB,WAA0B,EAC1B,KAAK,GACN,EAAE,kBAAkB,2CAwFpB"}
|
|
@@ -10,8 +10,8 @@ export function SolidTab(_props) {
|
|
|
10
10
|
return null;
|
|
11
11
|
}
|
|
12
12
|
export function SolidTabGroup(_a) {
|
|
13
|
-
var tabs = _a.tabs, value = _a.value, onValueChange = _a.onValueChange, className = _a.className, listClassName = _a.listClassName, panelClassName = _a.panelClassName, _b = _a.tabPosition, tabPosition = _b === void 0 ? "left" : _b, extra = _a.extra;
|
|
14
|
-
return (_jsxs("div", { className: cx("solid-notebook", "solid-tabs", "solid-tabs--".concat(tabPosition), className), children: [_jsxs("div", { className: cx("solid-notebook-tablist", "solid-tabs-list", listClassName), role: "tablist", style: extra ? { display: "flex", alignItems: "center", justifyContent: "space-between" } : undefined, children: [extra ? (_jsx("div", { style: { display: "flex" }, children: tabs.map(function (tab) {
|
|
13
|
+
var tabs = _a.tabs, value = _a.value, onValueChange = _a.onValueChange, className = _a.className, listClassName = _a.listClassName, panelClassName = _a.panelClassName, _b = _a.tabPosition, tabPosition = _b === void 0 ? "left" : _b, _c = _a.orientation, orientation = _c === void 0 ? "horizontal" : _c, extra = _a.extra;
|
|
14
|
+
return (_jsxs("div", { className: cx("solid-notebook", "solid-tabs", "solid-tabs--".concat(tabPosition), orientation === "vertical" && "solid-tabs--vertical", className), children: [_jsxs("div", { className: cx("solid-notebook-tablist", "solid-tabs-list", listClassName), role: "tablist", "aria-orientation": orientation, style: extra ? { display: "flex", alignItems: "center", justifyContent: "space-between" } : undefined, children: [extra ? (_jsx("div", { style: { display: "flex" }, children: tabs.map(function (tab) {
|
|
15
15
|
var isActive = tab.value === value;
|
|
16
16
|
return (_jsx("button", { type: "button", role: "tab", "aria-selected": isActive, "aria-controls": "solid-tab-panel-".concat(tab.value), id: "solid-tab-".concat(tab.value), className: cx("solid-notebook-tab-trigger", "solid-tabs-trigger", tab.hasError && "error", isActive && "active", isActive && "is-active"), onClick: function () { return onValueChange(tab.value); }, children: tab.label }, tab.value));
|
|
17
17
|
}) })) : (tabs.map(function (tab) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\ntype SolidTabProps = {\n value: string;\n label: React.ReactNode;\n content: React.ReactNode;\n hasError?: boolean;\n};\n\ntype SolidTabGroupProps = {\n tabs: SolidTabProps[];\n value: string;\n onValueChange: (value: string) => void;\n className?: string;\n listClassName?: string;\n panelClassName?: string;\n tabPosition?: \"left\" | \"center\" | \"right\";\n orientation?: \"horizontal\" | \"vertical\";\n extra?: React.ReactNode;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidTab(_props: SolidTabProps) {\n return null;\n}\n\nexport function SolidTabGroup({\n tabs,\n value,\n onValueChange,\n className,\n listClassName,\n panelClassName,\n tabPosition = \"left\",\n orientation = \"horizontal\",\n extra,\n}: SolidTabGroupProps) {\n return (\n <div\n className={cx(\n \"solid-notebook\",\n \"solid-tabs\",\n `solid-tabs--${tabPosition}`,\n orientation === \"vertical\" && \"solid-tabs--vertical\",\n className,\n )}\n >\n <div\n className={cx(\"solid-notebook-tablist\", \"solid-tabs-list\", listClassName)}\n role=\"tablist\"\n aria-orientation={orientation}\n style={extra ? { display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" } : undefined}\n >\n {extra ? (\n <div style={{ display: \"flex\" }}>\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })}\n </div>\n ) : (\n tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })\n )}\n {extra && <div>{extra}</div>}\n </div>\n\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <div\n key={tab.value}\n role=\"tabpanel\"\n id={`solid-tab-panel-${tab.value}`}\n aria-labelledby={`solid-tab-${tab.value}`}\n hidden={!isActive}\n className={cx(\"solid-notebook-content\", \"solid-tabs-panel\", panelClassName)}\n >\n {isActive ? tab.content : null}\n </div>\n );\n })}\n </div>\n );\n}\n"]}
|