@vertesia/ui 0.69.0 → 0.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/core/components/shadcn/command.js.map +1 -1
- package/lib/esm/core/components/shadcn/tabs.js +13 -8
- package/lib/esm/core/components/shadcn/tabs.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +19 -18
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
- package/lib/esm/router/path.js +4 -1
- package/lib/esm/router/path.js.map +1 -1
- package/lib/esm/session/auth/useCurrentTenant.js +63 -0
- package/lib/esm/session/auth/useCurrentTenant.js.map +1 -0
- package/lib/esm/session/index.js +1 -0
- package/lib/esm/session/index.js.map +1 -1
- package/lib/esm/shell/SplashScreen.js +10 -3
- package/lib/esm/shell/SplashScreen.js.map +1 -1
- package/lib/esm/shell/VertesiaShell.js +2 -2
- package/lib/esm/shell/VertesiaShell.js.map +1 -1
- package/lib/esm/shell/login/InviteAcceptModal.js +29 -12
- package/lib/esm/shell/login/InviteAcceptModal.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/core/components/Avatar.d.ts +1 -0
- package/lib/types/core/components/Avatar.d.ts.map +1 -0
- package/lib/types/core/components/Badge.d.ts +1 -0
- package/lib/types/core/components/Badge.d.ts.map +1 -0
- package/lib/types/core/components/Button.d.ts +1 -0
- package/lib/types/core/components/Button.d.ts.map +1 -0
- package/lib/types/core/components/Center.d.ts +1 -0
- package/lib/types/core/components/Center.d.ts.map +1 -0
- package/lib/types/core/components/ComboBox.d.ts +1 -0
- package/lib/types/core/components/ComboBox.d.ts.map +1 -0
- package/lib/types/core/components/ConfirmModal.d.ts +1 -0
- package/lib/types/core/components/ConfirmModal.d.ts.map +1 -0
- package/lib/types/core/components/DeleteModal.d.ts +1 -0
- package/lib/types/core/components/DeleteModal.d.ts.map +1 -0
- package/lib/types/core/components/Divider.d.ts +1 -0
- package/lib/types/core/components/Divider.d.ts.map +1 -0
- package/lib/types/core/components/Dropdown.d.ts +1 -0
- package/lib/types/core/components/Dropdown.d.ts.map +1 -0
- package/lib/types/core/components/DropdownList.d.ts +1 -0
- package/lib/types/core/components/DropdownList.d.ts.map +1 -0
- package/lib/types/core/components/EmptyCollection.d.ts +1 -0
- package/lib/types/core/components/EmptyCollection.d.ts.map +1 -0
- package/lib/types/core/components/FileUpload.d.ts +1 -0
- package/lib/types/core/components/FileUpload.d.ts.map +1 -0
- package/lib/types/core/components/FormItem.d.ts +1 -0
- package/lib/types/core/components/FormItem.d.ts.map +1 -0
- package/lib/types/core/components/InputList.d.ts +1 -0
- package/lib/types/core/components/InputList.d.ts.map +1 -0
- package/lib/types/core/components/Link.d.ts +1 -0
- package/lib/types/core/components/Link.d.ts.map +1 -0
- package/lib/types/core/components/MenuList.d.ts +1 -0
- package/lib/types/core/components/MenuList.d.ts.map +1 -0
- package/lib/types/core/components/MessageBox.d.ts +1 -0
- package/lib/types/core/components/MessageBox.d.ts.map +1 -0
- package/lib/types/core/components/Modal.d.ts +1 -0
- package/lib/types/core/components/Modal.d.ts.map +1 -0
- package/lib/types/core/components/NumberInput.d.ts +1 -0
- package/lib/types/core/components/NumberInput.d.ts.map +1 -0
- package/lib/types/core/components/Portal.d.ts +1 -0
- package/lib/types/core/components/Portal.d.ts.map +1 -0
- package/lib/types/core/components/RadioGroup.d.ts +1 -0
- package/lib/types/core/components/RadioGroup.d.ts.map +1 -0
- package/lib/types/core/components/SelectBox.d.ts +1 -0
- package/lib/types/core/components/SelectBox.d.ts.map +1 -0
- package/lib/types/core/components/SelectList.d.ts +1 -0
- package/lib/types/core/components/SelectList.d.ts.map +1 -0
- package/lib/types/core/components/SelectStack.d.ts +1 -0
- package/lib/types/core/components/SelectStack.d.ts.map +1 -0
- package/lib/types/core/components/SidePanel.d.ts +1 -0
- package/lib/types/core/components/SidePanel.d.ts.map +1 -0
- package/lib/types/core/components/Spinner.d.ts +1 -0
- package/lib/types/core/components/Spinner.d.ts.map +1 -0
- package/lib/types/core/components/Switch.d.ts +1 -0
- package/lib/types/core/components/Switch.d.ts.map +1 -0
- package/lib/types/core/components/Textarea.d.ts +1 -0
- package/lib/types/core/components/Textarea.d.ts.map +1 -0
- package/lib/types/core/components/index.d.ts +1 -0
- package/lib/types/core/components/index.d.ts.map +1 -0
- package/lib/types/core/components/libs/utils.d.ts +1 -0
- package/lib/types/core/components/libs/utils.d.ts.map +1 -0
- package/lib/types/core/components/libs/visuallyHidden.d.ts +1 -0
- package/lib/types/core/components/libs/visuallyHidden.d.ts.map +1 -0
- package/lib/types/core/components/popup/Popup.d.ts +1 -0
- package/lib/types/core/components/popup/Popup.d.ts.map +1 -0
- package/lib/types/core/components/popup/PopupController.d.ts +1 -0
- package/lib/types/core/components/popup/PopupController.d.ts.map +1 -0
- package/lib/types/core/components/popup/index.d.ts +1 -0
- package/lib/types/core/components/popup/index.d.ts.map +1 -0
- package/lib/types/core/components/popup/position.d.ts +1 -0
- package/lib/types/core/components/popup/position.d.ts.map +1 -0
- package/lib/types/core/components/popup/utils.d.ts +1 -0
- package/lib/types/core/components/popup/utils.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/breadcrumb.d.ts +1 -0
- package/lib/types/core/components/shadcn/breadcrumb.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/button.d.ts +1 -0
- package/lib/types/core/components/shadcn/button.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/calendar.d.ts +1 -0
- package/lib/types/core/components/shadcn/calendar.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/card.d.ts +1 -0
- package/lib/types/core/components/shadcn/card.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/checkbox.d.ts +1 -0
- package/lib/types/core/components/shadcn/checkbox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/command.d.ts +9 -72
- package/lib/types/core/components/shadcn/command.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/dialog.d.ts +1 -0
- package/lib/types/core/components/shadcn/dialog.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/DynamicLabel.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/DynamicLabel.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/animateChangeInHeight.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/animateChangeInHeight.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/StringListCombobox.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/StringListCombobox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/TextCombobox.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/TextCombobox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/comboBox.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/comboBox/comboBox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filter/SelectFilter.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/filter/SelectFilter.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filter/StringListFilter.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/filter/StringListFilter.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filter/TextFilter.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/filter/TextFilter.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filter/dateFilter.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/filter/dateFilter.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filter-styles.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/filter-styles.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/filters.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/filters.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/index.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/index.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/filters/types.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/types.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/heading.d.ts +1 -0
- package/lib/types/core/components/shadcn/heading.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/index.d.ts +1 -0
- package/lib/types/core/components/shadcn/index.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/input.d.ts +1 -0
- package/lib/types/core/components/shadcn/input.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/label.d.ts +1 -0
- package/lib/types/core/components/shadcn/label.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/popover.d.ts +1 -0
- package/lib/types/core/components/shadcn/popover.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/selectBox.d.ts +1 -0
- package/lib/types/core/components/shadcn/selectBox.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/separator.d.ts +1 -0
- package/lib/types/core/components/shadcn/separator.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/tabs.d.ts +5 -1
- package/lib/types/core/components/shadcn/tabs.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/text.d.ts +1 -0
- package/lib/types/core/components/shadcn/text.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/theme/ThemeProvider.d.ts +1 -0
- package/lib/types/core/components/shadcn/theme/ThemeProvider.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts +1 -0
- package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts.map +1 -0
- package/lib/types/core/components/shadcn/tooltip.d.ts +1 -0
- package/lib/types/core/components/shadcn/tooltip.d.ts.map +1 -0
- package/lib/types/core/components/styles.d.ts +1 -0
- package/lib/types/core/components/styles.d.ts.map +1 -0
- package/lib/types/core/components/table/index.d.ts +1 -0
- package/lib/types/core/components/table/index.d.ts.map +1 -0
- package/lib/types/core/components/tabs/Tabs.d.ts +1 -0
- package/lib/types/core/components/tabs/Tabs.d.ts.map +1 -0
- package/lib/types/core/components/tabs/TabsContext.d.ts +1 -0
- package/lib/types/core/components/tabs/TabsContext.d.ts.map +1 -0
- package/lib/types/core/components/tabs/index.d.ts +1 -0
- package/lib/types/core/components/tabs/index.d.ts.map +1 -0
- package/lib/types/core/components/toast/NotificationPanel.d.ts +1 -0
- package/lib/types/core/components/toast/NotificationPanel.d.ts.map +1 -0
- package/lib/types/core/components/toast/ToastContext.d.ts +1 -0
- package/lib/types/core/components/toast/ToastContext.d.ts.map +1 -0
- package/lib/types/core/components/toast/ToastProps.d.ts +1 -0
- package/lib/types/core/components/toast/ToastProps.d.ts.map +1 -0
- package/lib/types/core/components/toast/ToastProvider.d.ts +1 -0
- package/lib/types/core/components/toast/ToastProvider.d.ts.map +1 -0
- package/lib/types/core/components/toast/index.d.ts +1 -0
- package/lib/types/core/components/toast/index.d.ts.map +1 -0
- package/lib/types/core/hooks/CompositeState.d.ts +1 -0
- package/lib/types/core/hooks/CompositeState.d.ts.map +1 -0
- package/lib/types/core/hooks/SharedState.d.ts +1 -0
- package/lib/types/core/hooks/SharedState.d.ts.map +1 -0
- package/lib/types/core/hooks/index.d.ts +1 -0
- package/lib/types/core/hooks/index.d.ts.map +1 -0
- package/lib/types/core/hooks/useClickOutside.d.ts +1 -0
- package/lib/types/core/hooks/useClickOutside.d.ts.map +1 -0
- package/lib/types/core/hooks/useCopyToClipboard.d.ts +1 -0
- package/lib/types/core/hooks/useCopyToClipboard.d.ts.map +1 -0
- package/lib/types/core/hooks/useDarkMode.d.ts +1 -0
- package/lib/types/core/hooks/useDarkMode.d.ts.map +1 -0
- package/lib/types/core/hooks/useDebounce.d.ts +1 -0
- package/lib/types/core/hooks/useDebounce.d.ts.map +1 -0
- package/lib/types/core/hooks/useEventSource.d.ts +1 -0
- package/lib/types/core/hooks/useEventSource.d.ts.map +1 -0
- package/lib/types/core/hooks/useFetch.d.ts +1 -0
- package/lib/types/core/hooks/useFetch.d.ts.map +1 -0
- package/lib/types/core/hooks/useFlag.d.ts +1 -0
- package/lib/types/core/hooks/useFlag.d.ts.map +1 -0
- package/lib/types/core/hooks/useIntersectionObserver.d.ts +1 -0
- package/lib/types/core/hooks/useIntersectionObserver.d.ts.map +1 -0
- package/lib/types/core/hooks/useIsFistRendering.d.ts +1 -0
- package/lib/types/core/hooks/useIsFistRendering.d.ts.map +1 -0
- package/lib/types/core/hooks/useSafeLayoutEffect.d.ts +1 -0
- package/lib/types/core/hooks/useSafeLayoutEffect.d.ts.map +1 -0
- package/lib/types/core/hooks/useSharedValue.d.ts +1 -0
- package/lib/types/core/hooks/useSharedValue.d.ts.map +1 -0
- package/lib/types/core/index.d.ts +1 -0
- package/lib/types/core/index.d.ts.map +1 -0
- package/lib/types/core/utils/cn.d.ts +1 -0
- package/lib/types/core/utils/cn.d.ts.map +1 -0
- package/lib/types/core/utils/index.d.ts +1 -0
- package/lib/types/core/utils/index.d.ts.map +1 -0
- package/lib/types/env/index.d.ts +1 -0
- package/lib/types/env/index.d.ts.map +1 -0
- package/lib/types/features/activity-doc/ActivityDoc.d.ts +1 -0
- package/lib/types/features/activity-doc/ActivityDoc.d.ts.map +1 -0
- package/lib/types/features/activity-doc/index.d.ts +1 -0
- package/lib/types/features/activity-doc/index.d.ts.map +1 -0
- package/lib/types/features/agent/PayloadBuilder.d.ts +1 -0
- package/lib/types/features/agent/PayloadBuilder.d.ts.map +1 -0
- package/lib/types/features/agent/chat/AnimatedThinkingDots.d.ts +1 -0
- package/lib/types/features/agent/chat/AnimatedThinkingDots.d.ts.map +1 -0
- package/lib/types/features/agent/chat/JumpingDots.d.ts +1 -0
- package/lib/types/features/agent/chat/JumpingDots.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/MessagesContainer.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/MessagesContainer.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/SlideInPanel.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/SlideInPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingMessages.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingMessages.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/StackedMessages.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/StackedMessages.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts.map +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts +1 -0
- package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts.map +1 -0
- package/lib/types/features/agent/chat/SlidingThinkingIndicator.d.ts +1 -0
- package/lib/types/features/agent/chat/SlidingThinkingIndicator.d.ts.map +1 -0
- package/lib/types/features/agent/chat/WaitingMessages.d.ts +1 -0
- package/lib/types/features/agent/chat/WaitingMessages.d.ts.map +1 -0
- package/lib/types/features/agent/chat/index.d.ts +1 -0
- package/lib/types/features/agent/chat/index.d.ts.map +1 -0
- package/lib/types/features/agent/index.d.ts +1 -0
- package/lib/types/features/agent/index.d.ts.map +1 -0
- package/lib/types/features/errors/PanelErrorBoundary.d.ts +1 -0
- package/lib/types/features/errors/PanelErrorBoundary.d.ts.map +1 -0
- package/lib/types/features/errors/RowErrorBoundary.d.ts +1 -0
- package/lib/types/features/errors/RowErrorBoundary.d.ts.map +1 -0
- package/lib/types/features/errors/VertesiaErrorBoundary.d.ts +1 -0
- package/lib/types/features/errors/VertesiaErrorBoundary.d.ts.map +1 -0
- package/lib/types/features/errors/WidgetErrorBoundary.d.ts +1 -0
- package/lib/types/features/errors/WidgetErrorBoundary.d.ts.map +1 -0
- package/lib/types/features/errors/index.d.ts +1 -0
- package/lib/types/features/errors/index.d.ts.map +1 -0
- package/lib/types/features/facets/DocumentsFacetsNav.d.ts +1 -0
- package/lib/types/features/facets/DocumentsFacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/EnvironmentFacet.d.ts +1 -0
- package/lib/types/features/facets/EnvironmentFacet.d.ts.map +1 -0
- package/lib/types/features/facets/FacetsNav.d.ts +1 -0
- package/lib/types/features/facets/FacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/RunsFacetsNav.d.ts +1 -0
- package/lib/types/features/facets/RunsFacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/StringFacet.d.ts +1 -0
- package/lib/types/features/facets/StringFacet.d.ts.map +1 -0
- package/lib/types/features/facets/StringListFacet.d.ts +1 -0
- package/lib/types/features/facets/StringListFacet.d.ts.map +1 -0
- package/lib/types/features/facets/TypeFacet.d.ts +1 -0
- package/lib/types/features/facets/TypeFacet.d.ts.map +1 -0
- package/lib/types/features/facets/VEnvironmentFacet.d.ts +1 -0
- package/lib/types/features/facets/VEnvironmentFacet.d.ts.map +1 -0
- package/lib/types/features/facets/VFacetsNav.d.ts +1 -0
- package/lib/types/features/facets/VFacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/VInteractionFacet.d.ts +1 -0
- package/lib/types/features/facets/VInteractionFacet.d.ts.map +1 -0
- package/lib/types/features/facets/VStringFacet.d.ts +1 -0
- package/lib/types/features/facets/VStringFacet.d.ts.map +1 -0
- package/lib/types/features/facets/VTypeFacet.d.ts +1 -0
- package/lib/types/features/facets/VTypeFacet.d.ts.map +1 -0
- package/lib/types/features/facets/VUserFacet.d.ts +1 -0
- package/lib/types/features/facets/VUserFacet.d.ts.map +1 -0
- package/lib/types/features/facets/WorkflowExecutionsFacetsNav.d.ts +1 -0
- package/lib/types/features/facets/WorkflowExecutionsFacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/index.d.ts +1 -0
- package/lib/types/features/facets/index.d.ts.map +1 -0
- package/lib/types/features/facets/utils.d.ts +1 -0
- package/lib/types/features/facets/utils.d.ts.map +1 -0
- package/lib/types/features/index.d.ts +1 -0
- package/lib/types/features/index.d.ts.map +1 -0
- package/lib/types/features/layout/GenericPageNavHeader.d.ts +1 -0
- package/lib/types/features/layout/GenericPageNavHeader.d.ts.map +1 -0
- package/lib/types/features/layout/NotFoundView.d.ts +1 -0
- package/lib/types/features/layout/NotFoundView.d.ts.map +1 -0
- package/lib/types/features/layout/index.d.ts +1 -0
- package/lib/types/features/layout/index.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/DownloadPopover.d.ts +1 -0
- package/lib/types/features/magic-pdf/DownloadPopover.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/MagicPdfView.d.ts +1 -0
- package/lib/types/features/magic-pdf/MagicPdfView.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/PageSlider.d.ts +1 -0
- package/lib/types/features/magic-pdf/PageSlider.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/PdfPageProvider.d.ts +1 -0
- package/lib/types/features/magic-pdf/PdfPageProvider.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/TextPageView.d.ts +1 -0
- package/lib/types/features/magic-pdf/TextPageView.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/index.d.ts +1 -0
- package/lib/types/features/magic-pdf/index.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/types.d.ts +1 -0
- package/lib/types/features/magic-pdf/types.d.ts.map +1 -0
- package/lib/types/features/magic-pdf/useResizeOnDrag.d.ts +1 -0
- package/lib/types/features/magic-pdf/useResizeOnDrag.d.ts.map +1 -0
- package/lib/types/features/permissions/SecureButton.d.ts +1 -0
- package/lib/types/features/permissions/SecureButton.d.ts.map +1 -0
- package/lib/types/features/permissions/SecureSidebarItem.d.ts +1 -0
- package/lib/types/features/permissions/SecureSidebarItem.d.ts.map +1 -0
- package/lib/types/features/permissions/UserPermissionsProvider.d.ts +1 -0
- package/lib/types/features/permissions/UserPermissionsProvider.d.ts.map +1 -0
- package/lib/types/features/permissions/helpers.d.ts +1 -0
- package/lib/types/features/permissions/helpers.d.ts.map +1 -0
- package/lib/types/features/permissions/index.d.ts +1 -0
- package/lib/types/features/permissions/index.d.ts.map +1 -0
- package/lib/types/features/store/collections/BrowseCollectionView.d.ts +1 -0
- package/lib/types/features/store/collections/BrowseCollectionView.d.ts.map +1 -0
- package/lib/types/features/store/collections/CollectionsTable.d.ts +1 -0
- package/lib/types/features/store/collections/CollectionsTable.d.ts.map +1 -0
- package/lib/types/features/store/collections/CreateCollection.d.ts +1 -0
- package/lib/types/features/store/collections/CreateCollection.d.ts.map +1 -0
- package/lib/types/features/store/collections/EditCollectionView.d.ts +1 -0
- package/lib/types/features/store/collections/EditCollectionView.d.ts.map +1 -0
- package/lib/types/features/store/collections/SelectCollection.d.ts +1 -0
- package/lib/types/features/store/collections/SelectCollection.d.ts.map +1 -0
- package/lib/types/features/store/collections/index.d.ts +1 -0
- package/lib/types/features/store/collections/index.d.ts.map +1 -0
- package/lib/types/features/store/index.d.ts +1 -0
- package/lib/types/features/store/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/DocumentPreviewPanel.d.ts +1 -0
- package/lib/types/features/store/objects/DocumentPreviewPanel.d.ts.map +1 -0
- package/lib/types/features/store/objects/DocumentSearchResults.d.ts +1 -0
- package/lib/types/features/store/objects/DocumentSearchResults.d.ts.map +1 -0
- package/lib/types/features/store/objects/DocumentSelectionProvider.d.ts +1 -0
- package/lib/types/features/store/objects/DocumentSelectionProvider.d.ts.map +1 -0
- package/lib/types/features/store/objects/DocumentTable.d.ts +1 -0
- package/lib/types/features/store/objects/DocumentTable.d.ts.map +1 -0
- package/lib/types/features/store/objects/ExportPropertiesModal.d.ts +1 -0
- package/lib/types/features/store/objects/ExportPropertiesModal.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/ContentDispositionButton.d.ts +1 -0
- package/lib/types/features/store/objects/components/ContentDispositionButton.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/ContentOverview.d.ts +1 -0
- package/lib/types/features/store/objects/components/ContentOverview.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/DocumentIcon.d.ts +1 -0
- package/lib/types/features/store/objects/components/DocumentIcon.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/DocumentInput.d.ts +1 -0
- package/lib/types/features/store/objects/components/DocumentInput.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts +1 -0
- package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts +1 -0
- package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/SelectDocument.d.ts +1 -0
- package/lib/types/features/store/objects/components/SelectDocument.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/SelectDocumentModal.d.ts +1 -0
- package/lib/types/features/store/objects/components/SelectDocumentModal.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts +1 -0
- package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/index.d.ts +1 -0
- package/lib/types/features/store/objects/components/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/components/useDownloadObject.d.ts +1 -0
- package/lib/types/features/store/objects/components/useDownloadObject.d.ts.map +1 -0
- package/lib/types/features/store/objects/index.d.ts +1 -0
- package/lib/types/features/store/objects/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/layout/DocumentTableColumn.d.ts +1 -0
- package/lib/types/features/store/objects/layout/DocumentTableColumn.d.ts.map +1 -0
- package/lib/types/features/store/objects/layout/documentLayout.d.ts +1 -0
- package/lib/types/features/store/objects/layout/documentLayout.d.ts.map +1 -0
- package/lib/types/features/store/objects/layout/index.d.ts +1 -0
- package/lib/types/features/store/objects/layout/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/layout/renderers.d.ts +1 -0
- package/lib/types/features/store/objects/layout/renderers.d.ts.map +1 -0
- package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts +1 -0
- package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -0
- package/lib/types/features/store/objects/search/DocumentSearchProvider.d.ts +1 -0
- package/lib/types/features/store/objects/search/DocumentSearchProvider.d.ts.map +1 -0
- package/lib/types/features/store/objects/search/index.d.ts +1 -0
- package/lib/types/features/store/objects/search/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts +1 -0
- package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts +1 -0
- package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts +1 -0
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/AddToCollectionAction.d.ts +1 -0
- package/lib/types/features/store/objects/selection/actions/AddToCollectionAction.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts +1 -0
- package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts +1 -0
- package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts +1 -0
- package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts +1 -0
- package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts +1 -0
- package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/StartWorkflowComponent.d.ts +1 -0
- package/lib/types/features/store/objects/selection/actions/StartWorkflowComponent.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/actions/index.d.ts +1 -0
- package/lib/types/features/store/objects/selection/actions/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/selection/index.d.ts +1 -0
- package/lib/types/features/store/objects/selection/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts +1 -0
- package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts.map +1 -0
- package/lib/types/features/store/objects/upload/index.d.ts +1 -0
- package/lib/types/features/store/objects/upload/index.d.ts.map +1 -0
- package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts +1 -0
- package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts.map +1 -0
- package/lib/types/features/store/objects/upload/useUploadHandler.d.ts +1 -0
- package/lib/types/features/store/objects/upload/useUploadHandler.d.ts.map +1 -0
- package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts +1 -0
- package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts.map +1 -0
- package/lib/types/features/store/types/ContentObjectTypesTable.d.ts +1 -0
- package/lib/types/features/store/types/ContentObjectTypesTable.d.ts.map +1 -0
- package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts +1 -0
- package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts.map +1 -0
- package/lib/types/features/store/types/ObjectSchemaEditor.d.ts +1 -0
- package/lib/types/features/store/types/ObjectSchemaEditor.d.ts.map +1 -0
- package/lib/types/features/store/types/SelectContentType.d.ts +1 -0
- package/lib/types/features/store/types/SelectContentType.d.ts.map +1 -0
- package/lib/types/features/store/types/SelectContentTypeModal.d.ts +1 -0
- package/lib/types/features/store/types/SelectContentTypeModal.d.ts.map +1 -0
- package/lib/types/features/store/types/TableLayoutEditor.d.ts +1 -0
- package/lib/types/features/store/types/TableLayoutEditor.d.ts.map +1 -0
- package/lib/types/features/store/types/index.d.ts +1 -0
- package/lib/types/features/store/types/index.d.ts.map +1 -0
- package/lib/types/features/store/types/search/ObjectTypeSearchContext.d.ts +1 -0
- package/lib/types/features/store/types/search/ObjectTypeSearchContext.d.ts.map +1 -0
- package/lib/types/features/store/types/search/ObjectTypeSearchProvider.d.ts +1 -0
- package/lib/types/features/store/types/search/ObjectTypeSearchProvider.d.ts.map +1 -0
- package/lib/types/features/store/types/search/index.d.ts +1 -0
- package/lib/types/features/store/types/search/index.d.ts.map +1 -0
- package/lib/types/features/user/UserAvatar.d.ts +1 -0
- package/lib/types/features/user/UserAvatar.d.ts.map +1 -0
- package/lib/types/features/user/UserInfo.d.ts +1 -0
- package/lib/types/features/user/UserInfo.d.ts.map +1 -0
- package/lib/types/features/user/index.d.ts +1 -0
- package/lib/types/features/user/index.d.ts.map +1 -0
- package/lib/types/features/utils/index.d.ts +1 -0
- package/lib/types/features/utils/index.d.ts.map +1 -0
- package/lib/types/features/utils/mimeType.d.ts +1 -0
- package/lib/types/features/utils/mimeType.d.ts.map +1 -0
- package/lib/types/features/utils/rendition.d.ts +1 -0
- package/lib/types/features/utils/rendition.d.ts.map +1 -0
- package/lib/types/features/utils/text.d.ts +1 -0
- package/lib/types/features/utils/text.d.ts.map +1 -0
- package/lib/types/layout/AppLayout.d.ts +1 -0
- package/lib/types/layout/AppLayout.d.ts.map +1 -0
- package/lib/types/layout/FullHeightLayout.d.ts +1 -0
- package/lib/types/layout/FullHeightLayout.d.ts.map +1 -0
- package/lib/types/layout/Navbar.d.ts +1 -0
- package/lib/types/layout/Navbar.d.ts.map +1 -0
- package/lib/types/layout/Sidebar.d.ts +1 -0
- package/lib/types/layout/Sidebar.d.ts.map +1 -0
- package/lib/types/layout/SidebarContext.d.ts +1 -0
- package/lib/types/layout/SidebarContext.d.ts.map +1 -0
- package/lib/types/layout/TitleBar.d.ts +1 -0
- package/lib/types/layout/TitleBar.d.ts.map +1 -0
- package/lib/types/layout/index.d.ts +1 -0
- package/lib/types/layout/index.d.ts.map +1 -0
- package/lib/types/router/FixLinks.d.ts +1 -0
- package/lib/types/router/FixLinks.d.ts.map +1 -0
- package/lib/types/router/HistoryNavigator.d.ts +1 -0
- package/lib/types/router/HistoryNavigator.d.ts.map +1 -0
- package/lib/types/router/Nav.d.ts +1 -0
- package/lib/types/router/Nav.d.ts.map +1 -0
- package/lib/types/router/NestedNavigationContext.d.ts +1 -0
- package/lib/types/router/NestedNavigationContext.d.ts.map +1 -0
- package/lib/types/router/NestedRouterProvider.d.ts +1 -0
- package/lib/types/router/NestedRouterProvider.d.ts.map +1 -0
- package/lib/types/router/PathMatcher.d.ts +1 -0
- package/lib/types/router/PathMatcher.d.ts.map +1 -0
- package/lib/types/router/PathWithParams.d.ts +1 -0
- package/lib/types/router/PathWithParams.d.ts.map +1 -0
- package/lib/types/router/Route404.d.ts +1 -0
- package/lib/types/router/Route404.d.ts.map +1 -0
- package/lib/types/router/RouteComponent.d.ts +1 -0
- package/lib/types/router/RouteComponent.d.ts.map +1 -0
- package/lib/types/router/Router.d.ts +1 -0
- package/lib/types/router/Router.d.ts.map +1 -0
- package/lib/types/router/RouterProvider.d.ts +1 -0
- package/lib/types/router/RouterProvider.d.ts.map +1 -0
- package/lib/types/router/index.d.ts +1 -0
- package/lib/types/router/index.d.ts.map +1 -0
- package/lib/types/router/path.d.ts +1 -0
- package/lib/types/router/path.d.ts.map +1 -0
- package/lib/types/session/TypeRegistry.d.ts +1 -0
- package/lib/types/session/TypeRegistry.d.ts.map +1 -0
- package/lib/types/session/UserSession.d.ts +1 -0
- package/lib/types/session/UserSession.d.ts.map +1 -0
- package/lib/types/session/UserSessionProvider.d.ts +1 -0
- package/lib/types/session/UserSessionProvider.d.ts.map +1 -0
- package/lib/types/session/auth/composable.d.ts +1 -0
- package/lib/types/session/auth/composable.d.ts.map +1 -0
- package/lib/types/session/auth/firebase.d.ts +1 -0
- package/lib/types/session/auth/firebase.d.ts.map +1 -0
- package/lib/types/session/auth/useAuthState.d.ts +1 -0
- package/lib/types/session/auth/useAuthState.d.ts.map +1 -0
- package/lib/types/session/auth/useCurrentTenant.d.ts +15 -0
- package/lib/types/session/auth/useCurrentTenant.d.ts.map +1 -0
- package/lib/types/session/constants.d.ts +1 -0
- package/lib/types/session/constants.d.ts.map +1 -0
- package/lib/types/session/index.d.ts +2 -0
- package/lib/types/session/index.d.ts.map +1 -0
- package/lib/types/session/useUXTracking.d.ts +1 -0
- package/lib/types/session/useUXTracking.d.ts.map +1 -0
- package/lib/types/shell/SplashScreen.d.ts +4 -1
- package/lib/types/shell/SplashScreen.d.ts.map +1 -0
- package/lib/types/shell/VertesiaShell.d.ts +4 -1
- package/lib/types/shell/VertesiaShell.d.ts.map +1 -0
- package/lib/types/shell/index.d.ts +1 -0
- package/lib/types/shell/index.d.ts.map +1 -0
- package/lib/types/shell/login/EnterpriseSigninButton.d.ts +1 -0
- package/lib/types/shell/login/EnterpriseSigninButton.d.ts.map +1 -0
- package/lib/types/shell/login/GitHubSignInButton.d.ts +1 -0
- package/lib/types/shell/login/GitHubSignInButton.d.ts.map +1 -0
- package/lib/types/shell/login/GoogleSignInButton.d.ts +1 -0
- package/lib/types/shell/login/GoogleSignInButton.d.ts.map +1 -0
- package/lib/types/shell/login/InviteAcceptModal.d.ts +1 -0
- package/lib/types/shell/login/InviteAcceptModal.d.ts.map +1 -0
- package/lib/types/shell/login/MicrosoftSigninButton.d.ts +1 -0
- package/lib/types/shell/login/MicrosoftSigninButton.d.ts.map +1 -0
- package/lib/types/shell/login/PreviewIcon.d.ts +1 -0
- package/lib/types/shell/login/PreviewIcon.d.ts.map +1 -0
- package/lib/types/shell/login/SignInModal.d.ts +1 -0
- package/lib/types/shell/login/SignInModal.d.ts.map +1 -0
- package/lib/types/shell/login/SigninScreen.d.ts +1 -0
- package/lib/types/shell/login/SigninScreen.d.ts.map +1 -0
- package/lib/types/shell/login/SignupForm.d.ts +1 -0
- package/lib/types/shell/login/SignupForm.d.ts.map +1 -0
- package/lib/types/shell/login/TerminalLogin.d.ts +1 -0
- package/lib/types/shell/login/TerminalLogin.d.ts.map +1 -0
- package/lib/types/shell/login/UserInfo.d.ts +1 -0
- package/lib/types/shell/login/UserInfo.d.ts.map +1 -0
- package/lib/types/shell/login/UserSessionMenu.d.ts +1 -0
- package/lib/types/shell/login/UserSessionMenu.d.ts.map +1 -0
- package/lib/types/shell/utils.d.ts +1 -0
- package/lib/types/shell/utils.d.ts.map +1 -0
- package/lib/types/widgets/Progress.d.ts +1 -0
- package/lib/types/widgets/Progress.d.ts.map +1 -0
- package/lib/types/widgets/SvgIcon.d.ts +1 -0
- package/lib/types/widgets/SvgIcon.d.ts.map +1 -0
- package/lib/types/widgets/codemirror/CodeMirrorEditor.d.ts +1 -0
- package/lib/types/widgets/codemirror/CodeMirrorEditor.d.ts.map +1 -0
- package/lib/types/widgets/codemirror/CodemirrorStateSingleton.d.ts +1 -0
- package/lib/types/widgets/codemirror/CodemirrorStateSingleton.d.ts.map +1 -0
- package/lib/types/widgets/codemirror/index.d.ts +1 -0
- package/lib/types/widgets/codemirror/index.d.ts.map +1 -0
- package/lib/types/widgets/form/Form.d.ts +1 -0
- package/lib/types/widgets/form/Form.d.ts.map +1 -0
- package/lib/types/widgets/form/FormContext.d.ts +1 -0
- package/lib/types/widgets/form/FormContext.d.ts.map +1 -0
- package/lib/types/widgets/form/ManagedObject.d.ts +1 -0
- package/lib/types/widgets/form/ManagedObject.d.ts.map +1 -0
- package/lib/types/widgets/form/fields.d.ts +1 -0
- package/lib/types/widgets/form/fields.d.ts.map +1 -0
- package/lib/types/widgets/form/index.d.ts +1 -0
- package/lib/types/widgets/form/index.d.ts.map +1 -0
- package/lib/types/widgets/form/inputs.d.ts +1 -0
- package/lib/types/widgets/form/inputs.d.ts.map +1 -0
- package/lib/types/widgets/form/schema.d.ts +1 -0
- package/lib/types/widgets/form/schema.d.ts.map +1 -0
- package/lib/types/widgets/index.d.ts +1 -0
- package/lib/types/widgets/index.d.ts.map +1 -0
- package/lib/types/widgets/json-view/JSONCode.d.ts +1 -0
- package/lib/types/widgets/json-view/JSONCode.d.ts.map +1 -0
- package/lib/types/widgets/json-view/JSONDisplay.d.ts +1 -0
- package/lib/types/widgets/json-view/JSONDisplay.d.ts.map +1 -0
- package/lib/types/widgets/json-view/JSONView.d.ts +1 -0
- package/lib/types/widgets/json-view/JSONView.d.ts.map +1 -0
- package/lib/types/widgets/json-view/index.d.ts +1 -0
- package/lib/types/widgets/json-view/index.d.ts.map +1 -0
- package/lib/types/widgets/json-view/types.d.ts +1 -0
- package/lib/types/widgets/json-view/types.d.ts.map +1 -0
- package/lib/types/widgets/popover/Popover.d.ts +1 -0
- package/lib/types/widgets/popover/Popover.d.ts.map +1 -0
- package/lib/types/widgets/popover/context.d.ts +1 -0
- package/lib/types/widgets/popover/context.d.ts.map +1 -0
- package/lib/types/widgets/popover/index.d.ts +1 -0
- package/lib/types/widgets/popover/index.d.ts.map +1 -0
- package/lib/types/widgets/popover/slots.d.ts +1 -0
- package/lib/types/widgets/popover/slots.d.ts.map +1 -0
- package/lib/types/widgets/properties/PropertiesView.d.ts +1 -0
- package/lib/types/widgets/properties/PropertiesView.d.ts.map +1 -0
- package/lib/types/widgets/properties/index.d.ts +1 -0
- package/lib/types/widgets/properties/index.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/JSONSchemaEditorModal.d.ts +1 -0
- package/lib/types/widgets/schema-editor/JSONSchemaEditorModal.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/ManagedSchema.d.ts +1 -0
- package/lib/types/widgets/schema-editor/ManagedSchema.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/editor/Editable.d.ts +1 -0
- package/lib/types/widgets/schema-editor/editor/Editable.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/editor/EditableSchemaProperty.d.ts +1 -0
- package/lib/types/widgets/schema-editor/editor/EditableSchemaProperty.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts +1 -0
- package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/editor/PropertyViewer.d.ts +1 -0
- package/lib/types/widgets/schema-editor/editor/PropertyViewer.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/editor/SchemaContext.d.ts +1 -0
- package/lib/types/widgets/schema-editor/editor/SchemaContext.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts +1 -0
- package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/index.d.ts +1 -0
- package/lib/types/widgets/schema-editor/index.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/json-schema4-utils.d.ts +1 -0
- package/lib/types/widgets/schema-editor/json-schema4-utils.d.ts.map +1 -0
- package/lib/types/widgets/schema-editor/type-signature.d.ts +1 -0
- package/lib/types/widgets/schema-editor/type-signature.d.ts.map +1 -0
- package/lib/types/widgets/upload/DropZone.d.ts +1 -0
- package/lib/types/widgets/upload/DropZone.d.ts.map +1 -0
- package/lib/types/widgets/upload/UploadResultCategory.d.ts +1 -0
- package/lib/types/widgets/upload/UploadResultCategory.d.ts.map +1 -0
- package/lib/types/widgets/upload/UploadSummary.d.ts +1 -0
- package/lib/types/widgets/upload/UploadSummary.d.ts.map +1 -0
- package/lib/types/widgets/upload/index.d.ts +1 -0
- package/lib/types/widgets/upload/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/Attributes/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/components/Attributes/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/CDataTag/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/components/CDataTag/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/CollapseIcon/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/components/CollapseIcon/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/CommentTag/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/components/CommentTag/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/DeclarationTag/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/components/DeclarationTag/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/Elements/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/components/Elements/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/InvalidXml/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/components/InvalidXml/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/Tag/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/components/Tag/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/TextElement/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/components/TextElement/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/XMLViewer.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/components/XMLViewer.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/components/types.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/components/types.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/constants/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/constants/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/context/xml-viewer-context.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/context/xml-viewer-context.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/helpers/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/helpers/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/hooks/useCollapsible.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/hooks/useCollapsible.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/hooks/useXMLViewer.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/hooks/useXMLViewer.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/index.d.ts.map +1 -0
- package/lib/types/widgets/xml-viewer/types/index.d.ts +1 -0
- package/lib/types/widgets/xml-viewer/types/index.d.ts.map +1 -0
- package/lib/vertesia-ui-core.js +1 -1
- package/lib/vertesia-ui-core.js.map +1 -1
- package/lib/vertesia-ui-features.js +1 -1
- package/lib/vertesia-ui-features.js.map +1 -1
- package/lib/vertesia-ui-router.js +1 -1
- package/lib/vertesia-ui-router.js.map +1 -1
- package/lib/vertesia-ui-session.js +1 -1
- package/lib/vertesia-ui-session.js.map +1 -1
- package/lib/vertesia-ui-shell.js +1 -1
- package/lib/vertesia-ui-shell.js.map +1 -1
- package/package.json +6 -5
- package/src/core/components/shadcn/command.tsx +37 -14
- package/src/core/components/shadcn/tabs.tsx +31 -14
- package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +20 -17
- package/src/router/path.ts +4 -1
- package/src/session/auth/useCurrentTenant.ts +73 -0
- package/src/session/index.ts +1 -0
- package/src/shell/SplashScreen.tsx +36 -3
- package/src/shell/VertesiaShell.tsx +4 -2
- package/src/shell/login/InviteAcceptModal.tsx +36 -20
- package/tsconfig.dist.json +20 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vertesia-ui-shell.js","sources":["esm/shell/login/InviteAcceptModal.js","esm/shell/login/EnterpriseSigninButton.js","esm/shell/login/GitHubSignInButton.js","esm/shell/login/GoogleSignInButton.js","esm/shell/login/MicrosoftSigninButton.js","esm/shell/login/SignupForm.js","esm/shell/login/SigninScreen.js","esm/shell/login/TerminalLogin.js","esm/shell/login/SignInModal.js","esm/shell/login/UserInfo.js","esm/shell/login/UserSessionMenu.js","esm/shell/utils.js","esm/shell/SplashScreen.js","esm/shell/VertesiaShell.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Button, Modal, ModalBody, ModalTitle } from \"@vertesia/ui/core\";\nimport { useEffect, useState } from \"react\";\nimport { useUserSession } from \"@vertesia/ui/session\";\nexport function InviteAcceptModal() {\n const session = useUserSession();\n const { client, account } = session;\n const [showModal, setShowModal] = useState(false);\n const [invites, setInvites] = useState([]);\n useEffect(() => {\n client.account.listInvites().then(invites => {\n if (invites.length > 0) {\n console.log(\"Got invites - showing modal\");\n setInvites(invites);\n /*toast({\n status: 'info',\n title: 'You have pending invites',\n description: 'Click the button on the top right to review them.'\n })*/\n setShowModal(true);\n }\n });\n }, [account?.id]);\n const closeModal = () => setShowModal(false);\n const accept = async (invite) => {\n await client.account.acceptInvite(invite.id);\n await session.fetchAccounts();\n const remainingInvites = invites.filter(i => i.id !== invite.id);\n setInvites(remainingInvites);\n if (remainingInvites.length === 0) {\n closeModal();\n }\n };\n const reject = async (invite) => {\n await client.account.rejectInvite(invite.id);\n const remainingInvites = invites.filter(i => i.id !== invite.id);\n setInvites(remainingInvites);\n if (remainingInvites.length === 0) {\n closeModal();\n }\n };\n const inviteList = invites.map(invite => (_jsxs(\"div\", { className: \"flex flex-row w-full justify-between border rounded-sm px-2 py-2 \", children: [_jsxs(\"div\", { className: \"flex flex-col\", children: [_jsx(\"div\", { className: \"w-full font-semibold\", children: invite.data.account.name }), _jsxs(\"div\", { className: \"text-xs\", children: [\"Role: \", invite.data.role] }), _jsxs(\"div\", { className: \"text-xs\", children: [\"by \", invite.data.invitedBy.name] })] }), _jsxs(\"div\", { className: \"flex flex-col gap-4\", children: [_jsx(Button, { size: 'xs', onClick: () => accept(invite), children: \"Accept\" }), \" \", _jsx(Button, { size: 'xs', variant: \"secondary\", onClick: () => reject(invite), children: \"Reject\" })] })] }, invite.id)));\n return (_jsx(\"div\", { children: _jsxs(Modal, { isOpen: showModal, onClose: closeModal, children: [_jsx(ModalTitle, { children: \"Review Invites\" }), _jsxs(ModalBody, { children: [_jsx(\"div\", { className: \"text-sm pb-4\", children: \"You have received the following invites to join other accounts. Please review and accept or declined them.\" }), inviteList] })] }) }));\n}\n//# sourceMappingURL=InviteAcceptModal.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Button, Input, Spinner, useToast } from \"@vertesia/ui/core\";\nimport { Env } from \"@vertesia/ui/env\";\nimport { getFirebaseAuth, setFirebaseTenant, useUXTracking } from \"@vertesia/ui/session\";\nimport { GoogleAuthProvider, OAuthProvider, signInWithRedirect } from \"firebase/auth\";\nimport { useState } from \"react\";\nfunction getProvider(redirectTo) {\n const providerType = Env.firebase.providerType;\n switch (providerType) {\n case \"oidc\":\n return new OAuthProvider(\"oidc.main\");\n case \"google\": {\n let redirectPath = redirectTo || window.location.pathname || '/';\n if (redirectPath[0] !== '/') {\n redirectPath = '/' + redirectPath;\n }\n const provider = new GoogleAuthProvider();\n provider.addScope('profile');\n provider.addScope('email');\n provider.setCustomParameters({\n prompt: 'select_account',\n redirect_uri: window.location.origin + redirectPath\n });\n return provider;\n }\n case \"microsoft\":\n return new OAuthProvider(\"microsoft.com\");\n case \"github\":\n return new OAuthProvider(\"github.com\");\n default:\n return new OAuthProvider(\"oidc.main\");\n }\n}\nexport default function EnterpriseSigninButton({ redirectTo }) {\n const [isLoading, setIsLoading] = useState(false);\n const { trackEvent } = useUXTracking();\n const [email, setEmail] = useState(\"\");\n const toast = useToast();\n const signIn = async () => {\n if (!email)\n return;\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!emailRegex.test(email)) {\n toast({\n title: \"Invalid email address\",\n status: \"error\",\n duration: 5000,\n });\n return;\n }\n // Env.firebase.tenantEmail = email;\n setIsLoading(true);\n setFirebaseTenant(email).then((data) => {\n if (!data) {\n toast({\n title: \"Tenant not found\",\n status: \"error\",\n duration: 5000,\n });\n setIsLoading(false);\n return;\n }\n localStorage.setItem(\"tenantName\", data.name ?? \"\");\n const provider = getProvider(redirectTo);\n trackEvent(\"enterprise_signin\", {\n firebaseTenantName: data.name,\n });\n Env.logger.info('Enterprise single sign-in', {\n vertesia: {\n email: email,\n firebaseTenantName: data.name,\n firebaseTenantId: data.firebaseTenantId,\n },\n });\n signInWithRedirect(getFirebaseAuth(), provider);\n setIsLoading(false);\n });\n };\n return (_jsxs(_Fragment, { children: [_jsx(Input, { value: email, onChange: setEmail, placeholder: \"Enter your enterprise email\", type: \"email\" }), isLoading ? (_jsx(\"div\", { className: \"w-full flex justify-center\", children: _jsx(Spinner, {}) })) : (_jsx(Button, { variant: \"outline\", onClick: signIn, className: \"w-full mt-2 py-4 flex rounded-lg hover:shadow-sm transition duration-150 text-center\", children: _jsx(\"span\", { className: \"text-sm font-semibold\", children: \"Continue with Enterprise SSO\" }) }))] }));\n}\n//# sourceMappingURL=EnterpriseSigninButton.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { GithubAuthProvider, signInWithRedirect } from \"firebase/auth\";\nimport { getFirebaseAuth } from \"@vertesia/ui/session\";\nimport { Button } from \"@vertesia/ui/core\";\nexport default function GitHubSignInButton({}) {\n const signIn = () => {\n localStorage.removeItem(\"tenantName\");\n //with github can only have one allowed redirect\n const baseUrl = \"https://dengenlabs.firebaseapp.com/__/auth/handler\";\n let redirectPath = baseUrl + window.location.pathname;\n if (redirectPath[0] !== \"/\") {\n redirectPath = \"/\" + redirectPath;\n }\n const provider = new GithubAuthProvider();\n provider.addScope(\"profile\");\n provider.addScope(\"email\");\n /*provider.setCustomParameters({\n redirect_uri: redirectPath,\n });*/\n signInWithRedirect(getFirebaseAuth(), provider);\n };\n return (_jsxs(Button, { variant: \"outline\", onClick: signIn, className: \"w-full py-5 flex rounded-lg hover:shadow-sm transition duration-150 text-center mb-2\", children: [_jsx(\"img\", { className: \"size-6 bg-white rounded-full\", src: \"https://www.svgrepo.com/show/503359/github.svg\", loading: \"lazy\", alt: \"github logo\" }), _jsx(\"span\", { className: \"text-sm font-semibold\", children: \"Continue with GitHub\" })] }));\n}\n//# sourceMappingURL=GitHubSignInButton.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { GoogleAuthProvider, signInWithRedirect } from \"firebase/auth\";\nimport { getFirebaseAuth } from \"@vertesia/ui/session\";\nimport { Button } from \"@vertesia/ui/core\";\nexport default function GoogleSignInButton({ redirectTo }) {\n const signIn = () => {\n localStorage.removeItem(\"tenantName\");\n let redirectPath = redirectTo || window.location.pathname || '/';\n if (redirectPath[0] !== '/') {\n redirectPath = '/' + redirectPath;\n }\n const provider = new GoogleAuthProvider();\n provider.addScope('profile');\n provider.addScope('email');\n // always ask to select the google account\n //console.log('redirectPath', window.location.origin + redirectPath)\n provider.setCustomParameters({\n prompt: 'select_account',\n redirect_uri: window.location.origin + redirectPath\n });\n signInWithRedirect(getFirebaseAuth(), provider);\n };\n return (_jsxs(Button, { variant: \"outline\", onClick: signIn, className: \"w-full py-5 flex rounded-lg hover:shadow-sm transition duration-150 text-center mb-2\", children: [_jsx(\"img\", { className: \"size-6\", src: \"https://www.svgrepo.com/show/475656/google-color.svg\", loading: \"lazy\", alt: \"google logo\" }), _jsx(\"span\", { className: \"text-sm font-semibold\", children: \"Continue with Google\" })] }));\n}\n//# sourceMappingURL=GoogleSignInButton.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { OAuthProvider, signInWithRedirect } from \"firebase/auth\";\nimport { getFirebaseAuth } from \"@vertesia/ui/session\";\nimport { Button } from \"@vertesia/ui/core\";\nexport default function MicrosoftSignInButton({ redirectTo }) {\n const signIn = () => {\n localStorage.removeItem(\"tenantName\");\n let redirectPath = redirectTo || window.location.pathname || '/';\n if (redirectPath[0] !== '/') {\n redirectPath = '/' + redirectPath;\n }\n const provider = new OAuthProvider('microsoft.com');\n provider.addScope('profile');\n provider.addScope('email');\n signInWithRedirect(getFirebaseAuth(), provider);\n };\n return (_jsxs(Button, { variant: \"outline\", onClick: signIn, className: \"w-full py-5 flex rounded-lg hover:shadow-sm transition duration-150 text-center\", children: [_jsx(\"img\", { className: \"size-6\", src: \"https://learn.microsoft.com/en-us/entra/identity-platform/media/howto-add-branding-in-apps/ms-symbollockup_mssymbol_19.svg\", loading: \"lazy\", alt: \"microsoft logo\" }), _jsx(\"span\", { className: \"text-sm font-semibold\", children: \"Continue with Microsoft\" })] }));\n}\n//# sourceMappingURL=MicrosoftSigninButton.js.map","import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { Button, Input, VSelectBox, SelectStack } from \"@vertesia/ui/core\";\nimport { getAuth } from \"firebase/auth\";\nimport { useEffect, useState } from \"react\";\nconst companySizeOptions = [\n { id: 1, label: \"1-10 employees\" },\n { id: 11, label: \"11-100 employees\" },\n { id: 101, label: \"101-1000 employees\" },\n { id: 1001, label: \"1001-5000 employees\" },\n { id: 5001, label: \"5000+ employees\" },\n];\nconst accountTypeOptions = [\n {\n id: \"personal\",\n label: \"Personal\",\n description: \"For personal use, or for a small team.\",\n },\n {\n id: \"company\",\n label: \"Company\",\n description: \"For a company or organization.\",\n },\n];\nconst projectMaturityOptions = [\n { id: \"testing\", label: \"Just Testing or Evaluating LLMs\" },\n { id: \"exploring\", label: \"Actively Exploring LLMs on a Project\" },\n { id: \"using\", label: \"Already Using LLMs in Production\" },\n { id: \"migrating\", label: \"Migrating to different LLMs\" },\n { id: \"other\", label: \"Other\" },\n];\nexport default function SignupForm({ onSignup, goBack }) {\n const [accountType, setAccountType] = useState(undefined);\n const [companySize, setCompanySize] = useState(undefined);\n const [companyName, setCompanyName] = useState(undefined);\n const [companyWebsite, setCompanyWebsite] = useState(undefined);\n const [projectMaturity, setProjectMaturity] = useState(undefined);\n const [fbUser, setFbUser] = useState(undefined);\n const [error, setError] = useState(undefined);\n const isCompany = accountType === \"company\";\n useEffect(() => {\n const user = getAuth().currentUser;\n if (!user) {\n console.error('No user found');\n return;\n }\n setFbUser(user);\n }, [fbUser]);\n const isValid = () => {\n if (!accountType) {\n setError(\"Please select an account type\");\n return false;\n }\n if (isCompany && !companyName) {\n setError(\"Please enter an organization name\");\n return false;\n }\n if (isCompany && !companySize) {\n setError(\"Please select a company size\");\n return false;\n }\n return true;\n };\n const onSubmit = async () => {\n if (!isValid())\n return;\n if (!accountType)\n return;\n const signupData = {\n accountType: accountType,\n companyName: companyName,\n companySize: companySize?.id,\n companyWebsite: companyWebsite,\n maturity: projectMaturity,\n };\n window.localStorage.setItem(\"composableSignupData\", JSON.stringify(signupData));\n const fbToken = await getAuth().currentUser?.getIdToken();\n console.log('Got firebase token', getAuth(), fbToken);\n if (!fbToken) {\n console.error('No firebase token found');\n return;\n }\n onSignup(signupData, fbToken);\n };\n return (_jsxs(\"div\", { className: \"flex flex-col space-y-2\", children: [_jsxs(\"div\", { className: \"prose\", children: [_jsxs(\"p\", { className: \"prose text-sm text-muted pt-4\", children: [\"Welcome to Vertesia, \", fbUser?.displayName, \" (\", fbUser?.email, \"). Please tell us a little bit about yourself and you'll be on your way. No credit card is required.\"] }), error &&\n _jsx(\"div\", { className: \"text-destructive\", children: error })] }), _jsx(FormItem, { label: \"Account Type\", children: _jsx(SelectStack, { options: accountTypeOptions, selected: accountTypeOptions.find((option) => option.id === accountType), onSelect: (option) => setAccountType(option.id) }) }), isCompany &&\n _jsxs(_Fragment, { children: [_jsx(FormItem, { label: \"Company Size\", children: _jsx(VSelectBox, { className: \"w-full border border-accent bg-muted\", value: companySize, options: companySizeOptions, onChange: setCompanySize, optionLabel: (option) => option?.label, placeholder: 'Select Company Size' }) }), _jsx(FormItem, { label: \"Company Name\", children: _jsx(Input, { value: companyName, onChange: setCompanyName, type: \"text\", required: true }) }), _jsx(FormItem, { label: \"Company Website\", children: _jsx(Input, { value: companyWebsite, onChange: setCompanyWebsite, type: \"text\" }) })] }), _jsx(FormItem, { label: \"Project Maturity\", children: _jsx(VSelectBox, { className: \"w-full border border-accent bg-muted\", options: projectMaturityOptions, value: projectMaturityOptions.find((option) => option.id === projectMaturity), optionLabel: (option) => option?.label, placeholder: 'Select Project Maturity', onChange: (option) => setProjectMaturity(option?.id) }) }), _jsxs(\"div\", { className: \"pt-8 flex flex-col\", children: [_jsx(Button, { variant: \"primary\", onClick: onSubmit, size: \"xl\", children: _jsx(\"span\", { className: \"text-lg\", children: \"Sign Up\" }) }), _jsx(Button, { variant: \"ghost\", size: \"xl\", className: \"mt-4\", onClick: goBack, children: _jsx(\"span\", { className: \"\", children: \"Wrong account, go back\" }) })] })] }));\n}\nfunction FormItem({ label, children }) {\n return (_jsxs(\"div\", { className: \"flex flex-col space-y-2 pt-4\", children: [_jsx(\"div\", { className: \"text-sm text-muted\", children: label }), children] }));\n}\n//# sourceMappingURL=SignupForm.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { Button, useSafeLayoutEffect } from \"@vertesia/ui/core\";\nimport { Env } from \"@vertesia/ui/env\";\nimport { UserNotFoundError, useUserSession, useUXTracking } from \"@vertesia/ui/session\";\nimport clsx from \"clsx\";\nimport { useEffect, useState } from \"react\";\nimport EnterpriseSigninButton from \"./EnterpriseSigninButton\";\nimport GitHubSignInButton from \"./GitHubSignInButton\";\nimport GoogleSignInButton from \"./GoogleSignInButton\";\nimport MicrosoftSignInButton from \"./MicrosoftSigninButton\";\nimport SignupForm from \"./SignupForm\";\nexport function SigninScreen({ allowedPrefix, isNested = false, lightLogo, darkLogo }) {\n const [allow, setAllow] = useState(false);\n useSafeLayoutEffect(() => {\n allowedPrefix && setAllow(window.location.href.startsWith(allowedPrefix));\n }, []);\n return allow ? null : _jsx(SigninScreenImpl, { isNested: isNested, lightLogo: lightLogo, darkLogo: darkLogo });\n}\nfunction SigninScreenImpl({ isNested = false, lightLogo, darkLogo }) {\n const { isLoading, user, authError } = useUserSession();\n return !isLoading && !user ? (_jsx(\"div\", { style: { zIndex: 999998 }, className: (isNested ? \"absolute\" : \"fixed\") + \"overflow-y-auto \", children: _jsxs(\"div\", { className: clsx(\"flex flex-col items-center justify-center py-14 px-4\"), children: [_jsx(StandardSigninPanel, { authError: authError, lightLogo: lightLogo, darkLogo: darkLogo }), _jsxs(\"div\", { className: \"flex gap-x-6 mt-10 justify-center text-muted\", children: [_jsx(\"a\", { href: \"https://vertesiahq.com/privacy\", className: \"text-sm\", children: \"Privacy Policy\" }), _jsx(\"a\", { href: \"https://vertesiahq.com/terms\", className: \"text-sm\", children: \"Terms of Service\" })] })] }) })) : null;\n}\nfunction StandardSigninPanel({ authError, darkLogo, lightLogo }) {\n const [signupData, setSignupData] = useState(undefined);\n const [collectSignupData, setCollectSignupData] = useState(false);\n const { signOut } = useUserSession();\n const { trackEvent } = useUXTracking();\n history.replaceState({}, '', '/');\n const goBack = () => {\n console.log(\"Going back, signing out\");\n setSignupData(undefined);\n setCollectSignupData(false);\n signOut();\n };\n const goToSignup = () => {\n setSignupData(undefined);\n setCollectSignupData(true);\n };\n useEffect(() => {\n if (authError instanceof UserNotFoundError) {\n console.log(\"User not found, redirecting to signup\");\n goToSignup();\n }\n }, [authError]);\n const onSignup = (data, fbToken) => {\n console.log(\"Got Signup data\", data);\n setSignupData(data);\n const payload = {\n signupData: data,\n firebaseToken: fbToken,\n };\n fetch(Env.endpoints.studio + \"/auth/signup\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(payload),\n }).then((res) => {\n console.log(\"Signup successful\", payload, res);\n trackEvent(\"sign_up\");\n window.location.href = \"/\";\n });\n };\n return (_jsxs(_Fragment, { children: [lightLogo && _jsx(\"img\", { src: lightLogo, alt: 'logo', className: 'h-15 block dark:hidden' }), darkLogo && _jsx(\"img\", { src: darkLogo, alt: 'logo', className: 'h-15 hidden dark:block' }), signupData && (_jsxs(\"div\", { className: \"my-6\", children: [\"Need to make a change?\", \" \", _jsx(Button, { onClick: goToSignup, children: \" Go back\" })] })), _jsx(\"div\", { className: \"flex flex-col space-y-2\", children: collectSignupData && !localStorage.getItem('tenantName') ? (_jsx(SignupForm, { onSignup: onSignup, goBack: goBack })) : (_jsxs(\"div\", { className: \"flex flex-col\", children: [_jsx(\"div\", { className: \"my-4\", children: _jsx(\"h2\", { className: \"text-2xl font-bold text-center\", children: \"Log in or Sign up\" }) }), _jsxs(\"div\", { className: \"max-w-2xl text-center my-2 px-2\", children: [\"First time here? No problem, it's free to try!\", _jsx(\"br\", {}), \"We'll just ask you a couple of questions next and you'll be on your way.\"] }), _jsxs(\"div\", { className: \"flex items-center flex-col\", children: [_jsxs(\"div\", { className: \"py-4 w-70\", children: [_jsx(GoogleSignInButton, {}), _jsx(GitHubSignInButton, {}), _jsx(MicrosoftSignInButton, {})] }), _jsxs(\"div\", { className: \"flex items-center flex-row w-70 text-muted\", children: [_jsx(\"hr\", { className: \"w-full\" }), _jsx(\"div\", { className: \"px-2 text-xs\", children: \"OR\" }), _jsx(\"hr\", { className: \"w-full\" })] }), _jsx(\"div\", { className: \"py-4 w-70\", children: _jsx(EnterpriseSigninButton, {}) })] }), authError && (_jsx(\"div\", { className: \"text-center\", children: _jsxs(\"div\", { className: \"\", children: [\"Sorry, we have not been able to sign you in.\", _jsx(\"br\", {}), \"Please try again or contact\", _jsx(\"a\", { className: 'text-info mx-1', href: \"mailto:support@vertesiahq.com\", children: \"support@vertesiahq.com\" }), \"if it persists.\", _jsxs(\"pre\", { className: \"mt-2\", children: [\"Error: \", authError.message] })] }) }))] })) })] }));\n}\n//# sourceMappingURL=SigninScreen.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useState } from 'react';\nimport { Button, Center, ErrorBox, Input, SelectBox, Spinner, useFetch, useToast } from '@vertesia/ui/core';\nimport { Env } from \"@vertesia/ui/env\";\nimport { useLocation } from \"@vertesia/ui/router\";\nimport { fetchComposableTokenFromFirebaseToken, useUserSession } from '@vertesia/ui/session';\nfunction getClientInfo(location) {\n const params = new URLSearchParams(location.search);\n let redirect = params.get('redirect_uri');\n const code = params.get('code');\n if (!redirect || !code) {\n return null;\n }\n redirect = decodeURI(redirect);\n if (!redirect.startsWith('http://127.0.0.1:') && !redirect.startsWith('http://localhost:')) {\n return null;\n }\n const profile = params.get('profile') ?? \"default\";\n const project = params.get('project') ?? undefined;\n const account = params.get('account') ?? undefined;\n return { redirect, code, profile, project, account };\n}\nexport function TerminalLogin() {\n const [payload, setPayload] = useState();\n const [error, setError] = useState();\n const location = useLocation();\n const clientInfo = getClientInfo(location);\n const toast = useToast();\n const onAccept = async (data) => {\n if (!clientInfo)\n return;\n if (!data.profile) {\n toast({\n title: 'Profile is required',\n description: 'Please enter a profile name to save the client authorization',\n status: 'error',\n duration: 2000\n });\n return;\n }\n if (!data.account) {\n toast({\n title: 'Account is required',\n description: 'Please select an account to authorize the client to access the ComposablePrompts servers',\n status: 'error',\n duration: 2000\n });\n return;\n }\n if (!data.project) {\n toast({\n title: 'Project is required',\n description: 'Please select a project to authorize the client to access the ComposablePrompts servers',\n status: 'error',\n duration: 2000\n });\n return;\n }\n // expire in 1 day\n let payload;\n try {\n const token = await fetchComposableTokenFromFirebaseToken(data.account, data.project, 24 * 3600);\n if (token) {\n payload = {\n ...data,\n studio_server_url: Env.endpoints.studio,\n zeno_server_url: Env.endpoints.zeno,\n token,\n };\n await fetch(clientInfo.redirect, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload)\n });\n setPayload(payload);\n }\n else {\n toast({\n title: 'Failed to get composable token',\n status: 'error',\n duration: 5000\n });\n }\n }\n catch (err) {\n if (payload) {\n setError(err);\n setPayload(payload);\n }\n else {\n toast({\n title: 'Error authorizing client',\n description: err.message,\n status: 'error',\n duration: 5000\n });\n }\n }\n };\n const getPageContent = () => {\n if (!clientInfo) {\n return _jsx(ErrorBox, { title: 'Invalid request', children: \"This page should be called by a terminal client to authenticate against the ComposablePrompts servers\" });\n }\n return payload\n ? _jsx(AuthDoneScreen, { payload: payload, error: error })\n : _jsx(AuthAcceptScreen, { clientInfo: clientInfo, onAccept: onAccept });\n };\n const page = getPageContent();\n return (_jsx(\"div\", { className: \"w-full flex flex-col items-center gap-4 mt-24\", children: page }));\n}\nfunction AuthAcceptScreen({ onAccept, clientInfo }) {\n const { client, user } = useUserSession();\n const { data: allProjects, error } = useFetch(() => user ? client.projects.list() : Promise.resolve([]), [user]);\n if (error) {\n return _jsx(ErrorBox, { title: 'Error loading projects', children: error.message });\n }\n const getEnvironmentName = () => {\n if (Env.isLocalDev) {\n return \"Local Dev\";\n }\n else if (Env.isDev) {\n return \"Staging\";\n }\n return \"Production\";\n };\n const envName = getEnvironmentName();\n return user && allProjects ? (_jsxs(_Fragment, { children: [_jsxs(\"div\", { className: 'w-1/3', children: [_jsxs(\"div\", { className: \"mb-4 text-xl font-semibold text-gray-800\", children: [\"Authorizing client on \", envName, \" environment.\"] }), _jsxs(\"div\", { className: 'mb-2 text-md text-gray-800', children: [_jsx(\"div\", { children: \"A client app wants authorization to access the composable prompt servers in your name.\" }), _jsxs(\"div\", { children: [\"The client app code is \", _jsx(\"b\", { children: clientInfo.code }), \". You can check if the code is correct in the terminal.\"] })] }), _jsxs(\"div\", { className: 'mb-2 text-sm text-gray-600', children: [_jsx(\"div\", { children: \"You must choose the target account and project for the client to access.\" }), _jsx(\"div\", { children: \"Also, enter a profile name that will be used to save the authorization in your client configuration.\" })] })] }), _jsx(ProfileForm, { onAccept: onAccept, allProjects: allProjects, data: clientInfo })] })) : _jsx(Spinner, { size: 'lg' });\n}\nfunction AuthDoneScreen({ payload, error }) {\n const toast = useToast();\n const onCopy = () => {\n if (payload) {\n navigator.clipboard.writeText(JSON.stringify(payload));\n toast({\n title: 'Authentication Payload copied',\n description: error ? 'You can paste the authentication payload in the terminal to authenticate the client.' : 'You can close the page now.',\n status: 'success',\n duration: 5000\n });\n }\n };\n return (_jsxs(\"div\", { children: [error ?\n _jsxs(\"div\", { children: [_jsxs(ErrorBox, { title: 'Failed to send the authorization token to the cli tool', children: [\"This can happen due to security checks on Safari. The error is \\\"\", error.message, \"\\\"\"] }), _jsx(\"div\", { children: \"Don't worry, you can still authenticate the cli tool by pasting the authentication token in the terminal. You can close this page.\" })] })\n : _jsx(\"div\", { children: \"The client is authenticated. You can close this page.\" }), _jsx(Center, { className: \"mt-4\", children: _jsx(Button, { variant: 'secondary', onClick: onCopy, children: \"Copy the Authentication Payload\" }) })] }));\n}\nfunction ProfileForm({ allProjects, data, onAccept }) {\n const { accounts, account, project } = useUserSession();\n const [currentData, setCurrentData] = useState(() => ({\n profile: data.profile,\n account: data.account ?? account?.id,\n project: data.project ?? project?.id,\n }));\n const onChangeProfile = (value) => {\n setCurrentData({ ...currentData, profile: value });\n };\n const onChangeAccount = (value) => {\n setCurrentData({ ...currentData, account: value.id, project: undefined });\n };\n const onChangeProject = (value) => {\n setCurrentData({ ...currentData, project: value.id });\n };\n const projects = allProjects.filter(p => p.account === currentData.account);\n return (_jsxs(\"div\", { className: 'w-1/3', children: [_jsxs(\"div\", { className: \"mb-4 flex flex-col gap-2\", children: [_jsx(\"span\", { className: \"font-semibold text-gray-600\", children: \"Profile Name\" }), _jsx(Input, { type: 'text', value: currentData.profile, onChange: onChangeProfile })] }), _jsxs(\"div\", { className: \"mb-4 flex flex-col gap-2\", children: [_jsx(\"span\", { className: \"font-semibold text-gray-600\", children: \"Account\" }), _jsx(SelectAccount, { value: currentData.account, onChange: onChangeAccount, accounts: accounts || [] })] }), _jsxs(\"div\", { className: \"mb-4 flex flex-col gap-2\", children: [_jsx(\"span\", { className: \"font-semibold text-gray-600\", children: \"Project\" }), _jsx(SelectProject, { value: currentData.project, onChange: onChangeProject, projects: projects })] }), _jsx(\"div\", { className: \"pt-2\", children: _jsx(Button, { size: 'xl', onClick: () => onAccept(currentData), children: \"Authorize Client\" }) })] }));\n}\nfunction SelectAccount({ value, accounts, onChange }) {\n const _onChange = (value) => {\n onChange(value);\n };\n return _jsx(SelectBox, { options: accounts, value: accounts?.find(a => a.id === value), onChange: _onChange, by: \"id\", optionLabel: (option) => option.name, placeholder: 'Select Account' });\n}\nfunction SelectProject({ value, projects, onChange }) {\n const _onChange = (value) => {\n onChange(value);\n };\n return (_jsx(SelectBox, { by: \"id\", value: projects.find(p => p.id === value), options: projects, optionLabel: (option) => option.name, placeholder: 'Select Project', onChange: _onChange }));\n}\n//# sourceMappingURL=TerminalLogin.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Button, Modal, ModalBody, ModalFooter, ModalTitle } from \"@vertesia/ui/core\";\nimport GitHubSignInButton from \"./GitHubSignInButton\";\nimport GoogleSignInButton from \"./GoogleSignInButton\";\nimport MicrosoftSignInButton from \"./MicrosoftSigninButton\";\nexport default function SignInModal({ isOpen, onClose }) {\n return (_jsxs(Modal, { isOpen: isOpen, onClose: onClose, children: [_jsx(ModalTitle, { children: \"Sign In\" }), _jsxs(ModalBody, { className: \"flex justify-center\", children: [_jsx(GoogleSignInButton, {}), _jsx(GitHubSignInButton, {}), _jsx(MicrosoftSignInButton, {})] }), _jsx(ModalFooter, { justify: \"end\", children: _jsx(Button, { variant: \"ghost\", onClick: onClose, children: \"Cancel\" }) })] }));\n}\n//# sourceMappingURL=SignInModal.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { getTenantIdFromProject } from \"@vertesia/common\";\nimport { VTabs, VTabsBar, VTabsPanel, VTooltip } from \"@vertesia/ui/core\";\nimport { Env } from \"@vertesia/ui/env\";\nimport { useUserSession } from \"@vertesia/ui/session\";\nimport { Check, CopyIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nexport function InfoItems({ title, value }) {\n function copyToClipboard(value) {\n navigator.clipboard.writeText(value);\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n }\n const [isCopied, setIsCopied] = useState(false);\n return (_jsxs(\"div\", { className: \"w-full flex justify-between items-center mb-1\", children: [_jsxs(\"div\", { className: \"flex flex-col w-[calc(100%-3rem)]\", children: [_jsx(\"div\", { className: 'text-sm px-2 dark:text-slate-200', children: title }), _jsx(VTooltip, { description: value, size: \"xs\", placement: \"left\", children: _jsxs(\"div\", { className: 'text-xs truncate text-muted w-full text-left px-2', children: [value, \" \"] }) })] }), isCopied ?\n _jsx(Check, { className: \"size-4 cursor-pointer text-success\" })\n :\n _jsx(CopyIcon, { className: \"size-4 cursor-pointer text-gray-400 dark:text-slate-400\", onClick: () => copyToClipboard(value) })] }));\n}\nexport default function InfoList() {\n const session = useUserSession();\n const { account, project, client, authToken } = session;\n const server = new URL(client.baseUrl).hostname;\n const store = new URL(client.store.baseUrl).hostname;\n const tenantId = project ? getTenantIdFromProject(project) : '';\n const tabs = [\n {\n name: 'user',\n label: 'User',\n content: _jsxs(\"div\", { className: \"space-y-1 p-2\", children: [_jsx(InfoItems, { title: \"Organization ID\", value: account?.id ?? 'Unknown' }), _jsx(InfoItems, { title: \"Project ID\", value: project?.id ?? 'Unknown' }), _jsx(InfoItems, { title: \"User ID\", value: authToken?.sub ?? 'Unknown' }), _jsx(InfoItems, { title: \"Organization Roles\", value: authToken?.account_roles?.join(',') ?? 'Unknown' }), _jsx(InfoItems, { title: \"Project Roles\", value: authToken?.project_roles?.join(',') ?? 'Unknown' })] })\n },\n {\n name: 'environment',\n label: 'Environment',\n content: _jsxs(\"div\", { className: \"space-y-1 p-2\", children: [_jsx(InfoItems, { title: \"Tenant ID\", value: tenantId }), _jsx(InfoItems, { title: \"Environment\", value: Env.type }), _jsx(InfoItems, { title: \"Server\", value: server }), _jsx(InfoItems, { title: \"Store\", value: store }), _jsx(InfoItems, { title: \"App Version\", value: Env.version })] })\n }\n ];\n return (_jsx(\"div\", { className: \"w-full\", children: _jsxs(VTabs, { defaultValue: \"user\", tabs: tabs, fullWidth: true, children: [_jsx(VTabsBar, {}), _jsx(VTabsPanel, {})] }) }));\n}\n//# sourceMappingURL=UserInfo.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Avatar, Button, MenuList, ModeToggle, Spinner } from \"@vertesia/ui/core\";\nimport { useUserSession } from \"@vertesia/ui/session\";\nimport { Popover } from \"@vertesia/ui/widgets\";\nimport clsx from \"clsx\";\nimport { useState } from \"react\";\nimport SignInModal from \"./SignInModal\";\nimport InfoList from \"./UserInfo\";\nexport function UserSessionMenu({}) {\n const { user, isLoading } = useUserSession();\n const [showModal, setShowModal] = useState(false);\n if (isLoading) {\n return _jsx(Spinner, {});\n }\n else if (!user) {\n return _jsxs(_Fragment, { children: [_jsx(Button, { onClick: () => setShowModal(true), children: \"Sign In\" }), _jsx(SignInModal, { isOpen: showModal, onClose: () => setShowModal(false) })] });\n }\n else {\n return (_jsx(\"div\", { className: \"px-3\", children: _jsx(UserSessionPopup, { asMenuTrigger: true }) }));\n }\n}\nfunction UserSessionPopup({ className, asMenuTrigger = false }) {\n const session = useUserSession();\n const { user } = session;\n if (!session || !user)\n return null;\n return (_jsxs(Popover, { strategy: 'fixed', placement: 'bottom-start', zIndex: 100, children: [_jsx(Popover.Trigger, { click: true, children: _jsx(\"div\", { className: clsx(className, \"flex items-center justify-start\", asMenuTrigger && \"cursor-pointer\"), children: _jsx(Avatar, { size: 'sm', color: 'bg-amber-500', shape: 'circle', \n /*src={picture} */\n name: user?.name }) }) }), _jsx(Popover.Content, { className: \"w-[280px] mx-2 my-1\", children: _jsx(\"div\", { className: \"bg-white dark:bg-slate-900 shadow-lg rounded-md ring-1 ring-gray-200 dark:ring-slate-700\", children: _jsxs(\"div\", { className: 'divide-y divide-gray-200 dark:divide-slate-700', children: [_jsxs(\"div\", { className: 'py-2 pl-2', children: [_jsx(\"p\", { className: \"px-4 dark:text-white mb-1\", children: user?.name ?? 'Unknown' }), _jsx(\"p\", { className: \"px-4 text-xs text-gray-500\", children: user?.email ?? '' })] }), _jsx(\"div\", { className: \"w-full p-1\", children: _jsx(InfoList, {}) }), _jsx(\"div\", { className: 'py-2 pl-2', children: _jsx(ModeToggle, {}) }), _jsx(\"div\", { className: 'py-2', children: _jsx(MenuList, { children: _jsx(MenuList.Item, { className: 'px-2', onClick: () => session.logout(), children: \"Sign out\" }) }) })] }) }) })] }));\n}\n//# sourceMappingURL=UserSessionMenu.js.map","export function isVertesiaEmail(email) {\n return email ? (email.endsWith('@vertesiahq.com') ||\n email.endsWith('@becomposable.com') ||\n email.endsWith('@composableprompts.com')) : false;\n}\n//# sourceMappingURL=utils.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Transition } from \"@headlessui/react\";\nimport { Fragment, useEffect, useState } from \"react\";\nimport { useUserSession } from \"@vertesia/ui/session\";\nexport function SplashScreen({}) {\n const { isLoading } = useUserSession();\n const [show, setShow] = useState(true);\n useEffect(() => {\n if (!isLoading) {\n setShow(false);\n }\n // setTimeout(() => {\n // setShow(false)\n // }, 2000)\n }, [isLoading]);\n // 300 500 700 1000\n return (_jsx(Transition, { appear: true, show: show, as: Fragment, unmount: true, leave: \"transition ease-in duration-500\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: _jsx(\"div\", { style: { zIndex: 999999 }, className: 'fixed inset-x-0 inset-y-0', children: _jsx(\"div\", { className: \"flex w-full h-full items-center justify-center\", children: _jsx(\"div\", { className: \"animate-[spin_4s_linear_infinite]\", children: _jsx(\"img\", { src: '/icon.svg', className: 'w-10 h-auto animate-pulse rounded-full' }) }) }) }) }));\n}\n//# sourceMappingURL=SplashScreen.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ThemeProvider, ToastProvider } from \"@vertesia/ui/core\";\nimport { UserPermissionProvider } from \"@vertesia/ui/features\";\nimport { UserSessionProvider } from \"@vertesia/ui/session\";\nimport { SplashScreen } from \"./SplashScreen\";\nimport { SigninScreen } from \"./login/SigninScreen\";\nexport function VertesiaShell({ children, lightLogo, darkLogo }) {\n return (_jsx(ToastProvider, { children: _jsx(UserSessionProvider, { children: _jsxs(ThemeProvider, { defaultTheme: \"system\", storageKey: \"vite-ui-theme\", children: [_jsx(SplashScreen, {}), _jsx(SigninScreen, { allowedPrefix: \"/shared/\", lightLogo: lightLogo, darkLogo: darkLogo }), _jsx(UserPermissionProvider, { children: children })] }) }) }));\n}\n//# sourceMappingURL=VertesiaShell.js.map"],"names":["InviteAcceptModal","session","useUserSession","client","account","showModal","setShowModal","useState","invites","setInvites","useEffect","listInvites","then","length","console","log","id","closeModal","inviteList","map","invite","_jsxs","className","children","_jsx","data","name","role","invitedBy","Button","size","onClick","async","acceptInvite","fetchAccounts","remainingInvites","filter","i","accept","variant","rejectInvite","reject","Modal","isOpen","onClose","ModalTitle","ModalBody","EnterpriseSigninButton","redirectTo","isLoading","setIsLoading","trackEvent","useUXTracking","email","setEmail","toast","useToast","_Fragment","Input","value","onChange","placeholder","type","Spinner","test","setFirebaseTenant","title","status","duration","localStorage","setItem","provider","Env","firebase","providerType","OAuthProvider","redirectPath","window","location","pathname","GoogleAuthProvider","addScope","setCustomParameters","prompt","redirect_uri","origin","getProvider","firebaseTenantName","logger","info","vertesia","firebaseTenantId","signInWithRedirect","getFirebaseAuth","GitHubSignInButton","removeItem","GithubAuthProvider","src","loading","alt","GoogleSignInButton","MicrosoftSignInButton","companySizeOptions","label","accountTypeOptions","description","projectMaturityOptions","SignupForm","onSignup","goBack","accountType","setAccountType","undefined","companySize","setCompanySize","companyName","setCompanyName","companyWebsite","setCompanyWebsite","projectMaturity","setProjectMaturity","fbUser","setFbUser","error","setError","isCompany","user","getAuth","currentUser","displayName","FormItem","SelectStack","options","selected","find","option","onSelect","VSelectBox","optionLabel","required","signupData","maturity","JSON","stringify","fbToken","getIdToken","SigninScreen","allowedPrefix","isNested","lightLogo","darkLogo","allow","setAllow","useSafeLayoutEffect","href","startsWith","SigninScreenImpl","authError","style","zIndex","clsx","StandardSigninPanel","setSignupData","collectSignupData","setCollectSignupData","signOut","history","replaceState","goToSignup","UserNotFoundError","getItem","payload","firebaseToken","fetch","endpoints","studio","method","headers","body","res","message","TerminalLogin","setPayload","clientInfo","params","URLSearchParams","search","redirect","get","code","decodeURI","profile","project","getClientInfo","useLocation","onAccept","token","fetchComposableTokenFromFirebaseToken","studio_server_url","zeno_server_url","zeno","err","page","AuthDoneScreen","AuthAcceptScreen","ErrorBox","allProjects","useFetch","projects","list","Promise","resolve","envName","isLocalDev","isDev","ProfileForm","Center","navigator","clipboard","writeText","accounts","currentData","setCurrentData","p","SelectAccount","SelectProject","SelectBox","a","by","SignInModal","ModalFooter","justify","InfoItems","isCopied","setIsCopied","VTooltip","placement","Check","CopyIcon","setTimeout","copyToClipboard","InfoList","authToken","server","URL","baseUrl","hostname","store","tenantId","getTenantIdFromProject","tabs","content","sub","account_roles","join","project_roles","version","VTabs","defaultValue","fullWidth","VTabsBar","VTabsPanel","UserSessionMenu","UserSessionPopup","asMenuTrigger","Popover","strategy","Trigger","click","Avatar","color","shape","Content","ModeToggle","MenuList","Item","logout","isVertesiaEmail","endsWith","SplashScreen","show","setShow","Transition","appear","as","Fragment","unmount","leave","leaveFrom","leaveTo","VertesiaShell","ToastProvider","UserSessionProvider","ThemeProvider","defaultTheme","storageKey","UserPermissionProvider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vertesia-ui-shell.js","sources":["esm/shell/login/InviteAcceptModal.js","esm/shell/login/EnterpriseSigninButton.js","esm/shell/login/GitHubSignInButton.js","esm/shell/login/GoogleSignInButton.js","esm/shell/login/MicrosoftSigninButton.js","esm/shell/login/SignupForm.js","esm/shell/login/SigninScreen.js","esm/shell/login/TerminalLogin.js","esm/shell/login/SignInModal.js","esm/shell/login/UserInfo.js","esm/shell/login/UserSessionMenu.js","esm/shell/utils.js","esm/shell/SplashScreen.js","esm/shell/VertesiaShell.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Button, VModal, VModalBody, VModalTitle } from \"@vertesia/ui/core\";\nimport { useEffect, useState } from \"react\";\nimport { useUserSession } from \"@vertesia/ui/session\";\nexport function InviteAcceptModal() {\n const session = useUserSession();\n const { client, account } = session;\n const [showModal, setShowModal] = useState(false);\n const [invites, setInvites] = useState([]);\n useEffect(() => {\n client.account.listInvites().then(invites => {\n if (invites.length > 0) {\n // Filter out legacy invites that do not have account data\n const notLegacyInvites = invites.filter(i => i.data.account);\n if (notLegacyInvites.length === 0) {\n console.log(\"No valid invites found, closing modal\");\n return;\n }\n // If we have valid invites, show the modal\n console.log(\"Found valid invites\", notLegacyInvites.length);\n setShowModal(true);\n setInvites(notLegacyInvites);\n }\n else {\n console.log(\"No invites found, closing modal\");\n setShowModal(false);\n }\n }).catch(err => {\n console.error(\"Error fetching invites\", err);\n });\n }, [account?.id]);\n const closeModal = () => setShowModal(false);\n const accept = async (invite) => {\n await client.account.acceptInvite(invite.id);\n await session.fetchAccounts();\n const remainingInvites = invites.filter(i => i.id !== invite.id);\n const notLegacyInvites = remainingInvites.filter(i => i.data.account);\n if (notLegacyInvites.length > 0) {\n setInvites(notLegacyInvites);\n }\n else {\n closeModal();\n }\n };\n const reject = async (invite) => {\n await client.account.rejectInvite(invite.id);\n const remainingInvites = invites.filter(i => i.id !== invite.id);\n setInvites(remainingInvites);\n if (remainingInvites.length === 0) {\n closeModal();\n }\n };\n const inviteList = invites.map(invite => {\n if (!invite.data.account) {\n console.warn(\"Invite has no account data\", invite);\n return null; // Skip rendering this invite\n }\n return (_jsxs(\"div\", { className: \"flex flex-row w-full justify-between border rounded-sm px-2 py-2 \", children: [_jsxs(\"div\", { className: \"flex flex-col\", children: [_jsx(\"div\", { className: \"w-full font-semibold\", children: invite.data.account.name ?? invite.data.account }), invite.data.project && _jsxs(\"div\", { className: \"w-full text-base\", children: [\"- \", invite.data.project.name] }), _jsxs(\"div\", { className: \"text-xs\", children: [\"Role: \", invite.data.role] }), _jsxs(\"div\", { className: \"text-xs\", children: [\"by \", invite.data.invitedBy.name] })] }), _jsxs(\"div\", { className: \"flex flex-col gap-4\", children: [_jsx(Button, { size: 'xs', onClick: () => accept(invite), children: \"Accept\" }), \" \", _jsx(Button, { size: 'xs', variant: \"secondary\", onClick: () => reject(invite), children: \"Reject\" })] })] }, invite.id));\n });\n return (_jsx(\"div\", { children: _jsxs(VModal, { isOpen: showModal, onClose: closeModal, children: [_jsx(VModalTitle, { children: \"Review Invites\" }), _jsxs(VModalBody, { children: [_jsx(\"div\", { className: \"text-sm pb-4\", children: \"You have received the following invites to join other accounts. Please review and accept or declined them.\" }), inviteList] })] }) }));\n}\n//# sourceMappingURL=InviteAcceptModal.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Button, Input, Spinner, useToast } from \"@vertesia/ui/core\";\nimport { Env } from \"@vertesia/ui/env\";\nimport { getFirebaseAuth, setFirebaseTenant, useUXTracking } from \"@vertesia/ui/session\";\nimport { GoogleAuthProvider, OAuthProvider, signInWithRedirect } from \"firebase/auth\";\nimport { useState } from \"react\";\nfunction getProvider(redirectTo) {\n const providerType = Env.firebase.providerType;\n switch (providerType) {\n case \"oidc\":\n return new OAuthProvider(\"oidc.main\");\n case \"google\": {\n let redirectPath = redirectTo || window.location.pathname || '/';\n if (redirectPath[0] !== '/') {\n redirectPath = '/' + redirectPath;\n }\n const provider = new GoogleAuthProvider();\n provider.addScope('profile');\n provider.addScope('email');\n provider.setCustomParameters({\n prompt: 'select_account',\n redirect_uri: window.location.origin + redirectPath\n });\n return provider;\n }\n case \"microsoft\":\n return new OAuthProvider(\"microsoft.com\");\n case \"github\":\n return new OAuthProvider(\"github.com\");\n default:\n return new OAuthProvider(\"oidc.main\");\n }\n}\nexport default function EnterpriseSigninButton({ redirectTo }) {\n const [isLoading, setIsLoading] = useState(false);\n const { trackEvent } = useUXTracking();\n const [email, setEmail] = useState(\"\");\n const toast = useToast();\n const signIn = async () => {\n if (!email)\n return;\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!emailRegex.test(email)) {\n toast({\n title: \"Invalid email address\",\n status: \"error\",\n duration: 5000,\n });\n return;\n }\n // Env.firebase.tenantEmail = email;\n setIsLoading(true);\n setFirebaseTenant(email).then((data) => {\n if (!data) {\n toast({\n title: \"Tenant not found\",\n status: \"error\",\n duration: 5000,\n });\n setIsLoading(false);\n return;\n }\n localStorage.setItem(\"tenantName\", data.name ?? \"\");\n const provider = getProvider(redirectTo);\n trackEvent(\"enterprise_signin\", {\n firebaseTenantName: data.name,\n });\n Env.logger.info('Enterprise single sign-in', {\n vertesia: {\n email: email,\n firebaseTenantName: data.name,\n firebaseTenantId: data.firebaseTenantId,\n },\n });\n signInWithRedirect(getFirebaseAuth(), provider);\n setIsLoading(false);\n });\n };\n return (_jsxs(_Fragment, { children: [_jsx(Input, { value: email, onChange: setEmail, placeholder: \"Enter your enterprise email\", type: \"email\" }), isLoading ? (_jsx(\"div\", { className: \"w-full flex justify-center\", children: _jsx(Spinner, {}) })) : (_jsx(Button, { variant: \"outline\", onClick: signIn, className: \"w-full mt-2 py-4 flex rounded-lg hover:shadow-sm transition duration-150 text-center\", children: _jsx(\"span\", { className: \"text-sm font-semibold\", children: \"Continue with Enterprise SSO\" }) }))] }));\n}\n//# sourceMappingURL=EnterpriseSigninButton.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { GithubAuthProvider, signInWithRedirect } from \"firebase/auth\";\nimport { getFirebaseAuth } from \"@vertesia/ui/session\";\nimport { Button } from \"@vertesia/ui/core\";\nexport default function GitHubSignInButton({}) {\n const signIn = () => {\n localStorage.removeItem(\"tenantName\");\n //with github can only have one allowed redirect\n const baseUrl = \"https://dengenlabs.firebaseapp.com/__/auth/handler\";\n let redirectPath = baseUrl + window.location.pathname;\n if (redirectPath[0] !== \"/\") {\n redirectPath = \"/\" + redirectPath;\n }\n const provider = new GithubAuthProvider();\n provider.addScope(\"profile\");\n provider.addScope(\"email\");\n /*provider.setCustomParameters({\n redirect_uri: redirectPath,\n });*/\n signInWithRedirect(getFirebaseAuth(), provider);\n };\n return (_jsxs(Button, { variant: \"outline\", onClick: signIn, className: \"w-full py-5 flex rounded-lg hover:shadow-sm transition duration-150 text-center mb-2\", children: [_jsx(\"img\", { className: \"size-6 bg-white rounded-full\", src: \"https://www.svgrepo.com/show/503359/github.svg\", loading: \"lazy\", alt: \"github logo\" }), _jsx(\"span\", { className: \"text-sm font-semibold\", children: \"Continue with GitHub\" })] }));\n}\n//# sourceMappingURL=GitHubSignInButton.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { GoogleAuthProvider, signInWithRedirect } from \"firebase/auth\";\nimport { getFirebaseAuth } from \"@vertesia/ui/session\";\nimport { Button } from \"@vertesia/ui/core\";\nexport default function GoogleSignInButton({ redirectTo }) {\n const signIn = () => {\n localStorage.removeItem(\"tenantName\");\n let redirectPath = redirectTo || window.location.pathname || '/';\n if (redirectPath[0] !== '/') {\n redirectPath = '/' + redirectPath;\n }\n const provider = new GoogleAuthProvider();\n provider.addScope('profile');\n provider.addScope('email');\n // always ask to select the google account\n //console.log('redirectPath', window.location.origin + redirectPath)\n provider.setCustomParameters({\n prompt: 'select_account',\n redirect_uri: window.location.origin + redirectPath\n });\n signInWithRedirect(getFirebaseAuth(), provider);\n };\n return (_jsxs(Button, { variant: \"outline\", onClick: signIn, className: \"w-full py-5 flex rounded-lg hover:shadow-sm transition duration-150 text-center mb-2\", children: [_jsx(\"img\", { className: \"size-6\", src: \"https://www.svgrepo.com/show/475656/google-color.svg\", loading: \"lazy\", alt: \"google logo\" }), _jsx(\"span\", { className: \"text-sm font-semibold\", children: \"Continue with Google\" })] }));\n}\n//# sourceMappingURL=GoogleSignInButton.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { OAuthProvider, signInWithRedirect } from \"firebase/auth\";\nimport { getFirebaseAuth } from \"@vertesia/ui/session\";\nimport { Button } from \"@vertesia/ui/core\";\nexport default function MicrosoftSignInButton({ redirectTo }) {\n const signIn = () => {\n localStorage.removeItem(\"tenantName\");\n let redirectPath = redirectTo || window.location.pathname || '/';\n if (redirectPath[0] !== '/') {\n redirectPath = '/' + redirectPath;\n }\n const provider = new OAuthProvider('microsoft.com');\n provider.addScope('profile');\n provider.addScope('email');\n signInWithRedirect(getFirebaseAuth(), provider);\n };\n return (_jsxs(Button, { variant: \"outline\", onClick: signIn, className: \"w-full py-5 flex rounded-lg hover:shadow-sm transition duration-150 text-center\", children: [_jsx(\"img\", { className: \"size-6\", src: \"https://learn.microsoft.com/en-us/entra/identity-platform/media/howto-add-branding-in-apps/ms-symbollockup_mssymbol_19.svg\", loading: \"lazy\", alt: \"microsoft logo\" }), _jsx(\"span\", { className: \"text-sm font-semibold\", children: \"Continue with Microsoft\" })] }));\n}\n//# sourceMappingURL=MicrosoftSigninButton.js.map","import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { Button, Input, VSelectBox, SelectStack } from \"@vertesia/ui/core\";\nimport { getAuth } from \"firebase/auth\";\nimport { useEffect, useState } from \"react\";\nconst companySizeOptions = [\n { id: 1, label: \"1-10 employees\" },\n { id: 11, label: \"11-100 employees\" },\n { id: 101, label: \"101-1000 employees\" },\n { id: 1001, label: \"1001-5000 employees\" },\n { id: 5001, label: \"5000+ employees\" },\n];\nconst accountTypeOptions = [\n {\n id: \"personal\",\n label: \"Personal\",\n description: \"For personal use, or for a small team.\",\n },\n {\n id: \"company\",\n label: \"Company\",\n description: \"For a company or organization.\",\n },\n];\nconst projectMaturityOptions = [\n { id: \"testing\", label: \"Just Testing or Evaluating LLMs\" },\n { id: \"exploring\", label: \"Actively Exploring LLMs on a Project\" },\n { id: \"using\", label: \"Already Using LLMs in Production\" },\n { id: \"migrating\", label: \"Migrating to different LLMs\" },\n { id: \"other\", label: \"Other\" },\n];\nexport default function SignupForm({ onSignup, goBack }) {\n const [accountType, setAccountType] = useState(undefined);\n const [companySize, setCompanySize] = useState(undefined);\n const [companyName, setCompanyName] = useState(undefined);\n const [companyWebsite, setCompanyWebsite] = useState(undefined);\n const [projectMaturity, setProjectMaturity] = useState(undefined);\n const [fbUser, setFbUser] = useState(undefined);\n const [error, setError] = useState(undefined);\n const isCompany = accountType === \"company\";\n useEffect(() => {\n const user = getAuth().currentUser;\n if (!user) {\n console.error('No user found');\n return;\n }\n setFbUser(user);\n }, [fbUser]);\n const isValid = () => {\n if (!accountType) {\n setError(\"Please select an account type\");\n return false;\n }\n if (isCompany && !companyName) {\n setError(\"Please enter an organization name\");\n return false;\n }\n if (isCompany && !companySize) {\n setError(\"Please select a company size\");\n return false;\n }\n return true;\n };\n const onSubmit = async () => {\n if (!isValid())\n return;\n if (!accountType)\n return;\n const signupData = {\n accountType: accountType,\n companyName: companyName,\n companySize: companySize?.id,\n companyWebsite: companyWebsite,\n maturity: projectMaturity,\n };\n window.localStorage.setItem(\"composableSignupData\", JSON.stringify(signupData));\n const fbToken = await getAuth().currentUser?.getIdToken();\n console.log('Got firebase token', getAuth(), fbToken);\n if (!fbToken) {\n console.error('No firebase token found');\n return;\n }\n onSignup(signupData, fbToken);\n };\n return (_jsxs(\"div\", { className: \"flex flex-col space-y-2\", children: [_jsxs(\"div\", { className: \"prose\", children: [_jsxs(\"p\", { className: \"prose text-sm text-muted pt-4\", children: [\"Welcome to Vertesia, \", fbUser?.displayName, \" (\", fbUser?.email, \"). Please tell us a little bit about yourself and you'll be on your way. No credit card is required.\"] }), error &&\n _jsx(\"div\", { className: \"text-destructive\", children: error })] }), _jsx(FormItem, { label: \"Account Type\", children: _jsx(SelectStack, { options: accountTypeOptions, selected: accountTypeOptions.find((option) => option.id === accountType), onSelect: (option) => setAccountType(option.id) }) }), isCompany &&\n _jsxs(_Fragment, { children: [_jsx(FormItem, { label: \"Company Size\", children: _jsx(VSelectBox, { className: \"w-full border border-accent bg-muted\", value: companySize, options: companySizeOptions, onChange: setCompanySize, optionLabel: (option) => option?.label, placeholder: 'Select Company Size' }) }), _jsx(FormItem, { label: \"Company Name\", children: _jsx(Input, { value: companyName, onChange: setCompanyName, type: \"text\", required: true }) }), _jsx(FormItem, { label: \"Company Website\", children: _jsx(Input, { value: companyWebsite, onChange: setCompanyWebsite, type: \"text\" }) })] }), _jsx(FormItem, { label: \"Project Maturity\", children: _jsx(VSelectBox, { className: \"w-full border border-accent bg-muted\", options: projectMaturityOptions, value: projectMaturityOptions.find((option) => option.id === projectMaturity), optionLabel: (option) => option?.label, placeholder: 'Select Project Maturity', onChange: (option) => setProjectMaturity(option?.id) }) }), _jsxs(\"div\", { className: \"pt-8 flex flex-col\", children: [_jsx(Button, { variant: \"primary\", onClick: onSubmit, size: \"xl\", children: _jsx(\"span\", { className: \"text-lg\", children: \"Sign Up\" }) }), _jsx(Button, { variant: \"ghost\", size: \"xl\", className: \"mt-4\", onClick: goBack, children: _jsx(\"span\", { className: \"\", children: \"Wrong account, go back\" }) })] })] }));\n}\nfunction FormItem({ label, children }) {\n return (_jsxs(\"div\", { className: \"flex flex-col space-y-2 pt-4\", children: [_jsx(\"div\", { className: \"text-sm text-muted\", children: label }), children] }));\n}\n//# sourceMappingURL=SignupForm.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { Button, useSafeLayoutEffect } from \"@vertesia/ui/core\";\nimport { Env } from \"@vertesia/ui/env\";\nimport { UserNotFoundError, useUserSession, useUXTracking } from \"@vertesia/ui/session\";\nimport clsx from \"clsx\";\nimport { useEffect, useState } from \"react\";\nimport EnterpriseSigninButton from \"./EnterpriseSigninButton\";\nimport GitHubSignInButton from \"./GitHubSignInButton\";\nimport GoogleSignInButton from \"./GoogleSignInButton\";\nimport MicrosoftSignInButton from \"./MicrosoftSigninButton\";\nimport SignupForm from \"./SignupForm\";\nexport function SigninScreen({ allowedPrefix, isNested = false, lightLogo, darkLogo }) {\n const [allow, setAllow] = useState(false);\n useSafeLayoutEffect(() => {\n allowedPrefix && setAllow(window.location.href.startsWith(allowedPrefix));\n }, []);\n return allow ? null : _jsx(SigninScreenImpl, { isNested: isNested, lightLogo: lightLogo, darkLogo: darkLogo });\n}\nfunction SigninScreenImpl({ isNested = false, lightLogo, darkLogo }) {\n const { isLoading, user, authError } = useUserSession();\n return !isLoading && !user ? (_jsx(\"div\", { style: { zIndex: 999998 }, className: (isNested ? \"absolute\" : \"fixed\") + \"overflow-y-auto \", children: _jsxs(\"div\", { className: clsx(\"flex flex-col items-center justify-center py-14 px-4\"), children: [_jsx(StandardSigninPanel, { authError: authError, lightLogo: lightLogo, darkLogo: darkLogo }), _jsxs(\"div\", { className: \"flex gap-x-6 mt-10 justify-center text-muted\", children: [_jsx(\"a\", { href: \"https://vertesiahq.com/privacy\", className: \"text-sm\", children: \"Privacy Policy\" }), _jsx(\"a\", { href: \"https://vertesiahq.com/terms\", className: \"text-sm\", children: \"Terms of Service\" })] })] }) })) : null;\n}\nfunction StandardSigninPanel({ authError, darkLogo, lightLogo }) {\n const [signupData, setSignupData] = useState(undefined);\n const [collectSignupData, setCollectSignupData] = useState(false);\n const { signOut } = useUserSession();\n const { trackEvent } = useUXTracking();\n history.replaceState({}, '', '/');\n const goBack = () => {\n console.log(\"Going back, signing out\");\n setSignupData(undefined);\n setCollectSignupData(false);\n signOut();\n };\n const goToSignup = () => {\n setSignupData(undefined);\n setCollectSignupData(true);\n };\n useEffect(() => {\n if (authError instanceof UserNotFoundError) {\n console.log(\"User not found, redirecting to signup\");\n goToSignup();\n }\n }, [authError]);\n const onSignup = (data, fbToken) => {\n console.log(\"Got Signup data\", data);\n setSignupData(data);\n const payload = {\n signupData: data,\n firebaseToken: fbToken,\n };\n fetch(Env.endpoints.studio + \"/auth/signup\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(payload),\n }).then((res) => {\n console.log(\"Signup successful\", payload, res);\n trackEvent(\"sign_up\");\n window.location.href = \"/\";\n });\n };\n return (_jsxs(_Fragment, { children: [lightLogo && _jsx(\"img\", { src: lightLogo, alt: 'logo', className: 'h-15 block dark:hidden' }), darkLogo && _jsx(\"img\", { src: darkLogo, alt: 'logo', className: 'h-15 hidden dark:block' }), signupData && (_jsxs(\"div\", { className: \"my-6\", children: [\"Need to make a change?\", \" \", _jsx(Button, { onClick: goToSignup, children: \" Go back\" })] })), _jsx(\"div\", { className: \"flex flex-col space-y-2\", children: collectSignupData && !localStorage.getItem('tenantName') ? (_jsx(SignupForm, { onSignup: onSignup, goBack: goBack })) : (_jsxs(\"div\", { className: \"flex flex-col\", children: [_jsx(\"div\", { className: \"my-4\", children: _jsx(\"h2\", { className: \"text-2xl font-bold text-center\", children: \"Log in or Sign up\" }) }), _jsxs(\"div\", { className: \"max-w-2xl text-center my-2 px-2\", children: [\"First time here? No problem, it's free to try!\", _jsx(\"br\", {}), \"We'll just ask you a couple of questions next and you'll be on your way.\"] }), _jsxs(\"div\", { className: \"flex items-center flex-col\", children: [_jsxs(\"div\", { className: \"py-4 w-70\", children: [_jsx(GoogleSignInButton, {}), _jsx(GitHubSignInButton, {}), _jsx(MicrosoftSignInButton, {})] }), _jsxs(\"div\", { className: \"flex items-center flex-row w-70 text-muted\", children: [_jsx(\"hr\", { className: \"w-full\" }), _jsx(\"div\", { className: \"px-2 text-xs\", children: \"OR\" }), _jsx(\"hr\", { className: \"w-full\" })] }), _jsx(\"div\", { className: \"py-4 w-70\", children: _jsx(EnterpriseSigninButton, {}) })] }), authError && (_jsx(\"div\", { className: \"text-center\", children: _jsxs(\"div\", { className: \"\", children: [\"Sorry, we have not been able to sign you in.\", _jsx(\"br\", {}), \"Please try again or contact\", _jsx(\"a\", { className: 'text-info mx-1', href: \"mailto:support@vertesiahq.com\", children: \"support@vertesiahq.com\" }), \"if it persists.\", _jsxs(\"pre\", { className: \"mt-2\", children: [\"Error: \", authError.message] })] }) }))] })) })] }));\n}\n//# sourceMappingURL=SigninScreen.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useState } from 'react';\nimport { Button, Center, ErrorBox, Input, SelectBox, Spinner, useFetch, useToast } from '@vertesia/ui/core';\nimport { Env } from \"@vertesia/ui/env\";\nimport { useLocation } from \"@vertesia/ui/router\";\nimport { fetchComposableTokenFromFirebaseToken, useUserSession } from '@vertesia/ui/session';\nfunction getClientInfo(location) {\n const params = new URLSearchParams(location.search);\n let redirect = params.get('redirect_uri');\n const code = params.get('code');\n if (!redirect || !code) {\n return null;\n }\n redirect = decodeURI(redirect);\n if (!redirect.startsWith('http://127.0.0.1:') && !redirect.startsWith('http://localhost:')) {\n return null;\n }\n const profile = params.get('profile') ?? \"default\";\n const project = params.get('project') ?? undefined;\n const account = params.get('account') ?? undefined;\n return { redirect, code, profile, project, account };\n}\nexport function TerminalLogin() {\n const [payload, setPayload] = useState();\n const [error, setError] = useState();\n const location = useLocation();\n const clientInfo = getClientInfo(location);\n const toast = useToast();\n const onAccept = async (data) => {\n if (!clientInfo)\n return;\n if (!data.profile) {\n toast({\n title: 'Profile is required',\n description: 'Please enter a profile name to save the client authorization',\n status: 'error',\n duration: 2000\n });\n return;\n }\n if (!data.account) {\n toast({\n title: 'Account is required',\n description: 'Please select an account to authorize the client to access the ComposablePrompts servers',\n status: 'error',\n duration: 2000\n });\n return;\n }\n if (!data.project) {\n toast({\n title: 'Project is required',\n description: 'Please select a project to authorize the client to access the ComposablePrompts servers',\n status: 'error',\n duration: 2000\n });\n return;\n }\n // expire in 1 day\n let payload;\n try {\n const token = await fetchComposableTokenFromFirebaseToken(data.account, data.project, 24 * 3600);\n if (token) {\n payload = {\n ...data,\n studio_server_url: Env.endpoints.studio,\n zeno_server_url: Env.endpoints.zeno,\n token,\n };\n await fetch(clientInfo.redirect, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload)\n });\n setPayload(payload);\n }\n else {\n toast({\n title: 'Failed to get composable token',\n status: 'error',\n duration: 5000\n });\n }\n }\n catch (err) {\n if (payload) {\n setError(err);\n setPayload(payload);\n }\n else {\n toast({\n title: 'Error authorizing client',\n description: err.message,\n status: 'error',\n duration: 5000\n });\n }\n }\n };\n const getPageContent = () => {\n if (!clientInfo) {\n return _jsx(ErrorBox, { title: 'Invalid request', children: \"This page should be called by a terminal client to authenticate against the ComposablePrompts servers\" });\n }\n return payload\n ? _jsx(AuthDoneScreen, { payload: payload, error: error })\n : _jsx(AuthAcceptScreen, { clientInfo: clientInfo, onAccept: onAccept });\n };\n const page = getPageContent();\n return (_jsx(\"div\", { className: \"w-full flex flex-col items-center gap-4 mt-24\", children: page }));\n}\nfunction AuthAcceptScreen({ onAccept, clientInfo }) {\n const { client, user } = useUserSession();\n const { data: allProjects, error } = useFetch(() => user ? client.projects.list() : Promise.resolve([]), [user]);\n if (error) {\n return _jsx(ErrorBox, { title: 'Error loading projects', children: error.message });\n }\n const getEnvironmentName = () => {\n if (Env.isLocalDev) {\n return \"Local Dev\";\n }\n else if (Env.isDev) {\n return \"Staging\";\n }\n return \"Production\";\n };\n const envName = getEnvironmentName();\n return user && allProjects ? (_jsxs(_Fragment, { children: [_jsxs(\"div\", { className: 'w-1/3', children: [_jsxs(\"div\", { className: \"mb-4 text-xl font-semibold text-gray-800\", children: [\"Authorizing client on \", envName, \" environment.\"] }), _jsxs(\"div\", { className: 'mb-2 text-md text-gray-800', children: [_jsx(\"div\", { children: \"A client app wants authorization to access the composable prompt servers in your name.\" }), _jsxs(\"div\", { children: [\"The client app code is \", _jsx(\"b\", { children: clientInfo.code }), \". You can check if the code is correct in the terminal.\"] })] }), _jsxs(\"div\", { className: 'mb-2 text-sm text-gray-600', children: [_jsx(\"div\", { children: \"You must choose the target account and project for the client to access.\" }), _jsx(\"div\", { children: \"Also, enter a profile name that will be used to save the authorization in your client configuration.\" })] })] }), _jsx(ProfileForm, { onAccept: onAccept, allProjects: allProjects, data: clientInfo })] })) : _jsx(Spinner, { size: 'lg' });\n}\nfunction AuthDoneScreen({ payload, error }) {\n const toast = useToast();\n const onCopy = () => {\n if (payload) {\n navigator.clipboard.writeText(JSON.stringify(payload));\n toast({\n title: 'Authentication Payload copied',\n description: error ? 'You can paste the authentication payload in the terminal to authenticate the client.' : 'You can close the page now.',\n status: 'success',\n duration: 5000\n });\n }\n };\n return (_jsxs(\"div\", { children: [error ?\n _jsxs(\"div\", { children: [_jsxs(ErrorBox, { title: 'Failed to send the authorization token to the cli tool', children: [\"This can happen due to security checks on Safari. The error is \\\"\", error.message, \"\\\"\"] }), _jsx(\"div\", { children: \"Don't worry, you can still authenticate the cli tool by pasting the authentication token in the terminal. You can close this page.\" })] })\n : _jsx(\"div\", { children: \"The client is authenticated. You can close this page.\" }), _jsx(Center, { className: \"mt-4\", children: _jsx(Button, { variant: 'secondary', onClick: onCopy, children: \"Copy the Authentication Payload\" }) })] }));\n}\nfunction ProfileForm({ allProjects, data, onAccept }) {\n const { accounts, account, project } = useUserSession();\n const [currentData, setCurrentData] = useState(() => ({\n profile: data.profile,\n account: data.account ?? account?.id,\n project: data.project ?? project?.id,\n }));\n const onChangeProfile = (value) => {\n setCurrentData({ ...currentData, profile: value });\n };\n const onChangeAccount = (value) => {\n setCurrentData({ ...currentData, account: value.id, project: undefined });\n };\n const onChangeProject = (value) => {\n setCurrentData({ ...currentData, project: value.id });\n };\n const projects = allProjects.filter(p => p.account === currentData.account);\n return (_jsxs(\"div\", { className: 'w-1/3', children: [_jsxs(\"div\", { className: \"mb-4 flex flex-col gap-2\", children: [_jsx(\"span\", { className: \"font-semibold text-gray-600\", children: \"Profile Name\" }), _jsx(Input, { type: 'text', value: currentData.profile, onChange: onChangeProfile })] }), _jsxs(\"div\", { className: \"mb-4 flex flex-col gap-2\", children: [_jsx(\"span\", { className: \"font-semibold text-gray-600\", children: \"Account\" }), _jsx(SelectAccount, { value: currentData.account, onChange: onChangeAccount, accounts: accounts || [] })] }), _jsxs(\"div\", { className: \"mb-4 flex flex-col gap-2\", children: [_jsx(\"span\", { className: \"font-semibold text-gray-600\", children: \"Project\" }), _jsx(SelectProject, { value: currentData.project, onChange: onChangeProject, projects: projects })] }), _jsx(\"div\", { className: \"pt-2\", children: _jsx(Button, { size: 'xl', onClick: () => onAccept(currentData), children: \"Authorize Client\" }) })] }));\n}\nfunction SelectAccount({ value, accounts, onChange }) {\n const _onChange = (value) => {\n onChange(value);\n };\n return _jsx(SelectBox, { options: accounts, value: accounts?.find(a => a.id === value), onChange: _onChange, by: \"id\", optionLabel: (option) => option.name, placeholder: 'Select Account' });\n}\nfunction SelectProject({ value, projects, onChange }) {\n const _onChange = (value) => {\n onChange(value);\n };\n return (_jsx(SelectBox, { by: \"id\", value: projects.find(p => p.id === value), options: projects, optionLabel: (option) => option.name, placeholder: 'Select Project', onChange: _onChange }));\n}\n//# sourceMappingURL=TerminalLogin.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Button, Modal, ModalBody, ModalFooter, ModalTitle } from \"@vertesia/ui/core\";\nimport GitHubSignInButton from \"./GitHubSignInButton\";\nimport GoogleSignInButton from \"./GoogleSignInButton\";\nimport MicrosoftSignInButton from \"./MicrosoftSigninButton\";\nexport default function SignInModal({ isOpen, onClose }) {\n return (_jsxs(Modal, { isOpen: isOpen, onClose: onClose, children: [_jsx(ModalTitle, { children: \"Sign In\" }), _jsxs(ModalBody, { className: \"flex justify-center\", children: [_jsx(GoogleSignInButton, {}), _jsx(GitHubSignInButton, {}), _jsx(MicrosoftSignInButton, {})] }), _jsx(ModalFooter, { justify: \"end\", children: _jsx(Button, { variant: \"ghost\", onClick: onClose, children: \"Cancel\" }) })] }));\n}\n//# sourceMappingURL=SignInModal.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { getTenantIdFromProject } from \"@vertesia/common\";\nimport { VTabs, VTabsBar, VTabsPanel, VTooltip } from \"@vertesia/ui/core\";\nimport { Env } from \"@vertesia/ui/env\";\nimport { useUserSession } from \"@vertesia/ui/session\";\nimport { Check, CopyIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nexport function InfoItems({ title, value }) {\n function copyToClipboard(value) {\n navigator.clipboard.writeText(value);\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n }\n const [isCopied, setIsCopied] = useState(false);\n return (_jsxs(\"div\", { className: \"w-full flex justify-between items-center mb-1\", children: [_jsxs(\"div\", { className: \"flex flex-col w-[calc(100%-3rem)]\", children: [_jsx(\"div\", { className: 'text-sm px-2 dark:text-slate-200', children: title }), _jsx(VTooltip, { description: value, size: \"xs\", placement: \"left\", children: _jsxs(\"div\", { className: 'text-xs truncate text-muted w-full text-left px-2', children: [value, \" \"] }) })] }), isCopied ?\n _jsx(Check, { className: \"size-4 cursor-pointer text-success\" })\n :\n _jsx(CopyIcon, { className: \"size-4 cursor-pointer text-gray-400 dark:text-slate-400\", onClick: () => copyToClipboard(value) })] }));\n}\nexport default function InfoList() {\n const session = useUserSession();\n const { account, project, client, authToken } = session;\n const server = new URL(client.baseUrl).hostname;\n const store = new URL(client.store.baseUrl).hostname;\n const tenantId = project ? getTenantIdFromProject(project) : '';\n const tabs = [\n {\n name: 'user',\n label: 'User',\n content: _jsxs(\"div\", { className: \"space-y-1 p-2\", children: [_jsx(InfoItems, { title: \"Organization ID\", value: account?.id ?? 'Unknown' }), _jsx(InfoItems, { title: \"Project ID\", value: project?.id ?? 'Unknown' }), _jsx(InfoItems, { title: \"User ID\", value: authToken?.sub ?? 'Unknown' }), _jsx(InfoItems, { title: \"Organization Roles\", value: authToken?.account_roles?.join(',') ?? 'Unknown' }), _jsx(InfoItems, { title: \"Project Roles\", value: authToken?.project_roles?.join(',') ?? 'Unknown' })] })\n },\n {\n name: 'environment',\n label: 'Environment',\n content: _jsxs(\"div\", { className: \"space-y-1 p-2\", children: [_jsx(InfoItems, { title: \"Tenant ID\", value: tenantId }), _jsx(InfoItems, { title: \"Environment\", value: Env.type }), _jsx(InfoItems, { title: \"Server\", value: server }), _jsx(InfoItems, { title: \"Store\", value: store }), _jsx(InfoItems, { title: \"App Version\", value: Env.version })] })\n }\n ];\n return (_jsx(\"div\", { className: \"w-full\", children: _jsxs(VTabs, { defaultValue: \"user\", tabs: tabs, fullWidth: true, children: [_jsx(VTabsBar, {}), _jsx(VTabsPanel, {})] }) }));\n}\n//# sourceMappingURL=UserInfo.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Avatar, Button, MenuList, ModeToggle, Spinner } from \"@vertesia/ui/core\";\nimport { useUserSession } from \"@vertesia/ui/session\";\nimport { Popover } from \"@vertesia/ui/widgets\";\nimport clsx from \"clsx\";\nimport { useState } from \"react\";\nimport SignInModal from \"./SignInModal\";\nimport InfoList from \"./UserInfo\";\nexport function UserSessionMenu({}) {\n const { user, isLoading } = useUserSession();\n const [showModal, setShowModal] = useState(false);\n if (isLoading) {\n return _jsx(Spinner, {});\n }\n else if (!user) {\n return _jsxs(_Fragment, { children: [_jsx(Button, { onClick: () => setShowModal(true), children: \"Sign In\" }), _jsx(SignInModal, { isOpen: showModal, onClose: () => setShowModal(false) })] });\n }\n else {\n return (_jsx(\"div\", { className: \"px-3\", children: _jsx(UserSessionPopup, { asMenuTrigger: true }) }));\n }\n}\nfunction UserSessionPopup({ className, asMenuTrigger = false }) {\n const session = useUserSession();\n const { user } = session;\n if (!session || !user)\n return null;\n return (_jsxs(Popover, { strategy: 'fixed', placement: 'bottom-start', zIndex: 100, children: [_jsx(Popover.Trigger, { click: true, children: _jsx(\"div\", { className: clsx(className, \"flex items-center justify-start\", asMenuTrigger && \"cursor-pointer\"), children: _jsx(Avatar, { size: 'sm', color: 'bg-amber-500', shape: 'circle', \n /*src={picture} */\n name: user?.name }) }) }), _jsx(Popover.Content, { className: \"w-[280px] mx-2 my-1\", children: _jsx(\"div\", { className: \"bg-white dark:bg-slate-900 shadow-lg rounded-md ring-1 ring-gray-200 dark:ring-slate-700\", children: _jsxs(\"div\", { className: 'divide-y divide-gray-200 dark:divide-slate-700', children: [_jsxs(\"div\", { className: 'py-2 pl-2', children: [_jsx(\"p\", { className: \"px-4 dark:text-white mb-1\", children: user?.name ?? 'Unknown' }), _jsx(\"p\", { className: \"px-4 text-xs text-gray-500\", children: user?.email ?? '' })] }), _jsx(\"div\", { className: \"w-full p-1\", children: _jsx(InfoList, {}) }), _jsx(\"div\", { className: 'py-2 pl-2', children: _jsx(ModeToggle, {}) }), _jsx(\"div\", { className: 'py-2', children: _jsx(MenuList, { children: _jsx(MenuList.Item, { className: 'px-2', onClick: () => session.logout(), children: \"Sign out\" }) }) })] }) }) })] }));\n}\n//# sourceMappingURL=UserSessionMenu.js.map","export function isVertesiaEmail(email) {\n return email ? (email.endsWith('@vertesiahq.com') ||\n email.endsWith('@becomposable.com') ||\n email.endsWith('@composableprompts.com')) : false;\n}\n//# sourceMappingURL=utils.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Transition } from \"@headlessui/react\";\nimport { Fragment, useEffect, useState } from \"react\";\nimport { useUserSession } from \"@vertesia/ui/session\";\nexport function SplashScreen({ icon: Icon }) {\n const { isLoading } = useUserSession();\n const [show, setShow] = useState(true);\n useEffect(() => {\n if (!isLoading) {\n setShow(false);\n }\n // setTimeout(() => {\n // setShow(false)\n // }, 2000)\n }, [isLoading]);\n // 300 500 700 1000\n return (_jsx(Transition, { appear: true, show: show, as: Fragment, unmount: true, leave: \"transition ease-in duration-500\", leaveFrom: \"opacity-100\", leaveTo: \"opacity-0\", children: _jsx(\"div\", { style: { zIndex: 999999 }, className: 'fixed inset-x-0 inset-y-0', children: _jsx(\"div\", { className: \"flex w-full h-full items-center justify-center\", children: _jsx(\"div\", { className: \"animate-[spin_4s_linear_infinite]\", children: _jsx(\"div\", { className: 'animate-pulse rounded-full bg-transparent', children: Icon || _jsx(LoadingIcon, {}) }) }) }) }) }));\n}\nfunction LoadingIcon() {\n const stopColor1 = \"currentColor\";\n const stopColor2 = \"currentColor\";\n // const stopColor1 = \"#4F46E5\";\n // const stopColor2 = \"#4F46E5\";\n return (_jsxs(\"svg\", { className: \"w-8 h-8 text-indigo-600\", viewBox: \"0 0 50 50\", xmlns: \"http://www.w3.org/2000/svg\", children: [_jsx(\"defs\", { children: _jsxs(\"linearGradient\", { id: \"spinner-gradient\", x1: \"1\", y1: \"0\", x2: \"0\", y2: \"1\", children: [_jsx(\"stop\", { offset: \"0%\", stopColor: stopColor1, stopOpacity: \"1\" }), _jsx(\"stop\", { offset: \"100%\", stopColor: stopColor2, stopOpacity: \"0\" })] }) }), _jsx(\"circle\", { cx: \"25\", cy: \"25\", r: \"20\", stroke: \"url(#spinner-gradient)\", strokeWidth: \"5\", fill: \"none\", strokeLinecap: \"round\" })] }));\n}\n//# sourceMappingURL=SplashScreen.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ThemeProvider, ToastProvider } from \"@vertesia/ui/core\";\nimport { UserPermissionProvider } from \"@vertesia/ui/features\";\nimport { UserSessionProvider } from \"@vertesia/ui/session\";\nimport { SplashScreen } from \"./SplashScreen\";\nimport { SigninScreen } from \"./login/SigninScreen\";\nexport function VertesiaShell({ children, lightLogo, darkLogo, loadingIcon }) {\n return (_jsx(ToastProvider, { children: _jsx(UserSessionProvider, { children: _jsxs(ThemeProvider, { defaultTheme: \"system\", storageKey: \"vite-ui-theme\", children: [_jsx(SplashScreen, { icon: loadingIcon }), _jsx(SigninScreen, { allowedPrefix: \"/shared/\", lightLogo: lightLogo, darkLogo: darkLogo }), _jsx(UserPermissionProvider, { children: children })] }) }) }));\n}\n//# sourceMappingURL=VertesiaShell.js.map"],"names":["InviteAcceptModal","session","useUserSession","client","account","showModal","setShowModal","useState","invites","setInvites","useEffect","listInvites","then","length","notLegacyInvites","filter","i","data","console","log","catch","err","error","id","closeModal","inviteList","map","invite","_jsxs","className","children","_jsx","name","project","role","invitedBy","Button","size","onClick","async","acceptInvite","fetchAccounts","accept","variant","rejectInvite","remainingInvites","reject","warn","VModal","isOpen","onClose","VModalTitle","VModalBody","EnterpriseSigninButton","redirectTo","isLoading","setIsLoading","trackEvent","useUXTracking","email","setEmail","toast","useToast","_Fragment","Input","value","onChange","placeholder","type","Spinner","test","setFirebaseTenant","title","status","duration","localStorage","setItem","provider","Env","firebase","providerType","OAuthProvider","redirectPath","window","location","pathname","GoogleAuthProvider","addScope","setCustomParameters","prompt","redirect_uri","origin","getProvider","firebaseTenantName","logger","info","vertesia","firebaseTenantId","signInWithRedirect","getFirebaseAuth","GitHubSignInButton","removeItem","GithubAuthProvider","src","loading","alt","GoogleSignInButton","MicrosoftSignInButton","companySizeOptions","label","accountTypeOptions","description","projectMaturityOptions","SignupForm","onSignup","goBack","accountType","setAccountType","undefined","companySize","setCompanySize","companyName","setCompanyName","companyWebsite","setCompanyWebsite","projectMaturity","setProjectMaturity","fbUser","setFbUser","setError","isCompany","user","getAuth","currentUser","displayName","FormItem","SelectStack","options","selected","find","option","onSelect","VSelectBox","optionLabel","required","signupData","maturity","JSON","stringify","fbToken","getIdToken","SigninScreen","allowedPrefix","isNested","lightLogo","darkLogo","allow","setAllow","useSafeLayoutEffect","href","startsWith","SigninScreenImpl","authError","style","zIndex","clsx","StandardSigninPanel","setSignupData","collectSignupData","setCollectSignupData","signOut","history","replaceState","goToSignup","UserNotFoundError","getItem","payload","firebaseToken","fetch","endpoints","studio","method","headers","body","res","message","TerminalLogin","setPayload","clientInfo","params","URLSearchParams","search","redirect","get","code","decodeURI","profile","getClientInfo","useLocation","onAccept","token","fetchComposableTokenFromFirebaseToken","studio_server_url","zeno_server_url","zeno","page","AuthDoneScreen","AuthAcceptScreen","ErrorBox","allProjects","useFetch","projects","list","Promise","resolve","envName","isLocalDev","isDev","ProfileForm","Center","navigator","clipboard","writeText","accounts","currentData","setCurrentData","p","SelectAccount","SelectProject","SelectBox","a","by","SignInModal","Modal","ModalTitle","ModalBody","ModalFooter","justify","InfoItems","isCopied","setIsCopied","VTooltip","placement","Check","CopyIcon","setTimeout","copyToClipboard","InfoList","authToken","server","URL","baseUrl","hostname","store","tenantId","getTenantIdFromProject","tabs","content","sub","account_roles","join","project_roles","version","VTabs","defaultValue","fullWidth","VTabsBar","VTabsPanel","UserSessionMenu","UserSessionPopup","asMenuTrigger","Popover","strategy","Trigger","click","Avatar","color","shape","Content","ModeToggle","MenuList","Item","logout","isVertesiaEmail","endsWith","SplashScreen","icon","Icon","show","setShow","Transition","appear","as","Fragment","unmount","leave","leaveFrom","leaveTo","LoadingIcon","viewBox","xmlns","x1","y1","x2","y2","offset","stopColor","stopOpacity","cx","cy","r","stroke","strokeWidth","fill","strokeLinecap","VertesiaShell","loadingIcon","ToastProvider","UserSessionProvider","ThemeProvider","defaultTheme","storageKey","UserPermissionProvider"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertesia/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.71.0",
|
|
4
4
|
"description": "Vertesia UI components and and hooks",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
7
7
|
"files": [
|
|
8
8
|
"lib",
|
|
9
|
-
"src"
|
|
9
|
+
"src",
|
|
10
|
+
"tsconfig.dist.json"
|
|
10
11
|
],
|
|
11
12
|
"license": "Apache-2.0",
|
|
12
13
|
"homepage": "https://docs.vertesiahq.com",
|
|
@@ -57,9 +58,9 @@
|
|
|
57
58
|
"remark-gfm": "^4.0.1",
|
|
58
59
|
"tailwind-merge": "^3.3.0",
|
|
59
60
|
"ts-md5": "^1.3.1",
|
|
60
|
-
"@vertesia/client": "0.
|
|
61
|
-
"@vertesia/json": "0.
|
|
62
|
-
"@vertesia/common": "0.
|
|
61
|
+
"@vertesia/client": "0.71.0",
|
|
62
|
+
"@vertesia/json": "0.71.0",
|
|
63
|
+
"@vertesia/common": "0.71.0"
|
|
63
64
|
},
|
|
64
65
|
"devDependencies": {
|
|
65
66
|
"@eslint/js": "^9.27.0",
|
|
@@ -6,8 +6,11 @@ import { Search } from "lucide-react"
|
|
|
6
6
|
import { cn } from "../libs/utils"
|
|
7
7
|
import { Dialog, DialogContent } from "./dialog"
|
|
8
8
|
|
|
9
|
-
const Command
|
|
10
|
-
React.
|
|
9
|
+
const Command: React.ForwardRefExoticComponent<
|
|
10
|
+
React.RefAttributes<HTMLDivElement> &
|
|
11
|
+
React.PropsWithoutRef<React.ComponentPropsWithoutRef<typeof CommandPrimitive>>
|
|
12
|
+
> = React.forwardRef<
|
|
13
|
+
HTMLDivElement,
|
|
11
14
|
React.ComponentPropsWithoutRef<typeof CommandPrimitive>
|
|
12
15
|
>(({ className, ...props }, ref) => (
|
|
13
16
|
<CommandPrimitive
|
|
@@ -19,6 +22,7 @@ const Command = React.forwardRef<
|
|
|
19
22
|
{...props}
|
|
20
23
|
/>
|
|
21
24
|
))
|
|
25
|
+
|
|
22
26
|
Command.displayName = CommandPrimitive.displayName
|
|
23
27
|
|
|
24
28
|
const CommandDialog = ({ children, ...props }: DialogProps) => {
|
|
@@ -33,8 +37,11 @@ const CommandDialog = ({ children, ...props }: DialogProps) => {
|
|
|
33
37
|
)
|
|
34
38
|
}
|
|
35
39
|
|
|
36
|
-
const CommandInput
|
|
37
|
-
React.
|
|
40
|
+
const CommandInput: React.ForwardRefExoticComponent<
|
|
41
|
+
React.RefAttributes<HTMLInputElement> &
|
|
42
|
+
React.PropsWithoutRef<React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>>
|
|
43
|
+
> = React.forwardRef<
|
|
44
|
+
HTMLInputElement,
|
|
38
45
|
React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>
|
|
39
46
|
>(({ className, ...props }, ref) => (
|
|
40
47
|
<div className="flex items-center px-3 border-b" cmdk-input-wrapper="">
|
|
@@ -53,8 +60,11 @@ const CommandInput = React.forwardRef<
|
|
|
53
60
|
|
|
54
61
|
CommandInput.displayName = CommandPrimitive.Input.displayName
|
|
55
62
|
|
|
56
|
-
const CommandList
|
|
57
|
-
React.
|
|
63
|
+
const CommandList: React.ForwardRefExoticComponent<
|
|
64
|
+
React.RefAttributes<HTMLDivElement> &
|
|
65
|
+
React.PropsWithoutRef<React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>>
|
|
66
|
+
> = React.forwardRef<
|
|
67
|
+
HTMLDivElement,
|
|
58
68
|
React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>
|
|
59
69
|
>(({ className, ...props }, ref) => (
|
|
60
70
|
<CommandPrimitive.List
|
|
@@ -66,8 +76,11 @@ const CommandList = React.forwardRef<
|
|
|
66
76
|
|
|
67
77
|
CommandList.displayName = CommandPrimitive.List.displayName
|
|
68
78
|
|
|
69
|
-
const CommandEmpty
|
|
70
|
-
React.
|
|
79
|
+
const CommandEmpty: React.ForwardRefExoticComponent<
|
|
80
|
+
React.RefAttributes<HTMLDivElement> &
|
|
81
|
+
React.PropsWithoutRef<React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>>
|
|
82
|
+
> = React.forwardRef<
|
|
83
|
+
HTMLDivElement,
|
|
71
84
|
React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>
|
|
72
85
|
>((props, ref) => (
|
|
73
86
|
<CommandPrimitive.Empty
|
|
@@ -79,8 +92,11 @@ const CommandEmpty = React.forwardRef<
|
|
|
79
92
|
|
|
80
93
|
CommandEmpty.displayName = CommandPrimitive.Empty.displayName
|
|
81
94
|
|
|
82
|
-
const CommandGroup
|
|
83
|
-
React.
|
|
95
|
+
const CommandGroup: React.ForwardRefExoticComponent<
|
|
96
|
+
React.RefAttributes<HTMLDivElement> &
|
|
97
|
+
React.PropsWithoutRef<React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>>
|
|
98
|
+
> = React.forwardRef<
|
|
99
|
+
HTMLDivElement,
|
|
84
100
|
React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>
|
|
85
101
|
>(({ className, ...props }, ref) => (
|
|
86
102
|
<CommandPrimitive.Group
|
|
@@ -96,8 +112,11 @@ const CommandGroup = React.forwardRef<
|
|
|
96
112
|
|
|
97
113
|
CommandGroup.displayName = CommandPrimitive.Group.displayName
|
|
98
114
|
|
|
99
|
-
const CommandSeparator
|
|
100
|
-
React.
|
|
115
|
+
const CommandSeparator: React.ForwardRefExoticComponent<
|
|
116
|
+
React.RefAttributes<HTMLDivElement> &
|
|
117
|
+
React.PropsWithoutRef<React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>>
|
|
118
|
+
> = React.forwardRef<
|
|
119
|
+
HTMLDivElement,
|
|
101
120
|
React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>
|
|
102
121
|
>(({ className, ...props }, ref) => (
|
|
103
122
|
<CommandPrimitive.Separator
|
|
@@ -106,10 +125,14 @@ const CommandSeparator = React.forwardRef<
|
|
|
106
125
|
{...props}
|
|
107
126
|
/>
|
|
108
127
|
))
|
|
128
|
+
|
|
109
129
|
CommandSeparator.displayName = CommandPrimitive.Separator.displayName
|
|
110
130
|
|
|
111
|
-
const CommandItem
|
|
112
|
-
React.
|
|
131
|
+
const CommandItem: React.ForwardRefExoticComponent<
|
|
132
|
+
React.RefAttributes<HTMLDivElement> &
|
|
133
|
+
React.PropsWithoutRef<React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>>
|
|
134
|
+
> = React.forwardRef<
|
|
135
|
+
HTMLDivElement,
|
|
113
136
|
React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>
|
|
114
137
|
>(({ className, ...props }, ref) => (
|
|
115
138
|
<CommandPrimitive.Item
|
|
@@ -11,12 +11,14 @@ const TabsContext = React.createContext<{
|
|
|
11
11
|
current?: string;
|
|
12
12
|
setTab?: (name: string) => void;
|
|
13
13
|
responsive?: boolean;
|
|
14
|
+
variant?: "tabs" | "pills";
|
|
14
15
|
}>({
|
|
15
16
|
size: undefined,
|
|
16
17
|
tabs: undefined,
|
|
17
18
|
current: undefined,
|
|
18
19
|
setTab: undefined,
|
|
19
|
-
responsive: false
|
|
20
|
+
responsive: false,
|
|
21
|
+
variant: "tabs"
|
|
20
22
|
});
|
|
21
23
|
|
|
22
24
|
interface TabsProps {
|
|
@@ -28,6 +30,7 @@ interface TabsProps {
|
|
|
28
30
|
children?: React.ReactNode;
|
|
29
31
|
onTabChange?: (tabName: string) => void;
|
|
30
32
|
responsive?: boolean;
|
|
33
|
+
variant?: "tabs" | "pills";
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
const VTabs = ({
|
|
@@ -38,7 +41,8 @@ const VTabs = ({
|
|
|
38
41
|
fullWidth,
|
|
39
42
|
children,
|
|
40
43
|
onTabChange,
|
|
41
|
-
responsive = false
|
|
44
|
+
responsive = false,
|
|
45
|
+
variant = "tabs"
|
|
42
46
|
}: TabsProps) => {
|
|
43
47
|
const currentValue = typeof current === 'function' ? current() : current || defaultValue;
|
|
44
48
|
|
|
@@ -62,7 +66,7 @@ const VTabs = ({
|
|
|
62
66
|
}, [handleValueChange]);
|
|
63
67
|
|
|
64
68
|
return (
|
|
65
|
-
<TabsContext.Provider value={{ tabs, size: fullWidth ? tabs.length : 0, current: value, setTab, responsive: responsive }}>
|
|
69
|
+
<TabsContext.Provider value={{ tabs, size: fullWidth ? tabs.length : 0, current: value, setTab, responsive: responsive, variant }}>
|
|
66
70
|
<TabsPrimitive.Root
|
|
67
71
|
defaultValue={tabs[0]?.name}
|
|
68
72
|
value={value}
|
|
@@ -76,7 +80,7 @@ const VTabs = ({
|
|
|
76
80
|
};
|
|
77
81
|
|
|
78
82
|
const VTabsBar = ({ className }: { className?: string }) => {
|
|
79
|
-
const { tabs, size, current, setTab, responsive } = React.useContext(TabsContext);
|
|
83
|
+
const { tabs, size, current, setTab, responsive, variant } = React.useContext(TabsContext);
|
|
80
84
|
|
|
81
85
|
const fullWidth = size !== 0;
|
|
82
86
|
|
|
@@ -114,13 +118,14 @@ const VTabsBar = ({ className }: { className?: string }) => {
|
|
|
114
118
|
/>
|
|
115
119
|
</div>
|
|
116
120
|
)}
|
|
117
|
-
<TabsList size={size} className={cn((fullWidth ? "w-full" : ""), className, (responsive ? "hidden lg:flex" : ""))}>
|
|
121
|
+
<TabsList size={size} variant={variant} className={cn((fullWidth ? "w-full" : ""), className, (responsive ? "hidden lg:flex" : ""))}>
|
|
118
122
|
{tabs.map((tab) => (
|
|
119
123
|
<TabsTrigger
|
|
120
124
|
key={tab.name}
|
|
121
125
|
value={tab.name}
|
|
122
126
|
disabled={tab.disabled}
|
|
123
127
|
href={tab.href}
|
|
128
|
+
variant={variant}
|
|
124
129
|
onClick={() => handleTabChange(tab.name)}
|
|
125
130
|
>
|
|
126
131
|
{tab.label}
|
|
@@ -149,13 +154,15 @@ const VTabsPanel = () => {
|
|
|
149
154
|
|
|
150
155
|
const TabsList = React.forwardRef<
|
|
151
156
|
React.ElementRef<typeof TabsPrimitive.List>,
|
|
152
|
-
React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> & { size?: number }
|
|
153
|
-
>(({ className, size, ...props }, ref) => (
|
|
154
|
-
<TabsContext.Provider value={{ size }}>
|
|
157
|
+
React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> & { size?: number; variant?: "tabs" | "pills" }
|
|
158
|
+
>(({ className, size, variant = "tabs", ...props }, ref) => (
|
|
159
|
+
<TabsContext.Provider value={{ size, variant }}>
|
|
155
160
|
<TabsPrimitive.List
|
|
156
161
|
ref={ref}
|
|
157
162
|
className={cn(
|
|
158
|
-
|
|
163
|
+
variant === "tabs"
|
|
164
|
+
? "border-b -mb-px flex space-x-4"
|
|
165
|
+
: "flex space-x-2 p-1 rounded-md",
|
|
159
166
|
className
|
|
160
167
|
)}
|
|
161
168
|
{...props}
|
|
@@ -168,8 +175,9 @@ const TabsTrigger = React.forwardRef<
|
|
|
168
175
|
React.ElementRef<typeof TabsPrimitive.Trigger>,
|
|
169
176
|
React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> & {
|
|
170
177
|
href?: string;
|
|
178
|
+
variant?: "tabs" | "pills";
|
|
171
179
|
}
|
|
172
|
-
>(({ className, href, ...props }, ref) => {
|
|
180
|
+
>(({ className, href, variant = "tabs", ...props }, ref) => {
|
|
173
181
|
const { size } = React.useContext(TabsContext);
|
|
174
182
|
|
|
175
183
|
const handleClick = React.useCallback((event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
|
|
@@ -186,10 +194,19 @@ const TabsTrigger = React.forwardRef<
|
|
|
186
194
|
<TabsPrimitive.Trigger
|
|
187
195
|
ref={ref}
|
|
188
196
|
className={cn(
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
197
|
+
variant === "tabs"
|
|
198
|
+
? cn(
|
|
199
|
+
"border-b-2 px-2 py-1.5 text-sm font-medium whitespace-nowrap cursor-pointer",
|
|
200
|
+
"border-transparent text-muted-foreground hover:border-border hover:text-foreground",
|
|
201
|
+
"data-[state=active]:border-primary data-[state=active]:text-primary",
|
|
202
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
203
|
+
)
|
|
204
|
+
: cn(
|
|
205
|
+
"px-3 py-1.5 text-sm font-medium whitespace-nowrap cursor-pointer rounded-sm transition-colors",
|
|
206
|
+
"tborder border-input bg-muted shadow-xs hover:bg-muted ring-inset",
|
|
207
|
+
"data-[state=active]:bg-primary data-[state=active]:text-white data-[state=active]:shadow-sm",
|
|
208
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
209
|
+
),
|
|
193
210
|
className,
|
|
194
211
|
size ? `w-1/${size}` : ""
|
|
195
212
|
)}
|