@orcestr/ui 0.0.3 → 0.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.
Files changed (176) hide show
  1. package/dist/components/Alert/Alert.d.ts +5 -4
  2. package/dist/components/Alert/Alert.d.ts.map +1 -1
  3. package/dist/components/Alert/Alert.js +5 -2
  4. package/dist/components/AppShell/AppShell.d.ts +2 -0
  5. package/dist/components/AppShell/AppShell.d.ts.map +1 -1
  6. package/dist/components/AppShell/AppShell.js +9 -6
  7. package/dist/components/AppSidebar/AppSidebar.d.ts +36 -0
  8. package/dist/components/AppSidebar/AppSidebar.d.ts.map +1 -0
  9. package/dist/components/AppSidebar/AppSidebar.js +53 -0
  10. package/dist/components/Badge/Badge.d.ts +8 -6
  11. package/dist/components/Badge/Badge.d.ts.map +1 -1
  12. package/dist/components/Badge/Badge.js +4 -4
  13. package/dist/components/BadgeSelectMenu/BadgeSelectMenu.d.ts +22 -0
  14. package/dist/components/BadgeSelectMenu/BadgeSelectMenu.d.ts.map +1 -0
  15. package/dist/components/BadgeSelectMenu/BadgeSelectMenu.js +50 -0
  16. package/dist/components/Box/Box.d.ts +2 -0
  17. package/dist/components/Box/Box.d.ts.map +1 -1
  18. package/dist/components/Box/Box.js +15 -2
  19. package/dist/components/Button/Button.d.ts +7 -3
  20. package/dist/components/Button/Button.d.ts.map +1 -1
  21. package/dist/components/Button/Button.js +23 -3
  22. package/dist/components/Card/Card.d.ts +26 -0
  23. package/dist/components/Card/Card.d.ts.map +1 -0
  24. package/dist/components/Card/Card.js +25 -0
  25. package/dist/components/Checkbox/Checkbox.d.ts +6 -2
  26. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  27. package/dist/components/Checkbox/Checkbox.js +13 -4
  28. package/dist/components/CommandPalette/CommandPalette.d.ts.map +1 -1
  29. package/dist/components/CommandPalette/CommandPalette.js +10 -9
  30. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +1 -1
  31. package/dist/components/ConfirmDialog/ConfirmDialog.js +5 -2
  32. package/dist/components/ContextMenu/ContextMenu.d.ts.map +1 -1
  33. package/dist/components/ContextMenu/ContextMenu.js +2 -2
  34. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -1
  35. package/dist/components/DatePicker/DatePicker.js +9 -1
  36. package/dist/components/Dialog/Dialog.d.ts +69 -1
  37. package/dist/components/Dialog/Dialog.d.ts.map +1 -1
  38. package/dist/components/Dialog/Dialog.js +48 -1
  39. package/dist/components/Drawer/Drawer.d.ts.map +1 -1
  40. package/dist/components/Drawer/Drawer.js +2 -2
  41. package/dist/components/EntityPicker/EntityPicker.d.ts +2 -1
  42. package/dist/components/EntityPicker/EntityPicker.d.ts.map +1 -1
  43. package/dist/components/EntityPicker/EntityPicker.js +2 -2
  44. package/dist/components/Flex/Flex.d.ts +5 -1
  45. package/dist/components/Flex/Flex.d.ts.map +1 -1
  46. package/dist/components/Flex/Flex.js +16 -3
  47. package/dist/components/Grid/Grid.d.ts +9 -2
  48. package/dist/components/Grid/Grid.d.ts.map +1 -1
  49. package/dist/components/Grid/Grid.js +22 -1
  50. package/dist/components/IconButton/IconButton.d.ts +19 -7
  51. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  52. package/dist/components/IconButton/IconButton.js +40 -5
  53. package/dist/components/IconTextButton/IconTextButton.d.ts +20 -0
  54. package/dist/components/IconTextButton/IconTextButton.d.ts.map +1 -0
  55. package/dist/components/IconTextButton/IconTextButton.js +24 -0
  56. package/dist/components/InlineEdit/InlineEdit.d.ts +63 -0
  57. package/dist/components/InlineEdit/InlineEdit.d.ts.map +1 -0
  58. package/dist/components/InlineEdit/InlineEdit.js +98 -0
  59. package/dist/components/LinkButton/LinkButton.d.ts +25 -0
  60. package/dist/components/LinkButton/LinkButton.d.ts.map +1 -0
  61. package/dist/components/LinkButton/LinkButton.js +12 -0
  62. package/dist/components/Modal/Modal.d.ts +29 -6
  63. package/dist/components/Modal/Modal.d.ts.map +1 -1
  64. package/dist/components/Modal/Modal.js +37 -13
  65. package/dist/components/Overlay/OverlayProvider.d.ts +1 -0
  66. package/dist/components/Overlay/OverlayProvider.d.ts.map +1 -1
  67. package/dist/components/Overlay/OverlayProvider.js +18 -1
  68. package/dist/components/PaginatedCombobox/PaginatedCombobox.d.ts +2 -1
  69. package/dist/components/PaginatedCombobox/PaginatedCombobox.d.ts.map +1 -1
  70. package/dist/components/PaginatedCombobox/PaginatedCombobox.js +3 -3
  71. package/dist/components/Popover/Popover.d.ts +37 -3
  72. package/dist/components/Popover/Popover.d.ts.map +1 -1
  73. package/dist/components/Popover/Popover.js +56 -9
  74. package/dist/components/ScrollArea/ScrollArea.d.ts +4 -0
  75. package/dist/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  76. package/dist/components/ScrollArea/ScrollArea.js +30 -4
  77. package/dist/components/Section/Section.d.ts +2 -0
  78. package/dist/components/Section/Section.d.ts.map +1 -1
  79. package/dist/components/SegmentedControl/SegmentedControl.d.ts +24 -1
  80. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  81. package/dist/components/SegmentedControl/SegmentedControl.js +28 -2
  82. package/dist/components/Select/Select.d.ts +36 -4
  83. package/dist/components/Select/Select.d.ts.map +1 -1
  84. package/dist/components/Select/Select.js +70 -3
  85. package/dist/components/Separator/Separator.d.ts +3 -1
  86. package/dist/components/Separator/Separator.d.ts.map +1 -1
  87. package/dist/components/Separator/Separator.js +4 -2
  88. package/dist/components/SpecialModal/SpecialModal.d.ts +43 -0
  89. package/dist/components/SpecialModal/SpecialModal.d.ts.map +1 -0
  90. package/dist/components/SpecialModal/SpecialModal.js +34 -0
  91. package/dist/components/Spinner/Spinner.d.ts +3 -1
  92. package/dist/components/Spinner/Spinner.d.ts.map +1 -1
  93. package/dist/components/Spinner/Spinner.js +2 -2
  94. package/dist/components/State/State.d.ts +8 -1
  95. package/dist/components/State/State.d.ts.map +1 -1
  96. package/dist/components/State/State.js +2 -2
  97. package/dist/components/Switch/Switch.d.ts +2 -0
  98. package/dist/components/Switch/Switch.d.ts.map +1 -1
  99. package/dist/components/Switch/Switch.js +2 -1
  100. package/dist/components/Table/Table.d.ts +64 -0
  101. package/dist/components/Table/Table.d.ts.map +1 -0
  102. package/dist/components/Table/Table.js +38 -0
  103. package/dist/components/Tabs/Tabs.d.ts +33 -2
  104. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  105. package/dist/components/Tabs/Tabs.js +189 -4
  106. package/dist/components/Text/Text.d.ts +13 -3
  107. package/dist/components/Text/Text.d.ts.map +1 -1
  108. package/dist/components/Text/Text.js +16 -3
  109. package/dist/components/TextArea/TextArea.d.ts.map +1 -1
  110. package/dist/components/TextArea/TextArea.js +1 -1
  111. package/dist/components/TextField/TextField.d.ts.map +1 -1
  112. package/dist/components/TextField/TextField.js +1 -1
  113. package/dist/components/Toast/Toast.d.ts +1 -0
  114. package/dist/components/Toast/Toast.d.ts.map +1 -1
  115. package/dist/components/Toast/Toast.js +19 -8
  116. package/dist/components/Tooltip/Tooltip.d.ts +11 -3
  117. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  118. package/dist/components/Tooltip/Tooltip.js +58 -9
  119. package/dist/example/CodePreview.d.ts.map +1 -1
  120. package/dist/example/CodePreview.js +3 -3
  121. package/dist/example/ExampleActionsSection.d.ts.map +1 -1
  122. package/dist/example/ExampleActionsSection.js +3 -3
  123. package/dist/example/ExampleApplicationSection.d.ts +7 -0
  124. package/dist/example/ExampleApplicationSection.d.ts.map +1 -0
  125. package/dist/example/ExampleApplicationSection.js +68 -0
  126. package/dist/example/ExampleBasicsSections.d.ts.map +1 -1
  127. package/dist/example/ExampleBasicsSections.js +5 -9
  128. package/dist/example/ExampleDataSection.d.ts.map +1 -1
  129. package/dist/example/ExampleDataSection.js +31 -30
  130. package/dist/example/ExampleFieldsSection.d.ts.map +1 -1
  131. package/dist/example/ExampleFieldsSection.js +51 -3
  132. package/dist/example/ExampleFoundationsSection.js +1 -1
  133. package/dist/example/ExampleOverlays.d.ts.map +1 -1
  134. package/dist/example/ExampleOverlays.js +7 -2
  135. package/dist/example/ExampleOverlaysSection.d.ts.map +1 -1
  136. package/dist/example/ExampleOverlaysSection.js +5 -2
  137. package/dist/example/ExampleSelectionSection.d.ts +3 -1
  138. package/dist/example/ExampleSelectionSection.d.ts.map +1 -1
  139. package/dist/example/ExampleSelectionSection.js +10 -3
  140. package/dist/example/ExampleStateSection.d.ts +3 -0
  141. package/dist/example/ExampleStateSection.d.ts.map +1 -1
  142. package/dist/example/ExampleStateSection.js +58 -3
  143. package/dist/example/ExampleThemePlayground.d.ts +83 -53
  144. package/dist/example/ExampleThemePlayground.d.ts.map +1 -1
  145. package/dist/example/ExampleThemePlayground.js +119 -56
  146. package/dist/example/UiExamplePage.d.ts.map +1 -1
  147. package/dist/example/UiExamplePage.js +39 -10
  148. package/dist/example/codeSamples.d.ts +7 -0
  149. package/dist/example/codeSamples.d.ts.map +1 -1
  150. package/dist/example/codeSamples.js +429 -60
  151. package/dist/example/exampleData.d.ts.map +1 -1
  152. package/dist/example/exampleData.js +16 -2
  153. package/dist/example/styles.css +245 -74
  154. package/dist/hooks/useFloatingPosition.js +1 -1
  155. package/dist/hooks/usePresence.d.ts.map +1 -1
  156. package/dist/hooks/usePresence.js +9 -7
  157. package/dist/index.d.ts +8 -1
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/index.js +8 -1
  160. package/dist/styles/orcestr-ui.css +2544 -671
  161. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  162. package/dist/theme/ThemeProvider.js +90 -36
  163. package/dist/theme/defaultTheme.d.ts.map +1 -1
  164. package/dist/theme/defaultTheme.js +322 -194
  165. package/dist/theme/systemProps.d.ts +48 -28
  166. package/dist/theme/systemProps.d.ts.map +1 -1
  167. package/dist/theme/systemProps.js +103 -1
  168. package/dist/theme/themeTypes.d.ts +21 -17
  169. package/dist/theme/themeTypes.d.ts.map +1 -1
  170. package/dist/utils/slot.d.ts +11 -0
  171. package/dist/utils/slot.d.ts.map +1 -0
  172. package/dist/utils/slot.js +18 -0
  173. package/package.json +1 -1
  174. package/dist/components/Workflow/Workflow.d.ts +0 -82
  175. package/dist/components/Workflow/Workflow.d.ts.map +0 -1
  176. package/dist/components/Workflow/Workflow.js +0 -73
@@ -1,10 +1,58 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { LuSearch } from 'react-icons/lu';
4
- import { Button, DatePicker, DateRangePicker, DateRangePresetPicker, Flex, Field, Grid, NumberField, Section, Stack, StepperInput, Text, TextArea, TextField, } from '..';
3
+ import { useMemo, useState } from 'react';
4
+ import { LuCheck, LuPencil, LuSearch } from 'react-icons/lu';
5
+ import { Badge, Button, DatePicker, DateRangePicker, DateRangePresetPicker, Flex, Field, Grid, IconButton, InlineEditField, InlineEditMultiField, Listbox, NumberField, Popover, Section, Stack, StepperInput, Text, TextArea, TextField, } from '..';
5
6
  import { ExampleTile } from './CodePreview';
6
7
  import { codeSamples } from './codeSamples';
7
8
  import { UiExampleSection } from './UiExampleSection';
9
+ const inlineSupplierOptions = [
10
+ { key: 'northwind', label: 'Northwind Trading LLC' },
11
+ { key: 'aqua', label: 'Aqua Industrial Co.' },
12
+ { key: 'comfort', label: 'Comfort Sanitary Ware' },
13
+ ];
14
+ const inlineOwnerOptions = [
15
+ { key: 'michael', label: 'Michael Sokolov' },
16
+ { key: 'anna', label: 'Anna Petrova' },
17
+ { key: 'team', label: 'Purchasing team' },
18
+ { key: 'ops', label: 'Operations team' },
19
+ ];
20
+ const inlinePaymentTermOptions = [
21
+ { key: 'prepay', label: 'Prepayment' },
22
+ { key: 'net15', label: 'Net 15' },
23
+ { key: 'net30', label: 'Net 30' },
24
+ ];
8
25
  export function FieldsSection({ stepperValue, onStepperValueChange, dateValue, onDateValueChange, dateRange, onDateRangeChange, onOpenCode, }) {
9
- return (_jsxs(_Fragment, { children: [_jsx(UiExampleSection, { id: 'text-fields-example', title: 'Text fields', description: 'TextField and TextArea inside Field.', children: _jsxs(ExampleTile, { title: 'Text fields', code: codeSamples.textFields, onOpen: onOpenCode, children: [_jsx(Field, { label: 'Search', helperText: 'Clearable field with left slot.', children: _jsxs(Flex, { g: 2, a: 'c', children: [_jsx(TextField, { size: 2, placeholder: 'Search item', clearable: true, leftSlot: _jsx(LuSearch, { size: 16 }) }), _jsx(Button, { size: 2, v: 'surface', children: "Search" })] }) }), _jsx(Field, { label: 'Comment', children: _jsx(TextArea, { rows: 4, placeholder: 'Internal note' }) })] }) }), _jsx(UiExampleSection, { id: 'grouped-fields-example', title: 'Grouped fields', description: 'Layout primitives group fields without owning form state.', children: _jsx(ExampleTile, { title: 'Grouped fields', code: codeSamples.groupedFields, onOpen: onOpenCode, children: _jsxs(Section, { g: 3, children: [_jsxs(Stack, { g: 1, children: [_jsx(Text, { fw: 760, children: "Request details" }), _jsx(Text, { fs: '12px', tone: 'muted', children: "Layout primitives group fields without owning state." })] }), _jsxs(Stack, { g: 3, children: [_jsxs(Grid, { columns: 'repeat(auto-fit, minmax(min(100%, 180px), 1fr))', g: 3, children: [_jsx(Field, { label: 'Source', required: true, error: 'Choose a source', children: _jsx(TextField, { placeholder: 'Search source', invalid: true }) }), _jsx(Field, { label: 'Contact', children: _jsx(TextField, { placeholder: 'Name or email' }) })] }), _jsx(Field, { label: 'Review note', helperText: 'Visible to operators.', children: _jsx(TextArea, { rows: 3, placeholder: 'Internal instructions' }) }), _jsxs(Flex, { g: 2, j: 'e', wrap: true, children: [_jsx(Button, { type: 'button', v: 'surface', children: "Cancel" }), _jsx(Button, { type: 'button', children: "Save request" })] })] })] }) }) }), _jsx(UiExampleSection, { id: 'number-date-fields-example', title: 'Number and date fields', description: 'StepperInput, NumberField and DatePicker.', children: _jsxs(ExampleTile, { title: 'Number and date fields', code: codeSamples.numberAndDateFields, onOpen: onOpenCode, children: [_jsx(Field, { label: 'Quantity', children: _jsx(StepperInput, { value: stepperValue, onChange: onStepperValueChange, min: 0, max: 200 }) }), _jsx(Field, { label: 'Price', children: _jsx(NumberField, { defaultValue: 1250, min: 0 }) }), _jsx(Field, { label: 'Date', children: _jsx(DatePicker, { value: dateValue, onValueChange: onDateValueChange }) })] }) }), _jsx(UiExampleSection, { id: 'date-range-example', title: 'Date range', description: 'DateRangePicker and preset helper.', children: _jsxs(ExampleTile, { title: 'Date range', code: codeSamples.dateRangeFields, onOpen: onOpenCode, children: [_jsx(Field, { label: 'Range', children: _jsx(DateRangePicker, { value: dateRange, onValueChange: onDateRangeChange }) }), _jsx(DateRangePresetPicker, { today: '2026-06-26', onValueChange: onDateRangeChange }), _jsx(Text, { fs: '12px', tone: 'muted', children: "Date inputs stay as controls. Form ownership belongs to the application." })] }) })] }));
26
+ const [supplierOpen, setSupplierOpen] = useState(false);
27
+ const [paymentOpen, setPaymentOpen] = useState(false);
28
+ const [ownerOpen, setOwnerOpen] = useState(false);
29
+ const [supplierKey, setSupplierKey] = useState('northwind');
30
+ const [paymentTermKey, setPaymentTermKey] = useState('net30');
31
+ const [ownerKeys, setOwnerKeys] = useState(['michael', 'team']);
32
+ const selectedSupplier = inlineSupplierOptions.find((item) => item.key === supplierKey);
33
+ const selectedPaymentTerm = inlinePaymentTermOptions.find((item) => item.key === paymentTermKey);
34
+ const selectedOwners = useMemo(() => inlineOwnerOptions.filter((item) => ownerKeys.includes(item.key)), [ownerKeys]);
35
+ const toggleOwner = (key) => {
36
+ setOwnerKeys((current) => current.includes(key)
37
+ ? current.filter((item) => item !== key)
38
+ : [...current, key]);
39
+ };
40
+ return (_jsxs(_Fragment, { children: [_jsx(UiExampleSection, { id: 'text-fields-example', title: 'Text fields', description: 'TextField and TextArea inside Field.', children: _jsxs(ExampleTile, { title: 'Text fields', code: codeSamples.textFields, onOpen: onOpenCode, children: [_jsx(Field, { label: 'Search', helperText: 'Clearable field with left slot.', children: _jsxs(Flex, { g: 2, a: 'c', children: [_jsx(TextField, { size: 2, placeholder: 'Search item', clearable: true, leftSlot: _jsx(LuSearch, { size: 16 }) }), _jsx(Button, { size: 2, v: 'surface', children: "Search" })] }) }), _jsx(Field, { label: 'Comment', children: _jsx(TextArea, { rows: 4, placeholder: 'Internal note' }) })] }) }), _jsx(UiExampleSection, { id: 'grouped-fields-example', title: 'Grouped fields', description: 'Layout primitives group fields without owning form state.', children: _jsx(ExampleTile, { title: 'Grouped fields', code: codeSamples.groupedFields, onOpen: onOpenCode, children: _jsxs(Section, { g: 3, children: [_jsxs(Stack, { g: 1, children: [_jsx(Text, { fw: 760, children: "Request details" }), _jsx(Text, { fs: '12px', tone: 'muted', children: "Layout primitives group fields without owning state." })] }), _jsxs(Stack, { g: 3, children: [_jsxs(Grid, { columns: 'repeat(auto-fit, minmax(min(100%, 180px), 1fr))', g: 3, children: [_jsx(Field, { label: 'Source', required: true, error: 'Choose a source', children: _jsx(TextField, { placeholder: 'Search source', invalid: true }) }), _jsx(Field, { label: 'Contact', children: _jsx(TextField, { placeholder: 'Name or email' }) })] }), _jsx(Field, { label: 'Review note', helperText: 'Visible to operators.', children: _jsx(TextArea, { rows: 3, placeholder: 'Internal instructions' }) }), _jsxs(Flex, { g: 2, j: 'e', wrap: true, children: [_jsx(Button, { type: 'button', v: 'surface', children: "Cancel" }), _jsx(Button, { type: 'button', children: "Save request" })] })] })] }) }) }), _jsx(UiExampleSection, { id: 'inline-edit-example', title: 'Inline edit', description: 'Compact value displays for editable entity fields.', children: _jsx(ExampleTile, { title: 'Inline edit', code: codeSamples.inlineEdit, onOpen: onOpenCode, children: _jsxs(Stack, { g: 3, children: [_jsx(Field, { label: 'Single value', children: _jsx(InlineEditField, { label: selectedSupplier?.label ?? 'Choose supplier', meta: 'Supplier', onOpen: () => setSupplierOpen(true), action: (_jsx(Popover, { open: supplierOpen, onOpenChange: setSupplierOpen, trigger: (_jsx(IconButton, { size: 1, v: 'ghost', icon: _jsx(LuPencil, { size: 13 }), "aria-label": 'Edit supplier' })), className: 'oui-combobox-content oui-ui-inline-edit-popover', sideOffset: 4, children: _jsx(Listbox, { className: 'oui-combobox-options', items: inlineSupplierOptions.map((item) => ({
41
+ value: item.key,
42
+ label: item.label,
43
+ })), value: supplierKey, onValueChange: (nextKey) => {
44
+ setSupplierKey(nextKey);
45
+ setSupplierOpen(false);
46
+ } }) })), clearable: Boolean(selectedSupplier), onClear: () => setSupplierKey(null) }) }), _jsx(Field, { label: 'Single value without meta', children: _jsx(InlineEditField, { label: selectedPaymentTerm?.label ?? 'Choose payment terms', onOpen: () => setPaymentOpen(true), action: (_jsx(Popover, { open: paymentOpen, onOpenChange: setPaymentOpen, trigger: (_jsx(IconButton, { size: 1, v: 'ghost', icon: _jsx(LuPencil, { size: 13 }), "aria-label": 'Edit payment terms' })), className: 'oui-combobox-content oui-ui-inline-edit-popover', sideOffset: 4, children: _jsx(Listbox, { className: 'oui-combobox-options', items: inlinePaymentTermOptions.map((item) => ({
47
+ value: item.key,
48
+ label: item.label,
49
+ })), value: paymentTermKey, onValueChange: (nextKey) => {
50
+ setPaymentTermKey(nextKey);
51
+ setPaymentOpen(false);
52
+ } }) })), clearable: Boolean(selectedPaymentTerm), onClear: () => setPaymentTermKey(null) }) }), _jsx(Field, { label: 'Multiple values', children: _jsx(InlineEditMultiField, { onOpen: () => setOwnerOpen(true), action: (_jsx("span", { onClick: (event) => event.stopPropagation(), children: _jsx(Popover, { open: ownerOpen, onOpenChange: setOwnerOpen, trigger: (_jsx(IconButton, { size: 1, v: 'ghost', icon: _jsx(LuPencil, { size: 13 }), "aria-label": 'Edit owners' })), className: 'oui-combobox-content oui-ui-inline-edit-popover', sideOffset: 4, children: _jsx(Stack, { g: 1, p: 1, children: inlineOwnerOptions.map((item) => {
53
+ const selected = ownerKeys.includes(item.key);
54
+ return (_jsxs("button", { type: 'button', className: 'oui-combobox-option oui-ui-inline-edit-option', "data-selected": selected ? 'true' : 'false', onClick: () => toggleOwner(item.key), children: [_jsx("span", { className: 'oui-multi-select-check', children: selected ? _jsx(LuCheck, { size: 13 }) : null }), _jsx("span", { className: 'oui-combobox-option-main', children: item.label })] }, item.key));
55
+ }) }) }) })), col: true, empty: 'No owners selected', children: selectedOwners.length
56
+ ? selectedOwners.map((item, index) => (_jsx(Badge, { tone: index === 0 ? 'info' : 'neutral', v: 'soft', children: item.label }, item.key)))
57
+ : null }) }), _jsx(Field, { label: 'Pending update', children: _jsx(InlineEditField, { label: 'Payment terms', meta: 'Saving', busy: true }) })] }) }) }), _jsx(UiExampleSection, { id: 'number-date-fields-example', title: 'Number and date fields', description: 'StepperInput, NumberField and DatePicker.', children: _jsxs(ExampleTile, { title: 'Number and date fields', code: codeSamples.numberAndDateFields, onOpen: onOpenCode, children: [_jsx(Field, { label: 'Quantity', children: _jsx(StepperInput, { value: stepperValue, onChange: onStepperValueChange, min: 0, max: 200 }) }), _jsx(Field, { label: 'Price', children: _jsx(NumberField, { defaultValue: 1250, min: 0 }) }), _jsx(Field, { label: 'Date', children: _jsx(DatePicker, { value: dateValue, onValueChange: onDateValueChange }) })] }) }), _jsx(UiExampleSection, { id: 'date-range-example', title: 'Date range', description: 'DateRangePicker and preset helper.', children: _jsxs(ExampleTile, { title: 'Date range', code: codeSamples.dateRangeFields, onOpen: onOpenCode, children: [_jsx(Field, { label: 'Range', children: _jsx(DateRangePicker, { value: dateRange, onValueChange: onDateRangeChange }) }), _jsx(DateRangePresetPicker, { today: '2026-06-26', onValueChange: onDateRangeChange }), _jsx(Text, { fs: '12px', tone: 'muted', children: "Date inputs stay as controls. Form ownership belongs to the application." })] }) })] }));
10
58
  }
@@ -21,5 +21,5 @@ export function FoundationsSection({ onOpenCode, }) {
21
21
  ['Публичный API', 'size, tone, v, disabled, loading, invalid, testId'],
22
22
  ['Стили', 'только oui-* классы внутри @orcestr/ui/styles.css'],
23
23
  ['Проверки', 'tsc, contract tests, diff check, /ui smoke'],
24
- ].map(([title, description]) => (_jsxs("div", { className: 'oui-ui-contract-item', children: [_jsx(Badge, { tone: 'brand', children: title }), _jsx(Text, { fs: '12px', tone: 'muted', children: description })] }, title))) }) }) }) }));
24
+ ].map(([title, description]) => (_jsxs("div", { className: 'oui-ui-contract-item', children: [_jsx(Badge, { tone: 'primary', children: title }), _jsx(Text, { fs: '12px', tone: 'muted', children: description })] }, title))) }) }) }) }));
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExampleOverlays.d.ts","sourceRoot":"","sources":["../../src/example/ExampleOverlays.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,eAAe,EAAC,MAAM,IAAI,CAAC;AAExC,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC/C,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAEvC,KAAK,oBAAoB,GAAG;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,OAAO,GACV,EAAE,oBAAoB,2CAgOtB"}
1
+ {"version":3,"file":"ExampleOverlays.d.ts","sourceRoot":"","sources":["../../src/example/ExampleOverlays.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAC,KAAK,eAAe,EAAC,MAAM,IAAI,CAAC;AAExC,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC/C,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAuCvC,KAAK,oBAAoB,GAAG;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,OAAO,GACV,EAAE,oBAAoB,2CAgOtB"}
@@ -1,11 +1,16 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { Button, CommandPalette, Flex, Field, Modal, Stack, Text, TextField } from '..';
3
+ import {} from 'react';
4
+ import { LuX } from 'react-icons/lu';
5
+ import { Button, CommandPalette, Flex, Field, IconButton, Modal, Stack, Text, TextField } from '..';
4
6
  import { getCommandItems } from './exampleData';
5
7
  import {} from '..';
8
+ function ExampleModal({ title, description, footer, children, onOpenChange, ...props }) {
9
+ return (_jsxs(Modal, { ...props, onOpenChange: onOpenChange, children: [_jsxs(Modal.Header, { children: [_jsxs("div", { className: 'oui-modal-title-wrap', children: [_jsx("h2", { className: 'oui-modal-title', children: title }), description ? (_jsx("p", { className: 'oui-modal-description', children: description })) : null] }), _jsx(IconButton, { v: 'ghost', icon: _jsx(LuX, { size: 18 }), "aria-label": 'Close', onClick: () => onOpenChange(false) })] }), _jsx(Modal.Body, { children: children }), footer ? _jsx(Modal.Footer, { children: footer }) : null] }));
10
+ }
6
11
  export function ExampleOverlays({ locale, modalOpen, setModalOpen, nestedOpen, setNestedOpen, blurModalOpen, setBlurModalOpen, blurNestedOpen, setBlurNestedOpen, blurFinalOpen, setBlurFinalOpen, fastModalOpen, setFastModalOpen, slowModalOpen, setSlowModalOpen, riseModalOpen, setRiseModalOpen, dangerModalOpen, setDangerModalOpen, paletteOpen, setPaletteOpen, onToast, }) {
7
12
  const commandItems = getCommandItems(locale);
8
- return (_jsxs(_Fragment, { children: [_jsx(Modal, { open: modalOpen, onOpenChange: setModalOpen, title: 'Custom modal', description: 'First modal layer with the default theme blur backdrop.', footer: _jsxs(Flex, { g: 2, j: 'e', w: '100%', children: [_jsx(Button, { v: 'surface', onClick: () => setModalOpen(false), children: "Close" }), _jsx(Button, { onClick: () => setNestedOpen(true), children: "Open nested" })] }), children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "Nested modals stack above the previous layer and keep independent smooth open and close animations." }), _jsx(Field, { label: 'Modal field', children: _jsx(TextField, { placeholder: 'Focus stays inside modal' }) })] }) }), _jsx(Modal, { open: nestedOpen, onOpenChange: setNestedOpen, title: 'Nested modal', description: 'Second layer with the same default modal animation.', maxWidth: 440, children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "This checks layer indexes, focus trap and escape handling." }), _jsx(Button, { onClick: () => onToast('Nested modal action completed', 'success'), children: "Show toast" })] }) }), _jsx(Modal, { open: blurModalOpen, onOpenChange: setBlurModalOpen, title: 'Blur modal', description: 'Default modal surface with pure backdrop blur and no overlay tint.', maxWidth: 560, overlayColor: 'transparent', overlayOpacity: 0, overlayBlur: 10, borderColor: 'color-mix(in srgb, var(--oui-brand) 34%, var(--oui-border))', radius: 10, shadow: '0 24px 90px rgb(0 0 0 / 44%)', footer: _jsxs(Flex, { g: 2, j: 'e', w: '100%', children: [_jsx(Button, { v: 'surface', onClick: () => setBlurModalOpen(false), children: "Close" }), _jsx(Button, { onClick: () => setBlurNestedOpen(true), children: "Open nested blur" })] }), children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "This variant checks a strong backdrop blur while the overlay tint stays fully transparent." }), _jsx(Field, { label: 'Reference', children: _jsx(TextField, { placeholder: 'ORD-2048' }) })] }) }), _jsx(Modal, { open: blurNestedOpen, onOpenChange: setBlurNestedOpen, title: 'Nested blur modal', description: 'Second blur layer without overlay tint.', maxWidth: 500, overlayColor: 'transparent', overlayOpacity: 0, overlayBlur: 8, borderColor: 'color-mix(in srgb, var(--oui-brand) 38%, var(--oui-border))', radius: 10, footer: _jsxs(Flex, { g: 2, j: 'e', w: '100%', children: [_jsx(Button, { v: 'surface', onClick: () => setBlurNestedOpen(false), children: "Close" }), _jsx(Button, { onClick: () => setBlurFinalOpen(true), children: "Open final blur" })] }), children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "This layer keeps the backdrop blur transparent while stacking above the first blur modal." }), _jsx(TextField, { placeholder: 'Nested value' })] }) }), _jsx(Modal, { open: blurFinalOpen, onOpenChange: setBlurFinalOpen, title: 'Final blur modal', description: 'Top blur layer. Toast must appear above this modal.', maxWidth: 440, overlayColor: 'transparent', overlayOpacity: 0, overlayBlur: 6, borderColor: 'color-mix(in srgb, var(--oui-brand) 42%, var(--oui-border))', radius: 10, children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "Use this modal to verify blur stacking and toast z-index." }), _jsx(Button, { onClick: () => onToast('Toast above nested blur modals', 'success'), children: "Show toast" })] }) }), _jsx(Modal, { open: fastModalOpen, onOpenChange: setFastModalOpen, title: 'Fast modal', description: 'Short animationDuration passed directly to the modal.', maxWidth: 460, overlayColor: '#0b1020', overlayOpacity: 0.28, overlayBlur: 4, animationDuration: '160ms', children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "This variant opens and closes quickly while still animating the backdrop blur." }), _jsx(Button, { onClick: () => setFastModalOpen(false), children: "Close" })] }) }), _jsx(Modal, { open: slowModalOpen, onOpenChange: setSlowModalOpen, title: 'Very slow modal', description: 'Long animationDuration for checking smooth blur ramp.', maxWidth: 520, overlayColor: 'transparent', overlayOpacity: 0, overlayBlur: 14, animationDuration: '1200ms', borderColor: 'color-mix(in srgb, var(--oui-brand) 42%, var(--oui-border))', radius: 10, children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "The backdrop blur should build up and fade out gradually during the whole animation." }), _jsx(Button, { onClick: () => setSlowModalOpen(false), children: "Close" })] }) }), _jsx(Modal, { open: riseModalOpen, onOpenChange: setRiseModalOpen, title: 'Rise modal', description: 'Legacy rise animation kept as an explicit modal animation variant.', maxWidth: 480, overlayColor: '#0b1020', overlayOpacity: 0.28, overlayBlur: 4, animation: 'rise', children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "This keeps the previous small scale and vertical movement without content blur." }), _jsx(Button, { onClick: () => setRiseModalOpen(false), children: "Close" })] }) }), _jsx(Modal, { open: dangerModalOpen, onOpenChange: setDangerModalOpen, title: 'Danger modal', description: 'Strong colored overlay, danger border and compact radius.', maxWidth: 500, overlayColor: '#3b0712', overlayOpacity: 0.48, overlayBlur: 3, borderColor: 'color-mix(in srgb, var(--oui-danger) 46%, var(--oui-border))', radius: 8, footer: _jsxs(Flex, { g: 2, j: 'e', w: '100%', children: [_jsx(Button, { v: 'surface', onClick: () => setDangerModalOpen(false), children: "Cancel" }), _jsx(Button, { tone: 'danger', onClick: () => {
13
+ return (_jsxs(_Fragment, { children: [_jsx(ExampleModal, { open: modalOpen, onOpenChange: setModalOpen, title: 'Custom modal', description: 'First modal layer with the default theme blur backdrop.', footer: _jsxs(Flex, { g: 2, j: 'e', w: '100%', children: [_jsx(Button, { v: 'surface', onClick: () => setModalOpen(false), children: "Close" }), _jsx(Button, { onClick: () => setNestedOpen(true), children: "Open nested" })] }), children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "Nested modals stack above the previous layer and keep independent smooth open and close animations." }), _jsx(Field, { label: 'Modal field', children: _jsx(TextField, { placeholder: 'Focus stays inside modal' }) })] }) }), _jsx(ExampleModal, { open: nestedOpen, onOpenChange: setNestedOpen, title: 'Nested modal', description: 'Second layer with the same default modal animation.', maxWidth: 440, children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "This checks layer indexes, focus trap and escape handling." }), _jsx(Button, { onClick: () => onToast('Nested modal action completed', 'success'), children: "Show toast" })] }) }), _jsx(ExampleModal, { open: blurModalOpen, onOpenChange: setBlurModalOpen, title: 'Blur modal', description: 'Default modal surface with pure backdrop blur and no overlay tint.', maxWidth: 560, overlayColor: 'transparent', overlayOpacity: 0, overlayBlur: 10, borderColor: 'color-mix(in srgb, var(--oui-primary-base) 34%, var(--oui-border))', radius: 10, shadow: '0 24px 90px rgb(0 0 0 / 44%)', footer: _jsxs(Flex, { g: 2, j: 'e', w: '100%', children: [_jsx(Button, { v: 'surface', onClick: () => setBlurModalOpen(false), children: "Close" }), _jsx(Button, { onClick: () => setBlurNestedOpen(true), children: "Open nested blur" })] }), children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "This variant checks a strong backdrop blur while the overlay tint stays fully transparent." }), _jsx(Field, { label: 'Reference', children: _jsx(TextField, { placeholder: 'ORD-2048' }) })] }) }), _jsx(ExampleModal, { open: blurNestedOpen, onOpenChange: setBlurNestedOpen, title: 'Nested blur modal', description: 'Second blur layer without overlay tint.', maxWidth: 500, overlayColor: 'transparent', overlayOpacity: 0, overlayBlur: 8, borderColor: 'color-mix(in srgb, var(--oui-primary-base) 38%, var(--oui-border))', radius: 10, footer: _jsxs(Flex, { g: 2, j: 'e', w: '100%', children: [_jsx(Button, { v: 'surface', onClick: () => setBlurNestedOpen(false), children: "Close" }), _jsx(Button, { onClick: () => setBlurFinalOpen(true), children: "Open final blur" })] }), children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "This layer keeps the backdrop blur transparent while stacking above the first blur modal." }), _jsx(TextField, { placeholder: 'Nested value' })] }) }), _jsx(ExampleModal, { open: blurFinalOpen, onOpenChange: setBlurFinalOpen, title: 'Final blur modal', description: 'Top blur layer. Toast must appear above this modal.', maxWidth: 440, overlayColor: 'transparent', overlayOpacity: 0, overlayBlur: 6, borderColor: 'color-mix(in srgb, var(--oui-primary-base) 42%, var(--oui-border))', radius: 10, children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "Use this modal to verify blur stacking and toast z-index." }), _jsx(Button, { onClick: () => onToast('Toast above nested blur modals', 'success'), children: "Show toast" })] }) }), _jsx(ExampleModal, { open: fastModalOpen, onOpenChange: setFastModalOpen, title: 'Fast modal', description: 'Short animationDuration passed directly to the modal.', maxWidth: 460, overlayColor: '#0b1020', overlayOpacity: 0.28, overlayBlur: 4, animationDuration: '160ms', children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "This variant opens and closes quickly while still animating the backdrop blur." }), _jsx(Button, { onClick: () => setFastModalOpen(false), children: "Close" })] }) }), _jsx(ExampleModal, { open: slowModalOpen, onOpenChange: setSlowModalOpen, title: 'Very slow modal', description: 'Long animationDuration for checking smooth blur ramp.', maxWidth: 520, overlayColor: 'transparent', overlayOpacity: 0, overlayBlur: 14, animationDuration: '1200ms', borderColor: 'color-mix(in srgb, var(--oui-primary-base) 42%, var(--oui-border))', radius: 10, children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "The backdrop blur should build up and fade out gradually during the whole animation." }), _jsx(Button, { onClick: () => setSlowModalOpen(false), children: "Close" })] }) }), _jsx(ExampleModal, { open: riseModalOpen, onOpenChange: setRiseModalOpen, title: 'Rise modal', description: 'Legacy rise animation kept as an explicit modal animation variant.', maxWidth: 480, overlayColor: '#0b1020', overlayOpacity: 0.28, overlayBlur: 4, animation: 'rise', children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "This keeps the previous small scale and vertical movement without content blur." }), _jsx(Button, { onClick: () => setRiseModalOpen(false), children: "Close" })] }) }), _jsx(ExampleModal, { open: dangerModalOpen, onOpenChange: setDangerModalOpen, title: 'Danger modal', description: 'Strong colored overlay, danger border and compact radius.', maxWidth: 500, overlayColor: '#3b0712', overlayOpacity: 0.48, overlayBlur: 3, borderColor: 'color-mix(in srgb, var(--oui-danger-base) 46%, var(--oui-border))', radius: 8, footer: _jsxs(Flex, { g: 2, j: 'e', w: '100%', children: [_jsx(Button, { v: 'surface', onClick: () => setDangerModalOpen(false), children: "Cancel" }), _jsx(Button, { tone: 'danger', onClick: () => {
9
14
  setDangerModalOpen(false);
10
15
  onToast('Danger action confirmed', 'danger');
11
16
  }, children: "Confirm" })] }), children: _jsxs(Stack, { g: 3, children: [_jsx(Text, { color: 'var(--oui-muted)', lh: 1.5, children: "This variant checks a colored backdrop without a hard flash on open or close." }), _jsx(TextField, { value: 'Archive selected record', readOnly: true })] }) }), _jsx(CommandPalette, { open: paletteOpen, onOpenChange: setPaletteOpen, items: commandItems, recentItems: commandItems.slice(1, 3), globalOpenEvents: ['orcestr:open-command-palette'], onSelect: (value) => onToast(`Command selected: ${value}`, 'info') })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"ExampleOverlaysSection.d.ts","sourceRoot":"","sources":["../../src/example/ExampleOverlaysSection.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAc,KAAK,WAAW,EAAC,MAAM,eAAe,CAAC;AAG5D,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAEvC,KAAK,oBAAoB,GAAG;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC9C,CAAC;AAgEF,wBAAgB,eAAe,CAAC,EAC5B,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,GACb,EAAE,oBAAoB,2CA+OtB"}
1
+ {"version":3,"file":"ExampleOverlaysSection.d.ts","sourceRoot":"","sources":["../../src/example/ExampleOverlaysSection.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAc,KAAK,WAAW,EAAC,MAAM,eAAe,CAAC;AAG5D,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAEvC,KAAK,oBAAoB,GAAG;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC9C,CAAC;AAgEF,wBAAgB,eAAe,CAAC,EAC5B,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,GACb,EAAE,oBAAoB,2CA8RtB"}
@@ -1,7 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useState } from 'react';
3
4
  import { LuChevronDown } from 'react-icons/lu';
4
- import { Button, Popover, Stack, Text, Tooltip, useToast, } from '..';
5
+ import { Button, Dialog, Drawer, Flex, Popover, Stack, Text, Tooltip, useToast, } from '..';
5
6
  import { ExampleTile } from './CodePreview';
6
7
  import { codeSamples } from './codeSamples';
7
8
  import { UiExampleSection } from './UiExampleSection';
@@ -60,7 +61,9 @@ const toastPositionVariants = [
60
61
  ];
61
62
  export function OverlaysSection({ setModalOpen, setBlurModalOpen, setFastModalOpen, setRiseModalOpen, setSlowModalOpen, setDangerModalOpen, onOpenCode, }) {
62
63
  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
+ const [dialogOpen, setDialogOpen] = useState(false);
65
+ const [drawerOpen, setDrawerOpen] = useState(false);
66
+ 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" }) }), _jsx(Button, { v: 'surface', onClick: () => setDialogOpen(true), children: "Dialog" }), _jsx(Button, { v: 'surface', onClick: () => setDrawerOpen(true), children: "Drawer" })] }), _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(Dialog.Root, { open: dialogOpen, onOpenChange: setDialogOpen, children: _jsx(Dialog.Content, { maxWidth: 460, children: _jsxs(Stack, { g: 3, children: [_jsxs(Stack, { g: 1, children: [_jsx(Dialog.Title, { children: "Dialog title" }), _jsx(Dialog.Description, { children: "Dialog keeps the Modal layer but owns accessible title and description." })] }), _jsxs(Flex, { g: 2, j: 'e', children: [_jsx(Dialog.Close, { children: _jsx(Button, { v: 'surface', children: "Cancel" }) }), _jsx(Button, { onClick: () => setDialogOpen(false), children: "Confirm" })] })] }) }) }), _jsx(Drawer, { open: drawerOpen, onOpenChange: setDrawerOpen, title: 'Drawer title', description: 'Drawer uses the same overlay stack and focus behavior.', footer: (_jsxs(Flex, { g: 2, j: 'e', children: [_jsx(Button, { v: 'surface', onClick: () => setDrawerOpen(false), children: "Close" }), _jsx(Button, { children: "Apply" })] })), children: _jsxs(Stack, { g: 2, children: [_jsx(Text, { tone: 'muted', fs: '13px', children: "Use Drawer for side panels and contextual forms." }), _jsx(Button, { v: 'soft', children: "Panel action" })] }) }), _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
67
  title: 'Saved successfully',
65
68
  message: 'The settings are synced with the current theme.',
66
69
  position: 'bottom-right',
@@ -16,6 +16,8 @@ type SelectionSectionProps = {
16
16
  onComboValueChange: (value: string | null) => void;
17
17
  entityValue: EntityOption | null;
18
18
  onEntityValueChange: (value: EntityOption | null) => void;
19
+ paginatedValue: EntityOption | null;
20
+ onPaginatedValueChange: (value: EntityOption | null) => void;
19
21
  ownerValues: string[];
20
22
  onOwnerValuesChange: (value: string[]) => void;
21
23
  radioValue: string;
@@ -25,6 +27,6 @@ type SelectionSectionProps = {
25
27
  onOpenCode: (example: CodeExample) => void;
26
28
  onToast: (title: string, tone?: ToastTone) => void;
27
29
  };
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;
30
+ export declare function SelectionSection({ locale, segment, onSegmentChange, selectValue, onSelectValueChange, selectNoChevronValue, onSelectNoChevronValueChange, selectPlainValue, onSelectPlainValueChange, comboValue, onComboValueChange, entityValue, onEntityValueChange, paginatedValue, onPaginatedValueChange, ownerValues, onOwnerValuesChange, radioValue, onRadioValueChange, tabValue, onTabValueChange, onOpenCode, onToast, }: SelectionSectionProps): import("react/jsx-runtime").JSX.Element;
29
31
  export {};
30
32
  //# sourceMappingURL=ExampleSelectionSection.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"ExampleSelectionSection.d.ts","sourceRoot":"","sources":["../../src/example/ExampleSelectionSection.tsx"],"names":[],"mappings":"AAKA,OAAO,EAYH,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,cAAc,EAAE,YAAY,GAAG,IAAI,CAAC;IACpC,sBAAsB,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,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,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,OAAO,GACV,EAAE,qBAAqB,2CAqMvB"}
@@ -2,17 +2,17 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { useCallback } from 'react';
4
4
  import { LuHistory, LuListChecks, LuPlus } from 'react-icons/lu';
5
- import { Checkbox, Combobox, EntityPicker, MultiSelect, RadioGroup, SegmentedControl, Select, Switch, Tabs, Text, } from '..';
5
+ import { Checkbox, Combobox, EntityPicker, MultiSelect, PaginatedCombobox, RadioGroup, SegmentedControl, Select, Switch, Tabs, Text, } from '..';
6
6
  import { ExampleTile } from './CodePreview';
7
7
  import { codeSamples } from './codeSamples';
8
8
  import { getOptionItems, getOwnerItems, loadEntityPage, } from './exampleData';
9
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, }) {
10
+ export function SelectionSection({ locale, segment, onSegmentChange, selectValue, onSelectValueChange, selectNoChevronValue, onSelectNoChevronValueChange, selectPlainValue, onSelectPlainValueChange, comboValue, onComboValueChange, entityValue, onEntityValueChange, paginatedValue, onPaginatedValueChange, ownerValues, onOwnerValuesChange, radioValue, onRadioValueChange, tabValue, onTabValueChange, onOpenCode, onToast, }) {
11
11
  const optionItems = getOptionItems(locale);
12
12
  const ownerItems = getOwnerItems(locale);
13
13
  const copy = selectionCopy[locale];
14
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
15
+ return (_jsxs(_Fragment, { children: [_jsx(UiExampleSection, { id: 'selects-example', title: 'Selects', description: 'Select, Combobox, MultiSelect, EntityPicker wrapper, lower-level PaginatedCombobox 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
16
  ? items[0]?.label
17
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
18
  label: copy.createEntityFromSearch,
@@ -21,6 +21,13 @@ export function SelectionSection({ locale, segment, onSegmentChange, selectValue
21
21
  icon: _jsx(LuPlus, { size: 14 }),
22
22
  label: (item) => copy.addEntity(item.article),
23
23
  onClick: (item) => onToast(copy.entityAction(item.article), 'success'),
24
+ } }), _jsx(PaginatedCombobox, { value: paginatedValue, onChange: onPaginatedValueChange, loadPage: loadLocalizedEntityPage, getItemId: (item) => item.id, renderSelectedLabel: (item) => item.article, renderOption: (item) => (_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 })] })), placeholder: 'Paginated combobox', clearable: true, searchAction: {
25
+ label: copy.createEntityFromSearch,
26
+ onClick: (search) => onToast(copy.createEntityToast(search), 'info'),
27
+ }, optionAction: {
28
+ icon: _jsx(LuPlus, { size: 14 }),
29
+ label: (item) => copy.addEntity(item.article),
30
+ onClick: (item) => onToast(copy.entityAction(item.article), 'success'),
24
31
  } }), _jsx(SegmentedControl, { items: [
25
32
  { value: 'active', label: 'Active' },
26
33
  { value: 'drafts', label: 'Drafts' },
@@ -1,4 +1,7 @@
1
1
  import { type CodeExample } from './codeSamples';
2
+ export declare function BadgeSection({ onOpenCode, }: {
3
+ onOpenCode: (example: CodeExample) => void;
4
+ }): import("react/jsx-runtime").JSX.Element;
2
5
  export declare function StateCardSection({ onOpenCode, }: {
3
6
  onOpenCode: (example: CodeExample) => void;
4
7
  }): import("react/jsx-runtime").JSX.Element;
@@ -1 +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"}
1
+ {"version":3,"file":"ExampleStateSection.d.ts","sourceRoot":"","sources":["../../src/example/ExampleStateSection.tsx"],"names":[],"mappings":"AA2BA,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,eAAe,CAAC;AAmH/C,wBAAgB,YAAY,CAAC,EACzB,UAAU,GACb,EAAE;IACC,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC9C,2CAoCA;AAED,wBAAgB,gBAAgB,CAAC,EAC7B,UAAU,GACb,EAAE;IACC,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC9C,2CAsEA;AAED,wBAAgB,eAAe,CAAC,EAC5B,UAAU,GACb,EAAE;IACC,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC9C,2CAgCA"}
@@ -1,7 +1,8 @@
1
1
  'use client';
2
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 '..';
3
+ import { useState } from 'react';
4
+ import { LuCircleAlert, LuCircleCheck, LuCircleX, LuClock3, LuInfo, LuLoaderCircle, LuPackageCheck, LuShieldCheck, } from 'react-icons/lu';
5
+ import { Badge, BadgeSelectMenu, Button, EmptyState, ErrorState, IconText, LoadingState, Stack, StateCard, Text, } from '..';
5
6
  import { ExampleTile } from './CodePreview';
6
7
  import {} from './codeSamples';
7
8
  import { UiExampleSection } from './UiExampleSection';
@@ -32,6 +33,28 @@ const validationItems = [
32
33
  title='General state'
33
34
  description='One card for informational, empty, loading and error states.'
34
35
  />
36
+ <div className='oui-ui-state-grid'>
37
+ <StateCard
38
+ v='surface'
39
+ tone='primary'
40
+ title='Surface'
41
+ titleTone='primary'
42
+ description='Uses the regular surface with a toned title.'
43
+ descriptionTone='muted'
44
+ />
45
+ <StateCard
46
+ v='outline'
47
+ tone='warning'
48
+ title='Outline'
49
+ description='Useful when the card should stay quiet.'
50
+ />
51
+ <StateCard
52
+ v='ghost'
53
+ tone='success'
54
+ title='Ghost'
55
+ description='No extra background.'
56
+ />
57
+ </div>
35
58
  <StateCard tone='danger' title='Validation failed'>
36
59
  <Stack g={1}>
37
60
  {validationItems.map((item) => (
@@ -55,6 +78,29 @@ const validationItems = [
55
78
  />
56
79
  </Stack>`,
57
80
  };
81
+ const badgeSample = {
82
+ title: 'Badge',
83
+ code: `import {useState} from 'react';
84
+ import {Badge, BadgeSelectMenu, Flex} from '@orcestr/ui';
85
+ import {LuClock3, LuPackageCheck, LuShieldCheck} from 'react-icons/lu';
86
+
87
+ const [status, setStatus] = useState('review');
88
+ const statusItems = [
89
+ {value: 'draft', label: 'Draft'},
90
+ {value: 'review', label: 'Review'},
91
+ {value: 'accepted', label: 'Accepted'},
92
+ ];
93
+
94
+ <Flex g={2} wrap>
95
+ <Badge tone='neutral'>Requested <strong>43</strong></Badge>
96
+ <Badge tone='info' icon={<LuClock3 />}>Ordered <strong>12</strong></Badge>
97
+ <Badge tone='success' icon={<LuPackageCheck />}>Accepted <strong>8</strong></Badge>
98
+ <Badge tone='warning' v='surface' icon={<LuShieldCheck />}>Review</Badge>
99
+ <Badge tone='danger' v='outline'>Blocked</Badge>
100
+ <Badge tone='primary' v='solid'>Primary</Badge>
101
+ <BadgeSelectMenu value={status} items={statusItems} onValueChange={setStatus} tone='warning' />
102
+ </Flex>`,
103
+ };
58
104
  const iconTextSample = {
59
105
  title: 'IconText',
60
106
  code: `import {IconText, Stack} from '@orcestr/ui';
@@ -68,8 +114,17 @@ import {LuCircleAlert, LuCircleCheck, LuCircleX, LuInfo, LuLoaderCircle} from 'r
68
114
  <IconText icon={<LuInfo />} iconTone='info' fs='13px'>Sync scheduled</IconText>
69
115
  </Stack>`,
70
116
  };
117
+ export function BadgeSection({ onOpenCode, }) {
118
+ const [status, setStatus] = useState('review');
119
+ const statusItems = [
120
+ { value: 'draft', label: 'Draft' },
121
+ { value: 'review', label: 'Review' },
122
+ { value: 'accepted', label: 'Accepted' },
123
+ ];
124
+ return (_jsx(UiExampleSection, { id: 'badges-example', title: 'Badge', description: 'Compact counters and statuses without a special wrapper.', children: _jsx(ExampleTile, { title: 'Badge', code: badgeSample.code, onOpen: onOpenCode, children: _jsxs("div", { className: 'oui-ui-badge-demo', children: [_jsxs(Badge, { tone: 'neutral', children: ["Requested ", _jsx("strong", { children: "43" })] }), _jsxs(Badge, { tone: 'info', icon: _jsx(LuClock3, {}), children: ["Ordered ", _jsx("strong", { children: "12" })] }), _jsxs(Badge, { tone: 'success', icon: _jsx(LuPackageCheck, {}), children: ["Accepted ", _jsx("strong", { children: "8" })] }), _jsx(Badge, { tone: 'warning', v: 'surface', icon: _jsx(LuShieldCheck, {}), children: "Review" }), _jsx(Badge, { tone: 'danger', v: 'outline', children: "Blocked" }), _jsx(Badge, { tone: 'primary', v: 'solid', children: "Primary" }), _jsx(BadgeSelectMenu, { value: status, items: statusItems, onValueChange: setStatus, tone: 'warning' })] }) }) }));
125
+ }
71
126
  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" }) })] }) }) }));
127
+ 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.' }), _jsxs("div", { className: 'oui-ui-state-grid', children: [_jsx(StateCard, { v: 'surface', tone: 'primary', title: 'Surface', titleTone: 'primary', description: 'Uses the regular surface with a toned title.', descriptionTone: 'muted' }), _jsx(StateCard, { v: 'outline', tone: 'warning', title: 'Outline', description: 'Useful when the card should stay quiet.' }), _jsx(StateCard, { v: 'ghost', tone: 'success', title: 'Ghost', description: 'No extra background.' })] }), _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
128
  }
74
129
  export function IconTextSection({ onOpenCode, }) {
75
130
  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" })] }) }) }));
@@ -54,14 +54,19 @@ export declare const themePlaygroundPresets: readonly [{
54
54
  readonly panel: "#0d2119";
55
55
  readonly panelSoft: "#133126";
56
56
  readonly floating: "#0d2119";
57
- readonly brand: "#34d399";
58
- readonly brandStrong: "#86efac";
59
- readonly brandSolid: "#059669";
60
- readonly brandSolidHover: "#10b981";
61
- readonly brandSoft: "rgb(52 211 153 / 16%)";
57
+ readonly primary: {
58
+ readonly base: "#059669";
59
+ readonly text: "#86efac";
60
+ readonly surface: "rgb(52 211 153 / 16%)";
61
+ readonly border: "rgb(52 211 153 / 16%)";
62
+ readonly contrast: "#ffffff";
63
+ };
62
64
  readonly selected: "rgb(52 211 153 / 14%)";
63
- readonly info: "#7dd3fc";
64
- readonly infoSoft: "#0b3240";
65
+ readonly info: {
66
+ readonly base: "#7dd3fc";
67
+ readonly text: "#7dd3fc";
68
+ readonly surface: "#0b3240";
69
+ };
65
70
  };
66
71
  };
67
72
  }, {
@@ -96,11 +101,13 @@ export declare const themePlaygroundPresets: readonly [{
96
101
  readonly borderStrong: "rgb(255 255 255 / 12%)";
97
102
  readonly text: "#f7f7f7";
98
103
  readonly muted: "#9a9a9a";
99
- readonly brand: "#8ab4ff";
100
- readonly brandStrong: "#b7d1ff";
101
- readonly brandSolid: "#2759c7";
102
- readonly brandSolidHover: "#3369e6";
103
- readonly brandSoft: "rgb(138 180 255 / 17%)";
104
+ readonly primary: {
105
+ readonly base: "#2759c7";
106
+ readonly text: "#b7d1ff";
107
+ readonly surface: "rgb(138 180 255 / 17%)";
108
+ readonly border: "rgb(138 180 255 / 17%)";
109
+ readonly contrast: "#ffffff";
110
+ };
104
111
  readonly selected: "rgb(138 180 255 / 14%)";
105
112
  readonly focusRing: "0 0 0 3px rgb(138 180 255 / 20%)";
106
113
  readonly skeletonShimmer: "rgb(255 255 255 / 7%)";
@@ -138,14 +145,19 @@ export declare const themePlaygroundPresets: readonly [{
138
145
  readonly panel: "#1a1a1a";
139
146
  readonly panelSoft: "#242424";
140
147
  readonly floating: "#1b1b1b";
141
- readonly brand: "#c4d3e8";
142
- readonly brandStrong: "#e4edf8";
143
- readonly brandSolid: "#5d6f87";
144
- readonly brandSolidHover: "#71839b";
145
- readonly brandSoft: "rgb(196 211 232 / 14%)";
148
+ readonly primary: {
149
+ readonly base: "#5d6f87";
150
+ readonly text: "#e4edf8";
151
+ readonly surface: "rgb(196 211 232 / 14%)";
152
+ readonly border: "rgb(196 211 232 / 14%)";
153
+ readonly contrast: "#ffffff";
154
+ };
146
155
  readonly selected: "rgb(196 211 232 / 12%)";
147
- readonly info: "#8ecae6";
148
- readonly infoSoft: "#122f3a";
156
+ readonly info: {
157
+ readonly base: "#8ecae6";
158
+ readonly text: "#8ecae6";
159
+ readonly surface: "#122f3a";
160
+ };
149
161
  };
150
162
  readonly radii: {
151
163
  readonly md: "5px";
@@ -176,14 +188,19 @@ export declare const themePlaygroundPresets: readonly [{
176
188
  readonly panel: "#1d1820";
177
189
  readonly panelSoft: "#29212d";
178
190
  readonly floating: "#1d1820";
179
- readonly brand: "#f0a6d8";
180
- readonly brandStrong: "#ffc1e7";
181
- readonly brandSolid: "#a84486";
182
- readonly brandSolidHover: "#bc5399";
183
- readonly brandSoft: "rgb(240 166 216 / 17%)";
191
+ readonly primary: {
192
+ readonly base: "#a84486";
193
+ readonly text: "#ffc1e7";
194
+ readonly surface: "rgb(240 166 216 / 17%)";
195
+ readonly border: "rgb(240 166 216 / 17%)";
196
+ readonly contrast: "#ffffff";
197
+ };
184
198
  readonly selected: "rgb(240 166 216 / 16%)";
185
- readonly warning: "#fbbf24";
186
- readonly warningSoft: "#49371c";
199
+ readonly warning: {
200
+ readonly base: "#fbbf24";
201
+ readonly text: "#fbbf24";
202
+ readonly surface: "#49371c";
203
+ };
187
204
  };
188
205
  };
189
206
  }, {
@@ -226,14 +243,19 @@ export declare const themePlaygroundPresets: readonly [{
226
243
  readonly panel: "#101a2b";
227
244
  readonly panelSoft: "#172338";
228
245
  readonly floating: "#101a2b";
229
- readonly brand: "#7dd3fc";
230
- readonly brandStrong: "#bae6fd";
231
- readonly brandSolid: "#0369a1";
232
- readonly brandSolidHover: "#0284c7";
233
- readonly brandSoft: "rgb(125 211 252 / 16%)";
246
+ readonly primary: {
247
+ readonly base: "#0369a1";
248
+ readonly text: "#bae6fd";
249
+ readonly surface: "rgb(125 211 252 / 16%)";
250
+ readonly border: "rgb(125 211 252 / 16%)";
251
+ readonly contrast: "#ffffff";
252
+ };
234
253
  readonly selected: "rgb(125 211 252 / 13%)";
235
- readonly info: "#22d3ee";
236
- readonly infoSoft: "#083344";
254
+ readonly info: {
255
+ readonly base: "#22d3ee";
256
+ readonly text: "#22d3ee";
257
+ readonly surface: "#083344";
258
+ };
237
259
  };
238
260
  };
239
261
  }, {
@@ -275,11 +297,13 @@ export declare const themePlaygroundPresets: readonly [{
275
297
  readonly bg: "#eefbf4";
276
298
  readonly panel: "#ffffff";
277
299
  readonly panelSoft: "#ddf4e8";
278
- readonly brand: "#047857";
279
- readonly brandStrong: "#065f46";
280
- readonly brandSolid: "#047857";
281
- readonly brandSolidHover: "#065f46";
282
- readonly brandSoft: "rgb(4 120 87 / 12%)";
300
+ readonly primary: {
301
+ readonly base: "#047857";
302
+ readonly text: "#065f46";
303
+ readonly surface: "rgb(4 120 87 / 12%)";
304
+ readonly border: "rgb(4 120 87 / 12%)";
305
+ readonly contrast: "#ffffff";
306
+ };
283
307
  readonly selected: "rgb(4 120 87 / 10%)";
284
308
  };
285
309
  };
@@ -305,11 +329,13 @@ export declare const themePlaygroundPresets: readonly [{
305
329
  readonly bg: "#fff1f8";
306
330
  readonly panel: "#ffffff";
307
331
  readonly panelSoft: "#ffe4f2";
308
- readonly brand: "#db2777";
309
- readonly brandStrong: "#be185d";
310
- readonly brandSolid: "#db2777";
311
- readonly brandSolidHover: "#be185d";
312
- readonly brandSoft: "rgb(219 39 119 / 12%)";
332
+ readonly primary: {
333
+ readonly base: "#db2777";
334
+ readonly text: "#be185d";
335
+ readonly surface: "rgb(219 39 119 / 12%)";
336
+ readonly border: "rgb(219 39 119 / 12%)";
337
+ readonly contrast: "#ffffff";
338
+ };
313
339
  readonly selected: "rgb(219 39 119 / 10%)";
314
340
  };
315
341
  };
@@ -352,11 +378,13 @@ export declare const themePlaygroundPresets: readonly [{
352
378
  readonly bg: "#f8f5ff";
353
379
  readonly panel: "#ffffff";
354
380
  readonly panelSoft: "#ede9fe";
355
- readonly brand: "#7c3aed";
356
- readonly brandStrong: "#5b21b6";
357
- readonly brandSolid: "#7c3aed";
358
- readonly brandSolidHover: "#6d28d9";
359
- readonly brandSoft: "rgb(124 58 237 / 10%)";
381
+ readonly primary: {
382
+ readonly base: "#7c3aed";
383
+ readonly text: "#5b21b6";
384
+ readonly surface: "rgb(124 58 237 / 10%)";
385
+ readonly border: "rgb(124 58 237 / 10%)";
386
+ readonly contrast: "#ffffff";
387
+ };
360
388
  readonly selected: "rgb(124 58 237 / 8%)";
361
389
  readonly section: "rgb(124 58 237 / 3%)";
362
390
  readonly sectionNested: "rgb(124 58 237 / 2%)";
@@ -387,11 +415,13 @@ export declare const themePlaygroundPresets: readonly [{
387
415
  readonly bg: "#f4fbf8";
388
416
  readonly panel: "#ffffff";
389
417
  readonly panelSoft: "#eaf7f1";
390
- readonly brand: "#0f9f6e";
391
- readonly brandStrong: "#087a54";
392
- readonly brandSolid: "#0f9f6e";
393
- readonly brandSolidHover: "#0b8a5e";
394
- readonly brandSoft: "rgb(15 159 110 / 11%)";
418
+ readonly primary: {
419
+ readonly base: "#0f9f6e";
420
+ readonly text: "#087a54";
421
+ readonly surface: "rgb(15 159 110 / 11%)";
422
+ readonly border: "rgb(15 159 110 / 11%)";
423
+ readonly contrast: "#ffffff";
424
+ };
395
425
  readonly selected: "rgb(15 159 110 / 9%)";
396
426
  };
397
427
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ExampleThemePlayground.d.ts","sourceRoot":"","sources":["../../src/example/ExampleThemePlayground.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAC,MAAM,OAAO,CAAC;AAElG,OAAO,EAOH,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EAExB,KAAK,eAAe,EACvB,MAAM,IAAI,CAAC;AAEZ,KAAK,aAAa,GAAG,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,aAAa,CAAC;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,qBAAqB,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2YY,CAAC;AAOhD,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAE1E,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,aAAa,GAAG,WAAW,CAEvE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,UAE5E;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,UAElF;AAyFD,wBAAgB,sBAAsB,CAAC,EACnC,cAAc,EACd,KAAK,EACL,MAAM,EACN,cAAc,EACd,sBAAsB,GACzB,EAAE;IACC,cAAc,EAAE,aAAa,CAAC;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC;CAC3E,2CAwFA;AAED,wBAAgB,mBAAmB,CAAC,EAChC,cAAc,EACd,MAAM,EACN,cAAc,GACjB,EAAE;IACC,cAAc,EAAE,aAAa,CAAC;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD,2CAkDA;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAMlD,aAAa,CACrB"}
1
+ {"version":3,"file":"ExampleThemePlayground.d.ts","sourceRoot":"","sources":["../../src/example/ExampleThemePlayground.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAC,MAAM,OAAO,CAAC;AAElG,OAAO,EAOH,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EAExB,KAAK,eAAe,EACvB,MAAM,IAAI,CAAC;AAEZ,KAAK,aAAa,GAAG,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,aAAa,CAAC;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,qBAAqB,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyaY,CAAC;AAOhD,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAE1E,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,aAAa,GAAG,WAAW,CAEvE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,UAE5E;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,UAElF;AA0FD,wBAAgB,sBAAsB,CAAC,EACnC,cAAc,EACd,KAAK,EACL,MAAM,EACN,cAAc,EACd,sBAAsB,GACzB,EAAE;IACC,cAAc,EAAE,aAAa,CAAC;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC;CAC3E,2CAwFA;AAED,wBAAgB,mBAAmB,CAAC,EAChC,cAAc,EACd,MAAM,EACN,cAAc,GACjB,EAAE;IACC,cAAc,EAAE,aAAa,CAAC;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD,2CAkDA;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAMlD,aAAa,CACrB"}