@orcestr/ui 0.0.1
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 +151 -0
- package/README.ru.md +151 -0
- package/assets/orcestr-banner.webp +0 -0
- package/dist/components/Action/ActionConfirmModal.d.ts +8 -0
- package/dist/components/Action/ActionConfirmModal.d.ts.map +1 -0
- package/dist/components/Action/ActionConfirmModal.js +13 -0
- package/dist/components/Action/ActionTypes.d.ts +47 -0
- package/dist/components/Action/ActionTypes.d.ts.map +1 -0
- package/dist/components/Action/ActionTypes.js +49 -0
- package/dist/components/ActionMenu/ActionMenu.d.ts +3 -0
- package/dist/components/ActionMenu/ActionMenu.d.ts.map +1 -0
- package/dist/components/ActionMenu/ActionMenu.js +1 -0
- package/dist/components/Alert/Alert.d.ts +11 -0
- package/dist/components/Alert/Alert.d.ts.map +1 -0
- package/dist/components/Alert/Alert.js +7 -0
- package/dist/components/AppShell/AppShell.d.ts +102 -0
- package/dist/components/AppShell/AppShell.d.ts.map +1 -0
- package/dist/components/AppShell/AppShell.js +96 -0
- package/dist/components/Badge/Badge.d.ts +15 -0
- package/dist/components/Badge/Badge.d.ts.map +1 -0
- package/dist/components/Badge/Badge.js +8 -0
- package/dist/components/Box/Box.d.ts +11 -0
- package/dist/components/Box/Box.d.ts.map +1 -0
- package/dist/components/Box/Box.js +8 -0
- package/dist/components/Button/Button.d.ts +27 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/Button.js +13 -0
- package/dist/components/Checkbox/Checkbox.d.ts +10 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.js +15 -0
- package/dist/components/Collapse/Collapse.d.ts +11 -0
- package/dist/components/Collapse/Collapse.d.ts.map +1 -0
- package/dist/components/Collapse/Collapse.js +33 -0
- package/dist/components/Combobox/Combobox.d.ts +17 -0
- package/dist/components/Combobox/Combobox.d.ts.map +1 -0
- package/dist/components/Combobox/Combobox.js +32 -0
- package/dist/components/CommandPalette/CommandPalette.d.ts +21 -0
- package/dist/components/CommandPalette/CommandPalette.d.ts.map +1 -0
- package/dist/components/CommandPalette/CommandPalette.js +168 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +25 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.js +25 -0
- package/dist/components/ContextMenu/ContextMenu.d.ts +11 -0
- package/dist/components/ContextMenu/ContextMenu.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenu.js +68 -0
- package/dist/components/DataTable/DataTable.d.ts +88 -0
- package/dist/components/DataTable/DataTable.d.ts.map +1 -0
- package/dist/components/DataTable/DataTable.js +415 -0
- package/dist/components/DataTable/DataTableStateAdapters.d.ts +41 -0
- package/dist/components/DataTable/DataTableStateAdapters.d.ts.map +1 -0
- package/dist/components/DataTable/DataTableStateAdapters.js +192 -0
- package/dist/components/DatePicker/DatePicker.d.ts +21 -0
- package/dist/components/DatePicker/DatePicker.d.ts.map +1 -0
- package/dist/components/DatePicker/DatePicker.js +39 -0
- package/dist/components/DatePicker/DatePickerState.d.ts +30 -0
- package/dist/components/DatePicker/DatePickerState.d.ts.map +1 -0
- package/dist/components/DatePicker/DatePickerState.js +106 -0
- package/dist/components/DateRangePicker/DateRangePicker.d.ts +19 -0
- package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +1 -0
- package/dist/components/DateRangePicker/DateRangePicker.js +6 -0
- package/dist/components/DateRangePresetPicker/DateRangePresetPicker.d.ts +10 -0
- package/dist/components/DateRangePresetPicker/DateRangePresetPicker.d.ts.map +1 -0
- package/dist/components/DateRangePresetPicker/DateRangePresetPicker.js +26 -0
- package/dist/components/DateRangePresetPicker/DateRangePresetPickerState.d.ts +4 -0
- package/dist/components/DateRangePresetPicker/DateRangePresetPickerState.d.ts.map +1 -0
- package/dist/components/DateRangePresetPicker/DateRangePresetPickerState.js +20 -0
- package/dist/components/Dialog/Dialog.d.ts +2 -0
- package/dist/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/components/Dialog/Dialog.js +1 -0
- package/dist/components/Drawer/Drawer.d.ts +30 -0
- package/dist/components/Drawer/Drawer.d.ts.map +1 -0
- package/dist/components/Drawer/Drawer.js +83 -0
- package/dist/components/EntityPicker/EntityPicker.d.ts +41 -0
- package/dist/components/EntityPicker/EntityPicker.d.ts.map +1 -0
- package/dist/components/EntityPicker/EntityPicker.js +17 -0
- package/dist/components/Field/Field.d.ts +12 -0
- package/dist/components/Field/Field.d.ts.map +1 -0
- package/dist/components/Field/Field.js +8 -0
- package/dist/components/Flex/Flex.d.ts +9 -0
- package/dist/components/Flex/Flex.d.ts.map +1 -0
- package/dist/components/Flex/Flex.js +8 -0
- package/dist/components/Grid/Grid.d.ts +11 -0
- package/dist/components/Grid/Grid.d.ts.map +1 -0
- package/dist/components/Grid/Grid.js +12 -0
- package/dist/components/Highlight/Highlight.d.ts +27 -0
- package/dist/components/Highlight/Highlight.d.ts.map +1 -0
- package/dist/components/Highlight/Highlight.js +26 -0
- package/dist/components/IconButton/IconButton.d.ts +25 -0
- package/dist/components/IconButton/IconButton.d.ts.map +1 -0
- package/dist/components/IconButton/IconButton.js +13 -0
- package/dist/components/IconText/IconText.d.ts +12 -0
- package/dist/components/IconText/IconText.d.ts.map +1 -0
- package/dist/components/IconText/IconText.js +7 -0
- package/dist/components/Listbox/Listbox.d.ts +13 -0
- package/dist/components/Listbox/Listbox.d.ts.map +1 -0
- package/dist/components/Listbox/Listbox.js +74 -0
- package/dist/components/Menu/Menu.d.ts +14 -0
- package/dist/components/Menu/Menu.d.ts.map +1 -0
- package/dist/components/Menu/Menu.js +168 -0
- package/dist/components/Modal/Modal.d.ts +29 -0
- package/dist/components/Modal/Modal.d.ts.map +1 -0
- package/dist/components/Modal/Modal.js +155 -0
- package/dist/components/MultiSelect/MultiSelect.d.ts +21 -0
- package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -0
- package/dist/components/MultiSelect/MultiSelect.js +139 -0
- package/dist/components/NumberField/NumberField.d.ts +4 -0
- package/dist/components/NumberField/NumberField.d.ts.map +1 -0
- package/dist/components/NumberField/NumberField.js +6 -0
- package/dist/components/Overlay/OverlayProvider.d.ts +19 -0
- package/dist/components/Overlay/OverlayProvider.d.ts.map +1 -0
- package/dist/components/Overlay/OverlayProvider.js +73 -0
- package/dist/components/PaginatedCombobox/PaginatedCombobox.d.ts +48 -0
- package/dist/components/PaginatedCombobox/PaginatedCombobox.d.ts.map +1 -0
- package/dist/components/PaginatedCombobox/PaginatedCombobox.js +223 -0
- package/dist/components/PaginatedCombobox/PaginatedComboboxReactQueryAdapter.d.ts +13 -0
- package/dist/components/PaginatedCombobox/PaginatedComboboxReactQueryAdapter.d.ts.map +1 -0
- package/dist/components/PaginatedCombobox/PaginatedComboboxReactQueryAdapter.js +10 -0
- package/dist/components/Pagination/Pagination.d.ts +7 -0
- package/dist/components/Pagination/Pagination.d.ts.map +1 -0
- package/dist/components/Pagination/Pagination.js +9 -0
- package/dist/components/Popover/Popover.d.ts +19 -0
- package/dist/components/Popover/Popover.d.ts.map +1 -0
- package/dist/components/Popover/Popover.js +83 -0
- package/dist/components/Portal/Portal.d.ts +6 -0
- package/dist/components/Portal/Portal.d.ts.map +1 -0
- package/dist/components/Portal/Portal.js +23 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +14 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -0
- package/dist/components/RadioGroup/RadioGroup.js +6 -0
- package/dist/components/ScrollArea/ScrollArea.d.ts +36 -0
- package/dist/components/ScrollArea/ScrollArea.d.ts.map +1 -0
- package/dist/components/ScrollArea/ScrollArea.js +124 -0
- package/dist/components/Section/Section.d.ts +14 -0
- package/dist/components/Section/Section.d.ts.map +1 -0
- package/dist/components/Section/Section.js +20 -0
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +13 -0
- package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -0
- package/dist/components/SegmentedControl/SegmentedControl.js +6 -0
- package/dist/components/Select/Select.d.ts +27 -0
- package/dist/components/Select/Select.d.ts.map +1 -0
- package/dist/components/Select/Select.js +142 -0
- package/dist/components/Separator/Separator.d.ts +6 -0
- package/dist/components/Separator/Separator.d.ts.map +1 -0
- package/dist/components/Separator/Separator.js +5 -0
- package/dist/components/Skeleton/Skeleton.d.ts +9 -0
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/components/Skeleton/Skeleton.js +8 -0
- package/dist/components/Spinner/Spinner.d.ts +7 -0
- package/dist/components/Spinner/Spinner.d.ts.map +1 -0
- package/dist/components/Spinner/Spinner.js +5 -0
- package/dist/components/Stack/Stack.d.ts +9 -0
- package/dist/components/Stack/Stack.d.ts.map +1 -0
- package/dist/components/Stack/Stack.js +7 -0
- package/dist/components/State/State.d.ts +23 -0
- package/dist/components/State/State.d.ts.map +1 -0
- package/dist/components/State/State.js +30 -0
- package/dist/components/State/stateIcon.d.ts +3 -0
- package/dist/components/State/stateIcon.d.ts.map +1 -0
- package/dist/components/State/stateIcon.js +11 -0
- package/dist/components/StepperInput/StepperInput.d.ts +13 -0
- package/dist/components/StepperInput/StepperInput.d.ts.map +1 -0
- package/dist/components/StepperInput/StepperInput.js +22 -0
- package/dist/components/Switch/Switch.d.ts +10 -0
- package/dist/components/Switch/Switch.d.ts.map +1 -0
- package/dist/components/Switch/Switch.js +14 -0
- package/dist/components/Tabs/Tabs.d.ts +18 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.js +104 -0
- package/dist/components/Text/Text.d.ts +13 -0
- package/dist/components/Text/Text.d.ts.map +1 -0
- package/dist/components/Text/Text.js +8 -0
- package/dist/components/TextArea/TextArea.d.ts +15 -0
- package/dist/components/TextArea/TextArea.d.ts.map +1 -0
- package/dist/components/TextArea/TextArea.js +17 -0
- package/dist/components/TextField/TextField.d.ts +25 -0
- package/dist/components/TextField/TextField.d.ts.map +1 -0
- package/dist/components/TextField/TextField.js +31 -0
- package/dist/components/Toast/Toast.d.ts +43 -0
- package/dist/components/Toast/Toast.d.ts.map +1 -0
- package/dist/components/Toast/Toast.js +205 -0
- package/dist/components/Tooltip/Tooltip.d.ts +10 -0
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.js +24 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +8 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js +6 -0
- package/dist/components/Workflow/Workflow.d.ts +82 -0
- package/dist/components/Workflow/Workflow.d.ts.map +1 -0
- package/dist/components/Workflow/Workflow.js +73 -0
- package/dist/example/CodePreview.d.ts +25 -0
- package/dist/example/CodePreview.d.ts.map +1 -0
- package/dist/example/CodePreview.js +93 -0
- package/dist/example/ExampleActionsSection.d.ts +10 -0
- package/dist/example/ExampleActionsSection.d.ts.map +1 -0
- package/dist/example/ExampleActionsSection.js +10 -0
- package/dist/example/ExampleBasicsSections.d.ts +8 -0
- package/dist/example/ExampleBasicsSections.d.ts.map +1 -0
- package/dist/example/ExampleBasicsSections.js +43 -0
- package/dist/example/ExampleDataSection.d.ts +7 -0
- package/dist/example/ExampleDataSection.d.ts.map +1 -0
- package/dist/example/ExampleDataSection.js +124 -0
- package/dist/example/ExampleFieldsSection.d.ts +17 -0
- package/dist/example/ExampleFieldsSection.d.ts.map +1 -0
- package/dist/example/ExampleFieldsSection.js +10 -0
- package/dist/example/ExampleFoundationsSection.d.ts +5 -0
- package/dist/example/ExampleFoundationsSection.d.ts.map +1 -0
- package/dist/example/ExampleFoundationsSection.js +25 -0
- package/dist/example/ExampleOverlays.d.ts +30 -0
- package/dist/example/ExampleOverlays.d.ts.map +1 -0
- package/dist/example/ExampleOverlays.js +12 -0
- package/dist/example/ExampleOverlaysSection.d.ts +14 -0
- package/dist/example/ExampleOverlaysSection.d.ts.map +1 -0
- package/dist/example/ExampleOverlaysSection.js +126 -0
- package/dist/example/ExampleSelectionSection.d.ts +30 -0
- package/dist/example/ExampleSelectionSection.d.ts.map +1 -0
- package/dist/example/ExampleSelectionSection.js +66 -0
- package/dist/example/ExampleStateSection.d.ts +8 -0
- package/dist/example/ExampleStateSection.d.ts.map +1 -0
- package/dist/example/ExampleStateSection.js +76 -0
- package/dist/example/ExampleThemePlayground.d.ts +417 -0
- package/dist/example/ExampleThemePlayground.d.ts.map +1 -0
- package/dist/example/ExampleThemePlayground.js +596 -0
- package/dist/example/UiExamplePage.d.ts +2 -0
- package/dist/example/UiExamplePage.d.ts.map +1 -0
- package/dist/example/UiExamplePage.js +315 -0
- package/dist/example/UiExampleSection.d.ts +8 -0
- package/dist/example/UiExampleSection.d.ts.map +1 -0
- package/dist/example/UiExampleSection.js +5 -0
- package/dist/example/codeSamples.d.ts +30 -0
- package/dist/example/codeSamples.d.ts.map +1 -0
- package/dist/example/codeSamples.js +976 -0
- package/dist/example/exampleData.d.ts +33 -0
- package/dist/example/exampleData.d.ts.map +1 -0
- package/dist/example/exampleData.js +217 -0
- package/dist/example/styles.css +1106 -0
- package/dist/hooks/useControllableState.d.ts +6 -0
- package/dist/hooks/useControllableState.d.ts.map +1 -0
- package/dist/hooks/useControllableState.js +16 -0
- package/dist/hooks/useDisclosure.d.ts +12 -0
- package/dist/hooks/useDisclosure.d.ts.map +1 -0
- package/dist/hooks/useDisclosure.js +14 -0
- package/dist/hooks/useEscapeKey.d.ts +2 -0
- package/dist/hooks/useEscapeKey.d.ts.map +1 -0
- package/dist/hooks/useEscapeKey.js +15 -0
- package/dist/hooks/useFloatingLayer.d.ts +19 -0
- package/dist/hooks/useFloatingLayer.d.ts.map +1 -0
- package/dist/hooks/useFloatingLayer.js +26 -0
- package/dist/hooks/useFloatingPosition.d.ts +17 -0
- package/dist/hooks/useFloatingPosition.d.ts.map +1 -0
- package/dist/hooks/useFloatingPosition.js +132 -0
- package/dist/hooks/useFocusTrap.d.ts +3 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -0
- package/dist/hooks/useFocusTrap.js +54 -0
- package/dist/hooks/useListNavigation.d.ts +17 -0
- package/dist/hooks/useListNavigation.d.ts.map +1 -0
- package/dist/hooks/useListNavigation.js +44 -0
- package/dist/hooks/useOutsidePointerDown.d.ts +3 -0
- package/dist/hooks/useOutsidePointerDown.d.ts.map +1 -0
- package/dist/hooks/useOutsidePointerDown.js +20 -0
- package/dist/hooks/usePresence.d.ts +5 -0
- package/dist/hooks/usePresence.d.ts.map +1 -0
- package/dist/hooks/usePresence.js +35 -0
- package/dist/hooks/useTypeahead.d.ts +2 -0
- package/dist/hooks/useTypeahead.d.ts.map +1 -0
- package/dist/hooks/useTypeahead.js +23 -0
- package/dist/index.d.ts +64 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +64 -0
- package/dist/locale/LocaleProvider.d.ts +89 -0
- package/dist/locale/LocaleProvider.d.ts.map +1 -0
- package/dist/locale/LocaleProvider.js +174 -0
- package/dist/provider/OrcestrUiProvider.d.ts +28 -0
- package/dist/provider/OrcestrUiProvider.d.ts.map +1 -0
- package/dist/provider/OrcestrUiProvider.js +9 -0
- package/dist/react-query.d.ts +2 -0
- package/dist/react-query.d.ts.map +1 -0
- package/dist/react-query.js +1 -0
- package/dist/styles/orcestr-ui.css +4676 -0
- package/dist/theme/ThemeProvider.d.ts +3 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/ThemeProvider.js +280 -0
- package/dist/theme/defaultTheme.d.ts +12 -0
- package/dist/theme/defaultTheme.d.ts.map +1 -0
- package/dist/theme/defaultTheme.js +516 -0
- package/dist/theme/systemProps.d.ts +53 -0
- package/dist/theme/systemProps.d.ts.map +1 -0
- package/dist/theme/systemProps.js +240 -0
- package/dist/theme/themeTypes.d.ts +197 -0
- package/dist/theme/themeTypes.d.ts.map +1 -0
- package/dist/theme/themeTypes.js +1 -0
- package/dist/theme/useTheme.d.ts +4 -0
- package/dist/theme/useTheme.d.ts.map +1 -0
- package/dist/theme/useTheme.js +10 -0
- package/dist/utils/cn.d.ts +2 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/cn.js +3 -0
- package/dist/utils/composeRefs.d.ts +3 -0
- package/dist/utils/composeRefs.d.ts.map +1 -0
- package/dist/utils/composeRefs.js +14 -0
- package/dist/utils/mergeProps.d.ts +4 -0
- package/dist/utils/mergeProps.d.ts.map +1 -0
- package/dist/utils/mergeProps.js +26 -0
- package/dist/utils/ownerDocument.d.ts +2 -0
- package/dist/utils/ownerDocument.d.ts.map +1 -0
- package/dist/utils/ownerDocument.js +3 -0
- package/dist/utils/polymorphic.d.ts +6 -0
- package/dist/utils/polymorphic.d.ts.map +1 -0
- package/dist/utils/polymorphic.js +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { LuChevronDown } from 'react-icons/lu';
|
|
4
|
+
import { Button, Popover, Stack, Text, Tooltip, useToast, } from '..';
|
|
5
|
+
import { ExampleTile } from './CodePreview';
|
|
6
|
+
import { codeSamples } from './codeSamples';
|
|
7
|
+
import { UiExampleSection } from './UiExampleSection';
|
|
8
|
+
const toastPositions = [
|
|
9
|
+
{ position: 'top-left', label: 'Top left' },
|
|
10
|
+
{ position: 'top-center', label: 'Top center' },
|
|
11
|
+
{ position: 'top-right', label: 'Top right' },
|
|
12
|
+
{ position: 'bottom-left', label: 'Bottom left' },
|
|
13
|
+
{ position: 'bottom-center', label: 'Bottom center' },
|
|
14
|
+
{ position: 'bottom-right', label: 'Bottom right' },
|
|
15
|
+
];
|
|
16
|
+
const toastPositionVariants = [
|
|
17
|
+
{
|
|
18
|
+
position: 'top-left',
|
|
19
|
+
label: 'Status synced',
|
|
20
|
+
tone: 'success',
|
|
21
|
+
message: 'Glass toast from the left edge.',
|
|
22
|
+
blur: 14,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
position: 'top-center',
|
|
26
|
+
label: 'Command ready',
|
|
27
|
+
tone: 'info',
|
|
28
|
+
message: 'Centered toast drops from the top.',
|
|
29
|
+
background: 'rgb(18 28 42 / 88%)',
|
|
30
|
+
blur: 10,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
position: 'top-right',
|
|
34
|
+
label: 'Needs attention',
|
|
35
|
+
tone: 'warning',
|
|
36
|
+
message: 'Right edge bubble animation.',
|
|
37
|
+
blur: 12,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
position: 'bottom-left',
|
|
41
|
+
label: 'Import queued',
|
|
42
|
+
tone: 'info',
|
|
43
|
+
message: 'Static background, no blur.',
|
|
44
|
+
blur: false,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
position: 'bottom-center',
|
|
48
|
+
label: 'Batch completed',
|
|
49
|
+
tone: 'success',
|
|
50
|
+
message: 'Bottom center rises into place.',
|
|
51
|
+
blur: 16,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
position: 'bottom-right',
|
|
55
|
+
label: 'Export failed',
|
|
56
|
+
tone: 'danger',
|
|
57
|
+
message: 'Actionable toast from the right edge.',
|
|
58
|
+
blur: 12,
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
export function OverlaysSection({ setModalOpen, setBlurModalOpen, setFastModalOpen, setRiseModalOpen, setSlowModalOpen, setDangerModalOpen, onOpenCode, }) {
|
|
62
|
+
const toast = useToast();
|
|
63
|
+
return (_jsxs(_Fragment, { children: [_jsx(UiExampleSection, { id: 'overlay-primitives-example', title: 'Overlay primitives', description: 'Popover, Tooltip and Modal entry points.', children: _jsxs(ExampleTile, { title: 'Popover, tooltip and modal', code: codeSamples.overlays, onOpen: onOpenCode, children: [_jsxs("div", { className: 'oui-ui-row', children: [_jsx(Popover, { trigger: _jsx(Button, { v: 'surface', rightIcon: _jsx(LuChevronDown, { size: 16 }), children: "Open popover" }), children: _jsxs(Stack, { g: 2, p: 1, children: [_jsx(Text, { fw: 700, children: "Popover content" }), _jsx(Text, { color: 'var(--oui-muted)', fs: '13px', children: "Shared positioning and presence." })] }) }), _jsx(Tooltip, { content: 'Tooltip uses the same floating layer', children: _jsx(Button, { v: 'outline', children: "Hover me" }) })] }), _jsxs("div", { className: 'oui-ui-row', children: [_jsx(Button, { onClick: () => setModalOpen(true), children: "Default modal" }), _jsx(Button, { v: 'surface', onClick: () => setBlurModalOpen(true), children: "Blur modal" }), _jsx(Button, { v: 'outline', onClick: () => setFastModalOpen(true), children: "Fast modal" }), _jsx(Button, { v: 'outline', onClick: () => setRiseModalOpen(true), children: "Rise modal" }), _jsx(Button, { v: 'outline', onClick: () => setSlowModalOpen(true), children: "Very slow modal" }), _jsx(Button, { v: 'soft', tone: 'danger', onClick: () => setDangerModalOpen(true), children: "Danger modal" })] })] }) }), _jsx(UiExampleSection, { id: 'toast-example', title: 'Toast', description: 'Toast positions, actions, progress, dedupe and glass background.', children: _jsx(ExampleTile, { title: 'Toast', code: codeSamples.toast, onOpen: onOpenCode, children: _jsxs(Stack, { g: 2, children: [_jsxs("div", { className: 'oui-ui-row', children: [_jsx(Button, { v: 'soft', tone: 'success', onClick: () => toast.success({
|
|
64
|
+
title: 'Saved successfully',
|
|
65
|
+
message: 'The settings are synced with the current theme.',
|
|
66
|
+
position: 'bottom-right',
|
|
67
|
+
}), children: "Success" }), _jsx(Button, { v: 'soft', tone: 'warning', onClick: () => toast.warning({
|
|
68
|
+
title: 'Needs attention',
|
|
69
|
+
message: 'Only 4 items need attention in this view.',
|
|
70
|
+
dedupeKey: 'needs-attention',
|
|
71
|
+
position: 'top-right',
|
|
72
|
+
}), children: "Warning dedupe" }), _jsx(Button, { v: 'soft', tone: 'danger', onClick: () => toast.error({
|
|
73
|
+
title: 'Export failed',
|
|
74
|
+
message: 'The report can be retried without closing this page.',
|
|
75
|
+
position: 'bottom-right',
|
|
76
|
+
action: {
|
|
77
|
+
label: 'Retry',
|
|
78
|
+
onClick: () => toast.info('Retry queued'),
|
|
79
|
+
},
|
|
80
|
+
}), children: "Error action" }), _jsx(Button, { v: 'surface', onClick: () => toast.info({
|
|
81
|
+
title: 'Pinned note',
|
|
82
|
+
message: 'duration: null keeps this toast visible.',
|
|
83
|
+
position: 'top-center',
|
|
84
|
+
duration: null,
|
|
85
|
+
closeButton: true,
|
|
86
|
+
}), children: "Pinned" }), _jsx(Button, { v: 'surface', onClick: () => toast.info({
|
|
87
|
+
title: 'Glass background',
|
|
88
|
+
message: 'Custom blur and translucent background.',
|
|
89
|
+
position: 'bottom-right',
|
|
90
|
+
background: 'rgb(18 24 34 / 72%)',
|
|
91
|
+
blur: 18,
|
|
92
|
+
borderColor: 'rgb(255 255 255 / 18%)',
|
|
93
|
+
duration: 5200,
|
|
94
|
+
}), children: "Glass" }), _jsx(Button, { v: 'surface', onClick: () => toast.info({
|
|
95
|
+
title: 'Static background',
|
|
96
|
+
message: 'Blur can be disabled per toast.',
|
|
97
|
+
position: 'bottom-left',
|
|
98
|
+
background: 'var(--oui-floating-bg)',
|
|
99
|
+
blur: false,
|
|
100
|
+
duration: 5200,
|
|
101
|
+
}), children: "Static" })] }), _jsx(Text, { color: 'var(--oui-muted)', fs: '13px', lh: 1.45, children: "Toasts support typed helpers, controlled position, progress line, dedupe keys, actions and fixed viewport above modals." }), _jsx("div", { className: 'oui-ui-row', children: toastPositions.map((item) => (_jsx(Button, { size: 1, v: 'surface', onClick: () => toast.info({
|
|
102
|
+
title: item.label,
|
|
103
|
+
message: 'Positioned toast with directional bubble animation.',
|
|
104
|
+
position: item.position,
|
|
105
|
+
duration: 3600,
|
|
106
|
+
}), children: item.label }, item.position))) }), _jsxs("div", { className: 'oui-ui-row', children: [_jsx(Button, { size: 1, tone: 'success', v: 'soft', onClick: () => {
|
|
107
|
+
toastPositionVariants.forEach((item, index) => {
|
|
108
|
+
window.setTimeout(() => {
|
|
109
|
+
toast.push({
|
|
110
|
+
title: item.label,
|
|
111
|
+
message: item.message,
|
|
112
|
+
position: item.position,
|
|
113
|
+
tone: item.tone,
|
|
114
|
+
background: item.background,
|
|
115
|
+
blur: item.blur,
|
|
116
|
+
duration: 4200 + index * 220,
|
|
117
|
+
});
|
|
118
|
+
}, index * 120);
|
|
119
|
+
});
|
|
120
|
+
}, children: "Show all positions" }), _jsx(Button, { size: 1, tone: 'warning', v: 'soft', onClick: () => toast.warning({
|
|
121
|
+
title: 'Long task queued',
|
|
122
|
+
message: 'A longer duration shows the progress strip clearly.',
|
|
123
|
+
position: 'bottom-center',
|
|
124
|
+
duration: 9000,
|
|
125
|
+
}), children: "Long progress" })] })] }) }) }), _jsx(UiExampleSection, { id: 'overlay-settings-example', title: 'Overlay settings', description: 'Modal overlay color, opacity, blur and animation settings.', children: _jsx(ExampleTile, { title: 'Overlay settings', code: codeSamples.overlaySettings, onOpen: onOpenCode, children: _jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "The modal accepts overlay color, opacity, blur, animation and animationDuration props. Default animation and duration come from the theme." }) }) })] }));
|
|
126
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type OrcestrUiLocale } from '..';
|
|
2
|
+
import { type CodeExample } from './codeSamples';
|
|
3
|
+
import { type EntityOption } from './exampleData';
|
|
4
|
+
type ToastTone = 'info' | 'success' | 'danger';
|
|
5
|
+
type SelectionSectionProps = {
|
|
6
|
+
locale: OrcestrUiLocale;
|
|
7
|
+
segment: string;
|
|
8
|
+
onSegmentChange: (value: string) => void;
|
|
9
|
+
selectValue: string | null;
|
|
10
|
+
onSelectValueChange: (value: string | null) => void;
|
|
11
|
+
selectNoChevronValue: string | null;
|
|
12
|
+
onSelectNoChevronValueChange: (value: string | null) => void;
|
|
13
|
+
selectPlainValue: string | null;
|
|
14
|
+
onSelectPlainValueChange: (value: string | null) => void;
|
|
15
|
+
comboValue: string | null;
|
|
16
|
+
onComboValueChange: (value: string | null) => void;
|
|
17
|
+
entityValue: EntityOption | null;
|
|
18
|
+
onEntityValueChange: (value: EntityOption | null) => void;
|
|
19
|
+
ownerValues: string[];
|
|
20
|
+
onOwnerValuesChange: (value: string[]) => void;
|
|
21
|
+
radioValue: string;
|
|
22
|
+
onRadioValueChange: (value: string) => void;
|
|
23
|
+
tabValue: string;
|
|
24
|
+
onTabValueChange: (value: string) => void;
|
|
25
|
+
onOpenCode: (example: CodeExample) => void;
|
|
26
|
+
onToast: (title: string, tone?: ToastTone) => void;
|
|
27
|
+
};
|
|
28
|
+
export declare function SelectionSection({ locale, segment, onSegmentChange, selectValue, onSelectValueChange, selectNoChevronValue, onSelectNoChevronValueChange, selectPlainValue, onSelectPlainValueChange, comboValue, onComboValueChange, entityValue, onEntityValueChange, ownerValues, onOwnerValuesChange, radioValue, onRadioValueChange, tabValue, onTabValueChange, onOpenCode, onToast, }: SelectionSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=ExampleSelectionSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExampleSelectionSection.d.ts","sourceRoot":"","sources":["../../src/example/ExampleSelectionSection.tsx"],"names":[],"mappings":"AAKA,OAAO,EAWH,KAAK,eAAe,EACvB,MAAM,IAAI,CAAC;AAEZ,OAAO,EAAc,KAAK,WAAW,EAAC,MAAM,eAAe,CAAC;AAC5D,OAAO,EAIH,KAAK,YAAY,EACpB,MAAM,eAAe,CAAC;AAGvB,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/C,KAAK,qBAAqB,GAAG;IACzB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,4BAA4B,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,wBAAwB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD,WAAW,EAAE,YAAY,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1D,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EAChB,wBAAwB,EACxB,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,OAAO,GACV,EAAE,qBAAqB,2CAuKvB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import { LuHistory, LuListChecks, LuPlus } from 'react-icons/lu';
|
|
5
|
+
import { Checkbox, Combobox, EntityPicker, MultiSelect, RadioGroup, SegmentedControl, Select, Switch, Tabs, Text, } from '..';
|
|
6
|
+
import { ExampleTile } from './CodePreview';
|
|
7
|
+
import { codeSamples } from './codeSamples';
|
|
8
|
+
import { getOptionItems, getOwnerItems, loadEntityPage, } from './exampleData';
|
|
9
|
+
import { UiExampleSection } from './UiExampleSection';
|
|
10
|
+
export function SelectionSection({ locale, segment, onSegmentChange, selectValue, onSelectValueChange, selectNoChevronValue, onSelectNoChevronValueChange, selectPlainValue, onSelectPlainValueChange, comboValue, onComboValueChange, entityValue, onEntityValueChange, ownerValues, onOwnerValuesChange, radioValue, onRadioValueChange, tabValue, onTabValueChange, onOpenCode, onToast, }) {
|
|
11
|
+
const optionItems = getOptionItems(locale);
|
|
12
|
+
const ownerItems = getOwnerItems(locale);
|
|
13
|
+
const copy = selectionCopy[locale];
|
|
14
|
+
const loadLocalizedEntityPage = useCallback((page, search) => loadEntityPage(locale, page, search), [locale]);
|
|
15
|
+
return (_jsxs(_Fragment, { children: [_jsx(UiExampleSection, { id: 'selects-example', title: 'Selects', description: 'Select, Combobox, MultiSelect, EntityPicker and SegmentedControl.', children: _jsxs(ExampleTile, { title: 'Selects and comboboxes', code: codeSamples.selection, onOpen: onOpenCode, children: [_jsx(Select, { items: optionItems, value: selectValue, onValueChange: onSelectValueChange, clearable: true }), _jsx(Select, { items: optionItems, value: selectNoChevronValue, onValueChange: onSelectNoChevronValueChange, clearable: true, showChevron: false, placeholder: 'Clearable without chevron' }), _jsx(Select, { items: optionItems, value: selectPlainValue, onValueChange: onSelectPlainValueChange, clearable: false, showChevron: false, placeholder: 'Plain select' }), _jsx(Combobox, { items: optionItems, value: comboValue, onValueChange: onComboValueChange, placeholder: 'Find status' }), _jsx(MultiSelect, { items: ownerItems, value: ownerValues, onValueChange: onOwnerValuesChange, placeholder: copy.responsibleUsers, clearable: true, renderValue: (items) => items.length === 1
|
|
16
|
+
? items[0]?.label
|
|
17
|
+
: copy.responsibleCount(items.length) }), _jsx(EntityPicker, { value: entityValue, onValueChange: onEntityValueChange, loadPage: loadLocalizedEntityPage, getEntityId: (item) => item.id, renderValue: (item) => item.article, renderEntity: (item) => (_jsxs(_Fragment, { children: [_jsxs("span", { className: 'oui-entity-option-main', children: [_jsx("span", { className: 'oui-entity-option-code', children: item.article }), _jsx("span", { className: 'oui-entity-option-meta', children: item.name })] }), _jsx("span", { className: 'oui-entity-option-badge', children: item.status })] })), placeholder: copy.entityPicker, clearable: true, createAction: {
|
|
18
|
+
label: copy.createEntityFromSearch,
|
|
19
|
+
onCreate: (search) => onToast(copy.createEntityToast(search), 'info'),
|
|
20
|
+
}, optionAction: {
|
|
21
|
+
icon: _jsx(LuPlus, { size: 14 }),
|
|
22
|
+
label: (item) => copy.addEntity(item.article),
|
|
23
|
+
onClick: (item) => onToast(copy.entityAction(item.article), 'success'),
|
|
24
|
+
} }), _jsx(SegmentedControl, { items: [
|
|
25
|
+
{ value: 'active', label: 'Active' },
|
|
26
|
+
{ value: 'drafts', label: 'Drafts' },
|
|
27
|
+
{ value: 'archive', label: 'Archive' },
|
|
28
|
+
], value: segment, onValueChange: onSegmentChange })] }) }), _jsx(UiExampleSection, { id: 'choice-controls-example', title: 'Checkbox, switch and radio', description: 'Binary and single-choice controls.', children: _jsxs(ExampleTile, { title: 'Checkbox, switch and radio', code: codeSamples.selectionGroup, onOpen: onOpenCode, children: [_jsx(Checkbox, { defaultChecked: true, children: "Confirmed" }), _jsx(Checkbox, { children: "Needs review" }), _jsx(Checkbox, { disabled: true, children: "Locked option" }), _jsx(Switch, { defaultChecked: true, children: "Auto updates" }), _jsx(Switch, { children: "Manual mode" }), _jsx(Switch, { disabled: true, children: "Disabled switch" }), _jsx(RadioGroup, { value: radioValue, onValueChange: onRadioValueChange, name: 'oui-example-mode', items: [
|
|
29
|
+
{ value: 'manual', label: 'Manual' },
|
|
30
|
+
{ value: 'auto', label: 'Automatic' },
|
|
31
|
+
] })] }) }), _jsx(UiExampleSection, { id: 'tabs-example', title: 'Tabs', description: 'Segmented content navigation with icons, badges and controlled value.', children: _jsx(ExampleTile, { title: 'Tabs', code: codeSamples.tabs, onOpen: onOpenCode, children: _jsx(Tabs, { value: tabValue, onValueChange: onTabValueChange, items: [
|
|
32
|
+
{
|
|
33
|
+
value: 'overview',
|
|
34
|
+
label: 'Overview',
|
|
35
|
+
icon: _jsx(LuListChecks, { size: 16 }),
|
|
36
|
+
badge: '12',
|
|
37
|
+
content: _jsx(Text, { color: 'var(--oui-muted)', children: "Main summary tab." }),
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
value: 'history',
|
|
41
|
+
label: 'History',
|
|
42
|
+
icon: _jsx(LuHistory, { size: 16 }),
|
|
43
|
+
content: _jsx(Text, { color: 'var(--oui-muted)', children: "History and changes." }),
|
|
44
|
+
},
|
|
45
|
+
] }) }) })] }));
|
|
46
|
+
}
|
|
47
|
+
const selectionCopy = {
|
|
48
|
+
ru: {
|
|
49
|
+
responsibleUsers: 'Ответственные',
|
|
50
|
+
responsibleCount: (count) => `${count} ответственных`,
|
|
51
|
+
entityPicker: 'Выбор объекта',
|
|
52
|
+
createEntityFromSearch: 'Создать объект из поиска',
|
|
53
|
+
createEntityToast: (search) => `Создать объект: ${search}`,
|
|
54
|
+
addEntity: (article) => `Добавить ${article}`,
|
|
55
|
+
entityAction: (article) => `Действие: ${article}`,
|
|
56
|
+
},
|
|
57
|
+
en: {
|
|
58
|
+
responsibleUsers: 'Responsible users',
|
|
59
|
+
responsibleCount: (count) => `${count} responsible`,
|
|
60
|
+
entityPicker: 'Entity picker',
|
|
61
|
+
createEntityFromSearch: 'Create entity from search',
|
|
62
|
+
createEntityToast: (search) => `Create entity: ${search}`,
|
|
63
|
+
addEntity: (article) => `Add ${article}`,
|
|
64
|
+
entityAction: (article) => `Action: ${article}`,
|
|
65
|
+
},
|
|
66
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type CodeExample } from './codeSamples';
|
|
2
|
+
export declare function StateCardSection({ onOpenCode, }: {
|
|
3
|
+
onOpenCode: (example: CodeExample) => void;
|
|
4
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare function IconTextSection({ onOpenCode, }: {
|
|
6
|
+
onOpenCode: (example: CodeExample) => void;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=ExampleStateSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExampleStateSection.d.ts","sourceRoot":"","sources":["../../src/example/ExampleStateSection.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,eAAe,CAAC;AAqE/C,wBAAgB,gBAAgB,CAAC,EAC7B,UAAU,GACb,EAAE;IACC,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC9C,2CAgDA;AAED,wBAAgB,eAAe,CAAC,EAC5B,UAAU,GACb,EAAE;IACC,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC9C,2CAgCA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { LuCircleAlert, LuCircleCheck, LuCircleX, LuInfo, LuLoaderCircle, } from 'react-icons/lu';
|
|
4
|
+
import { Button, EmptyState, ErrorState, IconText, LoadingState, Stack, StateCard, Text, } from '..';
|
|
5
|
+
import { ExampleTile } from './CodePreview';
|
|
6
|
+
import {} from './codeSamples';
|
|
7
|
+
import { UiExampleSection } from './UiExampleSection';
|
|
8
|
+
const validationItems = [
|
|
9
|
+
{ key: 'quantity', label: 'Quantity', message: 'Required value is missing' },
|
|
10
|
+
{ key: 'files', label: 'Files', message: 'Add at least one document' },
|
|
11
|
+
];
|
|
12
|
+
const stateCardSample = {
|
|
13
|
+
title: 'StateCard',
|
|
14
|
+
code: `import {
|
|
15
|
+
Button,
|
|
16
|
+
EmptyState,
|
|
17
|
+
ErrorState,
|
|
18
|
+
LoadingState,
|
|
19
|
+
Stack,
|
|
20
|
+
StateCard,
|
|
21
|
+
Text,
|
|
22
|
+
} from '@orcestr/ui';
|
|
23
|
+
|
|
24
|
+
const validationItems = [
|
|
25
|
+
{key: 'quantity', label: 'Quantity', message: 'Required value is missing'},
|
|
26
|
+
{key: 'files', label: 'Files', message: 'Add at least one document'},
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
<Stack g={2}>
|
|
30
|
+
<StateCard
|
|
31
|
+
tone='info'
|
|
32
|
+
title='General state'
|
|
33
|
+
description='One card for informational, empty, loading and error states.'
|
|
34
|
+
/>
|
|
35
|
+
<StateCard tone='danger' title='Validation failed'>
|
|
36
|
+
<Stack g={1}>
|
|
37
|
+
{validationItems.map((item) => (
|
|
38
|
+
<Text key={item.key} fs='13px' lh={1.3}>
|
|
39
|
+
<strong>{item.label}: </strong>
|
|
40
|
+
{item.message}
|
|
41
|
+
</Text>
|
|
42
|
+
))}
|
|
43
|
+
</Stack>
|
|
44
|
+
</StateCard>
|
|
45
|
+
<div className='oui-ui-state-grid'>
|
|
46
|
+
<EmptyState compact description='No records yet.' />
|
|
47
|
+
<LoadingState compact description='Loading the next page.' />
|
|
48
|
+
<ErrorState compact description='Request failed.' onRetry={reload} />
|
|
49
|
+
</div>
|
|
50
|
+
<StateCard
|
|
51
|
+
tone='success'
|
|
52
|
+
title='Saved'
|
|
53
|
+
description='Changes were applied.'
|
|
54
|
+
action={<Button size={1} v='surface'>Open</Button>}
|
|
55
|
+
/>
|
|
56
|
+
</Stack>`,
|
|
57
|
+
};
|
|
58
|
+
const iconTextSample = {
|
|
59
|
+
title: 'IconText',
|
|
60
|
+
code: `import {IconText, Stack} from '@orcestr/ui';
|
|
61
|
+
import {LuCircleAlert, LuCircleCheck, LuCircleX, LuInfo, LuLoaderCircle} from 'react-icons/lu';
|
|
62
|
+
|
|
63
|
+
<Stack g={1}>
|
|
64
|
+
<IconText icon={<LuLoaderCircle />} iconTone='info' iconSpin>Saving changes</IconText>
|
|
65
|
+
<IconText icon={<LuCircleCheck />} iconTone='success'>Saved</IconText>
|
|
66
|
+
<IconText icon={<LuCircleX />} iconTone='danger'>Save failed</IconText>
|
|
67
|
+
<IconText icon={<LuCircleAlert />} iconTone='warning' fw={760}>Review required</IconText>
|
|
68
|
+
<IconText icon={<LuInfo />} iconTone='info' fs='13px'>Sync scheduled</IconText>
|
|
69
|
+
</Stack>`,
|
|
70
|
+
};
|
|
71
|
+
export function StateCardSection({ onOpenCode, }) {
|
|
72
|
+
return (_jsx(UiExampleSection, { id: 'state-card-example', title: 'StateCard', description: 'Block-level state for empty, loading, error, access and status surfaces.', children: _jsx(ExampleTile, { title: 'StateCard', code: stateCardSample.code, onOpen: onOpenCode, children: _jsxs(Stack, { g: 2, children: [_jsx(StateCard, { tone: 'info', title: 'General state', description: 'One card for informational, empty, loading and error states.' }), _jsx(StateCard, { tone: 'danger', title: 'Validation failed', children: _jsx(Stack, { g: 1, children: validationItems.map((item) => (_jsxs(Text, { fs: '13px', lh: 1.3, children: [_jsxs("strong", { children: [item.label, ": "] }), item.message] }, item.key))) }) }), _jsxs("div", { className: 'oui-ui-state-grid', children: [_jsx(EmptyState, { compact: true, description: 'No records yet.' }), _jsx(LoadingState, { compact: true, description: 'Loading the next page.' }), _jsx(ErrorState, { compact: true, description: 'Request failed.', onRetry: () => undefined })] }), _jsx(StateCard, { tone: 'success', title: 'Saved', description: 'Changes were applied.', action: _jsx(Button, { size: 1, v: 'surface', children: "Open" }) })] }) }) }));
|
|
73
|
+
}
|
|
74
|
+
export function IconTextSection({ onOpenCode, }) {
|
|
75
|
+
return (_jsx(UiExampleSection, { id: 'icon-text-example', title: 'IconText', description: 'Inline text primitive with an icon, text props and independent icon tone.', children: _jsx(ExampleTile, { title: 'IconText', code: iconTextSample.code, onOpen: onOpenCode, children: _jsxs("div", { className: 'oui-ui-icon-text-list', children: [_jsx(IconText, { icon: _jsx(LuLoaderCircle, {}), iconTone: 'info', iconSpin: true, children: "Saving changes" }), _jsx(IconText, { icon: _jsx(LuCircleCheck, {}), iconTone: 'success', children: "Saved" }), _jsx(IconText, { icon: _jsx(LuCircleX, {}), iconTone: 'danger', children: "Save failed" }), _jsx(IconText, { icon: _jsx(LuCircleAlert, {}), iconTone: 'warning', fw: 760, children: "Review required" }), _jsx(IconText, { icon: _jsx(LuInfo, {}), iconTone: 'info', fs: '13px', children: "Sync scheduled" })] }) }) }));
|
|
76
|
+
}
|