@solidxai/core-ui 0.1.9-beta.20 → 0.1.9-beta.21
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/README.md +1 -1
- package/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +23 -19
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +62 -52
- package/dist/components/auth/ForgotPasswordThankYou.js +1 -1
- package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
- package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -2
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.d.ts +2 -0
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.d.ts.map +1 -0
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.js +112 -0
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.js.map +1 -0
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.tsx +78 -0
- package/dist/components/auth/SolidChangeForcePassword.js +2 -2
- package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
- package/dist/components/auth/SolidChangeForcePassword.tsx +13 -13
- package/dist/components/auth/SolidForgotPassword.js +1 -1
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.tsx +3 -3
- package/dist/components/auth/SolidInitialLoginOtp.js +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +2 -2
- package/dist/components/auth/SolidInitiateRegisterOtp.js +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.tsx +2 -2
- package/dist/components/auth/SolidLogin.js +4 -4
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +11 -11
- package/dist/components/auth/SolidRegister.js +6 -6
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +14 -14
- package/dist/components/auth/SolidResetPassword.js +2 -2
- package/dist/components/auth/SolidResetPassword.js.map +1 -1
- package/dist/components/auth/SolidResetPassword.tsx +8 -8
- package/dist/components/common/BackButton.js +1 -1
- package/dist/components/common/BackButton.js.map +1 -1
- package/dist/components/common/BackButton.tsx +1 -1
- package/dist/components/common/CancelButton.js +2 -2
- package/dist/components/common/CancelButton.js.map +1 -1
- package/dist/components/common/CancelButton.tsx +3 -3
- package/dist/components/common/GeneralSettings.js +18 -18
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +136 -136
- package/dist/components/common/SolidExport.d.ts +1 -1
- package/dist/components/common/SolidExport.d.ts.map +1 -1
- package/dist/components/common/SolidExport.js +10 -3
- package/dist/components/common/SolidExport.js.map +1 -1
- package/dist/components/common/SolidExport.tsx +10 -2
- package/dist/components/common/SolidFormHeader.js +1 -1
- package/dist/components/common/SolidFormHeader.js.map +1 -1
- package/dist/components/common/SolidFormHeader.tsx +1 -1
- package/dist/components/common/SolidModuleHome.js +2 -2
- package/dist/components/common/SolidModuleHome.js.map +1 -1
- package/dist/components/common/SolidModuleHome.tsx +7 -7
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +3 -3
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +6 -6
- package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.tsx +4 -4
- package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.tsx +4 -4
- package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js +1 -1
- package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js.map +1 -1
- package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.tsx +1 -1
- package/dist/components/core/card/SolidCardView.js +1 -1
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +5 -5
- package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
- 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 +5 -1
- package/dist/components/core/chatter/SolidChatter.js +5 -5
- package/dist/components/core/chatter/SolidChatter.js.map +1 -1
- package/dist/components/core/chatter/SolidChatter.tsx +8 -8
- package/dist/components/core/chatter/SolidChatterAuditMessage.js +1 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +2 -2
- package/dist/components/core/chatter/SolidChatterHeader.js +2 -2
- package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.tsx +6 -6
- package/dist/components/core/chatter/SolidChatterMessageBox.js +4 -4
- package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.tsx +12 -12
- package/dist/components/core/chatter/SolidMessageComposer.js +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.tsx +7 -7
- package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
- package/dist/components/core/common/SolidCreateButton.js +16 -1
- package/dist/components/core/common/SolidCreateButton.js.map +1 -1
- package/dist/components/core/common/SolidCreateButton.tsx +18 -1
- package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +60 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +2 -2
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js +19 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +16 -3
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +168 -26
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +174 -10
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +46 -36
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +77 -40
- package/dist/components/core/common/SolidLayoutViews.js +2 -2
- package/dist/components/core/common/SolidLayoutViews.js.map +1 -1
- package/dist/components/core/common/SolidLayoutViews.tsx +4 -4
- package/dist/components/core/common/SolidListViewOptions.js +1 -1
- package/dist/components/core/common/SolidListViewOptions.js.map +1 -1
- package/dist/components/core/common/SolidListViewOptions.tsx +1 -1
- package/dist/components/core/common/SolidPasswordHelperText.js +2 -2
- package/dist/components/core/common/SolidPasswordHelperText.js.map +1 -1
- package/dist/components/core/common/SolidPasswordHelperText.tsx +4 -4
- package/dist/components/core/common/SolidSearchBox.js +1 -1
- package/dist/components/core/common/SolidSearchBox.js.map +1 -1
- package/dist/components/core/common/SolidSearchBox.tsx +1 -1
- package/dist/components/core/common/SolidXAiIframe.js +1 -1
- package/dist/components/core/common/SolidXAiIframe.js.map +1 -1
- package/dist/components/core/common/SolidXAiIframe.tsx +1 -1
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js +1 -1
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.tsx +2 -2
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +2 -2
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +4 -4
- package/dist/components/core/field/FieldListViewData.js +2 -2
- package/dist/components/core/field/FieldListViewData.js.map +1 -1
- package/dist/components/core/field/FieldListViewData.tsx +5 -5
- package/dist/components/core/filter/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidBooleanField.js +2 -2
- package/dist/components/core/filter/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidBooleanField.tsx +3 -12
- package/dist/components/core/filter/fields/SolidDateField.js +2 -2
- package/dist/components/core/filter/fields/SolidDateField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidDateField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidDatetimeField.js +2 -2
- package/dist/components/core/filter/fields/SolidDatetimeField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidDatetimeField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidExternalIdField.js +2 -2
- package/dist/components/core/filter/fields/SolidExternalIdField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidExternalIdField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidIdField.js +2 -2
- package/dist/components/core/filter/fields/SolidIdField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidIdField.tsx +2 -2
- package/dist/components/core/filter/fields/SolidIntField.js +2 -2
- package/dist/components/core/filter/fields/SolidIntField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidIntField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidMediaMultipleField.js +2 -2
- package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidMediaSingleField.js +2 -2
- package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.js +2 -2
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidSelectionStaticField.js +2 -2
- package/dist/components/core/filter/fields/SolidSelectionStaticField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidShortTextField.js +2 -2
- package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidShortTextField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidTimeField.js +2 -2
- package/dist/components/core/filter/fields/SolidTimeField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidTimeField.tsx +3 -3
- package/dist/components/core/filter/fields/SolidUuidField.js +2 -2
- package/dist/components/core/filter/fields/SolidUuidField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidUuidField.tsx +4 -4
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js +2 -2
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +3 -3
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js +2 -2
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +3 -3
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +2 -2
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +3 -3
- package/dist/components/core/form/SolidFormActionHeader.js +8 -8
- package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.tsx +13 -13
- package/dist/components/core/form/SolidFormFieldRender.js +1 -1
- package/dist/components/core/form/SolidFormFieldRender.js.map +1 -1
- package/dist/components/core/form/SolidFormFieldRender.tsx +1 -1
- package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormFooter.js +12 -5
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +14 -5
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +200 -65
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +188 -41
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +5 -1
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +5 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +5 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +5 -1
- package/dist/components/core/form/SolidFormViewShimmerLoading.js +1 -1
- package/dist/components/core/form/SolidFormViewShimmerLoading.js.map +1 -1
- package/dist/components/core/form/SolidFormViewShimmerLoading.tsx +46 -46
- package/dist/components/core/form/fields/SolidBooleanField.js +3 -3
- package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.tsx +3 -3
- package/dist/components/core/form/fields/SolidComputedField.js +1 -1
- package/dist/components/core/form/fields/SolidComputedField.js.map +1 -1
- package/dist/components/core/form/fields/SolidComputedField.tsx +1 -1
- package/dist/components/core/form/fields/SolidDateField.js +2 -2
- package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateField.tsx +2 -2
- package/dist/components/core/form/fields/SolidDateTimeField.js +2 -2
- package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateTimeField.tsx +2 -2
- package/dist/components/core/form/fields/SolidDecimalField.js +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.tsx +1 -1
- package/dist/components/core/form/fields/SolidEmailField.js +1 -1
- package/dist/components/core/form/fields/SolidEmailField.js.map +1 -1
- package/dist/components/core/form/fields/SolidEmailField.tsx +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.js +3 -3
- package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.tsx +3 -3
- package/dist/components/core/form/fields/SolidJsonField.js +3 -3
- package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
- package/dist/components/core/form/fields/SolidJsonField.tsx +3 -3
- package/dist/components/core/form/fields/SolidLongTextField.js +6 -6
- package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.tsx +12 -12
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +11 -11
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +28 -28
- package/dist/components/core/form/fields/SolidMediaSingleField.js +5 -5
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +9 -9
- package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.js +12 -6
- package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.tsx +13 -6
- package/dist/components/core/form/fields/SolidRichTextField.js +2 -2
- package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.tsx +2 -2
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js +2 -2
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +2 -2
- package/dist/components/core/form/fields/SolidSelectionStaticField.js +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.js +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.tsx +1 -1
- package/dist/components/core/form/fields/SolidTimeField.js +2 -2
- package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
- package/dist/components/core/form/fields/SolidTimeField.tsx +2 -2
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +7 -11
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +18 -63
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +63 -164
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +6 -6
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -36
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +6 -6
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +6 -6
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +10 -10
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +20 -25
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.tsx +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.tsx +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +5 -5
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +17 -17
- package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.tsx +1 -1
- package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.tsx +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.js +2 -2
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +2 -1
- package/dist/components/core/kanban/KanbanCard.d.ts +1 -0
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +15 -4
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +27 -4
- package/dist/components/core/kanban/KanbanColumn.d.ts +2 -1
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +4 -4
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.tsx +5 -4
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +44 -39
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +22 -10
- package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
- 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 +5 -1
- package/dist/components/core/list/ListViewRowActionPopup.js +1 -1
- package/dist/components/core/list/ListViewRowActionPopup.js.map +1 -1
- package/dist/components/core/list/ListViewRowActionPopup.tsx +1 -2
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +3 -3
- package/dist/components/core/list/SolidDataTable.js +1 -1
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +1 -1
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +14 -6
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +21 -13
- package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
- 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 +5 -1
- package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderButton.js +5 -1
- package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderButton.tsx +5 -1
- package/dist/components/core/list/SolidListingHeader.js +1 -1
- package/dist/components/core/list/SolidListingHeader.js.map +1 -1
- package/dist/components/core/list/SolidListingHeader.tsx +4 -4
- package/dist/components/core/list/SolidTableRowCell.js +1 -1
- package/dist/components/core/list/SolidTableRowCell.js.map +1 -1
- package/dist/components/core/list/SolidTableRowCell.tsx +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +5 -5
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +8 -8
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js +3 -3
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -3
- package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.js +1 -1
- package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.js.map +1 -1
- package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.tsx +1 -1
- package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js +1 -1
- package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js.map +1 -1
- package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +1 -2
- package/dist/components/core/locales/SolidLocale.js +3 -3
- package/dist/components/core/locales/SolidLocale.js.map +1 -1
- package/dist/components/core/locales/SolidLocale.tsx +7 -7
- package/dist/components/core/locales/solid-locale.css +5 -4
- package/dist/components/core/model/FieldMetaData.js +2 -2
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +2 -2
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +50 -50
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +74 -229
- package/dist/components/core/model/ModelListViewData.js +4 -4
- package/dist/components/core/model/ModelListViewData.js.map +1 -1
- package/dist/components/core/model/ModelListViewData.tsx +7 -7
- package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +2 -2
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +3 -58
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +3 -17
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +18 -32
- package/dist/components/core/module/ModuleListViewData.js +5 -5
- package/dist/components/core/module/ModuleListViewData.js.map +1 -1
- package/dist/components/core/module/ModuleListViewData.tsx +8 -8
- package/dist/components/core/module/ModuleMetadataExplorer.js +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.tsx +1 -1
- package/dist/components/core/solid-ai/SolidAiChat.module.css +2 -2
- package/dist/components/core/tree/SolidTreeTable.js +1 -1
- package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.tsx +1 -1
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +3 -3
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +14 -10
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +8 -10
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +18 -36
- package/dist/components/core/users/CreateUserRole.js +2 -2
- package/dist/components/core/users/CreateUserRole.js.map +1 -1
- package/dist/components/core/users/CreateUserRole.tsx +9 -9
- package/dist/components/core/users/UserListView.js +4 -4
- package/dist/components/core/users/UserListView.js.map +1 -1
- package/dist/components/core/users/UserListView.tsx +6 -6
- package/dist/components/layout/AdminHeaderActions.d.ts +1 -0
- package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
- package/dist/components/layout/AdminHeaderActions.js +1 -1
- package/dist/components/layout/AdminHeaderActions.js.map +1 -1
- package/dist/components/layout/AdminHeaderActions.tsx +1 -1
- package/dist/components/layout/AdminSidebar.js +1 -1
- package/dist/components/layout/AdminSidebar.js.map +1 -1
- package/dist/components/layout/AdminSidebar.tsx +1 -1
- package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
- package/dist/components/layout/AdminTopHeader.js +21 -3
- package/dist/components/layout/AdminTopHeader.js.map +1 -1
- package/dist/components/layout/AdminTopHeader.tsx +64 -2
- package/dist/components/layout/CustomPagination.js +0 -1
- package/dist/components/layout/CustomPagination.js.map +1 -1
- package/dist/components/layout/CustomPagination.tsx +0 -1
- package/dist/components/layout/FilterMenu.js +1 -1
- package/dist/components/layout/FilterMenu.js.map +1 -1
- package/dist/components/layout/FilterMenu.tsx +4 -4
- package/dist/components/layout/Footer.js +1 -1
- package/dist/components/layout/Footer.js.map +1 -1
- package/dist/components/layout/Footer.tsx +1 -1
- package/dist/components/layout/GlobalSearch.js +1 -1
- package/dist/components/layout/GlobalSearch.js.map +1 -1
- package/dist/components/layout/GlobalSearch.tsx +1 -1
- package/dist/components/layout/ListingHeader.js +3 -3
- package/dist/components/layout/ListingHeader.js.map +1 -1
- package/dist/components/layout/ListingHeader.tsx +4 -4
- package/dist/components/layout/Loader.js +1 -1
- package/dist/components/layout/Loader.js.map +1 -1
- package/dist/components/layout/Loader.tsx +1 -1
- package/dist/components/layout/UserSidebar.js +1 -1
- package/dist/components/layout/UserSidebar.js.map +1 -1
- package/dist/components/layout/UserSidebar.tsx +1 -1
- package/dist/components/layout/navbar-one.js +2 -2
- package/dist/components/layout/navbar-one.js.map +1 -1
- package/dist/components/layout/navbar-one.tsx +8 -8
- package/dist/components/layout/navbar-two-menu.js +2 -2
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.tsx +7 -7
- package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.js +3 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +3 -0
- package/dist/components/shad-cn-ui/SolidPopover.d.ts +1 -0
- package/dist/components/shad-cn-ui/SolidPopover.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidPopover.js +124 -5
- package/dist/components/shad-cn-ui/SolidPopover.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidPopover.tsx +173 -10
- package/dist/constants/error-messages.d.ts +13 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +17 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/constants/error-messages.ts +15 -0
- package/dist/resources/globals.css +32 -1
- package/dist/resources/solid-custom.css +6565 -0
- package/dist/resources/solid-primereact.css +14 -12
- package/dist/resources/solid-responsive.css +25 -2
- package/dist/resources/solid-tailwind-generated.css +1 -0
- package/dist/resources/solid-tailwind.css +3 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.d.ts +2 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.d.ts.map +1 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.js +6 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.js.map +1 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.tsx +5 -0
- package/dist/routes/pages/auth/SsoPage.js +1 -1
- package/dist/routes/pages/auth/SsoPage.js.map +1 -1
- package/dist/routes/pages/auth/SsoPage.tsx +1 -1
- package/dist/styles.d.ts +2 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +2 -1
- package/dist/styles.js.map +1 -1
- package/dist/styles.ts +2 -1
- package/package.json +6 -3
|
@@ -68,7 +68,7 @@ const NavbarOne = () => {
|
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
return (
|
|
71
|
-
<div className="flex flex-
|
|
71
|
+
<div className="flex flex-col md:flex-row justify-between navBar">
|
|
72
72
|
|
|
73
73
|
{/* commented this as this is not working properly @Jenendar to figure this out... */}
|
|
74
74
|
{currentMainMenu && (
|
|
@@ -117,7 +117,7 @@ const NavbarOne = () => {
|
|
|
117
117
|
</div>
|
|
118
118
|
{currentMenu && (
|
|
119
119
|
<div className={visibleNavbar ? "show navBarTwo" : "hide navBarTwo"}>
|
|
120
|
-
<div className="flex relative justify-
|
|
120
|
+
<div className="flex relative justify-between items-center pt-6 px-4 pb-4 mb-4">
|
|
121
121
|
<div className="absolute bottom-0" style={{ width: 50, height: 0.8, background: '#d8e2ea' }}></div>
|
|
122
122
|
{!isSearchShow && <div className="text-base font-semibold">{currentMainMenu && currentMainMenu}</div>}
|
|
123
123
|
{isSearchShow === false && (
|
|
@@ -125,7 +125,7 @@ const NavbarOne = () => {
|
|
|
125
125
|
variant="ghost"
|
|
126
126
|
size="sm"
|
|
127
127
|
aria-label="Search"
|
|
128
|
-
className="transparent-background min-w-0
|
|
128
|
+
className="transparent-background min-w-0 rounded border border-[var(--surface-200)] px-2 py-1"
|
|
129
129
|
onClick={() => setSearchShow(true)}
|
|
130
130
|
leftIcon={<SolidIcon name="si-search" />}
|
|
131
131
|
/>
|
|
@@ -137,7 +137,7 @@ const NavbarOne = () => {
|
|
|
137
137
|
<input
|
|
138
138
|
type="text"
|
|
139
139
|
placeholder="Search"
|
|
140
|
-
className="small-input text-sm w-full pr-
|
|
140
|
+
className="small-input text-sm w-full pr-12"
|
|
141
141
|
value={searchTerm}
|
|
142
142
|
onChange={(event) => setSearchTerm(event.target.value)}
|
|
143
143
|
/>
|
|
@@ -152,7 +152,7 @@ const NavbarOne = () => {
|
|
|
152
152
|
</div>
|
|
153
153
|
)}
|
|
154
154
|
{/* <div className="input-icon inputDiv navtwo-searchbox">
|
|
155
|
-
<i className="pi pi-search
|
|
155
|
+
<i className="pi pi-search" style={{ color: '#8D9199' }}></i>
|
|
156
156
|
<input
|
|
157
157
|
type="text"
|
|
158
158
|
placeholder="Jump to."
|
|
@@ -169,7 +169,7 @@ const NavbarOne = () => {
|
|
|
169
169
|
/>
|
|
170
170
|
</div> */}
|
|
171
171
|
</div>
|
|
172
|
-
{/* <div className="flex flex-
|
|
172
|
+
{/* <div className="flex flex-col md:flex-row navtwo-header justify-between">
|
|
173
173
|
<div className="text-sm font-semibold">{currentMainMenu && currentMainMenu}</div> */}
|
|
174
174
|
{/* <a
|
|
175
175
|
className={
|
|
@@ -190,7 +190,7 @@ const NavbarOne = () => {
|
|
|
190
190
|
{/* <div className="p-inputgroup navtwo-searchbox">
|
|
191
191
|
|
|
192
192
|
<span className="p-inputgroup-addon">
|
|
193
|
-
<i className="pi pi-search
|
|
193
|
+
<i className="pi pi-search"></i>
|
|
194
194
|
</span>
|
|
195
195
|
<InputText
|
|
196
196
|
placeholder="Search"
|
|
@@ -199,7 +199,7 @@ const NavbarOne = () => {
|
|
|
199
199
|
<span className="p-inputgroup-addon">⌘+k</span>
|
|
200
200
|
</div> */}
|
|
201
201
|
{/* <div className="input-icon inputDiv navtwo-searchbox">
|
|
202
|
-
<i className="pi pi-search
|
|
202
|
+
<i className="pi pi-search" style={{ color: '#8D9199' }}></i>
|
|
203
203
|
<input
|
|
204
204
|
type="text"
|
|
205
205
|
placeholder="Jump to."
|
|
@@ -27,7 +27,7 @@ var NavbarTwoMenu = function (_a) {
|
|
|
27
27
|
var _a, _b;
|
|
28
28
|
var isSelected = activeId !== null && item.id !== null && item.id === activeId;
|
|
29
29
|
var isParentActive = activeId !== null && ((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) > 0 && hasActiveChild(item.items);
|
|
30
|
-
return (_jsx("div", { className: "flex
|
|
30
|
+
return (_jsx("div", { className: "flex items-center cursor-pointer menuHead px-4 ".concat(isSelected || isParentActive ? "p-highlight" : ""), onClick: options.onClick, children: _jsxs(Link, { href: (item === null || item === void 0 ? void 0 : item.url) ? item === null || item === void 0 ? void 0 : item.url : "#", className: "w-full flex justify-between font-normal", children: [_jsxs("div", { className: "flex items-center", style: { gap: 10 }, children: [item.icon && (
|
|
31
31
|
// material-symbols-${item.iconVariant ?? 'outlined'}
|
|
32
32
|
_jsx("span", { className: "material-symbols-outlined", style: { fontSize: 18 }, children: item.icon })), _jsx("span", { children: item.label })] }), ((_b = item === null || item === void 0 ? void 0 : item.items) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
|
|
33
33
|
_jsx("span", { className: "sidebar-chevrons ".concat(expandedKeys[item.key] ? "pi pi-angle-up" : "pi pi-angle-down") })] }) }, item === null || item === void 0 ? void 0 : item.key));
|
|
@@ -76,7 +76,7 @@ var NavbarTwoMenu = function (_a) {
|
|
|
76
76
|
var isExpanded = !!expandedKeys[item.key];
|
|
77
77
|
var isSelected = activeId !== null && item.id !== null && item.id === activeId;
|
|
78
78
|
var isParentActive = hasChildren && hasActiveChild(item.items);
|
|
79
|
-
return (_jsxs("li", { children: [_jsxs("div", { className: "flex
|
|
79
|
+
return (_jsxs("li", { children: [_jsxs("div", { className: "flex items-center cursor-pointer menuHead px-4 ".concat(isSelected || isParentActive ? "p-highlight" : ""), children: [_jsx(Link, { href: (item === null || item === void 0 ? void 0 : item.url) ? item === null || item === void 0 ? void 0 : item.url : "#", className: "w-full flex justify-between font-normal", children: _jsxs("div", { className: "flex items-center", style: { gap: 10 }, children: [item.icon && (_jsx("span", { className: "material-symbols-outlined", style: { fontSize: 18 }, children: item.icon })), _jsx("span", { children: item.label })] }) }), hasChildren && (_jsx("button", { type: "button", className: "sidebar-chevrons-button", onClick: function () { return toggleExpansion(item.key); }, "aria-label": "Toggle ".concat(item.label, " menu"), children: _jsx("span", { className: "sidebar-chevrons ".concat(isExpanded ? "pi pi-angle-up" : "pi pi-angle-down") }) }))] }), hasChildren && isExpanded && (_jsx("div", { className: "solid-panel-menu-children pl-6", children: renderMenuItems(item.items) }))] }, item.key));
|
|
80
80
|
}) }));
|
|
81
81
|
};
|
|
82
82
|
return _jsx("div", { className: "solid-panel-menu", children: renderMenuItems(items) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navbar-two-menu.js","sourceRoot":"","sources":["../../../src/components/layout/navbar-two-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import Link from \"../common/Link\";\nimport { useState, useEffect } from \"react\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\n\nconst NavbarTwoMenu = ({ menuItems }: any) => {\n const searchParams = useSearchParams();\n const [expandedKeys, setExpandedKeys] = useState<any>({});\n\n const activeId = searchParams.get(\"menuItemId\");\n const hasActiveChild = (items: any[]): boolean => {\n if (!activeId) return false;\n return items?.some((item) =>\n (item.id !== null && item.id === activeId) || hasActiveChild(item.items ?? [])\n );\n };\n const itemRenderer = (item: any, options: any) => {\n const isSelected = activeId !== null && item.id !== null && item.id === activeId;\n const isParentActive = activeId !== null && item.items?.length > 0 && hasActiveChild(item.items);\n return (\n <div key={item?.key} className={`flex align-items-center cursor-pointer menuHead px-3 ${isSelected || isParentActive ? \"p-highlight\" : \"\"}`} onClick={options.onClick} >\n <Link href={item?.url ? item?.url : \"#\"} className=\"w-full flex justify-content-between font-normal\">\n <div className=\"flex align-items-center\" style={{ gap: 10 }}>\n {item.icon && (\n // material-symbols-${item.iconVariant ?? 'outlined'}\n <span className=\"material-symbols-outlined\" style={{ fontSize: 18 }}>\n {item.icon}\n </span>\n )}\n <span>\n {item.label}\n </span>\n </div>\n {item?.items?.length > 0 &&\n <span className={`sidebar-chevrons ${expandedKeys[item.key] ? \"pi pi-angle-up\" : \"pi pi-angle-down\"}`} />\n }\n </Link>\n </div>\n )\n };\n\n const createMenuItems = (menuItems: any[]): any[] =>\n menuItems.map((mi) => {\n const menuItemId = new URLSearchParams(mi.path?.split(\"?\")[1]).get(\"menuItemId\");\n return {\n key: mi.key,\n id: menuItemId, // ← extracted from path\n label: mi.title,\n icon: mi.icon ?? \"\",\n // iconVariant: mi.iconVariant,\n template: itemRenderer,\n url: mi.path ?? null,\n items: mi.children ? createMenuItems(mi.children) : null,\n };\n })\n\n\n const items = createMenuItems(menuItems);\n\n // Auto-expand parents with active child when activeId changes\n useEffect(() => {\n const newExpandedKeys: any = {};\n const expandIfActive = (items: any[]) => {\n items?.forEach((item) => {\n if (item.items?.length && hasActiveChild(item.items)) {\n newExpandedKeys[item.key] = true;\n expandIfActive(item.items);\n }\n });\n };\n expandIfActive(createMenuItems(menuItems));\n setExpandedKeys((prev: any) => ({ ...prev, ...newExpandedKeys }));\n }, [activeId]);\n\n const toggleExpansion = (key: string) => {\n setExpandedKeys((prev: any) => ({ ...prev, [key]: !prev[key] }));\n };\n\n const renderMenuItems = (menuItems: any[]): React.ReactNode => {\n return (\n <ul className=\"solid-panel-menu-list\">\n {menuItems.map((item) => {\n const hasChildren = item.items && item.items.length > 0;\n const isExpanded = !!expandedKeys[item.key];\n const isSelected = activeId !== null && item.id !== null && item.id === activeId;\n const isParentActive = hasChildren && hasActiveChild(item.items);\n\n return (\n <li key={item.key}>\n <div className={`flex align-items-center cursor-pointer menuHead px-3 ${isSelected || isParentActive ? \"p-highlight\" : \"\"}`}>\n <Link href={item?.url ? item?.url : \"#\"} className=\"w-full flex justify-content-between font-normal\">\n <div className=\"flex align-items-center\" style={{ gap: 10 }}>\n {item.icon && (\n <span className=\"material-symbols-outlined\" style={{ fontSize: 18 }}>\n {item.icon}\n </span>\n )}\n <span>{item.label}</span>\n </div>\n </Link>\n {hasChildren && (\n <button\n type=\"button\"\n className=\"sidebar-chevrons-button\"\n onClick={() => toggleExpansion(item.key)}\n aria-label={`Toggle ${item.label} menu`}\n >\n <span className={`sidebar-chevrons ${isExpanded ? \"pi pi-angle-up\" : \"pi pi-angle-down\"}`} />\n </button>\n )}\n </div>\n {hasChildren && isExpanded && (\n <div className=\"solid-panel-menu-children pl-3\">\n {renderMenuItems(item.items)}\n </div>\n )}\n </li>\n );\n })}\n </ul>\n );\n };\n\n return <div className=\"solid-panel-menu\">{renderMenuItems(items)}</div>;\n};\n\nexport default NavbarTwoMenu;\n"]}
|
|
1
|
+
{"version":3,"file":"navbar-two-menu.js","sourceRoot":"","sources":["../../../src/components/layout/navbar-two-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import Link from \"../common/Link\";\nimport { useState, useEffect } from \"react\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\n\nconst NavbarTwoMenu = ({ menuItems }: any) => {\n const searchParams = useSearchParams();\n const [expandedKeys, setExpandedKeys] = useState<any>({});\n\n const activeId = searchParams.get(\"menuItemId\");\n const hasActiveChild = (items: any[]): boolean => {\n if (!activeId) return false;\n return items?.some((item) =>\n (item.id !== null && item.id === activeId) || hasActiveChild(item.items ?? [])\n );\n };\n const itemRenderer = (item: any, options: any) => {\n const isSelected = activeId !== null && item.id !== null && item.id === activeId;\n const isParentActive = activeId !== null && item.items?.length > 0 && hasActiveChild(item.items);\n return (\n <div key={item?.key} className={`flex items-center cursor-pointer menuHead px-4 ${isSelected || isParentActive ? \"p-highlight\" : \"\"}`} onClick={options.onClick} >\n <Link href={item?.url ? item?.url : \"#\"} className=\"w-full flex justify-between font-normal\">\n <div className=\"flex items-center\" style={{ gap: 10 }}>\n {item.icon && (\n // material-symbols-${item.iconVariant ?? 'outlined'}\n <span className=\"material-symbols-outlined\" style={{ fontSize: 18 }}>\n {item.icon}\n </span>\n )}\n <span>\n {item.label}\n </span>\n </div>\n {item?.items?.length > 0 &&\n <span className={`sidebar-chevrons ${expandedKeys[item.key] ? \"pi pi-angle-up\" : \"pi pi-angle-down\"}`} />\n }\n </Link>\n </div>\n )\n };\n\n const createMenuItems = (menuItems: any[]): any[] =>\n menuItems.map((mi) => {\n const menuItemId = new URLSearchParams(mi.path?.split(\"?\")[1]).get(\"menuItemId\");\n return {\n key: mi.key,\n id: menuItemId, // ← extracted from path\n label: mi.title,\n icon: mi.icon ?? \"\",\n // iconVariant: mi.iconVariant,\n template: itemRenderer,\n url: mi.path ?? null,\n items: mi.children ? createMenuItems(mi.children) : null,\n };\n })\n\n\n const items = createMenuItems(menuItems);\n\n // Auto-expand parents with active child when activeId changes\n useEffect(() => {\n const newExpandedKeys: any = {};\n const expandIfActive = (items: any[]) => {\n items?.forEach((item) => {\n if (item.items?.length && hasActiveChild(item.items)) {\n newExpandedKeys[item.key] = true;\n expandIfActive(item.items);\n }\n });\n };\n expandIfActive(createMenuItems(menuItems));\n setExpandedKeys((prev: any) => ({ ...prev, ...newExpandedKeys }));\n }, [activeId]);\n\n const toggleExpansion = (key: string) => {\n setExpandedKeys((prev: any) => ({ ...prev, [key]: !prev[key] }));\n };\n\n const renderMenuItems = (menuItems: any[]): React.ReactNode => {\n return (\n <ul className=\"solid-panel-menu-list\">\n {menuItems.map((item) => {\n const hasChildren = item.items && item.items.length > 0;\n const isExpanded = !!expandedKeys[item.key];\n const isSelected = activeId !== null && item.id !== null && item.id === activeId;\n const isParentActive = hasChildren && hasActiveChild(item.items);\n\n return (\n <li key={item.key}>\n <div className={`flex items-center cursor-pointer menuHead px-4 ${isSelected || isParentActive ? \"p-highlight\" : \"\"}`}>\n <Link href={item?.url ? item?.url : \"#\"} className=\"w-full flex justify-between font-normal\">\n <div className=\"flex items-center\" style={{ gap: 10 }}>\n {item.icon && (\n <span className=\"material-symbols-outlined\" style={{ fontSize: 18 }}>\n {item.icon}\n </span>\n )}\n <span>{item.label}</span>\n </div>\n </Link>\n {hasChildren && (\n <button\n type=\"button\"\n className=\"sidebar-chevrons-button\"\n onClick={() => toggleExpansion(item.key)}\n aria-label={`Toggle ${item.label} menu`}\n >\n <span className={`sidebar-chevrons ${isExpanded ? \"pi pi-angle-up\" : \"pi pi-angle-down\"}`} />\n </button>\n )}\n </div>\n {hasChildren && isExpanded && (\n <div className=\"solid-panel-menu-children pl-6\">\n {renderMenuItems(item.items)}\n </div>\n )}\n </li>\n );\n })}\n </ul>\n );\n };\n\n return <div className=\"solid-panel-menu\">{renderMenuItems(items)}</div>;\n};\n\nexport default NavbarTwoMenu;\n"]}
|
|
@@ -17,9 +17,9 @@ const NavbarTwoMenu = ({ menuItems }: any) => {
|
|
|
17
17
|
const isSelected = activeId !== null && item.id !== null && item.id === activeId;
|
|
18
18
|
const isParentActive = activeId !== null && item.items?.length > 0 && hasActiveChild(item.items);
|
|
19
19
|
return (
|
|
20
|
-
<div key={item?.key} className={`flex
|
|
21
|
-
<Link href={item?.url ? item?.url : "#"} className="w-full flex justify-
|
|
22
|
-
<div className="flex
|
|
20
|
+
<div key={item?.key} className={`flex items-center cursor-pointer menuHead px-4 ${isSelected || isParentActive ? "p-highlight" : ""}`} onClick={options.onClick} >
|
|
21
|
+
<Link href={item?.url ? item?.url : "#"} className="w-full flex justify-between font-normal">
|
|
22
|
+
<div className="flex items-center" style={{ gap: 10 }}>
|
|
23
23
|
{item.icon && (
|
|
24
24
|
// material-symbols-${item.iconVariant ?? 'outlined'}
|
|
25
25
|
<span className="material-symbols-outlined" style={{ fontSize: 18 }}>
|
|
@@ -86,9 +86,9 @@ const NavbarTwoMenu = ({ menuItems }: any) => {
|
|
|
86
86
|
|
|
87
87
|
return (
|
|
88
88
|
<li key={item.key}>
|
|
89
|
-
<div className={`flex
|
|
90
|
-
<Link href={item?.url ? item?.url : "#"} className="w-full flex justify-
|
|
91
|
-
<div className="flex
|
|
89
|
+
<div className={`flex items-center cursor-pointer menuHead px-4 ${isSelected || isParentActive ? "p-highlight" : ""}`}>
|
|
90
|
+
<Link href={item?.url ? item?.url : "#"} className="w-full flex justify-between font-normal">
|
|
91
|
+
<div className="flex items-center" style={{ gap: 10 }}>
|
|
92
92
|
{item.icon && (
|
|
93
93
|
<span className="material-symbols-outlined" style={{ fontSize: 18 }}>
|
|
94
94
|
{item.icon}
|
|
@@ -109,7 +109,7 @@ const NavbarTwoMenu = ({ menuItems }: any) => {
|
|
|
109
109
|
)}
|
|
110
110
|
</div>
|
|
111
111
|
{hasChildren && isExpanded && (
|
|
112
|
-
<div className="solid-panel-menu-children pl-
|
|
112
|
+
<div className="solid-panel-menu-children pl-6">
|
|
113
113
|
{renderMenuItems(item.items)}
|
|
114
114
|
</div>
|
|
115
115
|
)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidCodeEditor.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidCodeEditor.tsx"],"names":[],"mappings":"AAEA,KAAK,oBAAoB,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,KAAU,EACV,QAAQ,EACR,MAAgB,EAChB,QAAiB,EACjB,QAAgB,EAChB,SAAS,EACT,QAAuB,GACxB,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"SolidCodeEditor.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidCodeEditor.tsx"],"names":[],"mappings":"AAEA,KAAK,oBAAoB,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,KAAU,EACV,QAAQ,EACR,MAAgB,EAChB,QAAiB,EACjB,QAAgB,EAChB,SAAS,EACT,QAAuB,GACxB,EAAE,oBAAoB,2CA8BtB"}
|
|
@@ -3,11 +3,13 @@ import Editor from "@monaco-editor/react";
|
|
|
3
3
|
export function SolidCodeEditor(_a) {
|
|
4
4
|
var _b = _a.value, value = _b === void 0 ? "" : _b, onChange = _a.onChange, _c = _a.height, height = _c === void 0 ? "300px" : _c, _d = _a.fontSize, fontSize = _d === void 0 ? "14px" : _d, _e = _a.readOnly, readOnly = _e === void 0 ? false : _e, className = _a.className, _f = _a.language, language = _f === void 0 ? "javascript" : _f;
|
|
5
5
|
return (_jsx("div", { className: className, style: {
|
|
6
|
+
width: "100%",
|
|
7
|
+
minWidth: 0,
|
|
6
8
|
border: "1px solid var(--surface-border, #d0d7de)",
|
|
7
9
|
borderRadius: "0.5rem",
|
|
8
10
|
overflow: "hidden",
|
|
9
11
|
background: "var(--surface-card, #fff)",
|
|
10
|
-
}, children: _jsx(Editor, { height: height, language: language, value: value, onChange: function (val) { return onChange === null || onChange === void 0 ? void 0 : onChange(val !== null && val !== void 0 ? val : ""); }, options: {
|
|
12
|
+
}, children: _jsx(Editor, { width: "100%", height: height, language: language, value: value, onChange: function (val) { return onChange === null || onChange === void 0 ? void 0 : onChange(val !== null && val !== void 0 ? val : ""); }, options: {
|
|
11
13
|
readOnly: readOnly,
|
|
12
14
|
minimap: { enabled: false },
|
|
13
15
|
lineNumbers: "on",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidCodeEditor.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidCodeEditor.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAY1C,MAAM,UAAU,eAAe,CAAC,EAQT;QAPrB,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,QAAQ,cAAA,EACR,cAAgB,EAAhB,MAAM,mBAAG,OAAO,KAAA,EAChB,gBAAiB,EAAjB,QAAQ,mBAAG,MAAM,KAAA,EACjB,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,SAAS,eAAA,EACT,gBAAuB,EAAvB,QAAQ,mBAAG,YAAY,KAAA;IAEvB,OAAO,CACL,cACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,MAAM,EAAE,0CAA0C;YAClD,YAAY,EAAE,QAAQ;YACtB,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,2BAA2B;SACxC,YAED,KAAC,MAAM,IACL,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAC,GAAG,IAAK,OAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,EAArB,CAAqB,EACxC,OAAO,EAAE;gBACP,QAAQ,UAAA;gBACR,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC3B,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;gBACxF,oBAAoB,EAAE,KAAK;gBAC3B,mBAAmB,EAAE,KAAK;aAC3B,GACD,GACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import Editor from \"@monaco-editor/react\";\n\ntype SolidCodeEditorProps = {\n value?: string;\n onChange?: (value: string | undefined) => void;\n height?: string;\n fontSize?: string | number;\n readOnly?: boolean;\n className?: string;\n language?: string;\n};\n\nexport function SolidCodeEditor({\n value = \"\",\n onChange,\n height = \"300px\",\n fontSize = \"14px\",\n readOnly = false,\n className,\n language = \"javascript\",\n}: SolidCodeEditorProps) {\n return (\n <div\n className={className}\n style={{\n border: \"1px solid var(--surface-border, #d0d7de)\",\n borderRadius: \"0.5rem\",\n overflow: \"hidden\",\n background: \"var(--surface-card, #fff)\",\n }}\n >\n <Editor\n height={height}\n language={language}\n value={value}\n onChange={(val) => onChange?.(val ?? \"\")}\n options={{\n readOnly,\n minimap: { enabled: false },\n lineNumbers: \"on\",\n fontSize: typeof fontSize === \"number\" ? fontSize : parseInt(String(fontSize), 10) || 14,\n scrollBeyondLastLine: false,\n overviewRulerBorder: false,\n }}\n />\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SolidCodeEditor.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidCodeEditor.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAY1C,MAAM,UAAU,eAAe,CAAC,EAQT;QAPrB,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,QAAQ,cAAA,EACR,cAAgB,EAAhB,MAAM,mBAAG,OAAO,KAAA,EAChB,gBAAiB,EAAjB,QAAQ,mBAAG,MAAM,KAAA,EACjB,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,SAAS,eAAA,EACT,gBAAuB,EAAvB,QAAQ,mBAAG,YAAY,KAAA;IAEvB,OAAO,CACL,cACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,0CAA0C;YAClD,YAAY,EAAE,QAAQ;YACtB,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,2BAA2B;SACxC,YAED,KAAC,MAAM,IACL,KAAK,EAAC,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAC,GAAG,IAAK,OAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,EAArB,CAAqB,EACxC,OAAO,EAAE;gBACP,QAAQ,UAAA;gBACR,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC3B,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;gBACxF,oBAAoB,EAAE,KAAK;gBAC3B,mBAAmB,EAAE,KAAK;aAC3B,GACD,GACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import Editor from \"@monaco-editor/react\";\n\ntype SolidCodeEditorProps = {\n value?: string;\n onChange?: (value: string | undefined) => void;\n height?: string;\n fontSize?: string | number;\n readOnly?: boolean;\n className?: string;\n language?: string;\n};\n\nexport function SolidCodeEditor({\n value = \"\",\n onChange,\n height = \"300px\",\n fontSize = \"14px\",\n readOnly = false,\n className,\n language = \"javascript\",\n}: SolidCodeEditorProps) {\n return (\n <div\n className={className}\n style={{\n width: \"100%\",\n minWidth: 0,\n border: \"1px solid var(--surface-border, #d0d7de)\",\n borderRadius: \"0.5rem\",\n overflow: \"hidden\",\n background: \"var(--surface-card, #fff)\",\n }}\n >\n <Editor\n width=\"100%\"\n height={height}\n language={language}\n value={value}\n onChange={(val) => onChange?.(val ?? \"\")}\n options={{\n readOnly,\n minimap: { enabled: false },\n lineNumbers: \"on\",\n fontSize: typeof fontSize === \"number\" ? fontSize : parseInt(String(fontSize), 10) || 14,\n scrollBeyondLastLine: false,\n overviewRulerBorder: false,\n }}\n />\n </div>\n );\n}\n"]}
|
|
@@ -23,6 +23,8 @@ export function SolidCodeEditor({
|
|
|
23
23
|
<div
|
|
24
24
|
className={className}
|
|
25
25
|
style={{
|
|
26
|
+
width: "100%",
|
|
27
|
+
minWidth: 0,
|
|
26
28
|
border: "1px solid var(--surface-border, #d0d7de)",
|
|
27
29
|
borderRadius: "0.5rem",
|
|
28
30
|
overflow: "hidden",
|
|
@@ -30,6 +32,7 @@ export function SolidCodeEditor({
|
|
|
30
32
|
}}
|
|
31
33
|
>
|
|
32
34
|
<Editor
|
|
35
|
+
width="100%"
|
|
33
36
|
height={height}
|
|
34
37
|
language={language}
|
|
35
38
|
value={value}
|
|
@@ -14,6 +14,7 @@ export declare const SolidPopoverContent: React.ForwardRefExoticComponent<React.
|
|
|
14
14
|
sideOffset?: number | undefined;
|
|
15
15
|
align?: "end" | "center" | "start" | undefined;
|
|
16
16
|
side?: "left" | "right" | "top" | "bottom" | undefined;
|
|
17
|
+
portal?: boolean | undefined;
|
|
17
18
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
18
19
|
export {};
|
|
19
20
|
//# sourceMappingURL=SolidPopover.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidPopover.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SolidPopover.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoC/B,KAAK,iBAAiB,GAAG;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AA+EF,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,cAAc,GACf,EAAE,iBAAiB,2CAwDnB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,OAAe,GAChB,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,OAuBA;AAED,eAAO,MAAM,mBAAmB;;;;;wCAiG9B,CAAC"}
|
|
@@ -22,6 +22,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
22
22
|
};
|
|
23
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
24
|
import * as React from "react";
|
|
25
|
+
import { createPortal } from "react-dom";
|
|
25
26
|
var SolidPopoverContext = React.createContext(null);
|
|
26
27
|
var SOLID_POPOVER_EVENT = "solid-popover-open";
|
|
27
28
|
function cx() {
|
|
@@ -31,9 +32,74 @@ function cx() {
|
|
|
31
32
|
}
|
|
32
33
|
return parts.filter(Boolean).join(" ");
|
|
33
34
|
}
|
|
35
|
+
function assignRef(ref, value) {
|
|
36
|
+
if (typeof ref === "function") {
|
|
37
|
+
ref(value);
|
|
38
|
+
}
|
|
39
|
+
else if (ref && typeof ref === "object") {
|
|
40
|
+
ref.current = value;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
var POPOVER_VIEWPORT_OFFSET = 8;
|
|
44
|
+
var POPOVER_PORTAL_Z_INDEX = 100000;
|
|
45
|
+
function clamp(value, min, max) {
|
|
46
|
+
return Math.min(Math.max(value, min), max);
|
|
47
|
+
}
|
|
48
|
+
function resolvePopoverPosition(_a) {
|
|
49
|
+
var triggerRect = _a.triggerRect, contentRect = _a.contentRect, side = _a.side, align = _a.align, sideOffset = _a.sideOffset;
|
|
50
|
+
var viewportWidth = window.innerWidth;
|
|
51
|
+
var viewportHeight = window.innerHeight;
|
|
52
|
+
var availableTop = triggerRect.top;
|
|
53
|
+
var availableBottom = viewportHeight - triggerRect.bottom;
|
|
54
|
+
var availableLeft = triggerRect.left;
|
|
55
|
+
var availableRight = viewportWidth - triggerRect.right;
|
|
56
|
+
var resolvedSide = side;
|
|
57
|
+
if (side === "bottom" && availableBottom < contentRect.height + sideOffset && availableTop > availableBottom) {
|
|
58
|
+
resolvedSide = "top";
|
|
59
|
+
}
|
|
60
|
+
else if (side === "top" && availableTop < contentRect.height + sideOffset && availableBottom > availableTop) {
|
|
61
|
+
resolvedSide = "bottom";
|
|
62
|
+
}
|
|
63
|
+
else if (side === "right" && availableRight < contentRect.width + sideOffset && availableLeft > availableRight) {
|
|
64
|
+
resolvedSide = "left";
|
|
65
|
+
}
|
|
66
|
+
else if (side === "left" && availableLeft < contentRect.width + sideOffset && availableRight > availableLeft) {
|
|
67
|
+
resolvedSide = "right";
|
|
68
|
+
}
|
|
69
|
+
var top = triggerRect.bottom + sideOffset;
|
|
70
|
+
var left = triggerRect.left;
|
|
71
|
+
if (resolvedSide === "bottom" || resolvedSide === "top") {
|
|
72
|
+
if (align === "center") {
|
|
73
|
+
left = triggerRect.left + (triggerRect.width / 2) - (contentRect.width / 2);
|
|
74
|
+
}
|
|
75
|
+
else if (align === "end") {
|
|
76
|
+
left = triggerRect.right - contentRect.width;
|
|
77
|
+
}
|
|
78
|
+
top = resolvedSide === "bottom"
|
|
79
|
+
? triggerRect.bottom + sideOffset
|
|
80
|
+
: triggerRect.top - contentRect.height - sideOffset;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
if (align === "center") {
|
|
84
|
+
top = triggerRect.top + (triggerRect.height / 2) - (contentRect.height / 2);
|
|
85
|
+
}
|
|
86
|
+
else if (align === "end") {
|
|
87
|
+
top = triggerRect.bottom - contentRect.height;
|
|
88
|
+
}
|
|
89
|
+
left = resolvedSide === "right"
|
|
90
|
+
? triggerRect.right + sideOffset
|
|
91
|
+
: triggerRect.left - contentRect.width - sideOffset;
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
left: clamp(left, POPOVER_VIEWPORT_OFFSET, Math.max(POPOVER_VIEWPORT_OFFSET, viewportWidth - contentRect.width - POPOVER_VIEWPORT_OFFSET)),
|
|
95
|
+
top: clamp(top, POPOVER_VIEWPORT_OFFSET, Math.max(POPOVER_VIEWPORT_OFFSET, viewportHeight - contentRect.height - POPOVER_VIEWPORT_OFFSET)),
|
|
96
|
+
side: resolvedSide,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
34
99
|
export function SolidPopover(_a) {
|
|
35
100
|
var open = _a.open, onOpenChange = _a.onOpenChange, children = _a.children, autoCloseGroup = _a.autoCloseGroup;
|
|
36
101
|
var rootRef = React.useRef(null);
|
|
102
|
+
var contentRef = React.useRef(null);
|
|
37
103
|
var popoverId = React.useId();
|
|
38
104
|
var _b = React.useState(false), internalOpen = _b[0], setInternalOpen = _b[1];
|
|
39
105
|
var isControlled = typeof open === "boolean";
|
|
@@ -68,7 +134,9 @@ export function SolidPopover(_a) {
|
|
|
68
134
|
return;
|
|
69
135
|
var handlePointerDown = function (event) {
|
|
70
136
|
var root = rootRef.current;
|
|
71
|
-
|
|
137
|
+
var content = contentRef.current;
|
|
138
|
+
var target = event.target;
|
|
139
|
+
if (!root || root.contains(target) || (content === null || content === void 0 ? void 0 : content.contains(target)))
|
|
72
140
|
return;
|
|
73
141
|
handleSetOpen(false);
|
|
74
142
|
};
|
|
@@ -77,7 +145,7 @@ export function SolidPopover(_a) {
|
|
|
77
145
|
document.removeEventListener("pointerdown", handlePointerDown);
|
|
78
146
|
};
|
|
79
147
|
}, [currentOpen, handleSetOpen]);
|
|
80
|
-
return (_jsx(SolidPopoverContext.Provider, { value: { open: currentOpen, setOpen: handleSetOpen }, children: _jsx("div", { className: "solid-popover-root", ref: rootRef, children: children }) }));
|
|
148
|
+
return (_jsx(SolidPopoverContext.Provider, { value: { open: currentOpen, setOpen: handleSetOpen, rootRef: rootRef, contentRef: contentRef }, children: _jsx("div", { className: "solid-popover-root", ref: rootRef, children: children }) }));
|
|
81
149
|
}
|
|
82
150
|
export function SolidPopoverTrigger(_a) {
|
|
83
151
|
var children = _a.children, _b = _a.asChild, asChild = _b === void 0 ? false : _b;
|
|
@@ -99,12 +167,63 @@ export function SolidPopoverTrigger(_a) {
|
|
|
99
167
|
}
|
|
100
168
|
export var SolidPopoverContent = React.forwardRef(function SolidPopoverContent(_a, ref) {
|
|
101
169
|
var _b;
|
|
102
|
-
var className = _a.className, children = _a.children, _c = _a.sideOffset, sideOffset = _c === void 0 ? 4 : _c, _d = _a.align, align = _d === void 0 ? "end" : _d, _e = _a.side, side = _e === void 0 ? "bottom" : _e, style = _a.style, props = __rest(_a, ["className", "children", "sideOffset", "align", "side", "style"]);
|
|
170
|
+
var className = _a.className, children = _a.children, _c = _a.sideOffset, sideOffset = _c === void 0 ? 4 : _c, _d = _a.align, align = _d === void 0 ? "end" : _d, _e = _a.side, side = _e === void 0 ? "bottom" : _e, style = _a.style, _f = _a.portal, portal = _f === void 0 ? true : _f, props = __rest(_a, ["className", "children", "sideOffset", "align", "side", "style", "portal"]);
|
|
103
171
|
var ctx = React.useContext(SolidPopoverContext);
|
|
104
172
|
if (!ctx || !ctx.open)
|
|
105
173
|
return null;
|
|
174
|
+
var localRef = React.useRef(null);
|
|
175
|
+
var _g = React.useState(null), portalPosition = _g[0], setPortalPosition = _g[1];
|
|
176
|
+
var attachRef = React.useCallback(function (node) {
|
|
177
|
+
localRef.current = node;
|
|
178
|
+
ctx.contentRef.current = node;
|
|
179
|
+
assignRef(ref, node);
|
|
180
|
+
}, [ctx.contentRef, ref]);
|
|
181
|
+
React.useLayoutEffect(function () {
|
|
182
|
+
if (!portal || typeof window === "undefined") {
|
|
183
|
+
setPortalPosition(null);
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
var updatePosition = function () {
|
|
187
|
+
var trigger = ctx.rootRef.current;
|
|
188
|
+
var content = localRef.current;
|
|
189
|
+
if (!trigger || !content)
|
|
190
|
+
return;
|
|
191
|
+
var triggerRect = trigger.getBoundingClientRect();
|
|
192
|
+
var contentRect = content.getBoundingClientRect();
|
|
193
|
+
var nextPosition = resolvePopoverPosition({ triggerRect: triggerRect, contentRect: contentRect, side: side, align: align, sideOffset: sideOffset });
|
|
194
|
+
setPortalPosition(nextPosition);
|
|
195
|
+
};
|
|
196
|
+
var rafId = window.requestAnimationFrame(updatePosition);
|
|
197
|
+
window.addEventListener("resize", updatePosition);
|
|
198
|
+
window.addEventListener("scroll", updatePosition, true);
|
|
199
|
+
var observer = typeof ResizeObserver !== "undefined"
|
|
200
|
+
? new ResizeObserver(function () { return updatePosition(); })
|
|
201
|
+
: null;
|
|
202
|
+
if (observer) {
|
|
203
|
+
if (ctx.rootRef.current)
|
|
204
|
+
observer.observe(ctx.rootRef.current);
|
|
205
|
+
if (localRef.current)
|
|
206
|
+
observer.observe(localRef.current);
|
|
207
|
+
}
|
|
208
|
+
return function () {
|
|
209
|
+
window.cancelAnimationFrame(rafId);
|
|
210
|
+
window.removeEventListener("resize", updatePosition);
|
|
211
|
+
window.removeEventListener("scroll", updatePosition, true);
|
|
212
|
+
observer === null || observer === void 0 ? void 0 : observer.disconnect();
|
|
213
|
+
};
|
|
214
|
+
}, [align, ctx.rootRef, portal, side, sideOffset]);
|
|
106
215
|
var offsetValue = "".concat(sideOffset, "px");
|
|
107
|
-
var contentStyle =
|
|
108
|
-
|
|
216
|
+
var contentStyle = React.useMemo(function () {
|
|
217
|
+
var _a, _b;
|
|
218
|
+
var _c, _d;
|
|
219
|
+
if (!portal) {
|
|
220
|
+
return __assign(__assign({}, (style !== null && style !== void 0 ? style : {})), (_a = {}, _a["--solid-popover-side-offset"] = offsetValue, _a));
|
|
221
|
+
}
|
|
222
|
+
return __assign(__assign({}, (style !== null && style !== void 0 ? style : {})), (_b = {}, _b["--solid-popover-side-offset"] = offsetValue, _b.position = "fixed", _b.top = (_c = portalPosition === null || portalPosition === void 0 ? void 0 : portalPosition.top) !== null && _c !== void 0 ? _c : 0, _b.left = (_d = portalPosition === null || portalPosition === void 0 ? void 0 : portalPosition.left) !== null && _d !== void 0 ? _d : 0, _b.right = "auto", _b.bottom = "auto", _b.transform = "none", _b.zIndex = POPOVER_PORTAL_Z_INDEX, _b.pointerEvents = "auto", _b.visibility = portalPosition ? "visible" : "hidden", _b));
|
|
223
|
+
}, [offsetValue, portal, portalPosition, style]);
|
|
224
|
+
var content = (_jsx("div", __assign({ ref: attachRef, className: cx("solid-popover-content", className), role: "dialog", "data-align": align, "data-side": (_b = portalPosition === null || portalPosition === void 0 ? void 0 : portalPosition.side) !== null && _b !== void 0 ? _b : side, "data-portal": portal ? "true" : "false", style: contentStyle }, props, { children: children })));
|
|
225
|
+
return portal && typeof document !== "undefined"
|
|
226
|
+
? createPortal(content, document.body)
|
|
227
|
+
: content;
|
|
109
228
|
});
|
|
110
229
|
//# sourceMappingURL=SolidPopover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidPopover.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidPopover.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\n\ntype SolidPopoverContextValue = {\n open: boolean;\n setOpen: (open: boolean) => void;\n};\n\nconst SolidPopoverContext = React.createContext<SolidPopoverContextValue | null>(null);\nconst SOLID_POPOVER_EVENT = \"solid-popover-open\";\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\ntype SolidPopoverContentProps = React.HTMLAttributes<HTMLDivElement> & {\n sideOffset?: number;\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n};\n\ntype SolidPopoverContentStyle = React.CSSProperties & {\n [\"--solid-popover-side-offset\"]?: string;\n};\n\ntype SolidPopoverProps = {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n autoCloseGroup?: string;\n};\n\nexport function SolidPopover({\n open,\n onOpenChange,\n children,\n autoCloseGroup,\n}: SolidPopoverProps) {\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const popoverId = React.useId();\n const [internalOpen, setInternalOpen] = React.useState(false);\n const isControlled = typeof open === \"boolean\";\n const currentOpen = isControlled ? !!open : internalOpen;\n\n const handleSetOpen = React.useCallback((next: boolean) => {\n if (!isControlled) {\n setInternalOpen(next);\n }\n onOpenChange?.(next);\n if (next && autoCloseGroup && typeof window !== \"undefined\") {\n window.dispatchEvent(\n new CustomEvent(SOLID_POPOVER_EVENT, { detail: { id: popoverId, group: autoCloseGroup } })\n );\n }\n }, [autoCloseGroup, isControlled, onOpenChange, popoverId]);\n\n React.useEffect(() => {\n if (!autoCloseGroup || typeof window === \"undefined\") return;\n const handleExternalOpen = (event: Event) => {\n const detail = (event as CustomEvent<{ id: string; group?: string }>).detail;\n if (!detail || detail.group !== autoCloseGroup) return;\n if (detail.id === popoverId) return;\n handleSetOpen(false);\n };\n window.addEventListener(SOLID_POPOVER_EVENT, handleExternalOpen as EventListener);\n return () => {\n window.removeEventListener(SOLID_POPOVER_EVENT, handleExternalOpen as EventListener);\n };\n }, [autoCloseGroup, handleSetOpen, popoverId]);\n\n React.useEffect(() => {\n if (!currentOpen || typeof document === \"undefined\") return;\n const handlePointerDown = (event: MouseEvent) => {\n const root = rootRef.current;\n if (!root || root.contains(event.target as Node)) return;\n handleSetOpen(false);\n };\n document.addEventListener(\"pointerdown\", handlePointerDown);\n return () => {\n document.removeEventListener(\"pointerdown\", handlePointerDown);\n };\n }, [currentOpen, handleSetOpen]);\n\n return (\n <SolidPopoverContext.Provider value={{ open: currentOpen, setOpen: handleSetOpen }}>\n <div className=\"solid-popover-root\" ref={rootRef}>\n {children}\n </div>\n </SolidPopoverContext.Provider>\n );\n}\n\nexport function SolidPopoverTrigger({\n children,\n asChild = false,\n}: {\n children: React.ReactNode;\n asChild?: boolean;\n}) {\n const ctx = React.useContext(SolidPopoverContext);\n if (!ctx) return null;\n\n const child = asChild && React.isValidElement(children)\n ? React.cloneElement(children as any, {\n onClick: (event: React.MouseEvent) => {\n (children as any).props?.onClick?.(event);\n if (event.defaultPrevented) return;\n ctx.setOpen(!ctx.open);\n },\n })\n : (\n <button\n type=\"button\"\n onClick={() => ctx.setOpen(!ctx.open)}\n className=\"solid-popover-trigger\"\n >\n {children}\n </button>\n );\n\n return child as any;\n}\n\nexport const SolidPopoverContent = React.forwardRef<HTMLDivElement, SolidPopoverContentProps>(function SolidPopoverContent(\n { className, children, sideOffset = 4, align = \"end\", side = \"bottom\", style, ...props },\n ref\n) {\n const ctx = React.useContext(SolidPopoverContext);\n if (!ctx || !ctx.open) return null;\n\n const offsetValue = `${sideOffset}px`;\n const contentStyle: SolidPopoverContentStyle = {\n ...(style ?? {}),\n [\"--solid-popover-side-offset\"]: offsetValue,\n };\n\n return (\n <div\n ref={ref}\n className={cx(\"solid-popover-content\", className)}\n role=\"dialog\"\n data-align={align}\n data-side={side}\n style={contentStyle}\n {...props}\n >\n {children}\n </div>\n );\n});\n"]}
|
|
1
|
+
{"version":3,"file":"SolidPopover.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidPopover.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { createPortal } from \"react-dom\";\n\ntype SolidPopoverContextValue = {\n open: boolean;\n setOpen: (open: boolean) => void;\n rootRef: React.MutableRefObject<HTMLDivElement | null>;\n contentRef: React.MutableRefObject<HTMLDivElement | null>;\n};\n\nconst SolidPopoverContext = React.createContext<SolidPopoverContextValue | null>(null);\nconst SOLID_POPOVER_EVENT = \"solid-popover-open\";\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nfunction assignRef<T>(ref: React.ForwardedRef<T>, value: T) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref && typeof ref === \"object\") {\n ref.current = value;\n }\n}\n\ntype SolidPopoverContentProps = React.HTMLAttributes<HTMLDivElement> & {\n sideOffset?: number;\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n portal?: boolean;\n};\n\ntype SolidPopoverContentStyle = React.CSSProperties & {\n [\"--solid-popover-side-offset\"]?: string;\n};\n\ntype SolidPopoverProps = {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n autoCloseGroup?: string;\n};\n\ntype PopoverPosition = {\n left: number;\n top: number;\n side: \"top\" | \"right\" | \"bottom\" | \"left\";\n};\n\nconst POPOVER_VIEWPORT_OFFSET = 8;\nconst POPOVER_PORTAL_Z_INDEX = 100000;\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction resolvePopoverPosition({\n triggerRect,\n contentRect,\n side,\n align,\n sideOffset,\n}: {\n triggerRect: DOMRect;\n contentRect: DOMRect;\n side: \"top\" | \"right\" | \"bottom\" | \"left\";\n align: \"start\" | \"center\" | \"end\";\n sideOffset: number;\n}): PopoverPosition {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n const availableTop = triggerRect.top;\n const availableBottom = viewportHeight - triggerRect.bottom;\n const availableLeft = triggerRect.left;\n const availableRight = viewportWidth - triggerRect.right;\n\n let resolvedSide = side;\n\n if (side === \"bottom\" && availableBottom < contentRect.height + sideOffset && availableTop > availableBottom) {\n resolvedSide = \"top\";\n } else if (side === \"top\" && availableTop < contentRect.height + sideOffset && availableBottom > availableTop) {\n resolvedSide = \"bottom\";\n } else if (side === \"right\" && availableRight < contentRect.width + sideOffset && availableLeft > availableRight) {\n resolvedSide = \"left\";\n } else if (side === \"left\" && availableLeft < contentRect.width + sideOffset && availableRight > availableLeft) {\n resolvedSide = \"right\";\n }\n\n let top = triggerRect.bottom + sideOffset;\n let left = triggerRect.left;\n\n if (resolvedSide === \"bottom\" || resolvedSide === \"top\") {\n if (align === \"center\") {\n left = triggerRect.left + (triggerRect.width / 2) - (contentRect.width / 2);\n } else if (align === \"end\") {\n left = triggerRect.right - contentRect.width;\n }\n\n top = resolvedSide === \"bottom\"\n ? triggerRect.bottom + sideOffset\n : triggerRect.top - contentRect.height - sideOffset;\n } else {\n if (align === \"center\") {\n top = triggerRect.top + (triggerRect.height / 2) - (contentRect.height / 2);\n } else if (align === \"end\") {\n top = triggerRect.bottom - contentRect.height;\n }\n\n left = resolvedSide === \"right\"\n ? triggerRect.right + sideOffset\n : triggerRect.left - contentRect.width - sideOffset;\n }\n\n return {\n left: clamp(left, POPOVER_VIEWPORT_OFFSET, Math.max(POPOVER_VIEWPORT_OFFSET, viewportWidth - contentRect.width - POPOVER_VIEWPORT_OFFSET)),\n top: clamp(top, POPOVER_VIEWPORT_OFFSET, Math.max(POPOVER_VIEWPORT_OFFSET, viewportHeight - contentRect.height - POPOVER_VIEWPORT_OFFSET)),\n side: resolvedSide,\n };\n}\n\nexport function SolidPopover({\n open,\n onOpenChange,\n children,\n autoCloseGroup,\n}: SolidPopoverProps) {\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const contentRef = React.useRef<HTMLDivElement | null>(null);\n const popoverId = React.useId();\n const [internalOpen, setInternalOpen] = React.useState(false);\n const isControlled = typeof open === \"boolean\";\n const currentOpen = isControlled ? !!open : internalOpen;\n\n const handleSetOpen = React.useCallback((next: boolean) => {\n if (!isControlled) {\n setInternalOpen(next);\n }\n onOpenChange?.(next);\n if (next && autoCloseGroup && typeof window !== \"undefined\") {\n window.dispatchEvent(\n new CustomEvent(SOLID_POPOVER_EVENT, { detail: { id: popoverId, group: autoCloseGroup } })\n );\n }\n }, [autoCloseGroup, isControlled, onOpenChange, popoverId]);\n\n React.useEffect(() => {\n if (!autoCloseGroup || typeof window === \"undefined\") return;\n const handleExternalOpen = (event: Event) => {\n const detail = (event as CustomEvent<{ id: string; group?: string }>).detail;\n if (!detail || detail.group !== autoCloseGroup) return;\n if (detail.id === popoverId) return;\n handleSetOpen(false);\n };\n window.addEventListener(SOLID_POPOVER_EVENT, handleExternalOpen as EventListener);\n return () => {\n window.removeEventListener(SOLID_POPOVER_EVENT, handleExternalOpen as EventListener);\n };\n }, [autoCloseGroup, handleSetOpen, popoverId]);\n\n React.useEffect(() => {\n if (!currentOpen || typeof document === \"undefined\") return;\n const handlePointerDown = (event: MouseEvent) => {\n const root = rootRef.current;\n const content = contentRef.current;\n const target = event.target as Node;\n if (!root || root.contains(target) || content?.contains(target)) return;\n handleSetOpen(false);\n };\n document.addEventListener(\"pointerdown\", handlePointerDown);\n return () => {\n document.removeEventListener(\"pointerdown\", handlePointerDown);\n };\n }, [currentOpen, handleSetOpen]);\n\n return (\n <SolidPopoverContext.Provider value={{ open: currentOpen, setOpen: handleSetOpen, rootRef, contentRef }}>\n <div className=\"solid-popover-root\" ref={rootRef}>\n {children}\n </div>\n </SolidPopoverContext.Provider>\n );\n}\n\nexport function SolidPopoverTrigger({\n children,\n asChild = false,\n}: {\n children: React.ReactNode;\n asChild?: boolean;\n}) {\n const ctx = React.useContext(SolidPopoverContext);\n if (!ctx) return null;\n\n const child = asChild && React.isValidElement(children)\n ? React.cloneElement(children as any, {\n onClick: (event: React.MouseEvent) => {\n (children as any).props?.onClick?.(event);\n if (event.defaultPrevented) return;\n ctx.setOpen(!ctx.open);\n },\n })\n : (\n <button\n type=\"button\"\n onClick={() => ctx.setOpen(!ctx.open)}\n className=\"solid-popover-trigger\"\n >\n {children}\n </button>\n );\n\n return child as any;\n}\n\nexport const SolidPopoverContent = React.forwardRef<HTMLDivElement, SolidPopoverContentProps>(function SolidPopoverContent(\n { className, children, sideOffset = 4, align = \"end\", side = \"bottom\", style, portal = true, ...props },\n ref\n) {\n const ctx = React.useContext(SolidPopoverContext);\n if (!ctx || !ctx.open) return null;\n\n const localRef = React.useRef<HTMLDivElement | null>(null);\n const [portalPosition, setPortalPosition] = React.useState<PopoverPosition | null>(null);\n\n const attachRef = React.useCallback((node: HTMLDivElement | null) => {\n localRef.current = node;\n ctx.contentRef.current = node;\n assignRef(ref, node);\n }, [ctx.contentRef, ref]);\n\n React.useLayoutEffect(() => {\n if (!portal || typeof window === \"undefined\") {\n setPortalPosition(null);\n return;\n }\n\n const updatePosition = () => {\n const trigger = ctx.rootRef.current;\n const content = localRef.current;\n if (!trigger || !content) return;\n\n const triggerRect = trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const nextPosition = resolvePopoverPosition({ triggerRect, contentRect, side, align, sideOffset });\n\n setPortalPosition(nextPosition);\n };\n\n const rafId = window.requestAnimationFrame(updatePosition);\n window.addEventListener(\"resize\", updatePosition);\n window.addEventListener(\"scroll\", updatePosition, true);\n\n const observer = typeof ResizeObserver !== \"undefined\"\n ? new ResizeObserver(() => updatePosition())\n : null;\n\n if (observer) {\n if (ctx.rootRef.current) observer.observe(ctx.rootRef.current);\n if (localRef.current) observer.observe(localRef.current);\n }\n\n return () => {\n window.cancelAnimationFrame(rafId);\n window.removeEventListener(\"resize\", updatePosition);\n window.removeEventListener(\"scroll\", updatePosition, true);\n observer?.disconnect();\n };\n }, [align, ctx.rootRef, portal, side, sideOffset]);\n\n const offsetValue = `${sideOffset}px`;\n const contentStyle = React.useMemo<SolidPopoverContentStyle>(() => {\n if (!portal) {\n return {\n ...(style ?? {}),\n [\"--solid-popover-side-offset\"]: offsetValue,\n };\n }\n\n return {\n ...(style ?? {}),\n [\"--solid-popover-side-offset\"]: offsetValue,\n position: \"fixed\",\n top: portalPosition?.top ?? 0,\n left: portalPosition?.left ?? 0,\n right: \"auto\",\n bottom: \"auto\",\n transform: \"none\",\n zIndex: POPOVER_PORTAL_Z_INDEX,\n pointerEvents: \"auto\",\n visibility: portalPosition ? \"visible\" : \"hidden\",\n };\n }, [offsetValue, portal, portalPosition, style]);\n\n const content = (\n <div\n ref={attachRef}\n className={cx(\"solid-popover-content\", className)}\n role=\"dialog\"\n data-align={align}\n data-side={portalPosition?.side ?? side}\n data-portal={portal ? \"true\" : \"false\"}\n style={contentStyle}\n {...props}\n >\n {children}\n </div>\n );\n\n return portal && typeof document !== \"undefined\"\n ? createPortal(content, document.body)\n : content;\n});\n"]}
|