@schemavaults/ui 0.11.128
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 +58 -0
- package/dist/components/error/ErrorPage/ErrorPage.d.ts +9 -0
- package/dist/components/error/ErrorPage/ErrorPage.js +25 -0
- package/dist/components/error/ErrorPage/ErrorPage.js.map +1 -0
- package/dist/components/error/ErrorPage/index.d.ts +3 -0
- package/dist/components/error/ErrorPage/index.js +3 -0
- package/dist/components/error/ErrorPage/index.js.map +1 -0
- package/dist/components/error/index.d.ts +2 -0
- package/dist/components/error/index.js +2 -0
- package/dist/components/error/index.js.map +1 -0
- package/dist/components/hoc/any-position-context-menu-hoc.d.ts +24 -0
- package/dist/components/hoc/any-position-context-menu-hoc.js +118 -0
- package/dist/components/hoc/any-position-context-menu-hoc.js.map +1 -0
- package/dist/components/hoc/index.d.ts +2 -0
- package/dist/components/hoc/index.js +2 -0
- package/dist/components/hoc/index.js.map +1 -0
- package/dist/components/hooks/index.d.ts +4 -0
- package/dist/components/hooks/index.js +3 -0
- package/dist/components/hooks/index.js.map +1 -0
- package/dist/components/hooks/use-debug.d.ts +2 -0
- package/dist/components/hooks/use-debug.js +23 -0
- package/dist/components/hooks/use-debug.js.map +1 -0
- package/dist/components/hooks/use-mobile.d.ts +2 -0
- package/dist/components/hooks/use-mobile.js +18 -0
- package/dist/components/hooks/use-mobile.js.map +1 -0
- package/dist/components/hooks/use-toast.d.ts +44 -0
- package/dist/components/hooks/use-toast.js +129 -0
- package/dist/components/hooks/use-toast.js.map +1 -0
- package/dist/components/layout/dashboard-layout/DashboardLayoutProps.d.ts +17 -0
- package/dist/components/layout/dashboard-layout/DashboardLayoutProps.js +2 -0
- package/dist/components/layout/dashboard-layout/DashboardLayoutProps.js.map +1 -0
- package/dist/components/layout/dashboard-layout/customizable-dashboard-component-type.d.ts +11 -0
- package/dist/components/layout/dashboard-layout/customizable-dashboard-component-type.js +2 -0
- package/dist/components/layout/dashboard-layout/customizable-dashboard-component-type.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-layout-main-content-container.d.ts +5 -0
- package/dist/components/layout/dashboard-layout/dashboard-layout-main-content-container.js +15 -0
- package/dist/components/layout/dashboard-layout/dashboard-layout-main-content-container.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-layout.d.ts +11 -0
- package/dist/components/layout/dashboard-layout/dashboard-layout.js +30 -0
- package/dist/components/layout/dashboard-layout/dashboard-layout.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-layout-sidebar-trigger.d.ts +3 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-layout-sidebar-trigger.js +18 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-layout-sidebar-trigger.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-admin-only-items-context.d.ts +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-admin-only-items-context.js +5 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-admin-only-items-context.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-content.d.ts +7 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-content.js +25 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-content.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-context-provider.d.ts +11 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-context-provider.js +10 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-context-provider.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-footer.d.ts +9 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-footer.js +10 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-footer.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-header.d.ts +10 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-header.js +39 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-header.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-definition.d.ts +11 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-definition.js +2 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-definition.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-group-renderer.d.ts +8 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-group-renderer.js +57 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-group-renderer.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-group.d.ts +7 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-group.js +2 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-group.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-renderer.d.ts +8 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-renderer.js +64 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-renderer.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-items-and-groups-context.d.ts +4 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-items-and-groups-context.js +4 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-items-and-groups-context.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-layout.d.ts +13 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-layout.js +30 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-layout.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-open-state-provider.d.ts +7 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-open-state-provider.js +31 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-open-state-provider.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-open-state.d.ts +7 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-open-state.js +8 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-open-state.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-sizing.d.ts +37 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-sizing.js +21 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-sizing.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar.d.ts +4 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar.js +27 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/index.d.ts +12 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/index.js +8 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/index.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useCloseDashboardSidebarOnRouteChange.d.ts +2 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useCloseDashboardSidebarOnRouteChange.js +21 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useCloseDashboardSidebarOnRouteChange.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useDashboardSidebarItemsAndGroups.d.ts +3 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useDashboardSidebarItemsAndGroups.js +11 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useDashboardSidebarItemsAndGroups.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useDashboardSidebarOpenState.d.ts +3 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useDashboardSidebarOpenState.js +12 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useDashboardSidebarOpenState.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useDashboardSidebarOpenStateDispatch.d.ts +3 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useDashboardSidebarOpenStateDispatch.js +9 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useDashboardSidebarOpenStateDispatch.js.map +1 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useDashboardSidebarSizing.d.ts +3 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useDashboardSidebarSizing.js +8 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/useDashboardSidebarSizing.js.map +1 -0
- package/dist/components/layout/dashboard-layout/index.d.ts +6 -0
- package/dist/components/layout/dashboard-layout/index.js +4 -0
- package/dist/components/layout/dashboard-layout/index.js.map +1 -0
- package/dist/components/layout/dashboard-layout/toggle-dashboard-layout-collapsed-transition-time.d.ts +3 -0
- package/dist/components/layout/dashboard-layout/toggle-dashboard-layout-collapsed-transition-time.js +4 -0
- package/dist/components/layout/dashboard-layout/toggle-dashboard-layout-collapsed-transition-time.js.map +1 -0
- package/dist/components/layout/index.d.ts +6 -0
- package/dist/components/layout/index.js +4 -0
- package/dist/components/layout/index.js.map +1 -0
- package/dist/components/layout/page-column-container/index.d.ts +3 -0
- package/dist/components/layout/page-column-container/index.js +3 -0
- package/dist/components/layout/page-column-container/index.js.map +1 -0
- package/dist/components/layout/page-column-container/page-column-container.d.ts +12 -0
- package/dist/components/layout/page-column-container/page-column-container.js +14 -0
- package/dist/components/layout/page-column-container/page-column-container.js.map +1 -0
- package/dist/components/layout/themed-page-container/index.d.ts +3 -0
- package/dist/components/layout/themed-page-container/index.js +3 -0
- package/dist/components/layout/themed-page-container/index.js.map +1 -0
- package/dist/components/layout/themed-page-container/themed-page-container.d.ts +18 -0
- package/dist/components/layout/themed-page-container/themed-page-container.js +21 -0
- package/dist/components/layout/themed-page-container/themed-page-container.js.map +1 -0
- package/dist/components/navigation/back-button.d.ts +6 -0
- package/dist/components/navigation/back-button.js +8 -0
- package/dist/components/navigation/back-button.js.map +1 -0
- package/dist/components/navigation/index.d.ts +2 -0
- package/dist/components/navigation/index.js +2 -0
- package/dist/components/navigation/index.js.map +1 -0
- package/dist/components/ui/alert/alert.d.ts +29 -0
- package/dist/components/ui/alert/alert.js +35 -0
- package/dist/components/ui/alert/alert.js.map +1 -0
- package/dist/components/ui/alert/index.d.ts +2 -0
- package/dist/components/ui/alert/index.js +2 -0
- package/dist/components/ui/alert/index.js.map +1 -0
- package/dist/components/ui/background-blur/background-blur.d.ts +10 -0
- package/dist/components/ui/background-blur/background-blur.js +45 -0
- package/dist/components/ui/background-blur/background-blur.js.map +1 -0
- package/dist/components/ui/background-blur/index.d.ts +2 -0
- package/dist/components/ui/background-blur/index.js +2 -0
- package/dist/components/ui/background-blur/index.js.map +1 -0
- package/dist/components/ui/badge/badge-variants.d.ts +2 -0
- package/dist/components/ui/badge/badge-variants.js +7 -0
- package/dist/components/ui/badge/badge-variants.js.map +1 -0
- package/dist/components/ui/badge/badge.d.ts +10 -0
- package/dist/components/ui/badge/badge.js +24 -0
- package/dist/components/ui/badge/badge.js.map +1 -0
- package/dist/components/ui/badge/index.d.ts +2 -0
- package/dist/components/ui/badge/index.js +2 -0
- package/dist/components/ui/badge/index.js.map +1 -0
- package/dist/components/ui/button/button.d.ts +15 -0
- package/dist/components/ui/button/button.js +41 -0
- package/dist/components/ui/button/button.js.map +1 -0
- package/dist/components/ui/button/index.d.ts +3 -0
- package/dist/components/ui/button/index.js +3 -0
- package/dist/components/ui/button/index.js.map +1 -0
- package/dist/components/ui/card/card.d.ts +26 -0
- package/dist/components/ui/card/card.js +17 -0
- package/dist/components/ui/card/card.js.map +1 -0
- package/dist/components/ui/card/index.d.ts +2 -0
- package/dist/components/ui/card/index.js +2 -0
- package/dist/components/ui/card/index.js.map +1 -0
- package/dist/components/ui/checkbox/checkbox.d.ts +9 -0
- package/dist/components/ui/checkbox/checkbox.js +10 -0
- package/dist/components/ui/checkbox/checkbox.js.map +1 -0
- package/dist/components/ui/checkbox/index.d.ts +3 -0
- package/dist/components/ui/checkbox/index.js +3 -0
- package/dist/components/ui/checkbox/index.js.map +1 -0
- package/dist/components/ui/command/command.d.ts +39 -0
- package/dist/components/ui/command/command.js +29 -0
- package/dist/components/ui/command/command.js.map +1 -0
- package/dist/components/ui/command/index.d.ts +2 -0
- package/dist/components/ui/command/index.js +2 -0
- package/dist/components/ui/command/index.js.map +1 -0
- package/dist/components/ui/context-menu/context-menu.d.ts +25 -0
- package/dist/components/ui/context-menu/context-menu.js +52 -0
- package/dist/components/ui/context-menu/context-menu.js.map +1 -0
- package/dist/components/ui/context-menu/index.d.ts +2 -0
- package/dist/components/ui/context-menu/index.js +2 -0
- package/dist/components/ui/context-menu/index.js.map +1 -0
- package/dist/components/ui/datatable/datatable.d.ts +10 -0
- package/dist/components/ui/datatable/datatable.js +48 -0
- package/dist/components/ui/datatable/datatable.js.map +1 -0
- package/dist/components/ui/datatable/index.d.ts +2 -0
- package/dist/components/ui/datatable/index.js +2 -0
- package/dist/components/ui/datatable/index.js.map +1 -0
- package/dist/components/ui/dialog/dialog.d.ts +31 -0
- package/dist/components/ui/dialog/dialog.js +23 -0
- package/dist/components/ui/dialog/dialog.js.map +1 -0
- package/dist/components/ui/dialog/index.d.ts +2 -0
- package/dist/components/ui/dialog/index.js +2 -0
- package/dist/components/ui/dialog/index.js.map +1 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +51 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.js +36 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -0
- package/dist/components/ui/dropdown-menu/index.d.ts +2 -0
- package/dist/components/ui/dropdown-menu/index.js +2 -0
- package/dist/components/ui/dropdown-menu/index.js.map +1 -0
- package/dist/components/ui/file-input/FileInput.d.ts +17 -0
- package/dist/components/ui/file-input/FileInput.js +101 -0
- package/dist/components/ui/file-input/FileInput.js.map +1 -0
- package/dist/components/ui/file-input/fileToBuffer.d.ts +3 -0
- package/dist/components/ui/file-input/fileToBuffer.js +62 -0
- package/dist/components/ui/file-input/fileToBuffer.js.map +1 -0
- package/dist/components/ui/file-input/index.d.ts +2 -0
- package/dist/components/ui/file-input/index.js +2 -0
- package/dist/components/ui/file-input/index.js.map +1 -0
- package/dist/components/ui/file-input/serializeFile.d.ts +3 -0
- package/dist/components/ui/file-input/serializeFile.js +26 -0
- package/dist/components/ui/file-input/serializeFile.js.map +1 -0
- package/dist/components/ui/file-input/useDoesFilenameHaveValidFileExtension.d.ts +3 -0
- package/dist/components/ui/file-input/useDoesFilenameHaveValidFileExtension.js +27 -0
- package/dist/components/ui/file-input/useDoesFilenameHaveValidFileExtension.js.map +1 -0
- package/dist/components/ui/form.d.ts +41 -0
- package/dist/components/ui/form.js +65 -0
- package/dist/components/ui/form.js.map +1 -0
- package/dist/components/ui/fullscreen-image/fullscreen-image.d.ts +47 -0
- package/dist/components/ui/fullscreen-image/fullscreen-image.js +77 -0
- package/dist/components/ui/fullscreen-image/fullscreen-image.js.map +1 -0
- package/dist/components/ui/fullscreen-image/index.d.ts +3 -0
- package/dist/components/ui/fullscreen-image/index.js +3 -0
- package/dist/components/ui/fullscreen-image/index.js.map +1 -0
- package/dist/components/ui/hover-card/hover-card.d.ts +9 -0
- package/dist/components/ui/hover-card/hover-card.js +10 -0
- package/dist/components/ui/hover-card/hover-card.js.map +1 -0
- package/dist/components/ui/hover-card/index.d.ts +2 -0
- package/dist/components/ui/hover-card/index.js +2 -0
- package/dist/components/ui/hover-card/index.js.map +1 -0
- package/dist/components/ui/icon/DefaultIconSize.d.ts +2 -0
- package/dist/components/ui/icon/DefaultIconSize.js +3 -0
- package/dist/components/ui/icon/DefaultIconSize.js.map +1 -0
- package/dist/components/ui/icon/Icon.d.ts +4 -0
- package/dist/components/ui/icon/Icon.js +5 -0
- package/dist/components/ui/icon/Icon.js.map +1 -0
- package/dist/components/ui/icon/IconFacade.d.ts +4 -0
- package/dist/components/ui/icon/IconFacade.js +63 -0
- package/dist/components/ui/icon/IconFacade.js.map +1 -0
- package/dist/components/ui/icon/IconFromSvgDataUrl.d.ts +7 -0
- package/dist/components/ui/icon/IconFromSvgDataUrl.js +31 -0
- package/dist/components/ui/icon/IconFromSvgDataUrl.js.map +1 -0
- package/dist/components/ui/icon/IconFromSvgFilepath.d.ts +7 -0
- package/dist/components/ui/icon/IconFromSvgFilepath.js +43 -0
- package/dist/components/ui/icon/IconFromSvgFilepath.js.map +1 -0
- package/dist/components/ui/icon/IconFromUtf8XmlSvg.d.ts +6 -0
- package/dist/components/ui/icon/IconFromUtf8XmlSvg.js +18 -0
- package/dist/components/ui/icon/IconFromUtf8XmlSvg.js.map +1 -0
- package/dist/components/ui/icon/IconProps.d.ts +7 -0
- package/dist/components/ui/icon/IconProps.js +3 -0
- package/dist/components/ui/icon/IconProps.js.map +1 -0
- package/dist/components/ui/icon/IconSkeleton.d.ts +4 -0
- package/dist/components/ui/icon/IconSkeleton.js +8 -0
- package/dist/components/ui/icon/IconSkeleton.js.map +1 -0
- package/dist/components/ui/icon/LazySvgIcon.d.ts +7 -0
- package/dist/components/ui/icon/LazySvgIcon.js +10 -0
- package/dist/components/ui/icon/LazySvgIcon.js.map +1 -0
- package/dist/components/ui/icon/LoadedSvgIcon.d.ts +8 -0
- package/dist/components/ui/icon/LoadedSvgIcon.js +8 -0
- package/dist/components/ui/icon/LoadedSvgIcon.js.map +1 -0
- package/dist/components/ui/icon/RenderSvg.d.ts +7 -0
- package/dist/components/ui/icon/RenderSvg.js +24 -0
- package/dist/components/ui/icon/RenderSvg.js.map +1 -0
- package/dist/components/ui/icon/SvgDataUrl.d.ts +4 -0
- package/dist/components/ui/icon/SvgDataUrl.js +16 -0
- package/dist/components/ui/icon/SvgDataUrl.js.map +1 -0
- package/dist/components/ui/icon/index.d.ts +3 -0
- package/dist/components/ui/icon/index.js +3 -0
- package/dist/components/ui/icon/index.js.map +1 -0
- package/dist/components/ui/icon/parseSvgIcon.d.ts +8 -0
- package/dist/components/ui/icon/parseSvgIcon.js +27 -0
- package/dist/components/ui/icon/parseSvgIcon.js.map +1 -0
- package/dist/components/ui/icon/toReactSvgTransform.d.ts +2 -0
- package/dist/components/ui/icon/toReactSvgTransform.js +12 -0
- package/dist/components/ui/icon/toReactSvgTransform.js.map +1 -0
- package/dist/components/ui/index.d.ts +86 -0
- package/dist/components/ui/index.js +44 -0
- package/dist/components/ui/index.js.map +1 -0
- package/dist/components/ui/inline-menu.d.ts +21 -0
- package/dist/components/ui/inline-menu.js +28 -0
- package/dist/components/ui/inline-menu.js.map +1 -0
- package/dist/components/ui/input/index.d.ts +3 -0
- package/dist/components/ui/input/index.js +3 -0
- package/dist/components/ui/input/index.js.map +1 -0
- package/dist/components/ui/input/input.d.ts +9 -0
- package/dist/components/ui/input/input.js +10 -0
- package/dist/components/ui/input/input.js.map +1 -0
- package/dist/components/ui/key-value-with-skeleton/index.d.ts +3 -0
- package/dist/components/ui/key-value-with-skeleton/index.js +3 -0
- package/dist/components/ui/key-value-with-skeleton/index.js.map +1 -0
- package/dist/components/ui/key-value-with-skeleton/key-value-with-skeleton.d.ts +7 -0
- package/dist/components/ui/key-value-with-skeleton/key-value-with-skeleton.js +55 -0
- package/dist/components/ui/key-value-with-skeleton/key-value-with-skeleton.js.map +1 -0
- package/dist/components/ui/label/index.d.ts +3 -0
- package/dist/components/ui/label/index.js +3 -0
- package/dist/components/ui/label/index.js.map +1 -0
- package/dist/components/ui/label/label.d.ts +9 -0
- package/dist/components/ui/label/label.js +11 -0
- package/dist/components/ui/label/label.js.map +1 -0
- package/dist/components/ui/loading-page/index.d.ts +3 -0
- package/dist/components/ui/loading-page/index.js +3 -0
- package/dist/components/ui/loading-page/index.js.map +1 -0
- package/dist/components/ui/loading-page/loading-page.d.ts +5 -0
- package/dist/components/ui/loading-page/loading-page.js +7 -0
- package/dist/components/ui/loading-page/loading-page.js.map +1 -0
- package/dist/components/ui/navigation-menu/index.d.ts +2 -0
- package/dist/components/ui/navigation-menu/index.js +2 -0
- package/dist/components/ui/navigation-menu/index.js.map +1 -0
- package/dist/components/ui/navigation-menu/navigation-menu.d.ts +14 -0
- package/dist/components/ui/navigation-menu/navigation-menu.js +33 -0
- package/dist/components/ui/navigation-menu/navigation-menu.js.map +1 -0
- package/dist/components/ui/popover/index.d.ts +2 -0
- package/dist/components/ui/popover/index.js +2 -0
- package/dist/components/ui/popover/index.js.map +1 -0
- package/dist/components/ui/popover/popover.d.ts +9 -0
- package/dist/components/ui/popover/popover.js +10 -0
- package/dist/components/ui/popover/popover.js.map +1 -0
- package/dist/components/ui/radio-group/index.d.ts +2 -0
- package/dist/components/ui/radio-group/index.js +2 -0
- package/dist/components/ui/radio-group/index.js.map +1 -0
- package/dist/components/ui/radio-group/radio-group.d.ts +11 -0
- package/dist/components/ui/radio-group/radio-group.js +16 -0
- package/dist/components/ui/radio-group/radio-group.js.map +1 -0
- package/dist/components/ui/scroll-area/index.d.ts +1 -0
- package/dist/components/ui/scroll-area/index.js +2 -0
- package/dist/components/ui/scroll-area/index.js.map +1 -0
- package/dist/components/ui/scroll-area/scroll-area.d.ts +5 -0
- package/dist/components/ui/scroll-area/scroll-area.js +14 -0
- package/dist/components/ui/scroll-area/scroll-area.js.map +1 -0
- package/dist/components/ui/select/index.d.ts +2 -0
- package/dist/components/ui/select/index.js +2 -0
- package/dist/components/ui/select/index.js.map +1 -0
- package/dist/components/ui/select/select.d.ts +15 -0
- package/dist/components/ui/select/select.js +39 -0
- package/dist/components/ui/select/select.js.map +1 -0
- package/dist/components/ui/separator/index.d.ts +2 -0
- package/dist/components/ui/separator/index.js +2 -0
- package/dist/components/ui/separator/index.js.map +1 -0
- package/dist/components/ui/separator/separator.d.ts +9 -0
- package/dist/components/ui/separator/separator.js +11 -0
- package/dist/components/ui/separator/separator.js.map +1 -0
- package/dist/components/ui/sheet/index.d.ts +2 -0
- package/dist/components/ui/sheet/index.js +2 -0
- package/dist/components/ui/sheet/index.js.map +1 -0
- package/dist/components/ui/sheet/sheet.d.ts +13 -0
- package/dist/components/ui/sheet/sheet.js +41 -0
- package/dist/components/ui/sheet/sheet.js.map +1 -0
- package/dist/components/ui/skeleton/index.d.ts +3 -0
- package/dist/components/ui/skeleton/index.js +3 -0
- package/dist/components/ui/skeleton/index.js.map +1 -0
- package/dist/components/ui/skeleton/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton/skeleton.js +8 -0
- package/dist/components/ui/skeleton/skeleton.js.map +1 -0
- package/dist/components/ui/slider/index.d.ts +2 -0
- package/dist/components/ui/slider/index.js +2 -0
- package/dist/components/ui/slider/index.js.map +1 -0
- package/dist/components/ui/slider/slider.d.ts +11 -0
- package/dist/components/ui/slider/slider.js +11 -0
- package/dist/components/ui/slider/slider.js.map +1 -0
- package/dist/components/ui/split-pane/index.d.ts +3 -0
- package/dist/components/ui/split-pane/index.js +2 -0
- package/dist/components/ui/split-pane/index.js.map +1 -0
- package/dist/components/ui/split-pane/split-pane-acceptable-split-range.d.ts +3 -0
- package/dist/components/ui/split-pane/split-pane-acceptable-split-range.js +4 -0
- package/dist/components/ui/split-pane/split-pane-acceptable-split-range.js.map +1 -0
- package/dist/components/ui/split-pane/split-pane-directions.d.ts +3 -0
- package/dist/components/ui/split-pane/split-pane-directions.js +6 -0
- package/dist/components/ui/split-pane/split-pane-directions.js.map +1 -0
- package/dist/components/ui/split-pane/split-pane.d.ts +13 -0
- package/dist/components/ui/split-pane/split-pane.js +95 -0
- package/dist/components/ui/split-pane/split-pane.js.map +1 -0
- package/dist/components/ui/split-pane/useSplitPaneDirectionOrDefault.d.ts +3 -0
- package/dist/components/ui/split-pane/useSplitPaneDirectionOrDefault.js +25 -0
- package/dist/components/ui/split-pane/useSplitPaneDirectionOrDefault.js.map +1 -0
- package/dist/components/ui/status-blinker/index.d.ts +2 -0
- package/dist/components/ui/status-blinker/index.js +2 -0
- package/dist/components/ui/status-blinker/index.js.map +1 -0
- package/dist/components/ui/status-blinker/status-blinker.d.ts +8 -0
- package/dist/components/ui/status-blinker/status-blinker.js +24 -0
- package/dist/components/ui/status-blinker/status-blinker.js.map +1 -0
- package/dist/components/ui/stepper/base-stepper-state-type.d.ts +1 -0
- package/dist/components/ui/stepper/base-stepper-state-type.js +2 -0
- package/dist/components/ui/stepper/base-stepper-state-type.js.map +1 -0
- package/dist/components/ui/stepper/index.d.ts +2 -0
- package/dist/components/ui/stepper/index.js +2 -0
- package/dist/components/ui/stepper/index.js.map +1 -0
- package/dist/components/ui/stepper/step_definition.d.ts +25 -0
- package/dist/components/ui/stepper/step_definition.js +2 -0
- package/dist/components/ui/stepper/step_definition.js.map +1 -0
- package/dist/components/ui/stepper/stepper-body.d.ts +2 -0
- package/dist/components/ui/stepper/stepper-body.js +28 -0
- package/dist/components/ui/stepper/stepper-body.js.map +1 -0
- package/dist/components/ui/stepper/stepper-context-type.d.ts +9 -0
- package/dist/components/ui/stepper/stepper-context-type.js +2 -0
- package/dist/components/ui/stepper/stepper-context-type.js.map +1 -0
- package/dist/components/ui/stepper/stepper-context.d.ts +2 -0
- package/dist/components/ui/stepper/stepper-context.js +3 -0
- package/dist/components/ui/stepper/stepper-context.js.map +1 -0
- package/dist/components/ui/stepper/stepper-footer.d.ts +10 -0
- package/dist/components/ui/stepper/stepper-footer.js +89 -0
- package/dist/components/ui/stepper/stepper-footer.js.map +1 -0
- package/dist/components/ui/stepper/stepper-provider.d.ts +11 -0
- package/dist/components/ui/stepper/stepper-provider.js +38 -0
- package/dist/components/ui/stepper/stepper-provider.js.map +1 -0
- package/dist/components/ui/stepper/stepper-types.d.ts +21 -0
- package/dist/components/ui/stepper/stepper-types.js +2 -0
- package/dist/components/ui/stepper/stepper-types.js.map +1 -0
- package/dist/components/ui/stepper/stepper.d.ts +5 -0
- package/dist/components/ui/stepper/stepper.js +28 -0
- package/dist/components/ui/stepper/stepper.js.map +1 -0
- package/dist/components/ui/stepper/steps-indicator.d.ts +5 -0
- package/dist/components/ui/stepper/steps-indicator.js +36 -0
- package/dist/components/ui/stepper/steps-indicator.js.map +1 -0
- package/dist/components/ui/stepper/useStepperContext.d.ts +4 -0
- package/dist/components/ui/stepper/useStepperContext.js +13 -0
- package/dist/components/ui/stepper/useStepperContext.js.map +1 -0
- package/dist/components/ui/table.d.ts +34 -0
- package/dist/components/ui/table.js +21 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs/Tabs.d.ts +23 -0
- package/dist/components/ui/tabs/Tabs.js +19 -0
- package/dist/components/ui/tabs/Tabs.js.map +1 -0
- package/dist/components/ui/tabs/index.d.ts +2 -0
- package/dist/components/ui/tabs/index.js +2 -0
- package/dist/components/ui/tabs/index.js.map +1 -0
- package/dist/components/ui/textarea/index.d.ts +3 -0
- package/dist/components/ui/textarea/index.js +3 -0
- package/dist/components/ui/textarea/index.js.map +1 -0
- package/dist/components/ui/textarea/textarea.d.ts +9 -0
- package/dist/components/ui/textarea/textarea.js +10 -0
- package/dist/components/ui/textarea/textarea.js.map +1 -0
- package/dist/components/ui/themed-page-background/index.d.ts +3 -0
- package/dist/components/ui/themed-page-background/index.js +3 -0
- package/dist/components/ui/themed-page-background/index.js.map +1 -0
- package/dist/components/ui/themed-page-background/themed-page-background.d.ts +16 -0
- package/dist/components/ui/themed-page-background/themed-page-background.js +23 -0
- package/dist/components/ui/themed-page-background/themed-page-background.js.map +1 -0
- package/dist/components/ui/toast/index.d.ts +2 -0
- package/dist/components/ui/toast/index.js +2 -0
- package/dist/components/ui/toast/index.js.map +1 -0
- package/dist/components/ui/toast/toast-variants.d.ts +2 -0
- package/dist/components/ui/toast/toast-variants.js +6 -0
- package/dist/components/ui/toast/toast-variants.js.map +1 -0
- package/dist/components/ui/toast/toast.d.ts +33 -0
- package/dist/components/ui/toast/toast.js +35 -0
- package/dist/components/ui/toast/toast.js.map +1 -0
- package/dist/components/ui/toaster/index.d.ts +3 -0
- package/dist/components/ui/toaster/index.js +3 -0
- package/dist/components/ui/toaster/index.js.map +1 -0
- package/dist/components/ui/toaster/toaster.d.ts +2 -0
- package/dist/components/ui/toaster/toaster.js +12 -0
- package/dist/components/ui/toaster/toaster.js.map +1 -0
- package/dist/components/ui/tooltip/index.d.ts +2 -0
- package/dist/components/ui/tooltip/index.js +2 -0
- package/dist/components/ui/tooltip/index.js.map +1 -0
- package/dist/components/ui/tooltip/tooltip.d.ts +14 -0
- package/dist/components/ui/tooltip/tooltip.js +15 -0
- package/dist/components/ui/tooltip/tooltip.js.map +1 -0
- package/dist/components/ui/typewriter-effect/cursor-blinker.d.ts +5 -0
- package/dist/components/ui/typewriter-effect/cursor-blinker.js +26 -0
- package/dist/components/ui/typewriter-effect/cursor-blinker.js.map +1 -0
- package/dist/components/ui/typewriter-effect/index.d.ts +2 -0
- package/dist/components/ui/typewriter-effect/index.js +2 -0
- package/dist/components/ui/typewriter-effect/index.js.map +1 -0
- package/dist/components/ui/typewriter-effect/typewriter-effect.d.ts +10 -0
- package/dist/components/ui/typewriter-effect/typewriter-effect.js +76 -0
- package/dist/components/ui/typewriter-effect/typewriter-effect.js.map +1 -0
- package/dist/components/ui/visually-hidden/index.d.ts +3 -0
- package/dist/components/ui/visually-hidden/index.js +3 -0
- package/dist/components/ui/visually-hidden/index.js.map +1 -0
- package/dist/components/ui/visually-hidden/visually-hidden.d.ts +2 -0
- package/dist/components/ui/visually-hidden/visually-hidden.js +3 -0
- package/dist/components/ui/visually-hidden/visually-hidden.js.map +1 -0
- package/dist/components/ui/wordmark/index.d.ts +3 -0
- package/dist/components/ui/wordmark/index.js +3 -0
- package/dist/components/ui/wordmark/index.js.map +1 -0
- package/dist/components/ui/wordmark/wordmark.d.ts +6 -0
- package/dist/components/ui/wordmark/wordmark.js +8 -0
- package/dist/components/ui/wordmark/wordmark.js.map +1 -0
- package/dist/framer-motion.d.ts +2 -0
- package/dist/framer-motion.js +3 -0
- package/dist/framer-motion.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/getTailwindThemeScreenBreakpoint.d.ts +2 -0
- package/dist/lib/getTailwindThemeScreenBreakpoint.js +5 -0
- package/dist/lib/getTailwindThemeScreenBreakpoint.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/providers/brightness-theme/brightness-theme.d.ts +11 -0
- package/dist/providers/brightness-theme/brightness-theme.js +15 -0
- package/dist/providers/brightness-theme/brightness-theme.js.map +1 -0
- package/dist/providers/brightness-theme/index.d.ts +2 -0
- package/dist/providers/brightness-theme/index.js +2 -0
- package/dist/providers/brightness-theme/index.js.map +1 -0
- package/dist/providers/index.d.ts +4 -0
- package/dist/providers/index.js +4 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/lazy_framer.d.ts +6 -0
- package/dist/providers/lazy_framer.js +8 -0
- package/dist/providers/lazy_framer.js.map +1 -0
- package/dist/types/Link.d.ts +9 -0
- package/dist/types/Link.js +2 -0
- package/dist/types/Link.js.map +1 -0
- package/package.json +128 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useEffect, useCallback } from "react";
|
|
4
|
+
import { m, AnimatePresence } from "../../../framer-motion";
|
|
5
|
+
import { X, ZoomIn } from "lucide-react";
|
|
6
|
+
import { cn } from "../../../lib/utils";
|
|
7
|
+
/**
|
|
8
|
+
* @name FullscreenImage
|
|
9
|
+
*
|
|
10
|
+
* @returns A React component that displays an enlargeable image. Click the normal/inline image to view it within a fullscreen modal.
|
|
11
|
+
*/
|
|
12
|
+
function FullscreenImage({ src, alt, fullscreenSrc, ImageComponent, imageProps, fullscreenImageProps, thumbnail, thumbnailClassName, fullscreenClassName, disableZoomCursor = false, loadingComponent, onOpen, onClose, className, ...props }) {
|
|
13
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
14
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
15
|
+
const openFullscreen = useCallback(() => {
|
|
16
|
+
setIsOpen(true);
|
|
17
|
+
setIsLoading(true);
|
|
18
|
+
onOpen?.();
|
|
19
|
+
}, [onOpen]);
|
|
20
|
+
const closeFullscreen = useCallback(() => {
|
|
21
|
+
setIsOpen(false);
|
|
22
|
+
setIsLoading(false);
|
|
23
|
+
onClose?.();
|
|
24
|
+
}, [onClose]);
|
|
25
|
+
// Handle escape key
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
const handleEscape = (e) => {
|
|
28
|
+
if (e.key === "Escape" && isOpen) {
|
|
29
|
+
closeFullscreen();
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
if (isOpen) {
|
|
33
|
+
document.addEventListener("keydown", handleEscape);
|
|
34
|
+
// Prevent body scroll when fullscreen is open
|
|
35
|
+
document.body.style.overflow = "hidden";
|
|
36
|
+
}
|
|
37
|
+
return () => {
|
|
38
|
+
document.removeEventListener("keydown", handleEscape);
|
|
39
|
+
document.body.style.overflow = "unset";
|
|
40
|
+
};
|
|
41
|
+
}, [isOpen, closeFullscreen]);
|
|
42
|
+
const handleImageLoad = () => {
|
|
43
|
+
setIsLoading(false);
|
|
44
|
+
};
|
|
45
|
+
let thumbnailContent;
|
|
46
|
+
if (!!thumbnail) {
|
|
47
|
+
thumbnailContent = thumbnail;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
if (!!ImageComponent) {
|
|
51
|
+
const customThumbnailProps = {
|
|
52
|
+
src,
|
|
53
|
+
alt,
|
|
54
|
+
...imageProps,
|
|
55
|
+
className: cn("w-full h-full object-cover", imageProps?.className),
|
|
56
|
+
};
|
|
57
|
+
thumbnailContent = _jsx(ImageComponent, { ...customThumbnailProps });
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
thumbnailContent = (_jsx("img", { src: src, alt: alt, ...props, className: cn("w-full h-full object-cover", className) }));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
let fullscreenImageClassName;
|
|
64
|
+
if (typeof fullscreenImageProps?.className === "string") {
|
|
65
|
+
fullscreenImageClassName = cn(fullscreenImageProps.className, fullscreenClassName);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
fullscreenImageClassName = cn("max-w-full max-h-full object-contain rounded-lg shadow-2xl", fullscreenClassName);
|
|
69
|
+
}
|
|
70
|
+
return (_jsxs(_Fragment, { children: [_jsxs(m.div, { className: cn("relative group overflow-hidden rounded-lg", !disableZoomCursor && "cursor-zoom-in", thumbnailClassName), onClick: openFullscreen, whileHover: { scale: 1.02 }, whileTap: { scale: 0.98 }, transition: { duration: 0.2 }, children: [thumbnailContent, !disableZoomCursor && (_jsx("div", { className: "absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-200 flex items-center justify-center", children: _jsx(ZoomIn, { className: "text-white opacity-0 group-hover:opacity-100 transition-opacity duration-200 w-8 h-8" }) }))] }), _jsx(AnimatePresence, { children: isOpen && (_jsxs(m.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.3 }, className: "fixed inset-0 z-50 flex items-center justify-center", onClick: closeFullscreen, children: [_jsx("div", { className: "absolute inset-0 bg-black/90" }), _jsx("button", { onClick: closeFullscreen, className: cn("absolute", "top-4 right-4", "z-[1000]", "p-2", "rounded-full", "bg-black/50 hover:bg-black/70", "text-white", "transition-colors duration-200", "focus:outline-none focus:ring-2 focus:ring-white/50"), "aria-label": "Close fullscreen image", children: _jsx(X, { className: "w-6 h-6" }) }), isLoading && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center z-50", children: loadingComponent || (_jsx("div", { className: "w-8 h-8 border-2 border-white/30 border-t-white rounded-full animate-spin" })) })), _jsx(m.div, { initial: { scale: 0.5, opacity: 0 }, animate: { scale: 1, opacity: 1 }, exit: { scale: 0.5, opacity: 0 }, transition: {
|
|
71
|
+
duration: 0.4,
|
|
72
|
+
ease: [0.32, 0.72, 0, 1], // Custom easing for smooth animation
|
|
73
|
+
}, className: cn("fullscreen-image-component-container", "relative", "max-w-[95vw] max-h-[95vh]", "flex", "items-center justify-center", props.fullscreenContainerClassName), onClick: (e) => e.stopPropagation(), children: ImageComponent ? (_jsx(ImageComponent, { src: fullscreenSrc || src, alt: alt, ...fullscreenImageProps, onLoad: handleImageLoad, className: fullscreenImageClassName })) : (_jsx("img", { src: fullscreenSrc || src, alt: alt, onLoad: handleImageLoad, className: fullscreenImageClassName })) })] })) })] }));
|
|
74
|
+
}
|
|
75
|
+
FullscreenImage.displayName = "FullscreenImage";
|
|
76
|
+
export { FullscreenImage };
|
|
77
|
+
//# sourceMappingURL=fullscreen-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fullscreen-image.js","sourceRoot":"","sources":["../../../../src/components/ui/fullscreen-image/fullscreen-image.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/fullscreen-image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ComponentPropsWithoutRef } from "react";
|
|
2
|
+
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
3
|
+
declare const HoverCard: import("react").FC<HoverCardPrimitive.HoverCardProps>;
|
|
4
|
+
declare const HoverCardTrigger: import("react").ForwardRefExoticComponent<HoverCardPrimitive.HoverCardTriggerProps & import("react").RefAttributes<HTMLAnchorElement>>;
|
|
5
|
+
declare const HoverCardContent: {
|
|
6
|
+
({ className, align, sideOffset, ...props }: ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
displayName: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
export { HoverCard, HoverCardTrigger, HoverCardContent };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
4
|
+
import { cn } from "../../../lib/utils";
|
|
5
|
+
const HoverCard = HoverCardPrimitive.Root;
|
|
6
|
+
const HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
7
|
+
const HoverCardContent = ({ className, align = "center", sideOffset = 4, ...props }) => (_jsx(HoverCardPrimitive.Content, { align: align, sideOffset: sideOffset, className: cn("z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className), ...props }));
|
|
8
|
+
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
9
|
+
export { HoverCard, HoverCardTrigger, HoverCardContent };
|
|
10
|
+
//# sourceMappingURL=hover-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hover-card.js","sourceRoot":"","sources":["../../../../src/components/ui/hover-card/hover-card.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,KAAK,kBAAkB,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC;AAE1C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAEpD,MAAM,gBAAgB,GAAG,CAAC,EACxB,SAAS,EACT,KAAK,GAAG,QAAQ,EAChB,UAAU,GAAG,CAAC,EACd,GAAG,KAAK,EACoD,EAAE,EAAE,CAAC,CACjE,KAAC,kBAAkB,CAAC,OAAO,IACzB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CACX,4aAA4a,EAC5a,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACF,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/hover-card/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultIconSize.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/DefaultIconSize.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAA4B,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/Icon.tsx"],"names":[],"mappings":"AAAA,WAAW;AAEX,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
import IconFromSvgFilepath from "./IconFromSvgFilepath";
|
|
5
|
+
import IconFromUtf8XmlSvg from "./IconFromUtf8XmlSvg";
|
|
6
|
+
import DEFAULT_ICON_SIZE from "./DefaultIconSize";
|
|
7
|
+
import RenderSvg from "./RenderSvg";
|
|
8
|
+
import IconFromSvgDataUrl from "./IconFromSvgDataUrl";
|
|
9
|
+
function determineIconDisplayMethod(src) {
|
|
10
|
+
if (typeof src === "string") {
|
|
11
|
+
if (src.endsWith(".svg")) {
|
|
12
|
+
return "filepath";
|
|
13
|
+
}
|
|
14
|
+
else if (src.startsWith("data:")) {
|
|
15
|
+
return "dataurl";
|
|
16
|
+
}
|
|
17
|
+
else if (src.includes("<svg")) {
|
|
18
|
+
return "utf8-xml";
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
console.warn("Unhandled string format to display SVG from!");
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
// src as string should be handled by this point
|
|
25
|
+
if (typeof src === "string") {
|
|
26
|
+
if (process.env.NODE_ENV === "development") {
|
|
27
|
+
console.warn("Invalid 'src' string format:", src);
|
|
28
|
+
}
|
|
29
|
+
throw new Error("Invalid 'src' property, unhandled string type to render SVG icon with!");
|
|
30
|
+
}
|
|
31
|
+
if (typeof src !== "string" && !!src) {
|
|
32
|
+
return "SvgSvgInstance";
|
|
33
|
+
}
|
|
34
|
+
throw new Error(`Failed to determine how to render (type: ${typeof src})`);
|
|
35
|
+
}
|
|
36
|
+
function IconFacade({ src, ...props }) {
|
|
37
|
+
const size = useMemo(() => {
|
|
38
|
+
return typeof props.size === "number" ? props.size : DEFAULT_ICON_SIZE;
|
|
39
|
+
}, [props.size]);
|
|
40
|
+
const displayMethod = useMemo(() => determineIconDisplayMethod(src), [src]);
|
|
41
|
+
switch (displayMethod) {
|
|
42
|
+
case "filepath":
|
|
43
|
+
return _jsx(IconFromSvgFilepath, { src: src, ...props, size: size });
|
|
44
|
+
case "utf8-xml":
|
|
45
|
+
return _jsx(IconFromUtf8XmlSvg, { src: src, ...props, size: size });
|
|
46
|
+
case "dataurl":
|
|
47
|
+
if (typeof src !== "string") {
|
|
48
|
+
throw new TypeError("Expected 'src' to be a string for dataurl render method!");
|
|
49
|
+
}
|
|
50
|
+
return _jsx(IconFromSvgDataUrl, { src: src, ...props, size: size });
|
|
51
|
+
case "SvgSvgInstance":
|
|
52
|
+
if (!(src instanceof SVGSVGElement)) {
|
|
53
|
+
throw new TypeError("Expected 'src' to be an instance of SVGSVGElement");
|
|
54
|
+
}
|
|
55
|
+
return _jsx(RenderSvg, { svg: src, ...props, size: size });
|
|
56
|
+
default:
|
|
57
|
+
throw new TypeError("Invalid 'src' for Icon component! Failed to determine how to render SVG icon!");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
IconFacade.displayName = "Icon";
|
|
61
|
+
export const Icon = IconFacade;
|
|
62
|
+
export default Icon;
|
|
63
|
+
//# sourceMappingURL=IconFacade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconFacade.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/IconFacade.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
import { extractBase64SvgData, isValidSvgDataUrlPrefix } from "./SvgDataUrl";
|
|
5
|
+
import { Buffer } from "buffer";
|
|
6
|
+
import IconFromUtf8XmlSvg from "./IconFromUtf8XmlSvg";
|
|
7
|
+
function base64ToUtf8(b64) {
|
|
8
|
+
const buffer = Buffer.from(b64, "base64");
|
|
9
|
+
return buffer.toString("utf-8");
|
|
10
|
+
}
|
|
11
|
+
function IconFromSvgDataUrl({ src, size, ...props }) {
|
|
12
|
+
const base64_svg_data = useMemo(() => {
|
|
13
|
+
if (typeof src !== "string") {
|
|
14
|
+
throw new TypeError("Expected 'src' to be a string for IconFromSvgDataUrl component!");
|
|
15
|
+
}
|
|
16
|
+
if (!isValidSvgDataUrlPrefix(src)) {
|
|
17
|
+
throw new TypeError("Invalid base64 data url for 'src'!");
|
|
18
|
+
}
|
|
19
|
+
return extractBase64SvgData(src);
|
|
20
|
+
}, [src]);
|
|
21
|
+
const utf8_svg_xml_data = useMemo(() => {
|
|
22
|
+
const asUtf8 = base64ToUtf8(base64_svg_data);
|
|
23
|
+
if (!asUtf8.includes("<svg")) {
|
|
24
|
+
throw new TypeError("Failed to parse valid <svg> element from base64 data!");
|
|
25
|
+
}
|
|
26
|
+
return asUtf8;
|
|
27
|
+
}, [base64_svg_data]);
|
|
28
|
+
return _jsx(IconFromUtf8XmlSvg, { src: utf8_svg_xml_data, ...props, size: size });
|
|
29
|
+
}
|
|
30
|
+
export default IconFromSvgDataUrl;
|
|
31
|
+
//# sourceMappingURL=IconFromSvgDataUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconFromSvgDataUrl.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/IconFromSvgDataUrl.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAqB,OAAO,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,kBAAkB,CAAC,EAC1B,GAAG,EACH,IAAI,EACJ,GAAG,KAAK,EACkC;IAC1C,MAAM,eAAe,GAAW,OAAO,CAAC,GAAW,EAAE;QACnD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,SAAS,CACjB,iEAAiE,CAClE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,iBAAiB,GAAW,OAAO,CAAC,GAAW,EAAE;QACrD,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CACjB,uDAAuD,CACxD,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,OAAO,KAAC,kBAAkB,IAAC,GAAG,EAAE,iBAAiB,KAAM,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI,CAAC;AAC/E,CAAC;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ReactElement } from "react";
|
|
2
|
+
import type { IconProps } from "./IconProps";
|
|
3
|
+
declare function IconFromSvgFilepath({ src, size, ...props }: IconProps & {
|
|
4
|
+
size: number;
|
|
5
|
+
preloaded?: SVGSVGElement;
|
|
6
|
+
}): ReactElement;
|
|
7
|
+
export default IconFromSvgFilepath;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo, Suspense } from "react";
|
|
4
|
+
import parseSvgIcon from "./parseSvgIcon";
|
|
5
|
+
import IconSkeleton from "./IconSkeleton";
|
|
6
|
+
import LazySvgIcon from "./LazySvgIcon";
|
|
7
|
+
import RenderSvg from "./RenderSvg";
|
|
8
|
+
async function loadSvgFromRemote(svg_url) {
|
|
9
|
+
if (typeof svg_url !== "string" || !svg_url.endsWith(".svg")) {
|
|
10
|
+
throw new Error("Invalid src path to SVG element!");
|
|
11
|
+
}
|
|
12
|
+
const response = await fetch(svg_url, { method: "GET" });
|
|
13
|
+
if (!response.ok) {
|
|
14
|
+
throw new Error(`Failed to fetch SVG at path '${svg_url}': ${response.status} ${response.statusText}`);
|
|
15
|
+
}
|
|
16
|
+
const svgText = await response.text();
|
|
17
|
+
return parseSvgIcon(svgText);
|
|
18
|
+
}
|
|
19
|
+
function IconFromSvgFilepath({ src, size, ...props }) {
|
|
20
|
+
const iconData = useMemo(() => {
|
|
21
|
+
return (async () => {
|
|
22
|
+
if (typeof src === "string") {
|
|
23
|
+
if (!src.endsWith(".svg")) {
|
|
24
|
+
throw new TypeError("Expected source path to end in .svg within IconFromSvgFilepath component");
|
|
25
|
+
}
|
|
26
|
+
const svg = await loadSvgFromRemote(src);
|
|
27
|
+
return svg;
|
|
28
|
+
}
|
|
29
|
+
else if (!src) {
|
|
30
|
+
throw new TypeError("Did not receive a 'src' property to render SVG with!");
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return src;
|
|
34
|
+
}
|
|
35
|
+
})();
|
|
36
|
+
}, [src]);
|
|
37
|
+
if (props.preloaded) {
|
|
38
|
+
return _jsx(RenderSvg, { svg: props.preloaded, ...props });
|
|
39
|
+
}
|
|
40
|
+
return (_jsx(Suspense, { fallback: _jsx(IconSkeleton, { size: size }), children: _jsx(LazySvgIcon, { svgPromise: iconData, size: size, ...props }) }));
|
|
41
|
+
}
|
|
42
|
+
export default IconFromSvgFilepath;
|
|
43
|
+
//# sourceMappingURL=IconFromSvgFilepath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconFromSvgFilepath.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/IconFromSvgFilepath.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAqB,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,KAAK,UAAU,iBAAiB,CAAC,OAAe;IAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAEzD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,gCAAgC,OAAO,MAAM,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,EAC3B,GAAG,EACH,IAAI,EACJ,GAAG,KAAK,EACgD;IACxD,MAAM,QAAQ,GAA2B,OAAO,CAAC,GAAG,EAAE;QACpD,OAAO,CAAC,KAAK,IAA4B,EAAE;YACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,SAAS,CACjB,0EAA0E,CAC3E,CAAC;gBACJ,CAAC;gBACD,MAAM,GAAG,GAAkB,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBACxD,OAAO,GAAG,CAAC;YACb,CAAC;iBAAM,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChB,MAAM,IAAI,SAAS,CACjB,sDAAsD,CACvD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,GAA2B,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO,KAAC,SAAS,IAAC,GAAG,EAAE,KAAK,CAAC,SAAS,KAAM,KAAK,GAAI,CAAC;IACxD,CAAC;IAED,OAAO,CACL,KAAC,QAAQ,IAAC,QAAQ,EAAE,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,GAAI,YAC9C,KAAC,WAAW,IAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,KAAM,KAAK,GAAI,GACnD,CACZ,CAAC;AACJ,CAAC;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
import parseSvgIcon from "./parseSvgIcon";
|
|
5
|
+
import RenderSvg from "./RenderSvg";
|
|
6
|
+
function IconFromUtf8XmlSvg({ src, size, ...props }) {
|
|
7
|
+
const iconData = useMemo(() => {
|
|
8
|
+
return (() => {
|
|
9
|
+
if (typeof src !== "string") {
|
|
10
|
+
throw new Error("Invalid UTF-8 to parse into SVG element!");
|
|
11
|
+
}
|
|
12
|
+
return parseSvgIcon(src);
|
|
13
|
+
})();
|
|
14
|
+
}, [src]);
|
|
15
|
+
return _jsx(RenderSvg, { svg: iconData, ...props, size: size });
|
|
16
|
+
}
|
|
17
|
+
export default IconFromUtf8XmlSvg;
|
|
18
|
+
//# sourceMappingURL=IconFromUtf8XmlSvg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconFromUtf8XmlSvg.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/IconFromUtf8XmlSvg.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAqB,MAAM,OAAO,CAAC;AACnD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,SAAS,kBAAkB,CAAC,EAC1B,GAAG,EACH,IAAI,EACJ,GAAG,KAAK,EACqB;IAC7B,MAAM,QAAQ,GAAkB,OAAO,CAAC,GAAG,EAAE;QAC3C,OAAO,CAAC,GAAkB,EAAE;YAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,KAAC,SAAS,IAAC,GAAG,EAAE,QAAQ,KAAM,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI,CAAC;AAC7D,CAAC;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconProps.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/IconProps.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import Skeleton from "../../ui/skeleton";
|
|
4
|
+
function IconSkeleton({ size }) {
|
|
5
|
+
return _jsx(Skeleton, { style: { width: size, height: size } });
|
|
6
|
+
}
|
|
7
|
+
export default IconSkeleton;
|
|
8
|
+
//# sourceMappingURL=IconSkeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconSkeleton.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/IconSkeleton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAEhD,SAAS,YAAY,CAAC,EAAE,IAAI,EAA2B;IACrD,OAAO,KAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAI,CAAC;AAC5D,CAAC;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { use } from "react";
|
|
4
|
+
import RenderSvg from "./RenderSvg";
|
|
5
|
+
export function LazySvgIcon(props) {
|
|
6
|
+
const svg = use(props.svgPromise);
|
|
7
|
+
return _jsx(RenderSvg, { svg: svg, ...props });
|
|
8
|
+
}
|
|
9
|
+
export default LazySvgIcon;
|
|
10
|
+
//# sourceMappingURL=LazySvgIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LazySvgIcon.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/LazySvgIcon.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,GAAG,EAAqB,MAAM,OAAO,CAAC;AAE/C,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,MAAM,UAAU,WAAW,CACzB,KAGC;IAED,MAAM,GAAG,GAAkB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,KAAC,SAAS,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,GAAI,CAAC;AAC5C,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
import type { IconProps } from "./IconProps";
|
|
3
|
+
export declare function LoadedSvgIcon(props: Omit<IconProps, "src"> & {
|
|
4
|
+
innerHTML: string;
|
|
5
|
+
viewBox?: string;
|
|
6
|
+
svgAttributes?: Record<string, string>;
|
|
7
|
+
}): ReactElement;
|
|
8
|
+
export default LoadedSvgIcon;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
export function LoadedSvgIcon(props) {
|
|
4
|
+
const { innerHTML, viewBox, svgAttributes, size, ...restProps } = props;
|
|
5
|
+
return (_jsx("svg", { ...svgAttributes, ...restProps, viewBox: viewBox, width: size, height: size, dangerouslySetInnerHTML: { __html: innerHTML } }));
|
|
6
|
+
}
|
|
7
|
+
export default LoadedSvgIcon;
|
|
8
|
+
//# sourceMappingURL=LoadedSvgIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadedSvgIcon.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/LoadedSvgIcon.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,MAAM,UAAU,aAAa,CAC3B,KAIC;IAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IACxE,OAAO,CACL,iBACM,aAAa,KACb,SAAS,EACb,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,uBAAuB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAC9C,CACH,CAAC;AACJ,CAAC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
import type { IconProps } from "./IconProps";
|
|
3
|
+
export interface IRenderSvgProps extends Omit<IconProps, "src"> {
|
|
4
|
+
svg: SVGSVGElement;
|
|
5
|
+
}
|
|
6
|
+
declare function RenderSvg({ svg, ...props }: IRenderSvgProps): ReactElement;
|
|
7
|
+
export default RenderSvg;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import LoadedSvgIcon from "./LoadedSvgIcon";
|
|
4
|
+
function RenderSvg({ svg, ...props }) {
|
|
5
|
+
// Extract SVG content and attributes
|
|
6
|
+
const innerHTML = svg.innerHTML;
|
|
7
|
+
const viewBox = svg.getAttribute("viewBox") || undefined;
|
|
8
|
+
// Extract other SVG attributes (excluding ones we handle separately)
|
|
9
|
+
const svgAttributes = {};
|
|
10
|
+
Array.from(svg.attributes).forEach((attr) => {
|
|
11
|
+
if (!["viewBox", "width", "height", "style", "class"].includes(attr.name)) {
|
|
12
|
+
svgAttributes[attr.name] = attr.value;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
let withOptionals = {
|
|
16
|
+
...props,
|
|
17
|
+
};
|
|
18
|
+
delete withOptionals.svgPromise;
|
|
19
|
+
delete withOptionals.src;
|
|
20
|
+
const withouts = withOptionals;
|
|
21
|
+
return (_jsx(LoadedSvgIcon, { innerHTML: innerHTML, viewBox: viewBox, svgAttributes: svgAttributes, ...withouts }));
|
|
22
|
+
}
|
|
23
|
+
export default RenderSvg;
|
|
24
|
+
//# sourceMappingURL=RenderSvg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderSvg.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/RenderSvg.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAO5C,SAAS,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAmB;IACnD,qCAAqC;IACrC,MAAM,SAAS,GAAW,GAAG,CAAC,SAAS,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;IAEzD,qEAAqE;IACrE,MAAM,aAAa,GAA2B,EAAE,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1C,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,aAAa,GAGb;QACF,GAAG,KAAK;KACT,CAAC;IAEF,OAAO,aAAa,CAAC,UAAU,CAAC;IAChC,OAAO,aAAa,CAAC,GAAG,CAAC;IAEzB,MAAM,QAAQ,GAAqC,aAAa,CAAC;IAEjE,OAAO,CACL,KAAC,aAAa,IACZ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,KACxB,QAAQ,GACZ,CACH,CAAC;AACJ,CAAC;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const SvgDataUrlMimeType: "image/svg+xml";
|
|
2
|
+
export declare const svgDataUrlPrefix: "data:image/svg+xml;base64,";
|
|
3
|
+
export declare function isValidSvgDataUrlPrefix(maybeSvgDataUrl: string): maybeSvgDataUrl is `data:${typeof SvgDataUrlMimeType};base64,${string}`;
|
|
4
|
+
export declare function extractBase64SvgData(svg_dataurl: `data:${typeof SvgDataUrlMimeType};base64,${string}`): string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const SvgDataUrlMimeType = "image/svg+xml";
|
|
2
|
+
export const svgDataUrlPrefix = `data:${SvgDataUrlMimeType};base64,`;
|
|
3
|
+
export function isValidSvgDataUrlPrefix(maybeSvgDataUrl) {
|
|
4
|
+
if (typeof maybeSvgDataUrl === "string") {
|
|
5
|
+
if (maybeSvgDataUrl.startsWith(svgDataUrlPrefix)) {
|
|
6
|
+
if (maybeSvgDataUrl.length > svgDataUrlPrefix.length) {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
export function extractBase64SvgData(svg_dataurl) {
|
|
14
|
+
return svg_dataurl.slice(svgDataUrlPrefix.length);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=SvgDataUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SvgDataUrl.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/SvgDataUrl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAyC,CAAC;AAE5E,MAAM,CAAC,MAAM,gBAAgB,GAC3B,QAAQ,kBAAkB,UAAoC,CAAC;AAEjE,MAAM,UAAU,uBAAuB,CACrC,eAAuB;IAEvB,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACxC,IAAI,eAAe,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACjD,IAAI,eAAe,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,WAAiE;IAEjE,OAAO,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param utf8_svg_icon A string containing an SVG element. E.g. `<svg>...</svg>`
|
|
4
|
+
* @param str_transforms A list of functions that transform <svg>...</svg> to e.g. modify attributes
|
|
5
|
+
* @returns SVGSVGElement The parsed SVG DOM
|
|
6
|
+
*/
|
|
7
|
+
declare function parseSvgIcon(utf8_svg_icon: string, str_transforms?: ((a: string) => string)[]): SVGSVGElement;
|
|
8
|
+
export default parseSvgIcon;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import toReactSvgTransform from "./toReactSvgTransform";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param utf8_svg_icon A string containing an SVG element. E.g. `<svg>...</svg>`
|
|
5
|
+
* @param str_transforms A list of functions that transform <svg>...</svg> to e.g. modify attributes
|
|
6
|
+
* @returns SVGSVGElement The parsed SVG DOM
|
|
7
|
+
*/
|
|
8
|
+
function parseSvgIcon(utf8_svg_icon, str_transforms = [toReactSvgTransform]) {
|
|
9
|
+
let domToParse = utf8_svg_icon;
|
|
10
|
+
for (const transformFn of str_transforms) {
|
|
11
|
+
domToParse = transformFn(domToParse);
|
|
12
|
+
}
|
|
13
|
+
const parser = new DOMParser();
|
|
14
|
+
const svgDoc = parser.parseFromString(domToParse, "image/svg+xml");
|
|
15
|
+
// Check for parsing errors
|
|
16
|
+
const parserError = svgDoc.querySelector("parsererror");
|
|
17
|
+
if (parserError) {
|
|
18
|
+
throw new Error("Failed to parse SVG content");
|
|
19
|
+
}
|
|
20
|
+
const svgElement = svgDoc.documentElement;
|
|
21
|
+
if (svgElement.tagName.toLowerCase() !== "svg") {
|
|
22
|
+
throw new TypeError("Fetched content is not a valid SVG");
|
|
23
|
+
}
|
|
24
|
+
return svgElement;
|
|
25
|
+
}
|
|
26
|
+
export default parseSvgIcon;
|
|
27
|
+
//# sourceMappingURL=parseSvgIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseSvgIcon.js","sourceRoot":"","sources":["../../../../src/components/ui/icon/parseSvgIcon.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAExD;;;;;GAKG;AACH,SAAS,YAAY,CACnB,aAAqB,EACrB,iBAA4C,CAAC,mBAAmB,CAAC;IAEjE,IAAI,UAAU,GAAW,aAAa,CAAC;IACvC,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE,CAAC;QACzC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAEnE,2BAA2B;IAC3B,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACxD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,eAA2C,CAAC;IAEtE,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,eAAe,YAAY,CAAC"}
|