@vertesia/ui 0.55.0 → 0.57.0
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/lib/esm/code/index.js +3 -0
- package/lib/esm/code/index.js.map +1 -0
- package/lib/esm/core/components/Avatar.js +31 -0
- package/lib/esm/core/components/Avatar.js.map +1 -0
- package/lib/esm/core/components/Badge.js +62 -0
- package/lib/esm/core/components/Badge.js.map +1 -0
- package/lib/esm/core/components/Button.js +32 -0
- package/lib/esm/core/components/Button.js.map +1 -0
- package/lib/esm/core/components/Center.js +6 -0
- package/lib/esm/core/components/Center.js.map +1 -0
- package/lib/esm/core/components/ComboBox.js +356 -0
- package/lib/esm/core/components/ComboBox.js.map +1 -0
- package/lib/esm/core/components/ConfirmModal.js +10 -0
- package/lib/esm/core/components/ConfirmModal.js.map +1 -0
- package/lib/esm/core/components/DeleteModal.js +28 -0
- package/lib/esm/core/components/DeleteModal.js.map +1 -0
- package/lib/esm/core/components/Divider.js +6 -0
- package/lib/esm/core/components/Divider.js.map +1 -0
- package/lib/esm/core/components/Dropdown.js +16 -0
- package/lib/esm/core/components/Dropdown.js.map +1 -0
- package/lib/esm/core/components/DropdownList.js +9 -0
- package/lib/esm/core/components/DropdownList.js.map +1 -0
- package/lib/esm/core/components/EmptyCollection.js +7 -0
- package/lib/esm/core/components/EmptyCollection.js.map +1 -0
- package/lib/esm/core/components/FileUpload.js +119 -0
- package/lib/esm/core/components/FileUpload.js.map +1 -0
- package/lib/esm/core/components/Input.js +16 -0
- package/lib/esm/core/components/Input.js.map +1 -0
- package/lib/esm/core/components/InputList.js +42 -0
- package/lib/esm/core/components/InputList.js.map +1 -0
- package/lib/esm/core/components/Link.js +13 -0
- package/lib/esm/core/components/Link.js.map +1 -0
- package/lib/esm/core/components/MenuList.js +23 -0
- package/lib/esm/core/components/MenuList.js.map +1 -0
- package/lib/esm/core/components/MessageBox.js +66 -0
- package/lib/esm/core/components/MessageBox.js.map +1 -0
- package/lib/esm/core/components/Modal.js +26 -0
- package/lib/esm/core/components/Modal.js.map +1 -0
- package/lib/esm/core/components/NumberInput.js +43 -0
- package/lib/esm/core/components/NumberInput.js.map +1 -0
- package/lib/esm/core/components/Portal.js +28 -0
- package/lib/esm/core/components/Portal.js.map +1 -0
- package/lib/esm/core/components/RadioGroup.js +34 -0
- package/lib/esm/core/components/RadioGroup.js.map +1 -0
- package/lib/esm/core/components/SelectBox.js +68 -0
- package/lib/esm/core/components/SelectBox.js.map +1 -0
- package/lib/esm/core/components/SelectList.js +47 -0
- package/lib/esm/core/components/SelectList.js.map +1 -0
- package/lib/esm/core/components/SelectStack.js +8 -0
- package/lib/esm/core/components/SelectStack.js.map +1 -0
- package/lib/esm/core/components/SidePanel.js +33 -0
- package/lib/esm/core/components/SidePanel.js.map +1 -0
- package/lib/esm/core/components/Spinner.js +18 -0
- package/lib/esm/core/components/Spinner.js.map +1 -0
- package/lib/esm/core/components/Switch.js +12 -0
- package/lib/esm/core/components/Switch.js.map +1 -0
- package/lib/esm/core/components/Textarea.js +15 -0
- package/lib/esm/core/components/Textarea.js.map +1 -0
- package/lib/esm/core/components/index.js +34 -0
- package/lib/esm/core/components/index.js.map +1 -0
- package/lib/esm/core/components/libs/utils.js +6 -0
- package/lib/esm/core/components/libs/utils.js.map +1 -0
- package/lib/esm/core/components/libs/visuallyHidden.js +16 -0
- package/lib/esm/core/components/libs/visuallyHidden.js.map +1 -0
- package/lib/esm/core/components/popup/Popup.js +60 -0
- package/lib/esm/core/components/popup/Popup.js.map +1 -0
- package/lib/esm/core/components/popup/PopupController.js +149 -0
- package/lib/esm/core/components/popup/PopupController.js.map +1 -0
- package/lib/esm/core/components/popup/index.js +4 -0
- package/lib/esm/core/components/popup/index.js.map +1 -0
- package/lib/esm/core/components/popup/position.js +221 -0
- package/lib/esm/core/components/popup/position.js.map +1 -0
- package/lib/esm/core/components/popup/utils.js +74 -0
- package/lib/esm/core/components/popup/utils.js.map +1 -0
- package/lib/esm/core/components/shadcn/breadcrumb.js +30 -0
- package/lib/esm/core/components/shadcn/breadcrumb.js.map +1 -0
- package/lib/esm/core/components/shadcn/button.js +45 -0
- package/lib/esm/core/components/shadcn/button.js.map +1 -0
- package/lib/esm/core/components/shadcn/calendar.js +46 -0
- package/lib/esm/core/components/shadcn/calendar.js.map +1 -0
- package/lib/esm/core/components/shadcn/card.js +17 -0
- package/lib/esm/core/components/shadcn/card.js.map +1 -0
- package/lib/esm/core/components/shadcn/checkbox.js +10 -0
- package/lib/esm/core/components/shadcn/checkbox.js.map +1 -0
- package/lib/esm/core/components/shadcn/command.js +30 -0
- package/lib/esm/core/components/shadcn/command.js.map +1 -0
- package/lib/esm/core/components/shadcn/dialog.js +61 -0
- package/lib/esm/core/components/shadcn/dialog.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/animateChangeInHeight.js +23 -0
- package/lib/esm/core/components/shadcn/filters/animateChangeInHeight.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox.js +82 -0
- package/lib/esm/core/components/shadcn/filters/comboBox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/dateFilter.js +31 -0
- package/lib/esm/core/components/shadcn/filters/dateFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filterBar.js +140 -0
- package/lib/esm/core/components/shadcn/filters/filterBar.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filters.js +42 -0
- package/lib/esm/core/components/shadcn/filters/filters.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/index.js +6 -0
- package/lib/esm/core/components/shadcn/filters/index.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/selectFilter.js +58 -0
- package/lib/esm/core/components/shadcn/filters/selectFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/textFilter.js +20 -0
- package/lib/esm/core/components/shadcn/filters/textFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/types.js +10 -0
- package/lib/esm/core/components/shadcn/filters/types.js.map +1 -0
- package/lib/esm/core/components/shadcn/heading.js +17 -0
- package/lib/esm/core/components/shadcn/heading.js.map +1 -0
- package/lib/esm/core/components/shadcn/index.js +22 -0
- package/lib/esm/core/components/shadcn/index.js.map +1 -0
- package/lib/esm/core/components/shadcn/input.js +38 -0
- package/lib/esm/core/components/shadcn/input.js.map +1 -0
- package/lib/esm/core/components/shadcn/label.js +11 -0
- package/lib/esm/core/components/shadcn/label.js.map +1 -0
- package/lib/esm/core/components/shadcn/popover.js +50 -0
- package/lib/esm/core/components/shadcn/popover.js.map +1 -0
- package/lib/esm/core/components/shadcn/selectBox.js +62 -0
- package/lib/esm/core/components/shadcn/selectBox.js.map +1 -0
- package/lib/esm/core/components/shadcn/separator.js +8 -0
- package/lib/esm/core/components/shadcn/separator.js.map +1 -0
- package/lib/esm/core/components/shadcn/tabs.js +77 -0
- package/lib/esm/core/components/shadcn/tabs.js.map +1 -0
- package/lib/esm/core/components/shadcn/text.js +30 -0
- package/lib/esm/core/components/shadcn/text.js.map +1 -0
- package/lib/esm/core/components/shadcn/theme/ThemeProvider.js +38 -0
- package/lib/esm/core/components/shadcn/theme/ThemeProvider.js.map +1 -0
- package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js +13 -0
- package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js.map +1 -0
- package/lib/esm/core/components/shadcn/tooltip.js +14 -0
- package/lib/esm/core/components/shadcn/tooltip.js.map +1 -0
- package/lib/esm/core/components/styles.js +10 -0
- package/lib/esm/core/components/styles.js.map +1 -0
- package/lib/esm/core/components/table/index.js +20 -0
- package/lib/esm/core/components/table/index.js.map +1 -0
- package/lib/esm/core/components/tabs/Tabs.js +78 -0
- package/lib/esm/core/components/tabs/Tabs.js.map +1 -0
- package/lib/esm/core/components/tabs/TabsContext.js +7 -0
- package/lib/esm/core/components/tabs/TabsContext.js.map +1 -0
- package/lib/esm/core/components/tabs/index.js +3 -0
- package/lib/esm/core/components/tabs/index.js.map +1 -0
- package/lib/esm/core/components/toast/NotificationPanel.js +37 -0
- package/lib/esm/core/components/toast/NotificationPanel.js.map +1 -0
- package/lib/esm/core/components/toast/ToastContext.js +7 -0
- package/lib/esm/core/components/toast/ToastContext.js.map +1 -0
- package/lib/esm/core/components/toast/ToastProps.js +2 -0
- package/lib/esm/core/components/toast/ToastProps.js.map +1 -0
- package/lib/esm/core/components/toast/ToastProvider.js +13 -0
- package/lib/esm/core/components/toast/ToastProvider.js.map +1 -0
- package/lib/esm/core/components/toast/index.js +3 -0
- package/lib/esm/core/components/toast/index.js.map +1 -0
- package/lib/esm/core/hooks/CompositeState.js +118 -0
- package/lib/esm/core/hooks/CompositeState.js.map +1 -0
- package/lib/esm/core/hooks/SharedState.js +64 -0
- package/lib/esm/core/hooks/SharedState.js.map +1 -0
- package/lib/esm/core/hooks/index.js +14 -0
- package/lib/esm/core/hooks/index.js.map +1 -0
- package/lib/esm/core/hooks/useClickOutside.js +29 -0
- package/lib/esm/core/hooks/useClickOutside.js.map +1 -0
- package/lib/esm/core/hooks/useCopyToClipboard.js +23 -0
- package/lib/esm/core/hooks/useCopyToClipboard.js.map +1 -0
- package/lib/esm/core/hooks/useDarkMode.js +11 -0
- package/lib/esm/core/hooks/useDarkMode.js.map +1 -0
- package/lib/esm/core/hooks/useDebounce.js +14 -0
- package/lib/esm/core/hooks/useDebounce.js.map +1 -0
- package/lib/esm/core/hooks/useEventSource.js +31 -0
- package/lib/esm/core/hooks/useEventSource.js.map +1 -0
- package/lib/esm/core/hooks/useFetch.js +40 -0
- package/lib/esm/core/hooks/useFetch.js.map +1 -0
- package/lib/esm/core/hooks/useFlag.js +13 -0
- package/lib/esm/core/hooks/useFlag.js.map +1 -0
- package/lib/esm/core/hooks/useIntersectionObserver.js +34 -0
- package/lib/esm/core/hooks/useIntersectionObserver.js.map +1 -0
- package/lib/esm/core/hooks/useIsFistRendering.js +14 -0
- package/lib/esm/core/hooks/useIsFistRendering.js.map +1 -0
- package/lib/esm/core/hooks/useSafeLayoutEffect.js +4 -0
- package/lib/esm/core/hooks/useSafeLayoutEffect.js.map +1 -0
- package/lib/esm/core/hooks/useSharedValue.js +21 -0
- package/lib/esm/core/hooks/useSharedValue.js.map +1 -0
- package/lib/esm/core/index.js +3 -0
- package/lib/esm/core/index.js.map +1 -0
- package/lib/esm/env/index.js +69 -0
- package/lib/esm/env/index.js.map +1 -0
- package/lib/esm/features/activity-doc/ActivityDoc.js +71 -0
- package/lib/esm/features/activity-doc/ActivityDoc.js.map +1 -0
- package/lib/esm/features/activity-doc/index.js +2 -0
- package/lib/esm/features/activity-doc/index.js.map +1 -0
- package/lib/esm/features/index.js +3 -0
- package/lib/esm/features/index.js.map +1 -0
- package/lib/esm/features/permissions/SecureButton.js +13 -0
- package/lib/esm/features/permissions/SecureButton.js.map +1 -0
- package/lib/esm/features/permissions/SecureSidebarItem.js +14 -0
- package/lib/esm/features/permissions/SecureSidebarItem.js.map +1 -0
- package/lib/esm/features/permissions/UserPermissionsProvider.js +86 -0
- package/lib/esm/features/permissions/UserPermissionsProvider.js.map +1 -0
- package/lib/esm/features/permissions/helpers.js +12 -0
- package/lib/esm/features/permissions/helpers.js.map +1 -0
- package/lib/esm/features/permissions/index.js +5 -0
- package/lib/esm/features/permissions/index.js.map +1 -0
- package/lib/esm/form/index.js +3 -0
- package/lib/esm/form/index.js.map +1 -0
- package/lib/esm/layout/AppLayout.js +46 -0
- package/lib/esm/layout/AppLayout.js.map +1 -0
- package/lib/esm/layout/FullHeightLayout.js +20 -0
- package/lib/esm/layout/FullHeightLayout.js.map +1 -0
- package/lib/esm/layout/Navbar.js +40 -0
- package/lib/esm/layout/Navbar.js.map +1 -0
- package/lib/esm/layout/Sidebar.js +35 -0
- package/lib/esm/layout/Sidebar.js.map +1 -0
- package/lib/esm/layout/SidebarContext.js +10 -0
- package/lib/esm/layout/SidebarContext.js.map +1 -0
- package/lib/esm/layout/TitleBar.js +5 -0
- package/lib/esm/layout/TitleBar.js.map +1 -0
- package/lib/esm/layout/index.js +7 -0
- package/lib/esm/layout/index.js.map +1 -0
- package/lib/esm/router/FixLinks.js +23 -0
- package/lib/esm/router/FixLinks.js.map +1 -0
- package/lib/esm/router/HistoryNavigator.js +149 -0
- package/lib/esm/router/HistoryNavigator.js.map +1 -0
- package/lib/esm/router/Nav.js +26 -0
- package/lib/esm/router/Nav.js.map +1 -0
- package/lib/esm/router/NestedNavigationContext.js +19 -0
- package/lib/esm/router/NestedNavigationContext.js.map +1 -0
- package/lib/esm/router/NestedRouterProvider.js +44 -0
- package/lib/esm/router/NestedRouterProvider.js.map +1 -0
- package/lib/esm/router/PathMatcher.js +159 -0
- package/lib/esm/router/PathMatcher.js.map +1 -0
- package/lib/esm/router/PathWithParams.js +34 -0
- package/lib/esm/router/PathWithParams.js.map +1 -0
- package/lib/esm/router/Route404.js +18 -0
- package/lib/esm/router/Route404.js.map +1 -0
- package/lib/esm/router/RouteComponent.js +32 -0
- package/lib/esm/router/RouteComponent.js.map +1 -0
- package/lib/esm/router/Router.js +161 -0
- package/lib/esm/router/Router.js.map +1 -0
- package/lib/esm/router/RouterProvider.js +41 -0
- package/lib/esm/router/RouterProvider.js.map +1 -0
- package/lib/esm/router/index.js +11 -0
- package/lib/esm/router/index.js.map +1 -0
- package/lib/esm/router/path.js +137 -0
- package/lib/esm/router/path.js.map +1 -0
- package/lib/esm/session/TypeRegistry.js +24 -0
- package/lib/esm/session/TypeRegistry.js.map +1 -0
- package/lib/esm/session/UserSession.js +191 -0
- package/lib/esm/session/UserSession.js.map +1 -0
- package/lib/esm/session/UserSessionProvider.js +161 -0
- package/lib/esm/session/UserSessionProvider.js.map +1 -0
- package/lib/esm/session/auth/composable.js +162 -0
- package/lib/esm/session/auth/composable.js.map +1 -0
- package/lib/esm/session/auth/firebase.js +151 -0
- package/lib/esm/session/auth/firebase.js.map +1 -0
- package/lib/esm/session/auth/useAuthState.js +49 -0
- package/lib/esm/session/auth/useAuthState.js.map +1 -0
- package/lib/esm/session/index.js +7 -0
- package/lib/esm/session/index.js.map +1 -0
- package/lib/esm/session/useUXTracking.js +29 -0
- package/lib/esm/session/useUXTracking.js.map +1 -0
- package/lib/esm/widgets/codemirror/CodeMirrorEditor.js +103 -0
- package/lib/esm/widgets/codemirror/CodeMirrorEditor.js.map +1 -0
- package/lib/esm/widgets/codemirror/CodemirrorStateSingleton.js +33 -0
- package/lib/esm/widgets/codemirror/CodemirrorStateSingleton.js.map +1 -0
- package/lib/esm/widgets/codemirror/index.js +2 -0
- package/lib/esm/widgets/codemirror/index.js.map +1 -0
- package/lib/esm/widgets/form/Form.js +102 -0
- package/lib/esm/widgets/form/Form.js.map +1 -0
- package/lib/esm/widgets/form/FormContext.js +29 -0
- package/lib/esm/widgets/form/FormContext.js.map +1 -0
- package/lib/esm/widgets/form/ManagedObject.js +283 -0
- package/lib/esm/widgets/form/ManagedObject.js.map +1 -0
- package/lib/esm/widgets/form/fields.js +11 -0
- package/lib/esm/widgets/form/fields.js.map +1 -0
- package/lib/esm/widgets/form/index.js +7 -0
- package/lib/esm/widgets/form/index.js.map +1 -0
- package/lib/esm/widgets/form/inputs.js +36 -0
- package/lib/esm/widgets/form/inputs.js.map +1 -0
- package/lib/esm/widgets/form/schema.js +191 -0
- package/lib/esm/widgets/form/schema.js.map +1 -0
- package/lib/esm/widgets/index.js +6 -0
- package/lib/esm/widgets/index.js.map +1 -0
- package/lib/esm/widgets/json-view/JSONCode.js +157 -0
- package/lib/esm/widgets/json-view/JSONCode.js.map +1 -0
- package/lib/esm/widgets/json-view/JSONDisplay.js +10 -0
- package/lib/esm/widgets/json-view/JSONDisplay.js.map +1 -0
- package/lib/esm/widgets/json-view/JSONView.js +106 -0
- package/lib/esm/widgets/json-view/JSONView.js.map +1 -0
- package/lib/esm/widgets/json-view/index.js +4 -0
- package/lib/esm/widgets/json-view/index.js.map +1 -0
- package/lib/esm/widgets/json-view/types.js +2 -0
- package/lib/esm/widgets/json-view/types.js.map +1 -0
- package/lib/esm/widgets/schema-editor/JSONSchemaEditorModal.js +50 -0
- package/lib/esm/widgets/schema-editor/JSONSchemaEditorModal.js.map +1 -0
- package/lib/esm/widgets/schema-editor/ManagedSchema.js +303 -0
- package/lib/esm/widgets/schema-editor/ManagedSchema.js.map +1 -0
- package/lib/esm/widgets/schema-editor/editor/Editable.js +111 -0
- package/lib/esm/widgets/schema-editor/editor/Editable.js.map +1 -0
- package/lib/esm/widgets/schema-editor/editor/EditableSchemaProperty.js +8 -0
- package/lib/esm/widgets/schema-editor/editor/EditableSchemaProperty.js.map +1 -0
- package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js +81 -0
- package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js.map +1 -0
- package/lib/esm/widgets/schema-editor/editor/PropertyViewer.js +7 -0
- package/lib/esm/widgets/schema-editor/editor/PropertyViewer.js.map +1 -0
- package/lib/esm/widgets/schema-editor/editor/SchemaContext.js +9 -0
- package/lib/esm/widgets/schema-editor/editor/SchemaContext.js.map +1 -0
- package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js +84 -0
- package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js.map +1 -0
- package/lib/esm/widgets/schema-editor/index.js +8 -0
- package/lib/esm/widgets/schema-editor/index.js.map +1 -0
- package/lib/esm/widgets/schema-editor/json-schema4-utils.js +188 -0
- package/lib/esm/widgets/schema-editor/json-schema4-utils.js.map +1 -0
- package/lib/esm/widgets/schema-editor/type-signature.js +30 -0
- package/lib/esm/widgets/schema-editor/type-signature.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/components/Attributes/index.js +11 -0
- package/lib/esm/widgets/xml-viewer/components/Attributes/index.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/components/CDataTag/index.js +8 -0
- package/lib/esm/widgets/xml-viewer/components/CDataTag/index.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/components/CollapseIcon/index.js +11 -0
- package/lib/esm/widgets/xml-viewer/components/CollapseIcon/index.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/components/CommentTag/index.js +11 -0
- package/lib/esm/widgets/xml-viewer/components/CommentTag/index.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/components/DeclarationTag/index.js +9 -0
- package/lib/esm/widgets/xml-viewer/components/DeclarationTag/index.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/components/Elements/index.js +36 -0
- package/lib/esm/widgets/xml-viewer/components/Elements/index.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/components/InvalidXml/index.js +5 -0
- package/lib/esm/widgets/xml-viewer/components/InvalidXml/index.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/components/Tag/index.js +13 -0
- package/lib/esm/widgets/xml-viewer/components/Tag/index.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/components/TextElement/index.js +13 -0
- package/lib/esm/widgets/xml-viewer/components/TextElement/index.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/components/XMLViewer.js +30 -0
- package/lib/esm/widgets/xml-viewer/components/XMLViewer.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/components/types.js +2 -0
- package/lib/esm/widgets/xml-viewer/components/types.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/constants/index.js +17 -0
- package/lib/esm/widgets/xml-viewer/constants/index.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/context/xml-viewer-context.js +10 -0
- package/lib/esm/widgets/xml-viewer/context/xml-viewer-context.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/helpers/index.js +40 -0
- package/lib/esm/widgets/xml-viewer/helpers/index.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/hooks/useCollapsible.js +22 -0
- package/lib/esm/widgets/xml-viewer/hooks/useCollapsible.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/hooks/useXMLViewer.js +31 -0
- package/lib/esm/widgets/xml-viewer/hooks/useXMLViewer.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/index.js +3 -0
- package/lib/esm/widgets/xml-viewer/index.js.map +1 -0
- package/lib/esm/widgets/xml-viewer/types/index.js +2 -0
- package/lib/esm/widgets/xml-viewer/types/index.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types/code/index.d.ts +0 -0
- package/lib/types/core/components/Avatar.d.ts +15 -0
- package/lib/types/core/components/Badge.d.ts +20 -0
- package/lib/types/core/components/Button.d.ts +13 -0
- package/lib/types/core/components/Center.d.ts +7 -0
- package/lib/types/core/components/ComboBox.d.ts +123 -0
- package/lib/types/core/components/ConfirmModal.d.ts +10 -0
- package/lib/types/core/components/DeleteModal.d.ts +10 -0
- package/lib/types/core/components/Divider.d.ts +5 -0
- package/lib/types/core/components/Dropdown.d.ts +14 -0
- package/lib/types/core/components/DropdownList.d.ts +12 -0
- package/lib/types/core/components/EmptyCollection.d.ts +8 -0
- package/lib/types/core/components/FileUpload.d.ts +28 -0
- package/lib/types/core/components/Input.d.ts +8 -0
- package/lib/types/core/components/InputList.d.ts +10 -0
- package/lib/types/core/components/Link.d.ts +6 -0
- package/lib/types/core/components/MenuList.d.ts +13 -0
- package/lib/types/core/components/MessageBox.d.ts +35 -0
- package/lib/types/core/components/Modal.d.ts +29 -0
- package/lib/types/core/components/NumberInput.d.ts +15 -0
- package/lib/types/core/components/Portal.d.ts +5 -0
- package/lib/types/core/components/RadioGroup.d.ts +25 -0
- package/lib/types/core/components/SelectBox.d.ts +35 -0
- package/lib/types/core/components/SelectList.d.ts +17 -0
- package/lib/types/core/components/SelectStack.d.ts +12 -0
- package/lib/types/core/components/SidePanel.d.ts +8 -0
- package/lib/types/core/components/Spinner.d.ts +6 -0
- package/lib/types/core/components/Switch.d.ts +9 -0
- package/lib/types/core/components/Textarea.d.ts +7 -0
- package/lib/types/core/components/index.d.ts +37 -0
- package/lib/types/core/components/libs/utils.d.ts +2 -0
- package/lib/types/core/components/libs/visuallyHidden.d.ts +6 -0
- package/lib/types/core/components/popup/Popup.d.ts +25 -0
- package/lib/types/core/components/popup/PopupController.d.ts +40 -0
- package/lib/types/core/components/popup/index.d.ts +3 -0
- package/lib/types/core/components/popup/position.d.ts +58 -0
- package/lib/types/core/components/popup/utils.d.ts +29 -0
- package/lib/types/core/components/shadcn/breadcrumb.d.ts +13 -0
- package/lib/types/core/components/shadcn/button.d.ts +15 -0
- package/lib/types/core/components/shadcn/calendar.d.ts +10 -0
- package/lib/types/core/components/shadcn/card.d.ts +8 -0
- package/lib/types/core/components/shadcn/checkbox.d.ts +4 -0
- package/lib/types/core/components/shadcn/command.d.ts +80 -0
- package/lib/types/core/components/shadcn/dialog.d.ts +34 -0
- package/lib/types/core/components/shadcn/filters/animateChangeInHeight.d.ts +6 -0
- package/lib/types/core/components/shadcn/filters/comboBox.d.ts +17 -0
- package/lib/types/core/components/shadcn/filters/dateFilter.d.ts +14 -0
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts +9 -0
- package/lib/types/core/components/shadcn/filters/filters.d.ts +9 -0
- package/lib/types/core/components/shadcn/filters/index.d.ts +5 -0
- package/lib/types/core/components/shadcn/filters/selectFilter.d.ts +11 -0
- package/lib/types/core/components/shadcn/filters/textFilter.d.ts +12 -0
- package/lib/types/core/components/shadcn/filters/types.d.ts +26 -0
- package/lib/types/core/components/shadcn/heading.d.ts +5 -0
- package/lib/types/core/components/shadcn/index.d.ts +21 -0
- package/lib/types/core/components/shadcn/input.d.ts +16 -0
- package/lib/types/core/components/shadcn/label.d.ts +7 -0
- package/lib/types/core/components/shadcn/popover.d.ts +16 -0
- package/lib/types/core/components/shadcn/selectBox.d.ts +21 -0
- package/lib/types/core/components/shadcn/separator.d.ts +4 -0
- package/lib/types/core/components/shadcn/tabs.d.ts +26 -0
- package/lib/types/core/components/shadcn/text.d.ts +10 -0
- package/lib/types/core/components/shadcn/theme/ThemeProvider.d.ts +13 -0
- package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts +9 -0
- package/lib/types/core/components/shadcn/tooltip.d.ts +19 -0
- package/lib/types/core/components/styles.d.ts +6 -0
- package/lib/types/core/components/table/index.d.ts +13 -0
- package/lib/types/core/components/tabs/Tabs.d.ts +24 -0
- package/lib/types/core/components/tabs/TabsContext.d.ts +16 -0
- package/lib/types/core/components/tabs/index.d.ts +2 -0
- package/lib/types/core/components/toast/NotificationPanel.d.ts +7 -0
- package/lib/types/core/components/toast/ToastContext.d.ts +5 -0
- package/lib/types/core/components/toast/ToastProps.d.ts +6 -0
- package/lib/types/core/components/toast/ToastProvider.d.ts +5 -0
- package/lib/types/core/components/toast/index.d.ts +2 -0
- package/lib/types/core/hooks/CompositeState.d.ts +27 -0
- package/lib/types/core/hooks/SharedState.d.ts +9 -0
- package/lib/types/core/hooks/index.d.ts +13 -0
- package/lib/types/core/hooks/useClickOutside.d.ts +7 -0
- package/lib/types/core/hooks/useCopyToClipboard.d.ts +4 -0
- package/lib/types/core/hooks/useDarkMode.d.ts +1 -0
- package/lib/types/core/hooks/useDebounce.d.ts +1 -0
- package/lib/types/core/hooks/useEventSource.d.ts +1 -0
- package/lib/types/core/hooks/useFetch.d.ts +23 -0
- package/lib/types/core/hooks/useFlag.d.ts +8 -0
- package/lib/types/core/hooks/useIntersectionObserver.d.ts +13 -0
- package/lib/types/core/hooks/useIsFistRendering.d.ts +1 -0
- package/lib/types/core/hooks/useSafeLayoutEffect.d.ts +3 -0
- package/lib/types/core/hooks/useSharedValue.d.ts +11 -0
- package/lib/types/core/index.d.ts +2 -0
- package/lib/types/env/index.d.ts +70 -0
- package/lib/types/features/activity-doc/ActivityDoc.d.ts +13 -0
- package/lib/types/features/activity-doc/index.d.ts +1 -0
- package/lib/types/features/index.d.ts +2 -0
- package/lib/types/features/permissions/SecureButton.d.ts +7 -0
- package/lib/types/features/permissions/SecureSidebarItem.d.ts +7 -0
- package/lib/types/features/permissions/UserPermissionsProvider.d.ts +19 -0
- package/lib/types/features/permissions/helpers.d.ts +4 -0
- package/lib/types/features/permissions/index.d.ts +4 -0
- package/lib/types/form/index.d.ts +0 -0
- package/lib/types/layout/AppLayout.d.ts +12 -0
- package/lib/types/layout/FullHeightLayout.d.ts +26 -0
- package/lib/types/layout/Navbar.d.ts +32 -0
- package/lib/types/layout/Sidebar.d.ts +29 -0
- package/lib/types/layout/SidebarContext.d.ts +8 -0
- package/lib/types/layout/TitleBar.d.ts +5 -0
- package/lib/types/layout/index.d.ts +6 -0
- package/lib/types/router/FixLinks.d.ts +6 -0
- package/lib/types/router/HistoryNavigator.d.ts +55 -0
- package/lib/types/router/Nav.d.ts +28 -0
- package/lib/types/router/NestedNavigationContext.d.ts +8 -0
- package/lib/types/router/NestedRouterProvider.d.ts +13 -0
- package/lib/types/router/PathMatcher.d.ts +35 -0
- package/lib/types/router/PathWithParams.d.ts +8 -0
- package/lib/types/router/Route404.d.ts +3 -0
- package/lib/types/router/RouteComponent.d.ts +5 -0
- package/lib/types/router/Router.d.ts +73 -0
- package/lib/types/router/RouterProvider.d.ts +14 -0
- package/lib/types/router/index.d.ts +10 -0
- package/lib/types/router/path.d.ts +7 -0
- package/lib/types/session/TypeRegistry.d.ts +9 -0
- package/lib/types/session/UserSession.d.ts +39 -0
- package/lib/types/session/UserSessionProvider.d.ts +6 -0
- package/lib/types/session/auth/composable.d.ts +25 -0
- package/lib/types/session/auth/firebase.d.ts +9 -0
- package/lib/types/session/auth/useAuthState.d.ts +9 -0
- package/lib/types/session/index.d.ts +6 -0
- package/lib/types/session/useUXTracking.d.ts +5 -0
- package/lib/types/widgets/codemirror/CodeMirrorEditor.d.ts +22 -0
- package/lib/types/widgets/codemirror/CodemirrorStateSingleton.d.ts +14 -0
- package/lib/types/widgets/codemirror/index.d.ts +1 -0
- package/lib/types/widgets/form/Form.d.ts +20 -0
- package/lib/types/widgets/form/FormContext.d.ts +16 -0
- package/lib/types/widgets/form/ManagedObject.d.ts +81 -0
- package/lib/types/widgets/form/fields.d.ts +15 -0
- package/lib/types/widgets/form/index.d.ts +6 -0
- package/lib/types/widgets/form/inputs.d.ts +7 -0
- package/lib/types/widgets/form/schema.d.ts +45 -0
- package/lib/types/widgets/index.d.ts +5 -0
- package/lib/types/widgets/json-view/JSONCode.d.ts +21 -0
- package/lib/types/widgets/json-view/JSONDisplay.d.ts +7 -0
- package/lib/types/widgets/json-view/JSONView.d.ts +6 -0
- package/lib/types/widgets/json-view/index.d.ts +4 -0
- package/lib/types/widgets/json-view/types.d.ts +7 -0
- package/lib/types/widgets/schema-editor/JSONSchemaEditorModal.d.ts +9 -0
- package/lib/types/widgets/schema-editor/ManagedSchema.d.ts +74 -0
- package/lib/types/widgets/schema-editor/editor/Editable.d.ts +39 -0
- package/lib/types/widgets/schema-editor/editor/EditableSchemaProperty.d.ts +7 -0
- package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts +4 -0
- package/lib/types/widgets/schema-editor/editor/PropertyViewer.d.ts +3 -0
- package/lib/types/widgets/schema-editor/editor/SchemaContext.d.ts +2 -0
- package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts +8 -0
- package/lib/types/widgets/schema-editor/index.d.ts +7 -0
- package/lib/types/widgets/schema-editor/json-schema4-utils.d.ts +15 -0
- package/lib/types/widgets/schema-editor/type-signature.d.ts +18 -0
- package/lib/types/widgets/xml-viewer/components/Attributes/index.d.ts +5 -0
- package/lib/types/widgets/xml-viewer/components/CDataTag/index.d.ts +7 -0
- package/lib/types/widgets/xml-viewer/components/CollapseIcon/index.d.ts +4 -0
- package/lib/types/widgets/xml-viewer/components/CommentTag/index.d.ts +8 -0
- package/lib/types/widgets/xml-viewer/components/DeclarationTag/index.d.ts +7 -0
- package/lib/types/widgets/xml-viewer/components/Elements/index.d.ts +7 -0
- package/lib/types/widgets/xml-viewer/components/InvalidXml/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/components/Tag/index.d.ts +12 -0
- package/lib/types/widgets/xml-viewer/components/TextElement/index.d.ts +7 -0
- package/lib/types/widgets/xml-viewer/components/XMLViewer.d.ts +2 -0
- package/lib/types/widgets/xml-viewer/components/types.d.ts +103 -0
- package/lib/types/widgets/xml-viewer/constants/index.d.ts +16 -0
- package/lib/types/widgets/xml-viewer/context/xml-viewer-context.d.ts +3 -0
- package/lib/types/widgets/xml-viewer/helpers/index.d.ts +12 -0
- package/lib/types/widgets/xml-viewer/hooks/useCollapsible.d.ts +14 -0
- package/lib/types/widgets/xml-viewer/hooks/useXMLViewer.d.ts +9 -0
- package/lib/types/widgets/xml-viewer/index.d.ts +2 -0
- package/lib/types/widgets/xml-viewer/types/index.d.ts +15 -0
- package/lib/vertesia-ui-code.js +2 -0
- package/lib/vertesia-ui-code.js.map +1 -0
- package/lib/vertesia-ui-core.js +2 -0
- package/lib/vertesia-ui-core.js.map +1 -0
- package/lib/vertesia-ui-env.js +2 -0
- package/lib/vertesia-ui-env.js.map +1 -0
- package/lib/vertesia-ui-features.js +2 -0
- package/lib/vertesia-ui-features.js.map +1 -0
- package/lib/vertesia-ui-form.js +2 -0
- package/lib/vertesia-ui-form.js.map +1 -0
- package/lib/vertesia-ui-layout.js +2 -0
- package/lib/vertesia-ui-layout.js.map +1 -0
- package/lib/vertesia-ui-router.js +2 -0
- package/lib/vertesia-ui-router.js.map +1 -0
- package/lib/vertesia-ui-session.js +2 -0
- package/lib/vertesia-ui-session.js.map +1 -0
- package/lib/vertesia-ui-widgets.js +2 -0
- package/lib/vertesia-ui-widgets.js.map +1 -0
- package/package.json +113 -33
- package/src/code/index.ts +1 -0
- package/src/core/components/Avatar.tsx +67 -0
- package/src/core/components/Badge.tsx +114 -0
- package/src/core/components/Button.tsx +63 -0
- package/src/core/components/Center.tsx +12 -0
- package/src/core/components/ComboBox.tsx +488 -0
- package/src/core/components/ConfirmModal.tsx +51 -0
- package/src/core/components/DeleteModal.tsx +45 -0
- package/src/core/components/Divider.tsx +11 -0
- package/src/core/components/Dropdown.tsx +63 -0
- package/src/core/components/DropdownList.tsx +72 -0
- package/src/core/components/EmptyCollection.tsx +39 -0
- package/src/core/components/FileUpload.tsx +196 -0
- package/src/core/components/Input.tsx +43 -0
- package/src/core/components/InputList.tsx +75 -0
- package/src/core/components/Link.tsx +16 -0
- package/src/core/components/MenuList.tsx +44 -0
- package/src/core/components/MessageBox.tsx +96 -0
- package/src/core/components/Modal.tsx +144 -0
- package/src/core/components/NumberInput.tsx +64 -0
- package/src/core/components/Portal.tsx +33 -0
- package/src/core/components/RadioGroup.tsx +100 -0
- package/src/core/components/SelectBox.tsx +189 -0
- package/src/core/components/SelectList.tsx +85 -0
- package/src/core/components/SelectStack.tsx +63 -0
- package/src/core/components/SidePanel.tsx +104 -0
- package/src/core/components/Spinner.tsx +33 -0
- package/src/core/components/Switch.tsx +29 -0
- package/src/core/components/Textarea.tsx +25 -0
- package/src/core/components/index.ts +39 -0
- package/src/core/components/libs/utils.tsx +6 -0
- package/src/core/components/libs/visuallyHidden.tsx +25 -0
- package/src/core/components/popup/Popup.tsx +94 -0
- package/src/core/components/popup/PopupController.ts +182 -0
- package/src/core/components/popup/index.ts +3 -0
- package/src/core/components/popup/position.ts +277 -0
- package/src/core/components/popup/utils.ts +82 -0
- package/src/core/components/shadcn/breadcrumb.tsx +174 -0
- package/src/core/components/shadcn/button.tsx +95 -0
- package/src/core/components/shadcn/calendar.tsx +87 -0
- package/src/core/components/shadcn/card.tsx +76 -0
- package/src/core/components/shadcn/checkbox.tsx +30 -0
- package/src/core/components/shadcn/command.tsx +155 -0
- package/src/core/components/shadcn/dialog.tsx +230 -0
- package/src/core/components/shadcn/filters/animateChangeInHeight.tsx +41 -0
- package/src/core/components/shadcn/filters/comboBox.tsx +251 -0
- package/src/core/components/shadcn/filters/dateFilter.tsx +65 -0
- package/src/core/components/shadcn/filters/filterBar.tsx +262 -0
- package/src/core/components/shadcn/filters/filters.tsx +110 -0
- package/src/core/components/shadcn/filters/index.ts +5 -0
- package/src/core/components/shadcn/filters/selectFilter.tsx +91 -0
- package/src/core/components/shadcn/filters/textFilter.tsx +59 -0
- package/src/core/components/shadcn/filters/types.ts +29 -0
- package/src/core/components/shadcn/heading.tsx +23 -0
- package/src/core/components/shadcn/index.ts +22 -0
- package/src/core/components/shadcn/input.tsx +89 -0
- package/src/core/components/shadcn/label.tsx +31 -0
- package/src/core/components/shadcn/popover.tsx +115 -0
- package/src/core/components/shadcn/selectBox.tsx +186 -0
- package/src/core/components/shadcn/separator.tsx +29 -0
- package/src/core/components/shadcn/tabs.tsx +218 -0
- package/src/core/components/shadcn/text.tsx +33 -0
- package/src/core/components/shadcn/theme/ThemeProvider.tsx +73 -0
- package/src/core/components/shadcn/theme/ThemeSwitcher.tsx +35 -0
- package/src/core/components/shadcn/tooltip.tsx +57 -0
- package/src/core/components/styles.ts +11 -0
- package/src/core/components/table/index.tsx +49 -0
- package/src/core/components/tabs/Tabs.tsx +132 -0
- package/src/core/components/tabs/TabsContext.ts +25 -0
- package/src/core/components/tabs/index.ts +2 -0
- package/src/core/components/toast/NotificationPanel.tsx +91 -0
- package/src/core/components/toast/ToastContext.ts +12 -0
- package/src/core/components/toast/ToastProps.ts +6 -0
- package/src/core/components/toast/ToastProvider.tsx +26 -0
- package/src/core/components/toast/index.ts +2 -0
- package/src/core/hooks/CompositeState.tsx +142 -0
- package/src/core/hooks/SharedState.tsx +69 -0
- package/src/core/hooks/index.ts +13 -0
- package/src/core/hooks/useClickOutside.tsx +29 -0
- package/src/core/hooks/useCopyToClipboard.tsx +28 -0
- package/src/core/hooks/useDarkMode.ts +11 -0
- package/src/core/hooks/useDebounce.tsx +15 -0
- package/src/core/hooks/useEventSource.ts +35 -0
- package/src/core/hooks/useFetch.ts +51 -0
- package/src/core/hooks/useFlag.tsx +13 -0
- package/src/core/hooks/useIntersectionObserver.tsx +40 -0
- package/src/core/hooks/useIsFistRendering.ts +17 -0
- package/src/core/hooks/useSafeLayoutEffect.ts +5 -0
- package/src/core/hooks/useSharedValue.ts +22 -0
- package/src/core/index.ts +2 -0
- package/src/env/index.ts +116 -0
- package/src/features/activity-doc/ActivityDoc.tsx +199 -0
- package/src/features/activity-doc/index.ts +1 -0
- package/src/features/index.ts +2 -0
- package/src/features/permissions/SecureButton.tsx +18 -0
- package/src/features/permissions/SecureSidebarItem.tsx +19 -0
- package/src/features/permissions/UserPermissionsProvider.tsx +102 -0
- package/src/features/permissions/helpers.ts +16 -0
- package/src/features/permissions/index.ts +4 -0
- package/src/form/index.ts +1 -0
- package/src/layout/AppLayout.tsx +132 -0
- package/src/layout/FullHeightLayout.tsx +74 -0
- package/src/layout/Navbar.tsx +127 -0
- package/src/layout/Sidebar.tsx +129 -0
- package/src/layout/SidebarContext.ts +17 -0
- package/src/layout/TitleBar.tsx +7 -0
- package/src/layout/index.ts +6 -0
- package/src/router/FixLinks.tsx +28 -0
- package/src/router/HistoryNavigator.ts +178 -0
- package/src/router/Nav.tsx +55 -0
- package/src/router/NestedNavigationContext.tsx +32 -0
- package/src/router/NestedRouterProvider.tsx +64 -0
- package/src/router/PathMatcher.ts +166 -0
- package/src/router/PathWithParams.ts +34 -0
- package/src/router/Route404.tsx +18 -0
- package/src/router/RouteComponent.tsx +41 -0
- package/src/router/Router.tsx +216 -0
- package/src/router/RouterProvider.tsx +55 -0
- package/src/router/index.ts +10 -0
- package/src/router/path.ts +151 -0
- package/src/session/TypeRegistry.ts +27 -0
- package/src/session/UserSession.ts +227 -0
- package/src/session/UserSessionProvider.tsx +170 -0
- package/src/session/auth/composable.ts +190 -0
- package/src/session/auth/firebase.ts +160 -0
- package/src/session/auth/useAuthState.ts +61 -0
- package/src/session/index.ts +6 -0
- package/src/session/useUXTracking.tsx +38 -0
- package/src/vite-env.d.ts +2 -0
- package/src/widgets/codemirror/CodeMirrorEditor.tsx +121 -0
- package/src/widgets/codemirror/CodemirrorStateSingleton.tsx +39 -0
- package/src/widgets/codemirror/index.ts +2 -0
- package/src/widgets/form/Form.tsx +194 -0
- package/src/widgets/form/FormContext.ts +38 -0
- package/src/widgets/form/ManagedObject.ts +332 -0
- package/src/widgets/form/fields.tsx +34 -0
- package/src/widgets/form/index.ts +6 -0
- package/src/widgets/form/inputs.tsx +44 -0
- package/src/widgets/form/schema.ts +215 -0
- package/src/widgets/index.ts +5 -0
- package/src/widgets/json-view/JSONCode.tsx +176 -0
- package/src/widgets/json-view/JSONDisplay.tsx +24 -0
- package/src/widgets/json-view/JSONView.tsx +183 -0
- package/src/widgets/json-view/index.ts +4 -0
- package/src/widgets/json-view/types.ts +5 -0
- package/src/widgets/schema-editor/JSONSchemaEditorModal.tsx +68 -0
- package/src/widgets/schema-editor/ManagedSchema.ts +340 -0
- package/src/widgets/schema-editor/editor/Editable.tsx +252 -0
- package/src/widgets/schema-editor/editor/EditableSchemaProperty.tsx +15 -0
- package/src/widgets/schema-editor/editor/PropertyEditor.tsx +150 -0
- package/src/widgets/schema-editor/editor/PropertyViewer.tsx +15 -0
- package/src/widgets/schema-editor/editor/SchemaContext.tsx +9 -0
- package/src/widgets/schema-editor/editor/SchemaEditor.test.ts +48 -0
- package/src/widgets/schema-editor/editor/SchemaEditor.tsx +161 -0
- package/src/widgets/schema-editor/index.ts +7 -0
- package/src/widgets/schema-editor/json-schema4-utils.ts +187 -0
- package/src/widgets/schema-editor/type-signature.ts +39 -0
- package/src/widgets/xml-viewer/components/Attributes/index.tsx +27 -0
- package/src/widgets/xml-viewer/components/CDataTag/index.tsx +21 -0
- package/src/widgets/xml-viewer/components/CollapseIcon/index.tsx +32 -0
- package/src/widgets/xml-viewer/components/CommentTag/index.tsx +30 -0
- package/src/widgets/xml-viewer/components/DeclarationTag/index.tsx +23 -0
- package/src/widgets/xml-viewer/components/Elements/index.tsx +83 -0
- package/src/widgets/xml-viewer/components/InvalidXml/index.tsx +3 -0
- package/src/widgets/xml-viewer/components/Tag/index.tsx +47 -0
- package/src/widgets/xml-viewer/components/TextElement/index.tsx +28 -0
- package/src/widgets/xml-viewer/components/XMLViewer.tsx +53 -0
- package/src/widgets/xml-viewer/components/types.ts +104 -0
- package/src/widgets/xml-viewer/constants/index.ts +17 -0
- package/src/widgets/xml-viewer/context/xml-viewer-context.ts +12 -0
- package/src/widgets/xml-viewer/helpers/index.ts +56 -0
- package/src/widgets/xml-viewer/hooks/useCollapsible.ts +28 -0
- package/src/widgets/xml-viewer/hooks/useXMLViewer.ts +34 -0
- package/src/widgets/xml-viewer/index.ts +2 -0
- package/src/widgets/xml-viewer/types/index.ts +21 -0
- package/README.md +0 -1
- package/lib/context/HostContext.d.ts +0 -67
- package/lib/context/HostContext.d.ts.map +0 -1
- package/lib/context/HostContext.js +0 -2
- package/lib/context/HostContext.js.map +0 -1
- package/lib/context/index.d.ts +0 -9
- package/lib/context/index.d.ts.map +0 -1
- package/lib/context/index.js +0 -11
- package/lib/context/index.js.map +0 -1
- package/lib/host/PluginHost.d.ts +0 -7
- package/lib/host/PluginHost.d.ts.map +0 -1
- package/lib/host/PluginHost.js +0 -37
- package/lib/host/PluginHost.js.map +0 -1
- package/lib/host/PluginManager.d.ts +0 -59
- package/lib/host/PluginManager.d.ts.map +0 -1
- package/lib/host/PluginManager.js +0 -195
- package/lib/host/PluginManager.js.map +0 -1
- package/lib/host/index.d.ts +0 -3
- package/lib/host/index.d.ts.map +0 -1
- package/lib/host/index.js +0 -3
- package/lib/host/index.js.map +0 -1
- package/lib/index.d.ts +0 -2
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -3
- package/lib/index.js.map +0 -1
- package/src/context/HostContext.ts +0 -73
- package/src/context/index.ts +0 -20
- package/src/host/PluginHost.tsx +0 -37
- package/src/host/PluginManager.tsx +0 -197
- package/src/host/index.ts +0 -2
- package/src/index.ts +0 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SVGAttributes } from 'react';
|
|
2
|
+
import { useXMLViewerContext } from '../../context/xml-viewer-context';
|
|
3
|
+
|
|
4
|
+
export interface CollapseIconProps {
|
|
5
|
+
collapsed: boolean;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function CollapseIcon(props: CollapseIconProps): React.ReactElement | null {
|
|
9
|
+
const { collapsible, theme } = useXMLViewerContext();
|
|
10
|
+
const { collapsed } = props;
|
|
11
|
+
|
|
12
|
+
return collapsible ? (
|
|
13
|
+
<span style={{ position: 'relative' }}>
|
|
14
|
+
<span style={{ position: 'absolute', right: '0', border: 0, padding: 0, background: 'none' }}>
|
|
15
|
+
<Caret
|
|
16
|
+
fill={theme.separatorColor}
|
|
17
|
+
style={{ transform: `rotate(${collapsed ? 0 : 90}deg)`, transition: 'transform 0.2s' }}
|
|
18
|
+
/>
|
|
19
|
+
</span>
|
|
20
|
+
</span>
|
|
21
|
+
) : null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function Caret({ ...attrs }: SVGAttributes<SVGElement>): React.ReactElement {
|
|
25
|
+
return (
|
|
26
|
+
<svg width="16px" height="16px" viewBox="0 0 24 24" {...attrs}>
|
|
27
|
+
<path
|
|
28
|
+
d="M9 17.898C9 18.972 10.2649 19.546 11.0731 18.8388L17.3838 13.3169C18.1806 12.6197 18.1806 11.3801 17.3838 10.6829L11.0731 5.16108C10.2649 4.45388 9 5.02785 9 6.1018V17.898Z"
|
|
29
|
+
/>
|
|
30
|
+
</svg>
|
|
31
|
+
)
|
|
32
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { CollapseIcon } from '../../components/CollapseIcon';
|
|
3
|
+
import { useXMLViewerContext } from '../../context/xml-viewer-context';
|
|
4
|
+
import { useCollapsible } from '../../hooks/useCollapsible';
|
|
5
|
+
|
|
6
|
+
export interface CommentTagProps {
|
|
7
|
+
indentation: string;
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
isInline: boolean;
|
|
10
|
+
level: number;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function CommentTag(props: CommentTagProps) {
|
|
14
|
+
const { indentation, children, isInline, level } = props;
|
|
15
|
+
const { theme } = useXMLViewerContext();
|
|
16
|
+
const { collapsed, buttonProps } = useCollapsible(level);
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<div style={{ color: theme.commentColor }}>
|
|
20
|
+
<span {...buttonProps}>
|
|
21
|
+
<span>{indentation}</span>
|
|
22
|
+
<CollapseIcon collapsed={collapsed} />
|
|
23
|
+
<span>{'<!-- '}</span>
|
|
24
|
+
</span>
|
|
25
|
+
{!collapsed && children}
|
|
26
|
+
{collapsed && '...'}
|
|
27
|
+
<span>{`${isInline || collapsed ? ' ' : indentation}-->`}</span>
|
|
28
|
+
</div>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Attributes } from '../../components/Attributes';
|
|
2
|
+
import { useXMLViewerContext } from '../../context/xml-viewer-context';
|
|
3
|
+
import { AttributesObject } from '../../types';
|
|
4
|
+
|
|
5
|
+
export interface DeclarationTagProps {
|
|
6
|
+
indentation: string;
|
|
7
|
+
tagKey: string;
|
|
8
|
+
attributes: AttributesObject;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function DeclarationTag(props: DeclarationTagProps) {
|
|
12
|
+
const { indentation, tagKey, attributes } = props;
|
|
13
|
+
const { theme } = useXMLViewerContext();
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<div>
|
|
17
|
+
<span style={{ color: theme.separatorColor }}>{`${indentation}<?`}</span>
|
|
18
|
+
<span style={{ color: theme.tagColor }}>{`${tagKey.slice(1)}`}</span>
|
|
19
|
+
<Attributes attributes={attributes} />
|
|
20
|
+
<span style={{ color: theme.separatorColor }}>{'?>'}</span>
|
|
21
|
+
</div>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { CDataTag } from '../../components/CDataTag';
|
|
2
|
+
import { CommentTag } from '../../components/CommentTag';
|
|
3
|
+
import { DeclarationTag } from '../../components/DeclarationTag';
|
|
4
|
+
import { Tag } from '../../components/Tag';
|
|
5
|
+
import { TextElement } from '../../components/TextElement';
|
|
6
|
+
import { ATTRIBUTE_CDATA, ATTRIBUTE_COMMENT, ATTRIBUTE_TEXT, DECLARATION_TAG } from '../../constants';
|
|
7
|
+
import { useXMLViewerContext } from '../../context/xml-viewer-context';
|
|
8
|
+
import { getIndentationString, getTagProps, isInlineTextElement } from '../../helpers';
|
|
9
|
+
import { Element } from '../../types';
|
|
10
|
+
|
|
11
|
+
export interface ElementsProps {
|
|
12
|
+
elements: Element[];
|
|
13
|
+
level?: number;
|
|
14
|
+
isText?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export function Elements(props: ElementsProps) {
|
|
17
|
+
const { elements, level = 0, isText = true } = props;
|
|
18
|
+
const { indentSize } = useXMLViewerContext();
|
|
19
|
+
|
|
20
|
+
if (!Array.isArray(elements) || elements.length === 0) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<>
|
|
26
|
+
{elements.map((element, index) => {
|
|
27
|
+
const { tagKey, attributes, subElements, type } = getTagProps(element);
|
|
28
|
+
const hasSiblings = elements.length > 1;
|
|
29
|
+
const indentation = getIndentationString(indentSize, level);
|
|
30
|
+
const key = `${level}-${index}`;
|
|
31
|
+
const isInline = isInlineTextElement(subElements);
|
|
32
|
+
|
|
33
|
+
switch (type) {
|
|
34
|
+
case ATTRIBUTE_TEXT:
|
|
35
|
+
return (
|
|
36
|
+
<TextElement
|
|
37
|
+
key={key}
|
|
38
|
+
text={subElements as string}
|
|
39
|
+
indentation={indentation}
|
|
40
|
+
hasSiblings={hasSiblings}
|
|
41
|
+
isText={isText}
|
|
42
|
+
/>
|
|
43
|
+
);
|
|
44
|
+
case ATTRIBUTE_COMMENT:
|
|
45
|
+
return (
|
|
46
|
+
<CommentTag key={key} isInline={isInline} indentation={indentation} level={level}>
|
|
47
|
+
<Elements elements={subElements as Element[]} level={level + 1} isText={false} />
|
|
48
|
+
</CommentTag>
|
|
49
|
+
);
|
|
50
|
+
case ATTRIBUTE_CDATA:
|
|
51
|
+
return (
|
|
52
|
+
<CDataTag key={key} indentation={indentation} isInline={isInline}>
|
|
53
|
+
<Elements elements={subElements as Element[]} level={level + 1} isText={false} />
|
|
54
|
+
</CDataTag>
|
|
55
|
+
);
|
|
56
|
+
case DECLARATION_TAG:
|
|
57
|
+
return (
|
|
58
|
+
<DeclarationTag
|
|
59
|
+
key={key}
|
|
60
|
+
indentation={indentation}
|
|
61
|
+
tagKey={tagKey}
|
|
62
|
+
attributes={attributes}
|
|
63
|
+
/>
|
|
64
|
+
);
|
|
65
|
+
default:
|
|
66
|
+
return (
|
|
67
|
+
<Tag
|
|
68
|
+
key={key}
|
|
69
|
+
indentation={indentation}
|
|
70
|
+
tagKey={tagKey}
|
|
71
|
+
attributes={attributes}
|
|
72
|
+
isInline={isInline}
|
|
73
|
+
hasChildren={subElements.length > 0}
|
|
74
|
+
level={level}
|
|
75
|
+
>
|
|
76
|
+
<Elements elements={subElements as Element[]} level={level + 1} />
|
|
77
|
+
</Tag>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
})}
|
|
81
|
+
</>
|
|
82
|
+
);
|
|
83
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { Attributes } from '../../components/Attributes';
|
|
3
|
+
import { CollapseIcon } from '../../components/CollapseIcon';
|
|
4
|
+
import { useXMLViewerContext } from '../../context/xml-viewer-context';
|
|
5
|
+
import { hasAttributes } from '../../helpers';
|
|
6
|
+
import { useCollapsible } from '../../hooks/useCollapsible';
|
|
7
|
+
import { AttributesObject } from '../../types';
|
|
8
|
+
|
|
9
|
+
export interface TagProps {
|
|
10
|
+
indentation: string;
|
|
11
|
+
tagKey: string;
|
|
12
|
+
attributes: AttributesObject;
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
isInline: boolean;
|
|
15
|
+
hasChildren: boolean;
|
|
16
|
+
level: number;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function Tag(props: TagProps) {
|
|
20
|
+
const { indentation, tagKey, attributes, children, isInline, hasChildren, level } = props;
|
|
21
|
+
const { collapsed, buttonProps } = useCollapsible(level);
|
|
22
|
+
const { theme } = useXMLViewerContext();
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<div>
|
|
26
|
+
<span {...buttonProps}>
|
|
27
|
+
<span>{indentation}</span>
|
|
28
|
+
<CollapseIcon collapsed={collapsed} />
|
|
29
|
+
<span style={{ color: theme.separatorColor }}>{'<'}</span>
|
|
30
|
+
<span style={{ color: theme.tagColor }}>{`${tagKey}`}</span>
|
|
31
|
+
{!collapsed && <Attributes attributes={attributes} />}
|
|
32
|
+
{collapsed && hasAttributes(attributes) && ' ...'}
|
|
33
|
+
<span style={{ color: theme.separatorColor }}>{!hasChildren ? ' />' : '>'}</span>
|
|
34
|
+
</span>
|
|
35
|
+
{hasChildren && (
|
|
36
|
+
<>
|
|
37
|
+
{!collapsed && children}
|
|
38
|
+
{collapsed && '...'}
|
|
39
|
+
<span style={{ color: theme.separatorColor }}>{`${isInline || collapsed ? '' : indentation
|
|
40
|
+
}</`}</span>
|
|
41
|
+
<span style={{ color: theme.tagColor }}>{`${tagKey}`}</span>
|
|
42
|
+
<span style={{ color: theme.separatorColor }}>{'>'}</span>
|
|
43
|
+
</>
|
|
44
|
+
)}
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
47
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useXMLViewerContext } from '../../context/xml-viewer-context';
|
|
2
|
+
import { hasBreakLines } from '../../helpers';
|
|
3
|
+
|
|
4
|
+
export interface TextElementProps {
|
|
5
|
+
text: string;
|
|
6
|
+
hasSiblings: boolean;
|
|
7
|
+
indentation: string;
|
|
8
|
+
isText: boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function TextElement(props: TextElementProps) {
|
|
12
|
+
const { hasSiblings, text, indentation, isText } = props;
|
|
13
|
+
const { theme } = useXMLViewerContext();
|
|
14
|
+
const style = isText ? { color: theme.textColor } : undefined;
|
|
15
|
+
|
|
16
|
+
return hasBreakLines(text) || hasSiblings ? (
|
|
17
|
+
<div style={style}>
|
|
18
|
+
{text
|
|
19
|
+
.split('\n')
|
|
20
|
+
.filter((element) => !!element.trim())
|
|
21
|
+
.map((line, index) => (
|
|
22
|
+
<div key={`${index}`}>{`${indentation}${line.trim()}`}</div>
|
|
23
|
+
))}
|
|
24
|
+
</div>
|
|
25
|
+
) : (
|
|
26
|
+
<span style={style}>{text}</span>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { isEqual } from 'lodash-es';
|
|
2
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
3
|
+
import { defaultTheme } from '../constants';
|
|
4
|
+
import { XMLViewerContext } from '../context/xml-viewer-context';
|
|
5
|
+
import useXMLViewer from '../hooks/useXMLViewer';
|
|
6
|
+
import { Elements } from './Elements';
|
|
7
|
+
import { InvalidXml } from './InvalidXml';
|
|
8
|
+
import { Theme, XMLViewerProps } from './types';
|
|
9
|
+
|
|
10
|
+
export function XMLViewer(props: XMLViewerProps): React.ReactNode {
|
|
11
|
+
const {
|
|
12
|
+
theme: customTheme,
|
|
13
|
+
xml,
|
|
14
|
+
collapsible = false,
|
|
15
|
+
indentSize = 2,
|
|
16
|
+
invalidXml,
|
|
17
|
+
initalCollapsedDepth,
|
|
18
|
+
initialCollapsedDepth,
|
|
19
|
+
} = props;
|
|
20
|
+
const [theme, setTheme] = useState<Theme>(() => ({ ...defaultTheme, ...customTheme }));
|
|
21
|
+
const { json, valid } = useXMLViewer(xml);
|
|
22
|
+
const context = useMemo(
|
|
23
|
+
() => ({
|
|
24
|
+
theme,
|
|
25
|
+
collapsible,
|
|
26
|
+
indentSize,
|
|
27
|
+
initialCollapsedDepth: initialCollapsedDepth ?? initalCollapsedDepth,
|
|
28
|
+
}),
|
|
29
|
+
[theme, collapsible, indentSize, initalCollapsedDepth, initialCollapsedDepth],
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
setTheme((currentTheme) => {
|
|
34
|
+
const nextTheme = { ...defaultTheme, ...customTheme };
|
|
35
|
+
return isEqual(nextTheme, currentTheme) ? currentTheme : nextTheme;
|
|
36
|
+
});
|
|
37
|
+
}, [customTheme]);
|
|
38
|
+
|
|
39
|
+
if (!valid) {
|
|
40
|
+
return invalidXml ? invalidXml : <InvalidXml />;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
<XMLViewerContext.Provider value={context}>
|
|
45
|
+
<div
|
|
46
|
+
className="rxv-container"
|
|
47
|
+
style={{ whiteSpace: 'pre-wrap', fontFamily: theme.fontFamily, overflowWrap: 'break-word' }}
|
|
48
|
+
>
|
|
49
|
+
<Elements elements={json} />
|
|
50
|
+
</div>
|
|
51
|
+
</XMLViewerContext.Provider>
|
|
52
|
+
);
|
|
53
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
export interface Theme {
|
|
2
|
+
/**
|
|
3
|
+
* The tag name color (`<tag-name />`)
|
|
4
|
+
*
|
|
5
|
+
* @default #d43900
|
|
6
|
+
*/
|
|
7
|
+
tagColor?: string;
|
|
8
|
+
/**
|
|
9
|
+
* The text color (`<tag>Text</tag>`)
|
|
10
|
+
*
|
|
11
|
+
* @default #333
|
|
12
|
+
*/
|
|
13
|
+
textColor?: string;
|
|
14
|
+
/**
|
|
15
|
+
* The attribute key color (`<tag attribute-key="hello" />`)
|
|
16
|
+
*
|
|
17
|
+
* @default #2a7ab0
|
|
18
|
+
*/
|
|
19
|
+
attributeKeyColor?: string;
|
|
20
|
+
/**
|
|
21
|
+
* The attribute value color (` <tag attr="Attribute value">`)
|
|
22
|
+
*
|
|
23
|
+
* @default #008000
|
|
24
|
+
*/
|
|
25
|
+
attributeValueColor?: string;
|
|
26
|
+
/**
|
|
27
|
+
* The separators colors (`<, >, </, />, =, <?, ?>`)
|
|
28
|
+
*
|
|
29
|
+
* @default #333
|
|
30
|
+
*/
|
|
31
|
+
separatorColor?: string;
|
|
32
|
+
/**
|
|
33
|
+
* The comment color (`<!-- this is a comment -->`)
|
|
34
|
+
*
|
|
35
|
+
* @default #aaa
|
|
36
|
+
*/
|
|
37
|
+
commentColor?: string;
|
|
38
|
+
/**
|
|
39
|
+
* the cdata element color (`<![CDATA[some stuff]]>`)
|
|
40
|
+
*
|
|
41
|
+
* @default #1D781D
|
|
42
|
+
*/
|
|
43
|
+
cdataColor?: string;
|
|
44
|
+
/**
|
|
45
|
+
* The font family
|
|
46
|
+
*
|
|
47
|
+
* @default monospace
|
|
48
|
+
*/
|
|
49
|
+
fontFamily?: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface XMLViewerProps {
|
|
53
|
+
/**
|
|
54
|
+
* A xml string to prettify.
|
|
55
|
+
*/
|
|
56
|
+
xml: string;
|
|
57
|
+
/**
|
|
58
|
+
* An object to customize the default theme.
|
|
59
|
+
*
|
|
60
|
+
* @default
|
|
61
|
+
* ```js
|
|
62
|
+
* {
|
|
63
|
+
* tagColor: '#d43900',
|
|
64
|
+
* textColor: '#333',
|
|
65
|
+
* attributeKeyColor: '#2a7ab0',
|
|
66
|
+
* attributeValueColor: '#008000',
|
|
67
|
+
* separatorColor: '#333',
|
|
68
|
+
* commentColor: '#aaa',
|
|
69
|
+
* cdataColor: '#1d781d',
|
|
70
|
+
* fontFamily: 'monospace',
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
theme?: Theme;
|
|
75
|
+
/**
|
|
76
|
+
* The size of the indentation.
|
|
77
|
+
*
|
|
78
|
+
* @default 2
|
|
79
|
+
*/
|
|
80
|
+
indentSize?: number;
|
|
81
|
+
/**
|
|
82
|
+
* When the xml is invalid, invalidXml component will be returned.
|
|
83
|
+
*
|
|
84
|
+
* @default <div>Invalid XML!</div>
|
|
85
|
+
*/
|
|
86
|
+
invalidXml?: React.ReactElement;
|
|
87
|
+
/**
|
|
88
|
+
* Allow collapse/expand tags by click on them. When tag is collapsed its content and attributes are hidden.
|
|
89
|
+
*
|
|
90
|
+
* @default false
|
|
91
|
+
*/
|
|
92
|
+
collapsible?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* @deprecated use the initialCollapsedDepth instead
|
|
95
|
+
*/
|
|
96
|
+
initalCollapsedDepth?: number;
|
|
97
|
+
/**
|
|
98
|
+
* When the **collapsible** is true, this set the level that will be started as collapsed.
|
|
99
|
+
* For example, if you want to everything starts as collapsed, set 0.
|
|
100
|
+
*
|
|
101
|
+
* @default undefined
|
|
102
|
+
*/
|
|
103
|
+
initialCollapsedDepth?: number;
|
|
104
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const ATTRIBUTE_GROUP_KEY = ':@';
|
|
2
|
+
export const ATTRIBUTE_TEXT = '#text';
|
|
3
|
+
export const ATTRIBUTE_COMMENT = '#comment';
|
|
4
|
+
export const ATTRIBUTE_CDATA = '#cdata';
|
|
5
|
+
export const DECLARATION_TAG = 'DECLARATION_TAG';
|
|
6
|
+
export const TAG = 'TAG';
|
|
7
|
+
|
|
8
|
+
export const defaultTheme = {
|
|
9
|
+
tagColor: '#d43900',
|
|
10
|
+
textColor: '#333',
|
|
11
|
+
attributeKeyColor: '#2a7ab0',
|
|
12
|
+
attributeValueColor: '#008000',
|
|
13
|
+
separatorColor: '#333',
|
|
14
|
+
commentColor: '#aaa',
|
|
15
|
+
cdataColor: '#1d781d',
|
|
16
|
+
fontFamily: 'monospace',
|
|
17
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
import { defaultTheme } from '../constants';
|
|
3
|
+
import { IXmlViewerContext } from '../types';
|
|
4
|
+
|
|
5
|
+
const defaultState: IXmlViewerContext = {
|
|
6
|
+
theme: defaultTheme,
|
|
7
|
+
collapsible: false,
|
|
8
|
+
indentSize: 2,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const XMLViewerContext = createContext<IXmlViewerContext>(defaultState);
|
|
12
|
+
export const useXMLViewerContext = () => useContext(XMLViewerContext);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { omit } from 'lodash-es';
|
|
2
|
+
import {
|
|
3
|
+
ATTRIBUTE_CDATA,
|
|
4
|
+
ATTRIBUTE_COMMENT,
|
|
5
|
+
ATTRIBUTE_GROUP_KEY,
|
|
6
|
+
ATTRIBUTE_TEXT,
|
|
7
|
+
DECLARATION_TAG,
|
|
8
|
+
TAG,
|
|
9
|
+
} from '../constants';
|
|
10
|
+
import { AttributesObject, Element, ElementObject } from '../types';
|
|
11
|
+
|
|
12
|
+
export function getIndentationString(size: number, level: number) {
|
|
13
|
+
return new Array(level * size + 1).join(' ');
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function hasBreakLines(elements: Element[] | string) {
|
|
17
|
+
return typeof elements === 'string' && elements.includes('\n');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function isInlineTextElement(elements: Element[] | string) {
|
|
21
|
+
if (typeof elements === 'string') {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
return (
|
|
25
|
+
elements.length === 1 &&
|
|
26
|
+
ATTRIBUTE_TEXT in elements[0] &&
|
|
27
|
+
!hasBreakLines(elements[0][ATTRIBUTE_TEXT] as string)
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function getTagType(tagKey: string) {
|
|
32
|
+
switch (tagKey) {
|
|
33
|
+
case ATTRIBUTE_TEXT:
|
|
34
|
+
case ATTRIBUTE_CDATA:
|
|
35
|
+
case ATTRIBUTE_COMMENT:
|
|
36
|
+
return tagKey;
|
|
37
|
+
default:
|
|
38
|
+
return tagKey.startsWith('?') ? DECLARATION_TAG : TAG;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function getTagProps(element: Element) {
|
|
43
|
+
const attributes = (element as ElementObject)[ATTRIBUTE_GROUP_KEY] as AttributesObject;
|
|
44
|
+
const elementWithoutAttributes = omit(element, ATTRIBUTE_GROUP_KEY) as Element;
|
|
45
|
+
const [[tagKey, subElements]] = Object.entries(elementWithoutAttributes);
|
|
46
|
+
const type = getTagType(tagKey);
|
|
47
|
+
return { attributes, tagKey, subElements, type };
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function hasAttributes(attributes: AttributesObject) {
|
|
51
|
+
if (!attributes) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return Object.keys(attributes).length > 0;
|
|
56
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { isNil } from 'lodash-es';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { useXMLViewerContext } from '../context/xml-viewer-context';
|
|
4
|
+
|
|
5
|
+
export function useCollapsible(level: number) {
|
|
6
|
+
const { collapsible, initialCollapsedDepth } = useXMLViewerContext();
|
|
7
|
+
const [collapsed, setCollapsed] = useState(() =>
|
|
8
|
+
isNil(initialCollapsedDepth) || !collapsible ? false : level >= initialCollapsedDepth,
|
|
9
|
+
);
|
|
10
|
+
const toggleCollapsed = () => setCollapsed((currentCollapsed) => !currentCollapsed);
|
|
11
|
+
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
setCollapsed(
|
|
14
|
+
isNil(initialCollapsedDepth) || !collapsible ? false : level >= initialCollapsedDepth,
|
|
15
|
+
);
|
|
16
|
+
}, [initialCollapsedDepth, level, collapsible]);
|
|
17
|
+
|
|
18
|
+
return {
|
|
19
|
+
collapsed,
|
|
20
|
+
buttonProps: !collapsible
|
|
21
|
+
? {}
|
|
22
|
+
: {
|
|
23
|
+
onClick: toggleCollapsed,
|
|
24
|
+
role: 'button',
|
|
25
|
+
style: { cursor: 'pointer' },
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { XMLParser, XMLValidator } from 'fast-xml-parser';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { ATTRIBUTE_CDATA, ATTRIBUTE_COMMENT } from '../constants';
|
|
4
|
+
|
|
5
|
+
const parser = new XMLParser({
|
|
6
|
+
preserveOrder: true,
|
|
7
|
+
ignoreAttributes: false,
|
|
8
|
+
attributeNamePrefix: '',
|
|
9
|
+
allowBooleanAttributes: true,
|
|
10
|
+
commentPropName: ATTRIBUTE_COMMENT,
|
|
11
|
+
cdataPropName: ATTRIBUTE_CDATA,
|
|
12
|
+
parseTagValue: false,
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export default function useXMLViewer(xml: string) {
|
|
16
|
+
return useMemo(() => {
|
|
17
|
+
try {
|
|
18
|
+
if (!XMLValidator.validate(xml)) {
|
|
19
|
+
throw new Error('Invalid XML!');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const json = parser.parse(xml);
|
|
23
|
+
|
|
24
|
+
if (typeof xml === 'string' && xml.trim().length > 0 && json.length === 0) {
|
|
25
|
+
throw new Error('Invalid XML!');
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return { json, valid: true };
|
|
29
|
+
} catch (e) {
|
|
30
|
+
const error = e as Error;
|
|
31
|
+
return { json: null, valid: false, errorMessage: `Fail to parse: ${error.message}` };
|
|
32
|
+
}
|
|
33
|
+
}, [xml]);
|
|
34
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Theme } from '../components/types';
|
|
2
|
+
import { ATTRIBUTE_TEXT } from '../constants';
|
|
3
|
+
|
|
4
|
+
export interface ElementText {
|
|
5
|
+
[ATTRIBUTE_TEXT]: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export type AttributeValue = string | number | boolean;
|
|
9
|
+
|
|
10
|
+
export type AttributesObject = Record<string, AttributeValue>;
|
|
11
|
+
|
|
12
|
+
export type ElementObject = Record<string, AttributesObject | Element[]>;
|
|
13
|
+
|
|
14
|
+
export type Element = ElementObject | ElementText;
|
|
15
|
+
|
|
16
|
+
export interface IXmlViewerContext {
|
|
17
|
+
collapsible: boolean;
|
|
18
|
+
indentSize: number;
|
|
19
|
+
theme: Theme;
|
|
20
|
+
initialCollapsedDepth?: number;
|
|
21
|
+
}
|
package/README.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# Composable Prompts hooks for React
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { VertesiaClient, ZenoClient } from "@vertesia/client";
|
|
2
|
-
import type { AccountRef, AuthTokenPayload, ProjectRef } from "@vertesia/common";
|
|
3
|
-
export declare const HOST_CONTEXT_VAR = "__vetesia_host_context__";
|
|
4
|
-
export interface UserSession {
|
|
5
|
-
isLoading: boolean;
|
|
6
|
-
client: VertesiaClient;
|
|
7
|
-
authError?: Error;
|
|
8
|
-
authToken?: AuthTokenPayload;
|
|
9
|
-
lastSelectedAccount?: string | null;
|
|
10
|
-
lastSelectedProject?: string | null;
|
|
11
|
-
onboardingComplete?: boolean;
|
|
12
|
-
store: ZenoClient;
|
|
13
|
-
user?: AuthTokenPayload;
|
|
14
|
-
account?: AccountRef;
|
|
15
|
-
accounts?: AccountRef[];
|
|
16
|
-
project?: ProjectRef;
|
|
17
|
-
rawAuthToken: Promise<string>;
|
|
18
|
-
}
|
|
19
|
-
export interface NavigateOptions {
|
|
20
|
-
replace?: boolean;
|
|
21
|
-
state?: any;
|
|
22
|
-
/**
|
|
23
|
-
* if defined prepend the basePath to the `to` argument
|
|
24
|
-
*/
|
|
25
|
-
basePath?: string;
|
|
26
|
-
}
|
|
27
|
-
export interface RouterContext {
|
|
28
|
-
location: Location;
|
|
29
|
-
params: Record<string, string>;
|
|
30
|
-
state: any;
|
|
31
|
-
/**
|
|
32
|
-
* The path that matched the route. For widlcard `/*` paths this doens;t include the wildcard part.
|
|
33
|
-
* You can get the wildcard path from `remainingPath`.
|
|
34
|
-
*/
|
|
35
|
-
matchedRoutePath: string;
|
|
36
|
-
remainingPath?: string;
|
|
37
|
-
navigate: (path: string, options?: NavigateOptions) => void;
|
|
38
|
-
}
|
|
39
|
-
type LazyImportFn = () => Promise<any>;
|
|
40
|
-
interface ComponentRoute {
|
|
41
|
-
path: string;
|
|
42
|
-
Component: React.ComponentType<any>;
|
|
43
|
-
}
|
|
44
|
-
interface LazyComponentRoute {
|
|
45
|
-
path: string;
|
|
46
|
-
LazyComponent: LazyImportFn;
|
|
47
|
-
}
|
|
48
|
-
type Route = ComponentRoute | LazyComponentRoute;
|
|
49
|
-
export interface MultiPagePluginProps {
|
|
50
|
-
title: string;
|
|
51
|
-
routes: Route[];
|
|
52
|
-
/**
|
|
53
|
-
* The path to use for the root resource. Defaults to '/'. Cannot contains path vairables or wildcards
|
|
54
|
-
*/
|
|
55
|
-
index?: string;
|
|
56
|
-
children?: React.ReactNode;
|
|
57
|
-
fixLinks?: boolean;
|
|
58
|
-
}
|
|
59
|
-
export interface HostContext {
|
|
60
|
-
useUserSession: () => UserSession;
|
|
61
|
-
useRouterContext: () => RouterContext;
|
|
62
|
-
useNavigate: () => (path: string, options?: NavigateOptions) => void;
|
|
63
|
-
useLocation: () => Location;
|
|
64
|
-
MultiPagePlugin: React.ComponentType<MultiPagePluginProps>;
|
|
65
|
-
}
|
|
66
|
-
export {};
|
|
67
|
-
//# sourceMappingURL=HostContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HostContext.d.ts","sourceRoot":"","sources":["../../src/context/HostContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEjF,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAK3D,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CAChC;AACD,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IAGnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,GAAG,CAAC;IACX;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;CAC/D;AACD,KAAK,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,cAAc;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CACvC;AACD,UAAU,kBAAkB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,YAAY,CAAC;CAC/B;AACD,KAAK,KAAK,GAAG,cAAc,GAAG,kBAAkB,CAAC;AACjD,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,WAAW;IACxB,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACrE,WAAW,EAAE,MAAM,QAAQ,CAAC;IAC5B,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;CAC9D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HostContext.js","sourceRoot":"","sources":["../../src/context/HostContext.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC"}
|