@vertesia/ui 0.82.0 → 0.82.2
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/core/components/Avatar.js +31 -0
- package/lib/esm/core/components/Avatar.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/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/FormItem.js +9 -0
- package/lib/esm/core/components/FormItem.js.map +1 -0
- package/lib/esm/core/components/InputList.js +61 -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 +20 -0
- package/lib/esm/core/components/MenuList.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/Overlay.js +57 -0
- package/lib/esm/core/components/Overlay.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/SelectList.js +52 -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 +39 -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/TagsInput.js +194 -0
- package/lib/esm/core/components/TagsInput.js.map +1 -0
- package/lib/esm/core/components/index.js +28 -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/MessageBox.js +66 -0
- package/lib/esm/core/components/shadcn/MessageBox.js.map +1 -0
- package/lib/esm/core/components/shadcn/Panel.js +8 -0
- package/lib/esm/core/components/shadcn/Panel.js.map +1 -0
- package/lib/esm/core/components/shadcn/badge.js +62 -0
- package/lib/esm/core/components/shadcn/badge.js.map +1 -0
- package/lib/esm/core/components/shadcn/breadcrumb.js +51 -0
- package/lib/esm/core/components/shadcn/breadcrumb.js.map +1 -0
- package/lib/esm/core/components/shadcn/button.js +76 -0
- package/lib/esm/core/components/shadcn/button.js.map +1 -0
- package/lib/esm/core/components/shadcn/calendar.js +13 -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 +9 -0
- package/lib/esm/core/components/shadcn/checkbox.js.map +1 -0
- package/lib/esm/core/components/shadcn/command.js +29 -0
- package/lib/esm/core/components/shadcn/command.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/DynamicLabel.js +38 -0
- package/lib/esm/core/components/shadcn/filters/DynamicLabel.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/DateCombobox.js +129 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js +46 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js +23 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/TextCombobox.js +28 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/TextCombobox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/comboBox.js +5 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/comboBox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filter/SelectFilter.js +98 -0
- package/lib/esm/core/components/shadcn/filters/filter/SelectFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js +24 -0
- package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filter/TextFilter.js +21 -0
- package/lib/esm/core/components/shadcn/filters/filter/TextFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js +161 -0
- package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filter-styles.js +88 -0
- package/lib/esm/core/components/shadcn/filters/filter-styles.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filterBar.js +242 -0
- package/lib/esm/core/components/shadcn/filters/filterBar.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filters.js +57 -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/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 +25 -0
- package/lib/esm/core/components/shadcn/index.js.map +1 -0
- package/lib/esm/core/components/shadcn/input.js +41 -0
- package/lib/esm/core/components/shadcn/input.js.map +1 -0
- package/lib/esm/core/components/shadcn/label.js +10 -0
- package/lib/esm/core/components/shadcn/label.js.map +1 -0
- package/lib/esm/core/components/shadcn/modal/ConfirmModal.js +10 -0
- package/lib/esm/core/components/shadcn/modal/ConfirmModal.js.map +1 -0
- package/lib/esm/core/components/shadcn/modal/DeleteModal.js +28 -0
- package/lib/esm/core/components/shadcn/modal/DeleteModal.js.map +1 -0
- package/lib/esm/core/components/shadcn/modal/dialog.js +78 -0
- package/lib/esm/core/components/shadcn/modal/dialog.js.map +1 -0
- package/lib/esm/core/components/shadcn/modal/index.js +4 -0
- package/lib/esm/core/components/shadcn/modal/index.js.map +1 -0
- package/lib/esm/core/components/shadcn/popover.js +52 -0
- package/lib/esm/core/components/shadcn/popover.js.map +1 -0
- package/lib/esm/core/components/shadcn/resizeable.js +15 -0
- package/lib/esm/core/components/shadcn/resizeable.js.map +1 -0
- package/lib/esm/core/components/shadcn/selectBox.js +152 -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 +132 -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/textarea.js +7 -0
- package/lib/esm/core/components/shadcn/textarea.js.map +1 -0
- package/lib/esm/core/components/shadcn/theme/ThemeProvider.js +39 -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 +18 -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 +24 -0
- package/lib/esm/core/components/table/index.js.map +1 -0
- package/lib/esm/core/components/toast/NotificationPanel.js +43 -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 +256 -0
- package/lib/esm/core/hooks/CompositeState.js.map +1 -0
- package/lib/esm/core/hooks/PortalContainerProvider.js +42 -0
- package/lib/esm/core/hooks/PortalContainerProvider.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 +16 -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/useScrollableSearch.js +92 -0
- package/lib/esm/core/hooks/useScrollableSearch.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 +4 -0
- package/lib/esm/core/index.js.map +1 -0
- package/lib/esm/core/utils/cn.js +6 -0
- package/lib/esm/core/utils/cn.js.map +1 -0
- package/lib/esm/core/utils/index.js +2 -0
- package/lib/esm/core/utils/index.js.map +1 -0
- package/lib/esm/env/index.js +75 -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/agent/PayloadBuilder.js +288 -0
- package/lib/esm/features/agent/PayloadBuilder.js.map +1 -0
- package/lib/esm/features/agent/chat/AgentChart.js +184 -0
- package/lib/esm/features/agent/chat/AgentChart.js.map +1 -0
- package/lib/esm/features/agent/chat/AnimatedThinkingDots.js +207 -0
- package/lib/esm/features/agent/chat/AnimatedThinkingDots.js.map +1 -0
- package/lib/esm/features/agent/chat/JumpingDots.js +6 -0
- package/lib/esm/features/agent/chat/JumpingDots.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentConversation.js +434 -0
- package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +133 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js +62 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.js +29 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js +95 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js +54 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +368 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessagesContainer.js +20 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessagesContainer.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js +63 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlideInPanel.js +23 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlideInPanel.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingMessages.js +52 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingMessages.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js +82 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/StackedMessages.js +13 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/StackedMessages.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +105 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +1 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js +160 -0
- package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js.map +1 -0
- package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js +266 -0
- package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js.map +1 -0
- package/lib/esm/features/agent/chat/WaitingMessages.js +60 -0
- package/lib/esm/features/agent/chat/WaitingMessages.js.map +1 -0
- package/lib/esm/features/agent/chat/index.js +6 -0
- package/lib/esm/features/agent/chat/index.js.map +1 -0
- package/lib/esm/features/agent/createChartTool.js +354 -0
- package/lib/esm/features/agent/createChartTool.js.map +1 -0
- package/lib/esm/features/agent/examples.js +295 -0
- package/lib/esm/features/agent/examples.js.map +1 -0
- package/lib/esm/features/agent/index.js +5 -0
- package/lib/esm/features/agent/index.js.map +1 -0
- package/lib/esm/features/agent/visualization.js +165 -0
- package/lib/esm/features/agent/visualization.js.map +1 -0
- package/lib/esm/features/errors/PanelErrorBoundary.js +11 -0
- package/lib/esm/features/errors/PanelErrorBoundary.js.map +1 -0
- package/lib/esm/features/errors/RowErrorBoundary.js +9 -0
- package/lib/esm/features/errors/RowErrorBoundary.js.map +1 -0
- package/lib/esm/features/errors/VertesiaErrorBoundary.js +15 -0
- package/lib/esm/features/errors/VertesiaErrorBoundary.js.map +1 -0
- package/lib/esm/features/errors/WidgetErrorBoundary.js +11 -0
- package/lib/esm/features/errors/WidgetErrorBoundary.js.map +1 -0
- package/lib/esm/features/errors/index.js +5 -0
- package/lib/esm/features/errors/index.js.map +1 -0
- package/lib/esm/features/facets/AgentRunnerFacetsNav.js +86 -0
- package/lib/esm/features/facets/AgentRunnerFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/CollectionsFacetsNav.js +89 -0
- package/lib/esm/features/facets/CollectionsFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/DocumentsFacetsNav.js +147 -0
- package/lib/esm/features/facets/DocumentsFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/EnvironmentFacet.js +39 -0
- package/lib/esm/features/facets/EnvironmentFacet.js.map +1 -0
- package/lib/esm/features/facets/InteractionsFacetsNav.js +88 -0
- package/lib/esm/features/facets/InteractionsFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/PromptsFacetsNav.js +80 -0
- package/lib/esm/features/facets/PromptsFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/RunsFacetsNav.js +157 -0
- package/lib/esm/features/facets/RunsFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js +100 -0
- package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/index.js +16 -0
- package/lib/esm/features/facets/index.js.map +1 -0
- package/lib/esm/features/facets/utils/SearchInterface.js +2 -0
- package/lib/esm/features/facets/utils/SearchInterface.js.map +1 -0
- package/lib/esm/features/facets/utils/StringFacet.js +12 -0
- package/lib/esm/features/facets/utils/StringFacet.js.map +1 -0
- package/lib/esm/features/facets/utils/StringListFacet.js +11 -0
- package/lib/esm/features/facets/utils/StringListFacet.js.map +1 -0
- package/lib/esm/features/facets/utils/TypeFacet.js +42 -0
- package/lib/esm/features/facets/utils/TypeFacet.js.map +1 -0
- package/lib/esm/features/facets/utils/VEnvironmentFacet.js +25 -0
- package/lib/esm/features/facets/utils/VEnvironmentFacet.js.map +1 -0
- package/lib/esm/features/facets/utils/VInteractionFacet.js +45 -0
- package/lib/esm/features/facets/utils/VInteractionFacet.js.map +1 -0
- package/lib/esm/features/facets/utils/VStringFacet.js +20 -0
- package/lib/esm/features/facets/utils/VStringFacet.js.map +1 -0
- package/lib/esm/features/facets/utils/VTypeFacet.js +61 -0
- package/lib/esm/features/facets/utils/VTypeFacet.js.map +1 -0
- package/lib/esm/features/facets/utils/VUserFacet.js +31 -0
- package/lib/esm/features/facets/utils/VUserFacet.js.map +1 -0
- package/lib/esm/features/facets/utils/utils.js +7 -0
- package/lib/esm/features/facets/utils/utils.js.map +1 -0
- package/lib/esm/features/index.js +12 -0
- package/lib/esm/features/index.js.map +1 -0
- package/lib/esm/features/layout/GenericPageNavHeader.js +74 -0
- package/lib/esm/features/layout/GenericPageNavHeader.js.map +1 -0
- package/lib/esm/features/layout/NotFoundView.js +5 -0
- package/lib/esm/features/layout/NotFoundView.js.map +1 -0
- package/lib/esm/features/layout/index.js +3 -0
- package/lib/esm/features/layout/index.js.map +1 -0
- package/lib/esm/features/magic-pdf/AnnotatedImageSlider.js +268 -0
- package/lib/esm/features/magic-pdf/AnnotatedImageSlider.js.map +1 -0
- package/lib/esm/features/magic-pdf/DownloadPopover.js +28 -0
- package/lib/esm/features/magic-pdf/DownloadPopover.js.map +1 -0
- package/lib/esm/features/magic-pdf/ExtractedContentView.js +77 -0
- package/lib/esm/features/magic-pdf/ExtractedContentView.js.map +1 -0
- package/lib/esm/features/magic-pdf/MagicPdfProvider.js +242 -0
- package/lib/esm/features/magic-pdf/MagicPdfProvider.js.map +1 -0
- package/lib/esm/features/magic-pdf/MagicPdfView.js +61 -0
- package/lib/esm/features/magic-pdf/MagicPdfView.js.map +1 -0
- package/lib/esm/features/magic-pdf/index.js +2 -0
- package/lib/esm/features/magic-pdf/index.js.map +1 -0
- package/lib/esm/features/magic-pdf/types.js +2 -0
- package/lib/esm/features/magic-pdf/types.js.map +1 -0
- package/lib/esm/features/pdf-viewer/PdfPageRenderer.js +261 -0
- package/lib/esm/features/pdf-viewer/PdfPageRenderer.js.map +1 -0
- package/lib/esm/features/pdf-viewer/PdfPageSlider.js +276 -0
- package/lib/esm/features/pdf-viewer/PdfPageSlider.js.map +1 -0
- package/lib/esm/features/pdf-viewer/SimplePdfViewer.js +71 -0
- package/lib/esm/features/pdf-viewer/SimplePdfViewer.js.map +1 -0
- package/lib/esm/features/pdf-viewer/index.js +4 -0
- package/lib/esm/features/pdf-viewer/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 +87 -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/features/store/collections/BrowseCollectionView.js +37 -0
- package/lib/esm/features/store/collections/BrowseCollectionView.js.map +1 -0
- package/lib/esm/features/store/collections/CollectionsTable.js +64 -0
- package/lib/esm/features/store/collections/CollectionsTable.js.map +1 -0
- package/lib/esm/features/store/collections/CreateCollection.js +87 -0
- package/lib/esm/features/store/collections/CreateCollection.js.map +1 -0
- package/lib/esm/features/store/collections/EditCollectionView.js +181 -0
- package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -0
- package/lib/esm/features/store/collections/SelectCollection.js +119 -0
- package/lib/esm/features/store/collections/SelectCollection.js.map +1 -0
- package/lib/esm/features/store/collections/SharedPropsEditor.js +39 -0
- package/lib/esm/features/store/collections/SharedPropsEditor.js.map +1 -0
- package/lib/esm/features/store/collections/SyncMemberHeadsToggle.js +35 -0
- package/lib/esm/features/store/collections/SyncMemberHeadsToggle.js.map +1 -0
- package/lib/esm/features/store/collections/index.js +8 -0
- package/lib/esm/features/store/collections/index.js.map +1 -0
- package/lib/esm/features/store/index.js +4 -0
- package/lib/esm/features/store/index.js.map +1 -0
- package/lib/esm/features/store/objects/DocumentPreviewPanel.js +147 -0
- package/lib/esm/features/store/objects/DocumentPreviewPanel.js.map +1 -0
- package/lib/esm/features/store/objects/DocumentSearchResults.js +204 -0
- package/lib/esm/features/store/objects/DocumentSearchResults.js.map +1 -0
- package/lib/esm/features/store/objects/DocumentSelectionProvider.js +81 -0
- package/lib/esm/features/store/objects/DocumentSelectionProvider.js.map +1 -0
- package/lib/esm/features/store/objects/DocumentTable.js +278 -0
- package/lib/esm/features/store/objects/DocumentTable.js.map +1 -0
- package/lib/esm/features/store/objects/ExportPropertiesModal.js +31 -0
- package/lib/esm/features/store/objects/ExportPropertiesModal.js.map +1 -0
- package/lib/esm/features/store/objects/components/ContentDispositionButton.js +31 -0
- package/lib/esm/features/store/objects/components/ContentDispositionButton.js.map +1 -0
- package/lib/esm/features/store/objects/components/ContentOverview.js +520 -0
- package/lib/esm/features/store/objects/components/ContentOverview.js.map +1 -0
- package/lib/esm/features/store/objects/components/DocumentIcon.js +33 -0
- package/lib/esm/features/store/objects/components/DocumentIcon.js.map +1 -0
- package/lib/esm/features/store/objects/components/DocumentInput.js +51 -0
- package/lib/esm/features/store/objects/components/DocumentInput.js.map +1 -0
- package/lib/esm/features/store/objects/components/PropertiesEditorModal.js +157 -0
- package/lib/esm/features/store/objects/components/PropertiesEditorModal.js.map +1 -0
- package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js +53 -0
- package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js.map +1 -0
- package/lib/esm/features/store/objects/components/SelectDocument.js +55 -0
- package/lib/esm/features/store/objects/components/SelectDocument.js.map +1 -0
- package/lib/esm/features/store/objects/components/SelectDocumentModal.js +7 -0
- package/lib/esm/features/store/objects/components/SelectDocumentModal.js.map +1 -0
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js +90 -0
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js.map +1 -0
- package/lib/esm/features/store/objects/components/index.js +10 -0
- package/lib/esm/features/store/objects/components/index.js.map +1 -0
- package/lib/esm/features/store/objects/components/useContentPanelHooks.js +153 -0
- package/lib/esm/features/store/objects/components/useContentPanelHooks.js.map +1 -0
- package/lib/esm/features/store/objects/components/useDownloadObject.js +21 -0
- package/lib/esm/features/store/objects/components/useDownloadObject.js.map +1 -0
- package/lib/esm/features/store/objects/index.js +11 -0
- package/lib/esm/features/store/objects/index.js.map +1 -0
- package/lib/esm/features/store/objects/layout/DocumentTableColumn.js +86 -0
- package/lib/esm/features/store/objects/layout/DocumentTableColumn.js.map +1 -0
- package/lib/esm/features/store/objects/layout/documentLayout.js +15 -0
- package/lib/esm/features/store/objects/layout/documentLayout.js.map +1 -0
- package/lib/esm/features/store/objects/layout/index.js +3 -0
- package/lib/esm/features/store/objects/layout/index.js.map +1 -0
- package/lib/esm/features/store/objects/layout/renderers.js +157 -0
- package/lib/esm/features/store/objects/layout/renderers.js.map +1 -0
- package/lib/esm/features/store/objects/search/DocumentSearchContext.js +174 -0
- package/lib/esm/features/store/objects/search/DocumentSearchContext.js.map +1 -0
- package/lib/esm/features/store/objects/search/DocumentSearchProvider.js +39 -0
- package/lib/esm/features/store/objects/search/DocumentSearchProvider.js.map +1 -0
- package/lib/esm/features/store/objects/search/index.js +3 -0
- package/lib/esm/features/store/objects/search/index.js.map +1 -0
- package/lib/esm/features/store/objects/selection/ObjectsActionContext.js +150 -0
- package/lib/esm/features/store/objects/selection/ObjectsActionContext.js.map +1 -0
- package/lib/esm/features/store/objects/selection/ObjectsActionSpec.js +2 -0
- package/lib/esm/features/store/objects/selection/ObjectsActionSpec.js.map +1 -0
- package/lib/esm/features/store/objects/selection/SelectionActions.js +66 -0
- package/lib/esm/features/store/objects/selection/SelectionActions.js.map +1 -0
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +81 -0
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +1 -0
- package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js +53 -0
- package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js.map +1 -0
- package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js +30 -0
- package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js.map +1 -0
- package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js +84 -0
- package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js.map +1 -0
- package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js +106 -0
- package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js.map +1 -0
- package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js +64 -0
- package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js.map +1 -0
- package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js +72 -0
- package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js.map +1 -0
- package/lib/esm/features/store/objects/selection/actions/index.js +8 -0
- package/lib/esm/features/store/objects/selection/actions/index.js.map +1 -0
- package/lib/esm/features/store/objects/selection/index.js +5 -0
- package/lib/esm/features/store/objects/selection/index.js.map +1 -0
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +519 -0
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +1 -0
- package/lib/esm/features/store/objects/upload/index.js +4 -0
- package/lib/esm/features/store/objects/upload/index.js.map +1 -0
- package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js +195 -0
- package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js.map +1 -0
- package/lib/esm/features/store/objects/upload/useUploadHandler.js +230 -0
- package/lib/esm/features/store/objects/upload/useUploadHandler.js.map +1 -0
- package/lib/esm/features/store/types/ContentObjectTypesSearch.js +81 -0
- package/lib/esm/features/store/types/ContentObjectTypesSearch.js.map +1 -0
- package/lib/esm/features/store/types/ContentObjectTypesTable.js +11 -0
- package/lib/esm/features/store/types/ContentObjectTypesTable.js.map +1 -0
- package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js +26 -0
- package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js.map +1 -0
- package/lib/esm/features/store/types/ObjectSchemaEditor.js +102 -0
- package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +1 -0
- package/lib/esm/features/store/types/SelectContentType.js +43 -0
- package/lib/esm/features/store/types/SelectContentType.js.map +1 -0
- package/lib/esm/features/store/types/SelectContentTypeModal.js +29 -0
- package/lib/esm/features/store/types/SelectContentTypeModal.js.map +1 -0
- package/lib/esm/features/store/types/TableLayoutEditor.js +76 -0
- package/lib/esm/features/store/types/TableLayoutEditor.js.map +1 -0
- package/lib/esm/features/store/types/index.js +9 -0
- package/lib/esm/features/store/types/index.js.map +1 -0
- package/lib/esm/features/store/types/search/ObjectTypeSearchContext.js +98 -0
- package/lib/esm/features/store/types/search/ObjectTypeSearchContext.js.map +1 -0
- package/lib/esm/features/store/types/search/ObjectTypeSearchProvider.js +15 -0
- package/lib/esm/features/store/types/search/ObjectTypeSearchProvider.js.map +1 -0
- package/lib/esm/features/store/types/search/index.js +3 -0
- package/lib/esm/features/store/types/search/index.js.map +1 -0
- package/lib/esm/features/user/UserAvatar.js +18 -0
- package/lib/esm/features/user/UserAvatar.js.map +1 -0
- package/lib/esm/features/user/UserInfo.js +121 -0
- package/lib/esm/features/user/UserInfo.js.map +1 -0
- package/lib/esm/features/user/index.js +3 -0
- package/lib/esm/features/user/index.js.map +1 -0
- package/lib/esm/features/utils/index.js +6 -0
- package/lib/esm/features/utils/index.js.map +1 -0
- package/lib/esm/features/utils/mimeType.js +17 -0
- package/lib/esm/features/utils/mimeType.js.map +1 -0
- package/lib/esm/features/utils/print.js +181 -0
- package/lib/esm/features/utils/print.js.map +1 -0
- package/lib/esm/features/utils/rendition.js +67 -0
- package/lib/esm/features/utils/rendition.js.map +1 -0
- package/lib/esm/features/utils/text.js +10 -0
- package/lib/esm/features/utils/text.js.map +1 -0
- package/lib/esm/features/utils/workflowStatus.js +43 -0
- package/lib/esm/features/utils/workflowStatus.js.map +1 -0
- package/lib/esm/layout/AppLayout.js +45 -0
- package/lib/esm/layout/AppLayout.js.map +1 -0
- package/lib/esm/layout/FullHeightLayout.js +18 -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 +45 -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 +192 -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 +140 -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 +192 -0
- package/lib/esm/session/UserSession.js.map +1 -0
- package/lib/esm/session/UserSessionProvider.js +179 -0
- package/lib/esm/session/UserSessionProvider.js.map +1 -0
- package/lib/esm/session/auth/composable.js +255 -0
- package/lib/esm/session/auth/composable.js.map +1 -0
- package/lib/esm/session/auth/firebase.js +158 -0
- package/lib/esm/session/auth/firebase.js.map +1 -0
- package/lib/esm/session/auth/useAuthState.js +46 -0
- package/lib/esm/session/auth/useAuthState.js.map +1 -0
- package/lib/esm/session/auth/useCurrentTenant.js +63 -0
- package/lib/esm/session/auth/useCurrentTenant.js.map +1 -0
- package/lib/esm/session/constants.js +3 -0
- package/lib/esm/session/constants.js.map +1 -0
- package/lib/esm/session/index.js +9 -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/shell/SplashScreen.js +26 -0
- package/lib/esm/shell/SplashScreen.js.map +1 -0
- package/lib/esm/shell/VertesiaShell.js +10 -0
- package/lib/esm/shell/VertesiaShell.js.map +1 -0
- package/lib/esm/shell/apps/AppInstallationProvider.js +13 -0
- package/lib/esm/shell/apps/AppInstallationProvider.js.map +1 -0
- package/lib/esm/shell/apps/AppProjectSelector.js +36 -0
- package/lib/esm/shell/apps/AppProjectSelector.js.map +1 -0
- package/lib/esm/shell/apps/StandaloneApp.js +60 -0
- package/lib/esm/shell/apps/StandaloneApp.js.map +1 -0
- package/lib/esm/shell/apps/index.js +4 -0
- package/lib/esm/shell/apps/index.js.map +1 -0
- package/lib/esm/shell/index.js +8 -0
- package/lib/esm/shell/index.js.map +1 -0
- package/lib/esm/shell/login/EnterpriseSigninButton.js +84 -0
- package/lib/esm/shell/login/EnterpriseSigninButton.js.map +1 -0
- package/lib/esm/shell/login/GitHubSignInButton.js +24 -0
- package/lib/esm/shell/login/GitHubSignInButton.js.map +1 -0
- package/lib/esm/shell/login/GoogleSignInButton.js +25 -0
- package/lib/esm/shell/login/GoogleSignInButton.js.map +1 -0
- package/lib/esm/shell/login/InviteAcceptModal.js +62 -0
- package/lib/esm/shell/login/InviteAcceptModal.js.map +1 -0
- package/lib/esm/shell/login/MicrosoftSigninButton.js +19 -0
- package/lib/esm/shell/login/MicrosoftSigninButton.js.map +1 -0
- package/lib/esm/shell/login/PreviewIcon.js +23 -0
- package/lib/esm/shell/login/PreviewIcon.js.map +1 -0
- package/lib/esm/shell/login/SignInModal.js +9 -0
- package/lib/esm/shell/login/SignInModal.js.map +1 -0
- package/lib/esm/shell/login/SigninScreen.js +64 -0
- package/lib/esm/shell/login/SigninScreen.js.map +1 -0
- package/lib/esm/shell/login/SignupForm.js +91 -0
- package/lib/esm/shell/login/SignupForm.js.map +1 -0
- package/lib/esm/shell/login/TerminalLogin.js +179 -0
- package/lib/esm/shell/login/TerminalLogin.js.map +1 -0
- package/lib/esm/shell/login/UserInfo.js +41 -0
- package/lib/esm/shell/login/UserInfo.js.map +1 -0
- package/lib/esm/shell/login/UserSessionMenu.js +37 -0
- package/lib/esm/shell/login/UserSessionMenu.js.map +1 -0
- package/lib/esm/shell/utils.js +6 -0
- package/lib/esm/shell/utils.js.map +1 -0
- package/lib/esm/widgets/Progress.js +5 -0
- package/lib/esm/widgets/Progress.js.map +1 -0
- package/lib/esm/widgets/SvgIcon.js +36 -0
- package/lib/esm/widgets/SvgIcon.js.map +1 -0
- package/lib/esm/widgets/form/Form.js +100 -0
- package/lib/esm/widgets/form/Form.js.map +1 -0
- package/lib/esm/widgets/form/FormContext.js +31 -0
- package/lib/esm/widgets/form/FormContext.js.map +1 -0
- package/lib/esm/widgets/form/ManagedObject.js +287 -0
- package/lib/esm/widgets/form/ManagedObject.js.map +1 -0
- package/lib/esm/widgets/form/fields.js +12 -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 +38 -0
- package/lib/esm/widgets/form/inputs.js.map +1 -0
- package/lib/esm/widgets/form/schema.js +197 -0
- package/lib/esm/widgets/form/schema.js.map +1 -0
- package/lib/esm/widgets/index.js +12 -0
- package/lib/esm/widgets/index.js.map +1 -0
- package/lib/esm/widgets/json-view/JSONCode.js +22 -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/markdown/MarkdownRenderer.js +246 -0
- package/lib/esm/widgets/markdown/MarkdownRenderer.js.map +1 -0
- package/lib/esm/widgets/markdown/index.js +2 -0
- package/lib/esm/widgets/markdown/index.js.map +1 -0
- package/lib/esm/widgets/monacoEditor/MonacoEditor.js +133 -0
- package/lib/esm/widgets/monacoEditor/MonacoEditor.js.map +1 -0
- package/lib/esm/widgets/monacoEditor/index.js +2 -0
- package/lib/esm/widgets/monacoEditor/index.js.map +1 -0
- package/lib/esm/widgets/popover/Popover.js +73 -0
- package/lib/esm/widgets/popover/Popover.js.map +1 -0
- package/lib/esm/widgets/popover/context.js +7 -0
- package/lib/esm/widgets/popover/context.js.map +1 -0
- package/lib/esm/widgets/popover/index.js +3 -0
- package/lib/esm/widgets/popover/index.js.map +1 -0
- package/lib/esm/widgets/popover/slots.js +22 -0
- package/lib/esm/widgets/popover/slots.js.map +1 -0
- package/lib/esm/widgets/properties/PropertiesView.js +8 -0
- package/lib/esm/widgets/properties/PropertiesView.js.map +1 -0
- package/lib/esm/widgets/properties/index.js +2 -0
- package/lib/esm/widgets/properties/index.js.map +1 -0
- package/lib/esm/widgets/schema-editor/ManagedSchema.js +300 -0
- package/lib/esm/widgets/schema-editor/ManagedSchema.js.map +1 -0
- package/lib/esm/widgets/schema-editor/editor/Editable.js +110 -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 +7 -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/upload/DropZone.js +175 -0
- package/lib/esm/widgets/upload/DropZone.js.map +1 -0
- package/lib/esm/widgets/upload/UploadResultCategory.js +19 -0
- package/lib/esm/widgets/upload/UploadResultCategory.js.map +1 -0
- package/lib/esm/widgets/upload/UploadSummary.js +30 -0
- package/lib/esm/widgets/upload/UploadSummary.js.map +1 -0
- package/lib/esm/widgets/upload/index.js +4 -0
- package/lib/esm/widgets/upload/index.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 +39 -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 +27 -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/core/components/Avatar.d.ts +16 -0
- package/lib/types/core/components/Avatar.d.ts.map +1 -0
- package/lib/types/core/components/Center.d.ts +8 -0
- package/lib/types/core/components/Center.d.ts.map +1 -0
- package/lib/types/core/components/ComboBox.d.ts +124 -0
- package/lib/types/core/components/ComboBox.d.ts.map +1 -0
- package/lib/types/core/components/Divider.d.ts +6 -0
- package/lib/types/core/components/Divider.d.ts.map +1 -0
- package/lib/types/core/components/Dropdown.d.ts +15 -0
- package/lib/types/core/components/Dropdown.d.ts.map +1 -0
- package/lib/types/core/components/DropdownList.d.ts +13 -0
- package/lib/types/core/components/DropdownList.d.ts.map +1 -0
- package/lib/types/core/components/EmptyCollection.d.ts +9 -0
- package/lib/types/core/components/EmptyCollection.d.ts.map +1 -0
- package/lib/types/core/components/FileUpload.d.ts +29 -0
- package/lib/types/core/components/FileUpload.d.ts.map +1 -0
- package/lib/types/core/components/FormItem.d.ts +13 -0
- package/lib/types/core/components/FormItem.d.ts.map +1 -0
- package/lib/types/core/components/InputList.d.ts +12 -0
- package/lib/types/core/components/InputList.d.ts.map +1 -0
- package/lib/types/core/components/Link.d.ts +7 -0
- package/lib/types/core/components/Link.d.ts.map +1 -0
- package/lib/types/core/components/MenuList.d.ts +14 -0
- package/lib/types/core/components/MenuList.d.ts.map +1 -0
- package/lib/types/core/components/NumberInput.d.ts +16 -0
- package/lib/types/core/components/NumberInput.d.ts.map +1 -0
- package/lib/types/core/components/Overlay.d.ts +25 -0
- package/lib/types/core/components/Overlay.d.ts.map +1 -0
- package/lib/types/core/components/Portal.d.ts +6 -0
- package/lib/types/core/components/Portal.d.ts.map +1 -0
- package/lib/types/core/components/RadioGroup.d.ts +26 -0
- package/lib/types/core/components/RadioGroup.d.ts.map +1 -0
- package/lib/types/core/components/SelectList.d.ts +19 -0
- package/lib/types/core/components/SelectList.d.ts.map +1 -0
- package/lib/types/core/components/SelectStack.d.ts +13 -0
- package/lib/types/core/components/SelectStack.d.ts.map +1 -0
- package/lib/types/core/components/SidePanel.d.ts +14 -0
- package/lib/types/core/components/SidePanel.d.ts.map +1 -0
- package/lib/types/core/components/Spinner.d.ts +7 -0
- package/lib/types/core/components/Spinner.d.ts.map +1 -0
- package/lib/types/core/components/Switch.d.ts +11 -0
- package/lib/types/core/components/Switch.d.ts.map +1 -0
- package/lib/types/core/components/TagsInput.d.ts +16 -0
- package/lib/types/core/components/TagsInput.d.ts.map +1 -0
- package/lib/types/core/components/index.d.ts +32 -0
- package/lib/types/core/components/index.d.ts.map +1 -0
- package/lib/types/core/components/libs/utils.d.ts +3 -0
- package/lib/types/core/components/libs/utils.d.ts.map +1 -0
- package/lib/types/core/components/libs/visuallyHidden.d.ts +7 -0
- package/lib/types/core/components/libs/visuallyHidden.d.ts.map +1 -0
- package/lib/types/core/components/popup/Popup.d.ts +26 -0
- package/lib/types/core/components/popup/Popup.d.ts.map +1 -0
- package/lib/types/core/components/popup/PopupController.d.ts +41 -0
- package/lib/types/core/components/popup/PopupController.d.ts.map +1 -0
- package/lib/types/core/components/popup/index.d.ts +4 -0
- package/lib/types/core/components/popup/index.d.ts.map +1 -0
- package/lib/types/core/components/popup/position.d.ts +59 -0
- package/lib/types/core/components/popup/position.d.ts.map +1 -0
- package/lib/types/core/components/popup/utils.d.ts +30 -0
- package/lib/types/core/components/popup/utils.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/MessageBox.d.ts +36 -0
- package/lib/types/core/components/shadcn/MessageBox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/Panel.d.ts +11 -0
- package/lib/types/core/components/shadcn/Panel.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/badge.d.ts +21 -0
- package/lib/types/core/components/shadcn/badge.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/breadcrumb.d.ts +15 -0
- package/lib/types/core/components/shadcn/breadcrumb.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/button.d.ts +27 -0
- package/lib/types/core/components/shadcn/button.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/calendar.d.ts +11 -0
- package/lib/types/core/components/shadcn/calendar.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/card.d.ts +9 -0
- package/lib/types/core/components/shadcn/card.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/checkbox.d.ts +5 -0
- package/lib/types/core/components/shadcn/checkbox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/command.d.ts +17 -0
- package/lib/types/core/components/shadcn/command.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/DynamicLabel.d.ts +9 -0
- package/lib/types/core/components/shadcn/filters/DynamicLabel.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/animateChangeInHeight.d.ts +7 -0
- package/lib/types/core/components/shadcn/filters/animateChangeInHeight.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts +6 -0
- package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts +9 -0
- package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/StringListCombobox.d.ts +6 -0
- package/lib/types/core/components/shadcn/filters/comboBox/StringListCombobox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/TextCombobox.d.ts +6 -0
- package/lib/types/core/components/shadcn/filters/comboBox/TextCombobox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/comboBox.d.ts +5 -0
- package/lib/types/core/components/shadcn/filters/comboBox/comboBox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filter/SelectFilter.d.ts +12 -0
- package/lib/types/core/components/shadcn/filters/filter/SelectFilter.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filter/StringListFilter.d.ts +11 -0
- package/lib/types/core/components/shadcn/filters/filter/StringListFilter.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filter/TextFilter.d.ts +13 -0
- package/lib/types/core/components/shadcn/filters/filter/TextFilter.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filter/dateFilter.d.ts +14 -0
- package/lib/types/core/components/shadcn/filters/filter/dateFilter.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filter-styles.d.ts +2 -0
- package/lib/types/core/components/shadcn/filters/filter-styles.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts +20 -0
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filters.d.ts +10 -0
- package/lib/types/core/components/shadcn/filters/filters.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/index.d.ts +6 -0
- package/lib/types/core/components/shadcn/filters/index.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/types.d.ts +35 -0
- package/lib/types/core/components/shadcn/filters/types.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/heading.d.ts +6 -0
- package/lib/types/core/components/shadcn/heading.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/index.d.ts +25 -0
- package/lib/types/core/components/shadcn/index.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/input.d.ts +17 -0
- package/lib/types/core/components/shadcn/input.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/label.d.ts +8 -0
- package/lib/types/core/components/shadcn/label.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts +11 -0
- package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/modal/DeleteModal.d.ts +11 -0
- package/lib/types/core/components/shadcn/modal/DeleteModal.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/modal/dialog.d.ts +39 -0
- package/lib/types/core/components/shadcn/modal/dialog.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/modal/index.d.ts +4 -0
- package/lib/types/core/components/shadcn/modal/index.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/popover.d.ts +24 -0
- package/lib/types/core/components/shadcn/popover.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/resizeable.d.ts +9 -0
- package/lib/types/core/components/shadcn/resizeable.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/selectBox.d.ts +39 -0
- package/lib/types/core/components/shadcn/selectBox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/separator.d.ts +5 -0
- package/lib/types/core/components/shadcn/separator.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/tabs.d.ts +41 -0
- package/lib/types/core/components/shadcn/tabs.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/text.d.ts +11 -0
- package/lib/types/core/components/shadcn/text.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/textarea.d.ts +4 -0
- package/lib/types/core/components/shadcn/textarea.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/theme/ThemeProvider.d.ts +15 -0
- package/lib/types/core/components/shadcn/theme/ThemeProvider.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts +10 -0
- package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/tooltip.d.ts +20 -0
- package/lib/types/core/components/shadcn/tooltip.d.ts.map +1 -0
- package/lib/types/core/components/styles.d.ts +7 -0
- package/lib/types/core/components/styles.d.ts.map +1 -0
- package/lib/types/core/components/table/index.d.ts +19 -0
- package/lib/types/core/components/table/index.d.ts.map +1 -0
- package/lib/types/core/components/toast/NotificationPanel.d.ts +8 -0
- package/lib/types/core/components/toast/NotificationPanel.d.ts.map +1 -0
- package/lib/types/core/components/toast/ToastContext.d.ts +6 -0
- package/lib/types/core/components/toast/ToastContext.d.ts.map +1 -0
- package/lib/types/core/components/toast/ToastProps.d.ts +7 -0
- package/lib/types/core/components/toast/ToastProps.d.ts.map +1 -0
- package/lib/types/core/components/toast/ToastProvider.d.ts +6 -0
- package/lib/types/core/components/toast/ToastProvider.d.ts.map +1 -0
- package/lib/types/core/components/toast/index.d.ts +3 -0
- package/lib/types/core/components/toast/index.d.ts.map +1 -0
- package/lib/types/core/hooks/CompositeState.d.ts +137 -0
- package/lib/types/core/hooks/CompositeState.d.ts.map +1 -0
- package/lib/types/core/hooks/PortalContainerProvider.d.ts +7 -0
- package/lib/types/core/hooks/PortalContainerProvider.d.ts.map +1 -0
- package/lib/types/core/hooks/SharedState.d.ts +10 -0
- package/lib/types/core/hooks/SharedState.d.ts.map +1 -0
- package/lib/types/core/hooks/index.d.ts +16 -0
- package/lib/types/core/hooks/index.d.ts.map +1 -0
- package/lib/types/core/hooks/useClickOutside.d.ts +8 -0
- package/lib/types/core/hooks/useClickOutside.d.ts.map +1 -0
- package/lib/types/core/hooks/useCopyToClipboard.d.ts +5 -0
- package/lib/types/core/hooks/useCopyToClipboard.d.ts.map +1 -0
- package/lib/types/core/hooks/useDarkMode.d.ts +2 -0
- package/lib/types/core/hooks/useDarkMode.d.ts.map +1 -0
- package/lib/types/core/hooks/useDebounce.d.ts +2 -0
- package/lib/types/core/hooks/useDebounce.d.ts.map +1 -0
- package/lib/types/core/hooks/useEventSource.d.ts +2 -0
- package/lib/types/core/hooks/useEventSource.d.ts.map +1 -0
- package/lib/types/core/hooks/useFetch.d.ts +24 -0
- package/lib/types/core/hooks/useFetch.d.ts.map +1 -0
- package/lib/types/core/hooks/useFlag.d.ts +9 -0
- package/lib/types/core/hooks/useFlag.d.ts.map +1 -0
- package/lib/types/core/hooks/useIntersectionObserver.d.ts +14 -0
- package/lib/types/core/hooks/useIntersectionObserver.d.ts.map +1 -0
- package/lib/types/core/hooks/useIsFistRendering.d.ts +2 -0
- package/lib/types/core/hooks/useIsFistRendering.d.ts.map +1 -0
- package/lib/types/core/hooks/useSafeLayoutEffect.d.ts +4 -0
- package/lib/types/core/hooks/useSafeLayoutEffect.d.ts.map +1 -0
- package/lib/types/core/hooks/useScrollableSearch.d.ts +82 -0
- package/lib/types/core/hooks/useScrollableSearch.d.ts.map +1 -0
- package/lib/types/core/hooks/useSharedValue.d.ts +12 -0
- package/lib/types/core/hooks/useSharedValue.d.ts.map +1 -0
- package/lib/types/core/index.d.ts +4 -0
- package/lib/types/core/index.d.ts.map +1 -0
- package/lib/types/core/utils/cn.d.ts +3 -0
- package/lib/types/core/utils/cn.d.ts.map +1 -0
- package/lib/types/core/utils/index.d.ts +2 -0
- package/lib/types/core/utils/index.d.ts.map +1 -0
- package/lib/types/env/index.d.ts +76 -0
- package/lib/types/env/index.d.ts.map +1 -0
- package/lib/types/features/activity-doc/ActivityDoc.d.ts +14 -0
- package/lib/types/features/activity-doc/ActivityDoc.d.ts.map +1 -0
- package/lib/types/features/activity-doc/index.d.ts +2 -0
- package/lib/types/features/activity-doc/index.d.ts.map +1 -0
- package/lib/types/features/agent/PayloadBuilder.d.ts +66 -0
- package/lib/types/features/agent/PayloadBuilder.d.ts.map +1 -0
- package/lib/types/features/agent/chat/AgentChart.d.ts +48 -0
- package/lib/types/features/agent/chat/AgentChart.d.ts.map +1 -0
- package/lib/types/features/agent/chat/AnimatedThinkingDots.d.ts +38 -0
- package/lib/types/features/agent/chat/AnimatedThinkingDots.d.ts.map +1 -0
- package/lib/types/features/agent/chat/JumpingDots.d.ts +7 -0
- package/lib/types/features/agent/chat/JumpingDots.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts +25 -0
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +23 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts +20 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.d.ts +11 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts +18 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts +11 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts +8 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/MessagesContainer.d.ts +10 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/MessagesContainer.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts +9 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/SlideInPanel.d.ts +11 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/SlideInPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingMessages.d.ts +8 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingMessages.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts +10 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/StackedMessages.d.ts +8 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/StackedMessages.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts +22 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts +25 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts.map +1 -0
- package/lib/types/features/agent/chat/SlidingThinkingIndicator.d.ts +18 -0
- package/lib/types/features/agent/chat/SlidingThinkingIndicator.d.ts.map +1 -0
- package/lib/types/features/agent/chat/WaitingMessages.d.ts +2 -0
- package/lib/types/features/agent/chat/WaitingMessages.d.ts.map +1 -0
- package/lib/types/features/agent/chat/index.d.ts +6 -0
- package/lib/types/features/agent/chat/index.d.ts.map +1 -0
- package/lib/types/features/agent/createChartTool.d.ts +178 -0
- package/lib/types/features/agent/createChartTool.d.ts.map +1 -0
- package/lib/types/features/agent/examples.d.ts +59 -0
- package/lib/types/features/agent/examples.d.ts.map +1 -0
- package/lib/types/features/agent/index.d.ts +5 -0
- package/lib/types/features/agent/index.d.ts.map +1 -0
- package/lib/types/features/agent/visualization.d.ts +95 -0
- package/lib/types/features/agent/visualization.d.ts.map +1 -0
- package/lib/types/features/errors/PanelErrorBoundary.d.ts +5 -0
- package/lib/types/features/errors/PanelErrorBoundary.d.ts.map +1 -0
- package/lib/types/features/errors/RowErrorBoundary.d.ts +8 -0
- package/lib/types/features/errors/RowErrorBoundary.d.ts.map +1 -0
- package/lib/types/features/errors/VertesiaErrorBoundary.d.ts +12 -0
- package/lib/types/features/errors/VertesiaErrorBoundary.d.ts.map +1 -0
- package/lib/types/features/errors/WidgetErrorBoundary.d.ts +5 -0
- package/lib/types/features/errors/WidgetErrorBoundary.d.ts.map +1 -0
- package/lib/types/features/errors/index.d.ts +5 -0
- package/lib/types/features/errors/index.d.ts.map +1 -0
- package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts +14 -0
- package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/CollectionsFacetsNav.d.ts +14 -0
- package/lib/types/features/facets/CollectionsFacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/DocumentsFacetsNav.d.ts +17 -0
- package/lib/types/features/facets/DocumentsFacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/EnvironmentFacet.d.ts +10 -0
- package/lib/types/features/facets/EnvironmentFacet.d.ts.map +1 -0
- package/lib/types/features/facets/InteractionsFacetsNav.d.ts +14 -0
- package/lib/types/features/facets/InteractionsFacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/PromptsFacetsNav.d.ts +15 -0
- package/lib/types/features/facets/PromptsFacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/RunsFacetsNav.d.ts +20 -0
- package/lib/types/features/facets/RunsFacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/WorkflowExecutionsFacetsNav.d.ts +14 -0
- package/lib/types/features/facets/WorkflowExecutionsFacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/index.d.ts +16 -0
- package/lib/types/features/facets/index.d.ts.map +1 -0
- package/lib/types/features/facets/utils/SearchInterface.d.ts +14 -0
- package/lib/types/features/facets/utils/SearchInterface.d.ts.map +1 -0
- package/lib/types/features/facets/utils/StringFacet.d.ts +11 -0
- package/lib/types/features/facets/utils/StringFacet.d.ts.map +1 -0
- package/lib/types/features/facets/utils/StringListFacet.d.ts +11 -0
- package/lib/types/features/facets/utils/StringListFacet.d.ts.map +1 -0
- package/lib/types/features/facets/utils/TypeFacet.d.ts +16 -0
- package/lib/types/features/facets/utils/TypeFacet.d.ts.map +1 -0
- package/lib/types/features/facets/utils/VEnvironmentFacet.d.ts +12 -0
- package/lib/types/features/facets/utils/VEnvironmentFacet.d.ts.map +1 -0
- package/lib/types/features/facets/utils/VInteractionFacet.d.ts +15 -0
- package/lib/types/features/facets/utils/VInteractionFacet.d.ts.map +1 -0
- package/lib/types/features/facets/utils/VStringFacet.d.ts +21 -0
- package/lib/types/features/facets/utils/VStringFacet.d.ts.map +1 -0
- package/lib/types/features/facets/utils/VTypeFacet.d.ts +12 -0
- package/lib/types/features/facets/utils/VTypeFacet.d.ts.map +1 -0
- package/lib/types/features/facets/utils/VUserFacet.d.ts +11 -0
- package/lib/types/features/facets/utils/VUserFacet.d.ts.map +1 -0
- package/lib/types/features/facets/utils/utils.d.ts +4 -0
- package/lib/types/features/facets/utils/utils.d.ts.map +1 -0
- package/lib/types/features/index.d.ts +12 -0
- package/lib/types/features/index.d.ts.map +1 -0
- package/lib/types/features/layout/GenericPageNavHeader.d.ts +14 -0
- package/lib/types/features/layout/GenericPageNavHeader.d.ts.map +1 -0
- package/lib/types/features/layout/NotFoundView.d.ts +5 -0
- package/lib/types/features/layout/NotFoundView.d.ts.map +1 -0
- package/lib/types/features/layout/index.d.ts +3 -0
- package/lib/types/features/layout/index.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/AnnotatedImageSlider.d.ts +13 -0
- package/lib/types/features/magic-pdf/AnnotatedImageSlider.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/DownloadPopover.d.ts +7 -0
- package/lib/types/features/magic-pdf/DownloadPopover.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/ExtractedContentView.d.ts +8 -0
- package/lib/types/features/magic-pdf/ExtractedContentView.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/MagicPdfProvider.d.ts +58 -0
- package/lib/types/features/magic-pdf/MagicPdfProvider.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/MagicPdfView.d.ts +7 -0
- package/lib/types/features/magic-pdf/MagicPdfView.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/index.d.ts +2 -0
- package/lib/types/features/magic-pdf/index.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/types.d.ts +2 -0
- package/lib/types/features/magic-pdf/types.d.ts.map +1 -0
- package/lib/types/features/pdf-viewer/PdfPageRenderer.d.ts +83 -0
- package/lib/types/features/pdf-viewer/PdfPageRenderer.d.ts.map +1 -0
- package/lib/types/features/pdf-viewer/PdfPageSlider.d.ts +29 -0
- package/lib/types/features/pdf-viewer/PdfPageSlider.d.ts.map +1 -0
- package/lib/types/features/pdf-viewer/SimplePdfViewer.d.ts +19 -0
- package/lib/types/features/pdf-viewer/SimplePdfViewer.d.ts.map +1 -0
- package/lib/types/features/pdf-viewer/index.d.ts +4 -0
- package/lib/types/features/pdf-viewer/index.d.ts.map +1 -0
- package/lib/types/features/permissions/SecureButton.d.ts +8 -0
- package/lib/types/features/permissions/SecureButton.d.ts.map +1 -0
- package/lib/types/features/permissions/SecureSidebarItem.d.ts +8 -0
- package/lib/types/features/permissions/SecureSidebarItem.d.ts.map +1 -0
- package/lib/types/features/permissions/UserPermissionsProvider.d.ts +21 -0
- package/lib/types/features/permissions/UserPermissionsProvider.d.ts.map +1 -0
- package/lib/types/features/permissions/helpers.d.ts +5 -0
- package/lib/types/features/permissions/helpers.d.ts.map +1 -0
- package/lib/types/features/permissions/index.d.ts +5 -0
- package/lib/types/features/permissions/index.d.ts.map +1 -0
- package/lib/types/features/store/collections/BrowseCollectionView.d.ts +7 -0
- package/lib/types/features/store/collections/BrowseCollectionView.d.ts.map +1 -0
- package/lib/types/features/store/collections/CollectionsTable.d.ts +6 -0
- package/lib/types/features/store/collections/CollectionsTable.d.ts.map +1 -0
- package/lib/types/features/store/collections/CreateCollection.d.ts +13 -0
- package/lib/types/features/store/collections/CreateCollection.d.ts.map +1 -0
- package/lib/types/features/store/collections/EditCollectionView.d.ts +8 -0
- package/lib/types/features/store/collections/EditCollectionView.d.ts.map +1 -0
- package/lib/types/features/store/collections/SelectCollection.d.ts +20 -0
- package/lib/types/features/store/collections/SelectCollection.d.ts.map +1 -0
- package/lib/types/features/store/collections/SharedPropsEditor.d.ts +7 -0
- package/lib/types/features/store/collections/SharedPropsEditor.d.ts.map +1 -0
- package/lib/types/features/store/collections/SyncMemberHeadsToggle.d.ts +7 -0
- package/lib/types/features/store/collections/SyncMemberHeadsToggle.d.ts.map +1 -0
- package/lib/types/features/store/collections/index.d.ts +8 -0
- package/lib/types/features/store/collections/index.d.ts.map +1 -0
- package/lib/types/features/store/index.d.ts +4 -0
- package/lib/types/features/store/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/DocumentPreviewPanel.d.ts +8 -0
- package/lib/types/features/store/objects/DocumentPreviewPanel.d.ts.map +1 -0
- package/lib/types/features/store/objects/DocumentSearchResults.d.ts +20 -0
- package/lib/types/features/store/objects/DocumentSearchResults.d.ts.map +1 -0
- package/lib/types/features/store/objects/DocumentSelectionProvider.d.ts +33 -0
- package/lib/types/features/store/objects/DocumentSelectionProvider.d.ts.map +1 -0
- package/lib/types/features/store/objects/DocumentTable.d.ts +25 -0
- package/lib/types/features/store/objects/DocumentTable.d.ts.map +1 -0
- package/lib/types/features/store/objects/ExportPropertiesModal.d.ts +12 -0
- package/lib/types/features/store/objects/ExportPropertiesModal.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/ContentDispositionButton.d.ts +9 -0
- package/lib/types/features/store/objects/components/ContentDispositionButton.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/ContentOverview.d.ts +9 -0
- package/lib/types/features/store/objects/components/ContentOverview.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/DocumentIcon.d.ts +18 -0
- package/lib/types/features/store/objects/components/DocumentIcon.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/DocumentInput.d.ts +8 -0
- package/lib/types/features/store/objects/components/DocumentInput.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts +9 -0
- package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts +9 -0
- package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/SelectDocument.d.ts +9 -0
- package/lib/types/features/store/objects/components/SelectDocument.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/SelectDocumentModal.d.ts +9 -0
- package/lib/types/features/store/objects/components/SelectDocumentModal.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts +12 -0
- package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/index.d.ts +10 -0
- package/lib/types/features/store/objects/components/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/useContentPanelHooks.d.ts +30 -0
- package/lib/types/features/store/objects/components/useContentPanelHooks.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/useDownloadObject.d.ts +4 -0
- package/lib/types/features/store/objects/components/useDownloadObject.d.ts.map +1 -0
- package/lib/types/features/store/objects/index.d.ts +11 -0
- package/lib/types/features/store/objects/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/layout/DocumentTableColumn.d.ts +18 -0
- package/lib/types/features/store/objects/layout/DocumentTableColumn.d.ts.map +1 -0
- package/lib/types/features/store/objects/layout/documentLayout.d.ts +20 -0
- package/lib/types/features/store/objects/layout/documentLayout.d.ts.map +1 -0
- package/lib/types/features/store/objects/layout/index.d.ts +3 -0
- package/lib/types/features/store/objects/layout/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/layout/renderers.d.ts +3 -0
- package/lib/types/features/store/objects/layout/renderers.d.ts.map +1 -0
- package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts +52 -0
- package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -0
- package/lib/types/features/store/objects/search/DocumentSearchProvider.d.ts +14 -0
- package/lib/types/features/store/objects/search/DocumentSearchProvider.d.ts.map +1 -0
- package/lib/types/features/store/objects/search/index.d.ts +3 -0
- package/lib/types/features/store/objects/search/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts +26 -0
- package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts +28 -0
- package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts +6 -0
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/AddToCollectionAction.d.ts +4 -0
- package/lib/types/features/store/objects/selection/actions/AddToCollectionAction.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts +4 -0
- package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts +16 -0
- package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts +5 -0
- package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts +4 -0
- package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts +4 -0
- package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/StartWorkflowComponent.d.ts +4 -0
- package/lib/types/features/store/objects/selection/actions/StartWorkflowComponent.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/index.d.ts +8 -0
- package/lib/types/features/store/objects/selection/actions/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/index.d.ts +5 -0
- package/lib/types/features/store/objects/selection/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts +39 -0
- package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts.map +1 -0
- package/lib/types/features/store/objects/upload/index.d.ts +4 -0
- package/lib/types/features/store/objects/upload/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts +30 -0
- package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts.map +1 -0
- package/lib/types/features/store/objects/upload/useUploadHandler.d.ts +50 -0
- package/lib/types/features/store/objects/upload/useUploadHandler.d.ts.map +1 -0
- package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts +6 -0
- package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts.map +1 -0
- package/lib/types/features/store/types/ContentObjectTypesTable.d.ts +8 -0
- package/lib/types/features/store/types/ContentObjectTypesTable.d.ts.map +1 -0
- package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts +15 -0
- package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts.map +1 -0
- package/lib/types/features/store/types/ObjectSchemaEditor.d.ts +8 -0
- package/lib/types/features/store/types/ObjectSchemaEditor.d.ts.map +1 -0
- package/lib/types/features/store/types/SelectContentType.d.ts +11 -0
- package/lib/types/features/store/types/SelectContentType.d.ts.map +1 -0
- package/lib/types/features/store/types/SelectContentTypeModal.d.ts +33 -0
- package/lib/types/features/store/types/SelectContentTypeModal.d.ts.map +1 -0
- package/lib/types/features/store/types/TableLayoutEditor.d.ts +9 -0
- package/lib/types/features/store/types/TableLayoutEditor.d.ts.map +1 -0
- package/lib/types/features/store/types/index.d.ts +9 -0
- package/lib/types/features/store/types/index.d.ts.map +1 -0
- package/lib/types/features/store/types/search/ObjectTypeSearchContext.d.ts +36 -0
- package/lib/types/features/store/types/search/ObjectTypeSearchContext.d.ts.map +1 -0
- package/lib/types/features/store/types/search/ObjectTypeSearchProvider.d.ts +11 -0
- package/lib/types/features/store/types/search/ObjectTypeSearchProvider.d.ts.map +1 -0
- package/lib/types/features/store/types/search/index.d.ts +3 -0
- package/lib/types/features/store/types/search/index.d.ts.map +1 -0
- package/lib/types/features/user/UserAvatar.d.ts +9 -0
- package/lib/types/features/user/UserAvatar.d.ts.map +1 -0
- package/lib/types/features/user/UserInfo.d.ts +48 -0
- package/lib/types/features/user/UserInfo.d.ts.map +1 -0
- package/lib/types/features/user/index.d.ts +3 -0
- package/lib/types/features/user/index.d.ts.map +1 -0
- package/lib/types/features/utils/index.d.ts +6 -0
- package/lib/types/features/utils/index.d.ts.map +1 -0
- package/lib/types/features/utils/mimeType.d.ts +6 -0
- package/lib/types/features/utils/mimeType.d.ts.map +1 -0
- package/lib/types/features/utils/print.d.ts +10 -0
- package/lib/types/features/utils/print.d.ts.map +1 -0
- package/lib/types/features/utils/rendition.d.ts +4 -0
- package/lib/types/features/utils/rendition.d.ts.map +1 -0
- package/lib/types/features/utils/text.d.ts +3 -0
- package/lib/types/features/utils/text.d.ts.map +1 -0
- package/lib/types/features/utils/workflowStatus.d.ts +10 -0
- package/lib/types/features/utils/workflowStatus.d.ts.map +1 -0
- package/lib/types/layout/AppLayout.d.ts +13 -0
- package/lib/types/layout/AppLayout.d.ts.map +1 -0
- package/lib/types/layout/FullHeightLayout.d.ts +27 -0
- package/lib/types/layout/FullHeightLayout.d.ts.map +1 -0
- package/lib/types/layout/Navbar.d.ts +33 -0
- package/lib/types/layout/Navbar.d.ts.map +1 -0
- package/lib/types/layout/Sidebar.d.ts +31 -0
- package/lib/types/layout/Sidebar.d.ts.map +1 -0
- package/lib/types/layout/SidebarContext.d.ts +9 -0
- package/lib/types/layout/SidebarContext.d.ts.map +1 -0
- package/lib/types/layout/TitleBar.d.ts +6 -0
- package/lib/types/layout/TitleBar.d.ts.map +1 -0
- package/lib/types/layout/index.d.ts +7 -0
- package/lib/types/layout/index.d.ts.map +1 -0
- package/lib/types/router/FixLinks.d.ts +7 -0
- package/lib/types/router/FixLinks.d.ts.map +1 -0
- package/lib/types/router/HistoryNavigator.d.ts +59 -0
- package/lib/types/router/HistoryNavigator.d.ts.map +1 -0
- package/lib/types/router/Nav.d.ts +30 -0
- package/lib/types/router/Nav.d.ts.map +1 -0
- package/lib/types/router/NestedNavigationContext.d.ts +9 -0
- package/lib/types/router/NestedNavigationContext.d.ts.map +1 -0
- package/lib/types/router/NestedRouterProvider.d.ts +14 -0
- package/lib/types/router/NestedRouterProvider.d.ts.map +1 -0
- package/lib/types/router/PathMatcher.d.ts +36 -0
- package/lib/types/router/PathMatcher.d.ts.map +1 -0
- package/lib/types/router/PathWithParams.d.ts +9 -0
- package/lib/types/router/PathWithParams.d.ts.map +1 -0
- package/lib/types/router/Route404.d.ts +4 -0
- package/lib/types/router/Route404.d.ts.map +1 -0
- package/lib/types/router/RouteComponent.d.ts +6 -0
- package/lib/types/router/RouteComponent.d.ts.map +1 -0
- package/lib/types/router/Router.d.ts +74 -0
- package/lib/types/router/Router.d.ts.map +1 -0
- package/lib/types/router/RouterProvider.d.ts +15 -0
- package/lib/types/router/RouterProvider.d.ts.map +1 -0
- package/lib/types/router/index.d.ts +11 -0
- package/lib/types/router/index.d.ts.map +1 -0
- package/lib/types/router/path.d.ts +8 -0
- package/lib/types/router/path.d.ts.map +1 -0
- package/lib/types/session/TypeRegistry.d.ts +10 -0
- package/lib/types/session/TypeRegistry.d.ts.map +1 -0
- package/lib/types/session/UserSession.d.ts +40 -0
- package/lib/types/session/UserSession.d.ts.map +1 -0
- package/lib/types/session/UserSessionProvider.d.ts +7 -0
- package/lib/types/session/UserSessionProvider.d.ts.map +1 -0
- package/lib/types/session/auth/composable.d.ts +26 -0
- package/lib/types/session/auth/composable.d.ts.map +1 -0
- package/lib/types/session/auth/firebase.d.ts +10 -0
- package/lib/types/session/auth/firebase.d.ts.map +1 -0
- package/lib/types/session/auth/useAuthState.d.ts +10 -0
- package/lib/types/session/auth/useAuthState.d.ts.map +1 -0
- package/lib/types/session/auth/useCurrentTenant.d.ts +15 -0
- package/lib/types/session/auth/useCurrentTenant.d.ts.map +1 -0
- package/lib/types/session/constants.d.ts +3 -0
- package/lib/types/session/constants.d.ts.map +1 -0
- package/lib/types/session/index.d.ts +9 -0
- package/lib/types/session/index.d.ts.map +1 -0
- package/lib/types/session/useUXTracking.d.ts +6 -0
- package/lib/types/session/useUXTracking.d.ts.map +1 -0
- package/lib/types/shell/SplashScreen.d.ts +7 -0
- package/lib/types/shell/SplashScreen.d.ts.map +1 -0
- package/lib/types/shell/VertesiaShell.d.ts +10 -0
- package/lib/types/shell/VertesiaShell.d.ts.map +1 -0
- package/lib/types/shell/apps/AppInstallationProvider.d.ts +12 -0
- package/lib/types/shell/apps/AppInstallationProvider.d.ts.map +1 -0
- package/lib/types/shell/apps/AppProjectSelector.d.ts +12 -0
- package/lib/types/shell/apps/AppProjectSelector.d.ts.map +1 -0
- package/lib/types/shell/apps/StandaloneApp.d.ts +23 -0
- package/lib/types/shell/apps/StandaloneApp.d.ts.map +1 -0
- package/lib/types/shell/apps/index.d.ts +4 -0
- package/lib/types/shell/apps/index.d.ts.map +1 -0
- package/lib/types/shell/index.d.ts +8 -0
- package/lib/types/shell/index.d.ts.map +1 -0
- package/lib/types/shell/login/EnterpriseSigninButton.d.ts +6 -0
- package/lib/types/shell/login/EnterpriseSigninButton.d.ts.map +1 -0
- package/lib/types/shell/login/GitHubSignInButton.d.ts +6 -0
- package/lib/types/shell/login/GitHubSignInButton.d.ts.map +1 -0
- package/lib/types/shell/login/GoogleSignInButton.d.ts +6 -0
- package/lib/types/shell/login/GoogleSignInButton.d.ts.map +1 -0
- package/lib/types/shell/login/InviteAcceptModal.d.ts +2 -0
- package/lib/types/shell/login/InviteAcceptModal.d.ts.map +1 -0
- package/lib/types/shell/login/MicrosoftSigninButton.d.ts +6 -0
- package/lib/types/shell/login/MicrosoftSigninButton.d.ts.map +1 -0
- package/lib/types/shell/login/PreviewIcon.d.ts +6 -0
- package/lib/types/shell/login/PreviewIcon.d.ts.map +1 -0
- package/lib/types/shell/login/SignInModal.d.ts +7 -0
- package/lib/types/shell/login/SignInModal.d.ts.map +1 -0
- package/lib/types/shell/login/SigninScreen.d.ts +9 -0
- package/lib/types/shell/login/SigninScreen.d.ts.map +1 -0
- package/lib/types/shell/login/SignupForm.d.ts +8 -0
- package/lib/types/shell/login/SignupForm.d.ts.map +1 -0
- package/lib/types/shell/login/TerminalLogin.d.ts +2 -0
- package/lib/types/shell/login/TerminalLogin.d.ts.map +1 -0
- package/lib/types/shell/login/UserInfo.d.ts +6 -0
- package/lib/types/shell/login/UserInfo.d.ts.map +1 -0
- package/lib/types/shell/login/UserSessionMenu.d.ts +9 -0
- package/lib/types/shell/login/UserSessionMenu.d.ts.map +1 -0
- package/lib/types/shell/utils.d.ts +2 -0
- package/lib/types/shell/utils.d.ts.map +1 -0
- package/lib/types/widgets/Progress.d.ts +6 -0
- package/lib/types/widgets/Progress.d.ts.map +1 -0
- package/lib/types/widgets/SvgIcon.d.ts +7 -0
- package/lib/types/widgets/SvgIcon.d.ts.map +1 -0
- package/lib/types/widgets/form/Form.d.ts +22 -0
- package/lib/types/widgets/form/Form.d.ts.map +1 -0
- package/lib/types/widgets/form/FormContext.d.ts +20 -0
- package/lib/types/widgets/form/FormContext.d.ts.map +1 -0
- package/lib/types/widgets/form/ManagedObject.d.ts +82 -0
- package/lib/types/widgets/form/ManagedObject.d.ts.map +1 -0
- package/lib/types/widgets/form/fields.d.ts +16 -0
- package/lib/types/widgets/form/fields.d.ts.map +1 -0
- package/lib/types/widgets/form/index.d.ts +7 -0
- package/lib/types/widgets/form/index.d.ts.map +1 -0
- package/lib/types/widgets/form/inputs.d.ts +8 -0
- package/lib/types/widgets/form/inputs.d.ts.map +1 -0
- package/lib/types/widgets/form/schema.d.ts +47 -0
- package/lib/types/widgets/form/schema.d.ts.map +1 -0
- package/lib/types/widgets/index.d.ts +12 -0
- package/lib/types/widgets/index.d.ts.map +1 -0
- package/lib/types/widgets/json-view/JSONCode.d.ts +5 -0
- package/lib/types/widgets/json-view/JSONCode.d.ts.map +1 -0
- package/lib/types/widgets/json-view/JSONDisplay.d.ts +8 -0
- package/lib/types/widgets/json-view/JSONDisplay.d.ts.map +1 -0
- package/lib/types/widgets/json-view/JSONView.d.ts +7 -0
- package/lib/types/widgets/json-view/JSONView.d.ts.map +1 -0
- package/lib/types/widgets/json-view/index.d.ts +5 -0
- package/lib/types/widgets/json-view/index.d.ts.map +1 -0
- package/lib/types/widgets/json-view/types.d.ts +8 -0
- package/lib/types/widgets/json-view/types.d.ts.map +1 -0
- package/lib/types/widgets/markdown/MarkdownRenderer.d.ts +13 -0
- package/lib/types/widgets/markdown/MarkdownRenderer.d.ts.map +1 -0
- package/lib/types/widgets/markdown/index.d.ts +2 -0
- package/lib/types/widgets/markdown/index.d.ts.map +1 -0
- package/lib/types/widgets/monacoEditor/MonacoEditor.d.ts +39 -0
- package/lib/types/widgets/monacoEditor/MonacoEditor.d.ts.map +1 -0
- package/lib/types/widgets/monacoEditor/index.d.ts +3 -0
- package/lib/types/widgets/monacoEditor/index.d.ts.map +1 -0
- package/lib/types/widgets/popover/Popover.d.ts +38 -0
- package/lib/types/widgets/popover/Popover.d.ts.map +1 -0
- package/lib/types/widgets/popover/context.d.ts +8 -0
- package/lib/types/widgets/popover/context.d.ts.map +1 -0
- package/lib/types/widgets/popover/index.d.ts +3 -0
- package/lib/types/widgets/popover/index.d.ts.map +1 -0
- package/lib/types/widgets/popover/slots.d.ts +5 -0
- package/lib/types/widgets/popover/slots.d.ts.map +1 -0
- package/lib/types/widgets/properties/PropertiesView.d.ts +11 -0
- package/lib/types/widgets/properties/PropertiesView.d.ts.map +1 -0
- package/lib/types/widgets/properties/index.d.ts +2 -0
- package/lib/types/widgets/properties/index.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/ManagedSchema.d.ts +75 -0
- package/lib/types/widgets/schema-editor/ManagedSchema.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/editor/Editable.d.ts +40 -0
- package/lib/types/widgets/schema-editor/editor/Editable.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/editor/EditableSchemaProperty.d.ts +8 -0
- package/lib/types/widgets/schema-editor/editor/EditableSchemaProperty.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts +5 -0
- package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/editor/PropertyViewer.d.ts +4 -0
- package/lib/types/widgets/schema-editor/editor/PropertyViewer.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/editor/SchemaContext.d.ts +3 -0
- package/lib/types/widgets/schema-editor/editor/SchemaContext.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts +9 -0
- package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/index.d.ts +7 -0
- package/lib/types/widgets/schema-editor/index.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/json-schema4-utils.d.ts +16 -0
- package/lib/types/widgets/schema-editor/json-schema4-utils.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/type-signature.d.ts +19 -0
- package/lib/types/widgets/schema-editor/type-signature.d.ts.map +1 -0
- package/lib/types/widgets/upload/DropZone.d.ts +41 -0
- package/lib/types/widgets/upload/DropZone.d.ts.map +1 -0
- package/lib/types/widgets/upload/UploadResultCategory.d.ts +26 -0
- package/lib/types/widgets/upload/UploadResultCategory.d.ts.map +1 -0
- package/lib/types/widgets/upload/UploadSummary.d.ts +38 -0
- package/lib/types/widgets/upload/UploadSummary.d.ts.map +1 -0
- package/lib/types/widgets/upload/index.d.ts +4 -0
- package/lib/types/widgets/upload/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/Attributes/index.d.ts +6 -0
- package/lib/types/widgets/xml-viewer/components/Attributes/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/CDataTag/index.d.ts +8 -0
- package/lib/types/widgets/xml-viewer/components/CDataTag/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/CollapseIcon/index.d.ts +5 -0
- package/lib/types/widgets/xml-viewer/components/CollapseIcon/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/CommentTag/index.d.ts +9 -0
- package/lib/types/widgets/xml-viewer/components/CommentTag/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/DeclarationTag/index.d.ts +8 -0
- package/lib/types/widgets/xml-viewer/components/DeclarationTag/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/Elements/index.d.ts +8 -0
- package/lib/types/widgets/xml-viewer/components/Elements/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/InvalidXml/index.d.ts +2 -0
- package/lib/types/widgets/xml-viewer/components/InvalidXml/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/Tag/index.d.ts +13 -0
- package/lib/types/widgets/xml-viewer/components/Tag/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/TextElement/index.d.ts +8 -0
- package/lib/types/widgets/xml-viewer/components/TextElement/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/XMLViewer.d.ts +3 -0
- package/lib/types/widgets/xml-viewer/components/XMLViewer.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/types.d.ts +104 -0
- package/lib/types/widgets/xml-viewer/components/types.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/constants/index.d.ts +27 -0
- package/lib/types/widgets/xml-viewer/constants/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/context/xml-viewer-context.d.ts +4 -0
- package/lib/types/widgets/xml-viewer/context/xml-viewer-context.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/helpers/index.d.ts +13 -0
- package/lib/types/widgets/xml-viewer/helpers/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/hooks/useCollapsible.d.ts +15 -0
- package/lib/types/widgets/xml-viewer/hooks/useCollapsible.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/hooks/useXMLViewer.d.ts +10 -0
- package/lib/types/widgets/xml-viewer/hooks/useXMLViewer.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/index.d.ts +3 -0
- package/lib/types/widgets/xml-viewer/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/types/index.d.ts +16 -0
- package/lib/types/widgets/xml-viewer/types/index.d.ts.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-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-shell.js +2 -0
- package/lib/vertesia-ui-shell.js.map +1 -0
- package/lib/vertesia-ui-widgets.js +2 -0
- package/lib/vertesia-ui-widgets.js.map +1 -0
- package/package.json +4 -4
- package/src/features/store/collections/BrowseCollectionView.tsx +0 -3
- package/src/features/store/objects/DocumentSearchResults.tsx +0 -4
- package/src/features/store/objects/ExportPropertiesModal.tsx +9 -7
- package/src/features/store/objects/components/VectorSearchWidget.tsx +2 -2
- package/src/features/store/objects/search/DocumentSearchContext.ts +1 -2
- package/src/features/store/objects/selection/SelectionActions.tsx +0 -4
- package/src/features/store/objects/selection/actions/ChangeTypeAction.tsx +2 -6
- package/src/features/store/objects/selection/actions/ExportPropertiesAction.tsx +1 -3
- package/src/features/store/types/SelectContentTypeModal.tsx +17 -30
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vertesia-ui-core.js","sources":["esm/core/components/Avatar.js","esm/core/components/Center.js","esm/core/components/popup/position.js","esm/core/components/popup/utils.js","esm/core/components/popup/PopupController.js","esm/core/components/popup/Popup.js","esm/core/components/ComboBox.js","esm/core/components/Divider.js","esm/core/components/Dropdown.js","esm/core/components/DropdownList.js","esm/core/components/EmptyCollection.js","esm/core/components/FileUpload.js","esm/core/components/libs/utils.js","esm/core/hooks/PortalContainerProvider.js","esm/core/components/shadcn/tooltip.js","esm/core/components/FormItem.js","esm/core/components/shadcn/badge.js","esm/core/components/shadcn/input.js","esm/core/components/InputList.js","esm/core/components/Link.js","esm/core/components/MenuList.js","esm/core/components/styles.js","esm/core/components/NumberInput.js","esm/core/components/shadcn/button.js","esm/core/components/Overlay.js","esm/core/components/Portal.js","esm/core/components/RadioGroup.js","esm/core/components/shadcn/theme/ThemeProvider.js","esm/core/components/shadcn/theme/ThemeSwitcher.js","esm/core/components/shadcn/card.js","esm/core/components/libs/visuallyHidden.js","esm/core/components/shadcn/modal/dialog.js","esm/core/components/shadcn/modal/ConfirmModal.js","esm/core/components/toast/ToastContext.js","esm/core/components/toast/NotificationPanel.js","esm/core/components/toast/ToastProvider.js","esm/core/components/shadcn/modal/DeleteModal.js","esm/core/components/shadcn/separator.js","esm/core/components/shadcn/popover.js","esm/core/components/shadcn/command.js","esm/core/components/shadcn/selectBox.js","esm/core/components/shadcn/tabs.js","esm/core/components/shadcn/label.js","esm/core/components/shadcn/breadcrumb.js","esm/core/components/shadcn/filters/animateChangeInHeight.js","esm/core/components/shadcn/checkbox.js","esm/core/components/shadcn/filters/DynamicLabel.js","esm/core/components/shadcn/filters/comboBox/SelectCombobox.js","esm/core/components/shadcn/filters/filter-styles.js","esm/core/components/shadcn/filters/comboBox/DateCombobox.js","esm/core/components/shadcn/filters/comboBox/TextCombobox.js","esm/core/components/shadcn/filters/comboBox/StringListCombobox.js","esm/core/components/shadcn/filters/filters.js","esm/core/components/shadcn/filters/filter/TextFilter.js","esm/core/components/shadcn/filters/filter/dateFilter.js","esm/core/components/shadcn/filters/filter/SelectFilter.js","esm/core/components/shadcn/filters/filter/StringListFilter.js","esm/core/components/shadcn/filters/filterBar.js","esm/core/components/shadcn/filters/types.js","esm/core/components/shadcn/heading.js","esm/core/components/shadcn/text.js","esm/core/components/shadcn/resizeable.js","esm/core/components/shadcn/textarea.js","esm/core/components/shadcn/MessageBox.js","esm/core/components/shadcn/Panel.js","esm/core/components/SelectList.js","esm/core/components/SelectStack.js","esm/core/components/SidePanel.js","esm/core/components/Spinner.js","esm/core/components/Switch.js","esm/core/components/table/index.js","esm/core/components/TagsInput.js","esm/core/hooks/CompositeState.js","esm/core/hooks/SharedState.js","esm/core/hooks/useClickOutside.js","esm/core/hooks/useCopyToClipboard.js","esm/core/hooks/useDarkMode.js","esm/core/hooks/useDebounce.js","esm/core/hooks/useEventSource.js","esm/core/hooks/useFetch.js","esm/core/hooks/useFlag.js","esm/core/hooks/useIntersectionObserver.js","esm/core/hooks/useIsFistRendering.js","esm/core/hooks/useSafeLayoutEffect.js","esm/core/hooks/useScrollableSearch.js","esm/core/hooks/useSharedValue.js","esm/core/utils/cn.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getRealSize(size) {\n switch (size) {\n case 'xs': return 'size-4';\n case 'sm': return 'size-6';\n case 'md': return 'size-8';\n case 'lg': return 'size-10';\n case 'xl': return 'size-12';\n case '2xl': return 'size-14';\n default: throw new Error('Unexpected size: ' + size);\n }\n}\nexport function Avatar({ size, src, name, shape = \"circle\", color = 'bg-gray-500', className }) {\n const rounded = shape === 'circle' ? 'rounded-full' : 'rounded-md';\n const sizeClass = getRealSize(size || 'md');\n if (src) {\n return (_jsx(\"img\", { className: `inline-block ${sizeClass} ${rounded} ${color} ${className}`, src: src, alt: name || src, title: name }));\n }\n if (name) {\n const [first, second] = name.split(' ');\n let text = second ? `${first[0]}${second[0]}` : `${first[0]}${first[1]}`;\n return (_jsx(\"span\", { className: `inline-flex ${sizeClass} items-center justify-center ${rounded} ${color} ${className}`, title: name, children: _jsx(\"span\", { className: `${(size != 'xs') ? 'text-xs' : 'text-[0.6rem]'} font-medium leading-none text-white`, children: text }) }));\n }\n return (_jsx(\"span\", { className: `inline-block ${sizeClass} overflow-hidden ${rounded} ${color}`, children: _jsx(\"svg\", { className: \"h-full w-full text-gray-300\", fill: \"currentColor\", viewBox: \"0 0 24 24\", children: _jsx(\"path\", { d: \"M24 20.993V24H0v-2.996A14.977 14.977 0 0112.004 15c4.904 0 9.26 2.354 11.996 5.993zM16.002 8.999a4 4 0 11-8 0 4 4 0 018 0z\" }) }) }));\n}\nexport function SvgAvatar({ size, shape = \"circle\", color = 'bg-gray-500', className, children }) {\n const rounded = shape === 'circle' ? 'rounded-full' : 'rounded-md';\n const sizeClass = getRealSize(size || 'md');\n return (_jsx(\"span\", { className: `inline-block ${sizeClass} overflow-hidden ${rounded} ${color} ${className}`, children: children }));\n}\n//# sourceMappingURL=Avatar.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nexport function Center({ className, children }) {\n return (_jsx(\"div\", { className: clsx('flex items-center justify-center', className), children: children }));\n}\n//# sourceMappingURL=Center.js.map","function flipPos(position) {\n switch (position) {\n case \"top\": return \"bottom\";\n case \"bottom\": return \"top\";\n case \"left\": return \"right\";\n case \"right\": return \"left\";\n case \"ne\": return \"sw\";\n case \"nw\": return \"se\";\n case \"se\": return \"nw\";\n case \"sw\": return \"ne\";\n default: return position;\n }\n}\nfunction flipAlign(align) {\n switch (align) {\n case \"start\": return \"end\";\n case \"end\": return \"start\";\n default: return align;\n }\n}\nclass PositionResolver {\n /**\n * The computed left coordinate (i.e. x)\n */\n left;\n /**\n * The computed top coordinate (i.e. y)\n */\n top;\n /**\n * The computed width constraint. If undefined it means that the width is not constrained.\n */\n width;\n /**\n * The computed height constraint. If undefined it means that the height is not constrained.\n */\n height;\n /**\n * Alignment axis. The axis is computed from the position constraints.\n * If no axis is found - no alignment will be done\n */\n alignAxis;\n /**\n * A gap size between the anchor element and the target element.\n */\n gap;\n constructor(gap = 0) {\n this.gap = gap;\n }\n position(pos, anchorRect, elemRect) {\n switch (pos) {\n case \"top\": {\n this.top = anchorRect.top - elemRect.height - this.gap;\n this.alignAxis = 'x';\n break;\n }\n case \"bottom\": {\n this.top = anchorRect.bottom + this.gap;\n this.alignAxis = 'x';\n break;\n }\n case \"left\": {\n this.left = anchorRect.left - elemRect.width - this.gap;\n this.alignAxis = 'y';\n break;\n }\n case \"right\": {\n this.left = anchorRect.right + this.gap;\n this.alignAxis = 'y';\n break;\n }\n case \"ne\": {\n this.top = anchorRect.top - elemRect.height - this.gap;\n this.left = anchorRect.right + this.gap;\n break;\n }\n case \"nw\": {\n this.top = anchorRect.top - elemRect.height - this.gap;\n this.left = anchorRect.left - elemRect.width - this.gap;\n break;\n }\n case \"se\": {\n this.top = anchorRect.bottom + this.gap;\n this.left = anchorRect.right + this.gap;\n break;\n }\n case \"sw\": {\n this.top = anchorRect.bottom + this.gap;\n this.left = anchorRect.left - elemRect.width - this.gap;\n break;\n }\n }\n }\n align(align, anchorRect, elemRect) {\n if (!this.alignAxis)\n return; // no alignment axis\n switch (align) {\n case 'start': {\n if (this.alignAxis === 'x') {\n this.left = anchorRect.left;\n }\n else {\n this.top = anchorRect.top;\n }\n break;\n }\n case 'end': {\n if (this.alignAxis === 'x') {\n this.left = anchorRect.right - elemRect.width;\n }\n else {\n this.top = anchorRect.bottom - elemRect.height;\n }\n break;\n }\n case 'center': {\n // centering depend on the final value of the width / height\n if (this.alignAxis === 'x') {\n this.left = anchorRect.left + anchorRect.width / 2 - elemRect.width / 2;\n }\n else {\n this.top = anchorRect.top + anchorRect.height / 2 - elemRect.height / 2;\n }\n break;\n }\n case 'fill': {\n if (this.alignAxis === 'x') {\n this.left = anchorRect.left;\n this.width = anchorRect.right - anchorRect.left;\n }\n else {\n this.top = anchorRect.top;\n this.height = anchorRect.bottom - anchorRect.top;\n }\n break;\n }\n }\n }\n computePosition(constraints, elemRect, anchorRect) {\n this.position(constraints.position, anchorRect, elemRect);\n constraints.align && this.align(constraints.align, anchorRect, elemRect);\n if (!this.left && !this.top) {\n throw new Error(\"Invalid position. Cannot compute x,y coordinates\");\n }\n const constrainWidth = this.width != null;\n const constrainHeight = this.height != null;\n const width = constrainWidth ? this.width : elemRect.width;\n const height = constrainHeight ? this.height : elemRect.height;\n return {\n rect: new DOMRect(this.left, this.top, width, height),\n constrainWidth,\n constrainHeight,\n position: constraints.position,\n align: constraints.align\n };\n }\n flipAxis(constraints, axis) {\n if (this.alignAxis === axis) { // flip alignment\n if (constraints.align) {\n const newAlign = flipAlign(constraints.align);\n if (newAlign !== constraints.align) {\n return { ...constraints, align: newAlign };\n }\n }\n }\n else { // flip positioning\n const newPos = flipPos(constraints.position);\n if (newPos !== constraints.position) {\n return { ...constraints, position: newPos };\n }\n }\n return null; // nothing to do\n }\n}\nfunction isElementVisible(elemRect, clientRect) {\n return elemRect.left >= clientRect.left && elemRect.right <= clientRect.right\n &&\n elemRect.top >= clientRect.top && elemRect.bottom <= clientRect.bottom;\n}\nfunction isElementVisibleOnAxis(elemRect, clientRect, axis) {\n if (axis === 'x') {\n return elemRect.left >= clientRect.left && elemRect.right <= clientRect.right;\n }\n else {\n return elemRect.top >= clientRect.top && elemRect.bottom <= clientRect.bottom;\n }\n}\n/**\n * Compute the position by trying to adjust the constraints until the computed position fits into the client area.\n * Returns the best position that fits the constraints.\n * @param constraints\n * @param elemRect\n * @param anchorRect\n * @param clientRect\n * @returns null if the element cannot be positioned otherwise returns a position object\n */\nexport function computePosition(constraints, elemRect, anchorRect, clientRect) {\n const resolver = new PositionResolver(constraints.gap);\n let computedPos = resolver.computePosition(constraints, elemRect, anchorRect);\n const isVisibleOnXAxis = isElementVisibleOnAxis(computedPos.rect, clientRect, 'x');\n const isVisibleOnYAxis = isElementVisibleOnAxis(computedPos.rect, clientRect, 'y');\n if (isVisibleOnXAxis && isVisibleOnYAxis) {\n return computedPos; // the element is visible on both axis\n }\n let newConstraints = null;\n if (!isVisibleOnXAxis) {\n newConstraints = resolver.flipAxis(constraints, 'x');\n }\n if (!isVisibleOnYAxis) {\n newConstraints = resolver.flipAxis(newConstraints || constraints, 'y');\n }\n if (!newConstraints) {\n return null; // cannot find a better position\n }\n computedPos = new PositionResolver(resolver.gap).computePosition(newConstraints, elemRect, anchorRect);\n if (isElementVisible(computedPos.rect, clientRect)) {\n return computedPos;\n }\n return null; // cannot find a better position\n}\n//# sourceMappingURL=position.js.map","/**\n * Compute the intersection of the two given rects.\n * @param rect1\n * @param rect2\n * @returns\n */\nexport function intersectRects(rect1, rect2) {\n const x1 = Math.max(rect1.left, rect2.left);\n const y1 = Math.max(rect1.top, rect2.top);\n const x2 = Math.min(rect1.right, rect2.right);\n const y2 = Math.min(rect1.bottom, rect2.bottom);\n if (x2 <= x1 || y2 <= y1) {\n return null; // No intersection\n }\n return new DOMRect(x1, y1, x2 - x1, y2 - y1);\n}\n/**\n * Compute the visible rectangle of the scrollable parents.\n * @param scrollableParents\n * @returns\n */\nexport function computeVisibleClientRect(scrollableParents) {\n if (scrollableParents.length === 0)\n return null;\n // Initialize the rect as the bounding rect of the first scrollable parent\n let rect = scrollableParents[0].getBoundingClientRect();\n // Iterate over the remaining scrollable parents to compute the intersection\n for (let i = 1, l = scrollableParents.length; i < l; i++) {\n const parentRect = scrollableParents[i].getBoundingClientRect();\n rect = intersectRects(parentRect, rect);\n // If there is no intersection, exit early\n if (!rect) {\n return null;\n }\n }\n return rect;\n}\n/**\n * Tests whether the given element is scrollable in any direction.\n * @param element\n * @returns\n */\nexport function isScrollable(element) {\n const hasScrollY = element.scrollHeight > element.clientHeight;\n const hasScrollX = element.scrollWidth > element.clientWidth;\n if (hasScrollY || hasScrollX) {\n const style = getComputedStyle(element);\n if ((hasScrollY && style.overflowY !== 'visible') || (hasScrollX && style.overflowX !== 'visible')) {\n return true;\n }\n }\n return false;\n}\n/**\n * Get the list of scrollable parents of the given element. The list always include the root parent at the end.\n * The root parent is either the document.documentElement or the given root element.\n * To iterate the list from top to down you need to iterate from the end to the start of the list,\n * since the root parent is always the last element and the nearest scrollable parent is the first element.\n * @param element\n * @param root\n * @returns\n */\nexport function getScrollableParents(element, root = document.documentElement) {\n const parents = [];\n let parent = element.parentElement;\n while (parent && parent !== root) {\n isScrollable(parent) && parents.push(parent);\n parent = parent.parentElement;\n }\n // Always push the root element\n parents.push(root);\n return parents;\n}\n//# sourceMappingURL=utils.js.map","import { computePosition } from \"./position\";\nimport { computeVisibleClientRect, getScrollableParents } from \"./utils\";\nexport class PopupController {\n options;\n root;\n scrollableParents;\n visibleClientRect;\n context;\n constructor(options) {\n this.options = options;\n this.root = options.root || document.documentElement;\n this.scrollableParents = getScrollableParents(this.anchor, this.root);\n this.visibleClientRect = computeVisibleClientRect(this.scrollableParents);\n }\n get anchor() {\n return this.options.anchor;\n }\n registerListeners(element) {\n const parents = this.scrollableParents;\n const updateHandler = () => {\n this.update();\n };\n // add a window resize listener\n window.addEventListener('resize', updateHandler);\n //TODO do we add scroll listeners to the window?\n // add scroll listeners to all scrollable parents\n for (const parent of parents) {\n parent.addEventListener('scroll', updateHandler);\n }\n let closeOnClick;\n if (this.options.closeOnClick) {\n closeOnClick = (ev) => {\n if (!element.contains(ev.target)) {\n this.tryClose();\n }\n };\n // register in the next event loop cycle since the current one\n // is may be triggered by a click event\n window.setTimeout(function () {\n closeOnClick && document.addEventListener('click', closeOnClick);\n }, 0);\n }\n let closeOnEsc;\n if (this.options.closeOnEsc) {\n closeOnEsc = (ev) => {\n if (ev.key === 'Escape') {\n this.tryClose();\n }\n };\n window.setTimeout(function () {\n closeOnEsc && document.addEventListener('keydown', closeOnEsc);\n }, 0);\n }\n const blockPageScroll = this.options.blockPageScroll;\n if (blockPageScroll) {\n document.body.style.overflow = \"hidden\";\n document.body.style.height = \"100%\";\n }\n return () => {\n window.removeEventListener('resize', updateHandler);\n for (const parent of parents) {\n parent.removeEventListener('scroll', updateHandler);\n }\n closeOnClick && document.removeEventListener('click', closeOnClick);\n closeOnEsc && document.removeEventListener('keydown', closeOnEsc);\n if (blockPageScroll) {\n document.body.style.overflow = \"\";\n document.body.style.height = \"\";\n }\n };\n }\n open(element, constraints) {\n if (this.context) {\n throw new Error(\"The popup controller is already bound to an element\");\n }\n this.tryOpen(element, constraints);\n }\n tryOpen(element, constraints) {\n if (this.context) {\n return; // do nothing if the popup is already open\n }\n this.context = {\n element,\n constraints,\n cleanup: this.registerListeners(element)\n };\n element.style.display = \"\";\n element.style.visibility = \"hidden\";\n // update the popup position\n this.update();\n this.options.onOpen && this.options.onOpen(this);\n }\n close() {\n if (!this.context) {\n throw new Error(\"The popup controller is not bound to an element\");\n }\n this.tryClose();\n }\n tryClose() {\n if (!this.context) {\n return; // do nothing if the popup is not open\n }\n this.options.onClose && this.options.onClose(this);\n this.context.cleanup();\n //TODO\n this.context.element.style.display = \"none\";\n this.context = undefined;\n }\n get isOpen() {\n return !!this.context;\n }\n update() {\n if (!this.context)\n return; // do nothing if the popup is not open\n // update the position of the popup\n const element = this.context.element;\n const constraints = this.context.constraints;\n const elemRect = element.getBoundingClientRect();\n const anchorRect = this.anchor.getBoundingClientRect();\n const clientRect = this.visibleClientRect;\n if (!clientRect) {\n // the popup is not visible\n return;\n }\n const position = computePosition(constraints, elemRect, anchorRect, clientRect);\n this.context.position = position || undefined;\n if (position) {\n if (position.constrainHeight) {\n element.style.height = position.rect.height + 'px';\n }\n if (position.constrainWidth) {\n element.style.width = position.rect.width + 'px';\n }\n element.style.left = position.rect.left + 'px';\n element.style.top = position.rect.top + 'px';\n element.style.visibility = \"visible\";\n }\n }\n createPopupElement() {\n const popup = document.createElement('div');\n popup.style.margin = \"0\";\n popup.style.padding = \"0\";\n popup.style.border = \"none\";\n popup.style.background = \"transparent\";\n popup.className = \"composable-Popup\";\n return popup;\n }\n}\n//# sourceMappingURL=PopupController.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createContext, useContext, useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { PopupController } from \"./PopupController\";\nconst PopupContext = createContext(undefined);\nexport function usePopupController() {\n const ctrl = useContext(PopupContext);\n if (!ctrl)\n throw new Error(\"usePopupController must be used inside a Popup component\");\n return ctrl;\n}\nexport function DOMPopup({ ctrlRef, id, constraints, isOpen, children, className, onClose, zIndex, position, ...props }) {\n const popupRef = useRef(null);\n const [ctrl, setCtrl] = useState();\n useEffect(() => {\n if (!props.anchor)\n throw new Error(\"Anchor element is required\");\n const _ctrl = new PopupController({\n ...props,\n onClose\n });\n setCtrl(_ctrl);\n return () => {\n _ctrl.tryClose();\n };\n }, []);\n useEffect(() => {\n if (ctrlRef) {\n ctrlRef.current = ctrl;\n }\n }, [ctrl]);\n // effect to open / close the popup\n useEffect(() => {\n if (ctrl && popupRef.current) {\n if (ctrl.isOpen !== isOpen) {\n if (isOpen) {\n ctrl.open(popupRef.current, constraints);\n }\n else {\n ctrl.close();\n }\n }\n }\n else if (ctrl?.isOpen && !isOpen) {\n // close the popup - happens when isOpen becomes false but the ctrl is still open\n // and the popupRef was destroyed by the isOpen && below\n ctrl.close();\n }\n }, [isOpen, ctrl, popupRef.current]);\n return (_jsx(PopupContext.Provider, { value: ctrl, children: isOpen && createPortal(_jsx(\"div\", { id: id, style: {\n //display: isOpen ? 'block' : 'none',\n visibility: 'hidden',\n position: position || 'absolute',\n zIndex: zIndex || 100,\n }, ref: popupRef, className: className, children: children }), document.body) }));\n}\nexport function Popup({ anchor, root, children, ...others }) {\n return anchor.current && (!root || root.current) ? (_jsx(DOMPopup, { anchor: anchor.current, root: root?.current || undefined, ...others, children: children })) : null;\n}\n//# sourceMappingURL=Popup.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\nimport clsx from 'clsx';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Popup } from \"./popup/index\";\nconst INPUT_UNSTYLED = \"block m-0 p-0 border-0 focus:outline-none focus:ring-0 bg-transparent\";\nconst INPUT_NO_PADDING = \"block sm:text-sm sm:leading-6 rounded-md border-0 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-slate-600 dark:text-slate-50 dark:bg-slate-800 placeholder:text-gray-400 dark:placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 dark:focus:ring-indigo-800\";\nconst INPUT = INPUT_NO_PADDING + \" py-1.5\";\nconst COMBOBOX_POPUP = \"combobox-popup\";\nfunction genComboboxPopupId() {\n return `combobox-popup-${Math.floor(Math.random() * 1000000)}`;\n}\nexport class OptionAdapter {\n filter(items, text) {\n const lcText = text.toLowerCase();\n return items.filter((item) => this.valueOf(item).toLowerCase().includes(lcText));\n }\n renderOption(item) {\n return this.valueOf(item);\n }\n findById(items, id) {\n return items.find(item => this.idOf(item) === id);\n }\n // override to support creating new items\n createItem(_value) {\n return null; // default is no new item\n }\n}\nexport class StringOptionAdapter extends OptionAdapter {\n valueOf(item) {\n return String(item);\n }\n idOf(item) {\n return String(item);\n }\n static instance = new StringOptionAdapter();\n}\nexport class StringOptionAdapterWithCreate extends StringOptionAdapter {\n createItem(value) {\n return value;\n }\n static instance = new StringOptionAdapterWithCreate();\n}\nexport function getDefaultComboBoxLayout(fullWidth, unstyledInput) {\n return {\n buttonRight: 4,\n buttonWidth: 24,\n maxMenuHeight: 240,\n menuClass: \"w-72 bg-white mt-1 shadow-md border border-gray-200 overflow-auto p-0 z-10\",\n inputClass: clsx(unstyledInput ? INPUT_UNSTYLED : INPUT, fullWidth ? \"w-full\" : \"!w-auto\"),\n optionClass: \"py-2 px-3 shadow-sm flex flex-col [&.option-selected]:font-semibold [&.option-highlighted]:bg-blue-300\",\n Input: (ComboInput),\n Menu: (ComboMenu),\n Toggle: (ComboToggle),\n };\n}\nexport function ComboBox({ menuAlign = \"fill\", menuGap, focusOnMount, onSelect, value, zIndex, unstyledInput, fullWidth, api, layout: layoutOpts, adapter, items, placeholder }) {\n const [popupId] = useState(genComboboxPopupId());\n const popupCtrl = useRef(undefined);\n const inputRef = useRef(null);\n const layout = layoutOpts ? Object.assign(getDefaultComboBoxLayout(fullWidth, unstyledInput), layoutOpts) : getDefaultComboBoxLayout(fullWidth, unstyledInput);\n const inputBoxRef = React.useRef(null);\n const ctrl = useComboboxCtrl({\n adapter,\n items,\n value,\n popupId\n });\n useEffect(() => {\n if (inputRef.current) {\n focusOnMount && inputRef.current.focus();\n }\n }, [inputRef.current]);\n // the onSelect callback may change so we need to refresh it.\n useEffect(() => {\n ctrl.onSelect = onSelect;\n ctrl.popupCtrl = popupCtrl.current;\n }, [onSelect, popupCtrl.current]);\n useEffect(() => {\n if (api && ctrl && inputRef.current) {\n api.current = {\n open: () => ctrl.openMenu(),\n close: () => ctrl.closeMenu(),\n toggle: () => ctrl.toggleMenu(),\n setInputValue: (value) => ctrl.inputText = value,\n inputValue: ctrl.inputText || '',\n selectedItem: ctrl.selectedItem,\n focus: () => inputRef.current?.focus()\n };\n return () => {\n api.current = null;\n };\n }\n }, [api, ctrl, inputRef.current]);\n const showMenu = ctrl.isMenuOpen && ctrl.filteredItems.length > 0;\n return (_jsxs(_Fragment, { children: [_jsx(layout.Input, { boxRef: inputBoxRef, inputRef: inputRef, ctrl: ctrl, layout: layout, placeholder: placeholder }), _jsx(Popup, { id: popupId, ctrlRef: popupCtrl, className: COMBOBOX_POPUP, closeOnClick: true, closeOnEsc: true, onClose: () => ctrl.closeMenu(), isOpen: showMenu, anchor: inputBoxRef, zIndex: zIndex, constraints: {\n position: \"bottom\",\n align: menuAlign,\n gap: menuGap != null ? menuGap : 4\n }, children: _jsx(layout.Menu, { fillWidth: menuAlign === \"fill\", items: ctrl.filteredItems, ctrl: ctrl, layout: layout, adapter: adapter }) })] }));\n}\nfunction ComboInput({ inputRef, placeholder, boxRef, ctrl, layout }) {\n const buttonWidth = layout.buttonWidth;\n const style = buttonWidth > 0 ? { paddingRight: `${buttonWidth}px` } : undefined;\n const Toggle = layout.Toggle;\n return (_jsxs(\"div\", { className: \"relative\", ref: boxRef, children: [_jsx(\"input\", { ref: inputRef, placeholder: placeholder, ...ctrl.getInputProps(), style: style, className: layout.inputClass }), Toggle &&\n _jsx(\"button\", { style: {\n top: 0, bottom: 0, right: `${layout.buttonRight}px`, width: `${buttonWidth}px`,\n position: \"absolute\",\n border: \"none\",\n padding: 0,\n margin: 0,\n backgroundColor: \"transparent\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n }, ...ctrl.getToggleButtonProps(), children: _jsx(Toggle, { ctrl: ctrl, layout: layout }) })] }));\n}\nfunction ComboToggle({ ctrl }) {\n return ctrl.isMenuOpen ? _jsx(ChevronUpIcon, { className: \"w-4 h-4\" }) : _jsx(ChevronDownIcon, { className: \"w-4 h-4\" });\n}\nfunction ComboMenu({ fillWidth, items, layout, ctrl, adapter }) {\n const { highlightedIndex, selectedItem } = ctrl;\n return (_jsx(\"ul\", { style: { width: fillWidth ? \"100%\" : undefined, maxHeight: layout.maxMenuHeight ? `${layout.maxMenuHeight}px` : '240px' }, className: layout.menuClass, ...ctrl.getMenuProps(), children: items.map((item, index) => (_jsx(\"li\", { \"data-index\": index, className: clsx(layout.optionClass, highlightedIndex === index && \"option-highlighted\", selectedItem === item && \"option-selected\"), ...ctrl.getItemProps(item, index), children: adapter.renderOption(item) }, adapter.idOf(item)))) }));\n}\nexport function useComboboxCtrl(props) {\n const [ctrl, setCtrl] = useState(new ComboboxController(props));\n useEffect(() => {\n ctrl?.withState(setCtrl);\n }, []);\n return ctrl;\n}\nclass ComboboxController {\n popupId;\n items;\n adapter;\n onSelect;\n setState;\n _selectedItem = null;\n _filteredItems;\n _inputText = \"\";\n _highlightedIndex = null;\n _isMenuOpen = false;\n popupCtrl;\n constructor({ adapter, items, value, popupId }) {\n this.adapter = adapter;\n this.items = items;\n this.popupId = popupId;\n if (typeof value === \"string\") {\n this._inputText = value;\n }\n else if (value) {\n this._selectedItem = adapter.findById(items, adapter.idOf(value)) || null;\n if (this._selectedItem) {\n this._inputText = adapter.valueOf(value);\n }\n }\n if (this._inputText) {\n this._filteredItems = this.adapter.filter(this.items, this._inputText);\n }\n else {\n this._filteredItems = this.items;\n }\n }\n withState(setState) {\n this.setState = setState;\n return this;\n }\n clone() {\n const clone = new ComboboxController({ adapter: this.adapter, items: this.items, popupId: this.popupId });\n clone.setState = this.setState;\n clone.onSelect = this.onSelect;\n clone._inputText = this._inputText;\n clone._highlightedIndex = this._highlightedIndex;\n clone._selectedItem = this._selectedItem;\n clone._isMenuOpen = this._isMenuOpen;\n clone._filteredItems = this._filteredItems;\n clone.popupCtrl = this.popupCtrl;\n return clone;\n }\n updateState() {\n this.setState?.(this.clone());\n }\n get filteredItems() {\n if (this._inputText) {\n return this.adapter.filter(this.items, this._inputText);\n }\n else {\n return this.items;\n }\n }\n get selectedItem() {\n return this._selectedItem;\n }\n set selectedItem(item) {\n this._selectedItem = item;\n this._inputText = item ? this.adapter.valueOf(item) : \"\";\n this._filteredItems = this._inputText ?\n this.adapter.filter(this.items, this._inputText)\n : this.items;\n this.updateState();\n this.onSelect?.(item);\n }\n get isMenuOpen() {\n return this._isMenuOpen;\n }\n set inputText(inputText) {\n this._inputText = inputText;\n if (inputText) {\n this._filteredItems = this.adapter.filter(this.items, inputText);\n }\n else {\n this._filteredItems = this.items;\n }\n this._highlightedIndex = null;\n this._selectedItem = null;\n this.updateState();\n // TODO -- experimental - it works but it's not perfect\n // we need to update if the popup is on top and the filtered items changed\n if (this.isMenuOpen && this.popupCtrl) {\n const popupCtrl = this.popupCtrl;\n const popupPosition = popupCtrl.context?.position?.position;\n if (popupPosition && popupPosition === \"top\") {\n window.setTimeout(() => {\n popupCtrl.update();\n }, 100);\n }\n }\n }\n get inputText() {\n return this._inputText;\n }\n set highlightedIndex(index) {\n this._highlightedIndex = index;\n this.updateState();\n }\n get highlightedIndex() {\n return this._highlightedIndex;\n }\n openMenu() {\n if (this._filteredItems.length > 0) {\n this._isMenuOpen = true;\n //this._highlightedIndex = 0;\n this.updateState();\n }\n else {\n // TODO nothing to show.\n // display a create value option?\n }\n }\n closeMenu(_item) {\n if (this._isMenuOpen) {\n this._highlightedIndex = null;\n this._isMenuOpen = false;\n this.updateState();\n }\n }\n toggleMenu() {\n if (this._isMenuOpen) {\n this.closeMenu();\n }\n else {\n this.openMenu();\n }\n }\n highlightIndex(index, navigateToTop = false) {\n this.highlightedIndex = index;\n const popup = document.getElementById(this.popupId);\n if (popup) {\n popup.querySelector(`li[data-index=\"${index}\"]`)?.scrollIntoView(navigateToTop);\n }\n }\n getMenuProps() {\n return {};\n }\n getToggleButtonProps() {\n return {\n onClick: () => {\n this._isMenuOpen = !this._isMenuOpen;\n this.updateState();\n }\n };\n }\n getItemProps(item, index) {\n return {\n \"aria-selected\": this._highlightedIndex === index,\n onClick: () => {\n this.selectedItem = item;\n this.closeMenu();\n },\n onMouseEnter: () => {\n if (this.highlightedIndex !== index) {\n this.highlightedIndex = index;\n }\n },\n onMouseLeave: () => {\n if (this.highlightedIndex === index) {\n this.highlightedIndex = null;\n }\n }\n };\n }\n getInputProps() {\n const items = this._filteredItems;\n return {\n onClick: () => {\n this.openMenu();\n },\n onChange: (ev) => {\n const value = ev.target.value;\n this.inputText = value;\n this.openMenu();\n },\n value: this.inputText,\n onKeyDown: (ev) => {\n const key = ev.key;\n if (key === \"Enter\") {\n if (this.highlightedIndex != null) {\n this.selectedItem = items[this.highlightedIndex || 0];\n }\n else {\n // create new value?\n if (this.inputText) {\n const item = this.adapter.createItem(this.inputText);\n if (item) {\n this.items.push(item);\n this.selectedItem = item;\n }\n }\n }\n this.closeMenu();\n }\n else if (key === \"ArrowDown\") {\n if (this.isMenuOpen) {\n this.highlightIndex(this.highlightedIndex === null ? 0 : incrModulo(this.highlightedIndex, items.length), false);\n }\n else {\n this.openMenu();\n }\n }\n else if (key === \"ArrowUp\") {\n if (this.isMenuOpen) {\n this.highlightIndex(this.highlightedIndex === null ? 0 : decrModulo(this.highlightedIndex, items.length), true);\n }\n }\n }\n };\n }\n}\nfunction incrModulo(value, max) {\n return (value + 1) % max;\n}\nfunction decrModulo(value, max) {\n return (value - 1 + max) % max;\n}\n//# sourceMappingURL=ComboBox.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nexport function Divider({ className }) {\n return (_jsx(\"hr\", { className: clsx(\"w-full h-0.5 border-t-0 bg-border\", className) }));\n}\n//# sourceMappingURL=Divider.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Menu, MenuButton, MenuItems, MenuItem as _MenuItem, Transition } from '@headlessui/react';\nimport clsx from 'clsx';\nimport { Fragment } from 'react';\nexport function Dropdown({ trigger, children }) {\n return (_jsxs(Menu, { as: \"div\", className: \"relative\", children: [_jsx(MenuButton, { as: \"span\", className: \"-m-1.5 flex items-center p-1.5\", children: trigger }), _jsx(Transition, { as: Fragment, enter: \"transition ease-out duration-100\", enterFrom: \"transform opacity-0 scale-95\", enterTo: \"transform opacity-100 scale-100\", leave: \"transition ease-in duration-75\", leaveFrom: \"transform opacity-100 scale-100\", leaveTo: \"transform opacity-0 scale-95\", children: _jsx(MenuItems, { className: \"absolute right-0 z-10 mt-2.5 w-48 origin-top-right rounded-md bg-white dark:bg-slate-900 dark:border-slate-800 dark:border py-2 shadow-lg ring-1 ring-gray-900/5 dark:ring-slate-200/5 focus:outline-hidden\", children: children }) })] }));\n}\nexport function MenuItem({ children, href = '#', onClick, closeOnClick = true, isDisabled = false }) {\n return (_jsx(_MenuItem, { disabled: isDisabled, children: ({ active, close }) => (_jsx(\"a\", { href: href, onClick: (e) => {\n e.preventDefault();\n e.stopPropagation();\n onClick && onClick(e);\n closeOnClick && close();\n }, className: clsx(active ? 'bg-gray-50 dark:bg-slate-800' : '', isDisabled ? 'opacity-50 cursor-not-allowed' : '', 'block px-3 py-1 text-sm leading-6 text-gray-900 dark:text-gray-200'), children: children })) }));\n}\n//# sourceMappingURL=Dropdown.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Listbox, ListboxButton, ListboxOption, ListboxOptions, Transition } from \"@headlessui/react\";\nimport { Check, ChevronDown } from \"lucide-react\";\nimport clsx from \"clsx\";\nimport { Fragment } from \"react\";\nexport function DropdownList({ items, value, onChange }) {\n return (_jsx(Listbox, { value: value, onChange: onChange, children: ({ open }) => (_jsxs(\"div\", { className: \"relative\", children: [_jsxs(\"div\", { className: \"inline-flex divide-x divide-indigo-700 rounded-md shadow-2xs\", children: [_jsxs(\"div\", { className: \"inline-flex items-center gap-x-1.5 rounded-l-md bg-indigo-600 px-3 py-2 text-white shadow-2xs\", children: [value.name && _jsx(Check, { className: \"-ml-0.5 size-5\", \"aria-hidden\": \"true\" }), _jsx(\"p\", { className: \"text-sm font-semibold\", children: value.name || \"\" })] }), _jsxs(ListboxButton, { className: \"inline-flex items-center rounded-l-none rounded-r-md bg-indigo-600 p-2 hover:bg-indigo-700 focus:outline-hidden focus:ring-2 focus:ring-indigo-600 focus:ring-offset-2 focus:ring-offset-gray-50\", children: [_jsx(\"span\", { className: \"sr-only\", children: \"Change selection\" }), _jsx(ChevronDown, { className: \"size-5 text-white\", \"aria-hidden\": \"true\" })] })] }), _jsx(Transition, { show: open, as: Fragment, leave: \"transition ease-in duration-100\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: _jsx(ListboxOptions, { className: \"absolute right-0 z-10 mt-2 w-72 origin-top-right divide-y divide-gray-200 overflow-hidden rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-hidden\", children: items.map((option) => (_jsx(ListboxOption, { className: ({ active }) => clsx(active ? 'bg-indigo-600 text-white' : 'text-gray-900', 'cursor-default select-none p-4 text-sm'), value: option, children: ({ selected, active }) => (_jsxs(\"div\", { className: \"flex flex-col\", children: [_jsxs(\"div\", { className: \"flex justify-between\", children: [_jsx(\"p\", { className: selected ? 'font-semibold' : 'font-normal', children: option.name }), selected ? (_jsx(\"span\", { className: active ? 'text-white' : 'text-indigo-600', children: _jsx(Check, { className: \"size-5\", \"aria-hidden\": \"true\" }) })) : null] }), _jsx(\"p\", { className: clsx(active ? 'text-indigo-200' : 'text-gray-500', 'mt-2'), children: option.description })] })) }, option.id))) }) })] })) }));\n}\n//# sourceMappingURL=DropdownList.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Plus } from \"lucide-react\";\nimport { Button } from \"@vertesia/ui/core\";\nexport function EmptyCollection({ buttonLabel, title, children, onClick }) {\n return (_jsx(\"div\", { className: \"flex items-center justify-center h-full text-center\", children: _jsxs(\"div\", { className: \"py-12\", children: [_jsx(\"svg\", { className: \"mx-auto size-12\", fill: \"none\", viewBox: \"0 0 24 24\", stroke: \"currentColor\", \"aria-hidden\": \"true\", children: _jsx(\"path\", { vectorEffect: \"non-scaling-stroke\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 2, d: \"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" }) }), _jsx(\"h3\", { className: \"mt-2 text-sm font-semibold\", children: title }), _jsx(\"p\", { className: \"mt-1 text-sm text-muted\", children: children }), _jsx(\"div\", { className: \"mt-6\", children: _jsxs(Button, { onClick: onClick, children: [_jsx(Plus, { className: \"-ml-0.5 mr-1.5 size-5\", \"aria-hidden\": \"true\" }), buttonLabel] }) })] }) }));\n}\n//# sourceMappingURL=EmptyCollection.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useRef } from \"react\";\n/**\n * TODO: TS complains that:\n * Type 'FileList' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher.\n * So as a quick fix aI use a for loop to convert FileList to File[]\n * @param files\n * @returns\n */\nfunction fileListToArray(files) {\n const ar = [];\n for (let i = 0, l = files.length; i < l; i++) {\n ar.push(files[i]);\n }\n return ar;\n}\nexport function FileUploadInput({ children, onUpload }) {\n const inputRef = useRef(null);\n const _onUpload = () => {\n if (inputRef.current?.files) {\n onUpload(fileListToArray(inputRef.current.files));\n }\n };\n return (_jsxs(\"label\", { style: { cursor: \"pointer\" }, children: [children, _jsx(\"input\", { ref: inputRef, type: \"file\", style: { display: \"none\" }, onChange: _onUpload })] }));\n}\n//TODO implement using tailwind\nexport function DropZone({ onUpload }) {\n const dropZoneProps = useDropZone({ onUpload });\n return (_jsx(\"div\", { ...dropZoneProps, className: \"flex items-center justify-center w-full h-64 border-2 border-dashed rounded-lg cursor-pointer bg-gray-50 dark:hover:bg-bray-800 dark:bg-gray-700 hover:bg-gray-100 dark:border-gray-600 dark:hover:border-gray-500 dark:hover:bg-gray-600\", children: _jsxs(\"label\", { htmlFor: \"dropzone-file\", className: \"flex flex-col items-center justify-center w-full h-full\", children: [_jsxs(\"div\", { className: \"flex flex-col items-center justify-center pt-5 pb-6\", children: [_jsx(\"svg\", { className: \"w-8 h-8 mb-4 text-gray-500 dark:text-gray-400\", \"aria-hidden\": \"true\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"none\", viewBox: \"0 0 20 16\", children: _jsx(\"path\", { stroke: \"currentColor\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\", \"stroke-width\": \"2\", d: \"M13 13h3a3 3 0 0 0 0-6h-.025A5.56 5.56 0 0 0 16 6.5 5.5 5.5 0 0 0 5.207 5.021C5.137 5.017 5.071 5 5 5a4 4 0 0 0 0 8h2.167M10 15V6m0 0L8 8m2-2 2 2\" }) }), _jsxs(\"p\", { className: \"mb-2 text-sm text-gray-500 dark:text-gray-400\", children: [_jsx(\"span\", { className: \"font-semibold\", children: \"Click to upload\" }), \" or drag and drop\"] }), _jsx(\"p\", { className: \"text-xs text-gray-500 dark:text-gray-400\", children: \"SVG, PNG, JPG or GIF (MAX. 800x400px)\" })] }), _jsx(\"input\", { id: \"dropzone-file\", type: \"file\", className: \"hidden\" })] }) }));\n}\nfunction _onDragEnter(el) {\n let cnt = el.__dragOver_cnt__ || 0;\n el.__dragOver_cnt__ = cnt + 1;\n return !cnt; // true if first drag o ver false if dragover already recorded\n}\nfunction _onDragLeave(el) {\n let cnt = el.__dragOver_cnt__;\n if (!cnt)\n return false;\n el.__dragOver_cnt__ = cnt - 1;\n return cnt === 1; // true if leave false if not\n}\nfunction _onDrop(el) {\n delete el.__dragOver_cnt__;\n}\nexport function useDropZone({ onUpload, dragOverClass = \"is-drag-over-on\", dropEffect = \"copy\", }) {\n const ref = useRef(null);\n const onDrop = (ev) => {\n ev.preventDefault();\n _onDrop(ref.current);\n ref.current?.classList.remove(dragOverClass);\n const items = ev.dataTransfer.items;\n if (items) {\n const promises = [];\n const traverseFileTree = (item, path = \"\") => {\n return new Promise((resolve) => {\n if (item.isFile) {\n item.file((file) => {\n Object.defineProperty(file, \"webkitRelativePath\", { value: path + file.name });\n resolve([file]);\n });\n }\n else if (item.isDirectory) {\n const dirReader = item.createReader();\n const entries = [];\n const readEntries = () => {\n dirReader.readEntries((results) => {\n if (!results.length) {\n Promise.all(entries).then((filesArrays) => resolve(filesArrays.flat()));\n }\n else {\n for (const entry of results) {\n entries.push(traverseFileTree(entry, path + item.name + \"/\"));\n }\n readEntries();\n }\n });\n };\n readEntries();\n }\n });\n };\n for (let i = 0; i < items.length; i++) {\n const entry = items[i].webkitGetAsEntry();\n if (entry) {\n promises.push(traverseFileTree(entry));\n }\n }\n Promise.all(promises).then((filesArrays) => {\n const allFiles = filesArrays.flat();\n if (allFiles.length) {\n onUpload(allFiles);\n }\n });\n }\n };\n const onDragOver = (ev) => {\n ev.preventDefault();\n ev.dataTransfer.dropEffect = dropEffect;\n };\n const onDragEnter = () => {\n if (_onDragEnter(ref.current)) {\n ref.current?.classList.add(dragOverClass);\n }\n };\n const onDragLeave = () => {\n if (_onDragLeave(ref.current)) {\n ref.current?.classList.remove(dragOverClass);\n }\n };\n return {\n onDrop,\n onDragOver,\n onDragEnter,\n onDragLeave,\n ref,\n };\n}\n//# sourceMappingURL=FileUpload.js.map","import { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nexport function cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n//# sourceMappingURL=utils.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React from \"react\";\nconst PortalContainerContext = React.createContext(undefined);\nfunction findOrCreatePortalContainer(root, id = \"plugin-portal-container\") {\n // look only at direct children\n for (const child of Array.from(root.children)) {\n if (child instanceof HTMLElement && child.id === id) {\n return child;\n }\n }\n // not found → create\n const container = document.createElement(\"div\");\n container.id = id;\n root.appendChild(container);\n return container;\n}\nexport function PortalContainerProvider({ children, id = \"plugin-portal-container\", }) {\n const ref = React.useRef(null);\n const [container, setContainer] = React.useState(undefined);\n React.useEffect(() => {\n if (ref.current) {\n const root = ref.current.getRootNode();\n if (root instanceof ShadowRoot || root instanceof Document) {\n const container = findOrCreatePortalContainer(root, id);\n setContainer(container);\n }\n else {\n setContainer(null);\n }\n }\n }, [id]);\n // If container not discovered yet → render hidden marker only\n if (container === undefined) {\n return _jsx(\"div\", { ref: ref, style: { display: \"none\" } });\n }\n // Once container is resolved (null or HTMLElement) → provide it\n return (_jsx(PortalContainerContext.Provider, { value: container || undefined, children: children }));\n}\nexport function usePortalContainer() {\n return React.useContext(PortalContainerContext);\n}\n//# sourceMappingURL=PortalContainerProvider.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"../libs/utils\";\nimport { usePortalContainer } from \"../../hooks/PortalContainerProvider\";\nconst TooltipProvider = TooltipPrimitive.Provider;\nconst Tooltip = TooltipPrimitive.Root;\nconst TooltipTrigger = TooltipPrimitive.Trigger;\nconst TooltipContent = React.forwardRef(({ className, sideOffset = 4, side = \"top\", ...props }, ref) => {\n const container = usePortalContainer();\n return (_jsx(TooltipPrimitive.Portal, { container: container, children: _jsx(TooltipPrimitive.Content, { ref: ref, sideOffset: sideOffset, side: side, style: { zIndex: 100 }, className: cn(\"max-w-[90vw]\", \"z-50 overflow-hidden rounded-md bg-tooltips border px-3 py-1.5 text-xs animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 }) }));\n});\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\nexport function VTooltip({ description, children, size = 'sm', placement = 'top', className, asChild }) {\n return (_jsx(TooltipProvider, { delayDuration: 0, children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { className: \"cursor-pointer\", asChild: asChild, children: children }), _jsx(TooltipContent, { side: placement, className: `px-3 py-1.5 max-w-${size} text-${size} px-3 ${className}`, children: description })] }) }));\n}\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n//# sourceMappingURL=tooltip.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { VTooltip } from './shadcn/tooltip';\nimport { Info } from 'lucide-react';\nexport function FormItem({ description, required, label, className, direction = \"column\", children, disabled = false }) {\n return (_jsxs(\"div\", { className: clsx(\"flex w-full space-y-1\", className, direction === \"row\" ? \"flex-row justify-between items-center gap-2\" : \"flex-col\"), children: [_jsxs(\"div\", { className: 'flex items-center gap-1', children: [_jsxs(\"label\", { className: `text-sm font-medium mb-1 ${disabled ? \"text-muted\" : \"\"}`, children: [label, required ? _jsx(\"span\", { className: 'text-destructive -mt-4 ml-1', children: \"*\" }) : \"\"] }), description &&\n _jsx(\"div\", { className: 'mx-2 flex w-4 items-center', children: _jsx(VTooltip, { description: description, children: _jsx(Info, { className: \"size-3 text-muted\" }) }) })] }), children] }));\n}\n//# sourceMappingURL=FormItem.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../libs/utils\";\n// Base badge variants\nconst badgeVariants = cva(\"inline-flex items-center rounded-md px-2 py-1 text-xs font-medium\", {\n variants: {\n variant: {\n default: \"text-foreground bg-muted\",\n secondary: \"bg-secondary text-primary\",\n destructive: \"bg-destructive text-destructive\",\n attention: \"bg-attention text-attention\",\n success: \"bg-success text-success\",\n info: \"bg-info text-info\",\n done: \"bg-done text-done\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n// Base Badge component\nexport function Badge({ className, variant, children, onClick, ...props }) {\n return (_jsx(\"span\", { className: cn(badgeVariants({ variant }), className), onClick: onClick, ...props, children: children }));\n}\nconst dotBadgeVariants = cva(\n// Base styles\n\"inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium ring-1 ring-inset ring-border\", {\n variants: {\n variant: {\n default: \"\",\n success: \"\",\n destructive: \"\",\n attention: \"\",\n done: \"\",\n info: \"\",\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n});\n// Separate dot variants to allow className overrides\nconst dotVariants = cva(\"h-1.5 w-1.5\", {\n variants: {\n variant: {\n default: \"fill-foreground\",\n success: \"fill-success\",\n destructive: \"fill-destructive\",\n attention: \"fill-attention\",\n done: \"fill-done\",\n info: \"fill-info\",\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n});\nexport function DotBadge({ variant, className, dotClassName, // New prop for dot-specific classes\nchildren, ...props }) {\n return (_jsxs(\"span\", { className: cn(dotBadgeVariants({ variant }), className), ...props, children: [_jsx(\"div\", { className: \"flex-shrink-0\", children: _jsx(\"svg\", { className: cn(dotVariants({ variant }), dotClassName), viewBox: \"0 0 6 6\", \"aria-hidden\": \"true\", children: _jsx(\"circle\", { cx: 3, cy: 3, r: 3 }) }) }), _jsx(\"span\", { className: \"truncate\", children: children })] }));\n}\n//# sourceMappingURL=badge.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../libs/utils\";\nimport { X } from \"lucide-react\";\nimport { Button } from \"@vertesia/ui/core\";\nconst variants = cva(\"\", {\n variants: {\n size: {\n xs: \"rounded py-1 text-xs rounded-xs\",\n sm: \"rounded text-xs rounded-sm\",\n md: \"rounded-md py-2 text-sm\",\n lg: \"rounded-md text-base\",\n xl: \"rounded-md py-2.5 text-lg\",\n },\n variant: {\n default: \"flex w-full rounded-md border border-input bg-background ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n unstyled: \"block m-0 p-0 w-full border-0 focus:outline-hidden focus:ring-0 bg-transparent\",\n noPadding: \"block rounded-md border-0 bg-background shadow-2xs ring-1 ring-inset ring-ring placeholder:text-muted-foreground focus:ring-2 focus:ring-inset focus:ring-ring ring-offset-background\",\n legacy: \"py-1.5 block rounded-md border-0 bg-background shadow-2xs ring-1 ring-inset ring-ring placeholder:text-muted-foreground focus:ring-2 focus:ring-inset focus:ring-ring ring-offset-background\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n});\nconst Input = React.forwardRef(({ className, type, size = \"md\", variant = \"default\", clearable = true, onChange, value, ...props }, ref) => {\n const _onClear = () => {\n onChange && onChange('');\n };\n const _onChange = (ev) => {\n onChange && onChange(ev.target.value);\n };\n return (_jsxs(\"div\", { className: \"w-full relative inline-block [&:hover_.clear-button]:opacity-100\", children: [_jsx(\"input\", { type: type, className: cn(variants({ size, variant }), className, clearable && value ? \"pr-8\" : \"\"), ref: ref, value: value == null ? '' : value, onChange: _onChange, ...props }), clearable && value && !props.readOnly && !props.disabled && (_jsx(Button, { variant: \"link\", size: \"icon\", type: \"button\", onClick: _onClear, className: `clear-button opacity-0 transition-opacity duration-200\n absolute top-1/2 -translate-y-1/2 text-muted !hover:text-destructive cursor-pointer\n flex items-center justify-center size-6 rounded right-2`, alt: \"Clear input\", children: _jsx(X, { size: 16 }) }))] }));\n});\nInput.displayName = \"Input\";\nexport { Input, };\n//# sourceMappingURL=input.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { useState } from 'react';\nimport { Badge } from './shadcn/badge';\nimport { Input } from './shadcn/input';\nimport { VTooltip } from '@vertesia/ui/core';\nexport function InputList({ value = [], onChange, className, delimiters = \", \", placeholder, autoFocus }) {\n const [text, setText] = useState('');\n const onBlur = (ev) => {\n const v = ev.target.value;\n if (v && v.trim()) {\n onChange([...value, v.trim()]);\n setText('');\n }\n };\n const onKeyDown = (ev) => {\n const v = ev.target.value;\n const isEmpty = !v.trim();\n const key = ev.key;\n if (key === 'Enter' || delimiters.indexOf(key) > -1) {\n ev.preventDefault();\n if (value && !isEmpty) {\n onChange([...value, v.trim()]);\n setText('');\n }\n }\n else if (key === 'Backspace' && isEmpty) {\n if (value && value.length > 0) {\n value.pop();\n onChange([...value]);\n }\n }\n };\n const onPaste = (ev) => {\n const pastedText = ev.clipboardData.getData('text');\n if (pastedText) {\n ev.preventDefault();\n // Create a regex pattern from delimiters\n const delimiterPattern = delimiters.split('').map((char) => char === ' ' ? '\\\\s' : char.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|');\n const regex = new RegExp(`[${delimiterPattern}]+`);\n // Split the pasted text by delimiters and filter out empty values\n const newValues = pastedText\n .split(regex)\n .map((item) => item.trim())\n .filter((item) => item.length > 0);\n if (newValues.length > 0) {\n onChange([...value, ...newValues]);\n }\n setText('');\n }\n };\n const _onClick = (index) => {\n if (value && value.length > 0) {\n value.splice(index, 1);\n onChange([...value]);\n }\n };\n return (_jsxs(\"div\", { className: clsx(className, 'w-full flex flex-wrap items-center gap-1 p-2 py-1.5', 'rounded-md text-sm rounded-md border border-input bg-background ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted focus-visible:outline-none focus-visible:ring-1 ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50'), children: [value && value.length > 0 &&\n (value.map((v, index) => _jsx(VTooltip, { description: 'click to remove', children: _jsx(Badge, { variant: \"secondary\", onClick: () => _onClick(index), className: 'cursor-pointer flex-shrink-0 hover:bg-destructive hover:text-destructive transition-colors', title: v, children: _jsx(\"span\", { className: 'break-all', children: v }) }, index) }, index))), _jsx(Input, { clearable: false, className: 'placeholder:text-muted px-1 flex-1 min-w-[120px]', variant: 'unstyled', type: 'text', value: text, onBlur: onBlur, onKeyDown: onKeyDown, onPaste: onPaste, onChange: setText, placeholder: !value || value.length === 0 ? placeholder : '', autoFocus: autoFocus })] }));\n}\n//# sourceMappingURL=InputList.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nexport function Link({ underline = 'always', className, children, ...others }) {\n let underlineClass;\n if (underline === 'always') {\n underlineClass = 'underline';\n }\n else if (underline === 'hover') {\n underlineClass = 'hover:underline';\n }\n return _jsx(\"a\", { className: clsx(\"text-indigo-800 dark:text-indigo-300\", className, underlineClass), ...others, children: children });\n}\n//# sourceMappingURL=Link.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nimport { forwardRef } from \"react\";\nexport function MenuList({ className, children }) {\n return (_jsx(\"ul\", { className: `${className} space-y-1 flex flex-col items-start`, children: children }));\n}\nconst MenuListItem = forwardRef(function _MenuListItem(props, ref) {\n const { current, children, className, href = '#', onClick, ...others } = props;\n return (_jsx(\"li\", { className: clsx(className, current ? 'bg-muted' : '', 'w-full p-2 pl-3 text-sm leading-6 font-semibold hover:bg-muted'), children: _jsx(\"a\", { ref: ref, href: href, onClick: (e) => {\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n else if (href === '#') {\n e.preventDefault();\n }\n }, className: 'w-full flex items-center gap-x-3', ...others, children: children }) }));\n});\nMenuList.Item = MenuListItem;\n//# sourceMappingURL=MenuList.js.map","const INPUT_UNSTYLED = \"block m-0 p-0 w-full border-0 focus:outline-hidden focus:ring-0 bg-transparent\";\nconst INPUT_NO_PADDING = \"rounded-md text-sm flex w-full rounded-md border border-input bg-background ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\";\nconst INPUT = INPUT_NO_PADDING + \" py-1.5\";\nconst Styles = {\n INPUT_UNSTYLED,\n INPUT_NO_PADDING,\n INPUT\n};\nexport { Styles };\n//# sourceMappingURL=styles.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nimport React, { useEffect } from \"react\";\nimport { Styles } from \"./styles.js\";\nfunction numberToString(value) {\n if (value == null || isNaN(value)) {\n return '';\n }\n else {\n return value.toString();\n }\n}\n/**\n * The value of this input is always a number. It can be undefined or NaN. If NaN the input value will not be updated with the NaN one.\n * If undefined the input will be updated to be empty.\n * The onChange callback is called whenever the value changes. If the input cannot be parsed as a number\n * it will be returned as NaN.\n */\nconst NumberInput = React.forwardRef(({ value, onChange, className, noScroll = false, noSpinners = false, ...others }, ref) => {\n // we need to store the state here in string\n const [textValue, setTextValue] = React.useState(numberToString(value));\n const _onChange = (ev) => {\n const value = ev.target.value;\n setTextValue(value);\n if (value === '') {\n onChange && onChange(undefined, value);\n }\n else {\n const num = parseFloat(value);\n onChange && onChange(num, value);\n }\n };\n useEffect(() => {\n // we do not update if not empty and NaN\n if (value == null || !isNaN(value)) {\n const text = numberToString(value);\n setTextValue(text);\n }\n }, [value]);\n return (_jsx(\"input\", { onWheel: noScroll ? event => { event.target.blur(); } : others.onWheel, type: 'number', value: textValue, onChange: _onChange, className: clsx(className, Styles.INPUT, { \"no-spinners\": noSpinners }, noSpinners && \"[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none\"), ref: ref, ...others }));\n});\nexport { NumberInput };\n//# sourceMappingURL=NumberInput.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva } from \"class-variance-authority\";\nimport { VTooltip } from \"@vertesia/ui/core\";\nimport { cn } from \"../libs/utils\";\nimport { Check, CopyIcon, Loader2 } from \"lucide-react\";\nimport clsx from \"clsx\";\nimport { useState } from \"react\";\nconst buttonVariants = cva(\"hover:cursor-pointer inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", {\n variants: {\n variant: {\n destructive: \"bg-destructive dark:bg-destructive/10 text-destructive ring-1 ring-inset ring-destructive-muted/50 dark:ring-destructive-muted/50 shadow-xs hover:bg-destructive/50\",\n outline: \"border border-input bg-background shadow-xs hover:bg-muted ring-inset\",\n secondary: \"bg-primary/5 dark:bg-primary/10 text-primary shadow-xs hover:bg-primary/10 dark:hover:bg-primary/20 ring-inset\",\n ghost: \"hover:bg-muted/50 dark:hover:bg-muted/20 ring-inset\",\n link: \"text-foreground underline-offset-4 hover:underline ring-inset\",\n primary: \"bg-primary text-white shadow-xs hover:bg-primary/90 ring-inset\",\n unstyled: \"\"\n },\n size: {\n xs: 'h-7 rounded px-2 py-1 text-xs gap-x-1',\n sm: \"h-8 rounded px-3 text-xs\",\n md: \"h-9 rounded-md px-4 py-2\",\n lg: \"h-10 rounded-md px-3\",\n xl: 'rounded-md px-3.5 py-2.5 text-sm gap-x-2',\n icon: \"p-0 m-0 rounded-full\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n});\nconst Button = React.forwardRef(({ className, variant, size, asChild = false, alt, isDisabled, isLoading, title, onClick, type, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n const buttonElement = (_jsxs(Comp, { className: clsx(cn(buttonVariants({ variant, size })), className), disabled: isDisabled || isLoading || props.disabled, ref: ref, onClick: onClick, type: type, autoFocus: false, ...props, children: [isLoading && _jsx(Loader2, { className: \"animate-spin\" }), props.children] }));\n if (alt || title) {\n return (_jsx(VTooltip, { description: alt || title, asChild: true, className: \"cursor-pointer\", size: \"xs\", placement: \"top\", children: buttonElement }));\n }\n return buttonElement;\n});\nButton.displayName = \"Button\";\nconst CopyButton = React.forwardRef(({ size, content, toast, className, alt, ...props }, ref) => {\n const [isCopied, setIsCopied] = useState(false);\n const handleCopy = (e) => {\n e.stopPropagation();\n navigator.clipboard.writeText(content).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n if (!toast || !toast.toast) {\n return;\n }\n toast.toast({\n status: \"success\",\n title: toast.message || \"Copied to clipboard\",\n duration: 2000,\n });\n }).catch((err) => {\n console.error(\"Failed to copy text: \", err);\n if (toast && toast.toast)\n toast.toast({\n status: \"error\",\n title: \"Failed to copy\",\n duration: 2000,\n });\n });\n };\n return (_jsx(Button, { ref: ref, className: cn(className), variant: \"unstyled\", size: size || \"sm\", onClick: handleCopy, ...props, alt: alt ?? \"Copy\", children: isCopied ?\n _jsx(Check, { className: \"text-success\" })\n :\n _jsx(CopyIcon, { className: \"size-4\" }) }));\n});\nCopyButton.displayName = \"CopyButton\";\nexport { Button, CopyButton, buttonVariants };\n//# sourceMappingURL=button.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { motion } from \"framer-motion\";\nimport { X } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Button } from \"./shadcn/button\";\nexport function Overlay({ children, overlayContent, className = \"\", overlayClassName = \"\", position = 'right', width, height, showCloseButton = true, onOpen, onClose, triggerClassName = \"\", backdropClassName = \"\", animationConfig = { type: \"spring\", stiffness: 300, damping: 30 } }) {\n const [isOpen, setIsOpen] = useState(false);\n const handleOpen = () => {\n setIsOpen(true);\n onOpen?.();\n };\n const handleClose = () => {\n setIsOpen(false);\n onClose?.();\n };\n const animationProps = getAnimationProps(position);\n const positionClasses = getPositionClasses(position, width, height);\n return (_jsxs(\"div\", { className: `flex items-center justify-center w-full ${className}`, children: [_jsx(\"div\", { onClick: handleOpen, className: `w-full align-left cursor-pointer ${triggerClassName}`, children: children }), isOpen && (_jsx(\"div\", { className: `z-45 fixed inset-0 bg-black bg-opacity-50 ${backdropClassName}`, children: _jsxs(motion.div, { ...animationProps, transition: animationConfig, className: `${positionClasses} ${overlayClassName}`, children: [showCloseButton && (_jsx(\"div\", { className: \"absolute top-2 right-2 z-10\", children: _jsx(Button, { onClick: handleClose, variant: \"primary\", children: _jsx(X, {}) }) })), _jsx(\"div\", { className: showCloseButton ? \"mt-8\" : \"\", children: overlayContent })] }) }))] }));\n}\nfunction getAnimationProps(position) {\n switch (position) {\n case 'left':\n return { initial: { x: \"-100%\" }, animate: { x: 0 }, exit: { x: \"-100%\" } };\n case 'right':\n return { initial: { x: \"100%\" }, animate: { x: 0 }, exit: { x: \"100%\" } };\n case 'top':\n return { initial: { y: \"-100%\" }, animate: { y: 0 }, exit: { y: \"-100%\" } };\n case 'bottom':\n return { initial: { y: \"100%\" }, animate: { y: 0 }, exit: { y: \"100%\" } };\n case 'center':\n return {\n initial: { opacity: 0, scale: 0.8 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.8 }\n };\n default:\n return { initial: { x: \"100%\" }, animate: { x: 0 }, exit: { x: \"100%\" } };\n }\n}\nfunction getPositionClasses(position, width, height) {\n const baseClasses = \"fixed bg-white shadow-lg p-4 relative\";\n switch (position) {\n case 'left':\n return `${baseClasses} left-0 top-[var(--header-height)] h-full ${width || 'w-80'}`;\n case 'right':\n return `${baseClasses} right-0 top-[var(--header-height)] h-full ${width || 'w-80'}`;\n case 'top':\n return `${baseClasses} top-[var(--header-height)] left-0 right-0 ${height || 'h-80'}`;\n case 'bottom':\n return `${baseClasses} bottom-0 left-0 right-0 ${height || 'h-80'}`;\n case 'center':\n return `${baseClasses} top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 ${width || 'w-96'} ${height || 'max-h-96'}`;\n default:\n return `${baseClasses} right-0 top-[var(--header-height)] h-full ${width || 'w-80'}`;\n }\n}\n//# sourceMappingURL=Overlay.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nconst PORTAL_ID = '--tailwind-portal';\nexport function Portal({ children }) {\n const tempNode = useRef(null);\n const [portalEl, setPortalEl] = useState(null);\n // hack to have the Portal not generating hydration errors (content mismatch) on SSR / CSR\n useEffect(() => {\n if (tempNode.current) { // we are on the browser -> we an use the portal\n const doc = tempNode.current.ownerDocument;\n let portalEl = doc.getElementById(PORTAL_ID);\n if (!portalEl) {\n portalEl = doc.createElement('DIV');\n portalEl.id = PORTAL_ID;\n doc.body.appendChild(portalEl);\n }\n setPortalEl(portalEl);\n }\n }, [tempNode.current]);\n if (portalEl) {\n return createPortal(children, portalEl);\n }\n else {\n return _jsx(\"span\", { ref: tempNode });\n }\n}\n//# sourceMappingURL=Portal.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nimport { useState } from \"react\";\nexport class RadioOptionAdapter {\n renderOption(item) {\n return this.labelOf(item);\n }\n findById(items, id) {\n return items.find(item => this.idOf(item) === id);\n }\n}\nexport function RadioGroup({ checkColor, cols = \"grid-cols-1\", gap = \"gap-2\", value, onChange, options, checkIcon: CheckIcon = DefaultCheckIcon, adapter }) {\n const [selected, setSelected] = useState(value);\n const onSelect = (option) => {\n setSelected(option);\n onChange(option);\n };\n const selectedId = selected ? adapter.idOf(selected) : undefined;\n return (_jsx(\"div\", { className: clsx(\"grid\", cols, gap), children: options.map(option => {\n const key = adapter.idOf(option);\n return (_jsx(RadioOption, { checkColor: checkColor, isSelected: key === selectedId, option: option, adapter: adapter, onSelect: onSelect, CheckIcon: CheckIcon }, key));\n }) }));\n}\nfunction RadioOption({ checkColor, CheckIcon, adapter, isSelected, option, onSelect }) {\n const [isHighlighted, setIsHighlighted] = useState(false);\n return (_jsxs(\"div\", { className: \"flex gap-1 cursor-pointer items-center\", onClick: () => onSelect(option), onMouseEnter: () => setIsHighlighted(true), onMouseLeave: () => setIsHighlighted(false), children: [_jsx(\"div\", { className: \"\", children: _jsx(CheckIcon, { size: 24, isChecked: isSelected, isHighlighted: isHighlighted, color: checkColor }) }), _jsx(\"div\", { children: adapter.renderOption(option) })] }));\n}\nfunction DefaultCheckIcon({ size, isChecked, isHighlighted, color = \"currentColor\" }) {\n //https://www.svgrepo.com/svg/309414/checkbox-checked\n //https://www.svgrepo.com/svg/309415/checkbox-unchecked\n const opacity = isHighlighted ? 1 : 0.6;\n return isChecked ? (_jsx(\"svg\", { width: `${size}px`, height: `${size}px`, viewBox: \"0 0 24 24\", version: \"1.1\", children: _jsx(\"g\", { stroke: \"none\", strokeWidth: \"1\", fill: \"none\", fillRule: \"evenodd\", children: _jsx(\"g\", { id: \"ic_fluent_checkbox_checked_24_regular\", fill: color, fillRule: \"nonzero\", opacity: opacity, children: _jsx(\"path\", { d: \"M18.25,3 C19.7687831,3 21,4.23121694 21,5.75 L21,18.25 C21,19.7687831 19.7687831,21 18.25,21 L5.75,21 C4.23121694,21 3,19.7687831 3,18.25 L3,5.75 C3,4.23121694 4.23121694,3 5.75,3 L18.25,3 Z M18.25,4.5 L5.75,4.5 C5.05964406,4.5 4.5,5.05964406 4.5,5.75 L4.5,18.25 C4.5,18.9403559 5.05964406,19.5 5.75,19.5 L18.25,19.5 C18.9403559,19.5 19.5,18.9403559 19.5,18.25 L19.5,5.75 C19.5,5.05964406 18.9403559,4.5 18.25,4.5 Z M10,14.4393398 L16.4696699,7.96966991 C16.7625631,7.6767767 17.2374369,7.6767767 17.5303301,7.96966991 C17.7965966,8.23593648 17.8208027,8.65260016 17.6029482,8.94621165 L17.5303301,9.03033009 L10.5303301,16.0303301 C10.2640635,16.2965966 9.84739984,16.3208027 9.55378835,16.1029482 L9.46966991,16.0303301 L6.46966991,13.0303301 C6.1767767,12.7374369 6.1767767,12.2625631 6.46966991,11.9696699 C6.73593648,11.7034034 7.15260016,11.6791973 7.44621165,11.8970518 L7.53033009,11.9696699 L10,14.4393398 L16.4696699,7.96966991 L10,14.4393398 Z\" }) }) }) })) : (_jsx(\"svg\", { width: `${size}px`, height: `${size}px`, viewBox: \"0 0 24 24\", version: \"1.1\", children: _jsx(\"g\", { stroke: \"none\", strokeWidth: \"1\", fill: \"none\", fillRule: \"evenodd\", children: _jsx(\"g\", { id: \"ic_fluent_checkbox_unchecked_24_regular\", fill: color, fillRule: \"nonzero\", opacity: opacity, children: _jsx(\"path\", { d: \"M5.75,3 L18.25,3 C19.7687831,3 21,4.23121694 21,5.75 L21,18.25 C21,19.7687831 19.7687831,21 18.25,21 L5.75,21 C4.23121694,21 3,19.7687831 3,18.25 L3,5.75 C3,4.23121694 4.23121694,3 5.75,3 Z M5.75,4.5 C5.05964406,4.5 4.5,5.05964406 4.5,5.75 L4.5,18.25 C4.5,18.9403559 5.05964406,19.5 5.75,19.5 L18.25,19.5 C18.9403559,19.5 19.5,18.9403559 19.5,18.25 L19.5,5.75 C19.5,5.05964406 18.9403559,4.5 18.25,4.5 L5.75,4.5 Z\" }) }) }) }));\n}\n//# sourceMappingURL=RadioGroup.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createContext, useContext, useEffect, useState } from \"react\";\nconst initialState = {\n theme: \"system\",\n setTheme: () => null,\n};\nconst ThemeProviderContext = createContext(initialState);\nexport { ThemeProviderContext };\nexport function ThemeProvider({ children, defaultTheme = \"system\", storageKey = \"vite-ui-theme\", ...props }) {\n const [theme, setTheme] = useState(() => localStorage.getItem(storageKey) || defaultTheme);\n useEffect(() => {\n const root = window.document.documentElement;\n root.classList.remove(\"light\", \"dark\");\n if (theme === \"system\") {\n const systemTheme = window.matchMedia(\"(prefers-color-scheme: dark)\")\n .matches\n ? \"dark\"\n : \"light\";\n root.classList.add(systemTheme);\n return;\n }\n root.classList.add(theme);\n }, [theme]);\n const value = {\n theme,\n setTheme: (theme) => {\n localStorage.setItem(storageKey, theme);\n setTheme(theme);\n },\n };\n return (_jsx(ThemeProviderContext.Provider, { ...props, value: value, children: children }));\n}\nexport const useTheme = () => {\n const context = useContext(ThemeProviderContext);\n if (context === undefined)\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n return context;\n};\n//# sourceMappingURL=ThemeProvider.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Computer, Moon, Sun } from \"lucide-react\";\nimport { Button } from \"../button\";\nimport { useTheme } from \"./ThemeProvider\";\nexport function ModeOption({ option, current, setTheme, icon }) {\n return (_jsx(Button, { variant: current === option ? \"secondary\" : \"outline\", size: \"sm\", onClick: () => setTheme(option), alt: option, children: icon }));\n}\nexport function ModeToggle() {\n const { setTheme } = useTheme();\n const theme = useTheme().theme;\n return (_jsxs(\"div\", { className: \"flex justify-between px-2 items-center\", children: [_jsx(\"p\", { className: \"text-sm font-semibold\", children: \"Theme\" }), _jsxs(\"div\", { className: \"flex gap-2\", children: [_jsx(ModeOption, { current: theme, option: \"system\", setTheme: setTheme, icon: _jsx(Computer, { className: \"text-muted\" }) }), _jsx(ModeOption, { current: theme, option: \"light\", setTheme: setTheme, icon: _jsx(Sun, { className: \"text-muted\" }) }), _jsx(ModeOption, { current: theme, option: \"dark\", setTheme: setTheme, icon: _jsx(Moon, { className: \"text-muted\" }) })] })] }));\n}\n//# sourceMappingURL=ThemeSwitcher.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from 'react';\nimport { cn } from \"../libs/utils\";\nconst Card = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn(\"rounded-xl border bg-card text-card-foreground shadow\", className), ...props })));\nCard.displayName = \"Card\";\nconst CardHeader = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn(\"flex flex-col p-6\", className), ...props })));\nCardHeader.displayName = \"CardHeader\";\nconst CardTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn(\"font-semibold leading-none tracking-tight\", className), ...props })));\nCardTitle.displayName = \"CardTitle\";\nconst CardDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn(\"text-sm text-muted-foreground\", className), ...props })));\nCardDescription.displayName = \"CardDescription\";\nconst CardContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn(\"p-6 pt-0\", className), ...props })));\nCardContent.displayName = \"CardContent\";\nconst CardFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn(\"flex items-center p-6 pt-0\", className), ...props })));\nCardFooter.displayName = \"CardFooter\";\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n//# sourceMappingURL=card.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nexport function VisuallyHidden({ children }) {\n return (_jsx(\"span\", { style: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n }, children: children }));\n}\n//# sourceMappingURL=visuallyHidden.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { cn } from \"../../libs/utils\";\nimport { X } from \"lucide-react\";\nimport { Button } from \"../button\";\nimport { VisuallyHidden } from \"../../libs/visuallyHidden\";\nimport { createContext, useContext } from \"react\";\nimport { usePortalContainer } from \"../../../hooks/PortalContainerProvider\";\nconst ModalContext = createContext(false);\nexport function useIsInModal() {\n return !!useContext(ModalContext);\n}\nexport function ModalContextProvider({ children }) {\n return _jsx(ModalContext.Provider, { value: true, children: children });\n}\nexport function Modal({ className, children, isOpen, onClose, description = \"Modal Description\", noCloseButton = false, allowOverflow = false, disableCloseOnClickOutside = false, size = \"md\", action }) {\n const handleOpenChange = (open) => {\n if (!open) {\n onClose();\n }\n };\n function getSizeClasses() {\n switch (size) {\n case \"sm\":\n return \"max-w-[20vw]\";\n case \"md\":\n return \"max-w-[60vw] lg:max-w-[40vw]\";\n case \"lg\":\n return \"max-w-[80vw] md:max-w-[60vw]\";\n case \"xl\":\n return \"max-w-[95vw] lg:max-w-[80vw]\";\n default:\n return \"max-w-[60vw] lg:max-w-[40vw]\";\n }\n }\n return (_jsxs(Dialog, { open: isOpen, onOpenChange: (open) => {\n if (!disableCloseOnClickOutside || open) {\n handleOpenChange(open);\n }\n }, children: [allowOverflow && _jsx(DialogOverlay, { className: \"z-50 fixed inset-0 bg-black/80\" }), _jsx(VisuallyHidden, { children: _jsx(DialogDescription, { children: description }) }), _jsxs(DialogContent, { className: cn(\"min-h-20 p-4\", \"fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] border bg-background shadow-lg duration-200 sm:rounded-lg\", getSizeClasses(), className), children: [_jsx(\"div\", { className: \"top-4 right-4 absolute\", children: _jsxs(\"div\", { className: \"flex gap-2\", children: [action && (_jsx(_Fragment, { children: action })), !noCloseButton && (_jsx(DialogClose, { onClick: () => handleOpenChange(false), asChild: true, autoFocus: false, children: _jsx(Button, { variant: \"outline\", alt: \"Close\", className: \"data-[state=open]:bg-accent opacity-70 hover:opacity-100 rounded-sm focus:outline-none focus:ring-2 focus:ring-ring ring-offset-background focus:ring-offset-2 data-[state=open]:text-muted-foreground transition-opacity disabled:pointer-events-none\", children: _jsx(X, { className: \"size-4\" }) }) }))] }) }), _jsx(ModalContextProvider, { children: children })] })] }));\n}\nexport const ModalTitle = ({ children, show = true, className, description, showDivider = false, ...props }) => {\n if (!show) {\n return (_jsxs(VisuallyHidden, { children: [_jsx(DialogTitle, { children: children }), description && _jsx(DialogDescription, { children: description })] }));\n }\n return (_jsx(_Fragment, { children: _jsxs(DialogTitle, { className: cn(showDivider ? \"border-b-solid border-b border-b-1 pb-2 mb-4\" : \"\", \"text-lg font-semibold leading-6 tracking-tight\", { 'py-2': !description }, className), ...props, children: [children, description && (_jsx(DialogDescription, { className: \"text-sm !font-normal text-muted-foreground pb-2\", children: description }))] }) }));\n};\nexport const ModalBody = ({ children, className, ...props }) => {\n return (_jsx(\"div\", { className: cn(\"text-sm max-h-[80vh] overflow-y-auto\", className), ...props, children: children }));\n};\nexport const ModalFooter = ({ align = \"right\", children, className, ...props }) => {\n const alignClass = {\n left: \"justify-start\",\n center: \"justify-center\",\n right: \"justify-end\",\n };\n return (_jsx(\"div\", { className: cn(\"w-full flex py-3 sm:py-2 sm:flex sm:flex-row-reverse sm:flex-row sm:justify-end sm:space-x-2\", alignClass[align], className), ...props, children: children }));\n};\nconst Dialog = DialogPrimitive.Root;\nconst DialogTrigger = DialogPrimitive.Trigger;\nconst DialogPortal = DialogPrimitive.Portal;\nconst DialogClose = DialogPrimitive.Close;\nconst DialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: cn(\"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\", className), ...props })));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\nconst DialogContent = React.forwardRef(({ className, children, ...props }, ref) => {\n const container = usePortalContainer();\n return (_jsxs(DialogPortal, { container: container, children: [_jsx(DialogOverlay, {}), _jsx(DialogPrimitive.Content, { ref: ref, autoFocus: false, onOpenAutoFocus: (event) => {\n event.preventDefault();\n }, className: cn(\"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] border bg-background shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\", className), ...props, children: children })] }));\n});\nDialogContent.displayName = DialogPrimitive.Content.displayName;\nconst DialogDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Description, { ref: ref, className: cn(\"text-sm text-muted\", className), ...props })));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\nconst DialogTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Title, { ref: ref, className: cn(\"text-lg font-semibold leading-none tracking-tight\", className), ...props })));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\nexport { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogTitle, DialogDescription, };\n//# sourceMappingURL=dialog.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { TriangleAlert } from \"lucide-react\";\nimport { useRef } from \"react\";\nimport { Modal, ModalTitle, ModalFooter } from \"./dialog\";\nimport { Button } from \"../button\";\nexport function ConfirmModal({ title, content, onConfirm, onCancel, isOpen }) {\n const cancelButtonRef = useRef(null);\n return (_jsxs(Modal, { isOpen: isOpen, onClose: onCancel, description: \"Confirm Modal\", children: [_jsxs(\"div\", { className: \"sm:flex sm:items-start p-2\", children: [_jsx(\"div\", { className: \"mx-auto flex h-12 w-12 shrink-0 items-center justify-center rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10\", children: _jsx(TriangleAlert, { className: \"size-6 text-red-600\", \"aria-hidden\": \"true\" }) }), _jsxs(\"div\", { className: \"mt-3 text-center sm:ml-4 sm:mt-0 sm:text-left\", children: [_jsx(ModalTitle, { className: \"leading-6\", show: true, children: title }), _jsx(\"div\", { className: \"mt-2\", children: _jsx(\"div\", { className: \"prose text-sm text-gray-500\", children: content }) })] })] }), _jsxs(ModalFooter, { align: \"right\", children: [_jsx(Button, { variant: \"destructive\", onClick: onConfirm, children: \"Confirm\" }), _jsx(Button, { variant: \"outline\", onClick: onCancel, ref: cancelButtonRef, children: \"Cancel\" })] })] }));\n}\n//# sourceMappingURL=ConfirmModal.js.map","import { createContext, useContext } from \"react\";\nexport function useToast() {\n return useContext(ToastContext);\n}\nconst ToastContext = createContext(() => { });\nexport { ToastContext };\n//# sourceMappingURL=ToastContext.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Transition } from \"@headlessui/react\";\nimport { CircleCheck, AlertTriangle, Info, CircleX, X } from \"lucide-react\";\nimport { Fragment, useEffect, useState, useRef } from \"react\";\nconst icons = {\n success: CircleCheck,\n error: CircleX,\n warning: AlertTriangle,\n info: Info\n};\nconst colors = {\n success: 'text-success',\n error: 'text-destructive',\n warning: 'text-attention',\n info: 'text-info'\n};\nexport function NotificationPanel({ data, onClose }) {\n const [show, setShow] = useState(true);\n const timeoutRef = useRef(null);\n const resetTimeout = () => {\n if (timeoutRef.current) {\n globalThis.clearTimeout(timeoutRef.current);\n }\n if (data.duration) {\n timeoutRef.current = setTimeout(() => setShow(false), data.duration);\n }\n };\n const clearCurrentTimeout = () => {\n if (timeoutRef.current) {\n globalThis.clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n };\n useEffect(() => {\n resetTimeout();\n return clearCurrentTimeout;\n }, [data.duration]);\n const Icon = icons[data.status] || Info;\n const color = colors[data.status] || 'text-info';\n // Global notification live region, render this permanently at the end of the document\n return (_jsx(\"div\", { \"aria-live\": \"assertive\", className: \"pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:items-start sm:p-6 z-100\", children: _jsx(\"div\", { className: \"flex w-full flex-col items-center space-y-4 sm:items-end\", children: _jsx(Transition, { appear: true, show: show, as: Fragment, afterLeave: onClose, enter: \"transform ease-out duration-700 transition\", enterFrom: \"translate-y-0 opacity-0 sm:translate-y-0 sm:translate-x-2\", enterTo: \"translate-y-2 opacity-100 sm:translate-x-0\", leave: \"transition ease-in duration-300\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: _jsx(\"div\", { className: \"pointer-events-auto w-full max-w-md overflow-hidden rounded-lg bg-muted shadow-lg ring-1 ring-border\", onMouseEnter: clearCurrentTimeout, onMouseLeave: resetTimeout, children: _jsx(\"div\", { className: \"p-5\", children: _jsxs(\"div\", { className: \"flex items-start\", children: [_jsx(\"div\", { className: \"shrink-0\", children: _jsx(Icon, { className: `size-6 ${color}`, \"aria-hidden\": \"true\" }) }), _jsxs(\"div\", { className: \"ml-3 flex-1 pt-0.5 min-w-0\", children: [_jsx(\"p\", { className: \"text-sm font-semibold text-foreground break-words\", children: data.title }), data.description && (_jsx(\"p\", { className: \"mt-2 text-sm text-muted break-words whitespace-pre-wrap leading-relaxed\", children: data.description }))] }), _jsx(\"div\", { className: \"ml-4 flex shrink-0\", children: _jsxs(\"button\", { type: \"button\", className: \"inline-flex rounded-md bg-muted text-muted hover:text-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background\", onClick: () => setShow(false), children: [_jsx(\"span\", { className: \"sr-only\", children: \"Close\" }), _jsx(X, { className: \"size-5\", \"aria-hidden\": \"true\" })] }) })] }) }) }) }) }) }));\n}\n//# sourceMappingURL=NotificationPanel.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nimport { Portal } from \"../Portal.js\";\nimport { NotificationPanel } from \"./NotificationPanel.js\";\nimport { ToastContext } from \"./ToastContext.js\";\nexport function ToastProvider({ children }) {\n const [data, setData] = useState(null);\n const toast = (data) => {\n setData(data);\n };\n return (_jsxs(_Fragment, { children: [_jsx(ToastContext.Provider, { value: toast, children: children }), data && _jsx(Portal, { children: _jsx(NotificationPanel, { data: data, onClose: () => toast(null) }) })] }));\n}\n//# sourceMappingURL=ToastProvider.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { ConfirmModal } from \"./ConfirmModal.js\";\nimport { useToast } from \"../../toast/index.js\";\nexport function DeleteModal({ idToDelete, title, content, setIdToDelete, deleteApi }) {\n const toast = useToast();\n const doDelete = async () => {\n if (!idToDelete) {\n return;\n }\n return deleteApi(idToDelete)\n .then(() => {\n toast({\n title: 'Delete succeeded',\n status: 'success'\n });\n }).catch((err) => {\n toast({\n title: 'Failed to delete',\n description: err.message ?? 'An error occurred while deleting the object',\n status: 'error'\n });\n }).finally(() => {\n setIdToDelete(undefined);\n });\n };\n return (_jsx(ConfirmModal, { title: title, content: content, isOpen: !!idToDelete, onConfirm: doDelete, onCancel: () => { setIdToDelete(undefined); } }));\n}\n//# sourceMappingURL=DeleteModal.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"../libs/utils\";\nconst Separator = React.forwardRef(({ className, orientation = \"horizontal\", decorative = true, ...props }, ref) => (_jsx(SeparatorPrimitive.Root, { ref: ref, decorative: decorative, orientation: orientation, className: cn(\"shrink-0 bg-border\", orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\", className), ...props })));\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\nexport { Separator };\n//# sourceMappingURL=separator.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cn } from \"../libs/utils\";\nimport { useIsInModal } from \"./modal/dialog\";\nimport { usePortalContainer } from \"../../hooks/PortalContainerProvider\";\nexport const PopoverContext = React.createContext(null);\nconst Popover = ({ hover = false, click = false, children, _open, onOpenChange }) => {\n const [open, setOpen] = React.useState(_open || false);\n const insideModal = useIsInModal();\n const handleOpenChange = (open) => {\n setOpen(open);\n if (onOpenChange) {\n onOpenChange(open);\n }\n };\n return (_jsx(PopoverContext.Provider, { value: { open, setOpen, hover, click }, children: _jsx(PopoverPrimitive.Root, { open: open, onOpenChange: handleOpenChange, modal: insideModal, children: children }) }));\n};\nfunction handleHover(hover = false, setOpen = () => { }, type) {\n if (hover) {\n setOpen(type === \"enter\");\n }\n}\nconst PopoverTrigger = React.forwardRef(({ children, ...props }, ref) => {\n const context = React.useContext(PopoverContext);\n if (!context) {\n throw new Error(\"PopoverTrigger must be used within a Popover\");\n }\n const { setOpen, hover, click } = context;\n return (_jsx(PopoverPrimitive.Trigger, { ref: ref, asChild: true, onMouseEnter: () => handleHover(hover, setOpen, \"enter\"), onMouseLeave: () => handleHover(hover, setOpen, \"leave\"), onClick: () => {\n if (click)\n setOpen((prev) => !prev);\n }, ...props, children: children }));\n});\nPopoverTrigger.displayName = PopoverPrimitive.Trigger.displayName;\nconst PopoverAnchor = PopoverPrimitive.Anchor;\nconst PopoverContent = React.forwardRef(({ className, align = \"center\", side = \"bottom\", ...props }, ref) => {\n const context = React.useContext(PopoverContext);\n if (!context) {\n throw new Error(\"PopoverContent must be used within a Popover\");\n }\n const { setOpen, hover } = context;\n const container = usePortalContainer();\n return (_jsx(PopoverPrimitive.Portal, { container: container, children: _jsx(PopoverPrimitive.Content, { ref: ref, align: align, side: side, onMouseEnter: () => handleHover(hover, setOpen, \"enter\"), onMouseLeave: () => handleHover(hover, setOpen, \"leave\"), \n // onClick={() => {setOpen(false)}}\n className: cn(\"z-50 w-72 rounded-md border-popover bg-popover text-popover-foreground ring-1 ring-gray-200 dark:ring-slate-700 shadow-md focus:outline-none animate-in\", \"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 }) }));\n});\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\nconst PopoverClose = PopoverPrimitive.Close;\nPopoverClose.displayName = PopoverPrimitive.Close.displayName;\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverClose };\n//# sourceMappingURL=popover.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\nimport { cn } from \"../libs/utils\";\nimport { Dialog, DialogContent } from \"./modal/dialog\";\nconst Command = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive, { ref: ref, className: cn(\"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\", className), ...props })));\nCommand.displayName = CommandPrimitive.displayName;\nconst CommandDialog = ({ children, ...props }) => {\n return (_jsx(Dialog, { ...props, children: _jsx(DialogContent, { className: \"shadow-lg p-0 overflow-hidden\", children: _jsx(Command, { className: \"[&_[cmdk-group]]:px-2 [&_[cmdk-item]]:px-2 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-item]_svg]:w-5 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\", children: children }) }) }));\n};\nconst CommandInput = React.forwardRef(({ className, ...props }, ref) => (_jsxs(\"div\", { className: \"flex items-center px-3 border-b\", \"cmdk-input-wrapper\": \"\", children: [_jsx(Search, { className: \"opacity-50 size-4 shrink-0\" }), _jsx(CommandPrimitive.Input, { ref: ref, className: cn(\"focus:ring-0\", \"border-0 flex h-8 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\", className), ...props })] })));\nCommandInput.displayName = CommandPrimitive.Input.displayName;\nconst CommandList = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.List, { ref: ref, className: cn(\"overflow-y-auto overflow-x-hidden\", className), ...props })));\nCommandList.displayName = CommandPrimitive.List.displayName;\nconst CommandEmpty = React.forwardRef((props, ref) => (_jsx(CommandPrimitive.Empty, { ref: ref, className: \"py-2 text-sm text-center\", ...props })));\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\nconst CommandGroup = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.Group, { ref: ref, className: cn(\"overflow-y-auto overflow-x-hidden p-1 text-foreground\", \"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\", className), ...props })));\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\nconst CommandSeparator = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.Separator, { ref: ref, className: cn(\"-mx-1 h-px bg-border\", className), ...props })));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\nconst CommandItem = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.Item, { ref: ref, className: cn(\"hover:bg-muted cursor-pointer relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", className), ...props })));\nCommandItem.displayName = CommandPrimitive.Item.displayName;\nconst CommandShortcut = ({ className, ...props }) => {\n return (_jsx(\"span\", { className: cn(\"ml-auto text-xs tracking-widest text-muted-foreground\", className), ...props }));\n};\nCommandShortcut.displayName = \"CommandShortcut\";\nexport { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, };\n//# sourceMappingURL=command.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { isEqual } from 'lodash-es';\nimport { AlertTriangle, Check, ChevronsUpDown, SearchIcon, SquarePlus, X } from 'lucide-react';\nimport { useState, useEffect, useRef, useMemo } from 'react';\nimport { Popover, PopoverContent, PopoverTrigger, PopoverClose } from './popover';\nimport { Command, CommandEmpty, CommandGroup, CommandItem, CommandList } from './command';\nimport { Input } from './input';\nimport { Button } from './button';\nimport { VTooltip } from './tooltip';\nexport function SelectBox({ options, optionLabel, value, onChange, addNew, addNewLabel, disabled, filterBy, label, placeholder, className, popupClass, isClearable, border = true, multiple = false, by, inline = false, warnOnMissingValue = true, missingValueWarning = \"Value not in options list, may not be valid\", clearIcon, clearTitle }) {\n const triggerRef = useRef(null);\n const [open, setOpen] = useState(false);\n const [width, setWidth] = useState(0);\n const [filterValue, setFilterValue] = useState('');\n // Check if value is in options list (for single select only)\n const isMissingValue = useMemo(() => {\n if (!warnOnMissingValue || multiple || value == null || !options)\n return false;\n // Use the isOptionsEqual helper which respects the 'by' comparator\n return !options.some(opt => {\n if (typeof by === 'string') {\n return opt[by] === value[by];\n }\n else if (typeof by === 'function') {\n return by(opt, value);\n }\n else {\n return isEqual(opt, value);\n }\n });\n }, [warnOnMissingValue, multiple, value, options, by]);\n useEffect(() => {\n const element = triggerRef.current;\n if (!element) {\n return;\n }\n const updateWidth = () => {\n const contentWidth = element.getBoundingClientRect().width;\n setWidth(contentWidth);\n };\n const resizeObserver = new ResizeObserver(() => {\n updateWidth();\n });\n updateWidth();\n resizeObserver.observe(element);\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n const handleTriggerClick = (e) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n setOpen(!open);\n };\n const _onClick = (opt) => {\n if (multiple) {\n const currentValues = Array.isArray(value) ? value : [];\n const isSelected = isOptionSelected(opt, currentValues);\n if (isSelected) {\n // Remove from selection\n const newValues = currentValues.filter(v => !isOptionsEqual(v, opt));\n onChange(newValues);\n }\n else {\n // Add to selection\n onChange([...currentValues, opt]);\n }\n // Don't close the popover in multiple mode\n }\n else {\n setOpen(false);\n onChange(opt);\n }\n };\n // Helper function to check if an option is selected\n const isOptionSelected = (option, selectedValues) => {\n if (!selectedValues || selectedValues.length === 0)\n return false;\n return selectedValues.some(v => isOptionsEqual(v, option));\n };\n // Helper function to compare options for equality\n const isOptionsEqual = (a, b) => {\n // Handle null/undefined values\n if (a == null || b == null) {\n return a === b;\n }\n if (typeof by === 'string') {\n return a[by] === b[by];\n }\n else if (typeof by === 'function') {\n return by(a, b);\n }\n else {\n return isEqual(a, b);\n }\n };\n let filteredOptions = options || [];\n function getFilterByFn(filterBy) {\n if (!filterBy) {\n return (o) => String(o).toLowerCase();\n }\n else if (typeof filterBy === 'string') {\n return (o) => String(o[filterBy]).toLowerCase();\n }\n else {\n return filterBy;\n }\n }\n const filterLc = filterValue.toLowerCase();\n const filterFn = getFilterByFn(filterBy);\n filteredOptions = filteredOptions.filter(o => filterFn(o).includes(filterLc));\n const renderSingleValue = () => {\n if (!value || (Array.isArray(value) && value.length === 0)) {\n return _jsx(\"span\", { className: \"text-muted\", children: placeholder });\n }\n const singleValue = Array.isArray(value) ? value[0] : value;\n return optionLabel ? optionLabel(singleValue) : singleValue;\n };\n const renderMultipleValue = () => {\n const arrayValue = Array.isArray(value) ? value : (value ? [value] : []);\n if (arrayValue.length === 0) {\n return _jsx(\"span\", { className: \"text-muted\", children: placeholder });\n }\n if (arrayValue.length === 1) {\n return optionLabel ? optionLabel(arrayValue[0]) : arrayValue[0];\n }\n return (_jsxs(\"div\", { className: \"flex flex-wrap gap-1\", children: [arrayValue.slice(0, 1).map((item, index) => (_jsx(\"span\", { className: \"inline-flex items-center gap-1 px-2 py-1 text-xs bg-muted rounded\", children: optionLabel ? optionLabel(item) : item }, index))), arrayValue.length > 1 && (_jsxs(\"span\", { className: \"inline-flex items-center px-2 py-1 text-xs bg-muted rounded\", children: [\"+\", arrayValue.length - 1, \" more\"] }))] }));\n };\n // Render the options list content\n const renderOptionsContent = () => (_jsxs(_Fragment, { children: [filterBy && (_jsxs(\"div\", { className: 'flex justify-start items-center mb-1', children: [_jsx(\"div\", { className: 'mx-2', children: _jsx(SearchIcon, { className: \"size-4\" }) }), _jsx(Input, { variant: 'unstyled', value: filterValue, onChange: setFilterValue, className: \"w-full p-1 rounded-md\", placeholder: \"Search...\" })] })), _jsx(Command, { className: \"overflow-hidden\", children: _jsxs(CommandList, { className: inline ? \"max-h-full overflow-y-auto\" : \"max-h-[200px] overflow-y-auto\", children: [_jsx(CommandEmpty, { children: \"No result found.\" }), _jsx(CommandGroup, { children: filteredOptions?.map((opt, index) => {\n const isSelected = multiple\n ? isOptionSelected(opt, Array.isArray(value) ? value : [])\n : value != null ? isOptionsEqual(value, opt) : false;\n return (_jsx(CommandItem, { onSelect: () => _onClick(opt), className: \"w-full\", children: multiple || inline ? (_jsxs(\"div\", { className: 'w-full flex justify-between items-center cursor-pointer', children: [_jsx(\"div\", { className: 'w-full truncate text-left', children: optionLabel ? optionLabel(opt) : opt }), isSelected && _jsx(Check, { className: \"size-4\" })] })) : (_jsxs(PopoverClose, { className: 'w-full flex justify-between items-center', children: [_jsx(\"div\", { className: 'w-full truncate text-left', children: optionLabel ? optionLabel(opt) : opt }), isSelected && _jsx(Check, { className: \"size-4\" })] })) }, index));\n }) })] }) }), addNew && (_jsx(\"div\", { className: 'p-1', children: _jsxs(\"a\", { onClick: addNew, className: clsx('gap-x-2 px-2 py-1.5 truncate group flex rounded-md items-center text-sm cursor-pointer hover:bg-accent'), children: [_jsx(SquarePlus, { size: 16, strokeWidth: 1.25, absoluteStrokeWidth: true }), addNewLabel] }) }))] }));\n if (inline) {\n return (_jsx(\"div\", { className: clsx(className, border && 'border border-border rounded-md', \"bg-popover p-1\", popupClass), children: renderOptionsContent() }));\n }\n return (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(\"div\", { ref: triggerRef, onClick: handleTriggerClick, className: clsx(className, border && (isMissingValue ? 'border border-destructive' : 'border border-border'), 'flex flex-row gap-2 items-center justify-between p-2 rounded-md group relative [&:hover_.clear-button]:opacity-100', !disabled ? \"cursor-pointer hover:bg-muted\" : \"cursor-not-allowed text-muted\"), children: [_jsxs(\"div\", { className: clsx(\"flex flex-col w-full rounded-md text-sm min-h-6 items-center justify-center truncate\", !disabled && \"\", isClearable && value && (Array.isArray(value) ? value.length > 0 : true) && \"pr-6\"), children: [label && _jsx(\"div\", { className: 'w-full text-left text-xs font-semibold', children: label }), _jsxs(\"div\", { className: clsx('w-full text-left ', !disabled && '', isMissingValue && 'text-destructive'), children: [isMissingValue && (_jsx(VTooltip, { description: missingValueWarning, placement: \"top\", asChild: true, children: _jsx(AlertTriangle, { className: \"inline-block size-4 mr-1 -mt-0.5 cursor-help\" }) })), multiple ? renderMultipleValue() : renderSingleValue()] })] }), _jsxs(\"div\", { className: \"flex items-center gap-1 group\", children: [isClearable && value && (Array.isArray(value) ? value.length > 0 : true) && (_jsx(Button, { variant: \"link\", size: \"icon\", disabled: disabled, alt: clearTitle || \"Clear selection\", onClick: (e) => {\n e.stopPropagation();\n if (multiple) {\n onChange([]);\n }\n else {\n onChange(undefined);\n }\n }, className: \"cursor-pointer hover:bg-muted/20 clear-button opacity-0 transition-opacity duration-200 rounded p-1\", children: clearIcon ? clearIcon : _jsx(X, { className: \"size-4\" }) })), !disabled && (_jsx(ChevronsUpDown, { className: \"size-4 opacity-50\" }))] })] }) }), _jsx(PopoverContent, { style: { width: `${width}px`, zIndex: 1000000 }, className: clsx(\"min-w-[8rem] w-64 bg-popover p-1 border shadow\", \"divide-y divide-border\", popupClass), children: renderOptionsContent() })] }));\n}\n//# sourceMappingURL=selectBox.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { cn } from \"../libs/utils\";\nimport { SelectBox } from \"./selectBox\";\nconst TabsContext = React.createContext({\n size: undefined,\n tabs: undefined,\n current: undefined,\n setTab: undefined,\n responsive: false,\n variant: \"tabs\",\n updateHash: true\n});\nconst Tabs = ({ tabs, defaultValue, current, className, fullWidth, children, onTabChange, responsive = false, variant = \"tabs\", updateHash = true }) => {\n // Initialize value\n const [value, setValue] = React.useState(() => {\n // First check if current is provided\n const currentValue = typeof current === 'function' ? current() : current;\n if (currentValue) {\n return currentValue;\n }\n // Then check hash\n const hash = window.location.hash;\n const currentTab = hash ? hash.substring(1) : undefined;\n // Check if the tab from hash exists in tabs\n if (currentTab && tabs.some(tab => tab.name === currentTab)) {\n return currentTab;\n }\n // Fall back to default or first tab\n return defaultValue || tabs[0]?.name;\n });\n // Update when current prop changes (but don't create a loop)\n React.useEffect(() => {\n const currentValue = typeof current === 'function' ? current() : current;\n if (currentValue && currentValue !== value) {\n setValue(currentValue);\n }\n }, [current]);\n // Listen to hash changes only when there's no current prop being controlled externally\n React.useEffect(() => {\n if (current)\n return; // Skip hash handling if controlled by parent\n const handleHashChange = () => {\n const hash = window.location.hash;\n const currentTab = hash ? hash.substring(1) : undefined;\n // Only update if the tab exists in tabs\n if (currentTab && tabs.some(tab => tab.name === currentTab)) {\n setValue(currentTab);\n }\n else if (!hash && defaultValue) {\n // If no hash, fall back to default\n setValue(defaultValue);\n }\n };\n // Check initial hash\n handleHashChange();\n window.addEventListener('hashchange', handleHashChange);\n return () => window.removeEventListener('hashchange', handleHashChange);\n }, [current, tabs, defaultValue]);\n const handleValueChange = (newValue) => {\n setValue(newValue);\n // Update the URL hash when tab changes (only if updateHash is true and not controlled by parent)\n if (updateHash && !current) {\n // Preserve existing history state when changing hash\n const currentState = window.history.state;\n const newUrl = window.location.pathname + window.location.search + '#' + newValue;\n window.history.pushState(currentState, '', newUrl);\n }\n if (onTabChange) {\n onTabChange(newValue);\n }\n };\n const setTab = React.useCallback((tabName) => {\n handleValueChange(tabName);\n }, [handleValueChange]);\n return (_jsx(TabsContext.Provider, { value: { tabs, size: fullWidth ? tabs.length : 0, current: value, setTab, responsive: responsive, variant, updateHash }, children: _jsx(TabsPrimitive.Root, { defaultValue: value || tabs[0]?.name, value: value, onValueChange: handleValueChange, className: className, children: children }) }));\n};\nconst TabsBar = ({ className }) => {\n const { tabs, size, current, setTab, responsive, variant, updateHash } = React.useContext(TabsContext);\n const fullWidth = size !== 0;\n const handleTabChange = React.useCallback((tabName) => {\n if (!tabs || !setTab)\n return;\n const tab = tabs.find(t => t.name === tabName);\n if (tab?.href && updateHash) {\n // Preserve existing history state when changing tabs\n const currentState = window.history.state;\n window.history.pushState(currentState, '', tab.href);\n }\n setTab(tabName);\n }, [tabs, setTab, updateHash]);\n if (!tabs || !setTab) {\n console.warn(\"TabsBar: No tabs provided or setTab not available\");\n return null;\n }\n return (_jsxs(_Fragment, { children: [responsive && (_jsx(\"div\", { className: \"px-2 block lg:hidden\", children: _jsx(SelectBox, { label: \"Tab\", className: (className), options: tabs, optionLabel: (tab) => typeof tab.label === 'string' ? tab.label : String(tab.label), value: tabs.find(tab => tab.name === current), onChange: (tab) => {\n handleTabChange(tab.name);\n } }) })), _jsx(TabsList, { size: size, variant: variant, className: cn((fullWidth ? \"w-full\" : \"\"), className, (responsive ? \"hidden lg:flex\" : \"\")), children: tabs.map((tab) => (_jsx(TabsTrigger, { value: tab.name, disabled: tab.disabled, href: tab.href, variant: variant, onClick: () => handleTabChange(tab.name), children: tab.label }, tab.name))) })] }));\n};\nconst TabsPanel = ({ className }) => {\n const { tabs } = React.useContext(TabsContext);\n if (!tabs)\n return null;\n return (_jsx(_Fragment, { children: tabs.map((tab) => (_jsx(TabsContent, { value: tab.name, className: className, children: tab.content }, tab.name))) }));\n};\nconst TabsList = React.forwardRef(({ className, size, variant = \"tabs\", ...props }, ref) => (_jsx(TabsContext.Provider, { value: { size, variant }, children: _jsx(TabsPrimitive.List, { ref: ref, className: cn(variant === \"tabs\"\n ? \"border-b -mb-px flex space-x-4\"\n : \"flex space-x-2 p-1 rounded-md\", className), ...props }) })));\nTabsList.displayName = TabsPrimitive.List.displayName;\nconst TabsTrigger = React.forwardRef(({ className, href, variant = \"tabs\", ...props }, ref) => {\n const { size } = React.useContext(TabsContext);\n const handleClick = React.useCallback((event) => {\n if (href) {\n event.preventDefault();\n // Preserve existing history state when changing tabs\n const currentState = window.history.state;\n window.history.pushState(currentState, '', href);\n }\n if (props.onClick) {\n props.onClick(event);\n }\n }, [href, props.onClick]);\n return (_jsx(TabsPrimitive.Trigger, { ref: ref, className: cn(variant === \"tabs\"\n ? cn(\"border-b-2 px-2 py-1.5 text-sm font-medium whitespace-nowrap cursor-pointer\", \"border-transparent text-muted-foreground hover:border-border hover:text-foreground\", \"data-[state=active]:border-primary data-[state=active]:text-primary\", \"disabled:pointer-events-none disabled:opacity-50\")\n : cn(\"px-3 py-1.5 text-sm font-medium whitespace-nowrap cursor-pointer rounded-sm transition-colors\", \"tborder border-input bg-muted shadow-xs hover:bg-muted ring-inset\", \"data-[state=active]:bg-primary data-[state=active]:text-white data-[state=active]:shadow-sm\", \"disabled:pointer-events-none disabled:opacity-50\"), className, size ? `w-1/${size}` : \"\"), onClick: handleClick, ...props }));\n});\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\nconst TabsContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.Content, { ref: ref, className: cn(\"focus-visible:outline-none\", \"flex-1 overflow-y-auto min-h-0 pt-2\", className), ...props })));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\nexport { Tabs, TabsBar, TabsPanel, TabsList, TabsTrigger, TabsContent };\n//# sourceMappingURL=tabs.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../libs/utils\";\nconst labelVariants = cva(\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\");\nconst Label = React.forwardRef(({ className, required, ...props }, ref) => (_jsxs(LabelPrimitive.Root, { ref: ref, className: cn(labelVariants(), className), ...props, children: [props.children, required && _jsx(\"span\", { className: \"text-destructive-foreground ml-1\", children: \"*\" })] })));\nLabel.displayName = LabelPrimitive.Root.displayName;\nexport { Label };\n//# sourceMappingURL=label.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\nimport { cn } from \"../libs/utils\";\nexport function Breadcrumbs({ path, maxItems = 3, className, separator }) {\n const items = path || [];\n const renderBreadcrumbItem = (item) => {\n if (item.onClick) {\n return _jsx(BreadcrumbButton, { onClick: item.onClick, href: item.href, children: item.label });\n }\n else if (item.href) {\n return _jsx(BreadcrumbButton, { href: item.href, children: item.label });\n }\n else {\n return _jsx(BreadcrumbPage, { children: item.label });\n }\n };\n if (items.length <= maxItems) {\n return (_jsx(Breadcrumb, { className: cn(\"w-full\", className), children: _jsx(BreadcrumbList, { children: items.map((item, index) => (_jsxs(React.Fragment, { children: [_jsx(BreadcrumbItem, { children: renderBreadcrumbItem(item) }), index < items.length - 1 &&\n _jsx(BreadcrumbSeparator, { children: separator ?? _jsx(ChevronRight, {}) })] }, index))) }) }));\n }\n const lastThreeItems = items.slice(-(maxItems - 1));\n return (_jsx(Breadcrumb, { className: cn(\"w-full\", className), children: _jsxs(BreadcrumbList, { children: [_jsx(BreadcrumbItem, { children: _jsx(BreadcrumbEllipsis, {}) }), _jsx(BreadcrumbSeparator, { children: separator ?? _jsx(ChevronRight, {}) }), lastThreeItems.map((item, index) => (_jsxs(React.Fragment, { children: [_jsx(BreadcrumbItem, { children: renderBreadcrumbItem(item) }), index < lastThreeItems.length - 1 && _jsx(BreadcrumbSeparator, { children: separator ?? _jsx(ChevronRight, {}) })] }, index)))] }) }));\n}\nconst Breadcrumb = React.forwardRef(({ ...props }, ref) => _jsx(\"nav\", { ref: ref, \"aria-label\": \"breadcrumb\", ...props }));\nBreadcrumb.displayName = \"Breadcrumb\";\nconst BreadcrumbList = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"ol\", { ref: ref, className: cn(\"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\", className), ...props })));\nBreadcrumbList.displayName = \"BreadcrumbList\";\nconst BreadcrumbItem = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"li\", { ref: ref, className: cn(\"inline-flex items-center gap-1.5 text-muted\", className), ...props })));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\nconst BreadcrumbLink = React.forwardRef(({ asChild, className, ...props }, ref) => {\n return (_jsx(\"a\", { ref: ref, className: cn(\"transition-colors hover:text-muted\", className), ...props }));\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\nconst BreadcrumbButton = React.forwardRef(({ className, href, onClick, ...props }, ref) => {\n const handleClick = (e) => {\n e.preventDefault();\n if (onClick) {\n onClick(e);\n }\n };\n return (_jsx(\"button\", { ref: ref, className: cn(\"transition-colors hover:text-foreground cursor-pointer\", className), onClick: handleClick, ...props }));\n});\nBreadcrumbButton.displayName = \"BreadcrumbButton\";\nconst BreadcrumbPage = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"span\", { ref: ref, role: \"link\", \"aria-disabled\": \"true\", \"aria-current\": \"page\", className: cn(\"font-normal text-foreground\", className), ...props })));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\nconst BreadcrumbSeparator = ({ children, className, ...props }) => (_jsx(\"li\", { role: \"presentation\", \"aria-hidden\": \"true\", className: cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className), ...props, children: children ?? _jsx(ChevronRight, {}) }));\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\nconst BreadcrumbEllipsis = ({ className, ...props }) => (_jsxs(\"span\", { role: \"presentation\", \"aria-hidden\": \"true\", className: cn(\"flex h-9 w-9 items-center justify-center\", className), ...props, children: [_jsx(MoreHorizontal, { className: \"h-4 w-4\" }), _jsx(\"span\", { className: \"sr-only\", children: \"More\" })] }));\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n//# sourceMappingURL=breadcrumb.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { cn } from \"../../libs/utils\";\nimport { useEffect, useRef, useState } from \"react\";\nexport const AnimateChangeInHeight = ({ children, className, }) => {\n const containerRef = useRef(null);\n const [height, setHeight] = useState(\"auto\");\n useEffect(() => {\n if (containerRef.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n // We only have one entry, so we can use entries[0].\n const observedHeight = entries[0].contentRect.height;\n setHeight(observedHeight);\n });\n resizeObserver.observe(containerRef.current);\n return () => {\n // Cleanup the observer when the component is unmounted\n resizeObserver.disconnect();\n };\n }\n }, []);\n return (_jsx(\"div\", { className: cn(className, \"overflow-hidden transition-all duration-100 ease-in\"), style: { height }, children: _jsx(\"div\", { ref: containerRef, children: children }) }));\n};\n//# sourceMappingURL=animateChangeInHeight.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"../libs/utils\";\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (_jsx(CheckboxPrimitive.Root, { ref: ref, className: cn(\"peer size-4 shrink-0 rounded-sm border border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-white\", className), ...props, children: _jsx(CheckboxPrimitive.Indicator, { className: cn(\"flex items-center justify-center text-current\"), children: _jsx(Check, { className: \"size-4\" }) }) })));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\nexport { Checkbox };\n//# sourceMappingURL=checkbox.js.map","import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useEffect, useState } from 'react';\nexport function DynamicLabel({ value, labelRenderer, fallbackLabel }) {\n const [label, setLabel] = useState(fallbackLabel || value);\n const [isLoading, setIsLoading] = useState(false);\n useEffect(() => {\n if (!labelRenderer) {\n setLabel(fallbackLabel || value);\n return;\n }\n const renderLabel = async () => {\n setIsLoading(true);\n try {\n const result = labelRenderer(value);\n if (result instanceof Promise) {\n const resolvedLabel = await result;\n setLabel(resolvedLabel);\n }\n else {\n setLabel(result);\n }\n }\n catch (error) {\n console.error('Error rendering label:', error);\n setLabel(fallbackLabel || value);\n }\n finally {\n setIsLoading(false);\n }\n };\n renderLabel();\n }, [value, labelRenderer, fallbackLabel]);\n if (isLoading) {\n return _jsx(\"span\", { className: \"text-muted-foreground\", children: \"Loading...\" });\n }\n return _jsx(_Fragment, { children: label });\n}\n//# sourceMappingURL=DynamicLabel.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useRef, useState } from \"react\";\nimport { Checkbox } from \"../../checkbox\";\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from \"../../command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../../popover\";\nimport { AnimateChangeInHeight } from \"../animateChangeInHeight\";\nimport { DynamicLabel } from \"../DynamicLabel\";\nexport const SelectionCombobox = ({ filterType, filterValues, setFilterValues, options, labelRenderer, }) => {\n const [open, setOpen] = useState(false);\n const [commandInput, setCommandInput] = useState(\"\");\n const commandInputRef = useRef(null);\n const nonSelectedFilterValues = options?.filter((option) => !filterValues.some(filter => filter.value === option.value));\n return (_jsxs(Popover, { _open: open, onOpenChange: (open) => {\n setOpen(open);\n if (!open) {\n setTimeout(() => {\n setCommandInput(\"\");\n }, 200);\n }\n }, children: [_jsx(PopoverTrigger, { className: \"rounded-none p-1 h-8 bg-muted hover:bg-muted/50 transition text-muted hover:text-primary shrink-0\", children: _jsx(\"div\", { className: \"flex gap-1.5 items-center\", children: filterValues?.length === 1 ? ((() => {\n const option = filterValues[0];\n return (_jsx(DynamicLabel, { value: option.value || '', labelRenderer: labelRenderer, fallbackLabel: option.label }));\n })()) : (`${filterValues?.length} selected`) }) }), _jsx(PopoverContent, { className: \"w-[300px] p-0\", children: _jsx(AnimateChangeInHeight, { children: _jsxs(Command, { children: [_jsx(CommandInput, { placeholder: filterType, className: \"h-9\", value: commandInput, onInputCapture: (e) => {\n setCommandInput(e.currentTarget.value);\n }, ref: commandInputRef }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: \"No results found.\" }), _jsx(CommandGroup, { children: filterValues.map((value) => {\n return (_jsxs(CommandItem, { className: \"group flex gap-2 items-center\", onSelect: () => {\n setFilterValues(filterValues.filter((v) => v.value !== value.value));\n setTimeout(() => {\n setCommandInput(\"\");\n }, 200);\n setOpen(false);\n }, children: [_jsx(\"input\", { type: \"checkbox\", checked: true, onChange: () => { } }), _jsx(DynamicLabel, { value: value.value || '', labelRenderer: labelRenderer, fallbackLabel: value.label })] }, value.value));\n }) }), nonSelectedFilterValues?.length > 0 && (_jsxs(_Fragment, { children: [_jsx(CommandSeparator, {}), _jsx(CommandGroup, { children: nonSelectedFilterValues\n .filter(option => String(option.label || option.value).toLowerCase().includes(commandInput.toLowerCase()))\n .map((filter) => (_jsxs(CommandItem, { className: \"group flex gap-2 items-center\", value: String(filter.label || filter.value), onSelect: () => {\n setFilterValues([...filterValues, {\n value: filter.value,\n label: filter.label\n }]);\n setTimeout(() => {\n setCommandInput(\"\");\n }, 200);\n setOpen(false);\n }, children: [_jsx(Checkbox, { checked: false, className: \"opacity-0 group-data-[selected=true]:opacity-100\" }), _jsx(\"span\", { className: \"text-muted\", children: _jsx(DynamicLabel, { value: filter.value || '', labelRenderer: filter.labelRenderer || labelRenderer, fallbackLabel: filter.label }) })] }, filter.value))) })] }))] })] }) }) })] }));\n};\n//# sourceMappingURL=SelectCombobox.js.map","export const calendarStyles = `\n.calendar-wrapper .react-calendar__navigation {\n display: flex !important;\n justify-content: space-between !important;\n align-items: center !important;\n gap: 8px !important;\n padding: 8px !important;\n}\n\n.calendar-wrapper .react-calendar__navigation__label {\n flex: 1 !important;\n text-align: center !important;\n font-weight: 500 !important;\n}\n\n.calendar-wrapper .react-calendar__navigation__arrow {\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n min-width: 32px !important;\n height: 32px !important;\n border-radius: 4px !important;\n border: 1px solid hsl(var(--border)) !important;\n background: hsl(var(--background)) !important;\n color: hsl(var(--foreground)) !important;\n}\n\n.calendar-wrapper .react-calendar__navigation__arrow:hover {\n background: oklch(var(--muted)) !important;\n}\n\n.calendar-wrapper .react-calendar__tile {\n cursor: pointer !important;\n width: 0.5rem !important;\n font-size: 0.875rem !important;\n}\n\n.calendar-wrapper .react-calendar__tile:hover,\n.calendar-wrapper .react-calendar__month-view__days__day:hover,\n.calendar-wrapper .react-calendar__decade-view__years__year:hover,\n.calendar-wrapper .react-calendar__year-view__months__month:hover {\n background: #b5b5b580 !important;\n}\n\n.calendar-wrapper .react-calendar__tile:not(.react-calendar__tile--active):hover {\n background: #b5b5b580 !important;\n}\n\n.calendar-wrapper .react-calendar__tile--hover {\n background: #b5b5b580 !important;\n}\n\n.calendar-wrapper .react-calendar__tile--disabled,\n.calendar-wrapper .react-calendar__tile:disabled,\n.calendar-wrapper .react-calendar__month-view__days__day--disabled,\n.calendar-wrapper .react-calendar__month-view__days__day:disabled,\n.calendar-wrapper .react-calendar__year-view__months__month--disabled,\n.calendar-wrapper .react-calendar__year-view__months__month:disabled,\n.calendar-wrapper .react-calendar__decade-view__years__year--disabled,\n.calendar-wrapper .react-calendar__decade-view__years__year:disabled {\n cursor: not-allowed !important;\n color: #9ca3af !important;\n}\n\n.calendar-wrapper .react-calendar__tile--disabled:hover,\n.calendar-wrapper .react-calendar__tile:disabled:hover,\n.calendar-wrapper .react-calendar__month-view__days__day--disabled:hover,\n.calendar-wrapper .react-calendar__month-view__days__day:disabled:hover,\n.calendar-wrapper .react-calendar__year-view__months__month--disabled:hover,\n.calendar-wrapper .react-calendar__year-view__months__month:disabled:hover,\n.calendar-wrapper .react-calendar__decade-view__years__year--disabled:hover,\n.calendar-wrapper .react-calendar__decade-view__years__year:disabled:hover {\n background: transparent !important;\n}\n\n\n.calendar-wrapper .react-calendar__month-view__weekdays {\n font-size: 0.75rem !important;\n}\n\n.calendar-wrapper .react-calendar__month-view__weekdays__weekday {\n width: 0.75rem !important;\n font-size: 0.75rem !important;\n text-align: center !important;\n}\n \n`;\n//# sourceMappingURL=filter-styles.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useState, useEffect } from \"react\";\nimport dayjs from \"dayjs\";\nimport ReactCalendar from \"react-calendar\";\nimport { Button } from \"../../button\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../../popover\";\nimport { calendarStyles } from \"../filter-styles\";\nexport const DateCombobox = ({ filterValues, setFilterValues, isRange = false, }) => {\n const [open, setOpen] = useState(false);\n const [localDateRange, setLocalDateRange] = useState([null, null]);\n // For single date\n const selectedDate = filterValues[0] ? new Date(filterValues[0]) : undefined;\n // For date range - use local state for immediate feedback, fall back to filter values\n const dateRange = isRange ? [\n localDateRange[0] || (filterValues[0] ? new Date(filterValues[0]) : null),\n localDateRange[1] || (filterValues[1] ? new Date(filterValues[1]) : null)\n ] : [null, null];\n // Update local state when filter values change\n useEffect(() => {\n if (isRange) {\n setLocalDateRange([\n filterValues[0] ? new Date(filterValues[0]) : null,\n filterValues[1] ? new Date(filterValues[1]) : null\n ]);\n }\n }, [filterValues, isRange]);\n const getDisplayText = () => {\n if (isRange) {\n if (dateRange[0] && dateRange[1]) {\n return (_jsxs(\"span\", { className: \"flex items-center gap-1.5\", children: [_jsx(\"span\", { className: \"font-medium\", children: dayjs(dateRange[0]).format(\"MMMM DD, YYYY\") }), _jsx(\"span\", { className: \"text-xs text-muted-foreground\", children: \"-\" }), _jsx(\"span\", { className: \"font-medium\", children: dayjs(dateRange[1]).format(\"MMMM DD, YYYY\") })] }));\n }\n else if (dateRange[0]) {\n return (_jsxs(\"span\", { className: \"flex items-center gap-1.5\", children: [_jsx(\"span\", { className: \"font-medium\", children: dayjs(dateRange[0]).format(\"MMMM DD, YYYY\") }), _jsx(\"span\", { className: \"text-xs text-muted-foreground\", children: \"- Select end\" })] }));\n }\n else {\n return _jsx(\"span\", { className: \"text-muted-foreground\", children: \"Select range\" });\n }\n }\n else {\n return selectedDate ? dayjs(selectedDate).format(\"MMMM DD, YYYY\") : \"Pick a date\";\n }\n };\n const handleDateChange = (date) => {\n if (isRange) {\n // Update local state immediately for visual feedback\n if (Array.isArray(date)) {\n setLocalDateRange([date[0], date[1]]);\n // Update filter values\n if (date[0] && date[1]) {\n setFilterValues([\n dayjs(date[0]).format(\"YYYY-MM-DD\"),\n dayjs(date[1]).format(\"YYYY-MM-DD\")\n ]);\n }\n else if (date[0]) {\n setFilterValues([dayjs(date[0]).format(\"YYYY-MM-DD\")]);\n }\n }\n }\n else {\n if (date) {\n const actualDate = Array.isArray(date) ? date[0] : date;\n if (actualDate) {\n setFilterValues([dayjs(actualDate).format(\"YYYY-MM-DD\")]);\n setOpen(false);\n }\n }\n }\n };\n return (_jsxs(Popover, { _open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { className: \"rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-primary shrink-0 transition\", children: _jsx(\"div\", { className: \"flex gap-1.5 items-center min-h-[20px]\", children: getDisplayText() }) }), _jsx(PopoverContent, { className: \"w-auto p-0\", align: \"start\", side: \"bottom\", alignOffset: -4, sideOffset: 6, children: _jsx(\"div\", { className: \"p-2\", children: isRange ? (_jsxs(_Fragment, { children: [_jsxs(\"div\", { className: \"calendar-wrapper\", children: [_jsx(\"style\", { children: calendarStyles }), _jsx(ReactCalendar, { value: dateRange, onChange: handleDateChange, selectRange: true, returnValue: \"range\", maxDate: (() => {\n const maxDate = new Date();\n maxDate.setHours(23, 59, 59, 999);\n return maxDate;\n })(), className: \"mb-2 border-0\", tileClassName: ({ date, view }) => {\n if (view === 'month') {\n const currentDate = date.getTime();\n const today = new Date();\n today.setHours(23, 59, 59, 999);\n // Check if date is disabled (future date)\n if (currentDate > today.getTime()) {\n return 'text-muted/20 cursor-not-allowed';\n }\n // Handle selected date styling\n if (dateRange[0]) {\n const startDate = dateRange[0].getTime();\n if (dateRange[1]) {\n // Both dates selected\n const endDate = dateRange[1].getTime();\n if (currentDate === startDate) {\n return 'bg-primary text-primary-foreground rounded-l-md font-semibold';\n }\n if (currentDate === endDate) {\n return 'bg-primary text-primary-foreground rounded-r-md font-semibold';\n }\n if (currentDate > startDate && currentDate < endDate) {\n return 'bg-primary/20 text-primary font-medium';\n }\n }\n else {\n // Only start date selected\n if (currentDate === startDate) {\n return 'bg-primary text-primary-foreground rounded-md font-semibold';\n }\n }\n }\n }\n return '';\n } })] }), dateRange[0] && dateRange[1] && (_jsx(\"div\", { className: \"border-t pt-2\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: () => setOpen(false), children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: () => setOpen(false), children: \"Apply\" })] }) }))] })) : (_jsxs(\"div\", { className: \"calendar-wrapper\", children: [_jsx(\"style\", { children: calendarStyles }), _jsx(ReactCalendar, { value: selectedDate, onChange: handleDateChange, selectRange: false, maxDate: (() => {\n const maxDate = new Date();\n maxDate.setHours(23, 59, 59, 999);\n return maxDate;\n })(), className: \"mb-2 border-0\", tileClassName: ({ date, view }) => {\n if (view === 'month') {\n const currentDate = date.getTime();\n const today = new Date();\n today.setHours(23, 59, 59, 999);\n // Check if date is disabled (future date)\n if (currentDate > today.getTime()) {\n return 'text-muted/20 cursor-not-allowed';\n }\n // Handle selected date styling\n if (selectedDate && currentDate === selectedDate.getTime()) {\n return 'bg-primary text-primary-foreground rounded-md font-semibold';\n }\n }\n return '';\n } })] })) }) })] }));\n};\n//# sourceMappingURL=DateCombobox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nimport { Button } from \"../../button\";\nimport { Input } from \"../../input\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../../popover\";\nexport const TextCombobox = ({ filterType, filterValue, setFilterValue, }) => {\n const [open, setOpen] = useState(false);\n const [inputValue, setInputValue] = useState(filterValue);\n const handleKeyDown = (event) => {\n if (event.key === \"Enter\") {\n setFilterValue(inputValue);\n setOpen(false);\n }\n };\n return (_jsxs(Popover, { _open: open, onOpenChange: (open) => {\n setOpen(open);\n if (!open && inputValue !== filterValue) {\n setInputValue(filterValue);\n }\n }, children: [_jsx(PopoverTrigger, { className: \"rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-primary shrink-0 transition\", children: _jsx(\"div\", { className: \"flex gap-1.5 items-center\", children: filterValue || \"Enter text...\" }) }), _jsx(PopoverContent, { className: \"w-[300px] p-3\", children: _jsxs(\"div\", { className: \"flex flex-col gap-1\", children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted\", children: _jsx(\"span\", { children: filterType }) }), _jsx(Input, { autoFocus: true, type: \"text\", size: \"sm\", value: inputValue, onChange: setInputValue, onKeyDown: handleKeyDown, placeholder: \"Enter text...\" }), _jsx(\"div\", { className: \"mt-2 p-2 border-t\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: () => {\n setInputValue(filterValue);\n setOpen(false);\n }, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: () => {\n setFilterValue(inputValue);\n setOpen(false);\n }, children: \"Apply\" })] }) })] }) })] }));\n};\n//# sourceMappingURL=TextCombobox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nimport { Button } from \"../../button\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../../popover\";\nimport { InputList } from \"../../../index\";\nexport const StringListCombobox = ({ filterType, filterValues, setFilterValues, }) => {\n const [open, setOpen] = useState(false);\n const [tags, setTags] = useState(filterValues);\n const handleApply = () => {\n setFilterValues(tags);\n setOpen(false);\n };\n return (_jsxs(Popover, { _open: open, onOpenChange: (open) => {\n setOpen(open);\n if (!open && JSON.stringify(tags) !== JSON.stringify(filterValues)) {\n setTags(filterValues);\n }\n }, children: [_jsx(PopoverTrigger, { className: \"rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-primary shrink-0 transition\", children: _jsx(\"div\", { className: \"flex gap-1.5 items-center\", children: filterValues.length > 0 ? (filterValues.length === 1 ? filterValues[0] : `${filterValues.length} tags`) : (\"Add tags...\") }) }), _jsx(PopoverContent, { className: \"w-[300px] p-3\", children: _jsxs(\"div\", { className: \"flex flex-col gap-3\", children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted\", children: _jsx(\"span\", { children: filterType }) }), _jsx(InputList, { value: tags, onChange: setTags, placeholder: `Add ${filterType.toLowerCase()}...` }), _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { size: \"sm\", variant: \"ghost\", onClick: () => {\n setTags(filterValues);\n setOpen(false);\n }, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleApply, children: \"Apply\" })] })] }) })] }));\n};\n//# sourceMappingURL=StringListCombobox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { X } from \"lucide-react\";\nimport { Button } from \"../button\";\nimport { DateCombobox, SelectionCombobox, TextCombobox, StringListCombobox } from \"./comboBox/comboBox\";\nimport dayjs from \"dayjs\";\nfunction generateComboboxOptions(filter, setFilters, filterGroups) {\n switch (filter.type) {\n case \"date\":\n return (_jsx(DateCombobox, { filterValues: Array.isArray(filter.value) && typeof filter.value[0] === 'object' ? filter.value.map((v) => v.value || '') : [], isRange: filter.multiple, setFilterValues: (filterValues) => {\n setFilters((prev) => prev.map((f) => f === filter ? {\n ...f,\n value: filterValues.length > 0 ?\n filterValues.map(dateValue => ({\n value: dateValue,\n label: dayjs(dateValue).format(\"LLL dd, y\"),\n })) : []\n } : f));\n } }));\n case \"text\":\n return (_jsx(TextCombobox, { filterType: filter.placeholder || filter.name, filterValue: Array.isArray(filter.value) && filter.value[0] && typeof filter.value[0] === 'object' ? filter.value[0].value || \"\" : \"\", setFilterValue: (textValue) => {\n setFilters((prev) => prev.map((f) => f === filter\n ? {\n ...f,\n value: [\n {\n value: textValue,\n label: textValue,\n },\n ],\n }\n : f));\n } }));\n case \"stringList\":\n return (_jsx(StringListCombobox, { filterType: filter.placeholder || filter.name, filterValues: Array.isArray(filter.value) && typeof filter.value[0] === 'string' ? filter.value : [], setFilterValues: (values) => {\n setFilters((prev) => prev.map((f) => f === filter\n ? { ...f, value: values }\n : f));\n } }));\n case 'select':\n default: {\n const filterGroup = filterGroups.find(group => group.name === filter.name);\n return (_jsx(SelectionCombobox, { filterType: filter.placeholder || filter.name, filterValues: Array.isArray(filter.value) && typeof filter.value[0] === 'object' ? filter.value : [], setFilterValues: (filterValues) => {\n setFilters((prev) => prev.map((f) => f === filter\n ? { ...f, value: filterValues }\n : f));\n }, options: filterGroup?.options || [], labelRenderer: filterGroup?.labelRenderer }));\n }\n }\n}\nexport default function Filters({ filters, setFilters, filterGroups, }) {\n return (_jsx(\"div\", { className: \"flex gap-2 flex-wrap justify-start\", children: filters\n .filter((filter) => filter.value?.length > 0)\n .map((filter) => (_jsxs(\"div\", { className: \"flex gap-[1px] items-center text-sm\", children: [_jsx(\"div\", { className: \"flex gap-1.5 shrink-0 rounded-l bg-muted p-1.5 h-8 items-center\", children: filter.placeholder || filter.name }), generateComboboxOptions(filter, setFilters, filterGroups), _jsx(Button, { variant: \"ghost\", size: \"icon\", onClick: () => {\n setFilters((prev) => prev.filter((f) => f !== filter));\n }, className: \"bg-muted rounded-l-none rounded-r-sm size-8 hover:text-primary hover:bg-muted/50 transition shrink-0\", children: _jsx(X, { className: \"size-6\" }) })] }, filter.name + '-' + (filter.type == 'date' ? 'date' : filter.type === 'stringList' && typeof filter.value[0] === 'string' ? filter.value.join(',') : Array.isArray(filter.value) ? filter.value.map((v) => v.value).join(',') : '')))) }));\n}\n//# sourceMappingURL=filters.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Button } from \"../../button\";\nimport { Input } from \"../../input\";\nexport default function TextFilter({ selectedView, textValue, setTextValue, setFilters, handleClose, filterGroups, }) {\n const handleTextFilterAdd = () => {\n setFilters((prev) => {\n return [\n ...prev,\n {\n name: selectedView || \"\",\n placeholder: filterGroups.find(group => group.name === selectedView)?.placeholder,\n value: [{ value: textValue, label: textValue }],\n type: \"text\",\n }\n ];\n });\n handleClose();\n };\n return (_jsxs(\"div\", { className: \"p-2 flex flex-col gap-1\", children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted\", children: _jsx(\"span\", { children: filterGroups.find(group => group.name === selectedView)?.placeholder }) }), _jsx(Input, { autoFocus: true, type: \"text\", size: \"sm\", value: textValue, onChange: setTextValue, onKeyDown: (e) => e.key === \"Enter\" && handleTextFilterAdd(), placeholder: \"Enter text...\" }), _jsx(\"div\", { className: \"mt-2 p-2 border-t\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: handleClose, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleTextFilterAdd, disabled: !textValue.trim(), children: \"Apply\" })] }) })] }));\n}\n//# sourceMappingURL=TextFilter.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport dayjs from \"dayjs\";\nimport { useState } from \"react\";\nimport Calendar from \"react-calendar\";\nimport { Button } from \"../../button\";\nimport { calendarStyles } from \"../filter-styles\";\nexport default function DateFilter({ selectedView, selectedDate, setSelectedDate, setFilters, filters, handleClose, filterGroups, }) {\n const [dateRange, setDateRange] = useState([null, null]);\n const [localDateRange, setLocalDateRange] = useState([null, null]);\n const selectedGroup = filterGroups.find(g => g.name === selectedView);\n const isDateRange = selectedGroup?.multiple;\n // Create maxDate set to end of today to ensure today is selectable\n const maxDate = new Date();\n maxDate.setHours(23, 59, 59, 999);\n // Use local state for immediate feedback, fall back to dateRange\n const effectiveDateRange = [\n localDateRange[0] || dateRange[0],\n localDateRange[1] || dateRange[1]\n ];\n const handleDateChange = (value) => {\n if (isDateRange) {\n // Handle date range selection\n if (Array.isArray(value)) {\n // Update local state immediately for visual feedback\n setLocalDateRange([value[0], value[1]]);\n // Also update the main dateRange state\n setDateRange([value[0], value[1]]);\n }\n else {\n // Single date in range mode\n setLocalDateRange([value, null]);\n setDateRange([value, null]);\n }\n }\n else {\n // Handle single date selection\n const date = Array.isArray(value) ? value[0] : value;\n setSelectedDate(date || undefined);\n if (date) {\n // Set date to start of day (00:00)\n const selectedDateStart = new Date(date);\n selectedDateStart.setHours(0, 0, 0, 0);\n setFilters([\n ...filters,\n {\n name: selectedView || \"\",\n placeholder: selectedGroup?.placeholder,\n value: [\n {\n value: selectedDateStart.toISOString(),\n label: dayjs(selectedDateStart).format(\"LLL dd, y\"),\n }\n ],\n type: selectedGroup?.type || \"date\",\n multiple: selectedGroup?.multiple || false,\n },\n ]);\n handleClose();\n }\n }\n };\n const handleApplyDateRange = () => {\n if (dateRange[0]) {\n const startDate = new Date(dateRange[0]);\n const endDate = dateRange[1] ? new Date(dateRange[1]) : new Date(dateRange[0]);\n // Set start date to beginning of day\n startDate.setHours(0, 0, 0, 0);\n // Set end date to end of day\n endDate.setHours(23, 59, 59, 999);\n const filterValue = [];\n filterValue.push({\n value: startDate.toISOString(),\n label: dayjs(startDate).format(\"LLL dd, y\"),\n });\n if (dateRange[1] && dateRange[0].getTime() !== dateRange[1].getTime()) {\n filterValue.push({\n value: endDate.toISOString(),\n label: dayjs(endDate).format(\"LLL dd, y\"),\n });\n }\n setFilters([\n ...filters,\n {\n name: selectedView || \"\",\n placeholder: selectedGroup?.placeholder,\n value: filterValue,\n type: selectedGroup?.type || \"date\",\n multiple: selectedGroup?.multiple || false,\n },\n ]);\n handleClose();\n }\n };\n const getDisplayText = () => {\n if (isDateRange) {\n if (effectiveDateRange[0] && effectiveDateRange[1]) {\n return (_jsxs(\"span\", { className: \"flex items-center gap-2\", children: [_jsx(\"span\", { className: \"text-xs text-muted\", children: \"From:\" }), _jsx(\"span\", { className: \"text-xs font-medium\", children: dayjs(effectiveDateRange[0]).format(\"MMMM DD, YYYY\") }), _jsx(\"span\", { className: \"text-xs text-muted\", children: \"To:\" }), _jsx(\"span\", { className: \"text-xs font-medium\", children: dayjs(effectiveDateRange[1]).format(\"MMMM DD, YYYY\") })] }));\n }\n else if (effectiveDateRange[0]) {\n return (_jsxs(\"span\", { className: \"flex items-center gap-2\", children: [_jsx(\"span\", { className: \"text-xs text-muted\", children: \"From:\" }), _jsx(\"span\", { className: \"text-xs font-medium\", children: dayjs(effectiveDateRange[0]).format(\"MMMM DD, YYYY\") }), _jsx(\"span\", { className: \"text-xs text-muted\", children: \"\\u2192 Select end date\" })] }));\n }\n else {\n return _jsx(\"span\", { className: \"text-muted text-xs\", children: selectedGroup?.placeholder || selectedGroup?.name || selectedView || \"Select date range\" });\n }\n }\n else {\n return selectedDate ? dayjs(selectedDate).format(\"MMMM DD, YYYY\") : \"Pick a date\";\n }\n };\n return (_jsx(\"div\", { className: \"p-2\", children: isDateRange ? (_jsxs(_Fragment, { children: [_jsx(\"div\", { children: getDisplayText() }), _jsxs(\"div\", { className: \"calendar-wrapper\", children: [_jsx(\"style\", { children: calendarStyles }), _jsx(Calendar, { value: effectiveDateRange, onChange: handleDateChange, selectRange: true, returnValue: \"range\", maxDate: maxDate, className: \"mb-2 border-0\", tileClassName: ({ date, view }) => {\n if (view === 'month') {\n const currentDate = date.getTime();\n const today = new Date();\n today.setHours(23, 59, 59, 999);\n // Check if date is disabled (future date)\n if (currentDate > today.getTime()) {\n return 'text-muted/20 cursor-not-allowed';\n }\n // Handle selected date styling\n if (effectiveDateRange[0]) {\n const startDate = effectiveDateRange[0].getTime();\n if (effectiveDateRange[1]) {\n // Both dates selected\n const endDate = effectiveDateRange[1].getTime();\n if (currentDate === startDate) {\n return 'bg-primary text-primary-foreground rounded-l-md font-semibold';\n }\n if (currentDate === endDate) {\n return 'bg-primary text-primary-foreground rounded-r-md font-semibold';\n }\n if (currentDate > startDate && currentDate < endDate) {\n return 'bg-primary/20 text-primary font-medium';\n }\n }\n else {\n // Only start date selected\n if (currentDate === startDate) {\n return 'bg-primary text-primary-foreground rounded-md font-semibold';\n }\n }\n }\n }\n return '';\n } }, `${effectiveDateRange[0]?.getTime()}-${effectiveDateRange[1]?.getTime()}`)] }), _jsx(\"div\", { className: \"border-t pt-2\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: handleClose, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleApplyDateRange, disabled: !effectiveDateRange[0], children: \"Apply\" })] }) })] })) : (_jsx(_Fragment, { children: _jsxs(\"div\", { className: \"calendar-wrapper\", children: [_jsx(\"style\", { children: calendarStyles }), _jsx(Calendar, { value: selectedDate, onChange: handleDateChange, selectRange: false, maxDate: maxDate, className: \"mb-2 border-0\", tileClassName: ({ date, view }) => {\n if (view === 'month') {\n const currentDate = date.getTime();\n const today = new Date();\n today.setHours(23, 59, 59, 999);\n // Check if date is disabled (future date)\n if (currentDate > today.getTime()) {\n return 'text-muted/20 cursor-not-allowed';\n }\n // Handle selected date styling\n if (selectedDate && currentDate === selectedDate.getTime()) {\n return 'bg-primary text-primary-foreground rounded-md font-semibold';\n }\n }\n return '';\n } })] }) })) }));\n}\n//# sourceMappingURL=dateFilter.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nimport { CommandItem } from \"../../command\";\nimport { Button } from \"../../button\";\nimport { DynamicLabel } from \"../DynamicLabel\";\nexport default function SelectFilter({ selectedView, commandInput, setFilters, handleClose, filterGroups, }) {\n const [selectedOptions, setSelectedOptions] = useState([]);\n const getFilteredOptions = (groupName) => {\n const group = filterGroups.find(g => g.name === groupName);\n if (!group) {\n return [];\n }\n let filteredOptions = group.options || [];\n if (!commandInput.trim()) {\n return filteredOptions;\n }\n if (group.filterBy) {\n const filterLc = commandInput.toLowerCase();\n const results = filteredOptions.filter(option => {\n if (option.value === undefined)\n return false;\n return group.filterBy(option.value, filterLc);\n });\n return results;\n }\n const filterLc = commandInput.toLowerCase();\n return filteredOptions.filter(option => {\n const optionValue = String(option.value || '').toLowerCase();\n return optionValue.includes(filterLc);\n });\n };\n if (!selectedView) {\n return null;\n }\n const options = getFilteredOptions(selectedView);\n const selectedGroup = filterGroups.find(g => g.name === selectedView);\n const groupTitle = selectedGroup?.placeholder || selectedGroup?.name;\n const handleApply = () => {\n if (selectedOptions.length > 0) {\n setFilters(prev => [\n ...prev.filter(f => f.name !== selectedView),\n {\n name: selectedView || \"\",\n placeholder: selectedGroup?.placeholder || \"\",\n value: selectedOptions,\n type: selectedGroup?.type || \"select\",\n multiple: selectedGroup?.multiple || false,\n }\n ]);\n }\n handleClose();\n };\n const handleOptionToggle = (option) => {\n const filterOption = {\n value: option.value,\n label: option.label\n };\n if (selectedGroup?.multiple) {\n // For multiple selection, toggle the option\n const isSelected = selectedOptions.some(opt => opt.value === option.value);\n if (isSelected) {\n setSelectedOptions(prev => prev.filter(opt => opt.value !== option.value));\n }\n else {\n setSelectedOptions(prev => [...prev, filterOption]);\n }\n }\n else {\n // For single selection, apply immediately\n setFilters((prev) => {\n const existingFilterIndex = prev.findIndex(f => f.name === selectedView);\n if (existingFilterIndex >= 0) {\n const updatedFilters = [...prev];\n updatedFilters[existingFilterIndex] = {\n ...updatedFilters[existingFilterIndex],\n value: [filterOption]\n };\n return updatedFilters;\n }\n else {\n return [...prev, {\n name: selectedView || \"\",\n placeholder: selectedGroup?.placeholder || \"\",\n value: [filterOption],\n type: selectedGroup?.type || \"select\",\n multiple: selectedGroup?.multiple || false,\n }];\n }\n });\n handleClose();\n }\n };\n return (_jsxs(\"div\", { className: \"flex flex-col h-full\", children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted shrink-0\", children: _jsx(\"span\", { children: groupTitle }) }), _jsx(\"div\", { className: \"flex-1 overflow-hidden min-h-0\", children: _jsx(\"div\", { className: \"max-h-[200px] overflow-y-auto\", children: options.length > 0 && (options.map((option) => {\n const isSelected = selectedOptions.some(opt => opt.value === option.value);\n return (_jsxs(CommandItem, { className: `group flex gap-2 items-center w-full hover:bg-muted ${selectedGroup?.multiple && isSelected ? 'bg-muted' : ''}`, onSelect: () => handleOptionToggle(option), children: [_jsx(DynamicLabel, { value: option.value || '', labelRenderer: option.labelRenderer || selectedGroup?.labelRenderer, fallbackLabel: option.label }), selectedGroup?.multiple && isSelected && (_jsx(\"span\", { className: \"ml-auto text-xs text-success\", children: \"\\u2713\" }))] }, option.value || `option-${Math.random()}`));\n })) }) }), selectedGroup?.multiple && (_jsx(\"div\", { className: \"p-2 border-t shrink-0\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: handleClose, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleApply, disabled: selectedOptions.length === 0, children: \"Apply\" })] }) }))] }));\n}\n//# sourceMappingURL=SelectFilter.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nimport { InputList } from \"../../../index\";\nimport { Button } from \"../../button\";\nexport default function StringListFilter({ selectedView, setFilters, handleClose, filterGroups, }) {\n const [tags, setTags] = useState([]);\n const selectedGroup = filterGroups.find(g => g.name === selectedView);\n const handleApply = () => {\n if (tags.length > 0) {\n setFilters(prev => [\n ...prev.filter(f => f.name !== selectedView),\n {\n name: selectedView,\n placeholder: selectedGroup?.placeholder,\n value: tags,\n type: \"stringList\"\n }\n ]);\n }\n handleClose();\n };\n return (_jsxs(\"div\", { className: \"p-2 space-y-3\", children: [_jsx(\"div\", { className: \"space-y-2\", children: _jsx(InputList, { value: tags, onChange: setTags, placeholder: selectedGroup?.placeholder || `Add ${selectedView}...`, autoFocus: true }) }), _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: handleClose, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleApply, disabled: tags.length === 0, children: \"Apply\" })] })] }));\n}\n//# sourceMappingURL=StringListFilter.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React, { useEffect } from \"react\";\nimport { cn } from \"../../libs/utils\";\nimport { Button } from \"../button\";\nimport { Popover, PopoverTrigger, PopoverContent } from \"../popover\";\nimport { Command, CommandInput, CommandList, CommandGroup, CommandItem, CommandEmpty } from \"../command\";\nimport { ListFilter } from \"lucide-react\";\nimport Filters from \"./filters\";\nimport TextFilter from \"./filter/TextFilter\";\nimport DateFilter from \"./filter/dateFilter\";\nimport SelectFilter from \"./filter/SelectFilter\";\nimport StringListFilter from \"./filter/StringListFilter\";\nconst FilterContext = React.createContext({});\nconst FilterProvider = ({ filters, setFilters, filterGroups, children }) => {\n const url = new URL(window.location.href);\n const searchParams = url.searchParams;\n const [hasInitialized, setHasInitialized] = React.useState(false);\n useEffect(() => {\n try {\n const params = new URLSearchParams(searchParams.toString());\n if (filters.length > 0) {\n // Convert filters to format with array indicators: filterName:value,value;filterName2:value\n // Arrays are prefixed with []: filterName:[value1,value2]\n const filterString = filters.map(filter => {\n let values;\n if (filter.type === 'stringList' && Array.isArray(filter.value) && typeof filter.value[0] === 'string') {\n // Handle stringList with direct string array - always array format\n values = `[${filter.value.map(item => encodeURIComponent(item)).join(',')}]`;\n }\n else if (Array.isArray(filter.value)) {\n if (filter.multiple) {\n // Handle multiple filters - always use array format for multiple=true\n values = `[${filter.value.map((item) => encodeURIComponent(item.value || item || '')).join(',')}]`;\n }\n else if (filter.value.length > 1) {\n // Handle multiple values for non-multiple filters\n values = `[${filter.value.map((item) => encodeURIComponent(item.value || item || '')).join(',')}]`;\n }\n else {\n // Single value in array for non-multiple filter - don't use array format\n const firstValue = filter.value[0];\n if (typeof firstValue === 'string') {\n values = encodeURIComponent(firstValue);\n }\n else if (typeof firstValue === 'object' && firstValue?.value !== undefined) {\n // Handle FilterOption object\n values = encodeURIComponent(String(firstValue.value));\n }\n else {\n values = encodeURIComponent(String(firstValue || ''));\n }\n }\n }\n else {\n values = encodeURIComponent(filter.value || '');\n }\n return `${encodeURIComponent(filter.name)}:${values}`;\n }).join(';');\n params.set('filters', filterString);\n }\n else {\n params.delete('filters');\n }\n const newUrl = `${window.location.pathname}?${params.toString()}${window.location.hash}`;\n window.history.replaceState(window.history.state || {}, '', newUrl);\n }\n catch (error) {\n console.error(\"Failed to update URL with filters:\", error);\n }\n }, [filters]);\n useEffect(() => {\n const filtersParam = searchParams.get('filters');\n if (filtersParam && filterGroups.length > 0 && !hasInitialized) {\n try {\n // Parse format with array indicators: filterName:value or filterName:[value1,value2]\n const filterPairs = filtersParam.split(';');\n const parsedFilters = filterPairs.map(pair => {\n const [encodedName, valuesString] = pair.split(':');\n const name = decodeURIComponent(encodedName);\n let values;\n // Check if it's an array format [value1,value2]\n if (valuesString.startsWith('[') && valuesString.endsWith(']')) {\n // Array format - remove brackets and split by comma\n const arrayContent = valuesString.slice(1, -1); // Remove [ and ]\n values = arrayContent ? arrayContent.split(',').map(encodedValue => decodeURIComponent(encodedValue)) : [];\n }\n else {\n // Single value format\n values = [decodeURIComponent(valuesString)];\n }\n const group = filterGroups.find(g => g.name === name);\n let filterValue;\n if (group?.type === 'stringList') {\n // For stringList, return direct string array\n filterValue = values;\n }\n else if (group?.type === 'text') {\n // For text, return FilterOption array (single value for text inputs)\n filterValue = values.length === 1 ? [{ value: values[0], label: values[0] }] :\n values.map(value => ({ value, label: value }));\n }\n else {\n // For other types, find options with labels\n filterValue = values.map(value => {\n const matchingOption = group?.options?.find(opt => opt.value === value);\n let label = value;\n if (matchingOption?.label) {\n label = String(matchingOption.label);\n }\n else if (matchingOption?.labelRenderer) {\n label = String(matchingOption.labelRenderer(value));\n }\n else if (group?.labelRenderer) {\n label = String(group.labelRenderer(value));\n }\n return {\n value,\n label\n };\n });\n }\n if (group?.multiple && !valuesString.startsWith('[') && !valuesString.endsWith(']')) {\n if (group.type === 'stringList') {\n filterValue = values;\n }\n else {\n if (!Array.isArray(filterValue)) {\n filterValue = [filterValue];\n }\n }\n }\n // Fallback: if group not found but we detected array format, assume it should be multiple\n const shouldBeMultiple = group?.multiple || (!group && valuesString.startsWith('[') && valuesString.endsWith(']'));\n const filter = {\n name,\n type: group?.type || 'select',\n placeholder: group?.placeholder,\n value: filterValue,\n multiple: shouldBeMultiple\n };\n return filter;\n });\n setFilters(parsedFilters);\n setHasInitialized(true);\n }\n catch (error) {\n setHasInitialized(true);\n }\n }\n else if (filterGroups.length > 0 && !hasInitialized) {\n // No URL params but we have groups - mark as initialized\n setHasInitialized(true);\n }\n }, [filterGroups, hasInitialized]);\n return (_jsx(FilterContext.Provider, { value: { filters, setFilters, filterGroups }, children: children }));\n};\nconst FilterBtn = ({ className }) => {\n const { filters, setFilters, filterGroups } = React.useContext(FilterContext);\n const [open, setOpen] = React.useState(false);\n const [selectedView, setSelectedView] = React.useState(null);\n const [commandInput, setCommandInput] = React.useState(\"\");\n const commandInputRef = React.useRef(null);\n const [selectedDate, setSelectedDate] = React.useState();\n const [textValue, setTextValue] = React.useState(\"\");\n const handleSelect = (groupName) => {\n setSelectedView(groupName);\n setCommandInput(\"\");\n commandInputRef.current?.focus();\n };\n const getAvailableFilterGroups = () => {\n let options = filterGroups.map(group => ({\n ...group,\n options: (group.options ?? []).filter(option => !filters.some(filter => {\n if (filter.type === \"date\") {\n return filter.name === group.name;\n }\n return filter.name === group.name &&\n (Array.isArray(filter.value) && typeof filter.value[0] === 'string'\n ? filter.value.some(val => val === option.value)\n : filter.value.some(val => val.value === option.value));\n }))\n })).filter(group => ((group.options ?? []).length > 0) ||\n (group.type === \"date\" && !filters.some(filter => filter.name === group.name)) ||\n (group.type === \"text\" && !filters.some(filter => filter.name === group.name)) ||\n (group.type === \"stringList\" && !filters.some(filter => filter.name === group.name)));\n if (options.length === 0) {\n return _jsx(CommandEmpty, { children: \"No available filters\" });\n }\n return options.map((group, index) => (_jsx(CommandItem, { onSelect: () => handleSelect(group.name), className: \"group flex gap-2 items-center hover:bg-muted\", children: _jsx(\"span\", { children: group.placeholder ?? group.name }) }, index)));\n };\n const handleClose = () => {\n setOpen(false);\n setTimeout(() => {\n setSelectedView(null);\n setCommandInput(\"\");\n setSelectedDate(undefined);\n }, 200);\n };\n const handleOpen = (open) => {\n setOpen(open);\n if (!open) {\n setTimeout(() => {\n setSelectedView(null);\n setCommandInput(\"\");\n setTextValue(\"\");\n }, 200);\n }\n };\n const renderFilterOptions = () => {\n if (!selectedView) {\n return null;\n }\n const selectedGroupType = filterGroups.find(g => g.name === selectedView)?.type;\n switch (selectedGroupType) {\n case \"date\":\n return (_jsx(DateFilter, { selectedView: selectedView, selectedDate: selectedDate, setSelectedDate: setSelectedDate, setFilters: setFilters, filters: filters, handleClose: handleClose, filterGroups: filterGroups }));\n case \"text\":\n return (_jsx(TextFilter, { selectedView: selectedView, textValue: textValue, setTextValue: setTextValue, setFilters: setFilters, handleClose: handleClose, filterGroups: filterGroups }));\n case \"stringList\":\n return (_jsx(StringListFilter, { selectedView: selectedView, setFilters: setFilters, handleClose: handleClose, filterGroups: filterGroups }));\n default:\n return (_jsx(SelectFilter, { selectedView: selectedView, commandInput: commandInput, setFilters: setFilters, handleClose: handleClose, filterGroups: filterGroups }));\n }\n };\n return (_jsxs(Popover, { _open: open, onOpenChange: handleOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { variant: \"outline\", role: \"combobox\", \"aria-expanded\": open, size: \"md\", className: cn(\"transition group flex gap-1.5\", className), children: [_jsx(ListFilter, { className: \"size-4 shrink-0 transition-all text-muted\" }), \"Filter\"] }) }), _jsx(PopoverContent, { className: \"w-[300px] p-0\", align: \"start\", sideOffset: 4, children: _jsxs(Command, { children: [filterGroups.find(group => group.name === selectedView)?.type === \"select\" && (_jsx(CommandInput, { placeholder: selectedView ? `Filter by ${selectedView}` : \"Filter...\", className: \"h-9 ring-0\", value: commandInput, onValueChange: (value) => {\n setCommandInput(value);\n }, ref: commandInputRef, autoFocus: true })), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: \"No matching filters\" }), _jsx(CommandGroup, { children: !selectedView ? getAvailableFilterGroups() : renderFilterOptions() })] })] }) })] }));\n};\nconst FilterBar = ({ className }) => {\n const { filters, setFilters, filterGroups } = React.useContext(FilterContext);\n return (_jsx(\"div\", { className: cn(className), children: _jsx(Filters, { filters: filters, setFilters: setFilters, filterGroups: filterGroups }) }));\n};\nconst FilterClear = ({ className }) => {\n const { filters, setFilters } = React.useContext(FilterContext);\n const hasActiveFilters = filters.filter((filter) => filter.value?.length > 0).length > 0;\n if (!hasActiveFilters) {\n return null;\n }\n return (_jsx(Button, { variant: \"outline\", size: \"xs\", className: cn(\"transition group\", className), onClick: () => setFilters([]), children: \"Clear All\" }));\n};\nexport { FilterProvider, FilterBtn, FilterBar, FilterClear };\n//# sourceMappingURL=filterBar.js.map","export var FilterOperator;\n(function (FilterOperator) {\n FilterOperator[\"IS\"] = \"is\";\n FilterOperator[\"IS_NOT\"] = \"is_not\";\n FilterOperator[\"CONTAINS\"] = \"contains\";\n FilterOperator[\"BEFORE\"] = \"before\";\n FilterOperator[\"AFTER\"] = \"after\";\n FilterOperator[\"IS_ANY_OF\"] = \"is_any_of\";\n})(FilterOperator || (FilterOperator = {}));\n//# sourceMappingURL=types.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { cn } from \"../libs/utils\";\nimport { forwardRef } from \"react\";\nexport const Heading = forwardRef(({ className, level = 3, ...props }, ref) => {\n const Component = `h${level}`;\n const styles = {\n h1: \"text-2xl font-medium tracking-tight\",\n h2: \"text-xl font-medium tracking-tight\",\n h3: \"text-lg font-medium\",\n h4: \"text-base font-medium\",\n h5: \"text-sm font-medium\",\n h6: \"text-xs font-medium\",\n };\n return _jsx(Component, { ref: ref, className: cn(styles[`h${level}`], 'mb-2', className), ...props });\n});\nHeading.displayName = \"Heading\";\n//# sourceMappingURL=heading.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { cn } from \"../libs/utils\";\nimport { cva } from \"class-variance-authority\";\nimport { forwardRef } from \"react\";\n// Update the text variants to match the new sizing requirements\nconst textVariants = cva(\"text-foreground\", {\n variants: {\n size: {\n xl: \"text-base md:text-lg leading-relaxed\",\n lg: \"text-base leading-relaxed\",\n default: \"text-sm leading-normal\",\n sm: \"text-sm leading-normal\",\n xs: \"text-xs leading-normal\",\n },\n weight: {\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n },\n },\n defaultVariants: {\n size: \"default\",\n weight: \"normal\",\n },\n});\nexport const Text = forwardRef(({ className, size, weight, ...props }, ref) => {\n return _jsx(\"p\", { ref: ref, className: cn(textVariants({ size, weight, className })), ...props });\n});\nText.displayName = \"Text\";\n//# sourceMappingURL=text.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Minus } from \"lucide-react\";\nimport * as ResizablePrimitive from \"react-resizable-panels\";\nimport { cn } from \"../libs/utils\";\nfunction ResizablePanelGroup({ className, ...props }) {\n return (_jsx(ResizablePrimitive.PanelGroup, { \"data-slot\": \"resizable-panel-group\", className: cn(\"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\", className), ...props }));\n}\nfunction ResizablePanel({ ...props }) {\n return _jsx(ResizablePrimitive.Panel, { \"data-slot\": \"resizable-panel\", ...props });\n}\nfunction ResizableHandle({ withHandle, className, ...props }) {\n return (_jsx(ResizablePrimitive.PanelResizeHandle, { \"data-slot\": \"resizable-handle\", className: cn(\"bg-muted focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90\", className), ...props, children: withHandle && (_jsx(\"div\", { className: \"z-10 flex size-4 items-center justify-center rounded-xs font-semibold\", children: _jsx(Minus, { className: \"size-4 rotate-90\" }) })) }));\n}\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n//# sourceMappingURL=resizeable.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { cn } from \"../libs/utils\";\nfunction Textarea({ className, ...props }) {\n return (_jsx(\"textarea\", { \"data-slot\": \"textarea\", className: cn(\"py-2 text-sm\", \"flex w-full rounded-md border border-input bg-background ring-offset-background\", \"placeholder:text-muted focus-visible:outline-none focus-visible:ring-1 ring-inset focus-visible:ring-ring\", \"disabled:cursor-not-allowed disabled:opacity-50\", className), ...props }));\n}\nexport { Textarea };\n//# sourceMappingURL=textarea.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { CircleX, CircleCheck, AlertTriangle, Info } from 'lucide-react';\nexport function MessageBox({ icon, status, title, children, className }) {\n let defaultIcon, titleColor, textColor, bgColor;\n switch (status) {\n case 'error': {\n defaultIcon = _jsx(CircleX, { className: \"size-5 text-destructive\", \"aria-hidden\": \"true\" });\n titleColor = \"\";\n textColor = \"text-foreground\";\n bgColor = \"bg-destructive border border-destructive\";\n break;\n }\n case 'warning': {\n defaultIcon = _jsx(AlertTriangle, { className: \"size-5 text-attention\", \"aria-hidden\": \"true\" });\n titleColor = \"\";\n textColor = \"text-foreground\";\n bgColor = \"bg-attention border border-attention\";\n break;\n }\n case 'success': {\n defaultIcon = _jsx(CircleCheck, { className: \"size-5 text-success\", \"aria-hidden\": \"true\" });\n titleColor = \"\";\n textColor = \"text-foreground\";\n bgColor = \"bg-success border border-success\";\n break;\n }\n case 'info': {\n defaultIcon = _jsx(Info, { className: \"size-5 text-info\", \"aria-hidden\": \"true\" });\n titleColor = \"\";\n textColor = \"text-foreground\";\n bgColor = \"bg-info border border-info\";\n break;\n }\n case 'default': {\n defaultIcon = _jsx(Info, { className: \"size-5 text-muted\", \"aria-hidden\": \"true\" });\n titleColor = \"\";\n textColor = \"text-foreground\";\n bgColor = \"bg-muted border border-muted\";\n break;\n }\n case 'done': {\n defaultIcon = _jsx(Info, { className: \"size-5 text-done\", \"aria-hidden\": \"true\" });\n titleColor = \"\";\n textColor = \"text-foreground\";\n bgColor = \"bg-done border border-done\";\n break;\n }\n }\n return (_jsx(\"div\", { className: `rounded-md p-4 ${bgColor} ${className}`, children: _jsxs(\"div\", { className: \"flex\", children: [_jsx(\"div\", { className: \"shrink-0\", children: icon ?? defaultIcon }), _jsxs(\"div\", { className: \"w-full ml-2 px-1\", children: [title && _jsx(\"h3\", { className: `text-sm font-medium mb-2 ${titleColor}`, children: title }), _jsx(\"div\", { className: `text-sm ${textColor} break-words`, children: children })] })] }) }));\n}\nexport function ErrorBox({ title, className, children }) {\n return (_jsx(MessageBox, { status: \"error\", title: title, className: className, children: _jsx(\"pre\", { className: \"whitespace-pre-wrap break-words\", children: children }) }));\n}\nexport function InfoBox({ title, className, children }) {\n return _jsx(MessageBox, { status: \"info\", title: title, className: className, children: children });\n}\nexport function WarningBox({ title, className, children }) {\n return _jsx(MessageBox, { status: \"warning\", title: title, className: className, children: children });\n}\nexport function SuccessBox({ title, className, children }) {\n return _jsx(MessageBox, { status: \"success\", title: title, className: className, children: children });\n}\nexport function DefaultBox({ title, className, children }) {\n return _jsx(MessageBox, { status: \"default\", title: title, className: className, children: children });\n}\n//# sourceMappingURL=MessageBox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { VTooltip } from \"./tooltip\";\nimport { Info } from \"lucide-react\";\nexport function Panel({ children, action, title, description, footer, className }) {\n return (_jsxs(\"div\", { className: `p-4 flex flex-col gap-2 rounded-sm border bg-card ${className}`, children: [_jsxs(\"div\", { className: \"flex items-center justify-between\", children: [_jsxs(\"div\", { className: \"flex items-center gap-2\", children: [_jsx(\"div\", { className: \"font-semibold text-lg\", children: title }), description && _jsx(VTooltip, { description: description, children: _jsx(Info, { className: \"size-4 text-muted\" }) })] }), action] }), children, footer &&\n _jsx(\"div\", { className: \"border-t border-muted flex flex-col-2 text-sm pt-4\", children: footer })] }));\n}\n//# sourceMappingURL=Panel.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Check } from \"lucide-react\";\nimport clsx from \"clsx\";\nimport { useMemo, useState } from \"react\";\nimport { Input } from \"./shadcn\";\nconst Default_Option_Style = \"flex-1 px-2 py-2 hover:bg-accent nowrap\";\nfunction defaultOptionLayout(option, isSelected) {\n return {\n label: String(option),\n check: isSelected ? _jsx(Check, { className: 'size-4' }) : _jsx(\"div\", { className: \"size-4\" }),\n reverse: false,\n className: Default_Option_Style,\n };\n}\nexport function SelectList({ value, options, onChange, className, optionLayout, by, noCheck, filterBy }) {\n const [selected, setSelected] = useState(value);\n const [filterValue, setFilterValue] = useState(\"\");\n const onSelect = (option) => {\n setSelected(option);\n onChange(option);\n };\n const optionEquals = useMemo(() => {\n if (typeof by === 'string') {\n return (o1, o2) => o1[by] === o2[by];\n }\n else if (!by) {\n return (o1, o2) => o1 === o2;\n }\n else {\n return by;\n }\n }, [by]);\n return (_jsxs(\"div\", { className: clsx(\"\", className), children: [filterBy && (_jsx(Input, { type: \"text\", placeholder: \"Filter...\", value: filterValue, onChange: (value) => setFilterValue(value) })), options.map((option, i) => {\n if (filterBy && !filterBy(filterValue)(option)) {\n return null;\n }\n const isSelected = selected ? optionEquals(selected, option) : false;\n let layout;\n if (optionLayout) {\n layout = optionLayout(option, isSelected);\n layout = Object.assign(defaultOptionLayout(option, isSelected), layout);\n }\n else {\n layout = defaultOptionLayout(option, isSelected);\n }\n return (_jsx(SelectListOption, { option: option, onSelect: onSelect, layout: layout, noCheck: noCheck }, i));\n })] }));\n}\nfunction SelectListOption({ option, onSelect, layout, noCheck }) {\n return (_jsxs(\"div\", { className: clsx('group flex items-center cursor-pointer gap-x-2 hover:bg-muted', layout.reverse && 'flex-row-reverse', layout.className), onClick: () => onSelect(option), children: [noCheck ? null : _jsx(\"div\", { className: \"\", children: layout.check }), _jsx(\"div\", { className: 'flex-1', children: layout.label })] }));\n}\n//# sourceMappingURL=SelectList.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { RadioGroup } from '@headlessui/react';\nimport clsx from 'clsx';\nexport function SelectStack({ onSelect, selected, options }) {\n return (_jsxs(RadioGroup, { value: selected, onChange: onSelect, children: [_jsx(RadioGroup.Label, { className: \"sr-only\", children: \"Server size\" }), _jsx(\"div\", { className: \"space-y-4\", children: options.map((option) => (_jsx(RadioGroup.Option, { value: option, className: ({ active }) => clsx(active ? 'border-border ring-2 ring-ring' : 'border-border', 'relative block cursor-pointer rounded-lg border bg-accent px-6 py-4 shadow-2xs focus:outline-hidden sm:flex sm:justify-between'), children: ({ active, checked }) => (_jsxs(_Fragment, { children: [_jsx(\"span\", { className: \"flex items-center\", children: _jsxs(\"span\", { className: \"flex flex-col text-sm\", children: [_jsx(RadioGroup.Label, { as: \"span\", className: \"font-medium text-text\", children: option.label }), option.description &&\n _jsx(RadioGroup.Description, { as: \"span\", className: \"text-muted-foreground\", children: option.description })] }) }), _jsx(\"span\", { className: clsx(active ? 'border' : 'border-2', checked ? 'border-accent-foreground' : 'border-transparent', 'pointer-events-none absolute -inset-px rounded-lg'), \"aria-hidden\": \"true\" })] })) }, option.id))) })] }));\n}\n//# sourceMappingURL=SelectStack.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { Minus, X } from 'lucide-react';\nimport { Button } from './shadcn/button';\nexport function SidePanel({ isOpen, title, onClose, children, panelWidth = 768, backdrop = false, side = 'right', resizable = true, className }) {\n const [_panelWidth, setPanelWidth] = useState(panelWidth);\n const handleDragStart = (e) => {\n e.preventDefault();\n let isDragging = true;\n const startX = e.pageX;\n const startWidth = _panelWidth;\n const handleMouseMove = (e) => {\n if (isDragging) {\n const deltaX = startX - e.pageX;\n const newWidth = Math.max(startWidth + deltaX, 480);\n setPanelWidth(newWidth);\n }\n };\n const handleMouseUp = () => {\n isDragging = false;\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n };\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n };\n const isLeft = side === 'left';\n const positionClass = isLeft ? 'left-0' : 'right-0';\n const paddingClass = isLeft ? 'pr-10 sm:pr-16' : 'pl-10 sm:pl-16';\n const borderClass = isLeft ? 'border-r' : 'border-l';\n const dragHandleClass = isLeft ? '-right-1' : '-left-1';\n const initialX = isLeft ? \"-100%\" : \"100%\";\n return (_jsx(AnimatePresence, { children: isOpen && (_jsxs(\"div\", { className: \"relative z-20\", children: [backdrop && (_jsx(motion.div, { className: \"fixed inset-0 bg-black/70\", initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: onClose })), _jsx(\"div\", { className: `fixed inset-y-0 ${positionClass} overflow-hidden`, children: _jsx(\"div\", { className: \"absolute inset-0 overflow-hidden\", children: _jsx(\"div\", { className: `pointer-events-none fixed inset-y-0 ${positionClass} flex max-w-full ${paddingClass}`, children: _jsx(motion.div, { className: `pointer-events-auto ${borderClass}`, style: { width: `${_panelWidth}px` }, initial: { x: initialX }, animate: { x: 0 }, exit: { x: initialX }, transition: { type: \"spring\", stiffness: 300, damping: 30 }, children: _jsxs(\"div\", { className: \"relative flex h-full\", children: [resizable && (_jsx(\"div\", { className: `absolute ${dragHandleClass} top-0 bottom-0 w-3 cursor-ew-resize hover:bg-indigo-500 transition-colors flex items-center justify-center`, onMouseDown: handleDragStart, children: _jsx(Minus, { className: \"rotate-90 font-semibold\", strokeWidth: 4 }) })), _jsxs(\"div\", { className: `flex-1 flex flex-col overflow-y-scroll gap-4 bg-background py-2 shadow-xl ${className}`, children: [title && (_jsx(\"div\", { className: \"px-2 sm:px-4\", children: _jsxs(\"div\", { className: \"flex items-start justify-between\", children: [_jsx(\"h2\", { className: \"w-full text-base font-semibold leading-6\", children: _jsx(\"div\", { className: \"text-2xl\", children: title ?? \"\" }) }), _jsx(\"div\", { className: \"ml-3 flex h-7 items-center\", children: _jsx(CloseButton, { onClose: onClose }) })] }) })), _jsx(\"div\", { className: \"px-2 sm:px-4\", children: children })] })] }) }) }) }) })] })) }));\n}\nfunction CloseButton({ onClose }) {\n return (_jsx(Button, { alt: \"Close panel\", variant: \"ghost\", onClick: onClose, children: _jsx(X, { className: \"size-6\", \"aria-hidden\": \"true\" }) }));\n}\n//# sourceMappingURL=SidePanel.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nfunction getRealSize(size) {\n switch (size) {\n case 'xs': return 'size-2';\n case 'sm': return 'size-3';\n case 'md': return 'size-4';\n case 'lg': return 'size-5';\n case 'xl': return 'size-7';\n case '2xl': return 'size-10';\n default: throw new Error('Unexpected size: ' + size);\n }\n}\nexport function Spinner({ size, className }) {\n const sizeClass = getRealSize(size || 'md');\n return (_jsx(_Fragment, { children: _jsxs(\"svg\", { className: clsx(\"animate-[spin_0.8s_linear_infinite] text-indigo-500\", sizeClass, className), xmlns: \"http://www.w3.org/2000/svg\", fill: \"none\", viewBox: \"0 0 24 24\", children: [_jsx(\"circle\", { className: \"opacity-25\", cx: \"12\", cy: \"12\", r: \"10\", stroke: \"currentColor\", strokeWidth: \"4\" }), _jsx(\"path\", { className: \"opacity-75\", fill: \"currentColor\", d: \"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\" })] }) }));\n}\n//# sourceMappingURL=Spinner.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Switch as UISwitch } from \"@headlessui/react\";\nconst sizes = {\n 'sm': ['h-5 w-8', 'size-3', 'translate-x-4'],\n 'md': ['h-6 w-11', 'size-4', 'translate-x-6'],\n 'lg': ['h-8 w-16', 'size-6', 'translate-x-9'],\n};\nexport function Switch({ value, onChange, size = 'md', children, className, disabled }) {\n const sizeClass = sizes[size];\n return (_jsxs(UISwitch, { checked: value, onChange: () => onChange(!value), className: `flex items-center ${className} ${disabled ? 'cursor-not-allowed opacity-50' : 'hover:cursor-pointer'}`, children: [_jsx(\"div\", { className: `${value ? 'bg-primary' : 'bg-muted/50'} relative inline-flex ${sizeClass[0]} items-center rounded-full border-1`, children: _jsx(\"span\", { className: `${value ? sizeClass[2] : 'translate-x-1'} inline-block ${sizeClass[1]} transform rounded-full bg-white transition` }) }), children && _jsx(\"span\", { className: \"px-2\", children: children })] }));\n}\n//# sourceMappingURL=Switch.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nconst defaultTableCass = `\ndivide-y divide-border\n[&>tbody]:divide-y [&>tbody]:divide-border\n[&_th]:text-left [&_th]:px-3 [&_th]:py-3.5 [&_th]:text-sm [&_th]:font-normal [&_th]:text-muted-foreground\n[&_td]:px-3 [&_td]:py-4 [&_td]:text-sm\n`;\nexport function Table({ className, children, ...others }) {\n return (_jsx(\"table\", { className: clsx(defaultTableCass, className), ...others, children: children }));\n}\nexport function THead({ children }) {\n return (_jsx(\"thead\", { className: \"sticky top-0 bg-background z-10 after:absolute after:bottom-0 after:left-0 after:w-full after:h-px after:bg-muted/20\", children: children }));\n}\nexport function RowSkeleton({ columns }) {\n return (_jsx(\"tr\", { className: \"hover:bg-muted\", children: Array(columns).fill(0).map((_, index) => _jsx(\"td\", { children: _jsx(\"div\", { className: \"animate-pulse rounded-xs h-5 bg-muted\" }) }, index)) }));\n}\nexport function TBody({ isLoading = false, columns, rows = 3, children }) {\n return (_jsx(\"tbody\", { children: (isLoading) ? (Array(rows).fill(0).map((_, index) => _jsx(RowSkeleton, { columns: columns }, index))) : (children) }));\n}\nexport function TR({ className, children, ...others }) {\n return (_jsx(\"tr\", { className: clsx(\"hover:bg-muted hover:cursor-pointer\", className), ...others, children: children }));\n}\n//# sourceMappingURL=index.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { X } from 'lucide-react';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { Popover, PopoverContent, PopoverContext, PopoverTrigger } from './shadcn/popover';\nfunction TagsInputContent({ options, value, onChange, onOptionsChange, placeholder, className, disabled, layout = 'horizontal', creatable = false, createText = 'Create \"%value%\"', maxDropdownHeight = 200 }) {\n const popoverContext = useContext(PopoverContext);\n const [searchTerm, setSearchTerm] = useState('');\n const [highlightedIndex, setHighlightedIndex] = useState(0);\n const [width, setWidth] = useState(0);\n const [pendingDeleteIndex, setPendingDeleteIndex] = useState(null);\n const inputRef = useRef(null);\n const triggerRef = useRef(null);\n const dropdownRef = useRef(null);\n const highlightedItemRef = useRef(null);\n const isOpen = popoverContext?.open ?? false;\n const setIsOpen = popoverContext?.setOpen ?? (() => { });\n // Measure trigger width for popover\n useEffect(() => {\n const element = triggerRef.current;\n if (!element)\n return;\n const updateWidth = () => {\n const contentWidth = element.getBoundingClientRect().width;\n setWidth(contentWidth);\n };\n const resizeObserver = new ResizeObserver(() => {\n updateWidth();\n });\n updateWidth();\n resizeObserver.observe(element);\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n // Filter options based on search term and exclude already selected\n const filteredOptions = options.filter(option => !value.includes(option) &&\n option.toLowerCase().includes(searchTerm.toLowerCase()));\n // Check if create option should be shown\n const showCreateOption = creatable && searchTerm && !value.includes(searchTerm) && !options.includes(searchTerm);\n // Total number of items (filtered options + create option if shown)\n const totalItems = filteredOptions.length + (showCreateOption ? 1 : 0);\n // Reset highlighted index when filtered options change\n useEffect(() => {\n setHighlightedIndex(0);\n }, [searchTerm, showCreateOption]);\n // Clear pending delete when user starts typing\n useEffect(() => {\n if (searchTerm !== '') {\n setPendingDeleteIndex(null);\n }\n }, [searchTerm]);\n // Scroll highlighted item into view\n useEffect(() => {\n if (isOpen && highlightedItemRef.current && dropdownRef.current) {\n highlightedItemRef.current.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth'\n });\n }\n }, [highlightedIndex, isOpen]);\n // Clear search term when popover closes and refocus input when it opens\n useEffect(() => {\n if (!isOpen) {\n setSearchTerm('');\n }\n else {\n // Ensure input stays focused when popover opens\n inputRef.current?.focus();\n }\n }, [isOpen]);\n const handleSelect = (option) => {\n onChange([...value, option]);\n setSearchTerm('');\n setIsOpen(false);\n setHighlightedIndex(0);\n setPendingDeleteIndex(null);\n };\n const handleCreate = (newTag) => {\n // Add to value\n onChange([...value, newTag]);\n // Add to options if callback provided\n if (onOptionsChange && !options.includes(newTag)) {\n onOptionsChange([...options, newTag]);\n }\n setSearchTerm('');\n setIsOpen(false);\n setHighlightedIndex(0);\n setPendingDeleteIndex(null);\n };\n const handleRemove = (option, e) => {\n e.stopPropagation();\n onChange(value.filter(v => v !== option));\n setPendingDeleteIndex(null);\n };\n const handleKeyDown = (e) => {\n // Handle special keys\n if (e.key === 'Enter' && isOpen && totalItems > 0) {\n e.preventDefault();\n e.stopPropagation();\n // Check if we're selecting the create option\n if (highlightedIndex === filteredOptions.length && showCreateOption) {\n handleCreate(searchTerm);\n }\n else if (highlightedIndex < filteredOptions.length) {\n handleSelect(filteredOptions[highlightedIndex]);\n }\n return;\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n e.stopPropagation();\n if (!isOpen) {\n setIsOpen(true);\n }\n else {\n setHighlightedIndex(prev => prev < totalItems - 1 ? prev + 1 : prev);\n }\n return;\n }\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n e.stopPropagation();\n if (!isOpen) {\n setIsOpen(true);\n }\n else {\n setHighlightedIndex(prev => (prev > 0 ? prev - 1 : 0));\n }\n return;\n }\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n setIsOpen(false);\n return;\n }\n if (e.key === 'Backspace' && searchTerm === '' && value.length > 0) {\n // Two-step deletion: first backspace marks for deletion, second backspace deletes\n e.stopPropagation();\n const lastIndex = value.length - 1;\n if (pendingDeleteIndex === lastIndex) {\n // Second backspace: actually delete the item\n onChange(value.slice(0, -1));\n setPendingDeleteIndex(null);\n }\n else {\n // First backspace: mark for deletion\n setPendingDeleteIndex(lastIndex);\n }\n return;\n }\n // For any other key (typing characters), open dropdown\n if (!isOpen && e.key.length === 1) {\n setIsOpen(true);\n }\n };\n const handleInputClick = (e) => {\n e.stopPropagation();\n if (!disabled) {\n setIsOpen(true);\n }\n };\n const handleInputFocus = () => {\n if (!disabled) {\n setIsOpen(true);\n }\n };\n const handleContainerClick = () => {\n if (!disabled) {\n inputRef.current?.focus();\n }\n };\n return (_jsxs(\"div\", { className: clsx('relative', className), children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(\"div\", { ref: triggerRef, className: clsx('min-h-[40px] w-full rounded-md border border-input bg-background px-3 py-2', 'flex items-center gap-1', layout === 'horizontal' ? 'flex-wrap' : 'flex-col items-stretch', 'cursor-text', 'ring-offset-background', disabled && 'opacity-50 cursor-not-allowed', isOpen ? 'ring-1 ring-inset ring-ring' : ''), onClick: handleContainerClick, children: [layout === 'vertical' && value.length > 0 && (_jsx(\"div\", { className: \"flex flex-col gap-1 w-full\", children: value.map((item, index) => (_jsxs(\"span\", { className: clsx(\"inline-flex items-center justify-between gap-2 px-2 py-1 text-sm bg-primary/10 text-primary rounded-md w-full transition-all\", pendingDeleteIndex === index && \"ring-2 ring-red-300 shadow-[0_0_8px_rgba(252,165,165,0.5)]\"), children: [_jsx(\"span\", { className: \"truncate\", children: item }), _jsx(\"button\", { type: \"button\", onClick: (e) => handleRemove(item, e), disabled: disabled, className: \"hover:bg-primary/20 rounded-sm transition-colors flex-shrink-0\", children: _jsx(X, { className: \"h-3 w-3\" }) })] }, item))) })), layout === 'horizontal' && value.map((item, index) => (_jsxs(\"span\", { className: clsx(\"inline-flex items-center gap-1 px-2 py-1 text-sm bg-primary/10 text-primary rounded-md transition-all\", pendingDeleteIndex === index && \"ring-2 ring-red-300 shadow-[0_0_8px_rgba(252,165,165,0.5)]\"), children: [item, _jsx(\"button\", { type: \"button\", onClick: (e) => handleRemove(item, e), disabled: disabled, className: \"hover:bg-primary/20 rounded-sm transition-colors\", children: _jsx(X, { className: \"h-3 w-3\" }) })] }, item))), _jsx(\"input\", { ref: inputRef, type: \"text\", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), onKeyDown: handleKeyDown, onClick: handleInputClick, onFocus: handleInputFocus, disabled: disabled, placeholder: value.length === 0 ? placeholder : '', className: clsx('flex-1 min-w-[120px] bg-transparent text-sm', 'placeholder:text-muted-foreground', 'border-none outline-none focus:outline-none focus:ring-0 p-0 m-0', layout === 'vertical' && 'w-full') })] }) }), _jsx(PopoverContent, { style: { width: `${width}px` }, className: \"p-0 bg-popover border border-border shadow-lg\", align: \"start\", side: \"bottom\", onOpenAutoFocus: (e) => {\n // Prevent the popover from stealing focus from the input\n e.preventDefault();\n }, children: _jsx(\"div\", { ref: dropdownRef, className: \"overflow-y-auto\", style: { maxHeight: `${maxDropdownHeight}px` }, children: filteredOptions.length === 0 && !showCreateOption ? (_jsx(\"div\", { className: \"px-3 py-2 text-sm text-muted-foreground\", children: searchTerm ? 'No options found' : 'No more options available' })) : (_jsxs(_Fragment, { children: [filteredOptions.length > 0 && (_jsx(\"ul\", { className: \"py-1\", children: filteredOptions.map((option, index) => (_jsx(\"li\", { ref: (el) => {\n if (index === highlightedIndex) {\n highlightedItemRef.current = el;\n }\n }, onClick: () => handleSelect(option), onMouseEnter: () => setHighlightedIndex(index), className: clsx('px-3 py-2 text-sm cursor-pointer transition-colors', index === highlightedIndex\n ? 'bg-blue-500/20 text-foreground'\n : 'hover:bg-accent/50'), children: option }, option))) })), showCreateOption && (_jsxs(_Fragment, { children: [filteredOptions.length > 0 && (_jsx(\"div\", { className: \"border-t border-border\" })), _jsx(\"div\", { ref: (el) => {\n if (highlightedIndex === filteredOptions.length) {\n highlightedItemRef.current = el;\n }\n }, onClick: () => handleCreate(searchTerm), onMouseEnter: () => setHighlightedIndex(filteredOptions.length), className: clsx('px-3 py-2 text-sm cursor-pointer transition-colors text-primary', highlightedIndex === filteredOptions.length\n ? 'bg-blue-500/20'\n : 'hover:bg-accent/50'), children: createText.replace('%value%', searchTerm) })] }))] })) }) })] }));\n}\nexport function TagsInput(props) {\n return (_jsx(Popover, { click: true, children: _jsx(TagsInputContent, { ...props }) }));\n}\n//# sourceMappingURL=TagsInput.js.map","import React, { useContext, useEffect, useState } from \"react\";\n//type KeysOfType<T, V> = { [K in keyof T]-?: T[K] extends V ? K : never }[keyof T];\n//type KeysNotOfType<T, V> = { [K in keyof T]-?: T[K] extends V ? never : K }[keyof T];\nexport class Property {\n _value;\n watchers = [];\n /**\n * Optional name for debugging purposes.\n * When provided, changes to this property will be logged to the console in development mode,\n * making it easier to track state changes and debug reactive updates.\n *\n * Example: new Property<string>('', 'streamingText')\n * Will log: [CompositeState] streamingText: \"\" → \"new value\"\n */\n name;\n constructor(value, name) {\n this._value = value;\n this.name = name;\n }\n get value() {\n return this._value;\n }\n set value(value) {\n if (value !== this._value) {\n this._value = value;\n for (const watcher of this.watchers) {\n watcher(value);\n }\n }\n }\n watch(watcher) {\n this.watchers.push(watcher);\n return () => {\n this.watchers = this.watchers.filter(w => w !== watcher);\n };\n }\n}\nexport function createCompositeStateProvider(StateClass) {\n const context = React.createContext(undefined);\n StateClass.Context = context;\n return context.Provider;\n}\nexport class Slot {\n consume = undefined;\n _current;\n constructor(content) {\n this._current = content;\n }\n set current(content) {\n if (content !== this._current) {\n this._current = content;\n this.consume?.(content);\n }\n }\n get current() {\n return this._current;\n }\n withConsumer(consume) {\n this.consume = consume;\n consume && consume(this.current);\n return this;\n }\n}\nexport function useCompositeState(StateClass) {\n const context = StateClass.Context;\n if (!context) {\n throw new Error(\"Context not defined for \" + StateClass.name);\n }\n return useContext(context);\n}\nexport function useGetCompositeStateProperty(property) {\n const [value, setValue] = useState(property.value);\n useEffect(() => {\n return property.watch((value) => {\n if (typeof value === 'function') {\n setValue(() => value); // cannot directly store functions\n }\n else {\n setValue(value);\n }\n });\n }, [property]);\n return value;\n}\n// use memo on value to avoid re-computations if needed\nexport function useSetCompositeStateProperty(property, value) {\n useEffect(() => {\n property.value = value;\n return () => {\n property.value = undefined;\n };\n }, [property, value]);\n return value;\n}\n// use memo on watcher to avoid re-computations if needed\nexport function useWatchCompositeStateProperty(property, watcher) {\n useEffect(() => {\n return property.watch(watcher);\n }, [property, watcher]);\n}\nexport function useSlot(slot) {\n const [value, setValue] = useState(slot.current);\n useEffect(() => {\n slot.withConsumer(setValue);\n return () => {\n slot.withConsumer(undefined);\n };\n }, [slot]);\n return value;\n}\nexport function useWatchSlot(slot, watcher) {\n useEffect(() => {\n slot.withConsumer(watcher);\n return () => {\n slot.withConsumer(undefined);\n };\n }, [slot, watcher]);\n}\n// use memo for value if needed\nexport function useDefineSlot(slot, value) {\n useEffect(() => {\n slot.current = value;\n return () => {\n slot.current = undefined;\n };\n }, [slot, value]);\n}\n/**\n * Computed property that derives its value from other properties.\n * Automatically recalculates when any of its dependencies change.\n *\n * Think of it like a spreadsheet formula: if cell A1 = 5 and A2 = 10,\n * then A3 = A1 + A2 will automatically update to 15. If A1 changes to 7,\n * A3 automatically becomes 17.\n *\n * @example Basic usage\n * ```typescript\n * class MyState {\n * count = new Property(0, 'count');\n * multiplier = new Property(2, 'multiplier');\n *\n * // Automatically recalculates when count or multiplier changes\n * result = new ComputedProperty(\n * () => (this.count.value || 0) * (this.multiplier.value || 0),\n * [this.count, this.multiplier],\n * 'result'\n * );\n * }\n *\n * state.count.value = 5; // result automatically becomes 10\n * state.multiplier.value = 3; // result automatically becomes 15\n * ```\n *\n * @example Derived state\n * ```typescript\n * class EditorState {\n * workingCopy = new Property<Interaction>();\n * sourceInteraction = new Property<Interaction>();\n *\n * // Automatically true when workingCopy differs from source\n * isDirty = new ComputedProperty(\n * () => JSON.stringify(this.workingCopy.value) !==\n * JSON.stringify(this.sourceInteraction.value),\n * [this.workingCopy, this.sourceInteraction],\n * 'isDirty'\n * );\n * }\n * ```\n *\n * @example Cascading computed properties\n * ```typescript\n * class State {\n * a = new Property(1);\n * b = new Property(2);\n * sum = new ComputedProperty(() => a.value + b.value, [a, b]);\n * doubled = new ComputedProperty(() => sum.value * 2, [sum]);\n * }\n * ```\n *\n * Benefits:\n * - ✅ Automatic updates when dependencies change\n * - ✅ Memoization - only recalculates when needed\n * - ✅ Composable - can depend on other ComputedProperties\n * - ✅ Type-safe with full TypeScript support\n *\n * When to use:\n * - ✅ For derived state (values calculated from other values)\n * - ✅ When dependencies are other Properties or ComputedProperties\n * - ❌ NOT for async operations (use regular methods instead)\n * - ❌ NOT if compute function has side effects\n *\n * @important Remember to call dispose() when the ComputedProperty is no longer needed\n * to prevent memory leaks by unsubscribing from all dependencies.\n */\nexport class ComputedProperty {\n compute;\n _value;\n watchers = [];\n unsubscribers = [];\n /**\n * Optional name for debugging purposes.\n * When provided, recalculations will be logged to the console in development mode.\n */\n name;\n /**\n * @param compute - Function that calculates the derived value\n * @param dependencies - Array of Properties this computed value depends on\n * @param name - Optional name for debugging\n */\n constructor(compute, dependencies, name) {\n this.compute = compute;\n this.name = name;\n this.recalculate();\n // Watch all dependencies - when any changes, recalculate\n for (const dep of dependencies) {\n this.unsubscribers.push(dep.watch(() => this.recalculate()));\n }\n }\n recalculate() {\n const newValue = this.compute();\n if (newValue !== this._value) {\n this._value = newValue;\n for (const watcher of this.watchers) {\n watcher(newValue);\n }\n }\n }\n get value() {\n return this._value;\n }\n watch(watcher) {\n this.watchers.push(watcher);\n return () => {\n this.watchers = this.watchers.filter(w => w !== watcher);\n };\n }\n /**\n * Dispose of this ComputedProperty by unsubscribing from all dependencies.\n * Call this when the ComputedProperty is no longer needed to prevent memory leaks.\n *\n * @example\n * ```typescript\n * const computed = new ComputedProperty(...);\n *\n * // Later, when cleaning up:\n * computed.dispose();\n * ```\n */\n dispose() {\n for (const unsub of this.unsubscribers) {\n unsub();\n }\n this.watchers = [];\n }\n}\n//# sourceMappingURL=CompositeState.js.map","import { useEffect, useState } from \"react\";\nexport class SharedState {\n _value;\n watchers = [];\n constructor(value) {\n this._value = value;\n }\n get value() {\n return this._value;\n }\n set value(value) {\n if (value !== this._value) {\n this._value = value;\n for (const watcher of this.watchers) {\n watcher(value);\n }\n }\n }\n addWatcher(watcher) {\n this.watchers.push(watcher);\n return () => {\n this.watchers = this.watchers.filter(w => w !== watcher);\n };\n }\n}\nexport function useWatchSharedState(state) {\n const [value, setValue] = useState(state.value);\n useEffect(() => {\n return state.addWatcher((value) => {\n if (typeof value === 'function') {\n setValue(() => value); // cannot directly store functions\n }\n else {\n setValue(value);\n }\n });\n }, [state]);\n return value;\n}\n// export function createSharedStateContext<T>(initialValue: T) {\n// const Context = React.createContext<SharedState<T>>(undefined as any);\n// function SharedStateProvider({ value = initialValue, children }: {\n// value?: T,\n// children: React.ReactNode\n// }) {\n// const state = useMemo(() => {\n// return new SharedState(value);\n// }, []);\n// return <Context.Provider value={state}>{children}</Context.Provider>\n// }\n// const useSharedState = () => {\n// return React.useContext(Context);\n// }\n// return {\n// Context,\n// Provider: SharedStateProvider,\n// useSharedState,\n// useWatchSharedState: () => {\n// const state = useSharedState();\n// return state ? useWatchSharedState(state) : undefined;\n// }\n// }\n// }\n//# sourceMappingURL=SharedState.js.map","import { useEffect, useRef } from \"react\";\n/**\n *\n * @param callback\n * @param skipFn an optional function to skip the callback if the event matches some condition. Return true to skip\n * @returns\n */\nexport function useClickOutside(callback, skipFn) {\n const ref = useRef(null);\n useEffect(() => {\n const handleClick = (e) => {\n if (ref.current && !ref.current.contains(e.target)) {\n if (!skipFn || !skipFn(e)) {\n callback(e);\n }\n }\n };\n // add te listener just after the render to avoid the callback to be called on the current click\n // if you are in a click context\n window.setTimeout(() => {\n document.addEventListener('click', handleClick);\n }, 0);\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, []);\n return ref;\n}\n//# sourceMappingURL=useClickOutside.js.map","import { useState } from 'react';\nexport function useCopyToClipboard() {\n const [copiedText, setCopiedText] = useState(null);\n const copy = async (text) => {\n if (!navigator?.clipboard) {\n console.warn('Clipboard not supported');\n return false;\n }\n // Try to save to clipboard then save it in the state if worked\n try {\n await navigator.clipboard.writeText(text);\n setCopiedText(text);\n return true;\n }\n catch (error) {\n console.warn('Copy failed', error);\n setCopiedText(null);\n return false;\n }\n };\n return [copiedText, copy];\n}\n//# sourceMappingURL=useCopyToClipboard.js.map","import { useEffect } from \"react\";\nexport function useDarkMode(cb) {\n useEffect(() => {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const _cb = (e) => cb(e.matches);\n mediaQuery.addEventListener('change', _cb);\n cb(mediaQuery.matches);\n return () => mediaQuery.removeEventListener('change', _cb);\n }, []);\n}\n//# sourceMappingURL=useDarkMode.js.map","import { useEffect, useState } from \"react\";\nexport function useDebounce(value, delay) {\n const [debounceValue, setDebounceValue] = useState(value);\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebounceValue(value);\n }, delay);\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n return debounceValue;\n}\n//# sourceMappingURL=useDebounce.js.map","import { useEffect } from \"react\";\nfunction startSse(url, onMessage, onCompleted) {\n const chunks = [];\n const sse = new EventSource(url);\n sse.addEventListener(\"message\", ev => {\n const data = JSON.parse(ev.data);\n if (data) {\n chunks.push(data);\n onMessage(chunks.join(''));\n }\n });\n sse.addEventListener(\"close\", (ev) => {\n sse.close();\n const msg = JSON.parse(ev.data);\n onCompleted(msg);\n });\n return () => {\n sse.close();\n };\n}\nexport function useEventSource(url, onMessage, onCompleted) {\n useEffect(() => {\n if (typeof url === 'function') {\n url().then(url => startSse(url, onMessage, onCompleted));\n }\n else {\n startSse(url, onMessage, onCompleted);\n }\n }, [url]);\n}\n//# sourceMappingURL=useEventSource.js.map","import { useEffect, useState } from \"react\";\nexport function useFetch(fetcher, opts) {\n if (Array.isArray(opts)) {\n opts = { deps: opts };\n }\n const options = (opts || {});\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [data, setData] = useState(options.defaultValue);\n const fetch = () => {\n options.start && options.start();\n setIsLoading(true);\n return fetcher().then((result) => {\n setData(result);\n options.onSuccess && options.onSuccess(result);\n }).catch(error => {\n setError(error);\n options.onError && options.onError(error);\n }).finally(() => {\n setIsLoading(false);\n options.end && options.end();\n });\n };\n useEffect(() => {\n if (!options.condition || options.condition()) {\n fetch();\n }\n }, options.deps);\n return { data, isLoading, error, setData, refetch: fetch };\n}\nexport function useFetchOnce(fetcher, opts) {\n if (!opts || Array.isArray(opts)) {\n opts = { deps: [] };\n }\n else if (opts) {\n opts.deps = [];\n }\n return useFetch(fetcher, opts);\n}\n//# sourceMappingURL=useFetch.js.map","import { useState } from \"react\";\nexport function useFlag(isOn = false) {\n const [state, setState] = useState(isOn);\n return {\n isOn: state,\n isOff: !state,\n set: (value) => setState(value),\n on: () => setState(true),\n off: () => setState(false),\n toggle: () => setState(!state)\n };\n}\n//# sourceMappingURL=useFlag.js.map","import { useEffect } from \"react\";\n/**\n * if leave option is true then callback will be called when the target leaves the viewport\n * otherwise when it enters the viewport\n * @param target\n * @param cb\n * @param opts\n */\nexport function useIntersectionObserver(target, cb, opts = {}) {\n useEffect(() => {\n const observer = new IntersectionObserver(entries => {\n const isEntering = entries[0].isIntersecting;\n if (opts.leave) {\n if (!isEntering) {\n cb(entries[0]);\n }\n }\n else {\n if (isEntering) {\n cb(entries[0]);\n }\n }\n }, { threshold: opts.threshold || 1 });\n if (target.current) {\n observer.observe(target.current);\n }\n return () => {\n if (target.current) {\n observer.unobserve(target.current);\n }\n };\n }, opts.deps ? opts.deps.concat(target) : [target]);\n}\n//# sourceMappingURL=useIntersectionObserver.js.map","import { useEffect, useRef } from \"react\";\nexport function useIsFirstRendering() {\n const isFirstRender = useRef(true);\n useEffect((cb) => {\n if (cb && isFirstRender.current) {\n cb();\n }\n isFirstRender.current = false;\n // ---> StrictMode: The following is REQUIRED to reset/cleanup:\n return () => { isFirstRender.current = true; };\n }, []);\n return isFirstRender.current;\n}\n//# sourceMappingURL=useIsFistRendering.js.map","import { useEffect, useLayoutEffect } from \"react\";\nconst useSafeLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\nexport { useSafeLayoutEffect };\n//# sourceMappingURL=useSafeLayoutEffect.js.map","import { useIntersectionObserver } from \"@vertesia/ui/core\";\nimport { useEffect, useRef, useState } from \"react\";\n/**\n * A hook that provides paginated search functionality with infinite scrolling support.\n */\nexport function useScrollableSearch(opts, dependencies = []) {\n const pageSize = opts.pageSize || 50;\n const [page, setPage] = useState(null);\n const [lastPayload, setLastPayload] = useState(opts.payload);\n const [error, setError] = useState(null);\n const [results, setResults] = useState([]);\n const [nextPage, setNextPage] = useState(null);\n const [isSearching, setIsSearching] = useState(false);\n // Track current request to prevent stale results\n const requestIdRef = useRef(0);\n const search = (payload) => {\n setPage(null);\n setResults([]); // Clear old results immediately\n setNextPage(null);\n setLastPayload(payload);\n };\n const searchMore = () => {\n if (nextPage !== null) {\n setPage(nextPage);\n }\n };\n useEffect(() => {\n // Increment request ID to mark previous requests as stale\n requestIdRef.current += 1;\n const currentRequestId = requestIdRef.current;\n setIsSearching(true);\n opts.search(lastPayload, page, pageSize).then(r => {\n // Only update state if this is still the current request\n if (currentRequestId !== requestIdRef.current) {\n return; // Stale request, ignore results\n }\n // If page is null, it's a new search - replace results\n // Otherwise, it's loading more - append results\n if (page === null) {\n setResults(r.result);\n }\n else {\n setResults(prev => [...prev, ...r.result]);\n }\n setNextPage(r.nextPage);\n setError(null);\n }).catch(error => {\n // Only update error if this is still the current request\n if (currentRequestId !== requestIdRef.current) {\n return; // Stale request, ignore error\n }\n setError(error);\n }).finally(() => {\n // Only update isSearching if this is still the current request\n if (currentRequestId === requestIdRef.current) {\n setIsSearching(false);\n }\n });\n }, [...dependencies, lastPayload, page]);\n // Intersection observer for infinite scrolling\n useIntersectionObserver(opts.nextPageTrigger, () => {\n if (!isSearching && nextPage) {\n searchMore();\n }\n }, { threshold: 0.1, deps: [nextPage, isSearching] });\n return {\n search,\n refresh: () => search(lastPayload),\n searchMore,\n result: results,\n page,\n hasMore: nextPage !== null,\n error,\n isSearching,\n };\n}\nexport function useDefaultScrollableSearch(opts, dependencies = []) {\n const actualOpts = {\n ...opts,\n async search(payload, page, pageSize) {\n const currentPage = page ?? 0;\n const offset = currentPage * pageSize;\n const result = await opts.search(payload, offset, pageSize);\n return {\n result,\n nextPage: result.length === 0 ? null : currentPage + 1\n };\n }\n };\n return useScrollableSearch(actualOpts, dependencies);\n}\n//# sourceMappingURL=useScrollableSearch.js.map","import { useState } from \"react\";\nexport class SharedValue {\n state;\n constructor(state) {\n this.state = state;\n }\n get() {\n return this.state[0];\n }\n set(value) {\n this.state[1](value);\n }\n}\n/**\n * Share a stateful value\n */\nexport function useSharedValue(initialValue) {\n const state = useState(initialValue);\n return new SharedValue(state);\n}\n//# sourceMappingURL=useSharedValue.js.map","import { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nexport function cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n//# sourceMappingURL=cn.js.map"],"names":["getRealSize","size","Error","Avatar","src","name","shape","color","className","rounded","sizeClass","_jsx","alt","title","first","second","split","text","children","fill","viewBox","d","SvgAvatar","Center","clsx","PositionResolver","left","top","width","height","alignAxis","gap","constructor","this","position","pos","anchorRect","elemRect","bottom","right","align","computePosition","constraints","constrainWidth","constrainHeight","rect","DOMRect","flipAxis","axis","newAlign","flipAlign","newPos","flipPos","isElementVisibleOnAxis","clientRect","resolver","computedPos","isVisibleOnXAxis","isVisibleOnYAxis","newConstraints","isElementVisible","intersectRects","rect1","rect2","x1","Math","max","y1","x2","min","y2","isScrollable","element","hasScrollY","scrollHeight","clientHeight","hasScrollX","scrollWidth","clientWidth","style","getComputedStyle","overflowY","overflowX","PopupController","options","root","scrollableParents","visibleClientRect","context","document","documentElement","parents","parent","parentElement","push","getScrollableParents","anchor","length","getBoundingClientRect","i","l","computeVisibleClientRect","registerListeners","updateHandler","update","window","addEventListener","closeOnClick","closeOnEsc","ev","contains","target","tryClose","setTimeout","key","blockPageScroll","body","overflow","removeEventListener","open","tryOpen","cleanup","display","visibility","onOpen","close","onClose","undefined","isOpen","createPopupElement","popup","createElement","margin","padding","border","background","PopupContext","createContext","usePopupController","ctrl","useContext","DOMPopup","ctrlRef","id","zIndex","props","popupRef","useRef","setCtrl","useState","useEffect","_ctrl","current","Provider","value","createPortal","ref","Popup","others","OptionAdapter","filter","items","lcText","toLowerCase","item","valueOf","includes","renderOption","findById","find","idOf","createItem","_value","StringOptionAdapter","String","static","StringOptionAdapterWithCreate","getDefaultComboBoxLayout","fullWidth","unstyledInput","buttonRight","buttonWidth","maxMenuHeight","menuClass","inputClass","INPUT_NO_PADDING","optionClass","Input","Menu","Toggle","ComboBox","menuAlign","menuGap","focusOnMount","onSelect","api","layout","layoutOpts","adapter","placeholder","popupId","floor","random","popupCtrl","inputRef","Object","assign","inputBoxRef","React","useComboboxCtrl","focus","openMenu","closeMenu","toggle","toggleMenu","setInputValue","inputText","inputValue","selectedItem","showMenu","isMenuOpen","filteredItems","_jsxs","_Fragment","boxRef","fillWidth","ComboInput","paddingRight","getInputProps","backgroundColor","alignItems","justifyContent","getToggleButtonProps","ComboToggle","ChevronUpIcon","ChevronDownIcon","ComboMenu","highlightedIndex","maxHeight","getMenuProps","map","index","getItemProps","ComboboxController","withState","setState","_selectedItem","_filteredItems","_inputText","_highlightedIndex","_isMenuOpen","clone","updateState","popupPosition","_item","highlightIndex","navigateToTop","getElementById","querySelector","scrollIntoView","onClick","onMouseEnter","onMouseLeave","onChange","onKeyDown","decrModulo","Divider","Dropdown","trigger","as","MenuButton","Transition","Fragment","enter","enterFrom","enterTo","leave","leaveFrom","leaveTo","MenuItems","MenuItem","href","isDisabled","_MenuItem","disabled","active","e","preventDefault","stopPropagation","DropdownList","Listbox","Check","ListboxButton","ChevronDown","show","ListboxOptions","option","ListboxOption","selected","description","EmptyCollection","buttonLabel","stroke","vectorEffect","strokeLinecap","strokeLinejoin","strokeWidth","Button","Plus","FileUploadInput","onUpload","cursor","type","files","ar","fileListToArray","DropZone","dropZoneProps","useDropZone","htmlFor","xmlns","dragOverClass","dropEffect","onDrop","__dragOver_cnt__","classList","remove","dataTransfer","promises","traverseFileTree","path","Promise","resolve","isFile","file","defineProperty","isDirectory","dirReader","createReader","entries","readEntries","results","entry","all","then","filesArrays","flat","webkitGetAsEntry","allFiles","onDragOver","onDragEnter","el","cnt","_onDragEnter","add","onDragLeave","_onDragLeave","cn","inputs","twMerge","PortalContainerContext","PortalContainerProvider","container","setContainer","getRootNode","ShadowRoot","Document","child","Array","from","HTMLElement","appendChild","findOrCreatePortalContainer","usePortalContainer","TooltipProvider","TooltipPrimitive","Tooltip","Root","TooltipTrigger","Trigger","TooltipContent","forwardRef","sideOffset","side","Portal","Content","VTooltip","placement","asChild","delayDuration","FormItem","required","label","direction","Info","displayName","badgeVariants","cva","variants","variant","default","secondary","destructive","attention","success","info","done","defaultVariants","Badge","dotBadgeVariants","dotVariants","DotBadge","dotClassName","cx","cy","r","xs","sm","md","lg","xl","unstyled","noPadding","legacy","clearable","readOnly","X","InputList","delimiters","autoFocus","setText","v","splice","_onClick","onBlur","trim","isEmpty","indexOf","pop","onPaste","pastedText","clipboardData","getData","delimiterPattern","char","replace","join","regex","RegExp","newValues","Link","underline","underlineClass","MenuList","MenuListItem","Item","Styles","INPUT_UNSTYLED","INPUT","numberToString","isNaN","toString","NumberInput","noScroll","noSpinners","textValue","setTextValue","onWheel","event","blur","num","parseFloat","buttonVariants","outline","ghost","link","primary","icon","isLoading","buttonElement","Slot","Loader2","CopyButton","content","toast","isCopied","setIsCopied","navigator","clipboard","writeText","status","message","duration","catch","err","console","error","CopyIcon","Overlay","overlayContent","overlayClassName","showCloseButton","triggerClassName","backdropClassName","animationConfig","stiffness","damping","setIsOpen","animationProps","initial","x","animate","exit","y","opacity","scale","getAnimationProps","positionClasses","baseClasses","getPositionClasses","motion","div","transition","PORTAL_ID","tempNode","portalEl","setPortalEl","doc","ownerDocument","RadioOptionAdapter","labelOf","RadioGroup","checkColor","cols","checkIcon","CheckIcon","DefaultCheckIcon","setSelected","selectedId","RadioOption","isSelected","isHighlighted","setIsHighlighted","isChecked","version","fillRule","ThemeProviderContext","theme","setTheme","ThemeProvider","defaultTheme","storageKey","localStorage","getItem","systemTheme","matchMedia","matches","setItem","useTheme","ModeOption","ModeToggle","Computer","Sun","Moon","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","VisuallyHidden","clip","whiteSpace","wordWrap","ModalContext","useIsInModal","ModalContextProvider","Modal","noCloseButton","allowOverflow","disableCloseOnClickOutside","action","handleOpenChange","Dialog","onOpenChange","DialogOverlay","DialogDescription","DialogContent","getSizeClasses","DialogClose","ModalTitle","showDivider","DialogTitle","ModalBody","ModalFooter","center","DialogPrimitive","DialogTrigger","DialogPortal","Close","onOpenAutoFocus","Description","Title","ConfirmModal","onConfirm","onCancel","cancelButtonRef","TriangleAlert","useToast","ToastContext","icons","CircleCheck","CircleX","warning","AlertTriangle","colors","NotificationPanel","data","setShow","timeoutRef","resetTimeout","globalThis","clearTimeout","clearCurrentTimeout","Icon","appear","afterLeave","ToastProvider","setData","DeleteModal","idToDelete","setIdToDelete","deleteApi","async","finally","Separator","orientation","decorative","SeparatorPrimitive","PopoverContext","Popover","hover","click","_open","setOpen","insideModal","PopoverPrimitive","modal","handleHover","PopoverTrigger","prev","PopoverAnchor","Anchor","PopoverContent","PopoverClose","Command","CommandPrimitive","CommandDialog","CommandInput","Search","CommandList","List","CommandEmpty","Empty","CommandGroup","Group","CommandSeparator","CommandItem","CommandShortcut","SelectBox","optionLabel","addNew","addNewLabel","filterBy","popupClass","isClearable","multiple","by","inline","warnOnMissingValue","missingValueWarning","clearIcon","clearTitle","triggerRef","setWidth","filterValue","setFilterValue","isMissingValue","useMemo","some","opt","isEqual","updateWidth","contentWidth","resizeObserver","ResizeObserver","observe","disconnect","isOptionSelected","selectedValues","isOptionsEqual","a","b","filteredOptions","filterLc","filterFn","o","getFilterByFn","renderOptionsContent","SearchIcon","isArray","currentValues","SquarePlus","absoluteStrokeWidth","arrayValue","slice","renderMultipleValue","singleValue","renderSingleValue","ChevronsUpDown","TabsContext","tabs","setTab","responsive","updateHash","Tabs","defaultValue","onTabChange","setValue","currentValue","hash","location","currentTab","substring","tab","handleHashChange","handleValueChange","newValue","currentState","history","state","newUrl","pathname","search","pushState","useCallback","tabName","TabsPrimitive","onValueChange","TabsBar","handleTabChange","t","TabsList","TabsTrigger","warn","TabsPanel","TabsContent","handleClick","labelVariants","Label","LabelPrimitive","Breadcrumbs","maxItems","separator","renderBreadcrumbItem","BreadcrumbButton","BreadcrumbPage","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbSeparator","ChevronRight","lastThreeItems","BreadcrumbEllipsis","role","MoreHorizontal","AnimateChangeInHeight","containerRef","setHeight","observedHeight","contentRect","Checkbox","CheckboxPrimitive","Indicator","DynamicLabel","labelRenderer","fallbackLabel","setLabel","setIsLoading","result","resolvedLabel","renderLabel","SelectionCombobox","filterType","filterValues","setFilterValues","commandInput","setCommandInput","commandInputRef","nonSelectedFilterValues","onInputCapture","currentTarget","checked","calendarStyles","DateCombobox","isRange","localDateRange","setLocalDateRange","selectedDate","Date","dateRange","handleDateChange","date","dayjs","format","actualDate","alignOffset","ReactCalendar","selectRange","returnValue","maxDate","setHours","tileClassName","view","currentDate","getTime","today","startDate","endDate","TextCombobox","StringListCombobox","tags","setTags","JSON","stringify","generateComboboxOptions","setFilters","filterGroups","f","dateValue","values","filterGroup","group","Filters","filters","TextFilter","selectedView","handleClose","handleTextFilterAdd","DateFilter","setSelectedDate","setDateRange","selectedGroup","g","isDateRange","effectiveDateRange","selectedDateStart","toISOString","Calendar","SelectFilter","selectedOptions","setSelectedOptions","groupName","getFilteredOptions","filterOption","existingFilterIndex","findIndex","updatedFilters","handleOptionToggle","StringListFilter","FilterContext","FilterProvider","searchParams","URL","hasInitialized","setHasInitialized","params","URLSearchParams","filterString","encodeURIComponent","firstValue","set","delete","replaceState","filtersParam","get","parsedFilters","pair","encodedName","valuesString","decodeURIComponent","startsWith","endsWith","arrayContent","encodedValue","matchingOption","shouldBeMultiple","FilterBtn","setSelectedView","ListFilter","selectedGroupType","renderFilterOptions","val","handleSelect","getAvailableFilterGroups","FilterBar","FilterClear","FilterOperator","Heading","level","h1","h2","h3","h4","h5","h6","textVariants","weight","normal","medium","semibold","Text","ResizablePanelGroup","ResizablePrimitive","PanelGroup","ResizablePanel","Panel","ResizableHandle","withHandle","PanelResizeHandle","Minus","Textarea","MessageBox","defaultIcon","titleColor","textColor","bgColor","ErrorBox","InfoBox","WarningBox","SuccessBox","DefaultBox","footer","defaultOptionLayout","check","reverse","SelectList","optionLayout","noCheck","optionEquals","o1","o2","SelectListOption","SelectStack","Option","SidePanel","panelWidth","backdrop","resizable","_panelWidth","setPanelWidth","isLeft","positionClass","paddingClass","borderClass","dragHandleClass","initialX","AnimatePresence","onMouseDown","isDragging","startX","pageX","startWidth","handleMouseMove","deltaX","newWidth","handleMouseUp","CloseButton","Spinner","sizes","Switch","UISwitch","Table","THead","RowSkeleton","columns","_","TBody","rows","TR","TagsInputContent","onOptionsChange","creatable","createText","maxDropdownHeight","popoverContext","searchTerm","setSearchTerm","setHighlightedIndex","pendingDeleteIndex","setPendingDeleteIndex","dropdownRef","highlightedItemRef","showCreateOption","totalItems","block","behavior","handleCreate","newTag","handleRemove","lastIndex","onFocus","TagsInput","Property","watchers","watcher","watch","w","createCompositeStateProvider","StateClass","Context","consume","_current","withConsumer","useCompositeState","useGetCompositeStateProperty","property","useSetCompositeStateProperty","useWatchCompositeStateProperty","useSlot","slot","useWatchSlot","useDefineSlot","ComputedProperty","compute","unsubscribers","dependencies","recalculate","dep","dispose","unsub","SharedState","addWatcher","useWatchSharedState","useClickOutside","callback","skipFn","useCopyToClipboard","copiedText","setCopiedText","useDarkMode","cb","mediaQuery","_cb","useDebounce","delay","debounceValue","setDebounceValue","handler","startSse","url","onMessage","onCompleted","chunks","sse","EventSource","parse","msg","useEventSource","useFetch","fetcher","opts","deps","setError","fetch","start","onSuccess","onError","end","condition","refetch","useFetchOnce","useFlag","isOn","isOff","on","off","useIntersectionObserver","observer","IntersectionObserver","isEntering","isIntersecting","threshold","unobserve","concat","useIsFirstRendering","isFirstRender","useSafeLayoutEffect","useLayoutEffect","useScrollableSearch","pageSize","page","setPage","lastPayload","setLastPayload","payload","setResults","nextPage","setNextPage","isSearching","setIsSearching","requestIdRef","searchMore","currentRequestId","nextPageTrigger","refresh","hasMore","useDefaultScrollableSearch","currentPage","offset","SharedValue","useSharedValue","initialValue"],"mappings":"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"}
|