@vertesia/ui 0.76.0 → 0.78.0-dev-9372725
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/package.json +170 -164
- package/src/core/components/SelectList.tsx +11 -1
- package/src/core/components/SidePanel.tsx +15 -12
- package/src/core/components/shadcn/filters/filterBar.tsx +46 -20
- package/src/core/components/shadcn/index.ts +1 -0
- package/src/core/components/shadcn/resizeable.tsx +54 -0
- package/src/core/components/shadcn/tabs.tsx +16 -6
- package/src/core/components/table/index.tsx +1 -1
- package/src/core/hooks/PortalContainerProvider.tsx +56 -0
- package/src/core/hooks/index.ts +1 -0
- package/src/env/index.ts +2 -1
- package/src/features/facets/CollectionsFacetsNav.tsx +94 -0
- package/src/features/facets/DocumentsFacetsNav.tsx +22 -11
- package/src/features/facets/EnvironmentFacet.tsx +1 -1
- package/src/features/facets/InteractionsFacetsNav.tsx +111 -0
- package/src/features/facets/PromptsFacetsNav.tsx +110 -0
- package/src/features/facets/RunsFacetsNav.tsx +40 -9
- package/src/features/facets/WorkflowExecutionsFacetsNav.tsx +10 -8
- package/src/features/facets/index.ts +11 -9
- package/{lib/types/features/facets/VFacetsNav.d.ts → src/features/facets/utils/SearchInterface.tsx} +0 -8
- package/src/features/facets/{VTypeFacet.tsx → utils/VTypeFacet.tsx} +6 -3
- package/src/features/facets/{VUserFacet.tsx → utils/VUserFacet.tsx} +1 -1
- package/src/features/store/collections/EditCollectionView.tsx +14 -1
- package/src/features/store/collections/SelectCollection.tsx +160 -31
- package/src/features/store/objects/DocumentSearchResults.tsx +75 -39
- package/src/features/store/objects/components/ContentOverview.tsx +432 -261
- package/src/features/store/objects/components/DocumentIcon.tsx +37 -2
- package/src/features/store/objects/layout/documentLayout.tsx +3 -7
- package/src/features/store/objects/search/DocumentSearchContext.ts +8 -3
- package/src/features/store/objects/selection/actions/AddToCollectionAction.tsx +15 -8
- package/src/features/store/objects/upload/DocumentUploadModal.tsx +5 -6
- package/src/features/store/types/ObjectSchemaEditor.tsx +1 -1
- package/src/features/user/UserInfo.tsx +68 -3
- package/src/session/UserSession.ts +1 -0
- package/src/session/UserSessionProvider.tsx +1 -1
- package/src/session/auth/composable.ts +71 -70
- package/src/shell/apps/AppProjectSelector.tsx +19 -8
- package/src/shell/apps/index.ts +1 -1
- package/src/shell/login/UserInfo.tsx +1 -1
- package/src/widgets/schema-editor/index.ts +0 -1
- package/lib/esm/core/components/Avatar.js +0 -31
- package/lib/esm/core/components/Avatar.js.map +0 -1
- package/lib/esm/core/components/Badge.js +0 -62
- package/lib/esm/core/components/Badge.js.map +0 -1
- package/lib/esm/core/components/Button.js +0 -32
- package/lib/esm/core/components/Button.js.map +0 -1
- package/lib/esm/core/components/Center.js +0 -6
- package/lib/esm/core/components/Center.js.map +0 -1
- package/lib/esm/core/components/ComboBox.js +0 -356
- package/lib/esm/core/components/ComboBox.js.map +0 -1
- package/lib/esm/core/components/ConfirmModal.js +0 -10
- package/lib/esm/core/components/ConfirmModal.js.map +0 -1
- package/lib/esm/core/components/DeleteModal.js +0 -28
- package/lib/esm/core/components/DeleteModal.js.map +0 -1
- package/lib/esm/core/components/Divider.js +0 -6
- package/lib/esm/core/components/Divider.js.map +0 -1
- package/lib/esm/core/components/Dropdown.js +0 -16
- package/lib/esm/core/components/Dropdown.js.map +0 -1
- package/lib/esm/core/components/DropdownList.js +0 -9
- package/lib/esm/core/components/DropdownList.js.map +0 -1
- package/lib/esm/core/components/EmptyCollection.js +0 -7
- package/lib/esm/core/components/EmptyCollection.js.map +0 -1
- package/lib/esm/core/components/FileUpload.js +0 -119
- package/lib/esm/core/components/FileUpload.js.map +0 -1
- package/lib/esm/core/components/FormItem.js +0 -9
- package/lib/esm/core/components/FormItem.js.map +0 -1
- package/lib/esm/core/components/InputList.js +0 -43
- package/lib/esm/core/components/InputList.js.map +0 -1
- package/lib/esm/core/components/Link.js +0 -13
- package/lib/esm/core/components/Link.js.map +0 -1
- package/lib/esm/core/components/MenuList.js +0 -23
- package/lib/esm/core/components/MenuList.js.map +0 -1
- package/lib/esm/core/components/MessageBox.js +0 -66
- package/lib/esm/core/components/MessageBox.js.map +0 -1
- package/lib/esm/core/components/Modal.js +0 -26
- package/lib/esm/core/components/Modal.js.map +0 -1
- package/lib/esm/core/components/NumberInput.js +0 -43
- package/lib/esm/core/components/NumberInput.js.map +0 -1
- package/lib/esm/core/components/Overlay.js +0 -57
- package/lib/esm/core/components/Overlay.js.map +0 -1
- package/lib/esm/core/components/Portal.js +0 -28
- package/lib/esm/core/components/Portal.js.map +0 -1
- package/lib/esm/core/components/RadioGroup.js +0 -34
- package/lib/esm/core/components/RadioGroup.js.map +0 -1
- package/lib/esm/core/components/SelectBox.js +0 -67
- package/lib/esm/core/components/SelectBox.js.map +0 -1
- package/lib/esm/core/components/SelectList.js +0 -47
- package/lib/esm/core/components/SelectList.js.map +0 -1
- package/lib/esm/core/components/SelectStack.js +0 -8
- package/lib/esm/core/components/SelectStack.js.map +0 -1
- package/lib/esm/core/components/SidePanel.js +0 -33
- package/lib/esm/core/components/SidePanel.js.map +0 -1
- package/lib/esm/core/components/Spinner.js +0 -18
- package/lib/esm/core/components/Spinner.js.map +0 -1
- package/lib/esm/core/components/Switch.js +0 -12
- package/lib/esm/core/components/Switch.js.map +0 -1
- package/lib/esm/core/components/Textarea.js +0 -15
- package/lib/esm/core/components/Textarea.js.map +0 -1
- package/lib/esm/core/components/index.js +0 -35
- package/lib/esm/core/components/index.js.map +0 -1
- package/lib/esm/core/components/libs/utils.js +0 -6
- package/lib/esm/core/components/libs/utils.js.map +0 -1
- package/lib/esm/core/components/libs/visuallyHidden.js +0 -16
- package/lib/esm/core/components/libs/visuallyHidden.js.map +0 -1
- package/lib/esm/core/components/popup/Popup.js +0 -60
- package/lib/esm/core/components/popup/Popup.js.map +0 -1
- package/lib/esm/core/components/popup/PopupController.js +0 -149
- package/lib/esm/core/components/popup/PopupController.js.map +0 -1
- package/lib/esm/core/components/popup/index.js +0 -4
- package/lib/esm/core/components/popup/index.js.map +0 -1
- package/lib/esm/core/components/popup/position.js +0 -221
- package/lib/esm/core/components/popup/position.js.map +0 -1
- package/lib/esm/core/components/popup/utils.js +0 -74
- package/lib/esm/core/components/popup/utils.js.map +0 -1
- package/lib/esm/core/components/shadcn/breadcrumb.js +0 -30
- package/lib/esm/core/components/shadcn/breadcrumb.js.map +0 -1
- package/lib/esm/core/components/shadcn/button.js +0 -75
- package/lib/esm/core/components/shadcn/button.js.map +0 -1
- package/lib/esm/core/components/shadcn/calendar.js +0 -13
- package/lib/esm/core/components/shadcn/calendar.js.map +0 -1
- package/lib/esm/core/components/shadcn/card.js +0 -17
- package/lib/esm/core/components/shadcn/card.js.map +0 -1
- package/lib/esm/core/components/shadcn/checkbox.js +0 -9
- package/lib/esm/core/components/shadcn/checkbox.js.map +0 -1
- package/lib/esm/core/components/shadcn/command.js +0 -29
- package/lib/esm/core/components/shadcn/command.js.map +0 -1
- package/lib/esm/core/components/shadcn/dialog.js +0 -60
- package/lib/esm/core/components/shadcn/dialog.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/DynamicLabel.js +0 -38
- package/lib/esm/core/components/shadcn/filters/DynamicLabel.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/animateChangeInHeight.js +0 -23
- package/lib/esm/core/components/shadcn/filters/animateChangeInHeight.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js +0 -129
- package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js +0 -46
- package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js +0 -23
- package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/TextCombobox.js +0 -28
- package/lib/esm/core/components/shadcn/filters/comboBox/TextCombobox.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/comboBox.js +0 -5
- package/lib/esm/core/components/shadcn/filters/comboBox/comboBox.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/filter/SelectFilter.js +0 -101
- package/lib/esm/core/components/shadcn/filters/filter/SelectFilter.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js +0 -24
- package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/filter/TextFilter.js +0 -21
- package/lib/esm/core/components/shadcn/filters/filter/TextFilter.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js +0 -161
- package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/filter-styles.js +0 -88
- package/lib/esm/core/components/shadcn/filters/filter-styles.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/filterBar.js +0 -215
- package/lib/esm/core/components/shadcn/filters/filterBar.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/filters.js +0 -57
- package/lib/esm/core/components/shadcn/filters/filters.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/index.js +0 -6
- package/lib/esm/core/components/shadcn/filters/index.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/types.js +0 -10
- package/lib/esm/core/components/shadcn/filters/types.js.map +0 -1
- package/lib/esm/core/components/shadcn/heading.js +0 -17
- package/lib/esm/core/components/shadcn/heading.js.map +0 -1
- package/lib/esm/core/components/shadcn/index.js +0 -22
- package/lib/esm/core/components/shadcn/index.js.map +0 -1
- package/lib/esm/core/components/shadcn/input.js +0 -38
- package/lib/esm/core/components/shadcn/input.js.map +0 -1
- package/lib/esm/core/components/shadcn/label.js +0 -10
- package/lib/esm/core/components/shadcn/label.js.map +0 -1
- package/lib/esm/core/components/shadcn/popover.js +0 -50
- package/lib/esm/core/components/shadcn/popover.js.map +0 -1
- package/lib/esm/core/components/shadcn/selectBox.js +0 -128
- package/lib/esm/core/components/shadcn/selectBox.js.map +0 -1
- package/lib/esm/core/components/shadcn/separator.js +0 -8
- package/lib/esm/core/components/shadcn/separator.js.map +0 -1
- package/lib/esm/core/components/shadcn/tabs.js +0 -120
- package/lib/esm/core/components/shadcn/tabs.js.map +0 -1
- package/lib/esm/core/components/shadcn/text.js +0 -30
- package/lib/esm/core/components/shadcn/text.js.map +0 -1
- package/lib/esm/core/components/shadcn/theme/ThemeProvider.js +0 -39
- package/lib/esm/core/components/shadcn/theme/ThemeProvider.js.map +0 -1
- package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js +0 -13
- package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js.map +0 -1
- package/lib/esm/core/components/shadcn/tooltip.js +0 -14
- package/lib/esm/core/components/shadcn/tooltip.js.map +0 -1
- package/lib/esm/core/components/styles.js +0 -10
- package/lib/esm/core/components/styles.js.map +0 -1
- package/lib/esm/core/components/table/index.js +0 -23
- package/lib/esm/core/components/table/index.js.map +0 -1
- package/lib/esm/core/components/tabs/Tabs.js +0 -78
- package/lib/esm/core/components/tabs/Tabs.js.map +0 -1
- package/lib/esm/core/components/tabs/TabsContext.js +0 -7
- package/lib/esm/core/components/tabs/TabsContext.js.map +0 -1
- package/lib/esm/core/components/tabs/index.js +0 -3
- package/lib/esm/core/components/tabs/index.js.map +0 -1
- package/lib/esm/core/components/toast/NotificationPanel.js +0 -43
- package/lib/esm/core/components/toast/NotificationPanel.js.map +0 -1
- package/lib/esm/core/components/toast/ToastContext.js +0 -7
- package/lib/esm/core/components/toast/ToastContext.js.map +0 -1
- package/lib/esm/core/components/toast/ToastProps.js +0 -2
- package/lib/esm/core/components/toast/ToastProps.js.map +0 -1
- package/lib/esm/core/components/toast/ToastProvider.js +0 -13
- package/lib/esm/core/components/toast/ToastProvider.js.map +0 -1
- package/lib/esm/core/components/toast/index.js +0 -3
- package/lib/esm/core/components/toast/index.js.map +0 -1
- package/lib/esm/core/hooks/CompositeState.js +0 -118
- package/lib/esm/core/hooks/CompositeState.js.map +0 -1
- package/lib/esm/core/hooks/SharedState.js +0 -64
- package/lib/esm/core/hooks/SharedState.js.map +0 -1
- package/lib/esm/core/hooks/index.js +0 -14
- package/lib/esm/core/hooks/index.js.map +0 -1
- package/lib/esm/core/hooks/useClickOutside.js +0 -29
- package/lib/esm/core/hooks/useClickOutside.js.map +0 -1
- package/lib/esm/core/hooks/useCopyToClipboard.js +0 -23
- package/lib/esm/core/hooks/useCopyToClipboard.js.map +0 -1
- package/lib/esm/core/hooks/useDarkMode.js +0 -11
- package/lib/esm/core/hooks/useDarkMode.js.map +0 -1
- package/lib/esm/core/hooks/useDebounce.js +0 -14
- package/lib/esm/core/hooks/useDebounce.js.map +0 -1
- package/lib/esm/core/hooks/useEventSource.js +0 -31
- package/lib/esm/core/hooks/useEventSource.js.map +0 -1
- package/lib/esm/core/hooks/useFetch.js +0 -40
- package/lib/esm/core/hooks/useFetch.js.map +0 -1
- package/lib/esm/core/hooks/useFlag.js +0 -13
- package/lib/esm/core/hooks/useFlag.js.map +0 -1
- package/lib/esm/core/hooks/useIntersectionObserver.js +0 -34
- package/lib/esm/core/hooks/useIntersectionObserver.js.map +0 -1
- package/lib/esm/core/hooks/useIsFistRendering.js +0 -14
- package/lib/esm/core/hooks/useIsFistRendering.js.map +0 -1
- package/lib/esm/core/hooks/useSafeLayoutEffect.js +0 -4
- package/lib/esm/core/hooks/useSafeLayoutEffect.js.map +0 -1
- package/lib/esm/core/hooks/useSharedValue.js +0 -21
- package/lib/esm/core/hooks/useSharedValue.js.map +0 -1
- package/lib/esm/core/index.js +0 -4
- package/lib/esm/core/index.js.map +0 -1
- package/lib/esm/core/utils/cn.js +0 -6
- package/lib/esm/core/utils/cn.js.map +0 -1
- package/lib/esm/core/utils/index.js +0 -2
- package/lib/esm/core/utils/index.js.map +0 -1
- package/lib/esm/env/index.js +0 -72
- package/lib/esm/env/index.js.map +0 -1
- package/lib/esm/features/activity-doc/ActivityDoc.js +0 -71
- package/lib/esm/features/activity-doc/ActivityDoc.js.map +0 -1
- package/lib/esm/features/activity-doc/index.js +0 -2
- package/lib/esm/features/activity-doc/index.js.map +0 -1
- package/lib/esm/features/agent/PayloadBuilder.js +0 -241
- package/lib/esm/features/agent/PayloadBuilder.js.map +0 -1
- package/lib/esm/features/agent/chat/AnimatedThinkingDots.js +0 -207
- package/lib/esm/features/agent/chat/AnimatedThinkingDots.js.map +0 -1
- package/lib/esm/features/agent/chat/JumpingDots.js +0 -6
- package/lib/esm/features/agent/chat/JumpingDots.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentConversation.js +0 -415
- package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +0 -130
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js +0 -62
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.js +0 -29
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js +0 -97
- package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js +0 -46
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +0 -364
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessagesContainer.js +0 -20
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessagesContainer.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js +0 -62
- package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlideInPanel.js +0 -23
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlideInPanel.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingMessages.js +0 -52
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingMessages.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js +0 -82
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/StackedMessages.js +0 -13
- package/lib/esm/features/agent/chat/ModernAgentOutput/StackedMessages.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +0 -105
- package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +0 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js +0 -160
- package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js.map +0 -1
- package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js +0 -266
- package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js.map +0 -1
- package/lib/esm/features/agent/chat/WaitingMessages.js +0 -60
- package/lib/esm/features/agent/chat/WaitingMessages.js.map +0 -1
- package/lib/esm/features/agent/chat/index.js +0 -5
- package/lib/esm/features/agent/chat/index.js.map +0 -1
- package/lib/esm/features/agent/index.js +0 -3
- package/lib/esm/features/agent/index.js.map +0 -1
- package/lib/esm/features/errors/PanelErrorBoundary.js +0 -11
- package/lib/esm/features/errors/PanelErrorBoundary.js.map +0 -1
- package/lib/esm/features/errors/RowErrorBoundary.js +0 -9
- package/lib/esm/features/errors/RowErrorBoundary.js.map +0 -1
- package/lib/esm/features/errors/VertesiaErrorBoundary.js +0 -15
- package/lib/esm/features/errors/VertesiaErrorBoundary.js.map +0 -1
- package/lib/esm/features/errors/WidgetErrorBoundary.js +0 -11
- package/lib/esm/features/errors/WidgetErrorBoundary.js.map +0 -1
- package/lib/esm/features/errors/index.js +0 -5
- package/lib/esm/features/errors/index.js.map +0 -1
- package/lib/esm/features/facets/DocumentsFacetsNav.js +0 -135
- package/lib/esm/features/facets/DocumentsFacetsNav.js.map +0 -1
- package/lib/esm/features/facets/EnvironmentFacet.js +0 -39
- package/lib/esm/features/facets/EnvironmentFacet.js.map +0 -1
- package/lib/esm/features/facets/FacetsNav.js +0 -8
- package/lib/esm/features/facets/FacetsNav.js.map +0 -1
- package/lib/esm/features/facets/RunsFacetsNav.js +0 -135
- package/lib/esm/features/facets/RunsFacetsNav.js.map +0 -1
- package/lib/esm/features/facets/StringFacet.js +0 -12
- package/lib/esm/features/facets/StringFacet.js.map +0 -1
- package/lib/esm/features/facets/StringListFacet.js +0 -11
- package/lib/esm/features/facets/StringListFacet.js.map +0 -1
- package/lib/esm/features/facets/TypeFacet.js +0 -42
- package/lib/esm/features/facets/TypeFacet.js.map +0 -1
- package/lib/esm/features/facets/VEnvironmentFacet.js +0 -24
- package/lib/esm/features/facets/VEnvironmentFacet.js.map +0 -1
- package/lib/esm/features/facets/VFacetsNav.js +0 -48
- package/lib/esm/features/facets/VFacetsNav.js.map +0 -1
- package/lib/esm/features/facets/VInteractionFacet.js +0 -45
- package/lib/esm/features/facets/VInteractionFacet.js.map +0 -1
- package/lib/esm/features/facets/VStringFacet.js +0 -20
- package/lib/esm/features/facets/VStringFacet.js.map +0 -1
- package/lib/esm/features/facets/VTypeFacet.js +0 -56
- package/lib/esm/features/facets/VTypeFacet.js.map +0 -1
- package/lib/esm/features/facets/VUserFacet.js +0 -31
- package/lib/esm/features/facets/VUserFacet.js.map +0 -1
- package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js +0 -98
- package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js.map +0 -1
- package/lib/esm/features/facets/index.js +0 -13
- package/lib/esm/features/facets/index.js.map +0 -1
- package/lib/esm/features/facets/utils.js +0 -7
- package/lib/esm/features/facets/utils.js.map +0 -1
- package/lib/esm/features/index.js +0 -11
- package/lib/esm/features/index.js.map +0 -1
- package/lib/esm/features/layout/GenericPageNavHeader.js +0 -11
- package/lib/esm/features/layout/GenericPageNavHeader.js.map +0 -1
- package/lib/esm/features/layout/NotFoundView.js +0 -5
- package/lib/esm/features/layout/NotFoundView.js.map +0 -1
- package/lib/esm/features/layout/index.js +0 -3
- package/lib/esm/features/layout/index.js.map +0 -1
- package/lib/esm/features/magic-pdf/DownloadPopover.js +0 -28
- package/lib/esm/features/magic-pdf/DownloadPopover.js.map +0 -1
- package/lib/esm/features/magic-pdf/MagicPdfView.js +0 -67
- package/lib/esm/features/magic-pdf/MagicPdfView.js.map +0 -1
- package/lib/esm/features/magic-pdf/PageSlider.js +0 -70
- package/lib/esm/features/magic-pdf/PageSlider.js.map +0 -1
- package/lib/esm/features/magic-pdf/PdfPageProvider.js +0 -188
- package/lib/esm/features/magic-pdf/PdfPageProvider.js.map +0 -1
- package/lib/esm/features/magic-pdf/TextPageView.js +0 -62
- package/lib/esm/features/magic-pdf/TextPageView.js.map +0 -1
- package/lib/esm/features/magic-pdf/index.js +0 -2
- package/lib/esm/features/magic-pdf/index.js.map +0 -1
- package/lib/esm/features/magic-pdf/types.js +0 -2
- package/lib/esm/features/magic-pdf/types.js.map +0 -1
- package/lib/esm/features/magic-pdf/useResizeOnDrag.js +0 -34
- package/lib/esm/features/magic-pdf/useResizeOnDrag.js.map +0 -1
- package/lib/esm/features/permissions/SecureButton.js +0 -13
- package/lib/esm/features/permissions/SecureButton.js.map +0 -1
- package/lib/esm/features/permissions/SecureSidebarItem.js +0 -14
- package/lib/esm/features/permissions/SecureSidebarItem.js.map +0 -1
- package/lib/esm/features/permissions/UserPermissionsProvider.js +0 -87
- package/lib/esm/features/permissions/UserPermissionsProvider.js.map +0 -1
- package/lib/esm/features/permissions/helpers.js +0 -12
- package/lib/esm/features/permissions/helpers.js.map +0 -1
- package/lib/esm/features/permissions/index.js +0 -5
- package/lib/esm/features/permissions/index.js.map +0 -1
- package/lib/esm/features/store/collections/BrowseCollectionView.js +0 -37
- package/lib/esm/features/store/collections/BrowseCollectionView.js.map +0 -1
- package/lib/esm/features/store/collections/CollectionsTable.js +0 -64
- package/lib/esm/features/store/collections/CollectionsTable.js.map +0 -1
- package/lib/esm/features/store/collections/CreateCollection.js +0 -87
- package/lib/esm/features/store/collections/CreateCollection.js.map +0 -1
- package/lib/esm/features/store/collections/EditCollectionView.js +0 -162
- package/lib/esm/features/store/collections/EditCollectionView.js.map +0 -1
- package/lib/esm/features/store/collections/SelectCollection.js +0 -24
- package/lib/esm/features/store/collections/SelectCollection.js.map +0 -1
- package/lib/esm/features/store/collections/index.js +0 -6
- package/lib/esm/features/store/collections/index.js.map +0 -1
- package/lib/esm/features/store/index.js +0 -4
- package/lib/esm/features/store/index.js.map +0 -1
- package/lib/esm/features/store/objects/DocumentPreviewPanel.js +0 -147
- package/lib/esm/features/store/objects/DocumentPreviewPanel.js.map +0 -1
- package/lib/esm/features/store/objects/DocumentSearchResults.js +0 -159
- package/lib/esm/features/store/objects/DocumentSearchResults.js.map +0 -1
- package/lib/esm/features/store/objects/DocumentSelectionProvider.js +0 -81
- package/lib/esm/features/store/objects/DocumentSelectionProvider.js.map +0 -1
- package/lib/esm/features/store/objects/DocumentTable.js +0 -278
- package/lib/esm/features/store/objects/DocumentTable.js.map +0 -1
- package/lib/esm/features/store/objects/ExportPropertiesModal.js +0 -31
- package/lib/esm/features/store/objects/ExportPropertiesModal.js.map +0 -1
- package/lib/esm/features/store/objects/components/ContentDispositionButton.js +0 -31
- package/lib/esm/features/store/objects/components/ContentDispositionButton.js.map +0 -1
- package/lib/esm/features/store/objects/components/ContentOverview.js +0 -192
- package/lib/esm/features/store/objects/components/ContentOverview.js.map +0 -1
- package/lib/esm/features/store/objects/components/DocumentIcon.js +0 -25
- package/lib/esm/features/store/objects/components/DocumentIcon.js.map +0 -1
- package/lib/esm/features/store/objects/components/DocumentInput.js +0 -51
- package/lib/esm/features/store/objects/components/DocumentInput.js.map +0 -1
- package/lib/esm/features/store/objects/components/PropertiesEditorModal.js +0 -171
- package/lib/esm/features/store/objects/components/PropertiesEditorModal.js.map +0 -1
- package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js +0 -44
- package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js.map +0 -1
- package/lib/esm/features/store/objects/components/SelectDocument.js +0 -45
- package/lib/esm/features/store/objects/components/SelectDocument.js.map +0 -1
- package/lib/esm/features/store/objects/components/SelectDocumentModal.js +0 -7
- package/lib/esm/features/store/objects/components/SelectDocumentModal.js.map +0 -1
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js +0 -90
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js.map +0 -1
- package/lib/esm/features/store/objects/components/index.js +0 -10
- package/lib/esm/features/store/objects/components/index.js.map +0 -1
- package/lib/esm/features/store/objects/components/useDownloadObject.js +0 -21
- package/lib/esm/features/store/objects/components/useDownloadObject.js.map +0 -1
- package/lib/esm/features/store/objects/index.js +0 -11
- package/lib/esm/features/store/objects/index.js.map +0 -1
- package/lib/esm/features/store/objects/layout/DocumentTableColumn.js +0 -74
- package/lib/esm/features/store/objects/layout/DocumentTableColumn.js.map +0 -1
- package/lib/esm/features/store/objects/layout/documentLayout.js +0 -16
- package/lib/esm/features/store/objects/layout/documentLayout.js.map +0 -1
- package/lib/esm/features/store/objects/layout/index.js +0 -3
- package/lib/esm/features/store/objects/layout/index.js.map +0 -1
- package/lib/esm/features/store/objects/layout/renderers.js +0 -128
- package/lib/esm/features/store/objects/layout/renderers.js.map +0 -1
- package/lib/esm/features/store/objects/search/DocumentSearchContext.js +0 -168
- package/lib/esm/features/store/objects/search/DocumentSearchContext.js.map +0 -1
- package/lib/esm/features/store/objects/search/DocumentSearchProvider.js +0 -39
- package/lib/esm/features/store/objects/search/DocumentSearchProvider.js.map +0 -1
- package/lib/esm/features/store/objects/search/index.js +0 -3
- package/lib/esm/features/store/objects/search/index.js.map +0 -1
- package/lib/esm/features/store/objects/selection/ObjectsActionContext.js +0 -149
- package/lib/esm/features/store/objects/selection/ObjectsActionContext.js.map +0 -1
- package/lib/esm/features/store/objects/selection/ObjectsActionSpec.js +0 -2
- package/lib/esm/features/store/objects/selection/ObjectsActionSpec.js.map +0 -1
- package/lib/esm/features/store/objects/selection/SelectionActions.js +0 -75
- package/lib/esm/features/store/objects/selection/SelectionActions.js.map +0 -1
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +0 -73
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +0 -1
- package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js +0 -53
- package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js.map +0 -1
- package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js +0 -30
- package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js.map +0 -1
- package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js +0 -66
- package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js.map +0 -1
- package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js +0 -106
- package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js.map +0 -1
- package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js +0 -64
- package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js.map +0 -1
- package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js +0 -72
- package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js.map +0 -1
- package/lib/esm/features/store/objects/selection/actions/index.js +0 -8
- package/lib/esm/features/store/objects/selection/actions/index.js.map +0 -1
- package/lib/esm/features/store/objects/selection/index.js +0 -5
- package/lib/esm/features/store/objects/selection/index.js.map +0 -1
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +0 -511
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +0 -1
- package/lib/esm/features/store/objects/upload/index.js +0 -4
- package/lib/esm/features/store/objects/upload/index.js.map +0 -1
- package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js +0 -194
- package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js.map +0 -1
- package/lib/esm/features/store/objects/upload/useUploadHandler.js +0 -230
- package/lib/esm/features/store/objects/upload/useUploadHandler.js.map +0 -1
- package/lib/esm/features/store/types/ContentObjectTypesSearch.js +0 -81
- package/lib/esm/features/store/types/ContentObjectTypesSearch.js.map +0 -1
- package/lib/esm/features/store/types/ContentObjectTypesTable.js +0 -11
- package/lib/esm/features/store/types/ContentObjectTypesTable.js.map +0 -1
- package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js +0 -26
- package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js.map +0 -1
- package/lib/esm/features/store/types/ObjectSchemaEditor.js +0 -103
- package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +0 -1
- package/lib/esm/features/store/types/SelectContentType.js +0 -43
- package/lib/esm/features/store/types/SelectContentType.js.map +0 -1
- package/lib/esm/features/store/types/SelectContentTypeModal.js +0 -28
- package/lib/esm/features/store/types/SelectContentTypeModal.js.map +0 -1
- package/lib/esm/features/store/types/TableLayoutEditor.js +0 -78
- package/lib/esm/features/store/types/TableLayoutEditor.js.map +0 -1
- package/lib/esm/features/store/types/index.js +0 -9
- package/lib/esm/features/store/types/index.js.map +0 -1
- package/lib/esm/features/store/types/search/ObjectTypeSearchContext.js +0 -98
- package/lib/esm/features/store/types/search/ObjectTypeSearchContext.js.map +0 -1
- package/lib/esm/features/store/types/search/ObjectTypeSearchProvider.js +0 -15
- package/lib/esm/features/store/types/search/ObjectTypeSearchProvider.js.map +0 -1
- package/lib/esm/features/store/types/search/index.js +0 -3
- package/lib/esm/features/store/types/search/index.js.map +0 -1
- package/lib/esm/features/user/UserAvatar.js +0 -18
- package/lib/esm/features/user/UserAvatar.js.map +0 -1
- package/lib/esm/features/user/UserInfo.js +0 -87
- package/lib/esm/features/user/UserInfo.js.map +0 -1
- package/lib/esm/features/user/index.js +0 -3
- package/lib/esm/features/user/index.js.map +0 -1
- package/lib/esm/features/utils/index.js +0 -4
- package/lib/esm/features/utils/index.js.map +0 -1
- package/lib/esm/features/utils/mimeType.js +0 -9
- package/lib/esm/features/utils/mimeType.js.map +0 -1
- package/lib/esm/features/utils/rendition.js +0 -67
- package/lib/esm/features/utils/rendition.js.map +0 -1
- package/lib/esm/features/utils/text.js +0 -10
- package/lib/esm/features/utils/text.js.map +0 -1
- package/lib/esm/layout/AppLayout.js +0 -46
- package/lib/esm/layout/AppLayout.js.map +0 -1
- package/lib/esm/layout/FullHeightLayout.js +0 -18
- package/lib/esm/layout/FullHeightLayout.js.map +0 -1
- package/lib/esm/layout/Navbar.js +0 -40
- package/lib/esm/layout/Navbar.js.map +0 -1
- package/lib/esm/layout/Sidebar.js +0 -45
- package/lib/esm/layout/Sidebar.js.map +0 -1
- package/lib/esm/layout/SidebarContext.js +0 -10
- package/lib/esm/layout/SidebarContext.js.map +0 -1
- package/lib/esm/layout/TitleBar.js +0 -5
- package/lib/esm/layout/TitleBar.js.map +0 -1
- package/lib/esm/layout/index.js +0 -7
- package/lib/esm/layout/index.js.map +0 -1
- package/lib/esm/router/FixLinks.js +0 -23
- package/lib/esm/router/FixLinks.js.map +0 -1
- package/lib/esm/router/HistoryNavigator.js +0 -149
- package/lib/esm/router/HistoryNavigator.js.map +0 -1
- package/lib/esm/router/Nav.js +0 -26
- package/lib/esm/router/Nav.js.map +0 -1
- package/lib/esm/router/NestedNavigationContext.js +0 -19
- package/lib/esm/router/NestedNavigationContext.js.map +0 -1
- package/lib/esm/router/NestedRouterProvider.js +0 -44
- package/lib/esm/router/NestedRouterProvider.js.map +0 -1
- package/lib/esm/router/PathMatcher.js +0 -159
- package/lib/esm/router/PathMatcher.js.map +0 -1
- package/lib/esm/router/PathWithParams.js +0 -34
- package/lib/esm/router/PathWithParams.js.map +0 -1
- package/lib/esm/router/Route404.js +0 -18
- package/lib/esm/router/Route404.js.map +0 -1
- package/lib/esm/router/RouteComponent.js +0 -32
- package/lib/esm/router/RouteComponent.js.map +0 -1
- package/lib/esm/router/Router.js +0 -161
- package/lib/esm/router/Router.js.map +0 -1
- package/lib/esm/router/RouterProvider.js +0 -41
- package/lib/esm/router/RouterProvider.js.map +0 -1
- package/lib/esm/router/index.js +0 -11
- package/lib/esm/router/index.js.map +0 -1
- package/lib/esm/router/path.js +0 -140
- package/lib/esm/router/path.js.map +0 -1
- package/lib/esm/session/TypeRegistry.js +0 -24
- package/lib/esm/session/TypeRegistry.js.map +0 -1
- package/lib/esm/session/UserSession.js +0 -191
- package/lib/esm/session/UserSession.js.map +0 -1
- package/lib/esm/session/UserSessionProvider.js +0 -164
- package/lib/esm/session/UserSessionProvider.js.map +0 -1
- package/lib/esm/session/auth/composable.js +0 -162
- package/lib/esm/session/auth/composable.js.map +0 -1
- package/lib/esm/session/auth/firebase.js +0 -158
- package/lib/esm/session/auth/firebase.js.map +0 -1
- package/lib/esm/session/auth/useAuthState.js +0 -46
- package/lib/esm/session/auth/useAuthState.js.map +0 -1
- package/lib/esm/session/auth/useCurrentTenant.js +0 -63
- package/lib/esm/session/auth/useCurrentTenant.js.map +0 -1
- package/lib/esm/session/constants.js +0 -3
- package/lib/esm/session/constants.js.map +0 -1
- package/lib/esm/session/index.js +0 -8
- package/lib/esm/session/index.js.map +0 -1
- package/lib/esm/session/useUXTracking.js +0 -29
- package/lib/esm/session/useUXTracking.js.map +0 -1
- package/lib/esm/shell/SplashScreen.js +0 -26
- package/lib/esm/shell/SplashScreen.js.map +0 -1
- package/lib/esm/shell/VertesiaShell.js +0 -10
- package/lib/esm/shell/VertesiaShell.js.map +0 -1
- package/lib/esm/shell/apps/AppInstallationProvider.js +0 -13
- package/lib/esm/shell/apps/AppInstallationProvider.js.map +0 -1
- package/lib/esm/shell/apps/AppProjectSelector.js +0 -25
- package/lib/esm/shell/apps/AppProjectSelector.js.map +0 -1
- package/lib/esm/shell/apps/StandaloneApp.js +0 -60
- package/lib/esm/shell/apps/StandaloneApp.js.map +0 -1
- package/lib/esm/shell/apps/index.js +0 -4
- package/lib/esm/shell/apps/index.js.map +0 -1
- package/lib/esm/shell/index.js +0 -8
- package/lib/esm/shell/index.js.map +0 -1
- package/lib/esm/shell/login/EnterpriseSigninButton.js +0 -84
- package/lib/esm/shell/login/EnterpriseSigninButton.js.map +0 -1
- package/lib/esm/shell/login/GitHubSignInButton.js +0 -24
- package/lib/esm/shell/login/GitHubSignInButton.js.map +0 -1
- package/lib/esm/shell/login/GoogleSignInButton.js +0 -25
- package/lib/esm/shell/login/GoogleSignInButton.js.map +0 -1
- package/lib/esm/shell/login/InviteAcceptModal.js +0 -62
- package/lib/esm/shell/login/InviteAcceptModal.js.map +0 -1
- package/lib/esm/shell/login/MicrosoftSigninButton.js +0 -19
- package/lib/esm/shell/login/MicrosoftSigninButton.js.map +0 -1
- package/lib/esm/shell/login/PreviewIcon.js +0 -23
- package/lib/esm/shell/login/PreviewIcon.js.map +0 -1
- package/lib/esm/shell/login/SignInModal.js +0 -9
- package/lib/esm/shell/login/SignInModal.js.map +0 -1
- package/lib/esm/shell/login/SigninScreen.js +0 -64
- package/lib/esm/shell/login/SigninScreen.js.map +0 -1
- package/lib/esm/shell/login/SignupForm.js +0 -91
- package/lib/esm/shell/login/SignupForm.js.map +0 -1
- package/lib/esm/shell/login/TerminalLogin.js +0 -179
- package/lib/esm/shell/login/TerminalLogin.js.map +0 -1
- package/lib/esm/shell/login/UserInfo.js +0 -40
- package/lib/esm/shell/login/UserInfo.js.map +0 -1
- package/lib/esm/shell/login/UserSessionMenu.js +0 -31
- package/lib/esm/shell/login/UserSessionMenu.js.map +0 -1
- package/lib/esm/shell/utils.js +0 -6
- package/lib/esm/shell/utils.js.map +0 -1
- package/lib/esm/widgets/Progress.js +0 -5
- package/lib/esm/widgets/Progress.js.map +0 -1
- package/lib/esm/widgets/SvgIcon.js +0 -36
- package/lib/esm/widgets/SvgIcon.js.map +0 -1
- package/lib/esm/widgets/codemirror/CodeMirrorEditor.js +0 -103
- package/lib/esm/widgets/codemirror/CodeMirrorEditor.js.map +0 -1
- package/lib/esm/widgets/codemirror/CodemirrorStateSingleton.js +0 -33
- package/lib/esm/widgets/codemirror/CodemirrorStateSingleton.js.map +0 -1
- package/lib/esm/widgets/codemirror/index.js +0 -2
- package/lib/esm/widgets/codemirror/index.js.map +0 -1
- package/lib/esm/widgets/form/Form.js +0 -102
- package/lib/esm/widgets/form/Form.js.map +0 -1
- package/lib/esm/widgets/form/FormContext.js +0 -29
- package/lib/esm/widgets/form/FormContext.js.map +0 -1
- package/lib/esm/widgets/form/ManagedObject.js +0 -283
- package/lib/esm/widgets/form/ManagedObject.js.map +0 -1
- package/lib/esm/widgets/form/fields.js +0 -11
- package/lib/esm/widgets/form/fields.js.map +0 -1
- package/lib/esm/widgets/form/index.js +0 -7
- package/lib/esm/widgets/form/index.js.map +0 -1
- package/lib/esm/widgets/form/inputs.js +0 -36
- package/lib/esm/widgets/form/inputs.js.map +0 -1
- package/lib/esm/widgets/form/schema.js +0 -197
- package/lib/esm/widgets/form/schema.js.map +0 -1
- package/lib/esm/widgets/index.js +0 -12
- package/lib/esm/widgets/index.js.map +0 -1
- package/lib/esm/widgets/json-view/JSONCode.js +0 -157
- package/lib/esm/widgets/json-view/JSONCode.js.map +0 -1
- package/lib/esm/widgets/json-view/JSONDisplay.js +0 -10
- package/lib/esm/widgets/json-view/JSONDisplay.js.map +0 -1
- package/lib/esm/widgets/json-view/JSONView.js +0 -106
- package/lib/esm/widgets/json-view/JSONView.js.map +0 -1
- package/lib/esm/widgets/json-view/index.js +0 -4
- package/lib/esm/widgets/json-view/index.js.map +0 -1
- package/lib/esm/widgets/json-view/types.js +0 -2
- package/lib/esm/widgets/json-view/types.js.map +0 -1
- package/lib/esm/widgets/markdown/MarkdownRenderer.js +0 -24
- package/lib/esm/widgets/markdown/MarkdownRenderer.js.map +0 -1
- package/lib/esm/widgets/markdown/index.js +0 -2
- package/lib/esm/widgets/markdown/index.js.map +0 -1
- package/lib/esm/widgets/popover/Popover.js +0 -73
- package/lib/esm/widgets/popover/Popover.js.map +0 -1
- package/lib/esm/widgets/popover/context.js +0 -7
- package/lib/esm/widgets/popover/context.js.map +0 -1
- package/lib/esm/widgets/popover/index.js +0 -3
- package/lib/esm/widgets/popover/index.js.map +0 -1
- package/lib/esm/widgets/popover/slots.js +0 -22
- package/lib/esm/widgets/popover/slots.js.map +0 -1
- package/lib/esm/widgets/properties/PropertiesView.js +0 -8
- package/lib/esm/widgets/properties/PropertiesView.js.map +0 -1
- package/lib/esm/widgets/properties/index.js +0 -2
- package/lib/esm/widgets/properties/index.js.map +0 -1
- package/lib/esm/widgets/schema-editor/JSONSchemaEditorModal.js +0 -49
- package/lib/esm/widgets/schema-editor/JSONSchemaEditorModal.js.map +0 -1
- package/lib/esm/widgets/schema-editor/ManagedSchema.js +0 -303
- package/lib/esm/widgets/schema-editor/ManagedSchema.js.map +0 -1
- package/lib/esm/widgets/schema-editor/editor/Editable.js +0 -110
- package/lib/esm/widgets/schema-editor/editor/Editable.js.map +0 -1
- package/lib/esm/widgets/schema-editor/editor/EditableSchemaProperty.js +0 -8
- package/lib/esm/widgets/schema-editor/editor/EditableSchemaProperty.js.map +0 -1
- package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js +0 -81
- package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js.map +0 -1
- package/lib/esm/widgets/schema-editor/editor/PropertyViewer.js +0 -7
- package/lib/esm/widgets/schema-editor/editor/PropertyViewer.js.map +0 -1
- package/lib/esm/widgets/schema-editor/editor/SchemaContext.js +0 -9
- package/lib/esm/widgets/schema-editor/editor/SchemaContext.js.map +0 -1
- package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js +0 -84
- package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js.map +0 -1
- package/lib/esm/widgets/schema-editor/index.js +0 -8
- package/lib/esm/widgets/schema-editor/index.js.map +0 -1
- package/lib/esm/widgets/schema-editor/json-schema4-utils.js +0 -188
- package/lib/esm/widgets/schema-editor/json-schema4-utils.js.map +0 -1
- package/lib/esm/widgets/schema-editor/type-signature.js +0 -30
- package/lib/esm/widgets/schema-editor/type-signature.js.map +0 -1
- package/lib/esm/widgets/upload/DropZone.js +0 -162
- package/lib/esm/widgets/upload/DropZone.js.map +0 -1
- package/lib/esm/widgets/upload/UploadResultCategory.js +0 -19
- package/lib/esm/widgets/upload/UploadResultCategory.js.map +0 -1
- package/lib/esm/widgets/upload/UploadSummary.js +0 -30
- package/lib/esm/widgets/upload/UploadSummary.js.map +0 -1
- package/lib/esm/widgets/upload/index.js +0 -4
- package/lib/esm/widgets/upload/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/components/Attributes/index.js +0 -11
- package/lib/esm/widgets/xml-viewer/components/Attributes/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/components/CDataTag/index.js +0 -8
- package/lib/esm/widgets/xml-viewer/components/CDataTag/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/components/CollapseIcon/index.js +0 -11
- package/lib/esm/widgets/xml-viewer/components/CollapseIcon/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/components/CommentTag/index.js +0 -11
- package/lib/esm/widgets/xml-viewer/components/CommentTag/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/components/DeclarationTag/index.js +0 -9
- package/lib/esm/widgets/xml-viewer/components/DeclarationTag/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/components/Elements/index.js +0 -36
- package/lib/esm/widgets/xml-viewer/components/Elements/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/components/InvalidXml/index.js +0 -5
- package/lib/esm/widgets/xml-viewer/components/InvalidXml/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/components/Tag/index.js +0 -13
- package/lib/esm/widgets/xml-viewer/components/Tag/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/components/TextElement/index.js +0 -13
- package/lib/esm/widgets/xml-viewer/components/TextElement/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/components/XMLViewer.js +0 -30
- package/lib/esm/widgets/xml-viewer/components/XMLViewer.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/components/types.js +0 -2
- package/lib/esm/widgets/xml-viewer/components/types.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/constants/index.js +0 -17
- package/lib/esm/widgets/xml-viewer/constants/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/context/xml-viewer-context.js +0 -10
- package/lib/esm/widgets/xml-viewer/context/xml-viewer-context.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/helpers/index.js +0 -40
- package/lib/esm/widgets/xml-viewer/helpers/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/hooks/useCollapsible.js +0 -22
- package/lib/esm/widgets/xml-viewer/hooks/useCollapsible.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/hooks/useXMLViewer.js +0 -31
- package/lib/esm/widgets/xml-viewer/hooks/useXMLViewer.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/index.js +0 -3
- package/lib/esm/widgets/xml-viewer/index.js.map +0 -1
- package/lib/esm/widgets/xml-viewer/types/index.js +0 -2
- package/lib/esm/widgets/xml-viewer/types/index.js.map +0 -1
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/lib/types/core/components/Avatar.d.ts +0 -16
- package/lib/types/core/components/Avatar.d.ts.map +0 -1
- package/lib/types/core/components/Badge.d.ts +0 -21
- package/lib/types/core/components/Badge.d.ts.map +0 -1
- package/lib/types/core/components/Button.d.ts +0 -14
- package/lib/types/core/components/Button.d.ts.map +0 -1
- package/lib/types/core/components/Center.d.ts +0 -8
- package/lib/types/core/components/Center.d.ts.map +0 -1
- package/lib/types/core/components/ComboBox.d.ts +0 -124
- package/lib/types/core/components/ComboBox.d.ts.map +0 -1
- package/lib/types/core/components/ConfirmModal.d.ts +0 -11
- package/lib/types/core/components/ConfirmModal.d.ts.map +0 -1
- package/lib/types/core/components/DeleteModal.d.ts +0 -11
- package/lib/types/core/components/DeleteModal.d.ts.map +0 -1
- package/lib/types/core/components/Divider.d.ts +0 -6
- package/lib/types/core/components/Divider.d.ts.map +0 -1
- package/lib/types/core/components/Dropdown.d.ts +0 -15
- package/lib/types/core/components/Dropdown.d.ts.map +0 -1
- package/lib/types/core/components/DropdownList.d.ts +0 -13
- package/lib/types/core/components/DropdownList.d.ts.map +0 -1
- package/lib/types/core/components/EmptyCollection.d.ts +0 -9
- package/lib/types/core/components/EmptyCollection.d.ts.map +0 -1
- package/lib/types/core/components/FileUpload.d.ts +0 -29
- package/lib/types/core/components/FileUpload.d.ts.map +0 -1
- package/lib/types/core/components/FormItem.d.ts +0 -13
- package/lib/types/core/components/FormItem.d.ts.map +0 -1
- package/lib/types/core/components/InputList.d.ts +0 -12
- package/lib/types/core/components/InputList.d.ts.map +0 -1
- package/lib/types/core/components/Link.d.ts +0 -7
- package/lib/types/core/components/Link.d.ts.map +0 -1
- package/lib/types/core/components/MenuList.d.ts +0 -14
- package/lib/types/core/components/MenuList.d.ts.map +0 -1
- package/lib/types/core/components/MessageBox.d.ts +0 -36
- package/lib/types/core/components/MessageBox.d.ts.map +0 -1
- package/lib/types/core/components/Modal.d.ts +0 -30
- package/lib/types/core/components/Modal.d.ts.map +0 -1
- package/lib/types/core/components/NumberInput.d.ts +0 -16
- package/lib/types/core/components/NumberInput.d.ts.map +0 -1
- package/lib/types/core/components/Overlay.d.ts +0 -25
- package/lib/types/core/components/Overlay.d.ts.map +0 -1
- package/lib/types/core/components/Portal.d.ts +0 -6
- package/lib/types/core/components/Portal.d.ts.map +0 -1
- package/lib/types/core/components/RadioGroup.d.ts +0 -26
- package/lib/types/core/components/RadioGroup.d.ts.map +0 -1
- package/lib/types/core/components/SelectBox.d.ts +0 -36
- package/lib/types/core/components/SelectBox.d.ts.map +0 -1
- package/lib/types/core/components/SelectList.d.ts +0 -18
- package/lib/types/core/components/SelectList.d.ts.map +0 -1
- package/lib/types/core/components/SelectStack.d.ts +0 -13
- package/lib/types/core/components/SelectStack.d.ts.map +0 -1
- package/lib/types/core/components/SidePanel.d.ts +0 -11
- package/lib/types/core/components/SidePanel.d.ts.map +0 -1
- package/lib/types/core/components/Spinner.d.ts +0 -7
- package/lib/types/core/components/Spinner.d.ts.map +0 -1
- package/lib/types/core/components/Switch.d.ts +0 -11
- package/lib/types/core/components/Switch.d.ts.map +0 -1
- package/lib/types/core/components/Textarea.d.ts +0 -8
- package/lib/types/core/components/Textarea.d.ts.map +0 -1
- package/lib/types/core/components/index.d.ts +0 -39
- package/lib/types/core/components/index.d.ts.map +0 -1
- package/lib/types/core/components/libs/utils.d.ts +0 -3
- package/lib/types/core/components/libs/utils.d.ts.map +0 -1
- package/lib/types/core/components/libs/visuallyHidden.d.ts +0 -7
- package/lib/types/core/components/libs/visuallyHidden.d.ts.map +0 -1
- package/lib/types/core/components/popup/Popup.d.ts +0 -26
- package/lib/types/core/components/popup/Popup.d.ts.map +0 -1
- package/lib/types/core/components/popup/PopupController.d.ts +0 -41
- package/lib/types/core/components/popup/PopupController.d.ts.map +0 -1
- package/lib/types/core/components/popup/index.d.ts +0 -4
- package/lib/types/core/components/popup/index.d.ts.map +0 -1
- package/lib/types/core/components/popup/position.d.ts +0 -59
- package/lib/types/core/components/popup/position.d.ts.map +0 -1
- package/lib/types/core/components/popup/utils.d.ts +0 -30
- package/lib/types/core/components/popup/utils.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/breadcrumb.d.ts +0 -14
- package/lib/types/core/components/shadcn/breadcrumb.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/button.d.ts +0 -27
- package/lib/types/core/components/shadcn/button.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/calendar.d.ts +0 -11
- package/lib/types/core/components/shadcn/calendar.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/card.d.ts +0 -9
- package/lib/types/core/components/shadcn/card.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/checkbox.d.ts +0 -5
- package/lib/types/core/components/shadcn/checkbox.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/command.d.ts +0 -17
- package/lib/types/core/components/shadcn/command.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/dialog.d.ts +0 -36
- package/lib/types/core/components/shadcn/dialog.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/DynamicLabel.d.ts +0 -9
- package/lib/types/core/components/shadcn/filters/DynamicLabel.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/animateChangeInHeight.d.ts +0 -7
- package/lib/types/core/components/shadcn/filters/animateChangeInHeight.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts +0 -6
- package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts +0 -9
- package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/comboBox/StringListCombobox.d.ts +0 -6
- package/lib/types/core/components/shadcn/filters/comboBox/StringListCombobox.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/comboBox/TextCombobox.d.ts +0 -6
- package/lib/types/core/components/shadcn/filters/comboBox/TextCombobox.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/comboBox/comboBox.d.ts +0 -5
- package/lib/types/core/components/shadcn/filters/comboBox/comboBox.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/filter/SelectFilter.d.ts +0 -12
- package/lib/types/core/components/shadcn/filters/filter/SelectFilter.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/filter/StringListFilter.d.ts +0 -11
- package/lib/types/core/components/shadcn/filters/filter/StringListFilter.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/filter/TextFilter.d.ts +0 -13
- package/lib/types/core/components/shadcn/filters/filter/TextFilter.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/filter/dateFilter.d.ts +0 -14
- package/lib/types/core/components/shadcn/filters/filter/dateFilter.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/filter-styles.d.ts +0 -2
- package/lib/types/core/components/shadcn/filters/filter-styles.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts +0 -20
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/filters.d.ts +0 -10
- package/lib/types/core/components/shadcn/filters/filters.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/index.d.ts +0 -6
- package/lib/types/core/components/shadcn/filters/index.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/filters/types.d.ts +0 -35
- package/lib/types/core/components/shadcn/filters/types.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/heading.d.ts +0 -6
- package/lib/types/core/components/shadcn/heading.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/index.d.ts +0 -22
- package/lib/types/core/components/shadcn/index.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/input.d.ts +0 -17
- package/lib/types/core/components/shadcn/input.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/label.d.ts +0 -8
- package/lib/types/core/components/shadcn/label.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/popover.d.ts +0 -17
- package/lib/types/core/components/shadcn/popover.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/selectBox.d.ts +0 -31
- package/lib/types/core/components/shadcn/selectBox.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/separator.d.ts +0 -5
- package/lib/types/core/components/shadcn/separator.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/tabs.d.ts +0 -30
- package/lib/types/core/components/shadcn/tabs.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/text.d.ts +0 -11
- package/lib/types/core/components/shadcn/text.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/theme/ThemeProvider.d.ts +0 -15
- package/lib/types/core/components/shadcn/theme/ThemeProvider.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts +0 -10
- package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts.map +0 -1
- package/lib/types/core/components/shadcn/tooltip.d.ts +0 -20
- package/lib/types/core/components/shadcn/tooltip.d.ts.map +0 -1
- package/lib/types/core/components/styles.d.ts +0 -7
- package/lib/types/core/components/styles.d.ts.map +0 -1
- package/lib/types/core/components/table/index.d.ts +0 -15
- package/lib/types/core/components/table/index.d.ts.map +0 -1
- package/lib/types/core/components/tabs/Tabs.d.ts +0 -25
- package/lib/types/core/components/tabs/Tabs.d.ts.map +0 -1
- package/lib/types/core/components/tabs/TabsContext.d.ts +0 -17
- package/lib/types/core/components/tabs/TabsContext.d.ts.map +0 -1
- package/lib/types/core/components/tabs/index.d.ts +0 -3
- package/lib/types/core/components/tabs/index.d.ts.map +0 -1
- package/lib/types/core/components/toast/NotificationPanel.d.ts +0 -8
- package/lib/types/core/components/toast/NotificationPanel.d.ts.map +0 -1
- package/lib/types/core/components/toast/ToastContext.d.ts +0 -6
- package/lib/types/core/components/toast/ToastContext.d.ts.map +0 -1
- package/lib/types/core/components/toast/ToastProps.d.ts +0 -7
- package/lib/types/core/components/toast/ToastProps.d.ts.map +0 -1
- package/lib/types/core/components/toast/ToastProvider.d.ts +0 -6
- package/lib/types/core/components/toast/ToastProvider.d.ts.map +0 -1
- package/lib/types/core/components/toast/index.d.ts +0 -3
- package/lib/types/core/components/toast/index.d.ts.map +0 -1
- package/lib/types/core/hooks/CompositeState.d.ts +0 -28
- package/lib/types/core/hooks/CompositeState.d.ts.map +0 -1
- package/lib/types/core/hooks/SharedState.d.ts +0 -10
- package/lib/types/core/hooks/SharedState.d.ts.map +0 -1
- package/lib/types/core/hooks/index.d.ts +0 -14
- package/lib/types/core/hooks/index.d.ts.map +0 -1
- package/lib/types/core/hooks/useClickOutside.d.ts +0 -8
- package/lib/types/core/hooks/useClickOutside.d.ts.map +0 -1
- package/lib/types/core/hooks/useCopyToClipboard.d.ts +0 -5
- package/lib/types/core/hooks/useCopyToClipboard.d.ts.map +0 -1
- package/lib/types/core/hooks/useDarkMode.d.ts +0 -2
- package/lib/types/core/hooks/useDarkMode.d.ts.map +0 -1
- package/lib/types/core/hooks/useDebounce.d.ts +0 -2
- package/lib/types/core/hooks/useDebounce.d.ts.map +0 -1
- package/lib/types/core/hooks/useEventSource.d.ts +0 -2
- package/lib/types/core/hooks/useEventSource.d.ts.map +0 -1
- package/lib/types/core/hooks/useFetch.d.ts +0 -24
- package/lib/types/core/hooks/useFetch.d.ts.map +0 -1
- package/lib/types/core/hooks/useFlag.d.ts +0 -9
- package/lib/types/core/hooks/useFlag.d.ts.map +0 -1
- package/lib/types/core/hooks/useIntersectionObserver.d.ts +0 -14
- package/lib/types/core/hooks/useIntersectionObserver.d.ts.map +0 -1
- package/lib/types/core/hooks/useIsFistRendering.d.ts +0 -2
- package/lib/types/core/hooks/useIsFistRendering.d.ts.map +0 -1
- package/lib/types/core/hooks/useSafeLayoutEffect.d.ts +0 -4
- package/lib/types/core/hooks/useSafeLayoutEffect.d.ts.map +0 -1
- package/lib/types/core/hooks/useSharedValue.d.ts +0 -12
- package/lib/types/core/hooks/useSharedValue.d.ts.map +0 -1
- package/lib/types/core/index.d.ts +0 -4
- package/lib/types/core/index.d.ts.map +0 -1
- package/lib/types/core/utils/cn.d.ts +0 -3
- package/lib/types/core/utils/cn.d.ts.map +0 -1
- package/lib/types/core/utils/index.d.ts +0 -2
- package/lib/types/core/utils/index.d.ts.map +0 -1
- package/lib/types/env/index.d.ts +0 -72
- package/lib/types/env/index.d.ts.map +0 -1
- package/lib/types/features/activity-doc/ActivityDoc.d.ts +0 -14
- package/lib/types/features/activity-doc/ActivityDoc.d.ts.map +0 -1
- package/lib/types/features/activity-doc/index.d.ts +0 -2
- package/lib/types/features/activity-doc/index.d.ts.map +0 -1
- package/lib/types/features/agent/PayloadBuilder.d.ts +0 -73
- package/lib/types/features/agent/PayloadBuilder.d.ts.map +0 -1
- package/lib/types/features/agent/chat/AnimatedThinkingDots.d.ts +0 -38
- package/lib/types/features/agent/chat/AnimatedThinkingDots.d.ts.map +0 -1
- package/lib/types/features/agent/chat/JumpingDots.d.ts +0 -7
- package/lib/types/features/agent/chat/JumpingDots.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts +0 -25
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +0 -22
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts +0 -19
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.d.ts +0 -11
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts +0 -16
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts +0 -13
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts +0 -8
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/MessagesContainer.d.ts +0 -10
- package/lib/types/features/agent/chat/ModernAgentOutput/MessagesContainer.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts +0 -9
- package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/SlideInPanel.d.ts +0 -11
- package/lib/types/features/agent/chat/ModernAgentOutput/SlideInPanel.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingMessages.d.ts +0 -8
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingMessages.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts +0 -10
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/StackedMessages.d.ts +0 -8
- package/lib/types/features/agent/chat/ModernAgentOutput/StackedMessages.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts +0 -22
- package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts.map +0 -1
- package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts +0 -25
- package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts.map +0 -1
- package/lib/types/features/agent/chat/SlidingThinkingIndicator.d.ts +0 -18
- package/lib/types/features/agent/chat/SlidingThinkingIndicator.d.ts.map +0 -1
- package/lib/types/features/agent/chat/WaitingMessages.d.ts +0 -2
- package/lib/types/features/agent/chat/WaitingMessages.d.ts.map +0 -1
- package/lib/types/features/agent/chat/index.d.ts +0 -5
- package/lib/types/features/agent/chat/index.d.ts.map +0 -1
- package/lib/types/features/agent/index.d.ts +0 -3
- package/lib/types/features/agent/index.d.ts.map +0 -1
- package/lib/types/features/errors/PanelErrorBoundary.d.ts +0 -5
- package/lib/types/features/errors/PanelErrorBoundary.d.ts.map +0 -1
- package/lib/types/features/errors/RowErrorBoundary.d.ts +0 -8
- package/lib/types/features/errors/RowErrorBoundary.d.ts.map +0 -1
- package/lib/types/features/errors/VertesiaErrorBoundary.d.ts +0 -12
- package/lib/types/features/errors/VertesiaErrorBoundary.d.ts.map +0 -1
- package/lib/types/features/errors/WidgetErrorBoundary.d.ts +0 -5
- package/lib/types/features/errors/WidgetErrorBoundary.d.ts.map +0 -1
- package/lib/types/features/errors/index.d.ts +0 -5
- package/lib/types/features/errors/index.d.ts.map +0 -1
- package/lib/types/features/facets/DocumentsFacetsNav.d.ts +0 -17
- package/lib/types/features/facets/DocumentsFacetsNav.d.ts.map +0 -1
- package/lib/types/features/facets/EnvironmentFacet.d.ts +0 -10
- package/lib/types/features/facets/EnvironmentFacet.d.ts.map +0 -1
- package/lib/types/features/facets/FacetsNav.d.ts +0 -7
- package/lib/types/features/facets/FacetsNav.d.ts.map +0 -1
- package/lib/types/features/facets/RunsFacetsNav.d.ts +0 -20
- package/lib/types/features/facets/RunsFacetsNav.d.ts.map +0 -1
- package/lib/types/features/facets/StringFacet.d.ts +0 -11
- package/lib/types/features/facets/StringFacet.d.ts.map +0 -1
- package/lib/types/features/facets/StringListFacet.d.ts +0 -11
- package/lib/types/features/facets/StringListFacet.d.ts.map +0 -1
- package/lib/types/features/facets/TypeFacet.d.ts +0 -16
- package/lib/types/features/facets/TypeFacet.d.ts.map +0 -1
- package/lib/types/features/facets/VEnvironmentFacet.d.ts +0 -12
- package/lib/types/features/facets/VEnvironmentFacet.d.ts.map +0 -1
- package/lib/types/features/facets/VFacetsNav.d.ts.map +0 -1
- package/lib/types/features/facets/VInteractionFacet.d.ts +0 -15
- package/lib/types/features/facets/VInteractionFacet.d.ts.map +0 -1
- package/lib/types/features/facets/VStringFacet.d.ts +0 -21
- package/lib/types/features/facets/VStringFacet.d.ts.map +0 -1
- package/lib/types/features/facets/VTypeFacet.d.ts +0 -11
- package/lib/types/features/facets/VTypeFacet.d.ts.map +0 -1
- package/lib/types/features/facets/VUserFacet.d.ts +0 -11
- package/lib/types/features/facets/VUserFacet.d.ts.map +0 -1
- package/lib/types/features/facets/WorkflowExecutionsFacetsNav.d.ts +0 -14
- package/lib/types/features/facets/WorkflowExecutionsFacetsNav.d.ts.map +0 -1
- package/lib/types/features/facets/index.d.ts +0 -13
- package/lib/types/features/facets/index.d.ts.map +0 -1
- package/lib/types/features/facets/utils.d.ts +0 -4
- package/lib/types/features/facets/utils.d.ts.map +0 -1
- package/lib/types/features/index.d.ts +0 -11
- package/lib/types/features/index.d.ts.map +0 -1
- package/lib/types/features/layout/GenericPageNavHeader.d.ts +0 -13
- package/lib/types/features/layout/GenericPageNavHeader.d.ts.map +0 -1
- package/lib/types/features/layout/NotFoundView.d.ts +0 -5
- package/lib/types/features/layout/NotFoundView.d.ts.map +0 -1
- package/lib/types/features/layout/index.d.ts +0 -3
- package/lib/types/features/layout/index.d.ts.map +0 -1
- package/lib/types/features/magic-pdf/DownloadPopover.d.ts +0 -7
- package/lib/types/features/magic-pdf/DownloadPopover.d.ts.map +0 -1
- package/lib/types/features/magic-pdf/MagicPdfView.d.ts +0 -7
- package/lib/types/features/magic-pdf/MagicPdfView.d.ts.map +0 -1
- package/lib/types/features/magic-pdf/PageSlider.d.ts +0 -9
- package/lib/types/features/magic-pdf/PageSlider.d.ts.map +0 -1
- package/lib/types/features/magic-pdf/PdfPageProvider.d.ts +0 -39
- package/lib/types/features/magic-pdf/PdfPageProvider.d.ts.map +0 -1
- package/lib/types/features/magic-pdf/TextPageView.d.ts +0 -8
- package/lib/types/features/magic-pdf/TextPageView.d.ts.map +0 -1
- package/lib/types/features/magic-pdf/index.d.ts +0 -2
- package/lib/types/features/magic-pdf/index.d.ts.map +0 -1
- package/lib/types/features/magic-pdf/types.d.ts +0 -2
- package/lib/types/features/magic-pdf/types.d.ts.map +0 -1
- package/lib/types/features/magic-pdf/useResizeOnDrag.d.ts +0 -9
- package/lib/types/features/magic-pdf/useResizeOnDrag.d.ts.map +0 -1
- package/lib/types/features/permissions/SecureButton.d.ts +0 -8
- package/lib/types/features/permissions/SecureButton.d.ts.map +0 -1
- package/lib/types/features/permissions/SecureSidebarItem.d.ts +0 -8
- package/lib/types/features/permissions/SecureSidebarItem.d.ts.map +0 -1
- package/lib/types/features/permissions/UserPermissionsProvider.d.ts +0 -21
- package/lib/types/features/permissions/UserPermissionsProvider.d.ts.map +0 -1
- package/lib/types/features/permissions/helpers.d.ts +0 -5
- package/lib/types/features/permissions/helpers.d.ts.map +0 -1
- package/lib/types/features/permissions/index.d.ts +0 -5
- package/lib/types/features/permissions/index.d.ts.map +0 -1
- package/lib/types/features/store/collections/BrowseCollectionView.d.ts +0 -7
- package/lib/types/features/store/collections/BrowseCollectionView.d.ts.map +0 -1
- package/lib/types/features/store/collections/CollectionsTable.d.ts +0 -6
- package/lib/types/features/store/collections/CollectionsTable.d.ts.map +0 -1
- package/lib/types/features/store/collections/CreateCollection.d.ts +0 -13
- package/lib/types/features/store/collections/CreateCollection.d.ts.map +0 -1
- package/lib/types/features/store/collections/EditCollectionView.d.ts +0 -8
- package/lib/types/features/store/collections/EditCollectionView.d.ts.map +0 -1
- package/lib/types/features/store/collections/SelectCollection.d.ts +0 -15
- package/lib/types/features/store/collections/SelectCollection.d.ts.map +0 -1
- package/lib/types/features/store/collections/index.d.ts +0 -6
- package/lib/types/features/store/collections/index.d.ts.map +0 -1
- package/lib/types/features/store/index.d.ts +0 -4
- package/lib/types/features/store/index.d.ts.map +0 -1
- package/lib/types/features/store/objects/DocumentPreviewPanel.d.ts +0 -8
- package/lib/types/features/store/objects/DocumentPreviewPanel.d.ts.map +0 -1
- package/lib/types/features/store/objects/DocumentSearchResults.d.ts +0 -20
- package/lib/types/features/store/objects/DocumentSearchResults.d.ts.map +0 -1
- package/lib/types/features/store/objects/DocumentSelectionProvider.d.ts +0 -33
- package/lib/types/features/store/objects/DocumentSelectionProvider.d.ts.map +0 -1
- package/lib/types/features/store/objects/DocumentTable.d.ts +0 -21
- package/lib/types/features/store/objects/DocumentTable.d.ts.map +0 -1
- package/lib/types/features/store/objects/ExportPropertiesModal.d.ts +0 -12
- package/lib/types/features/store/objects/ExportPropertiesModal.d.ts.map +0 -1
- package/lib/types/features/store/objects/components/ContentDispositionButton.d.ts +0 -9
- package/lib/types/features/store/objects/components/ContentDispositionButton.d.ts.map +0 -1
- package/lib/types/features/store/objects/components/ContentOverview.d.ts +0 -9
- package/lib/types/features/store/objects/components/ContentOverview.d.ts.map +0 -1
- package/lib/types/features/store/objects/components/DocumentIcon.d.ts +0 -12
- package/lib/types/features/store/objects/components/DocumentIcon.d.ts.map +0 -1
- package/lib/types/features/store/objects/components/DocumentInput.d.ts +0 -8
- package/lib/types/features/store/objects/components/DocumentInput.d.ts.map +0 -1
- package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts +0 -9
- package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts.map +0 -1
- package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts +0 -9
- package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts.map +0 -1
- package/lib/types/features/store/objects/components/SelectDocument.d.ts +0 -9
- package/lib/types/features/store/objects/components/SelectDocument.d.ts.map +0 -1
- package/lib/types/features/store/objects/components/SelectDocumentModal.d.ts +0 -9
- package/lib/types/features/store/objects/components/SelectDocumentModal.d.ts.map +0 -1
- package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts +0 -12
- package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts.map +0 -1
- package/lib/types/features/store/objects/components/index.d.ts +0 -10
- package/lib/types/features/store/objects/components/index.d.ts.map +0 -1
- package/lib/types/features/store/objects/components/useDownloadObject.d.ts +0 -4
- package/lib/types/features/store/objects/components/useDownloadObject.d.ts.map +0 -1
- package/lib/types/features/store/objects/index.d.ts +0 -11
- package/lib/types/features/store/objects/index.d.ts.map +0 -1
- package/lib/types/features/store/objects/layout/DocumentTableColumn.d.ts +0 -17
- package/lib/types/features/store/objects/layout/DocumentTableColumn.d.ts.map +0 -1
- package/lib/types/features/store/objects/layout/documentLayout.d.ts +0 -18
- package/lib/types/features/store/objects/layout/documentLayout.d.ts.map +0 -1
- package/lib/types/features/store/objects/layout/index.d.ts +0 -3
- package/lib/types/features/store/objects/layout/index.d.ts.map +0 -1
- package/lib/types/features/store/objects/layout/renderers.d.ts +0 -3
- package/lib/types/features/store/objects/layout/renderers.d.ts.map +0 -1
- package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts +0 -53
- package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts.map +0 -1
- package/lib/types/features/store/objects/search/DocumentSearchProvider.d.ts +0 -14
- package/lib/types/features/store/objects/search/DocumentSearchProvider.d.ts.map +0 -1
- package/lib/types/features/store/objects/search/index.d.ts +0 -3
- package/lib/types/features/store/objects/search/index.d.ts.map +0 -1
- package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts +0 -26
- package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts.map +0 -1
- package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts +0 -28
- package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts.map +0 -1
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts +0 -5
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +0 -1
- package/lib/types/features/store/objects/selection/actions/AddToCollectionAction.d.ts +0 -4
- package/lib/types/features/store/objects/selection/actions/AddToCollectionAction.d.ts.map +0 -1
- package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts +0 -4
- package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts.map +0 -1
- package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts +0 -16
- package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts.map +0 -1
- package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts +0 -4
- package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +0 -1
- package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts +0 -4
- package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts.map +0 -1
- package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts +0 -4
- package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts.map +0 -1
- package/lib/types/features/store/objects/selection/actions/StartWorkflowComponent.d.ts +0 -4
- package/lib/types/features/store/objects/selection/actions/StartWorkflowComponent.d.ts.map +0 -1
- package/lib/types/features/store/objects/selection/actions/index.d.ts +0 -8
- package/lib/types/features/store/objects/selection/actions/index.d.ts.map +0 -1
- package/lib/types/features/store/objects/selection/index.d.ts +0 -5
- package/lib/types/features/store/objects/selection/index.d.ts.map +0 -1
- package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts +0 -38
- package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts.map +0 -1
- package/lib/types/features/store/objects/upload/index.d.ts +0 -4
- package/lib/types/features/store/objects/upload/index.d.ts.map +0 -1
- package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts +0 -30
- package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts.map +0 -1
- package/lib/types/features/store/objects/upload/useUploadHandler.d.ts +0 -50
- package/lib/types/features/store/objects/upload/useUploadHandler.d.ts.map +0 -1
- package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts +0 -6
- package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts.map +0 -1
- package/lib/types/features/store/types/ContentObjectTypesTable.d.ts +0 -8
- package/lib/types/features/store/types/ContentObjectTypesTable.d.ts.map +0 -1
- package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts +0 -15
- package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts.map +0 -1
- package/lib/types/features/store/types/ObjectSchemaEditor.d.ts +0 -8
- package/lib/types/features/store/types/ObjectSchemaEditor.d.ts.map +0 -1
- package/lib/types/features/store/types/SelectContentType.d.ts +0 -11
- package/lib/types/features/store/types/SelectContentType.d.ts.map +0 -1
- package/lib/types/features/store/types/SelectContentTypeModal.d.ts +0 -33
- package/lib/types/features/store/types/SelectContentTypeModal.d.ts.map +0 -1
- package/lib/types/features/store/types/TableLayoutEditor.d.ts +0 -9
- package/lib/types/features/store/types/TableLayoutEditor.d.ts.map +0 -1
- package/lib/types/features/store/types/index.d.ts +0 -9
- package/lib/types/features/store/types/index.d.ts.map +0 -1
- package/lib/types/features/store/types/search/ObjectTypeSearchContext.d.ts +0 -36
- package/lib/types/features/store/types/search/ObjectTypeSearchContext.d.ts.map +0 -1
- package/lib/types/features/store/types/search/ObjectTypeSearchProvider.d.ts +0 -11
- package/lib/types/features/store/types/search/ObjectTypeSearchProvider.d.ts.map +0 -1
- package/lib/types/features/store/types/search/index.d.ts +0 -3
- package/lib/types/features/store/types/search/index.d.ts.map +0 -1
- package/lib/types/features/user/UserAvatar.d.ts +0 -9
- package/lib/types/features/user/UserAvatar.d.ts.map +0 -1
- package/lib/types/features/user/UserInfo.d.ts +0 -37
- package/lib/types/features/user/UserInfo.d.ts.map +0 -1
- package/lib/types/features/user/index.d.ts +0 -3
- package/lib/types/features/user/index.d.ts.map +0 -1
- package/lib/types/features/utils/index.d.ts +0 -4
- package/lib/types/features/utils/index.d.ts.map +0 -1
- package/lib/types/features/utils/mimeType.d.ts +0 -5
- package/lib/types/features/utils/mimeType.d.ts.map +0 -1
- package/lib/types/features/utils/rendition.d.ts +0 -4
- package/lib/types/features/utils/rendition.d.ts.map +0 -1
- package/lib/types/features/utils/text.d.ts +0 -3
- package/lib/types/features/utils/text.d.ts.map +0 -1
- package/lib/types/layout/AppLayout.d.ts +0 -13
- package/lib/types/layout/AppLayout.d.ts.map +0 -1
- package/lib/types/layout/FullHeightLayout.d.ts +0 -27
- package/lib/types/layout/FullHeightLayout.d.ts.map +0 -1
- package/lib/types/layout/Navbar.d.ts +0 -33
- package/lib/types/layout/Navbar.d.ts.map +0 -1
- package/lib/types/layout/Sidebar.d.ts +0 -31
- package/lib/types/layout/Sidebar.d.ts.map +0 -1
- package/lib/types/layout/SidebarContext.d.ts +0 -9
- package/lib/types/layout/SidebarContext.d.ts.map +0 -1
- package/lib/types/layout/TitleBar.d.ts +0 -6
- package/lib/types/layout/TitleBar.d.ts.map +0 -1
- package/lib/types/layout/index.d.ts +0 -7
- package/lib/types/layout/index.d.ts.map +0 -1
- package/lib/types/router/FixLinks.d.ts +0 -7
- package/lib/types/router/FixLinks.d.ts.map +0 -1
- package/lib/types/router/HistoryNavigator.d.ts +0 -56
- package/lib/types/router/HistoryNavigator.d.ts.map +0 -1
- package/lib/types/router/Nav.d.ts +0 -29
- package/lib/types/router/Nav.d.ts.map +0 -1
- package/lib/types/router/NestedNavigationContext.d.ts +0 -9
- package/lib/types/router/NestedNavigationContext.d.ts.map +0 -1
- package/lib/types/router/NestedRouterProvider.d.ts +0 -14
- package/lib/types/router/NestedRouterProvider.d.ts.map +0 -1
- package/lib/types/router/PathMatcher.d.ts +0 -36
- package/lib/types/router/PathMatcher.d.ts.map +0 -1
- package/lib/types/router/PathWithParams.d.ts +0 -9
- package/lib/types/router/PathWithParams.d.ts.map +0 -1
- package/lib/types/router/Route404.d.ts +0 -4
- package/lib/types/router/Route404.d.ts.map +0 -1
- package/lib/types/router/RouteComponent.d.ts +0 -6
- package/lib/types/router/RouteComponent.d.ts.map +0 -1
- package/lib/types/router/Router.d.ts +0 -74
- package/lib/types/router/Router.d.ts.map +0 -1
- package/lib/types/router/RouterProvider.d.ts +0 -15
- package/lib/types/router/RouterProvider.d.ts.map +0 -1
- package/lib/types/router/index.d.ts +0 -11
- package/lib/types/router/index.d.ts.map +0 -1
- package/lib/types/router/path.d.ts +0 -8
- package/lib/types/router/path.d.ts.map +0 -1
- package/lib/types/session/TypeRegistry.d.ts +0 -10
- package/lib/types/session/TypeRegistry.d.ts.map +0 -1
- package/lib/types/session/UserSession.d.ts +0 -40
- package/lib/types/session/UserSession.d.ts.map +0 -1
- package/lib/types/session/UserSessionProvider.d.ts +0 -7
- package/lib/types/session/UserSessionProvider.d.ts.map +0 -1
- package/lib/types/session/auth/composable.d.ts +0 -26
- package/lib/types/session/auth/composable.d.ts.map +0 -1
- package/lib/types/session/auth/firebase.d.ts +0 -10
- package/lib/types/session/auth/firebase.d.ts.map +0 -1
- package/lib/types/session/auth/useAuthState.d.ts +0 -10
- package/lib/types/session/auth/useAuthState.d.ts.map +0 -1
- package/lib/types/session/auth/useCurrentTenant.d.ts +0 -15
- package/lib/types/session/auth/useCurrentTenant.d.ts.map +0 -1
- package/lib/types/session/constants.d.ts +0 -3
- package/lib/types/session/constants.d.ts.map +0 -1
- package/lib/types/session/index.d.ts +0 -8
- package/lib/types/session/index.d.ts.map +0 -1
- package/lib/types/session/useUXTracking.d.ts +0 -6
- package/lib/types/session/useUXTracking.d.ts.map +0 -1
- package/lib/types/shell/SplashScreen.d.ts +0 -7
- package/lib/types/shell/SplashScreen.d.ts.map +0 -1
- package/lib/types/shell/VertesiaShell.d.ts +0 -10
- package/lib/types/shell/VertesiaShell.d.ts.map +0 -1
- package/lib/types/shell/apps/AppInstallationProvider.d.ts +0 -12
- package/lib/types/shell/apps/AppInstallationProvider.d.ts.map +0 -1
- package/lib/types/shell/apps/AppProjectSelector.d.ts +0 -12
- package/lib/types/shell/apps/AppProjectSelector.d.ts.map +0 -1
- package/lib/types/shell/apps/StandaloneApp.d.ts +0 -23
- package/lib/types/shell/apps/StandaloneApp.d.ts.map +0 -1
- package/lib/types/shell/apps/index.d.ts +0 -4
- package/lib/types/shell/apps/index.d.ts.map +0 -1
- package/lib/types/shell/index.d.ts +0 -8
- package/lib/types/shell/index.d.ts.map +0 -1
- package/lib/types/shell/login/EnterpriseSigninButton.d.ts +0 -6
- package/lib/types/shell/login/EnterpriseSigninButton.d.ts.map +0 -1
- package/lib/types/shell/login/GitHubSignInButton.d.ts +0 -6
- package/lib/types/shell/login/GitHubSignInButton.d.ts.map +0 -1
- package/lib/types/shell/login/GoogleSignInButton.d.ts +0 -6
- package/lib/types/shell/login/GoogleSignInButton.d.ts.map +0 -1
- package/lib/types/shell/login/InviteAcceptModal.d.ts +0 -2
- package/lib/types/shell/login/InviteAcceptModal.d.ts.map +0 -1
- package/lib/types/shell/login/MicrosoftSigninButton.d.ts +0 -6
- package/lib/types/shell/login/MicrosoftSigninButton.d.ts.map +0 -1
- package/lib/types/shell/login/PreviewIcon.d.ts +0 -6
- package/lib/types/shell/login/PreviewIcon.d.ts.map +0 -1
- package/lib/types/shell/login/SignInModal.d.ts +0 -7
- package/lib/types/shell/login/SignInModal.d.ts.map +0 -1
- package/lib/types/shell/login/SigninScreen.d.ts +0 -9
- package/lib/types/shell/login/SigninScreen.d.ts.map +0 -1
- package/lib/types/shell/login/SignupForm.d.ts +0 -8
- package/lib/types/shell/login/SignupForm.d.ts.map +0 -1
- package/lib/types/shell/login/TerminalLogin.d.ts +0 -2
- package/lib/types/shell/login/TerminalLogin.d.ts.map +0 -1
- package/lib/types/shell/login/UserInfo.d.ts +0 -6
- package/lib/types/shell/login/UserInfo.d.ts.map +0 -1
- package/lib/types/shell/login/UserSessionMenu.d.ts +0 -9
- package/lib/types/shell/login/UserSessionMenu.d.ts.map +0 -1
- package/lib/types/shell/utils.d.ts +0 -2
- package/lib/types/shell/utils.d.ts.map +0 -1
- package/lib/types/widgets/Progress.d.ts +0 -6
- package/lib/types/widgets/Progress.d.ts.map +0 -1
- package/lib/types/widgets/SvgIcon.d.ts +0 -7
- package/lib/types/widgets/SvgIcon.d.ts.map +0 -1
- package/lib/types/widgets/codemirror/CodeMirrorEditor.d.ts +0 -23
- package/lib/types/widgets/codemirror/CodeMirrorEditor.d.ts.map +0 -1
- package/lib/types/widgets/codemirror/CodemirrorStateSingleton.d.ts +0 -15
- package/lib/types/widgets/codemirror/CodemirrorStateSingleton.d.ts.map +0 -1
- package/lib/types/widgets/codemirror/index.d.ts +0 -2
- package/lib/types/widgets/codemirror/index.d.ts.map +0 -1
- package/lib/types/widgets/form/Form.d.ts +0 -21
- package/lib/types/widgets/form/Form.d.ts.map +0 -1
- package/lib/types/widgets/form/FormContext.d.ts +0 -17
- package/lib/types/widgets/form/FormContext.d.ts.map +0 -1
- package/lib/types/widgets/form/ManagedObject.d.ts +0 -82
- package/lib/types/widgets/form/ManagedObject.d.ts.map +0 -1
- package/lib/types/widgets/form/fields.d.ts +0 -16
- package/lib/types/widgets/form/fields.d.ts.map +0 -1
- package/lib/types/widgets/form/index.d.ts +0 -7
- package/lib/types/widgets/form/index.d.ts.map +0 -1
- package/lib/types/widgets/form/inputs.d.ts +0 -8
- package/lib/types/widgets/form/inputs.d.ts.map +0 -1
- package/lib/types/widgets/form/schema.d.ts +0 -47
- package/lib/types/widgets/form/schema.d.ts.map +0 -1
- package/lib/types/widgets/index.d.ts +0 -12
- package/lib/types/widgets/index.d.ts.map +0 -1
- package/lib/types/widgets/json-view/JSONCode.d.ts +0 -22
- package/lib/types/widgets/json-view/JSONCode.d.ts.map +0 -1
- package/lib/types/widgets/json-view/JSONDisplay.d.ts +0 -8
- package/lib/types/widgets/json-view/JSONDisplay.d.ts.map +0 -1
- package/lib/types/widgets/json-view/JSONView.d.ts +0 -7
- package/lib/types/widgets/json-view/JSONView.d.ts.map +0 -1
- package/lib/types/widgets/json-view/index.d.ts +0 -5
- package/lib/types/widgets/json-view/index.d.ts.map +0 -1
- package/lib/types/widgets/json-view/types.d.ts +0 -8
- package/lib/types/widgets/json-view/types.d.ts.map +0 -1
- package/lib/types/widgets/markdown/MarkdownRenderer.d.ts +0 -9
- package/lib/types/widgets/markdown/MarkdownRenderer.d.ts.map +0 -1
- package/lib/types/widgets/markdown/index.d.ts +0 -2
- package/lib/types/widgets/markdown/index.d.ts.map +0 -1
- package/lib/types/widgets/popover/Popover.d.ts +0 -38
- package/lib/types/widgets/popover/Popover.d.ts.map +0 -1
- package/lib/types/widgets/popover/context.d.ts +0 -8
- package/lib/types/widgets/popover/context.d.ts.map +0 -1
- package/lib/types/widgets/popover/index.d.ts +0 -3
- package/lib/types/widgets/popover/index.d.ts.map +0 -1
- package/lib/types/widgets/popover/slots.d.ts +0 -5
- package/lib/types/widgets/popover/slots.d.ts.map +0 -1
- package/lib/types/widgets/properties/PropertiesView.d.ts +0 -11
- package/lib/types/widgets/properties/PropertiesView.d.ts.map +0 -1
- package/lib/types/widgets/properties/index.d.ts +0 -2
- package/lib/types/widgets/properties/index.d.ts.map +0 -1
- package/lib/types/widgets/schema-editor/JSONSchemaEditorModal.d.ts +0 -10
- package/lib/types/widgets/schema-editor/JSONSchemaEditorModal.d.ts.map +0 -1
- package/lib/types/widgets/schema-editor/ManagedSchema.d.ts +0 -75
- package/lib/types/widgets/schema-editor/ManagedSchema.d.ts.map +0 -1
- package/lib/types/widgets/schema-editor/editor/Editable.d.ts +0 -40
- package/lib/types/widgets/schema-editor/editor/Editable.d.ts.map +0 -1
- package/lib/types/widgets/schema-editor/editor/EditableSchemaProperty.d.ts +0 -8
- package/lib/types/widgets/schema-editor/editor/EditableSchemaProperty.d.ts.map +0 -1
- package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts +0 -5
- package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts.map +0 -1
- package/lib/types/widgets/schema-editor/editor/PropertyViewer.d.ts +0 -4
- package/lib/types/widgets/schema-editor/editor/PropertyViewer.d.ts.map +0 -1
- package/lib/types/widgets/schema-editor/editor/SchemaContext.d.ts +0 -3
- package/lib/types/widgets/schema-editor/editor/SchemaContext.d.ts.map +0 -1
- package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts +0 -9
- package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts.map +0 -1
- package/lib/types/widgets/schema-editor/index.d.ts +0 -8
- package/lib/types/widgets/schema-editor/index.d.ts.map +0 -1
- package/lib/types/widgets/schema-editor/json-schema4-utils.d.ts +0 -16
- package/lib/types/widgets/schema-editor/json-schema4-utils.d.ts.map +0 -1
- package/lib/types/widgets/schema-editor/type-signature.d.ts +0 -19
- package/lib/types/widgets/schema-editor/type-signature.d.ts.map +0 -1
- package/lib/types/widgets/upload/DropZone.d.ts +0 -41
- package/lib/types/widgets/upload/DropZone.d.ts.map +0 -1
- package/lib/types/widgets/upload/UploadResultCategory.d.ts +0 -26
- package/lib/types/widgets/upload/UploadResultCategory.d.ts.map +0 -1
- package/lib/types/widgets/upload/UploadSummary.d.ts +0 -38
- package/lib/types/widgets/upload/UploadSummary.d.ts.map +0 -1
- package/lib/types/widgets/upload/index.d.ts +0 -4
- package/lib/types/widgets/upload/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/components/Attributes/index.d.ts +0 -6
- package/lib/types/widgets/xml-viewer/components/Attributes/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/components/CDataTag/index.d.ts +0 -8
- package/lib/types/widgets/xml-viewer/components/CDataTag/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/components/CollapseIcon/index.d.ts +0 -5
- package/lib/types/widgets/xml-viewer/components/CollapseIcon/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/components/CommentTag/index.d.ts +0 -9
- package/lib/types/widgets/xml-viewer/components/CommentTag/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/components/DeclarationTag/index.d.ts +0 -8
- package/lib/types/widgets/xml-viewer/components/DeclarationTag/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/components/Elements/index.d.ts +0 -8
- package/lib/types/widgets/xml-viewer/components/Elements/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/components/InvalidXml/index.d.ts +0 -2
- package/lib/types/widgets/xml-viewer/components/InvalidXml/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/components/Tag/index.d.ts +0 -13
- package/lib/types/widgets/xml-viewer/components/Tag/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/components/TextElement/index.d.ts +0 -8
- package/lib/types/widgets/xml-viewer/components/TextElement/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/components/XMLViewer.d.ts +0 -3
- package/lib/types/widgets/xml-viewer/components/XMLViewer.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/components/types.d.ts +0 -104
- package/lib/types/widgets/xml-viewer/components/types.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/constants/index.d.ts +0 -17
- package/lib/types/widgets/xml-viewer/constants/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/context/xml-viewer-context.d.ts +0 -4
- package/lib/types/widgets/xml-viewer/context/xml-viewer-context.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/helpers/index.d.ts +0 -13
- package/lib/types/widgets/xml-viewer/helpers/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/hooks/useCollapsible.d.ts +0 -15
- package/lib/types/widgets/xml-viewer/hooks/useCollapsible.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/hooks/useXMLViewer.d.ts +0 -10
- package/lib/types/widgets/xml-viewer/hooks/useXMLViewer.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/index.d.ts +0 -3
- package/lib/types/widgets/xml-viewer/index.d.ts.map +0 -1
- package/lib/types/widgets/xml-viewer/types/index.d.ts +0 -16
- package/lib/types/widgets/xml-viewer/types/index.d.ts.map +0 -1
- package/lib/vertesia-ui-core.js +0 -2
- package/lib/vertesia-ui-core.js.map +0 -1
- package/lib/vertesia-ui-env.js +0 -2
- package/lib/vertesia-ui-env.js.map +0 -1
- package/lib/vertesia-ui-features.js +0 -2
- package/lib/vertesia-ui-features.js.map +0 -1
- package/lib/vertesia-ui-layout.js +0 -2
- package/lib/vertesia-ui-layout.js.map +0 -1
- package/lib/vertesia-ui-router.js +0 -2
- package/lib/vertesia-ui-router.js.map +0 -1
- package/lib/vertesia-ui-session.js +0 -2
- package/lib/vertesia-ui-session.js.map +0 -1
- package/lib/vertesia-ui-shell.js +0 -2
- package/lib/vertesia-ui-shell.js.map +0 -1
- package/lib/vertesia-ui-widgets.js +0 -2
- package/lib/vertesia-ui-widgets.js.map +0 -1
- package/src/features/facets/FacetsNav.tsx +0 -19
- package/src/features/facets/VFacetsNav.tsx +0 -81
- package/src/widgets/schema-editor/JSONSchemaEditorModal.tsx +0 -67
- /package/src/features/facets/{StringFacet.tsx → utils/StringFacet.tsx} +0 -0
- /package/src/features/facets/{StringListFacet.tsx → utils/StringListFacet.tsx} +0 -0
- /package/src/features/facets/{TypeFacet.tsx → utils/TypeFacet.tsx} +0 -0
- /package/src/features/facets/{VEnvironmentFacet.tsx → utils/VEnvironmentFacet.tsx} +0 -0
- /package/src/features/facets/{VInteractionFacet.tsx → utils/VInteractionFacet.tsx} +0 -0
- /package/src/features/facets/{VStringFacet.tsx → utils/VStringFacet.tsx} +0 -0
- /package/src/features/facets/{utils.tsx → utils/utils.tsx} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vertesia-ui-core.js","sources":["esm/core/components/Avatar.js","esm/core/components/libs/utils.js","esm/core/components/Badge.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/shadcn/button.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/dialog.js","esm/core/components/shadcn/input.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/tooltip.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/ConfirmModal.js","esm/core/components/toast/ToastContext.js","esm/core/components/Portal.js","esm/core/components/toast/NotificationPanel.js","esm/core/components/toast/ToastProvider.js","esm/core/components/DeleteModal.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/FormItem.js","esm/core/components/styles.js","esm/core/components/InputList.js","esm/core/components/Link.js","esm/core/components/MenuList.js","esm/core/components/MessageBox.js","esm/core/components/Modal.js","esm/core/components/NumberInput.js","esm/core/components/Spinner.js","esm/core/components/Button.js","esm/core/components/Overlay.js","esm/core/components/RadioGroup.js","esm/core/components/SelectBox.js","esm/core/components/SelectList.js","esm/core/components/SelectStack.js","esm/core/components/SidePanel.js","esm/core/components/Switch.js","esm/core/components/table/index.js","esm/core/components/tabs/TabsContext.js","esm/core/components/tabs/Tabs.js","esm/core/components/Textarea.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/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 { 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, 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 } 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, 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-white 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 = () => {\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 } 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 default 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, jsxs as _jsxs, Fragment as _Fragment } 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\";\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 VModal({ className, children, isOpen, onClose, description = \"Modal Description\", noCloseButton = false, allowOverflow = false, disableCloseOnClickOutside = false, }) {\n const handleOpenChange = (open) => {\n if (!open) {\n onClose();\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 max-w-lg translate-x-[-50%] translate-y-[-50%] border bg-background shadow-lg duration-200 sm:rounded-lg\", className), children: [!noCloseButton && (_jsx(DialogClose, { onClick: () => handleOpenChange(false), asChild: true, autoFocus: false, children: _jsx(Button, { variant: \"outline\", alt: \"Close\", className: \"top-4 right-4 absolute 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: \"w-4 h-4\" }) }) })), _jsx(ModalContextProvider, { children: children })] })] }));\n}\nexport const VModalTitle = ({ children, show = true, className, description, ...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(\"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 VModalBody = ({ children, className, ...props }) => {\n return (_jsx(\"div\", { className: cn(\"text-sm max-h-[80vh] overflow-y-auto\", className), ...props, children: children }));\n};\nexport const VModalFooter = ({ 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) => (_jsxs(DialogPortal, { 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 })] })));\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 * as React from \"react\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../libs/utils\";\nimport { X } from \"lucide-react\";\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\", style: { position: 'relative', display: 'inline-block' }, children: [_jsx(\"input\", { type: type, className: cn(variants({ size, variant }), className, clearable && value ? \"pr-6\" : \"\"), ref: ref, value: value == null ? '' : value, onChange: _onChange, ...props }), clearable && value && !props.readOnly && !props.disabled && (_jsx(\"button\", { onClick: _onClear, className: `absolute ${type !== 'number' ? 'right-0' : 'right-7'} top-1/2 -translate-y-1/2 size-7 text-muted-foreground hover:text-destructive cursor-pointer flex items-center justify-center`, type: \"button\", \"aria-label\": \"Clear input\", children: _jsx(X, { size: 16 }) }))] }));\n});\nInput.displayName = \"Input\";\nexport { Input, };\n//# sourceMappingURL=input.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 \"./dialog\";\nconst 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 return (_jsx(PopoverPrimitive.Portal, { 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 \"./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 } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { isEqual } from 'lodash-es';\nimport { Check, ChevronsUpDown, SearchIcon, SquarePlus, X } from 'lucide-react';\nimport { useState, useEffect, useRef } from 'react';\nimport { Popover, PopoverContent, PopoverTrigger, PopoverClose } from './popover';\nimport { Command, CommandEmpty, CommandGroup, CommandItem, CommandList } from './command';\nimport { Input } from './input';\nexport function VSelectBox({ options, optionLabel, value, onChange, addNew, addNewLabel, disabled, filterBy, label, placeholder, className, popupClass, isClearable, border = true, multiple = false, by }) {\n const triggerRef = useRef(null);\n const [open, setOpen] = useState(false);\n const [width, setWidth] = useState(0);\n const [filterValue, setFilterValue] = useState('');\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 return (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(\"div\", { ref: triggerRef, onClick: handleTriggerClick, className: clsx(className, border && 'border border-border', 'flex flex-row gap-2 items-center justify-between p-2 rounded-md group relative', !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 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 }), _jsx(\"div\", { className: clsx('w-full text-left', !disabled && ''), children: multiple ? renderMultipleValue() : renderSingleValue() })] }), _jsxs(\"div\", { className: \"flex items-center gap-1\", children: [isClearable && value && (Array.isArray(value) ? value.length > 0 : true) && (_jsx(\"div\", { 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 rounded p-1\", children: _jsx(X, { className: \"size-4\" }) })), !disabled && (_jsx(ChevronsUpDown, { className: \"size-4 opacity-50\" }))] })] }) }), _jsxs(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: [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: \"max-h-[200px] overflow-y-auto\", children: [_jsx(CommandEmpty, { children: \"No result found.\" }), _jsx(CommandGroup, { className: \"overflow-visible\", 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 ? (_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}\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 { VSelectBox } 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});\nconst VTabs = ({ tabs, defaultValue, current, className, fullWidth, children, onTabChange, responsive = false, variant = \"tabs\" }) => {\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 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 }, children: _jsx(TabsPrimitive.Root, { defaultValue: value || tabs[0]?.name, value: value, onValueChange: handleValueChange, className: className, children: children }) }));\n};\nconst VTabsBar = ({ className }) => {\n const { tabs, size, current, setTab, responsive, variant } = 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) {\n window.history.pushState(null, '', tab.href);\n }\n setTab(tabName);\n }, [tabs, setTab]);\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(VSelectBox, { 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 VTabsPanel = () => {\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, 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 window.history.pushState(null, '', 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\", className), ...props })));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\nexport { VTabs, VTabsBar, VTabsPanel, 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 TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"../libs/utils\";\nconst TooltipProvider = TooltipPrimitive.Provider;\nconst Tooltip = TooltipPrimitive.Root;\nconst TooltipTrigger = TooltipPrimitive.Trigger;\nconst TooltipContent = React.forwardRef(({ className, sideOffset = 4, side = \"top\", ...props }, ref) => (_jsx(TooltipPrimitive.Portal, { 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 }) })));\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 * 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({ children, maxItems = 3, className, separator }) {\n if (children.length <= maxItems) {\n return (_jsx(Breadcrumb, { className: cn(\"w-full\", className), children: _jsx(BreadcrumbList, { children: children.map((item, index) => (_jsxs(React.Fragment, { children: [_jsx(BreadcrumbItem, { children: item.href ? (_jsx(BreadcrumbLink, { href: item.href, children: item.label })) : (_jsx(BreadcrumbPage, { children: item.label })) }), index < children.length - 1 &&\n _jsx(BreadcrumbSeparator, { children: separator ?? _jsx(ChevronRight, {}) })] }, index))) }) }));\n }\n const firstItem = children[0];\n const lastItems = children.slice(-(maxItems - 2));\n return (_jsx(Breadcrumb, { className: cn(\"w-full\", className), children: _jsxs(BreadcrumbList, { children: [_jsx(BreadcrumbItem, { children: firstItem.href ? (_jsx(BreadcrumbLink, { href: firstItem.href, children: firstItem.label })) : (_jsx(BreadcrumbPage, { children: firstItem.label })) }), _jsx(BreadcrumbSeparator, { children: separator ?? _jsx(ChevronRight, {}) }), _jsx(BreadcrumbItem, { children: _jsx(BreadcrumbEllipsis, {}) }), _jsx(BreadcrumbSeparator, { children: separator ?? _jsx(ChevronRight, {}) }), lastItems.map((item, index) => (_jsxs(React.Fragment, { children: [_jsx(BreadcrumbItem, { children: item.href ? (_jsx(BreadcrumbLink, { href: item.href, children: item.label })) : (_jsx(BreadcrumbPage, { children: item.label })) }), index < lastItems.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\", 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-foreground\", className), ...props }));\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\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, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nimport { CommandItem, CommandEmpty } 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 if (options.length === 0) {\n return _jsx(CommandEmpty, { children: \"No matching options\" });\n }\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(_Fragment, { children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted\", children: _jsx(\"span\", { children: groupTitle }) }), _jsx(\"div\", { className: \"max-h-50 overflow-y-auto\", children: 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\", 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 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 || filter.value.length > 1) {\n // Handle multiple values - use array format\n values = `[${filter.value.map((item) => encodeURIComponent(item.value || '')).join(',')}]`;\n }\n else {\n // Single value in array - don't use array format\n const firstValue = filter.value[0];\n if (typeof firstValue === 'string') {\n values = encodeURIComponent(firstValue);\n }\n else {\n values = encodeURIComponent(firstValue?.value || '');\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()}`;\n window.history.replaceState({}, '', 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) {\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 return {\n name,\n type: group?.type || 'select',\n placeholder: group?.placeholder,\n value: filterValue,\n multiple: group?.multiple || false\n };\n });\n setFilters(parsedFilters);\n }\n catch (error) {\n console.error(\"Failed to parse filters from URL:\", error);\n }\n }\n }, []);\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\", 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 })), _jsx(CommandList, { className: \"max-h-[300px] overflow-y-auto\", children: _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, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { TriangleAlert } from \"lucide-react\";\nimport { useRef } from \"react\";\nimport { VModal, VModalTitle, VModalFooter } from \"./shadcn\";\nimport { Button } from \"./shadcn/button\";\nexport function ConfirmModal({ title, content, onConfirm, onCancel, isOpen }) {\n const cancelButtonRef = useRef(null);\n return (_jsxs(VModal, { 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(VModalTitle, { 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(VModalFooter, { 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 } 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 { 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 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 { 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","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, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { useState } from 'react';\nimport { Badge } from './Badge';\nimport { Input } from './shadcn/input';\nimport { Styles } from './styles';\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 _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', Styles.INPUT), children: [value && value.length > 0 &&\n (value.map((v, index) => _jsx(Badge, { variant: \"secondary\", onClick: () => _onClick(index), className: 'cursor-pointer', title: v, children: _jsx(\"span\", { className: 'break-all', children: v }) }, index))), _jsx(Input, { clearable: false, className: 'placeholder:text-muted-foreground px-1 min-w-0 flex-shrink-0 min-w-[120px]', variant: 'unstyled', type: 'text', value: text, onBlur: onBlur, onKeyDown: onKeyDown, 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 dark:px-2`, 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 ?\n 'bg-gray-50 text-indigo-600'\n :\n 'text-gray-700 dark:dark:text-slate-300 hover:text-indigo-600 hover:bg-gray-50 dark:hover:bg-slate-800 dark:hover:text-slate-50 dark:border dark:border-transparent dark:hover:border-slate-50', 'w-full rounded-md p-2 pl-3 text-sm leading-6 font-semibold'), 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","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\", { 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 clsx from \"clsx\";\nimport { Fragment } from \"react\";\nimport { Dialog, DialogPanel, DialogTitle, Transition, TransitionChild } from \"@headlessui/react\";\nimport { X } from \"lucide-react\";\nexport function Modal({ className, children, isOpen, onClose, noCloseButton = false, allowOverflow = false, disableCloseOnClickOutside = false, }) {\n const setOpen = (open) => {\n if (!open) {\n onClose();\n }\n };\n return (_jsx(Transition, { show: isOpen, as: Fragment, children: _jsxs(Dialog, { style: { zIndex: 50 }, as: \"div\", className: \"relative\", onClose: disableCloseOnClickOutside ? () => { } : setOpen, children: [_jsx(TransitionChild, { as: Fragment, enter: \"ease-out duration-300\", enterFrom: \"opacity-0\", enterTo: \"opacity-100\", leave: \"ease-in duration-200\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", unmount: true, children: _jsx(\"div\", { className: \"fixed inset-0 bg-gray-500 dark:bg-slate-800 dark:opacity-75 opacity-75 transition-opacity\" }) }), _jsx(\"div\", { className: \"fixed inset-0 z-10 w-screen overflow-y-auto\", children: _jsx(\"div\", { className: \"flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0\", children: _jsx(TransitionChild, { as: Fragment, enter: \"ease-out duration-300\", enterFrom: \"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\", enterTo: \"opacity-100 translate-y-0 sm:scale-100\", leave: \"ease-in duration-200\", leaveFrom: \"opacity-100 translate-y-0 sm:scale-100\", leaveTo: \"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\", children: _jsxs(DialogPanel, { className: clsx(\"p-0! relative transform rounded-lg bg-white dark:bg-slate-900 text-left dark:text-slate-100 shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-md sm:p-6\", allowOverflow ? \"overflow-visible\" : \"overflow-hidden\", className), children: [!noCloseButton && _jsx(ModalCloseButton, { onClose: onClose }), children] }) }) }) })] }) }));\n}\nfunction ModalCloseButton({ onClose }) {\n return (_jsx(\"div\", { className: \"absolute right-0 top-0 hidden pr-4 pt-4 sm:block\", children: _jsxs(\"button\", { tabIndex: -1, type: \"button\", className: \"rounded-md bg-white text-gray-400 dark:text-slate-200 dark:bg-slate-800 hover:brightness-95 focus:outline-hidden focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 hover:cursor-pointer\", onClick: onClose, children: [_jsx(\"span\", { className: \"sr-only\", children: \"Close\" }), _jsx(X, { className: \"size-6\", \"aria-hidden\": \"true\" })] }) }));\n}\nexport function ModalTitle({ children, showDivider = false }) {\n return (_jsx(\"div\", { className: showDivider ? \"border-b-solid border-b border-b-1\" : \"\", children: _jsx(DialogTitle, { as: \"h3\", className: \"py-4 pl-4 pr-8 text-base font-semibold leading-6 text-gray-900 dark:text-slate-50\", children: children }) }));\n}\nexport function ModalFooter({ children, className = \"justify-end\", fill = false }) {\n return (_jsx(\"div\", { className: clsx(\"w-full flex space-x-2 p-4 border-t-solid border-t-gray-100 dark:border-t-gray-800 border-t\", className || \"justify-end\", fill ? \"bg-gray-100 dark:bg-slate-800\" : \"\"), children: children }));\n}\nexport function ModalBody({ children, className = \"\" }) {\n return _jsx(\"div\", { className: clsx(\"p-4\", className), children: children });\n}\n//# sourceMappingURL=Modal.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, 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 clsx from 'clsx';\nimport { Spinner } from \"./Spinner.js\";\nfunction getRealSize(size) {\n switch (size) {\n case 'xs': return 'rounded-xs px-2 py-1 text-xs gap-x-1';\n case 'sm': return 'rounded-xs px-2 py-1 text-sm gap-x-1';\n case 'md': return 'rounded-md px-2.5 py-1.5 text-sm gap-x-1.5';\n case 'lg': return 'rounded-md px-3 py-2 text-sm gap-x-1.5';\n case 'xl': return 'rounded-md px-3.5 py-2.5 text-sm gap-x-2';\n default: throw new Error('Unexpected size: ' + size);\n }\n}\nconst Variants = {\n primary: \"shadow-2xs bg-indigo-600 text-white hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\",\n secondary: \"shadow-2xs bg-white text-gray-900 hover:bg-gray-50 ring-1 ring-inset ring-gray-300\",\n soft: \"shadow-2xs bg-indigo-50 text-indigo-600 hover:bg-indigo-100\",\n ghost: \"text-indigo-600 hover:bg-indigo-100 dark:text-indigo-400 dark:hover:bg-indigo-900\",\n unstyled: \"\"\n};\nconst SpinnerVariants = {\n primary: \"text-white\",\n secondary: \"text-indigo-500\",\n soft: \"text-indigo-600\",\n ghost: \"text-indigo-600\",\n unstyled: \"text-gray-600\"\n};\nexport function Button({ title, className, type = 'button', children, size, onClick, variant = \"primary\", isLoading = false, isDisabled = false }) {\n const sizeClass = getRealSize(size || 'md');\n return (_jsxs(\"button\", { title: title, disabled: isDisabled || isLoading, onClick: onClick, type: type, className: clsx(\"whitespace-nowrap inline-flex items-center justify-center font-semibold hover:cursor-pointer\", Variants[variant], sizeClass, isDisabled && \"cursor-not-allowed text-gray-300!\", className), children: [isLoading && _jsx(Spinner, { className: SpinnerVariants[variant], size: size }), children] }));\n}\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 \"./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, 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, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { Listbox, ListboxButton, ListboxOption, ListboxOptions } from \"@headlessui/react\";\nimport { X, Check, ChevronsUpDownIcon } from \"lucide-react\";\nimport clsx from \"clsx\";\nimport { useState, useEffect, useRef } from \"react\";\nimport { Button } from \"./Button\";\nimport { Center } from \"./Center\";\nfunction 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}\nexport function SelectBox({ clearTitle, ClearIcon = X, showFilter, filterBy, isClearable, disabled, by, options, value, onChange, className, addNew, addNewLabel, placeholder, optionLabel = (option) => String(option), label }) {\n const [filter, setFilter] = useState();\n const buttonRef = useRef(null);\n const [buttonWidth, setButtonWidth] = useState();\n useEffect(() => {\n if (buttonRef.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n setButtonWidth(entries[0].contentRect.width);\n });\n resizeObserver.observe(buttonRef.current);\n return () => resizeObserver.disconnect();\n }\n }, []);\n const onClear = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (isClearable) {\n onChange(undefined);\n }\n };\n const onFilterChange = (e) => {\n setFilter(e.target.value);\n };\n let filteredOptions = options || [];\n if (showFilter === undefined) {\n showFilter = filteredOptions?.length >= 10;\n }\n if (showFilter && filter) {\n const filterLc = filter.toLowerCase();\n const filterFn = getFilterByFn(filterBy);\n filteredOptions = filteredOptions.filter(o => filterFn(o).includes(filterLc));\n }\n const onFilterKeyDown = (e) => {\n if (e.key !== \"Escape\"\n && e.key !== \"Enter\"\n && e.key !== \"ArrowDown\"\n && e.key !== \"ArrowUp\") {\n e.stopPropagation();\n }\n };\n return (_jsx(Listbox, { value: value || null, onChange: onChange, by: by, disabled: disabled, children: () => (_jsx(\"div\", { className: 'overflow-y-visible ' + className, children: _jsxs(\"div\", { className: \"relative\", children: [_jsxs(ListboxButton, { ref: buttonRef, className: \"relative w-full cursor-default rounded-md bg-white py-1.5 text-left text-gray-900 shadow-2xs ring-1 ring-inset ring-gray-300 focus:outline-hidden focus:ring-2 focus:ring-indigo-600 dark:ring-slate-600 dark:text-slate-50 dark:bg-slate-800 sm:text-sm sm:leading-6 hover:cursor-pointer\", children: [label && _jsx(\"div\", { className: 'w-full text-gray-500 text-left px-2', children: label }), _jsx(\"span\", { className: \"block truncate pl-3 pr-14\", children: value ? optionLabel(value) : placeholder }), isClearable && value != null && _jsx(\"span\", { className: \"absolute inset-y-0 right-0 mr-5 flex items-center pr-2\", onClick: onClear, children: _jsx(ClearIcon, { title: clearTitle, className: \"size-5 text-gray-400 hover:text-red-500 cursor-pointer\", \"aria-hidden\": \"true\" }) }), !disabled &&\n _jsx(\"span\", { className: \"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2\", children: _jsx(ChevronsUpDownIcon, { className: \"size-5 text-gray-400\", \"aria-hidden\": \"true\" }) })] }), _jsxs(ListboxOptions, { anchor: \"bottom\", style: { width: buttonWidth, zIndex: 100000000 }, className: \"absolute z-10 mt-1 overflow-auto rounded-md bg-white dark:ring-slate-600 dark:text-slate-50 dark:bg-slate-800 py-1 text-base shadow-lg ring-1 ring-gray-300 ring-opacity-5 focus:outline-hidden sm:text-sm\", children: [showFilter &&\n _jsx(\"div\", { className: \"p-1\", children: _jsx(\"input\", { type: \"text\", value: filter || '', onKeyDown: onFilterKeyDown, onChange: onFilterChange, className: \"w-full p-1 border border-gray-300 rounded-md dark:bg-slate-700 dark:text-slate-50\", placeholder: \"Filter...\" }) }), _jsx(\"div\", { className: \"overflow-y-auto max-h-60\", children: filteredOptions.map((option, i) => _jsx(ListOption, { option: option, optionLabel: optionLabel, className: \"hover:cursor-pointer\" }, i)) }), addNew &&\n _jsx(Center, { className: \"font-semibold py-2 border-t\", children: _jsx(Button, { variant: 'secondary', onClick: addNew, children: addNewLabel }) })] })] }) })) }));\n}\nexport function ListOption({ option, optionLabel, onClick, className }) {\n return (_jsx(ListboxOption, { className: ({ active }) => clsx(active ? 'bg-indigo-600 text-white dark:bg-indigo-800 dark:text-white' : 'text-gray-900 dark:text-slate-50', 'relative cursor-default select-none py-2 pl-3 pr-9', className), value: option, onClick: onClick, children: ({ selected, active }) => (_jsxs(_Fragment, { children: [_jsx(\"div\", { className: clsx(selected ? 'font-semibold' : 'font-inherit', 'block truncate'), children: optionLabel(option) }), selected ? (_jsx(\"div\", { className: clsx(active ? 'text-white' : 'text-indigo-600', 'absolute inset-y-0 right-0 flex items-center pr-4'), children: _jsx(Check, { className: \"size-5\", \"aria-hidden\": \"true\" }) })) : null] })) }));\n}\n//# sourceMappingURL=SelectBox.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\";\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 }) {\n const [selected, setSelected] = useState(value);\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 (_jsx(\"div\", { className: clsx(\"\", className), children: options.map((option, i) => {\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 { X } from 'lucide-react';\nimport { Button } from './shadcn/button';\nexport function SidePanel({ isOpen, title, onClose, children, panelWidth = 768, backdrop = false }) {\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 return (_jsx(AnimatePresence, { children: isOpen && (_jsxs(\"div\", { className: \"relative z-10\", children: [backdrop && (_jsx(motion.div, { className: \"fixed inset-0 bg-black bg-opacity-50\", initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: onClose })), _jsx(\"div\", { className: \"fixed inset-y-0 right-0 overflow-hidden\", children: _jsx(\"div\", { className: \"absolute inset-0 overflow-hidden\", children: _jsx(\"div\", { className: \"pointer-events-none fixed inset-y-0 right-0 flex max-w-full pl-10 sm:pl-16\", children: _jsx(motion.div, { className: \"pointer-events-auto border-l\", style: { width: `${_panelWidth}px` }, initial: { x: \"100%\" }, animate: { x: 0 }, exit: { x: \"100%\" }, transition: { type: \"spring\", stiffness: 300, damping: 30 }, children: _jsxs(\"div\", { className: \"relative flex h-full\", children: [_jsx(\"div\", { className: \"absolute left-0 top-0 bottom-0 w-1 cursor-ew-resize hover:bg-indigo-500 transition-colors\", onMouseDown: handleDragStart }), _jsxs(\"div\", { className: \"flex-1 flex flex-col overflow-y-scroll gap-4 bg-background py-6 shadow-xl\", children: [_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 } 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 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-gray-200 dark:bg-gray-600\" }) }, index)) }));\n}\nexport function TBody({ isLoading = false, columns, rows = 3, children }) {\n return (_jsx(\"tbody\", { children: isLoading ?\n Array(rows).fill(0).map((_, index) => _jsx(RowSkeleton, { columns: columns }, index))\n : 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 { createContext, useContext } from \"react\";\nexport function useTabs() {\n return useContext(TabsContext);\n}\nconst TabsContext = createContext({});\nexport { TabsContext };\n//# sourceMappingURL=TabsContext.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { isValidElement, useEffect, useState } from 'react';\nimport { TabsContext, useTabs } from './TabsContext.js';\nfunction applyCurrentTab(tabs, current) {\n const name = typeof current === 'function' ? current() : current;\n let currentTab = null;\n const newTabs = [];\n for (const tab of tabs) {\n const newTab = { ...tab };\n newTab.current = false;\n newTabs.push(newTab);\n if (newTab.name === name) {\n currentTab = newTab;\n }\n }\n if (!currentTab) {\n currentTab = newTabs[0];\n }\n currentTab.current = true;\n return newTabs;\n}\nexport function Tabs({ current, onSelect, tabs, children, navigate }) {\n const [_tabs, _setTabs] = useState([]);\n useEffect(() => {\n _setTabs(applyCurrentTab(tabs, current));\n }, [current, tabs]);\n const context = {\n tabs: _tabs,\n select: (tab) => {\n if (onSelect) {\n if (onSelect(tab) === false) {\n return;\n }\n }\n if (tab.href) {\n if (navigate) {\n navigate(tab.href);\n }\n else {\n window.location.href = tab.href;\n }\n }\n else {\n _setTabs([...applyCurrentTab(_tabs, tab.name)]);\n }\n }\n };\n return (_jsx(TabsContext.Provider, { value: context, children: _jsx(\"div\", { className: \"flex flex-col h-full\", children: children }) }));\n}\nexport function TabsBar({ actions, className }) {\n const { tabs, select } = useTabs();\n const _onClick = (e, tab) => {\n e.preventDefault();\n e.stopPropagation();\n // ignore if disabled\n !tab.disabled && select(tab);\n };\n return (_jsxs(\"div\", { className: \"border-b flex items-start justify-between\", children: [_jsx(\"nav\", { className: \"flex space-x-4 px-4\", \"aria-label\": \"Tabs\", children: tabs.map((tab) => {\n const cursor = tab.disabled ? 'cursor-not-allowed' : 'cursor-pointer';\n return (_jsx(\"a\", { href: tab.href || '#' + tab.name, onClick: (e) => _onClick(e, tab), className: clsx(tab.current\n ? 'border-indigo-500 text-indigo-600 dark:border-indigo-400 dark:text-indigo-50'\n : 'border-transparent text-gray-500 dark:text-slate-300 hover:border-slate-400 hover:text-gray-700 dark:hover:border-slate-200 dark:hover:text-gray-200 ', className, 'whitespace-nowrap border-b-2 py-2 px-1 text-sm font-medium', cursor), \"aria-current\": tab.current ? 'page' : undefined, children: tab.label }, tab.name));\n }) }), _jsx(\"div\", { className: \"flex gap-x-1\", children: actions })] }));\n}\nexport function TabsPanel({}) {\n const { tabs } = useTabs();\n const content = tabs.find((t) => t.current)?.content;\n if (!content) {\n return null;\n }\n if (isValidElement(content)) {\n return _jsx(\"div\", { className: \"h-full overflow-y-auto flex-1\", children: content });\n }\n const Component = content;\n return (_jsx(\"div\", { className: \"h-full overflow-y-auto flex-1\", children: _jsx(Component, {}) }));\n}\n//# sourceMappingURL=Tabs.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nimport React, { useState } from \"react\";\nimport { Styles } from \"./styles\";\nconst Textarea = React.forwardRef(({ unstyled, value, onChange, className, ...others }, ref) => {\n const [currentValue, setCurrentValue] = useState(value || \"\");\n const _onChange = (ev) => {\n const value = ev.target.value;\n setCurrentValue(value);\n onChange && onChange(value);\n };\n return (_jsx(\"textarea\", { ref: ref, ...others, className: clsx('w-full', unstyled ? Styles.INPUT_UNSTYLED : Styles.INPUT, className), value: currentValue, onChange: _onChange }));\n});\nexport { Textarea };\n//# sourceMappingURL=Textarea.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 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 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//# 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 { 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","cn","inputs","twMerge","clsx","badgeVariants","cva","variants","variant","default","secondary","destructive","attention","success","info","done","defaultVariants","Badge","onClick","props","dotBadgeVariants","dotVariants","DotBadge","dotClassName","_jsxs","cx","cy","r","Center","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","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","_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","onMouseEnter","onMouseLeave","onChange","onKeyDown","decrModulo","buttonVariants","outline","ghost","link","primary","unstyled","xs","sm","md","lg","xl","icon","Button","forwardRef","asChild","isDisabled","isLoading","type","buttonElement","Slot","disabled","autoFocus","Loader2","VTooltip","description","placement","displayName","CopyButton","content","toast","isCopied","setIsCopied","navigator","clipboard","writeText","then","status","message","duration","catch","err","console","error","Check","CopyIcon","ThemeProviderContext","theme","setTheme","ThemeProvider","defaultTheme","storageKey","localStorage","getItem","classList","remove","add","systemTheme","matchMedia","matches","setItem","useTheme","ModeOption","option","ModeToggle","Computer","Sun","Moon","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","VisuallyHidden","clip","whiteSpace","wordWrap","ModalContext","useIsInModal","ModalContextProvider","VModal","noCloseButton","allowOverflow","disableCloseOnClickOutside","handleOpenChange","Dialog","onOpenChange","DialogOverlay","DialogDescription","DialogContent","DialogClose","X","VModalTitle","show","DialogTitle","VModalBody","VModalFooter","center","DialogPrimitive","Root","DialogTrigger","Trigger","DialogPortal","Portal","Close","Overlay","Content","onOpenAutoFocus","event","preventDefault","Description","Title","noPadding","legacy","clearable","readOnly","Separator","orientation","decorative","SeparatorPrimitive","PopoverContext","Popover","hover","click","_open","setOpen","insideModal","PopoverPrimitive","modal","handleHover","PopoverTrigger","prev","PopoverAnchor","Anchor","PopoverContent","side","PopoverClose","Command","CommandPrimitive","CommandDialog","CommandInput","Search","CommandList","List","CommandEmpty","Empty","CommandGroup","Group","CommandSeparator","CommandItem","Item","CommandShortcut","VSelectBox","optionLabel","addNew","addNewLabel","filterBy","label","popupClass","isClearable","multiple","by","triggerRef","setWidth","filterValue","setFilterValue","updateWidth","contentWidth","resizeObserver","ResizeObserver","observe","disconnect","isOptionSelected","selectedValues","some","v","isOptionsEqual","a","b","isEqual","filteredOptions","filterLc","filterFn","o","getFilterByFn","e","Array","isArray","arrayValue","slice","renderMultipleValue","singleValue","renderSingleValue","stopPropagation","ChevronsUpDown","SearchIcon","opt","isSelected","currentValues","newValues","_onClick","SquarePlus","strokeWidth","absoluteStrokeWidth","TabsContext","tabs","setTab","responsive","VTabs","defaultValue","onTabChange","setValue","currentValue","hash","location","currentTab","substring","tab","handleHashChange","handleValueChange","newValue","useCallback","tabName","TabsPrimitive","onValueChange","VTabsBar","handleTabChange","t","href","history","pushState","TabsList","TabsTrigger","warn","VTabsPanel","TabsContent","handleClick","TooltipProvider","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","sideOffset","delayDuration","labelVariants","Label","required","LabelPrimitive","Breadcrumbs","maxItems","separator","Breadcrumb","BreadcrumbList","Fragment","BreadcrumbItem","BreadcrumbLink","BreadcrumbPage","BreadcrumbSeparator","ChevronRight","firstItem","lastItems","BreadcrumbEllipsis","role","MoreHorizontal","AnimateChangeInHeight","containerRef","setHeight","entries","observedHeight","contentRect","Checkbox","CheckboxPrimitive","Indicator","DynamicLabel","labelRenderer","fallbackLabel","setLabel","setIsLoading","async","result","Promise","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","InputList","generateComboboxOptions","setFilters","filterGroups","f","dateValue","textValue","values","filterGroup","group","Filters","filters","join","TextFilter","selectedView","setTextValue","handleClose","handleTextFilterAdd","trim","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","params","URLSearchParams","toString","filterString","encodeURIComponent","firstValue","set","delete","newUrl","pathname","replaceState","filtersParam","get","parsedFilters","pair","encodedName","valuesString","decodeURIComponent","startsWith","endsWith","arrayContent","encodedValue","matchingOption","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","ConfirmModal","onConfirm","onCancel","cancelButtonRef","TriangleAlert","useToast","ToastContext","PORTAL_ID","tempNode","portalEl","setPortalEl","doc","ownerDocument","appendChild","icons","CircleCheck","CircleX","warning","AlertTriangle","Info","colors","NotificationPanel","data","setShow","timeoutRef","resetTimeout","globalThis","clearTimeout","clearCurrentTimeout","Icon","Transition","appear","as","afterLeave","enter","enterFrom","enterTo","leave","leaveFrom","leaveTo","ToastProvider","setData","DeleteModal","idToDelete","setIdToDelete","deleteApi","finally","Divider","Dropdown","trigger","MenuButton","MenuItems","MenuItem","_MenuItem","active","DropdownList","Listbox","ListboxButton","ChevronDown","ListboxOptions","ListboxOption","selected","EmptyCollection","buttonLabel","stroke","vectorEffect","strokeLinecap","strokeLinejoin","Plus","FileUploadInput","onUpload","cursor","files","ar","fileListToArray","DropZone","dropZoneProps","useDropZone","htmlFor","xmlns","dragOverClass","dropEffect","onDrop","__dragOver_cnt__","dataTransfer","promises","traverseFileTree","path","resolve","isFile","file","defineProperty","isDirectory","dirReader","createReader","readEntries","results","entry","all","filesArrays","flat","webkitGetAsEntry","allFiles","onDragOver","onDragEnter","el","cnt","_onDragEnter","onDragLeave","_onDragLeave","FormItem","direction","Styles","INPUT_UNSTYLED","INPUT","delimiters","setText","splice","onBlur","isEmpty","indexOf","pop","Link","underline","underlineClass","MenuList","MenuListItem","MessageBox","defaultIcon","titleColor","textColor","bgColor","ErrorBox","InfoBox","WarningBox","SuccessBox","DefaultBox","Modal","TransitionChild","unmount","DialogPanel","ModalCloseButton","tabIndex","ModalTitle","showDivider","ModalFooter","ModalBody","numberToString","isNaN","NumberInput","noScroll","noSpinners","onWheel","blur","num","parseFloat","Spinner","Variants","soft","SpinnerVariants","overlayContent","overlayClassName","showCloseButton","triggerClassName","backdropClassName","animationConfig","stiffness","damping","setIsOpen","animationProps","initial","x","animate","exit","y","opacity","scale","getAnimationProps","positionClasses","baseClasses","getPositionClasses","motion","div","transition","RadioOptionAdapter","labelOf","RadioGroup","checkColor","cols","checkIcon","CheckIcon","DefaultCheckIcon","setSelected","selectedId","RadioOption","isHighlighted","setIsHighlighted","isChecked","version","fillRule","SelectBox","clearTitle","ClearIcon","showFilter","setFilter","buttonRef","setButtonWidth","onClear","onFilterChange","onFilterKeyDown","ChevronsUpDownIcon","ListOption","defaultOptionLayout","check","reverse","SelectList","optionLayout","noCheck","optionEquals","useMemo","o1","o2","SelectListOption","SelectStack","Option","SidePanel","panelWidth","backdrop","_panelWidth","setPanelWidth","AnimatePresence","onMouseDown","isDragging","startX","pageX","startWidth","handleMouseMove","deltaX","newWidth","handleMouseUp","CloseButton","sizes","Switch","UISwitch","Table","RowSkeleton","columns","_","TBody","rows","TR","useTabs","applyCurrentTab","newTabs","newTab","Tabs","navigate","_tabs","_setTabs","select","TabsBar","actions","TabsPanel","isValidElement","Textarea","setCurrentValue","Property","watchers","watcher","watch","w","createCompositeStateProvider","StateClass","Context","consume","_current","withConsumer","useCompositeState","useGetCompositeStateProperty","property","useSetCompositeStateProperty","useWatchCompositeStateProperty","useSlot","slot","useWatchSlot","useDefineSlot","SharedState","addWatcher","useWatchSharedState","state","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","SharedValue","useSharedValue","initialValue"],"mappings":"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"}
|