@keboola/design 2.0.0 → 2.1.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/README.md +57 -1
- package/dist/icon-names.d.cts +7 -0
- package/dist/icon-names.d.ts +7 -0
- package/dist/icons.cjs +12 -0
- package/dist/icons.d.cts +6 -0
- package/dist/icons.d.ts +6 -0
- package/dist/icons.js +1 -1
- package/dist/index.cjs +367 -135
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10184 -0
- package/dist/index.d.ts +10184 -0
- package/dist/index.js +392 -173
- package/dist/index.js.map +1 -1
- package/dist/markdown-editor.cjs +69 -49
- package/dist/markdown-editor.cjs.map +1 -1
- package/dist/markdown-editor.d.cts +74 -0
- package/dist/markdown-editor.d.ts +74 -0
- package/dist/markdown-editor.js +69 -49
- package/dist/markdown-editor.js.map +1 -1
- package/dist/mermaid.cjs +50 -23
- package/dist/mermaid.cjs.map +1 -1
- package/dist/mermaid.d.cts +11 -0
- package/dist/mermaid.d.ts +11 -0
- package/dist/mermaid.js +50 -23
- package/dist/mermaid.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +83 -12
- package/src/blocks/AIKit/AnswerSummary.stories.tsx +0 -38
- package/src/blocks/AIKit/AnswerSummary.tsx +0 -63
- package/src/blocks/AIKit/CollapsibleStepHeader.stories.tsx +0 -53
- package/src/blocks/AIKit/CollapsibleStepHeader.tsx +0 -64
- package/src/blocks/AIKit/InlineStepDetail.stories.tsx +0 -25
- package/src/blocks/AIKit/InlineStepDetail.tsx +0 -13
- package/src/blocks/AIKit/InlineStepLabel.stories.tsx +0 -37
- package/src/blocks/AIKit/InlineStepLabel.tsx +0 -36
- package/src/blocks/AIKit/MessageBubble.stories.tsx +0 -145
- package/src/blocks/AIKit/MessageBubble.tsx +0 -68
- package/src/blocks/AIKit/PlanApproval.stories.tsx +0 -121
- package/src/blocks/AIKit/PlanApproval.test.tsx +0 -241
- package/src/blocks/AIKit/PlanApproval.tsx +0 -363
- package/src/blocks/AIKit/PlanRewritingIndicator.test.tsx +0 -17
- package/src/blocks/AIKit/PlanRewritingIndicator.tsx +0 -20
- package/src/blocks/AIKit/PromptInput.stories.tsx +0 -106
- package/src/blocks/AIKit/PromptInput.test.tsx +0 -53
- package/src/blocks/AIKit/PromptInput.tsx +0 -218
- package/src/blocks/AIKit/PromptInputAction.tsx +0 -18
- package/src/blocks/AIKit/PromptInputSubmit.tsx +0 -59
- package/src/blocks/AIKit/Question.stories.tsx +0 -235
- package/src/blocks/AIKit/Question.tsx +0 -350
- package/src/blocks/AIKit/QuestionBlock.stories.tsx +0 -99
- package/src/blocks/AIKit/QuestionBlock.tsx +0 -83
- package/src/blocks/AIKit/SuggestedPrompt.stories.tsx +0 -82
- package/src/blocks/AIKit/SuggestedPrompt.tsx +0 -42
- package/src/blocks/AIKit/ThinkingIndicator.stories.tsx +0 -21
- package/src/blocks/AIKit/ThinkingIndicator.tsx +0 -14
- package/src/blocks/AIKit/index.ts +0 -12
- package/src/blocks/AutoSaveTextarea/AutoSaveTextarea.stories.tsx +0 -78
- package/src/blocks/AutoSaveTextarea/AutoSaveTextarea.tsx +0 -103
- package/src/blocks/AutoSaveTextarea/index.ts +0 -1
- package/src/blocks/ClipboardButton/ClipboardButton.stories.tsx +0 -28
- package/src/blocks/ClipboardButton/ClipboardButton.tsx +0 -43
- package/src/blocks/ClipboardButton/ClipboardInline.tsx +0 -40
- package/src/blocks/ClipboardButton/index.ts +0 -2
- package/src/blocks/ColorInput/ColorInput.stories.tsx +0 -109
- package/src/blocks/ColorInput/ColorInput.test.tsx +0 -163
- package/src/blocks/ColorInput/ColorInput.tsx +0 -171
- package/src/blocks/ColorInput/ColorPicker.tsx +0 -42
- package/src/blocks/ColorInput/index.ts +0 -1
- package/src/blocks/ColorInput/utils.test.ts +0 -189
- package/src/blocks/ColorInput/utils.ts +0 -74
- package/src/blocks/EmptyConfigurationActionCard/EmptyConfigurationActionCard.stories.tsx +0 -30
- package/src/blocks/EmptyConfigurationActionCard/EmptyConfigurationActionCard.tsx +0 -20
- package/src/blocks/EmptyConfigurationActionCard/index.ts +0 -1
- package/src/blocks/EmptyState/EmptyState.stories.tsx +0 -93
- package/src/blocks/EmptyState/EmptyState.tsx +0 -146
- package/src/blocks/EmptyState/index.ts +0 -1
- package/src/blocks/ErrorState/ErrorState.stories.tsx +0 -125
- package/src/blocks/ErrorState/ErrorState.tsx +0 -147
- package/src/blocks/ErrorState/index.ts +0 -1
- package/src/blocks/Form/components/FormBody.tsx +0 -27
- package/src/blocks/Form/components/SubmitButton.tsx +0 -30
- package/src/blocks/Form/connectors/CheckboxField.tsx +0 -34
- package/src/blocks/Form/connectors/FieldShell.tsx +0 -46
- package/src/blocks/Form/connectors/NumberField.tsx +0 -36
- package/src/blocks/Form/connectors/PasswordField.tsx +0 -38
- package/src/blocks/Form/connectors/SelectField.tsx +0 -73
- package/src/blocks/Form/connectors/SwitchField.tsx +0 -34
- package/src/blocks/Form/connectors/TextAreaField.tsx +0 -36
- package/src/blocks/Form/connectors/TextField.tsx +0 -36
- package/src/blocks/Form/contexts.ts +0 -4
- package/src/blocks/Form/formHook.ts +0 -45
- package/src/blocks/Form/index.ts +0 -2
- package/src/blocks/Form/setServerFieldErrors.test.ts +0 -38
- package/src/blocks/Form/setServerFieldErrors.ts +0 -21
- package/src/blocks/MermaidDiagram/MermaidDiagram.stories.tsx +0 -87
- package/src/blocks/MermaidDiagram/MermaidDiagram.tsx +0 -266
- package/src/blocks/MermaidDiagram/index.ts +0 -1
- package/src/blocks/MultiActionButtonGroup/MultiActionButton.stories.tsx +0 -119
- package/src/blocks/MultiActionButtonGroup/MultiActionButton.tsx +0 -41
- package/src/blocks/MultiActionButtonGroup/MultiActionButtonGroup.tsx +0 -16
- package/src/blocks/MultiActionButtonGroup/index.ts +0 -1
- package/src/blocks/MultiCombobox/MultiCombobox.stories.tsx +0 -324
- package/src/blocks/MultiCombobox/MultiCombobox.tsx +0 -257
- package/src/blocks/MultiCombobox/index.ts +0 -1
- package/src/blocks/NumberInput/NumberInput.stories.tsx +0 -112
- package/src/blocks/NumberInput/NumberInput.test.tsx +0 -148
- package/src/blocks/NumberInput/NumberInput.tsx +0 -89
- package/src/blocks/NumberInput/index.ts +0 -1
- package/src/blocks/PageHeader/AGENTS.md +0 -137
- package/src/blocks/PageHeader/PageHeader.stories.tsx +0 -371
- package/src/blocks/PageHeader/PageHeader.tsx +0 -22
- package/src/blocks/PageHeader/PageHeaderDetail.tsx +0 -84
- package/src/blocks/PageHeader/PageHeaderIndex.tsx +0 -75
- package/src/blocks/PageHeader/index.ts +0 -1
- package/src/blocks/PageHeader/styles.ts +0 -6
- package/src/blocks/PageLayout/AGENTS.md +0 -94
- package/src/blocks/PageLayout/PageLayout.stories.tsx +0 -146
- package/src/blocks/PageLayout/PageLayout.tsx +0 -139
- package/src/blocks/PageLayout/index.ts +0 -1
- package/src/blocks/PageToolbar/PageToolbar.stories.tsx +0 -353
- package/src/blocks/PageToolbar/PageToolbar.tsx +0 -160
- package/src/blocks/PageToolbar/PageToolbarToken.tsx +0 -61
- package/src/blocks/PageToolbar/index.ts +0 -1
- package/src/blocks/PasswordInput/PasswordInput.stories.tsx +0 -114
- package/src/blocks/PasswordInput/PasswordInput.test.tsx +0 -219
- package/src/blocks/PasswordInput/PasswordInput.tsx +0 -180
- package/src/blocks/PasswordInput/index.ts +0 -1
- package/src/blocks/SearchInput/SearchInput.stories.tsx +0 -127
- package/src/blocks/SearchInput/SearchInput.test.tsx +0 -162
- package/src/blocks/SearchInput/SearchInput.tsx +0 -172
- package/src/blocks/SearchInput/index.ts +0 -1
- package/src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.stories.tsx +0 -73
- package/src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.tsx +0 -92
- package/src/blocks/SearchInputWithNavigation/index.ts +0 -1
- package/src/blocks/SplitButton/SplitButton.stories.tsx +0 -91
- package/src/blocks/SplitButton/SplitButton.tsx +0 -81
- package/src/blocks/SplitButton/index.ts +0 -1
- package/src/blocks/Tagger/TagItem.tsx +0 -32
- package/src/blocks/Tagger/TagSelectPopover/TagSelectCreateItem.tsx +0 -44
- package/src/blocks/Tagger/TagSelectPopover/TagSelectItem.tsx +0 -31
- package/src/blocks/Tagger/TagSelectPopover/TagSelectList.tsx +0 -67
- package/src/blocks/Tagger/TagSelectPopover/TagSelectPopover.tsx +0 -34
- package/src/blocks/Tagger/TagSelectPopover/TagSelectValue.tsx +0 -47
- package/src/blocks/Tagger/TagSelectPopover/index.ts +0 -1
- package/src/blocks/Tagger/Tagger.stories.tsx +0 -80
- package/src/blocks/Tagger/Tagger.tsx +0 -101
- package/src/blocks/Tagger/index.ts +0 -1
- package/src/blocks/Tagger/types.ts +0 -11
- package/src/blocks/Textarea/Textarea.stories.tsx +0 -47
- package/src/blocks/Textarea/Textarea.tsx +0 -50
- package/src/blocks/Textarea/index.ts +0 -1
- package/src/components/Alert/Alert.stories.tsx +0 -101
- package/src/components/Alert/Alert.tsx +0 -121
- package/src/components/Alert/AlertAction.tsx +0 -31
- package/src/components/Alert/AlertCollapsibleIcon.tsx +0 -25
- package/src/components/Alert/AlertDescription.tsx +0 -36
- package/src/components/Alert/AlertIcon.tsx +0 -40
- package/src/components/Alert/AlertRoot.tsx +0 -64
- package/src/components/Alert/AlertTitle.tsx +0 -25
- package/src/components/Alert/index.ts +0 -1
- package/src/components/Avatar.stories.tsx +0 -22
- package/src/components/Avatar.tsx +0 -88
- package/src/components/Badge/Badge.stories.tsx +0 -122
- package/src/components/Badge/Badge.tsx +0 -71
- package/src/components/Badge/BadgeAddon.tsx +0 -63
- package/src/components/Badge/BadgeButton.tsx +0 -40
- package/src/components/Badge/BadgeLabel.tsx +0 -37
- package/src/components/Badge/BadgeRoot.tsx +0 -21
- package/src/components/Badge/index.ts +0 -1
- package/src/components/Badge/styles.ts +0 -74
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +0 -135
- package/src/components/Breadcrumb/Breadcrumb.tsx +0 -23
- package/src/components/Breadcrumb/BreadcrumbEllipsis.tsx +0 -43
- package/src/components/Breadcrumb/BreadcrumbItem.tsx +0 -9
- package/src/components/Breadcrumb/BreadcrumbLink.tsx +0 -48
- package/src/components/Breadcrumb/BreadcrumbList.tsx +0 -26
- package/src/components/Breadcrumb/BreadcrumbPage.tsx +0 -22
- package/src/components/Breadcrumb/BreadcrumbSeparator.tsx +0 -28
- package/src/components/Breadcrumb/index.ts +0 -1
- package/src/components/Button/Button.stories.tsx +0 -80
- package/src/components/Button/Button.tsx +0 -110
- package/src/components/Button/ButtonInline.stories.tsx +0 -54
- package/src/components/Button/ButtonInline.tsx +0 -77
- package/src/components/Button/index.ts +0 -3
- package/src/components/Button/styles.ts +0 -290
- package/src/components/ButtonGroup/ButtonGroup.stories.tsx +0 -140
- package/src/components/ButtonGroup/ButtonGroup.tsx +0 -79
- package/src/components/ButtonGroup/index.ts +0 -1
- package/src/components/Calendar/Calendar.stories.tsx +0 -101
- package/src/components/Calendar/Calendar.tsx +0 -44
- package/src/components/Calendar/index.ts +0 -2
- package/src/components/Card/Card.stories.tsx +0 -60
- package/src/components/Card/Card.tsx +0 -42
- package/src/components/Card/CardContent.tsx +0 -5
- package/src/components/Card/CardHeader.tsx +0 -5
- package/src/components/Card/CardTitle.tsx +0 -13
- package/src/components/Card/index.ts +0 -1
- package/src/components/Card/styles.ts +0 -32
- package/src/components/Checkbox/Checkbox.stories.tsx +0 -210
- package/src/components/Checkbox/Checkbox.test.tsx +0 -140
- package/src/components/Checkbox/Checkbox.tsx +0 -83
- package/src/components/Checkbox/index.ts +0 -1
- package/src/components/Checkbox/styles.ts +0 -77
- package/src/components/Clipboard/Clipboard.stories.tsx +0 -44
- package/src/components/Clipboard/Clipboard.tsx +0 -89
- package/src/components/Clipboard/index.ts +0 -1
- package/src/components/CodeEditor/ButtonToolbar.tsx +0 -14
- package/src/components/CodeEditor/CodeEditor.tsx +0 -155
- package/src/components/CodeEditor/SqlEditor.stories.tsx +0 -76
- package/src/components/CodeEditor/SqlEditor.tsx +0 -206
- package/src/components/CodeEditor/ToggleComponentHelp.tsx +0 -7
- package/src/components/CodeEditor/activeQueryHighlight.test.ts +0 -178
- package/src/components/CodeEditor/activeQueryHighlight.ts +0 -245
- package/src/components/CodeEditor/helpers.ts +0 -100
- package/src/components/CodeEditor/highlighting.ts +0 -184
- package/src/components/CodeEditor/index.ts +0 -3
- package/src/components/CodeEditor/search.ts +0 -186
- package/src/components/Collapse.stories.tsx +0 -56
- package/src/components/Collapse.tsx +0 -61
- package/src/components/Collapsible/Collapsible.stories.tsx +0 -55
- package/src/components/Collapsible/Collapsible.tsx +0 -11
- package/src/components/Collapsible/CollapsibleContent.tsx +0 -25
- package/src/components/Collapsible/index.ts +0 -1
- package/src/components/CollapsiblePanel.stories.tsx +0 -25
- package/src/components/CollapsiblePanel.tsx +0 -127
- package/src/components/Combobox/Combobox.stories.tsx +0 -426
- package/src/components/Combobox/Combobox.test.tsx +0 -165
- package/src/components/Combobox/Combobox.tsx +0 -345
- package/src/components/Combobox/ComboboxChips.tsx +0 -68
- package/src/components/Combobox/ComboboxContent.tsx +0 -95
- package/src/components/Combobox/ComboboxEmpty.tsx +0 -30
- package/src/components/Combobox/ComboboxInput.tsx +0 -10
- package/src/components/Combobox/ComboboxInputGroup.tsx +0 -38
- package/src/components/Combobox/ComboboxItem.tsx +0 -70
- package/src/components/Combobox/ComboboxItemIndicator.tsx +0 -78
- package/src/components/Combobox/ComboboxList.tsx +0 -32
- package/src/components/Combobox/ComboboxRoot.tsx +0 -5
- package/src/components/Combobox/ComboboxSeparator.tsx +0 -20
- package/src/components/Combobox/Group/ComboboxCollection.tsx +0 -7
- package/src/components/Combobox/Group/ComboboxGroup.tsx +0 -23
- package/src/components/Combobox/Group/ComboboxGroupLabel.tsx +0 -38
- package/src/components/Combobox/Group/index.ts +0 -3
- package/src/components/Combobox/index.ts +0 -1
- package/src/components/Combobox/types.ts +0 -22
- package/src/components/Combobox/utils.test.ts +0 -95
- package/src/components/Combobox/utils.ts +0 -103
- package/src/components/Command/Command.stories.tsx +0 -367
- package/src/components/Command/Command.tsx +0 -37
- package/src/components/Command/CommandContent.tsx +0 -19
- package/src/components/Command/CommandEmpty.tsx +0 -6
- package/src/components/Command/CommandGroup.tsx +0 -26
- package/src/components/Command/CommandInput.tsx +0 -27
- package/src/components/Command/CommandItem/CheckIndicator.tsx +0 -86
- package/src/components/Command/CommandItem/CommandItem.tsx +0 -94
- package/src/components/Command/CommandItem/index.ts +0 -1
- package/src/components/Command/CommandList.tsx +0 -32
- package/src/components/Command/CommandSeparator.tsx +0 -13
- package/src/components/Command/index.ts +0 -6
- package/src/components/DatePicker/DatePicker.tsx +0 -37
- package/src/components/DatePicker/index.ts +0 -1
- package/src/components/DiffView/DiffView.stories.tsx +0 -80
- package/src/components/DiffView/DiffView.tsx +0 -131
- package/src/components/DiffView/DiffViewMark.tsx +0 -21
- package/src/components/DiffView/DiffViewTd.tsx +0 -84
- package/src/components/DiffView/DiffViewTh.tsx +0 -23
- package/src/components/DiffView/index.ts +0 -11
- package/src/components/DiffView/util.test.ts +0 -231
- package/src/components/DiffView/util.ts +0 -311
- package/src/components/DotsLoader.tsx +0 -22
- package/src/components/DropdownMenu/DropdownMenu.stories.tsx +0 -310
- package/src/components/DropdownMenu/DropdownMenu.tsx +0 -61
- package/src/components/DropdownMenu/DropdownMenuCheckboxItem.tsx +0 -55
- package/src/components/DropdownMenu/DropdownMenuContent.tsx +0 -52
- package/src/components/DropdownMenu/DropdownMenuContext.tsx +0 -13
- package/src/components/DropdownMenu/DropdownMenuItem.tsx +0 -80
- package/src/components/DropdownMenu/DropdownMenuItemDescription.tsx +0 -42
- package/src/components/DropdownMenu/DropdownMenuItemIndicator.tsx +0 -104
- package/src/components/DropdownMenu/DropdownMenuLabel.tsx +0 -21
- package/src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.tsx +0 -31
- package/src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioItem.tsx +0 -67
- package/src/components/DropdownMenu/DropdownMenuRadioGroup/index.ts +0 -2
- package/src/components/DropdownMenu/DropdownMenuSeparator.tsx +0 -35
- package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSub.tsx +0 -3
- package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSubContent.tsx +0 -21
- package/src/components/DropdownMenu/DropdownMenuSub/DropdownMenuSubTrigger.tsx +0 -17
- package/src/components/DropdownMenu/DropdownMenuSub/index.ts +0 -3
- package/src/components/DropdownMenu/DropdownMenuTrigger.tsx +0 -19
- package/src/components/DropdownMenu/ItemIcon.tsx +0 -30
- package/src/components/DropdownMenu/index.ts +0 -1
- package/src/components/DropdownMenu/styles.ts +0 -82
- package/src/components/EmptySearchContent.stories.tsx +0 -12
- package/src/components/EmptySearchContent.tsx +0 -13
- package/src/components/FieldBox/FieldBox.stories.tsx +0 -138
- package/src/components/FieldBox/FieldBox.tsx +0 -43
- package/src/components/FieldBox/FieldBoxDescription.tsx +0 -18
- package/src/components/FieldBox/FieldBoxTitle.tsx +0 -20
- package/src/components/FieldBox/index.ts +0 -1
- package/src/components/FieldBox/styles.ts +0 -37
- package/src/components/FormGroup/FormGroup.stories.tsx +0 -120
- package/src/components/FormGroup/FormGroup.tsx +0 -48
- package/src/components/FormGroup/FormGroupColorInput.tsx +0 -15
- package/src/components/FormGroup/FormGroupHelp.tsx +0 -17
- package/src/components/FormGroup/FormGroupNumberInput.tsx +0 -15
- package/src/components/FormGroup/FormGroupTextInput.tsx +0 -15
- package/src/components/FormGroup/FormGroupTextarea.tsx +0 -12
- package/src/components/FormGroup/context.ts +0 -11
- package/src/components/FormGroup/index.ts +0 -2
- package/src/components/FormGroup/types.ts +0 -5
- package/src/components/FullScreenModal/FullScreenModal.tsx +0 -8
- package/src/components/FullScreenModal/FullScreenModalBody.tsx +0 -16
- package/src/components/FullScreenModal/FullScreenModalHeader.tsx +0 -92
- package/src/components/FullScreenModal/FullScreenModalRoot.tsx +0 -79
- package/src/components/FullScreenModal/index.ts +0 -3
- package/src/components/HelpBlock/HelpBlock.stories.tsx +0 -28
- package/src/components/HelpBlock/HelpBlock.tsx +0 -31
- package/src/components/HelpBlock/index.ts +0 -1
- package/src/components/HoverCard/HoverCard.stories.tsx +0 -77
- package/src/components/HoverCard/HoverCard.tsx +0 -13
- package/src/components/HoverCard/HoverCardContent.tsx +0 -68
- package/src/components/HoverCard/index.ts +0 -1
- package/src/components/Icon/Icon.stories.tsx +0 -26
- package/src/components/Icon/Icon.tsx +0 -10
- package/src/components/Icon/Icons.mdx +0 -28
- package/src/components/Icon/constants.ts +0 -1
- package/src/components/Icon/index.ts +0 -27
- package/src/components/Input/DateInput/DateInput.stories.tsx +0 -58
- package/src/components/Input/DateInput/DateInput.tsx +0 -143
- package/src/components/Input/DateInput/helpers.test.ts +0 -102
- package/src/components/Input/DateInput/helpers.ts +0 -59
- package/src/components/Input/DateInput/index.ts +0 -1
- package/src/components/Input/DateRangeInput/DateRangeInput.stories.tsx +0 -66
- package/src/components/Input/DateRangeInput/DateRangeInput.tsx +0 -139
- package/src/components/Input/DateRangeInput/helpers.test.ts +0 -146
- package/src/components/Input/DateRangeInput/helpers.ts +0 -36
- package/src/components/Input/DateRangeInput/index.ts +0 -1
- package/src/components/Input/Input.stories.tsx +0 -93
- package/src/components/Input/Input.test.tsx +0 -112
- package/src/components/Input/Input.tsx +0 -163
- package/src/components/Input/TextInput/TextInput.stories.tsx +0 -68
- package/src/components/Input/TextInput/TextInput.test.tsx +0 -52
- package/src/components/Input/TextInput/TextInput.tsx +0 -73
- package/src/components/Input/TextInput/index.ts +0 -1
- package/src/components/Input/TimeInput/TimeInput.stories.tsx +0 -89
- package/src/components/Input/TimeInput/TimeInput.tsx +0 -106
- package/src/components/Input/TimeInput/index.ts +0 -1
- package/src/components/Input/index.ts +0 -4
- package/src/components/Input/utils.ts +0 -11
- package/src/components/InputGroup/InputGroup.stories.tsx +0 -215
- package/src/components/InputGroup/InputGroup.tsx +0 -228
- package/src/components/InputGroup/InputGroupAddon.tsx +0 -57
- package/src/components/InputGroup/InputGroupButton.tsx +0 -25
- package/src/components/InputGroup/InputGroupInput.tsx +0 -34
- package/src/components/InputGroup/InputGroupText.tsx +0 -21
- package/src/components/InputGroup/InputGroupTextArea.tsx +0 -78
- package/src/components/InputGroup/index.ts +0 -1
- package/src/components/Kbd/Kbd.stories.tsx +0 -82
- package/src/components/Kbd/Kbd.tsx +0 -17
- package/src/components/Kbd/KbdGroup.tsx +0 -35
- package/src/components/Kbd/KbdSeparator.tsx +0 -9
- package/src/components/Kbd/index.ts +0 -3
- package/src/components/Kbd/keyboardKeys.ts +0 -40
- package/src/components/Kbd/styles.ts +0 -39
- package/src/components/Label/Label.stories.tsx +0 -53
- package/src/components/Label/Label.tsx +0 -31
- package/src/components/Label/index.ts +0 -1
- package/src/components/Link.stories.tsx +0 -19
- package/src/components/Link.tsx +0 -37
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +0 -182
- package/src/components/MarkdownEditor/MarkdownEditor.test.ts +0 -171
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +0 -245
- package/src/components/MarkdownEditor/context.ts +0 -10
- package/src/components/MarkdownEditor/index.ts +0 -1
- package/src/components/MarkdownEditor/nodes/ImageNode.tsx +0 -115
- package/src/components/MarkdownEditor/nodes/ImageNodeComponent.tsx +0 -18
- package/src/components/MarkdownEditor/nodes/MermaidNode.tsx +0 -72
- package/src/components/MarkdownEditor/nodes/MermaidNodeComponent.tsx +0 -35
- package/src/components/MarkdownEditor/plugins/ImagePastePlugin.tsx +0 -149
- package/src/components/MarkdownEditor/plugins/KeyboardPlugin.tsx +0 -81
- package/src/components/MarkdownEditor/plugins/MarkdownSyncPlugin.tsx +0 -65
- package/src/components/MarkdownEditor/plugins/ToolbarPlugin.tsx +0 -284
- package/src/components/MarkdownEditor/plugins/toolbar/AlignmentDropdown.tsx +0 -99
- package/src/components/MarkdownEditor/plugins/toolbar/BlockTypeDropdown.tsx +0 -142
- package/src/components/MarkdownEditor/plugins/toolbar/LinkPanel.tsx +0 -160
- package/src/components/MarkdownEditor/plugins/toolbar/ToolbarButton.tsx +0 -36
- package/src/components/MarkdownEditor/plugins/toolbar/ToolbarDivider.tsx +0 -1
- package/src/components/MarkdownEditor/theme.ts +0 -39
- package/src/components/MarkdownEditor/transformers.ts +0 -189
- package/src/components/MarkedText/MarkedText.stories.tsx +0 -46
- package/src/components/MarkedText/MarkedText.tsx +0 -36
- package/src/components/MarkedText/index.ts +0 -1
- package/src/components/MarkedText/utils.test.ts +0 -193
- package/src/components/MarkedText/utils.ts +0 -37
- package/src/components/MergeEditor/AcceptControls/AcceptButton.tsx +0 -25
- package/src/components/MergeEditor/AcceptControls/AcceptControls.tsx +0 -77
- package/src/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.tsx +0 -38
- package/src/components/MergeEditor/MergeEditor.stories.tsx +0 -226
- package/src/components/MergeEditor/MergeEditor.tsx +0 -125
- package/src/components/MergeEditor/MergePane.tsx +0 -113
- package/src/components/MergeEditor/PaneHeader.tsx +0 -11
- package/src/components/MergeEditor/constants.ts +0 -48
- package/src/components/MergeEditor/decorations.ts +0 -126
- package/src/components/MergeEditor/helpers.test.ts +0 -172
- package/src/components/MergeEditor/helpers.ts +0 -118
- package/src/components/MergeEditor/index.ts +0 -5
- package/src/components/MergeEditor/useMergeDiff.ts +0 -573
- package/src/components/MergeEditor/useScrollSync.ts +0 -79
- package/src/components/Modal/Modal.stories.tsx +0 -680
- package/src/components/Modal/Modal.tsx +0 -49
- package/src/components/Modal/ModalBody.tsx +0 -33
- package/src/components/Modal/ModalCloseIcon.tsx +0 -31
- package/src/components/Modal/ModalContent.tsx +0 -95
- package/src/components/Modal/ModalDescription.tsx +0 -20
- package/src/components/Modal/ModalFooter.tsx +0 -20
- package/src/components/Modal/ModalHeader.tsx +0 -61
- package/src/components/Modal/ModalIcon.tsx +0 -109
- package/src/components/Modal/ModalOverlay.tsx +0 -42
- package/src/components/Modal/ModalTitle.tsx +0 -12
- package/src/components/Modal/index.ts +0 -1
- package/src/components/Navbar/Navbar.stories.tsx +0 -191
- package/src/components/Navbar/Navbar.tsx +0 -80
- package/src/components/Navbar/NavbarContent.tsx +0 -20
- package/src/components/Navbar/NavbarFooter.tsx +0 -11
- package/src/components/Navbar/NavbarHeader.tsx +0 -11
- package/src/components/Navbar/NavbarMenu.tsx +0 -30
- package/src/components/Navbar/NavbarMenuAvatar.tsx +0 -67
- package/src/components/Navbar/NavbarMenuButton.tsx +0 -135
- package/src/components/Navbar/NavbarMenuItem.tsx +0 -9
- package/src/components/Navbar/NavbarMenuItemAdornment.tsx +0 -65
- package/src/components/Navbar/index.ts +0 -1
- package/src/components/Pagination/Pagination.stories.tsx +0 -131
- package/src/components/Pagination/Pagination.tsx +0 -34
- package/src/components/Pagination/PaginationButton.tsx +0 -36
- package/src/components/Pagination/PaginationContent.tsx +0 -12
- package/src/components/Pagination/PaginationEllipsis.tsx +0 -26
- package/src/components/Pagination/PaginationItem.tsx +0 -9
- package/src/components/Pagination/PaginationNext.tsx +0 -20
- package/src/components/Pagination/PaginationPrevious.tsx +0 -14
- package/src/components/Pagination/index.ts +0 -1
- package/src/components/PanelWithDetails.stories.tsx +0 -28
- package/src/components/PanelWithDetails.tsx +0 -65
- package/src/components/Popconfirm/Popconfirm.stories.tsx +0 -373
- package/src/components/Popconfirm/Popconfirm.tsx +0 -82
- package/src/components/Popconfirm/PopconfirmBody.tsx +0 -5
- package/src/components/Popconfirm/PopconfirmCancel.tsx +0 -45
- package/src/components/Popconfirm/PopconfirmConfirm.tsx +0 -57
- package/src/components/Popconfirm/PopconfirmContent.tsx +0 -33
- package/src/components/Popconfirm/PopconfirmFooter.tsx +0 -9
- package/src/components/Popconfirm/PopconfirmTrigger.tsx +0 -22
- package/src/components/Popconfirm/context.ts +0 -19
- package/src/components/Popconfirm/index.ts +0 -1
- package/src/components/Popover/Popover.stories.tsx +0 -85
- package/src/components/Popover/Popover.tsx +0 -15
- package/src/components/Popover/PopoverContent.tsx +0 -103
- package/src/components/Popover/index.ts +0 -1
- package/src/components/Progress/Progress.stories.tsx +0 -67
- package/src/components/Progress/Progress.tsx +0 -45
- package/src/components/Progress/index.ts +0 -1
- package/src/components/RadioGroup/Radio.tsx +0 -61
- package/src/components/RadioGroup/RadioGroup.stories.tsx +0 -300
- package/src/components/RadioGroup/RadioGroup.tsx +0 -64
- package/src/components/RadioGroup/RadioGroupItem.tsx +0 -60
- package/src/components/RadioGroup/RadioGroupItemButton.tsx +0 -79
- package/src/components/RadioGroup/RadioGroupSeparator.tsx +0 -12
- package/src/components/RadioGroup/context.ts +0 -13
- package/src/components/RadioGroup/index.ts +0 -1
- package/src/components/Resizable/Resizable.stories.tsx +0 -50
- package/src/components/Resizable/ResizableHandle.tsx +0 -50
- package/src/components/Resizable/ResizablePanel.tsx +0 -12
- package/src/components/Resizable/ResizablePanelGroup.tsx +0 -19
- package/src/components/Resizable/index.ts +0 -3
- package/src/components/ScrollArea/ScrollArea.stories.tsx +0 -43
- package/src/components/ScrollArea/ScrollArea.tsx +0 -50
- package/src/components/ScrollArea/ScrollBar.tsx +0 -32
- package/src/components/ScrollArea/index.ts +0 -2
- package/src/components/Search/ClearButton.tsx +0 -42
- package/src/components/Search/Search.stories.tsx +0 -77
- package/src/components/Search/Search.test.tsx +0 -224
- package/src/components/Search/Search.tsx +0 -139
- package/src/components/Search/SearchForm.tsx +0 -37
- package/src/components/Search/index.ts +0 -2
- package/src/components/Search/styles.ts +0 -88
- package/src/components/Search/utils.ts +0 -11
- package/src/components/Select/Select.stories.tsx +0 -109
- package/src/components/Select/Select.tsx +0 -141
- package/src/components/Select/SelectContent.tsx +0 -110
- package/src/components/Select/SelectGroup.tsx +0 -10
- package/src/components/Select/SelectItem.tsx +0 -72
- package/src/components/Select/SelectLabel.tsx +0 -32
- package/src/components/Select/SelectRoot.tsx +0 -6
- package/src/components/Select/SelectSeparator.tsx +0 -13
- package/src/components/Select/SelectTrigger.tsx +0 -161
- package/src/components/Select/index.ts +0 -1
- package/src/components/Separator/Separator.stories.tsx +0 -60
- package/src/components/Separator/Separator.test.tsx +0 -39
- package/src/components/Separator/Separator.tsx +0 -115
- package/src/components/Separator/index.ts +0 -1
- package/src/components/Sheet/Sheet.stories.tsx +0 -63
- package/src/components/Sheet/Sheet.tsx +0 -21
- package/src/components/Sheet/SheetBody.tsx +0 -12
- package/src/components/Sheet/SheetContent.tsx +0 -131
- package/src/components/Sheet/SheetFooter.tsx +0 -9
- package/src/components/Sheet/SheetHeader.tsx +0 -39
- package/src/components/Sheet/SheetOverlay.tsx +0 -11
- package/src/components/Sheet/SheetTitle.tsx +0 -12
- package/src/components/Sheet/index.ts +0 -1
- package/src/components/Sidebar/Sidebar.stories.tsx +0 -849
- package/src/components/Sidebar/Sidebar.tsx +0 -225
- package/src/components/Sidebar/SidebarContent.tsx +0 -61
- package/src/components/Sidebar/SidebarFillTrigger.tsx +0 -25
- package/src/components/Sidebar/SidebarFooter.tsx +0 -13
- package/src/components/Sidebar/SidebarGroup/SidebarGroup.tsx +0 -23
- package/src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx +0 -53
- package/src/components/Sidebar/SidebarGroup/SidebarGroupContent.tsx +0 -20
- package/src/components/Sidebar/SidebarGroup/SidebarGroupLabel.tsx +0 -76
- package/src/components/Sidebar/SidebarGroup/index.ts +0 -4
- package/src/components/Sidebar/SidebarHeader.tsx +0 -20
- package/src/components/Sidebar/SidebarInstanceContext.ts +0 -18
- package/src/components/Sidebar/SidebarMenu/SidebarMenu.tsx +0 -28
- package/src/components/Sidebar/SidebarMenu/SidebarMenuAction.tsx +0 -69
- package/src/components/Sidebar/SidebarMenu/SidebarMenuBadge.tsx +0 -56
- package/src/components/Sidebar/SidebarMenu/SidebarMenuButton.tsx +0 -110
- package/src/components/Sidebar/SidebarMenu/SidebarMenuCard.tsx +0 -108
- package/src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx +0 -30
- package/src/components/Sidebar/SidebarMenu/SidebarMenuItem.tsx +0 -9
- package/src/components/Sidebar/SidebarMenu/SidebarMenuSub.tsx +0 -139
- package/src/components/Sidebar/SidebarMenu/SidebarMenuSubItem.tsx +0 -106
- package/src/components/Sidebar/SidebarMenu/SidebarSearchInput.tsx +0 -88
- package/src/components/Sidebar/SidebarMenu/index.ts +0 -10
- package/src/components/Sidebar/SidebarProvider/SidebarProvider.tsx +0 -171
- package/src/components/Sidebar/SidebarProvider/context.ts +0 -35
- package/src/components/Sidebar/SidebarProvider/index.ts +0 -2
- package/src/components/Sidebar/SidebarProvider/useHoverTracking.test.ts +0 -199
- package/src/components/Sidebar/SidebarProvider/useHoverTracking.ts +0 -72
- package/src/components/Sidebar/SidebarProvider/useSidebarState.ts +0 -50
- package/src/components/Sidebar/SidebarProvider/useTransitionPresence.test.ts +0 -179
- package/src/components/Sidebar/SidebarProvider/useTransitionPresence.ts +0 -53
- package/src/components/Sidebar/SidebarResizeHandle.tsx +0 -28
- package/src/components/Sidebar/SidebarSeparator.tsx +0 -15
- package/src/components/Sidebar/SidebarTrigger.tsx +0 -40
- package/src/components/Sidebar/index.ts +0 -3
- package/src/components/Sidebar/types.ts +0 -6
- package/src/components/Sidebar/useResizeSidebar.ts +0 -112
- package/src/components/Sidebar/utils.test.ts +0 -178
- package/src/components/Sidebar/utils.ts +0 -70
- package/src/components/Skeleton/Skeleton.stories.tsx +0 -106
- package/src/components/Skeleton/Skeleton.tsx +0 -77
- package/src/components/Skeleton/SkeletonList.stories.tsx +0 -11
- package/src/components/Skeleton/SkeletonList.tsx +0 -65
- package/src/components/Slider/Slider.stories.tsx +0 -99
- package/src/components/Slider/Slider.tsx +0 -85
- package/src/components/Slider/SliderThumb.tsx +0 -57
- package/src/components/Slider/SliderTrack.tsx +0 -49
- package/src/components/Slider/index.ts +0 -1
- package/src/components/Slider/useInteracting.test.ts +0 -159
- package/src/components/Slider/useInteracting.ts +0 -64
- package/src/components/Switch/Switch.stories.tsx +0 -177
- package/src/components/Switch/Switch.tsx +0 -58
- package/src/components/Switch/index.ts +0 -1
- package/src/components/Switch/styles.ts +0 -173
- package/src/components/Table/Table.stories.tsx +0 -328
- package/src/components/Table/Table.tsx +0 -68
- package/src/components/Table/TableBody.tsx +0 -22
- package/src/components/Table/TableCell.tsx +0 -7
- package/src/components/Table/TableFooter.tsx +0 -15
- package/src/components/Table/TableHead.tsx +0 -15
- package/src/components/Table/TableHeader.tsx +0 -20
- package/src/components/Table/TableRow.tsx +0 -11
- package/src/components/Table/index.ts +0 -1
- package/src/components/Tabs.stories.tsx +0 -123
- package/src/components/Tabs.tsx +0 -134
- package/src/components/ThemeProvider/AIGradientSvg.tsx +0 -18
- package/src/components/ThemeProvider/ThemeProvider.tsx +0 -25
- package/src/components/ThemeProvider/index.ts +0 -1
- package/src/components/TimePicker/TimePicker.tsx +0 -95
- package/src/components/TimePicker/TimePickerButton.tsx +0 -39
- package/src/components/TimePicker/index.ts +0 -1
- package/src/components/TimePicker/utils.ts +0 -31
- package/src/components/Timeline/Timeline.stories.tsx +0 -246
- package/src/components/Timeline/Timeline.tsx +0 -35
- package/src/components/Timeline/TimelineConnector.tsx +0 -154
- package/src/components/Timeline/TimelineContent.tsx +0 -18
- package/src/components/Timeline/TimelineItem.tsx +0 -14
- package/src/components/Timeline/index.ts +0 -1
- package/src/components/Timeline/useLastLineHeight.ts +0 -36
- package/src/components/Toast/Toast.stories.tsx +0 -178
- package/src/components/Toast/ToastAction.tsx +0 -40
- package/src/components/Toast/ToastDescription.tsx +0 -28
- package/src/components/Toast/ToastDismiss.tsx +0 -36
- package/src/components/Toast/ToastDuration.tsx +0 -43
- package/src/components/Toast/ToastRoot.tsx +0 -135
- package/src/components/Toast/ToastTitle.tsx +0 -33
- package/src/components/Toast/Toaster.tsx +0 -25
- package/src/components/Toast/index.ts +0 -3
- package/src/components/Toast/toast.tsx +0 -94
- package/src/components/Toast/useNotification.tsx +0 -33
- package/src/components/Toggle/Toggle.stories.tsx +0 -67
- package/src/components/Toggle/Toggle.tsx +0 -202
- package/src/components/Toggle/index.ts +0 -1
- package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -60
- package/src/components/ToggleGroup/ToggleGroup.tsx +0 -99
- package/src/components/ToggleGroup/index.ts +0 -1
- package/src/components/Tooltip/Tooltip.stories.tsx +0 -82
- package/src/components/Tooltip/Tooltip.tsx +0 -110
- package/src/components/Tooltip/TooltipContent.tsx +0 -90
- package/src/components/Tooltip/TooltipRoot.tsx +0 -12
- package/src/components/Tooltip/TooltipTrigger.tsx +0 -42
- package/src/components/Tooltip/index.ts +0 -1
- package/src/components/Truncated.stories.tsx +0 -72
- package/src/components/Truncated.tsx +0 -78
- package/src/components/ZoomableSvg/ZoomableSvg.stories.tsx +0 -53
- package/src/components/ZoomableSvg/ZoomableSvg.tsx +0 -200
- package/src/components/ZoomableSvg/index.ts +0 -1
- package/src/constants/keyCodes.ts +0 -5
- package/src/docs/Colors.mdx +0 -19
- package/src/docs/Spacing.mdx +0 -35
- package/src/docs/Typography.mdx +0 -63
- package/src/docs/components/Typeset.tsx +0 -35
- package/src/hooks/useAutosizeInput.stories.tsx +0 -142
- package/src/hooks/useAutosizeInput.test.tsx +0 -77
- package/src/hooks/useAutosizeInput.tsx +0 -107
- package/src/hooks/useElement.ts +0 -16
- package/src/hooks/useScrollbarPosition.ts +0 -68
- package/src/icon-names.ts +0 -20
- package/src/icons/Keboola.tsx +0 -28
- package/src/icons/icons.stories.tsx +0 -174
- package/src/icons/index.ts +0 -186
- package/src/index.ts +0 -89
- package/src/patterns/AlertWithAction.stories.tsx +0 -30
- package/src/patterns/CardWithEmptyState.stories.tsx +0 -66
- package/src/patterns/ConfirmDialog.stories.tsx +0 -72
- package/src/patterns/CreatableMultiCombobox.stories.tsx +0 -33
- package/src/patterns/DataCardWithSkeleton.stories.tsx +0 -48
- package/src/patterns/DisabledButtonTooltip.stories.tsx +0 -30
- package/src/patterns/FilterToolbar.stories.tsx +0 -275
- package/src/patterns/InfoTooltip.stories.tsx +0 -56
- package/src/patterns/ListDetail.stories.tsx +0 -65
- package/src/patterns/ModalForm.stories.tsx +0 -59
- package/src/patterns/PageHeaderTabs.stories.tsx +0 -48
- package/src/utils/classNames.test.ts +0 -16
- package/src/utils/classNames.ts +0 -27
- package/src/utils/copyToClipboard.ts +0 -3
- package/src/utils/createChangeInputEvent.ts +0 -28
- package/src/utils/createPrefixedString.ts +0 -2
- package/src/utils/debounce.test.ts +0 -63
- package/src/utils/debounce.ts +0 -17
- package/src/utils/decorators.tsx +0 -16
- package/src/utils/escapeStringRegexp.ts +0 -4
- package/src/utils/index.ts +0 -11
- package/src/utils/isMac.ts +0 -26
- package/src/utils/legacyIcon.tsx +0 -28
- package/src/utils/mergeRefs.ts +0 -23
- package/src/utils/noop.ts +0 -1
- package/src/utils/useSHA256.ts +0 -21
- package/src/vite-env.d.ts +0 -1
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import type { ComponentPropsWithoutRef, ElementRef, ReactNode, Ref } from 'react';
|
|
2
|
-
|
|
3
|
-
import { cn } from '../../utils';
|
|
4
|
-
|
|
5
|
-
import { descriptionClass, titleClass, titleRowClass } from './styles';
|
|
6
|
-
|
|
7
|
-
// Index page header — list / collection pages (Flows, Storage, Jobs, …).
|
|
8
|
-
// Pattern: docs/patterns/page-header/index/index-page-header.md
|
|
9
|
-
// - No breadcrumbs (top-level pages).
|
|
10
|
-
// - `metadata` wins over `description` (mutually exclusive in pattern).
|
|
11
|
-
// - At most one primary `action`; pair with the `documentation` icon button.
|
|
12
|
-
/**
|
|
13
|
-
* Props for `PageHeader.Index`. Index pages have no breadcrumbs and no overflow menu — search and filters
|
|
14
|
-
* belong in `PageToolbar`, not here.
|
|
15
|
-
*/
|
|
16
|
-
type PageHeaderIndexProps = Omit<ComponentPropsWithoutRef<'header'>, 'title'> & {
|
|
17
|
-
title: ReactNode;
|
|
18
|
-
/** Prose description shown below the title. Mutually exclusive with `metadata` in the pattern; `metadata` wins when both are passed. */
|
|
19
|
-
description?: ReactNode;
|
|
20
|
-
/** Count / system summary shown below the title (e.g. "3 buckets and 39 tables"). Wins over `description`. */
|
|
21
|
-
metadata?: ReactNode;
|
|
22
|
-
/** Icon-only docs button (`Button argo variant="invisible" icon="book-blank"`). Sits next to `action`. */
|
|
23
|
-
documentation?: ReactNode;
|
|
24
|
-
/** Primary "create / add new X" `Button`. Pass `Button argo`. */
|
|
25
|
-
action?: ReactNode;
|
|
26
|
-
/** Optional `Tabs` row rendered below the title block. Use only when >1 dataset / section is worth navigating to. */
|
|
27
|
-
headerNav?: ReactNode;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Page header for top-level list / collection pages.
|
|
32
|
-
*
|
|
33
|
-
* **When to use:** the page is a list (Flows, Storage, Jobs, …) with no parent in the same section.
|
|
34
|
-
* Primary action is typically "create / add a new X".
|
|
35
|
-
* **When NOT to use:** for single-entity detail pages use `PageHeader.Detail`; for layouts that don't fit
|
|
36
|
-
* either pattern host custom JSX in `PageLayout.Header` directly.
|
|
37
|
-
* **Composition:** nest inside `PageLayout.Header`. Always pass `Button argo` into `action` and
|
|
38
|
-
* `documentation`. Search and filter chips belong in `PageToolbar`, not here.
|
|
39
|
-
*/
|
|
40
|
-
export const PageHeaderIndex = ({
|
|
41
|
-
ref,
|
|
42
|
-
className,
|
|
43
|
-
title,
|
|
44
|
-
description,
|
|
45
|
-
metadata,
|
|
46
|
-
documentation,
|
|
47
|
-
action,
|
|
48
|
-
headerNav,
|
|
49
|
-
...props
|
|
50
|
-
}: PageHeaderIndexProps & { ref?: Ref<ElementRef<'header'>> }) => {
|
|
51
|
-
const subtitle = metadata ?? description;
|
|
52
|
-
return (
|
|
53
|
-
<header
|
|
54
|
-
ref={ref}
|
|
55
|
-
className={cn('tw-flex tw-w-full tw-flex-col tw-gap-4', className)}
|
|
56
|
-
{...props}
|
|
57
|
-
>
|
|
58
|
-
<div className="tw-flex tw-w-full tw-items-start tw-justify-between tw-gap-4">
|
|
59
|
-
<div className="tw-flex tw-min-w-0 tw-flex-1 tw-flex-col tw-gap-2 tw-pr-2">
|
|
60
|
-
<div className={titleRowClass}>
|
|
61
|
-
<h1 className={titleClass}>{title}</h1>
|
|
62
|
-
</div>
|
|
63
|
-
{subtitle && <p className={descriptionClass}>{subtitle}</p>}
|
|
64
|
-
</div>
|
|
65
|
-
{(documentation || action) && (
|
|
66
|
-
<div className="tw-flex tw-shrink-0 tw-items-center tw-gap-2">
|
|
67
|
-
{documentation}
|
|
68
|
-
{action}
|
|
69
|
-
</div>
|
|
70
|
-
)}
|
|
71
|
-
</div>
|
|
72
|
-
{headerNav}
|
|
73
|
-
</header>
|
|
74
|
-
);
|
|
75
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { PageHeader } from './PageHeader';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export const titleRowClass = 'tw-flex tw-flex-wrap tw-items-center tw-gap-x-3 tw-gap-y-2';
|
|
2
|
-
export const titleClass =
|
|
3
|
-
'tw-m-0 tw-text-3xl tw-font-semibold tw-leading-9 tw-text-foreground tw-break-words';
|
|
4
|
-
export const badgesClass = 'tw-flex tw-flex-wrap tw-items-center tw-gap-2';
|
|
5
|
-
export const descriptionClass =
|
|
6
|
-
'tw-m-0 tw-max-w-[800px] tw-break-words tw-text-sm tw-leading-5 tw-text-muted-foreground';
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
# PageLayout
|
|
2
|
-
|
|
3
|
-
Compound block that gives every kbc-ui page the same shape. Renders the
|
|
4
|
-
**content column** of the page — the left-rail `Sidebar` lives outside it in
|
|
5
|
-
the app shell.
|
|
6
|
-
|
|
7
|
-
`PageLayout` is the page **chrome** only: max-width container + vertical
|
|
8
|
-
rhythm + named slots. It deliberately has no opinion about what goes inside
|
|
9
|
-
the slots — for the structured Index / Detail page-header patterns reach for
|
|
10
|
-
the `PageHeader` block.
|
|
11
|
-
|
|
12
|
-
## When to use
|
|
13
|
-
|
|
14
|
-
- **Always** reach for `PageLayout` first for a new page. Do not roll your own
|
|
15
|
-
`<div className="tw-flex tw-flex-col">` chrome.
|
|
16
|
-
- Put a `PageHeader.Index` or `PageHeader.Detail` inside `PageLayout.Header`
|
|
17
|
-
for the structured page-header patterns. Use the slot with custom JSX only
|
|
18
|
-
when neither variant fits.
|
|
19
|
-
|
|
20
|
-
## Anatomy
|
|
21
|
-
|
|
22
|
-
```text
|
|
23
|
-
PageLayout (Root) ← max-width container, vertical rhythm (gap-4)
|
|
24
|
-
├── PageLayout.Breadcrumbs ← Detail pattern only; usually composed by PageHeader.Detail
|
|
25
|
-
├── PageLayout.Header ← host PageHeader.Index / PageHeader.Detail (or custom JSX)
|
|
26
|
-
├── PageLayout.Tabs ← escape hatch for routing-based tab rows
|
|
27
|
-
├── PageToolbar ← search / filter pills (NEVER in header) — separate block
|
|
28
|
-
├── PageLayout.Content ← main slot
|
|
29
|
-
└── PageLayout.Footer ← bottom action bar (form submit, `sticky` variant)
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
All slots take any `ReactNode` — no structured props live on the slot itself.
|
|
33
|
-
|
|
34
|
-
`maxWidth` on the root: `narrow` (976px, forms) / `default` (1280px) /
|
|
35
|
-
`wide` (1600px, dense detail views) / `full`.
|
|
36
|
-
|
|
37
|
-
## Recommended composition
|
|
38
|
-
|
|
39
|
-
```tsx
|
|
40
|
-
// Index page
|
|
41
|
-
<PageLayout>
|
|
42
|
-
<PageLayout.Header>
|
|
43
|
-
<PageHeader.Index title="Storage" metadata="3 buckets and 39 tables" … />
|
|
44
|
-
</PageLayout.Header>
|
|
45
|
-
<PageToolbar>{searchAndFilters}</PageToolbar>
|
|
46
|
-
<PageLayout.Content>{list}</PageLayout.Content>
|
|
47
|
-
</PageLayout>
|
|
48
|
-
|
|
49
|
-
// Detail page — PageHeader.Detail owns the breadcrumbs row internally
|
|
50
|
-
<PageLayout>
|
|
51
|
-
<PageLayout.Header>
|
|
52
|
-
<PageHeader.Detail breadcrumbs={…} title="Marketing bucket" … />
|
|
53
|
-
</PageLayout.Header>
|
|
54
|
-
<PageLayout.Content>{body}</PageLayout.Content>
|
|
55
|
-
</PageLayout>
|
|
56
|
-
|
|
57
|
-
// Form
|
|
58
|
-
<PageLayout maxWidth="narrow">
|
|
59
|
-
<PageLayout.Header>
|
|
60
|
-
<PageHeader.Detail breadcrumbs={…} title="Create token" … />
|
|
61
|
-
</PageLayout.Header>
|
|
62
|
-
<PageLayout.Content>{fields}</PageLayout.Content>
|
|
63
|
-
</PageLayout>
|
|
64
|
-
<PageLayout.Footer sticky>{cancelAndSubmit}</PageLayout.Footer>
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## Rules from the design-system patterns
|
|
68
|
-
|
|
69
|
-
Source of truth: [evviku/design-system-docs page-header patterns](https://github.com/evviku/design-system-docs/tree/main/docs/patterns/page-header).
|
|
70
|
-
Most of these constraints are enforced by `PageHeader` itself; this block just
|
|
71
|
-
provides the chrome.
|
|
72
|
-
|
|
73
|
-
- **Index pages do not show breadcrumbs.** Skip `PageLayout.Breadcrumbs`
|
|
74
|
-
entirely on top-level list pages.
|
|
75
|
-
- **No search / filters / sorting in the header** — those belong in
|
|
76
|
-
`PageToolbar`.
|
|
77
|
-
|
|
78
|
-
## Component rules
|
|
79
|
-
|
|
80
|
-
- **Always opt into the `argo` variant** on any `Button` you render in
|
|
81
|
-
`PageLayout.Footer` or as custom Header JSX.
|
|
82
|
-
- **Never use a raw `<button>`** inside `PageLayout.Tabs`. Use the
|
|
83
|
-
`Tabs` / `TabsContent` core components from `@keboola/design`.
|
|
84
|
-
|
|
85
|
-
## Stories
|
|
86
|
-
|
|
87
|
-
`PageLayout.stories.tsx` focuses on the chrome — for the structured page
|
|
88
|
-
headers see `PageHeader.stories.tsx`.
|
|
89
|
-
|
|
90
|
-
| Story | Purpose |
|
|
91
|
-
| -------------------------- | ----------------------------------------------------- |
|
|
92
|
-
| `Anatomy` | Labelled slot positions with placeholders |
|
|
93
|
-
| `WithTabs` | `Tabs` core component nested in the layout |
|
|
94
|
-
| `FormPageWithStickyFooter` | `maxWidth="narrow"` + sticky footer (Cancel / submit) |
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
-
|
|
3
|
-
import { Breadcrumb } from '../../components/Breadcrumb';
|
|
4
|
-
import { Button } from '../../components/Button';
|
|
5
|
-
import { Tabs, TabsContent } from '../../components/Tabs';
|
|
6
|
-
import { PageToolbar } from '../PageToolbar';
|
|
7
|
-
|
|
8
|
-
import { PageLayout } from './PageLayout';
|
|
9
|
-
|
|
10
|
-
type Story = StoryObj<typeof PageLayout>;
|
|
11
|
-
|
|
12
|
-
export default {
|
|
13
|
-
component: PageLayout,
|
|
14
|
-
parameters: {
|
|
15
|
-
layout: 'fullscreen',
|
|
16
|
-
docs: {
|
|
17
|
-
description: {
|
|
18
|
-
component:
|
|
19
|
-
'Compound block that gives every kbc-ui page the same shape — max-width container, vertical rhythm, and slots for `Breadcrumbs`, `Header`, `Tabs`, `Content`, `Footer`. The slots are intentionally thin — for the structured Index / Detail page-header patterns reach for the `PageHeader` block, and for the search / filter row reach for the `PageToolbar` block. The page-navigation `Sidebar` lives **outside** `PageLayout` in the app shell.',
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
} satisfies Meta<typeof PageLayout>;
|
|
24
|
-
|
|
25
|
-
const Placeholder = ({ label, height = 'tw-h-48' }: { label: string; height?: string }) => (
|
|
26
|
-
<div
|
|
27
|
-
className={`tw-flex tw-items-center tw-justify-center tw-rounded tw-border tw-border-dashed tw-border-border tw-bg-muted/30 tw-text-sm tw-text-muted-foreground ${height}`}
|
|
28
|
-
>
|
|
29
|
-
{label}
|
|
30
|
-
</div>
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
// Anatomy — labelled slots with placeholder content so the slot positions are
|
|
34
|
-
// obvious. For real index / detail pages reach for `PageHeader.Index` /
|
|
35
|
-
// `PageHeader.Detail` in the `Header` slot rather than rolling your own.
|
|
36
|
-
export const Anatomy: Story = {
|
|
37
|
-
render: () => (
|
|
38
|
-
<PageLayout>
|
|
39
|
-
<PageLayout.Breadcrumbs>
|
|
40
|
-
<Breadcrumb>
|
|
41
|
-
<Breadcrumb.List>
|
|
42
|
-
<Breadcrumb.Item>
|
|
43
|
-
<Breadcrumb.Link href="#">Storage</Breadcrumb.Link>
|
|
44
|
-
</Breadcrumb.Item>
|
|
45
|
-
<Breadcrumb.Separator />
|
|
46
|
-
<Breadcrumb.Item>
|
|
47
|
-
<Breadcrumb.Page>Marketing bucket</Breadcrumb.Page>
|
|
48
|
-
</Breadcrumb.Item>
|
|
49
|
-
</Breadcrumb.List>
|
|
50
|
-
</Breadcrumb>
|
|
51
|
-
</PageLayout.Breadcrumbs>
|
|
52
|
-
|
|
53
|
-
<PageLayout.Header>
|
|
54
|
-
<Placeholder label="PageHeader.Index / PageHeader.Detail goes here" height="tw-h-24" />
|
|
55
|
-
</PageLayout.Header>
|
|
56
|
-
|
|
57
|
-
<PageToolbar>
|
|
58
|
-
<PageToolbar.Search>
|
|
59
|
-
<Placeholder label="Search input + filter pills" height="tw-h-10" />
|
|
60
|
-
</PageToolbar.Search>
|
|
61
|
-
</PageToolbar>
|
|
62
|
-
|
|
63
|
-
<PageLayout.Content>
|
|
64
|
-
<Placeholder label="EntityList / Table" height="tw-h-96" />
|
|
65
|
-
</PageLayout.Content>
|
|
66
|
-
</PageLayout>
|
|
67
|
-
),
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
// With tab navigation — `PageLayout.Tabs` is an escape hatch for routing-based
|
|
71
|
-
// tab rows. For controlled tabs, use the `Tabs` core component (shown here)
|
|
72
|
-
// either inside `PageLayout.Content` or via `PageHeader.*` `headerNav`.
|
|
73
|
-
export const WithTabs: Story = {
|
|
74
|
-
render: () => (
|
|
75
|
-
<PageLayout>
|
|
76
|
-
<PageLayout.Header>
|
|
77
|
-
<Placeholder label="Header" height="tw-h-20" />
|
|
78
|
-
</PageLayout.Header>
|
|
79
|
-
|
|
80
|
-
<Tabs
|
|
81
|
-
defaultValue="overview"
|
|
82
|
-
triggers={[
|
|
83
|
-
{ value: 'overview', title: 'Overview' },
|
|
84
|
-
{ value: 'events', title: 'Events' },
|
|
85
|
-
{ value: 'settings', title: 'Settings' },
|
|
86
|
-
]}
|
|
87
|
-
>
|
|
88
|
-
<TabsContent value="overview">
|
|
89
|
-
<Placeholder label="Overview" height="tw-h-96" />
|
|
90
|
-
</TabsContent>
|
|
91
|
-
<TabsContent value="events">
|
|
92
|
-
<Placeholder label="Events" height="tw-h-96" />
|
|
93
|
-
</TabsContent>
|
|
94
|
-
<TabsContent value="settings">
|
|
95
|
-
<Placeholder label="Settings" height="tw-h-96" />
|
|
96
|
-
</TabsContent>
|
|
97
|
-
</Tabs>
|
|
98
|
-
</PageLayout>
|
|
99
|
-
),
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
// Narrow form with sticky footer — `maxWidth="narrow"` constrains the form
|
|
103
|
-
// column; `Footer sticky` keeps the Cancel / Submit row pinned to the viewport.
|
|
104
|
-
export const FormPageWithStickyFooter: Story = {
|
|
105
|
-
render: () => (
|
|
106
|
-
<div className="tw-flex tw-min-h-screen tw-flex-col">
|
|
107
|
-
<PageLayout maxWidth="narrow">
|
|
108
|
-
<PageLayout.Breadcrumbs>
|
|
109
|
-
<Breadcrumb>
|
|
110
|
-
<Breadcrumb.List>
|
|
111
|
-
<Breadcrumb.Item>
|
|
112
|
-
<Breadcrumb.Link href="#">Settings</Breadcrumb.Link>
|
|
113
|
-
</Breadcrumb.Item>
|
|
114
|
-
<Breadcrumb.Separator />
|
|
115
|
-
<Breadcrumb.Item>
|
|
116
|
-
<Breadcrumb.Page>New API token</Breadcrumb.Page>
|
|
117
|
-
</Breadcrumb.Item>
|
|
118
|
-
</Breadcrumb.List>
|
|
119
|
-
</Breadcrumb>
|
|
120
|
-
</PageLayout.Breadcrumbs>
|
|
121
|
-
|
|
122
|
-
<PageLayout.Header>
|
|
123
|
-
<Placeholder label="PageHeader.Detail (form title)" height="tw-h-20" />
|
|
124
|
-
</PageLayout.Header>
|
|
125
|
-
|
|
126
|
-
<PageLayout.Content>
|
|
127
|
-
<div className="tw-flex tw-flex-col tw-gap-4">
|
|
128
|
-
<Placeholder label="Field: Name" height="tw-h-16" />
|
|
129
|
-
<Placeholder label="Field: Scope" height="tw-h-16" />
|
|
130
|
-
<Placeholder label="Field: Expires at" height="tw-h-16" />
|
|
131
|
-
<Placeholder label="Field: Description" height="tw-h-24" />
|
|
132
|
-
</div>
|
|
133
|
-
</PageLayout.Content>
|
|
134
|
-
</PageLayout>
|
|
135
|
-
|
|
136
|
-
<PageLayout.Footer sticky>
|
|
137
|
-
<Button argo variant="secondary" onClick={() => {}}>
|
|
138
|
-
Cancel
|
|
139
|
-
</Button>
|
|
140
|
-
<Button argo onClick={() => {}}>
|
|
141
|
-
Create token
|
|
142
|
-
</Button>
|
|
143
|
-
</PageLayout.Footer>
|
|
144
|
-
</div>
|
|
145
|
-
),
|
|
146
|
-
};
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import type { ComponentPropsWithoutRef, ElementRef, Ref } from 'react';
|
|
2
|
-
|
|
3
|
-
import { cn } from '../../utils';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Props for `PageLayout` root. `maxWidth` constrains the content column —
|
|
7
|
-
* `narrow` (976px) for forms, `default` (1280px) for most pages, `wide` (1600px) for dense detail views,
|
|
8
|
-
* `full` for edge-to-edge layouts.
|
|
9
|
-
*/
|
|
10
|
-
type RootProps = ComponentPropsWithoutRef<'div'> & {
|
|
11
|
-
maxWidth?: 'default' | 'narrow' | 'wide' | 'full';
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
const maxWidthClass = {
|
|
15
|
-
narrow: 'tw-max-w-[976px]',
|
|
16
|
-
default: 'tw-max-w-[1280px]',
|
|
17
|
-
wide: 'tw-max-w-[1600px]',
|
|
18
|
-
full: 'tw-max-w-full',
|
|
19
|
-
} as const;
|
|
20
|
-
|
|
21
|
-
const Root = ({
|
|
22
|
-
ref,
|
|
23
|
-
className,
|
|
24
|
-
maxWidth = 'full',
|
|
25
|
-
children,
|
|
26
|
-
...props
|
|
27
|
-
}: RootProps & { ref?: Ref<ElementRef<'div'>> }) => (
|
|
28
|
-
<div
|
|
29
|
-
ref={ref}
|
|
30
|
-
className={cn(
|
|
31
|
-
'tw-flex tw-flex-col tw-gap-4 tw-w-full tw-mx-auto tw-px-6 tw-py-4',
|
|
32
|
-
maxWidthClass[maxWidth],
|
|
33
|
-
className,
|
|
34
|
-
)}
|
|
35
|
-
{...props}
|
|
36
|
-
>
|
|
37
|
-
{children}
|
|
38
|
-
</div>
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
const Breadcrumbs = ({
|
|
42
|
-
ref,
|
|
43
|
-
className,
|
|
44
|
-
children,
|
|
45
|
-
...props
|
|
46
|
-
}: ComponentPropsWithoutRef<'div'> & { ref?: Ref<ElementRef<'div'>> }) => (
|
|
47
|
-
<div ref={ref} className={cn('tw-w-full', className)} {...props}>
|
|
48
|
-
{children}
|
|
49
|
-
</div>
|
|
50
|
-
);
|
|
51
|
-
|
|
52
|
-
const Header = ({
|
|
53
|
-
ref,
|
|
54
|
-
className,
|
|
55
|
-
children,
|
|
56
|
-
...props
|
|
57
|
-
}: ComponentPropsWithoutRef<'header'> & { ref?: Ref<ElementRef<'header'>> }) => (
|
|
58
|
-
<header ref={ref} className={cn('tw-w-full', className)} {...props}>
|
|
59
|
-
{children}
|
|
60
|
-
</header>
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
const Tabs = ({
|
|
64
|
-
ref,
|
|
65
|
-
className,
|
|
66
|
-
children,
|
|
67
|
-
...props
|
|
68
|
-
}: ComponentPropsWithoutRef<'div'> & { ref?: Ref<ElementRef<'div'>> }) => (
|
|
69
|
-
<div
|
|
70
|
-
ref={ref}
|
|
71
|
-
className={cn('tw-flex tw-w-full tw-items-center tw-border-b tw-border-border', className)}
|
|
72
|
-
{...props}
|
|
73
|
-
>
|
|
74
|
-
{children}
|
|
75
|
-
</div>
|
|
76
|
-
);
|
|
77
|
-
|
|
78
|
-
const Content = ({
|
|
79
|
-
ref,
|
|
80
|
-
className,
|
|
81
|
-
children,
|
|
82
|
-
...props
|
|
83
|
-
}: ComponentPropsWithoutRef<'div'> & { ref?: Ref<ElementRef<'div'>> }) => (
|
|
84
|
-
<div ref={ref} className={cn('tw-flex tw-w-full tw-flex-1 tw-flex-col', className)} {...props}>
|
|
85
|
-
{children}
|
|
86
|
-
</div>
|
|
87
|
-
);
|
|
88
|
-
|
|
89
|
-
type FooterProps = ComponentPropsWithoutRef<'footer'> & {
|
|
90
|
-
sticky?: boolean;
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
const Footer = ({
|
|
94
|
-
ref,
|
|
95
|
-
className,
|
|
96
|
-
sticky = false,
|
|
97
|
-
children,
|
|
98
|
-
...props
|
|
99
|
-
}: FooterProps & { ref?: Ref<ElementRef<'footer'>> }) => (
|
|
100
|
-
<footer
|
|
101
|
-
ref={ref}
|
|
102
|
-
className={cn(
|
|
103
|
-
'tw-flex tw-w-full tw-items-center tw-justify-end tw-gap-3 tw-border-t tw-border-border tw-bg-background tw-px-6 tw-py-4',
|
|
104
|
-
sticky && 'tw-sticky tw-bottom-0 tw-z-10',
|
|
105
|
-
className,
|
|
106
|
-
)}
|
|
107
|
-
{...props}
|
|
108
|
-
>
|
|
109
|
-
{children}
|
|
110
|
-
</footer>
|
|
111
|
-
);
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Compound page-chrome block. Provides every kbc-ui page with the same content-column shape:
|
|
115
|
-
* max-width container + vertical rhythm + named slots.
|
|
116
|
-
*
|
|
117
|
-
* **When to use:** every new kbc-ui page. Do not roll your own `<div className="tw-flex tw-flex-col">`
|
|
118
|
-
* chrome. Host `PageHeader.Index` / `PageHeader.Detail` inside `PageLayout.Header` for the structured
|
|
119
|
-
* page-header patterns.
|
|
120
|
-
* **When NOT to use:** the left-rail `Sidebar` lives in the app shell outside `PageLayout`. For embedded
|
|
121
|
-
* widgets or modal bodies the layout chrome is the modal / card itself, not `PageLayout`.
|
|
122
|
-
* **Composition:** `PageLayout` is opinionated about chrome only — slots accept any `ReactNode`. Put
|
|
123
|
-
* search / filter pills in `PageToolbar`, never in the header. Form submit bars go in
|
|
124
|
-
* `PageLayout.Footer sticky`.
|
|
125
|
-
*
|
|
126
|
-
* @see RECIPES.md#list-detail — for the index → detail page pattern
|
|
127
|
-
*/
|
|
128
|
-
export const PageLayout = Object.assign(Root, {
|
|
129
|
-
/** Detail-pattern breadcrumb row. Usually composed automatically by `PageHeader.Detail` — slot exists for layouts that don't fit either `PageHeader` variant. */
|
|
130
|
-
Breadcrumbs,
|
|
131
|
-
/** Host slot for `PageHeader.Index` / `PageHeader.Detail`, or custom header JSX when neither variant fits. */
|
|
132
|
-
Header,
|
|
133
|
-
/** Escape hatch for routing-based tab rows. Use `Tabs` / `TabsContent` core components inside, never a raw `<button>`. */
|
|
134
|
-
Tabs,
|
|
135
|
-
/** Main content slot. Lists, cards, tables. */
|
|
136
|
-
Content,
|
|
137
|
-
/** Bottom action bar — form submit + cancel. Pass `sticky` for a footer that pins to the viewport. */
|
|
138
|
-
Footer,
|
|
139
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './PageLayout';
|