@alpaca-editor/core 1.0.3938 → 1.0.3941
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/dist/components/ActionButton.d.ts +1 -0
- package/dist/components/ActionButton.js +2 -2
- package/dist/components/ActionButton.js.map +1 -1
- package/dist/editor/ContentTree.js +12 -8
- package/dist/editor/ContentTree.js.map +1 -1
- package/dist/editor/ContextMenu.d.ts +1 -1
- package/dist/editor/ContextMenu.js +17 -3
- package/dist/editor/ContextMenu.js.map +1 -1
- package/dist/editor/FieldActionsOverlay.d.ts +18 -0
- package/dist/editor/FieldActionsOverlay.js +139 -0
- package/dist/editor/FieldActionsOverlay.js.map +1 -0
- package/dist/editor/FieldHistory.d.ts +2 -1
- package/dist/editor/FieldHistory.js +11 -8
- package/dist/editor/FieldHistory.js.map +1 -1
- package/dist/editor/FieldListField.js +14 -17
- package/dist/editor/FieldListField.js.map +1 -1
- package/dist/editor/PictureCropper.js +65 -23
- package/dist/editor/PictureCropper.js.map +1 -1
- package/dist/editor/PictureEditor.js +43 -3
- package/dist/editor/PictureEditor.js.map +1 -1
- package/dist/editor/Titlebar.js +19 -10
- package/dist/editor/Titlebar.js.map +1 -1
- package/dist/editor/ai/AiTerminal.js +27 -41
- package/dist/editor/ai/AiTerminal.js.map +1 -1
- package/dist/editor/ai/GhostWriter.js +21 -2
- package/dist/editor/ai/GhostWriter.js.map +1 -1
- package/dist/editor/client/EditorClient.js +48 -18
- package/dist/editor/client/EditorClient.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +1 -1
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/itemsRepository.js +126 -90
- package/dist/editor/client/itemsRepository.js.map +1 -1
- package/dist/editor/commands/componentCommands.js +7 -3
- package/dist/editor/commands/componentCommands.js.map +1 -1
- package/dist/editor/media-selector/MediaFolderBrowser.d.ts +5 -0
- package/dist/editor/media-selector/MediaFolderBrowser.js +77 -0
- package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -0
- package/dist/editor/media-selector/MediaSelector.js +1 -1
- package/dist/editor/media-selector/MediaSelector.js.map +1 -1
- package/dist/editor/media-selector/Thumbnails.js +2 -2
- package/dist/editor/media-selector/index.d.ts +8 -0
- package/dist/editor/media-selector/index.js +9 -0
- package/dist/editor/media-selector/index.js.map +1 -0
- package/dist/editor/menubar/BrowseHistory.js +3 -4
- package/dist/editor/menubar/BrowseHistory.js.map +1 -1
- package/dist/editor/menubar/PageSelector.js +62 -10
- package/dist/editor/menubar/PageSelector.js.map +1 -1
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js +1 -1
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js +37 -11
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.js +98 -2
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/pageModel.d.ts +14 -0
- package/dist/editor/reviews/Comment.js +3 -2
- package/dist/editor/reviews/Comment.js.map +1 -1
- package/dist/editor/services/aiService.js +0 -1
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/editor/services/editService.d.ts +1 -1
- package/dist/editor/services/editService.js +2 -1
- package/dist/editor/services/editService.js.map +1 -1
- package/dist/editor/sidebar/ComponentTree.js +3 -4
- package/dist/editor/sidebar/ComponentTree.js.map +1 -1
- package/dist/editor/ui/Icons.js +1 -1
- package/dist/editor/ui/Icons.js.map +1 -1
- package/dist/editor/ui/ItemList.d.ts +16 -0
- package/dist/editor/ui/ItemList.js +19 -0
- package/dist/editor/ui/ItemList.js.map +1 -0
- package/dist/editor/ui/ItemSearch.js +2 -12
- package/dist/editor/ui/ItemSearch.js.map +1 -1
- package/dist/editor/ui/SimpleTabs.d.ts +1 -0
- package/dist/editor/ui/SimpleTabs.js +3 -3
- package/dist/editor/ui/SimpleTabs.js.map +1 -1
- package/dist/editor/ui/Splitter.js +61 -6
- package/dist/editor/ui/Splitter.js.map +1 -1
- package/dist/editor/views/MediaFolderEditView.d.ts +4 -0
- package/dist/editor/views/MediaFolderEditView.js +40 -0
- package/dist/editor/views/MediaFolderEditView.js.map +1 -0
- package/dist/editor/views/SingleEditView.js +9 -1
- package/dist/editor/views/SingleEditView.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/styles.css +64 -13
- package/package.json +8 -2
- package/.prettierrc +0 -3
- package/build.css +0 -3
- package/components.json +0 -21
- package/eslint.config.mjs +0 -4
- package/images/bg-shape-black.webp +0 -0
- package/images/wizard-bg.png +0 -0
- package/images/wizard-tour.png +0 -0
- package/images/wizard.png +0 -0
- package/src/client-components/api.ts +0 -6
- package/src/client-components/index.ts +0 -19
- package/src/components/ActionButton.tsx +0 -41
- package/src/components/Error.tsx +0 -57
- package/src/components/ui/CardConnector.tsx +0 -56
- package/src/components/ui/button.tsx +0 -62
- package/src/components/ui/card.tsx +0 -372
- package/src/components/ui/context-menu.tsx +0 -250
- package/src/config/config.tsx +0 -917
- package/src/config/types.ts +0 -286
- package/src/editor/ComponentInfo.tsx +0 -90
- package/src/editor/ConfirmationDialog.tsx +0 -103
- package/src/editor/ContentTree.tsx +0 -727
- package/src/editor/ContextMenu.tsx +0 -212
- package/src/editor/Editor.tsx +0 -90
- package/src/editor/EditorWarning.tsx +0 -34
- package/src/editor/EditorWarnings.tsx +0 -33
- package/src/editor/FieldEditorPopup.tsx +0 -65
- package/src/editor/FieldHistory.tsx +0 -74
- package/src/editor/FieldList.tsx +0 -190
- package/src/editor/FieldListField.tsx +0 -391
- package/src/editor/FieldListFieldWithFallbacks.tsx +0 -217
- package/src/editor/FloatingToolbar.tsx +0 -163
- package/src/editor/ImageEditor.tsx +0 -128
- package/src/editor/ItemInfo.tsx +0 -90
- package/src/editor/LinkEditorDialog.tsx +0 -196
- package/src/editor/MainLayout.tsx +0 -95
- package/src/editor/MobileLayout.tsx +0 -68
- package/src/editor/NewEditorClient.tsx +0 -11
- package/src/editor/PictureCropper.tsx +0 -503
- package/src/editor/PictureEditor.tsx +0 -212
- package/src/editor/PictureEditorDialog.tsx +0 -381
- package/src/editor/PublishDialog.ignore +0 -74
- package/src/editor/ScrollingContentTree.tsx +0 -67
- package/src/editor/Terminal.tsx +0 -227
- package/src/editor/Titlebar.tsx +0 -93
- package/src/editor/ai/AiPopup.tsx +0 -59
- package/src/editor/ai/AiResponseMessage.tsx +0 -106
- package/src/editor/ai/AiTerminal.tsx +0 -514
- package/src/editor/ai/AiToolCall.tsx +0 -61
- package/src/editor/ai/EditorAiTerminal.tsx +0 -20
- package/src/editor/ai/GhostWriter.tsx +0 -432
- package/src/editor/ai/aiPageModel.ts +0 -108
- package/src/editor/ai/editorAiContext.ts +0 -18
- package/src/editor/client/AboutDialog.tsx +0 -44
- package/src/editor/client/EditorClient.tsx +0 -2197
- package/src/editor/client/GenericDialog.tsx +0 -50
- package/src/editor/client/editContext.ts +0 -412
- package/src/editor/client/helpers.ts +0 -44
- package/src/editor/client/itemsRepository.ts +0 -538
- package/src/editor/client/operations.ts +0 -768
- package/src/editor/client/pageModelBuilder.ts +0 -219
- package/src/editor/commands/commands.ts +0 -22
- package/src/editor/commands/componentCommands.tsx +0 -424
- package/src/editor/commands/createVersionCommand.ts +0 -33
- package/src/editor/commands/deleteVersionCommand.ts +0 -71
- package/src/editor/commands/itemCommands.tsx +0 -351
- package/src/editor/commands/localizeItem/LocalizeItemDialog.tsx +0 -201
- package/src/editor/commands/localizeItem/LocalizeItemUtils.ts +0 -27
- package/src/editor/commands/undo.ts +0 -39
- package/src/editor/component-designer/ComponentDesigner.tsx +0 -70
- package/src/editor/component-designer/ComponentDesignerAiTerminal.tsx +0 -11
- package/src/editor/component-designer/ComponentDesignerMenu.tsx +0 -91
- package/src/editor/component-designer/ComponentEditor.tsx +0 -97
- package/src/editor/component-designer/ComponentRenderingCodeEditor.tsx +0 -31
- package/src/editor/component-designer/ComponentRenderingEditor.tsx +0 -104
- package/src/editor/component-designer/ComponentsDropdown.tsx +0 -39
- package/src/editor/component-designer/PlaceholdersEditor.tsx +0 -179
- package/src/editor/component-designer/RenderingsDropdown.tsx +0 -36
- package/src/editor/component-designer/TemplateEditor.tsx +0 -236
- package/src/editor/component-designer/aiContext.ts +0 -23
- package/src/editor/componentTreeHelper.tsx +0 -116
- package/src/editor/context-menu/CopyMoveMenu.tsx +0 -103
- package/src/editor/context-menu/InsertMenu.tsx +0 -347
- package/src/editor/control-center/About.tsx +0 -342
- package/src/editor/control-center/ControlCenterMenu.tsx +0 -76
- package/src/editor/control-center/IndexOverview.tsx +0 -50
- package/src/editor/control-center/IndexSettings.tsx +0 -266
- package/src/editor/control-center/Info.tsx +0 -104
- package/src/editor/control-center/QuotaInfo.tsx +0 -301
- package/src/editor/control-center/Status.tsx +0 -113
- package/src/editor/control-center/WebSocketMessages.tsx +0 -155
- package/src/editor/editor-warnings/ItemLocked.tsx +0 -63
- package/src/editor/editor-warnings/NoLanguageWriteAccess.tsx +0 -22
- package/src/editor/editor-warnings/NoWorkflowWriteAccess.tsx +0 -23
- package/src/editor/editor-warnings/NoWriteAccess.tsx +0 -16
- package/src/editor/editor-warnings/ValidationErrors.tsx +0 -54
- package/src/editor/field-types/AttachmentEditor.tsx +0 -9
- package/src/editor/field-types/CheckboxEditor.tsx +0 -47
- package/src/editor/field-types/DropLinkEditor.tsx +0 -80
- package/src/editor/field-types/DropListEditor.tsx +0 -84
- package/src/editor/field-types/ImageFieldEditor.tsx +0 -65
- package/src/editor/field-types/InternalLinkFieldEditor.tsx +0 -117
- package/src/editor/field-types/LinkFieldEditor.tsx +0 -85
- package/src/editor/field-types/MultiLineText.tsx +0 -82
- package/src/editor/field-types/PictureFieldEditor.tsx +0 -121
- package/src/editor/field-types/RawEditor.tsx +0 -53
- package/src/editor/field-types/ReactQuill.tsx +0 -580
- package/src/editor/field-types/RichTextEditor.tsx +0 -22
- package/src/editor/field-types/RichTextEditorComponent.tsx +0 -127
- package/src/editor/field-types/SingleLineText.tsx +0 -174
- package/src/editor/field-types/TreeListEditor.tsx +0 -261
- package/src/editor/fieldTypes.ts +0 -140
- package/src/editor/media-selector/AiImageSearch.tsx +0 -185
- package/src/editor/media-selector/AiImageSearchPrompt.tsx +0 -94
- package/src/editor/media-selector/MediaSelector.tsx +0 -42
- package/src/editor/media-selector/Preview.tsx +0 -14
- package/src/editor/media-selector/Thumbnails.tsx +0 -48
- package/src/editor/media-selector/TreeSelector.tsx +0 -292
- package/src/editor/media-selector/UploadZone.tsx +0 -137
- package/src/editor/menubar/ActionsMenu.tsx +0 -94
- package/src/editor/menubar/ActiveUsers.tsx +0 -17
- package/src/editor/menubar/ApproveAndPublish.tsx +0 -18
- package/src/editor/menubar/BrowseHistory.tsx +0 -37
- package/src/editor/menubar/ItemLanguageVersion.tsx +0 -76
- package/src/editor/menubar/LanguageSelector.tsx +0 -226
- package/src/editor/menubar/Menu.tsx +0 -83
- package/src/editor/menubar/NavButtons.tsx +0 -74
- package/src/editor/menubar/PageSelector.tsx +0 -141
- package/src/editor/menubar/PageViewerControls.tsx +0 -120
- package/src/editor/menubar/PreviewSecondaryControls.tsx +0 -18
- package/src/editor/menubar/SecondaryControls.tsx +0 -45
- package/src/editor/menubar/Separator.tsx +0 -12
- package/src/editor/menubar/SiteInfo.tsx +0 -53
- package/src/editor/menubar/User.tsx +0 -27
- package/src/editor/menubar/VersionSelector.tsx +0 -142
- package/src/editor/page-editor-chrome/CommentHighlighting.tsx +0 -307
- package/src/editor/page-editor-chrome/CommentHighlightings.tsx +0 -35
- package/src/editor/page-editor-chrome/FieldActionIndicator.tsx +0 -59
- package/src/editor/page-editor-chrome/FieldActionIndicators.tsx +0 -23
- package/src/editor/page-editor-chrome/FieldEditedIndicator.tsx +0 -64
- package/src/editor/page-editor-chrome/FieldEditedIndicators.tsx +0 -35
- package/src/editor/page-editor-chrome/FrameMenu.tsx +0 -338
- package/src/editor/page-editor-chrome/FrameMenus.tsx +0 -48
- package/src/editor/page-editor-chrome/InlineEditor.tsx +0 -765
- package/src/editor/page-editor-chrome/LockedFieldIndicator.tsx +0 -61
- package/src/editor/page-editor-chrome/NoLayout.tsx +0 -36
- package/src/editor/page-editor-chrome/PageEditorChrome.tsx +0 -122
- package/src/editor/page-editor-chrome/PictureEditorOverlay.tsx +0 -161
- package/src/editor/page-editor-chrome/PlaceholderDropZone.tsx +0 -169
- package/src/editor/page-editor-chrome/PlaceholderDropZones.tsx +0 -315
- package/src/editor/page-editor-chrome/SuggestionHighlighting.tsx +0 -300
- package/src/editor/page-editor-chrome/SuggestionHighlightings.tsx +0 -40
- package/src/editor/page-editor-chrome/useInlineAICompletion.tsx +0 -791
- package/src/editor/page-viewer/DeviceToolbar.tsx +0 -70
- package/src/editor/page-viewer/EditorForm.tsx +0 -258
- package/src/editor/page-viewer/MiniMap.tsx +0 -362
- package/src/editor/page-viewer/PageViewer.tsx +0 -169
- package/src/editor/page-viewer/PageViewerFrame.tsx +0 -879
- package/src/editor/page-viewer/pageModelSkeletonBuilder.ts +0 -412
- package/src/editor/page-viewer/pageViewContext.ts +0 -186
- package/src/editor/pageModel.ts +0 -208
- package/src/editor/picture-shared.tsx +0 -53
- package/src/editor/reviews/Comment.tsx +0 -308
- package/src/editor/reviews/Comments.tsx +0 -125
- package/src/editor/reviews/DiffView.tsx +0 -109
- package/src/editor/reviews/PreviewInfo.tsx +0 -35
- package/src/editor/reviews/Reviews.tsx +0 -280
- package/src/editor/reviews/SuggestedEdit.tsx +0 -316
- package/src/editor/reviews/reviewCommands.tsx +0 -47
- package/src/editor/reviews/useReviews.tsx +0 -70
- package/src/editor/services/aiService.ts +0 -174
- package/src/editor/services/componentDesignerService.ts +0 -151
- package/src/editor/services/contentService.ts +0 -180
- package/src/editor/services/editService.ts +0 -486
- package/src/editor/services/indexService.ts +0 -24
- package/src/editor/services/reviewsService.ts +0 -53
- package/src/editor/services/serviceHelper.ts +0 -95
- package/src/editor/services/suggestedEditsService.ts +0 -39
- package/src/editor/services/systemService.ts +0 -5
- package/src/editor/services/translationService.ts +0 -21
- package/src/editor/services-server/api.ts +0 -150
- package/src/editor/services-server/graphQL.ts +0 -106
- package/src/editor/sidebar/ComponentPalette.tsx +0 -161
- package/src/editor/sidebar/ComponentTree.tsx +0 -548
- package/src/editor/sidebar/ComponentTree2.tsxx +0 -490
- package/src/editor/sidebar/Debug.tsx +0 -111
- package/src/editor/sidebar/DictionaryEditor.tsx +0 -261
- package/src/editor/sidebar/EditHistory.tsx +0 -134
- package/src/editor/sidebar/GraphQL.tsx +0 -164
- package/src/editor/sidebar/Insert.tsx +0 -35
- package/src/editor/sidebar/MainContentTree.tsx +0 -102
- package/src/editor/sidebar/Performance.tsx +0 -53
- package/src/editor/sidebar/Sessions.tsx +0 -35
- package/src/editor/sidebar/Sidebar.tsx +0 -20
- package/src/editor/sidebar/SidebarView.tsx +0 -152
- package/src/editor/sidebar/Translations.tsx +0 -295
- package/src/editor/sidebar/Validation.tsx +0 -102
- package/src/editor/sidebar/ViewSelector.tsx +0 -60
- package/src/editor/sidebar/Workbox.tsx +0 -209
- package/src/editor/ui/CenteredMessage.tsx +0 -7
- package/src/editor/ui/CopyMoveTargetSelectorDialog.tsx +0 -81
- package/src/editor/ui/CopyToClipboardButton.tsx +0 -24
- package/src/editor/ui/DialogButtons.tsx +0 -11
- package/src/editor/ui/Icons.tsx +0 -708
- package/src/editor/ui/ItemNameDialogNew.tsx +0 -118
- package/src/editor/ui/ItemSearch.tsx +0 -190
- package/src/editor/ui/PerfectTree.tsx +0 -571
- package/src/editor/ui/Section.tsx +0 -35
- package/src/editor/ui/SimpleIconButton.tsx +0 -54
- package/src/editor/ui/SimpleMenu.tsx +0 -40
- package/src/editor/ui/SimpleTable.tsx +0 -60
- package/src/editor/ui/SimpleTabs.tsx +0 -55
- package/src/editor/ui/SimpleToolbar.tsx +0 -7
- package/src/editor/ui/Spinner.tsx +0 -9
- package/src/editor/ui/Splitter.tsx +0 -314
- package/src/editor/ui/StackedPanels.tsx +0 -134
- package/src/editor/ui/Toolbar.tsx +0 -7
- package/src/editor/utils/id-helper.ts +0 -3
- package/src/editor/utils/insertOptions.ts +0 -69
- package/src/editor/utils/itemutils.ts +0 -29
- package/src/editor/utils/useMemoDebug.ts +0 -28
- package/src/editor/utils.ts +0 -486
- package/src/editor/views/CompareView.tsx +0 -245
- package/src/editor/views/EditView.tsx +0 -27
- package/src/editor/views/ItemEditor.tsx +0 -58
- package/src/editor/views/SingleEditView.tsx +0 -46
- package/src/fonts/Geist-Black.woff2 +0 -0
- package/src/fonts/Geist-Bold.woff2 +0 -0
- package/src/fonts/Geist-ExtraBold.woff2 +0 -0
- package/src/fonts/Geist-ExtraLight.woff2 +0 -0
- package/src/fonts/Geist-Light.woff2 +0 -0
- package/src/fonts/Geist-Medium.woff2 +0 -0
- package/src/fonts/Geist-Regular.woff2 +0 -0
- package/src/fonts/Geist-SemiBold.woff2 +0 -0
- package/src/fonts/Geist-Thin.woff2 +0 -0
- package/src/fonts/Geist[wght].woff2 +0 -0
- package/src/fonts/index.ts +0 -10
- package/src/index.ts +0 -23
- package/src/lib/safelist.tsx +0 -16
- package/src/lib/utils.ts +0 -6
- package/src/page-wizard/PageWizard.tsx +0 -139
- package/src/page-wizard/WizardBox.tsx +0 -4
- package/src/page-wizard/WizardBoxConnector.tsx +0 -56
- package/src/page-wizard/WizardSteps.tsx +0 -458
- package/src/page-wizard/service.ts +0 -35
- package/src/page-wizard/startPageWizardCommand.ts +0 -26
- package/src/page-wizard/steps/BuildPageStep.tsx +0 -259
- package/src/page-wizard/steps/CollectStep.tsx +0 -296
- package/src/page-wizard/steps/ComponentTypesSelector.tsx +0 -454
- package/src/page-wizard/steps/Components.tsx +0 -193
- package/src/page-wizard/steps/ContentStep.tsx +0 -890
- package/src/page-wizard/steps/EditButton.tsx +0 -34
- package/src/page-wizard/steps/FieldEditor.tsx +0 -102
- package/src/page-wizard/steps/Generate.tsx +0 -60
- package/src/page-wizard/steps/ImagesStep.tsx +0 -382
- package/src/page-wizard/steps/LayoutStep.tsx +0 -227
- package/src/page-wizard/steps/MetaDataStep.tsx +0 -173
- package/src/page-wizard/steps/SelectStep.tsx +0 -281
- package/src/page-wizard/steps/schema.ts +0 -180
- package/src/page-wizard/steps/usePageCreator.ts +0 -325
- package/src/page-wizard/usePageWizard.ts +0 -79
- package/src/revision.ts +0 -2
- package/src/splash-screen/NewPage.tsx +0 -294
- package/src/splash-screen/OpenPage.tsx +0 -113
- package/src/splash-screen/RecentPages.tsx +0 -123
- package/src/splash-screen/SectionHeadline.tsx +0 -21
- package/src/splash-screen/SplashScreen.tsx +0 -195
- package/src/tour/Tour.tsx +0 -566
- package/src/tour/default-tour.tsx +0 -301
- package/src/tour/preview-tour.tsx +0 -128
- package/src/types.ts +0 -335
- package/styles.css +0 -765
- package/tsconfig.build.json +0 -31
- package/tsconfig.json +0 -14
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { cn } from "../../lib/utils";
|
|
2
|
-
|
|
3
|
-
export function CardConnector({
|
|
4
|
-
className,
|
|
5
|
-
direction,
|
|
6
|
-
}: {
|
|
7
|
-
className?: string;
|
|
8
|
-
direction?: "horizontal" | "vertical";
|
|
9
|
-
}) {
|
|
10
|
-
return (
|
|
11
|
-
<>
|
|
12
|
-
<div
|
|
13
|
-
className={cn(
|
|
14
|
-
"mt-[-3px] mb-[-3px] flex items-center justify-center",
|
|
15
|
-
className,
|
|
16
|
-
(!direction || direction === "horizontal") && "md:hidden",
|
|
17
|
-
)}
|
|
18
|
-
>
|
|
19
|
-
<svg
|
|
20
|
-
width="40"
|
|
21
|
-
height="31"
|
|
22
|
-
viewBox="0 0 40 31"
|
|
23
|
-
fill="none"
|
|
24
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
25
|
-
>
|
|
26
|
-
<path
|
|
27
|
-
d="M40 3.04199C33.8405 3.55018 29 8.70936 29 15C29 21.2906 33.8405 26.4498 40 26.958L40 31L-1.35505e-06 31L-1.18021e-06 27C6.62741 27 12 21.6274 12 15C12 8.37258 6.62741 3 -1.31134e-07 3L0 -1.74846e-06L40 0L40 3.04199Z"
|
|
28
|
-
fill="white"
|
|
29
|
-
/>
|
|
30
|
-
</svg>
|
|
31
|
-
</div>
|
|
32
|
-
|
|
33
|
-
<div
|
|
34
|
-
className={cn(
|
|
35
|
-
"mt-6 mr-[-3px] ml-[-3px] hidden",
|
|
36
|
-
className,
|
|
37
|
-
(!direction || direction === "horizontal") && "md:block",
|
|
38
|
-
)}
|
|
39
|
-
>
|
|
40
|
-
<svg
|
|
41
|
-
className={className}
|
|
42
|
-
width="31"
|
|
43
|
-
height="40"
|
|
44
|
-
viewBox="0 0 31 40"
|
|
45
|
-
fill="none"
|
|
46
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
47
|
-
>
|
|
48
|
-
<path
|
|
49
|
-
d="M3.04199 0C3.55018 6.15949 8.70936 11 15 11C21.2906 11 26.4498 6.1595 26.958 0H31V40H27C27 33.3726 21.6274 28 15 28C8.37258 28 3 33.3726 3 40H0V0H3.04199Z"
|
|
50
|
-
fill="white"
|
|
51
|
-
/>
|
|
52
|
-
</svg>
|
|
53
|
-
</div>
|
|
54
|
-
</>
|
|
55
|
-
);
|
|
56
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
3
|
-
import { cva, type VariantProps } from "class-variance-authority";
|
|
4
|
-
|
|
5
|
-
import { cn } from "../../lib/utils";
|
|
6
|
-
|
|
7
|
-
const buttonVariants = cva(
|
|
8
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
9
|
-
{
|
|
10
|
-
variants: {
|
|
11
|
-
variant: {
|
|
12
|
-
default:
|
|
13
|
-
"bg-theme-secondary text-primary-foreground shadow-xs hover:bg-theme-secondary/80",
|
|
14
|
-
destructive:
|
|
15
|
-
"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
16
|
-
outline:
|
|
17
|
-
"border bg-background hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
18
|
-
secondary:
|
|
19
|
-
"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
|
|
20
|
-
ghost:
|
|
21
|
-
"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
22
|
-
link: "text-primary underline-offset-4 hover:underline",
|
|
23
|
-
},
|
|
24
|
-
size: {
|
|
25
|
-
default: "h-8 px-7 py-5 has-[>svg]:px-3 md:text-sm text-xs",
|
|
26
|
-
sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
|
|
27
|
-
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
28
|
-
icon: "size-9",
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
defaultVariants: {
|
|
32
|
-
variant: "default",
|
|
33
|
-
size: "default",
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
function Button({
|
|
39
|
-
className,
|
|
40
|
-
variant,
|
|
41
|
-
size,
|
|
42
|
-
asChild = false,
|
|
43
|
-
...props
|
|
44
|
-
}: React.ComponentProps<"button"> &
|
|
45
|
-
VariantProps<typeof buttonVariants> & {
|
|
46
|
-
asChild?: boolean;
|
|
47
|
-
}) {
|
|
48
|
-
const Comp = asChild ? Slot : "button";
|
|
49
|
-
|
|
50
|
-
return (
|
|
51
|
-
<Comp
|
|
52
|
-
data-slot="button"
|
|
53
|
-
className={cn(
|
|
54
|
-
"cursor-pointer",
|
|
55
|
-
buttonVariants({ variant, size, className }),
|
|
56
|
-
)}
|
|
57
|
-
{...props}
|
|
58
|
-
/>
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export { Button, buttonVariants };
|
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
import { cn } from "../../lib/utils";
|
|
2
|
-
import { useState, useEffect } from "react";
|
|
3
|
-
import { Expand, Shrink } from "lucide-react";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* A reusable card component with header (icon, title, description) and content area.
|
|
7
|
-
* Originally created for the page wizard but now available as a generic UI component.
|
|
8
|
-
*/
|
|
9
|
-
export function Card({
|
|
10
|
-
children,
|
|
11
|
-
icon,
|
|
12
|
-
title,
|
|
13
|
-
description,
|
|
14
|
-
className,
|
|
15
|
-
noPadding,
|
|
16
|
-
collapsible = "no",
|
|
17
|
-
defaultCollapsed = "no",
|
|
18
|
-
summary,
|
|
19
|
-
footer,
|
|
20
|
-
showFullscreenButton = false,
|
|
21
|
-
onFullscreen,
|
|
22
|
-
}: {
|
|
23
|
-
children: React.ReactNode;
|
|
24
|
-
icon: React.ReactNode;
|
|
25
|
-
title: string;
|
|
26
|
-
description: string;
|
|
27
|
-
className?: string;
|
|
28
|
-
noPadding?: boolean;
|
|
29
|
-
collapsible?: "yes" | "no" | "mobileOnly";
|
|
30
|
-
defaultCollapsed?: "yes" | "no" | "mobileOnly";
|
|
31
|
-
summary?: React.ReactNode;
|
|
32
|
-
footer?: React.ReactNode;
|
|
33
|
-
showFullscreenButton?: boolean;
|
|
34
|
-
onFullscreen?: () => void;
|
|
35
|
-
}) {
|
|
36
|
-
const [isExpanded, setIsExpanded] = useState(() => {
|
|
37
|
-
if (defaultCollapsed === "yes") return false; // Starts collapsed
|
|
38
|
-
if (defaultCollapsed === "no") return true; // Starts expanded
|
|
39
|
-
if (defaultCollapsed === "mobileOnly") return false; // Starts collapsed on mobile, but we'll handle desktop separately
|
|
40
|
-
return true; // Default
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
const [isFullscreen, setIsFullscreen] = useState(false);
|
|
44
|
-
|
|
45
|
-
const isCollapsibleEnabled = collapsible !== "no";
|
|
46
|
-
|
|
47
|
-
// Prevent body scroll when fullscreen is active
|
|
48
|
-
useEffect(() => {
|
|
49
|
-
if (isFullscreen) {
|
|
50
|
-
document.body.style.overflow = "hidden";
|
|
51
|
-
return () => {
|
|
52
|
-
document.body.style.overflow = "";
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
}, [isFullscreen]);
|
|
56
|
-
|
|
57
|
-
// Check if collapsible behavior should be active (considering mobile-only options)
|
|
58
|
-
const isCollapsibleActive = () => {
|
|
59
|
-
if (collapsible === "no") return false;
|
|
60
|
-
if (collapsible === "mobileOnly") {
|
|
61
|
-
// Only collapsible on mobile - we'll handle this with CSS classes
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
return true; // For "yes"
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
// Determine what content to show based on collapsible state
|
|
68
|
-
const getContentToShow = () => {
|
|
69
|
-
if (!isCollapsibleEnabled) return children;
|
|
70
|
-
|
|
71
|
-
return isExpanded ? children : summary;
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const shouldShowContent = () => {
|
|
75
|
-
if (!isCollapsibleEnabled) return true;
|
|
76
|
-
|
|
77
|
-
// Always show content area if we have either main content or summary
|
|
78
|
-
if (!isExpanded && summary) return true;
|
|
79
|
-
if (isExpanded) return true;
|
|
80
|
-
|
|
81
|
-
return false;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const toggleExpanded = () => {
|
|
85
|
-
if (isCollapsibleActive()) {
|
|
86
|
-
setIsExpanded(!isExpanded);
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
const handleFullscreen = () => {
|
|
91
|
-
setIsFullscreen(true);
|
|
92
|
-
onFullscreen?.();
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
const handleExitFullscreen = () => {
|
|
96
|
-
setIsFullscreen(false);
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
return (
|
|
100
|
-
<>
|
|
101
|
-
{/* Blurred background overlay - only visible in fullscreen */}
|
|
102
|
-
{isFullscreen && (
|
|
103
|
-
<div
|
|
104
|
-
className="fixed inset-0 z-40 bg-black/20 backdrop-blur-sm md:hidden"
|
|
105
|
-
onClick={handleExitFullscreen}
|
|
106
|
-
/>
|
|
107
|
-
)}
|
|
108
|
-
|
|
109
|
-
<div
|
|
110
|
-
className={cn(
|
|
111
|
-
"flex flex-col rounded-lg bg-white transition-all duration-300 ease-in-out",
|
|
112
|
-
className,
|
|
113
|
-
isFullscreen && [
|
|
114
|
-
// Fullscreen styles - only on mobile
|
|
115
|
-
"fixed inset-0 z-50 mx-0 mt-[30px] h-[calc(100vh-60px)] shadow-xl md:relative md:inset-auto md:mx-auto md:mt-0 md:h-auto md:shadow-none",
|
|
116
|
-
],
|
|
117
|
-
)}
|
|
118
|
-
>
|
|
119
|
-
<div
|
|
120
|
-
className={cn(
|
|
121
|
-
"flex flex-col justify-between gap-1 p-4 pb-2 md:p-6 md:pb-4",
|
|
122
|
-
isCollapsibleEnabled && "cursor-pointer",
|
|
123
|
-
)}
|
|
124
|
-
onClick={isCollapsibleEnabled ? toggleExpanded : undefined}
|
|
125
|
-
>
|
|
126
|
-
<div className="flex items-center justify-between gap-2">
|
|
127
|
-
<div className="flex items-center gap-2">
|
|
128
|
-
<div className="text-theme-secondary flex h-4 w-4 items-center justify-center rounded-full">
|
|
129
|
-
{icon}
|
|
130
|
-
</div>
|
|
131
|
-
<div className="text-base font-bold text-neutral-800">
|
|
132
|
-
{title}
|
|
133
|
-
</div>
|
|
134
|
-
</div>
|
|
135
|
-
<div className="flex items-center gap-2">
|
|
136
|
-
{/* Fullscreen button - only on mobile */}
|
|
137
|
-
{showFullscreenButton && (
|
|
138
|
-
<button
|
|
139
|
-
onClick={handleFullscreen}
|
|
140
|
-
className={cn(
|
|
141
|
-
"flex-shrink-0 text-neutral-500 transition-colors duration-200 hover:text-neutral-700 md:hidden",
|
|
142
|
-
isFullscreen && "hidden",
|
|
143
|
-
)}
|
|
144
|
-
aria-label="Open fullscreen"
|
|
145
|
-
>
|
|
146
|
-
<Expand className="h-4 w-4" />
|
|
147
|
-
</button>
|
|
148
|
-
)}
|
|
149
|
-
|
|
150
|
-
{/* Exit fullscreen button - only visible in fullscreen */}
|
|
151
|
-
{showFullscreenButton && isFullscreen && (
|
|
152
|
-
<button
|
|
153
|
-
onClick={handleExitFullscreen}
|
|
154
|
-
className="flex-shrink-0 text-neutral-500 transition-colors duration-200 hover:text-neutral-700 md:hidden"
|
|
155
|
-
aria-label="Exit fullscreen"
|
|
156
|
-
>
|
|
157
|
-
<Shrink className="h-4 w-4" />
|
|
158
|
-
</button>
|
|
159
|
-
)}
|
|
160
|
-
|
|
161
|
-
{/* Show toggle in header when no summary is provided */}
|
|
162
|
-
{isCollapsibleEnabled && !summary && (
|
|
163
|
-
<>
|
|
164
|
-
{collapsible === "yes" && (
|
|
165
|
-
<button
|
|
166
|
-
onClick={toggleExpanded}
|
|
167
|
-
className="flex-shrink-0 text-neutral-500 transition-colors duration-200 hover:text-neutral-700"
|
|
168
|
-
aria-label={isExpanded ? "Collapse" : "Expand"}
|
|
169
|
-
>
|
|
170
|
-
<svg
|
|
171
|
-
className={cn(
|
|
172
|
-
"h-4 w-4 transition-transform duration-200",
|
|
173
|
-
isExpanded ? "rotate-180" : "rotate-0",
|
|
174
|
-
)}
|
|
175
|
-
fill="none"
|
|
176
|
-
stroke="currentColor"
|
|
177
|
-
viewBox="0 0 24 24"
|
|
178
|
-
>
|
|
179
|
-
<path
|
|
180
|
-
strokeLinecap="round"
|
|
181
|
-
strokeLinejoin="round"
|
|
182
|
-
strokeWidth={2}
|
|
183
|
-
d="M19 9l-7 7-7-7"
|
|
184
|
-
/>
|
|
185
|
-
</svg>
|
|
186
|
-
</button>
|
|
187
|
-
)}
|
|
188
|
-
{collapsible === "mobileOnly" && (
|
|
189
|
-
<button
|
|
190
|
-
onClick={toggleExpanded}
|
|
191
|
-
className="flex-shrink-0 text-neutral-500 transition-colors duration-200 hover:text-neutral-700 md:hidden"
|
|
192
|
-
aria-label={isExpanded ? "Collapse" : "Expand"}
|
|
193
|
-
>
|
|
194
|
-
<svg
|
|
195
|
-
className={cn(
|
|
196
|
-
"h-4 w-4 transition-transform duration-200",
|
|
197
|
-
isExpanded ? "rotate-180" : "rotate-0",
|
|
198
|
-
)}
|
|
199
|
-
fill="none"
|
|
200
|
-
stroke="currentColor"
|
|
201
|
-
viewBox="0 0 24 24"
|
|
202
|
-
>
|
|
203
|
-
<path
|
|
204
|
-
strokeLinecap="round"
|
|
205
|
-
strokeLinejoin="round"
|
|
206
|
-
strokeWidth={2}
|
|
207
|
-
d="M19 9l-7 7-7-7"
|
|
208
|
-
/>
|
|
209
|
-
</svg>
|
|
210
|
-
</button>
|
|
211
|
-
)}
|
|
212
|
-
</>
|
|
213
|
-
)}
|
|
214
|
-
</div>
|
|
215
|
-
</div>
|
|
216
|
-
<div className="mb-1 text-xs text-neutral-500">{description}</div>
|
|
217
|
-
</div>
|
|
218
|
-
|
|
219
|
-
{shouldShowContent() && (
|
|
220
|
-
<div
|
|
221
|
-
className={cn(
|
|
222
|
-
"flex-1 transition-all duration-300 ease-in-out",
|
|
223
|
-
noPadding ? "" : "p-4 pt-0 md:p-6 md:pt-0",
|
|
224
|
-
isFullscreen && "overflow-hidden",
|
|
225
|
-
// Handle responsive behavior for mobile-only collapsible options
|
|
226
|
-
collapsible === "mobileOnly" &&
|
|
227
|
-
!isExpanded &&
|
|
228
|
-
summary &&
|
|
229
|
-
"block md:hidden",
|
|
230
|
-
collapsible === "mobileOnly" && isExpanded && "block",
|
|
231
|
-
className,
|
|
232
|
-
)}
|
|
233
|
-
>
|
|
234
|
-
{!isExpanded && summary && isCollapsibleEnabled ? (
|
|
235
|
-
<div className="flex items-start justify-between gap-2">
|
|
236
|
-
<div className="flex-1 cursor-pointer" onClick={toggleExpanded}>
|
|
237
|
-
{summary}
|
|
238
|
-
</div>
|
|
239
|
-
{/* Show toggle button next to summary when summary exists */}
|
|
240
|
-
{collapsible === "yes" && (
|
|
241
|
-
<button
|
|
242
|
-
onClick={toggleExpanded}
|
|
243
|
-
className="flex-shrink-0 text-neutral-500 transition-colors duration-200 hover:text-neutral-700"
|
|
244
|
-
aria-label="Expand"
|
|
245
|
-
>
|
|
246
|
-
<svg
|
|
247
|
-
className="h-4 w-4 rotate-0 transition-transform duration-200"
|
|
248
|
-
fill="none"
|
|
249
|
-
stroke="currentColor"
|
|
250
|
-
viewBox="0 0 24 24"
|
|
251
|
-
>
|
|
252
|
-
<path
|
|
253
|
-
strokeLinecap="round"
|
|
254
|
-
strokeLinejoin="round"
|
|
255
|
-
strokeWidth={2}
|
|
256
|
-
d="M19 9l-7 7-7-7"
|
|
257
|
-
/>
|
|
258
|
-
</svg>
|
|
259
|
-
</button>
|
|
260
|
-
)}
|
|
261
|
-
{collapsible === "mobileOnly" && (
|
|
262
|
-
<button
|
|
263
|
-
onClick={toggleExpanded}
|
|
264
|
-
className="flex-shrink-0 text-neutral-500 transition-colors duration-200 hover:text-neutral-700 md:hidden"
|
|
265
|
-
aria-label="Expand"
|
|
266
|
-
>
|
|
267
|
-
<svg
|
|
268
|
-
className="h-4 w-4 rotate-0 transition-transform duration-200"
|
|
269
|
-
fill="none"
|
|
270
|
-
stroke="currentColor"
|
|
271
|
-
viewBox="0 0 24 24"
|
|
272
|
-
>
|
|
273
|
-
<path
|
|
274
|
-
strokeLinecap="round"
|
|
275
|
-
strokeLinejoin="round"
|
|
276
|
-
strokeWidth={2}
|
|
277
|
-
d="M19 9l-7 7-7-7"
|
|
278
|
-
/>
|
|
279
|
-
</svg>
|
|
280
|
-
</button>
|
|
281
|
-
)}
|
|
282
|
-
</div>
|
|
283
|
-
) : (
|
|
284
|
-
<>
|
|
285
|
-
{isExpanded && isCollapsibleEnabled && summary ? (
|
|
286
|
-
<>
|
|
287
|
-
{/* Show summary with toggle button */}
|
|
288
|
-
<div className="mb-4 flex items-start justify-between gap-2">
|
|
289
|
-
<div
|
|
290
|
-
className="flex-1 cursor-pointer"
|
|
291
|
-
onClick={toggleExpanded}
|
|
292
|
-
>
|
|
293
|
-
{summary}
|
|
294
|
-
</div>
|
|
295
|
-
{/* Show toggle button next to summary */}
|
|
296
|
-
{collapsible === "yes" && (
|
|
297
|
-
<button
|
|
298
|
-
onClick={toggleExpanded}
|
|
299
|
-
className="flex-shrink-0 text-neutral-500 transition-colors duration-200 hover:text-neutral-700"
|
|
300
|
-
aria-label="Collapse"
|
|
301
|
-
>
|
|
302
|
-
<svg
|
|
303
|
-
className="h-4 w-4 rotate-180 transition-transform duration-200"
|
|
304
|
-
fill="none"
|
|
305
|
-
stroke="currentColor"
|
|
306
|
-
viewBox="0 0 24 24"
|
|
307
|
-
>
|
|
308
|
-
<path
|
|
309
|
-
strokeLinecap="round"
|
|
310
|
-
strokeLinejoin="round"
|
|
311
|
-
strokeWidth={2}
|
|
312
|
-
d="M19 9l-7 7-7-7"
|
|
313
|
-
/>
|
|
314
|
-
</svg>
|
|
315
|
-
</button>
|
|
316
|
-
)}
|
|
317
|
-
{collapsible === "mobileOnly" && (
|
|
318
|
-
<button
|
|
319
|
-
onClick={toggleExpanded}
|
|
320
|
-
className="flex-shrink-0 text-neutral-500 transition-colors duration-200 hover:text-neutral-700 md:hidden"
|
|
321
|
-
aria-label="Collapse"
|
|
322
|
-
>
|
|
323
|
-
<svg
|
|
324
|
-
className="h-4 w-4 rotate-180 transition-transform duration-200"
|
|
325
|
-
fill="none"
|
|
326
|
-
stroke="currentColor"
|
|
327
|
-
viewBox="0 0 24 24"
|
|
328
|
-
>
|
|
329
|
-
<path
|
|
330
|
-
strokeLinecap="round"
|
|
331
|
-
strokeLinejoin="round"
|
|
332
|
-
strokeWidth={2}
|
|
333
|
-
d="M19 9l-7 7-7-7"
|
|
334
|
-
/>
|
|
335
|
-
</svg>
|
|
336
|
-
</button>
|
|
337
|
-
)}
|
|
338
|
-
</div>
|
|
339
|
-
{/* Show full content below summary */}
|
|
340
|
-
<div>{children}</div>
|
|
341
|
-
</>
|
|
342
|
-
) : (
|
|
343
|
-
getContentToShow()
|
|
344
|
-
)}
|
|
345
|
-
</>
|
|
346
|
-
)}
|
|
347
|
-
</div>
|
|
348
|
-
)}
|
|
349
|
-
|
|
350
|
-
{/* Show full content on desktop when using mobile-only collapsible options */}
|
|
351
|
-
{collapsible === "mobileOnly" && (
|
|
352
|
-
<div
|
|
353
|
-
className={cn(
|
|
354
|
-
"hidden flex-1 transition-all duration-300 ease-in-out md:block",
|
|
355
|
-
noPadding ? "" : "p-4 pt-0 md:p-6",
|
|
356
|
-
className,
|
|
357
|
-
)}
|
|
358
|
-
>
|
|
359
|
-
{children}
|
|
360
|
-
</div>
|
|
361
|
-
)}
|
|
362
|
-
|
|
363
|
-
{/* Footer - always displayed regardless of collapsed state */}
|
|
364
|
-
{footer && (
|
|
365
|
-
<div className="border-t border-gray-100 p-4 pt-0 md:p-6 md:pt-0">
|
|
366
|
-
{footer}
|
|
367
|
-
</div>
|
|
368
|
-
)}
|
|
369
|
-
</div>
|
|
370
|
-
</>
|
|
371
|
-
);
|
|
372
|
-
}
|