@optimum-intelligence/opti-ui 0.0.0-stage → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +23 -0
- package/README.md +244 -2
- package/dist/components/accordion/Accordion.d.ts +17 -0
- package/dist/components/accordion/Accordion.js +204 -0
- package/dist/components/accordion/Accordion.js.map +1 -0
- package/dist/components/alert/Alert.d.ts +18 -0
- package/dist/components/alert/Alert.js +164 -0
- package/dist/components/alert/Alert.js.map +1 -0
- package/dist/components/app-shell/AppShell.d.ts +97 -0
- package/dist/components/app-shell/AppShell.js +689 -0
- package/dist/components/app-shell/AppShell.js.map +1 -0
- package/dist/components/avatar/Avatar.d.ts +21 -0
- package/dist/components/avatar/Avatar.js +190 -0
- package/dist/components/avatar/Avatar.js.map +1 -0
- package/dist/components/badge/Badge.d.ts +16 -0
- package/dist/components/badge/Badge.js +94 -0
- package/dist/components/badge/Badge.js.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js +154 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/components/button/Button.d.ts +23 -0
- package/dist/components/button/Button.js +159 -0
- package/dist/components/button/Button.js.map +1 -0
- package/dist/components/calendar/Calendar.d.ts +59 -0
- package/dist/components/calendar/Calendar.js +709 -0
- package/dist/components/calendar/Calendar.js.map +1 -0
- package/dist/components/calendar/date-utils.d.ts +32 -0
- package/dist/components/calendar/date-utils.js +112 -0
- package/dist/components/calendar/date-utils.js.map +1 -0
- package/dist/components/card/Card.d.ts +42 -0
- package/dist/components/card/Card.js +82 -0
- package/dist/components/card/Card.js.map +1 -0
- package/dist/components/choice/Choice.d.ts +32 -0
- package/dist/components/choice/Choice.js +371 -0
- package/dist/components/choice/Choice.js.map +1 -0
- package/dist/components/collapsible/Collapsible.d.ts +15 -0
- package/dist/components/collapsible/Collapsible.js +155 -0
- package/dist/components/collapsible/Collapsible.js.map +1 -0
- package/dist/components/combobox/Combobox.d.ts +68 -0
- package/dist/components/combobox/Combobox.js +752 -0
- package/dist/components/combobox/Combobox.js.map +1 -0
- package/dist/components/command-palette/CommandPalette.d.ts +52 -0
- package/dist/components/command-palette/CommandPalette.js +328 -0
- package/dist/components/command-palette/CommandPalette.js.map +1 -0
- package/dist/components/data-table/DataTable.d.ts +73 -0
- package/dist/components/data-table/DataTable.js +478 -0
- package/dist/components/data-table/DataTable.js.map +1 -0
- package/dist/components/data-table/DataTableContent.d.ts +35 -0
- package/dist/components/data-table/DataTableContent.js +550 -0
- package/dist/components/data-table/DataTableContent.js.map +1 -0
- package/dist/components/data-table/DataTableFilters.d.ts +15 -0
- package/dist/components/data-table/DataTableFilters.js +284 -0
- package/dist/components/data-table/DataTableFilters.js.map +1 -0
- package/dist/components/data-table/DataTableRow.d.ts +33 -0
- package/dist/components/data-table/DataTableRow.js +552 -0
- package/dist/components/data-table/DataTableRow.js.map +1 -0
- package/dist/components/data-table/context.d.ts +5 -0
- package/dist/components/data-table/context.js +14 -0
- package/dist/components/data-table/context.js.map +1 -0
- package/dist/components/data-table/layout.d.ts +60 -0
- package/dist/components/data-table/layout.js +272 -0
- package/dist/components/data-table/layout.js.map +1 -0
- package/dist/components/data-table/types.d.ts +319 -0
- package/dist/components/data-table/useDataTable.d.ts +9 -0
- package/dist/components/data-table/useDataTable.js +666 -0
- package/dist/components/data-table/useDataTable.js.map +1 -0
- package/dist/components/date-picker/DatePicker.d.ts +50 -0
- package/dist/components/date-picker/DatePicker.js +485 -0
- package/dist/components/date-picker/DatePicker.js.map +1 -0
- package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
- package/dist/components/date-picker/DateRangePicker.js +339 -0
- package/dist/components/date-picker/DateRangePicker.js.map +1 -0
- package/dist/components/date-picker/PickerField.d.ts +38 -0
- package/dist/components/date-picker/PickerField.js +238 -0
- package/dist/components/date-picker/PickerField.js.map +1 -0
- package/dist/components/dialog/Dialog.d.ts +70 -0
- package/dist/components/dialog/Dialog.js +354 -0
- package/dist/components/dialog/Dialog.js.map +1 -0
- package/dist/components/drawer/Drawer.d.ts +39 -0
- package/dist/components/drawer/Drawer.js +225 -0
- package/dist/components/drawer/Drawer.js.map +1 -0
- package/dist/components/empty-state/EmptyState.d.ts +12 -0
- package/dist/components/empty-state/EmptyState.js +116 -0
- package/dist/components/empty-state/EmptyState.js.map +1 -0
- package/dist/components/field/Field.d.ts +36 -0
- package/dist/components/field/Field.js +337 -0
- package/dist/components/field/Field.js.map +1 -0
- package/dist/components/file-upload/FileUpload.d.ts +91 -0
- package/dist/components/file-upload/FileUpload.js +714 -0
- package/dist/components/file-upload/FileUpload.js.map +1 -0
- package/dist/components/input/Input.d.ts +49 -0
- package/dist/components/input/Input.js +538 -0
- package/dist/components/input/Input.js.map +1 -0
- package/dist/components/link/Link.d.ts +17 -0
- package/dist/components/link/Link.js +91 -0
- package/dist/components/link/Link.js.map +1 -0
- package/dist/components/menu/Menu.d.ts +79 -0
- package/dist/components/menu/Menu.js +615 -0
- package/dist/components/menu/Menu.js.map +1 -0
- package/dist/components/number-field/NumberField.d.ts +16 -0
- package/dist/components/number-field/NumberField.js +188 -0
- package/dist/components/number-field/NumberField.js.map +1 -0
- package/dist/components/pagination/Pagination.d.ts +34 -0
- package/dist/components/pagination/Pagination.js +244 -0
- package/dist/components/pagination/Pagination.js.map +1 -0
- package/dist/components/popover/Popover.d.ts +22 -0
- package/dist/components/popover/Popover.js +186 -0
- package/dist/components/popover/Popover.js.map +1 -0
- package/dist/components/preview-card/PreviewCard.d.ts +20 -0
- package/dist/components/preview-card/PreviewCard.js +114 -0
- package/dist/components/preview-card/PreviewCard.js.map +1 -0
- package/dist/components/progress/Progress.d.ts +20 -0
- package/dist/components/progress/Progress.js +169 -0
- package/dist/components/progress/Progress.js.map +1 -0
- package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
- package/dist/components/scroll-area/ScrollArea.js +112 -0
- package/dist/components/scroll-area/ScrollArea.js.map +1 -0
- package/dist/components/search-input/SearchInput.d.ts +14 -0
- package/dist/components/search-input/SearchInput.js +114 -0
- package/dist/components/search-input/SearchInput.js.map +1 -0
- package/dist/components/select/Select.d.ts +66 -0
- package/dist/components/select/Select.js +601 -0
- package/dist/components/select/Select.js.map +1 -0
- package/dist/components/separator/Separator.d.ts +4 -0
- package/dist/components/separator/Separator.js +46 -0
- package/dist/components/separator/Separator.js.map +1 -0
- package/dist/components/skeleton/Skeleton.d.ts +16 -0
- package/dist/components/skeleton/Skeleton.js +135 -0
- package/dist/components/skeleton/Skeleton.js.map +1 -0
- package/dist/components/slider/Slider.d.ts +11 -0
- package/dist/components/slider/Slider.js +107 -0
- package/dist/components/slider/Slider.js.map +1 -0
- package/dist/components/spinner/Spinner.d.ts +9 -0
- package/dist/components/spinner/Spinner.js +78 -0
- package/dist/components/spinner/Spinner.js.map +1 -0
- package/dist/components/stack/Stack.d.ts +23 -0
- package/dist/components/stack/Stack.js +79 -0
- package/dist/components/stack/Stack.js.map +1 -0
- package/dist/components/stat-card/StatCard.d.ts +22 -0
- package/dist/components/stat-card/StatCard.js +153 -0
- package/dist/components/stat-card/StatCard.js.map +1 -0
- package/dist/components/stepper/Stepper.d.ts +30 -0
- package/dist/components/stepper/Stepper.js +131 -0
- package/dist/components/stepper/Stepper.js.map +1 -0
- package/dist/components/table/Table.d.ts +53 -0
- package/dist/components/table/Table.js +221 -0
- package/dist/components/table/Table.js.map +1 -0
- package/dist/components/tabs/Tabs.d.ts +19 -0
- package/dist/components/tabs/Tabs.js +183 -0
- package/dist/components/tabs/Tabs.js.map +1 -0
- package/dist/components/tag/Tag.d.ts +22 -0
- package/dist/components/tag/Tag.js +121 -0
- package/dist/components/tag/Tag.js.map +1 -0
- package/dist/components/toast/Toast.d.ts +34 -0
- package/dist/components/toast/Toast.js +187 -0
- package/dist/components/toast/Toast.js.map +1 -0
- package/dist/components/toggle/Toggle.d.ts +31 -0
- package/dist/components/toggle/Toggle.js +197 -0
- package/dist/components/toggle/Toggle.js.map +1 -0
- package/dist/components/toolbar/Toolbar.d.ts +21 -0
- package/dist/components/toolbar/Toolbar.js +239 -0
- package/dist/components/toolbar/Toolbar.js.map +1 -0
- package/dist/components/tooltip/Tooltip.d.ts +33 -0
- package/dist/components/tooltip/Tooltip.js +182 -0
- package/dist/components/tooltip/Tooltip.js.map +1 -0
- package/dist/components/typography/Typography.d.ts +32 -0
- package/dist/components/typography/Typography.js +183 -0
- package/dist/components/typography/Typography.js.map +1 -0
- package/dist/fonts.css +3 -0
- package/dist/icons/index.d.ts +133 -0
- package/dist/icons/index.js +182 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.js +58 -0
- package/dist/opti-ui.css +5692 -0
- package/dist/theme/ThemeProvider.d.ts +22 -0
- package/dist/theme/ThemeProvider.js +115 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/utils/cx.d.ts +10 -0
- package/dist/utils/cx.js +18 -0
- package/dist/utils/cx.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/portal.d.ts +8 -0
- package/dist/utils/portal.js +16 -0
- package/dist/utils/portal.js.map +1 -0
- package/dist/utils/primitive.d.ts +13 -0
- package/dist/utils/primitive.js +61 -0
- package/dist/utils/primitive.js.map +1 -0
- package/dist/utils/search.d.ts +4 -0
- package/dist/utils/search.js +15 -0
- package/dist/utils/search.js.map +1 -0
- package/package.json +71 -4
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { withClass } from "../../utils/cx.js";
|
|
3
|
+
import { c } from "react/compiler-runtime";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Tabs } from "@base-ui/react/tabs";
|
|
6
|
+
//#region src/components/tabs/Tabs.tsx
|
|
7
|
+
function TabsRoot(t0) {
|
|
8
|
+
const $ = c(10);
|
|
9
|
+
let className;
|
|
10
|
+
let props;
|
|
11
|
+
let ref;
|
|
12
|
+
if ($[0] !== t0) {
|
|
13
|
+
({className, ref, ...props} = t0);
|
|
14
|
+
$[0] = t0;
|
|
15
|
+
$[1] = className;
|
|
16
|
+
$[2] = props;
|
|
17
|
+
$[3] = ref;
|
|
18
|
+
} else {
|
|
19
|
+
className = $[1];
|
|
20
|
+
props = $[2];
|
|
21
|
+
ref = $[3];
|
|
22
|
+
}
|
|
23
|
+
let t1;
|
|
24
|
+
if ($[4] !== className) {
|
|
25
|
+
t1 = withClass("oui-tabs", className);
|
|
26
|
+
$[4] = className;
|
|
27
|
+
$[5] = t1;
|
|
28
|
+
} else t1 = $[5];
|
|
29
|
+
let t2;
|
|
30
|
+
if ($[6] !== props || $[7] !== ref || $[8] !== t1) {
|
|
31
|
+
t2 = /* @__PURE__ */ jsx(Tabs.Root, {
|
|
32
|
+
ref,
|
|
33
|
+
className: t1,
|
|
34
|
+
...props
|
|
35
|
+
});
|
|
36
|
+
$[6] = props;
|
|
37
|
+
$[7] = ref;
|
|
38
|
+
$[8] = t1;
|
|
39
|
+
$[9] = t2;
|
|
40
|
+
} else t2 = $[9];
|
|
41
|
+
return t2;
|
|
42
|
+
}
|
|
43
|
+
function TabsList(t0) {
|
|
44
|
+
const $ = c(17);
|
|
45
|
+
let children;
|
|
46
|
+
let className;
|
|
47
|
+
let props;
|
|
48
|
+
let ref;
|
|
49
|
+
let t1;
|
|
50
|
+
let t2;
|
|
51
|
+
if ($[0] !== t0) {
|
|
52
|
+
({variant: t1, size: t2, className, children, ref, ...props} = t0);
|
|
53
|
+
$[0] = t0;
|
|
54
|
+
$[1] = children;
|
|
55
|
+
$[2] = className;
|
|
56
|
+
$[3] = props;
|
|
57
|
+
$[4] = ref;
|
|
58
|
+
$[5] = t1;
|
|
59
|
+
$[6] = t2;
|
|
60
|
+
} else {
|
|
61
|
+
children = $[1];
|
|
62
|
+
className = $[2];
|
|
63
|
+
props = $[3];
|
|
64
|
+
ref = $[4];
|
|
65
|
+
t1 = $[5];
|
|
66
|
+
t2 = $[6];
|
|
67
|
+
}
|
|
68
|
+
const variant = t1 === void 0 ? "underline" : t1;
|
|
69
|
+
const size = t2 === void 0 ? "md" : t2;
|
|
70
|
+
let t3;
|
|
71
|
+
if ($[7] !== className) {
|
|
72
|
+
t3 = withClass("oui-tabs__list", className);
|
|
73
|
+
$[7] = className;
|
|
74
|
+
$[8] = t3;
|
|
75
|
+
} else t3 = $[8];
|
|
76
|
+
let t4;
|
|
77
|
+
if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
|
|
78
|
+
t4 = /* @__PURE__ */ jsx(Tabs.Indicator, { className: "oui-tabs__indicator" });
|
|
79
|
+
$[9] = t4;
|
|
80
|
+
} else t4 = $[9];
|
|
81
|
+
let t5;
|
|
82
|
+
if ($[10] !== children || $[11] !== props || $[12] !== ref || $[13] !== size || $[14] !== t3 || $[15] !== variant) {
|
|
83
|
+
t5 = /* @__PURE__ */ jsxs(Tabs.List, {
|
|
84
|
+
ref,
|
|
85
|
+
className: t3,
|
|
86
|
+
"data-variant": variant,
|
|
87
|
+
"data-size": size,
|
|
88
|
+
...props,
|
|
89
|
+
children: [children, t4]
|
|
90
|
+
});
|
|
91
|
+
$[10] = children;
|
|
92
|
+
$[11] = props;
|
|
93
|
+
$[12] = ref;
|
|
94
|
+
$[13] = size;
|
|
95
|
+
$[14] = t3;
|
|
96
|
+
$[15] = variant;
|
|
97
|
+
$[16] = t5;
|
|
98
|
+
} else t5 = $[16];
|
|
99
|
+
return t5;
|
|
100
|
+
}
|
|
101
|
+
function TabsTab(t0) {
|
|
102
|
+
const $ = c(10);
|
|
103
|
+
let className;
|
|
104
|
+
let props;
|
|
105
|
+
let ref;
|
|
106
|
+
if ($[0] !== t0) {
|
|
107
|
+
({className, ref, ...props} = t0);
|
|
108
|
+
$[0] = t0;
|
|
109
|
+
$[1] = className;
|
|
110
|
+
$[2] = props;
|
|
111
|
+
$[3] = ref;
|
|
112
|
+
} else {
|
|
113
|
+
className = $[1];
|
|
114
|
+
props = $[2];
|
|
115
|
+
ref = $[3];
|
|
116
|
+
}
|
|
117
|
+
let t1;
|
|
118
|
+
if ($[4] !== className) {
|
|
119
|
+
t1 = withClass("oui-tabs__tab", className);
|
|
120
|
+
$[4] = className;
|
|
121
|
+
$[5] = t1;
|
|
122
|
+
} else t1 = $[5];
|
|
123
|
+
let t2;
|
|
124
|
+
if ($[6] !== props || $[7] !== ref || $[8] !== t1) {
|
|
125
|
+
t2 = /* @__PURE__ */ jsx(Tabs.Tab, {
|
|
126
|
+
ref,
|
|
127
|
+
className: t1,
|
|
128
|
+
...props
|
|
129
|
+
});
|
|
130
|
+
$[6] = props;
|
|
131
|
+
$[7] = ref;
|
|
132
|
+
$[8] = t1;
|
|
133
|
+
$[9] = t2;
|
|
134
|
+
} else t2 = $[9];
|
|
135
|
+
return t2;
|
|
136
|
+
}
|
|
137
|
+
function TabsPanel(t0) {
|
|
138
|
+
const $ = c(10);
|
|
139
|
+
let className;
|
|
140
|
+
let props;
|
|
141
|
+
let ref;
|
|
142
|
+
if ($[0] !== t0) {
|
|
143
|
+
({className, ref, ...props} = t0);
|
|
144
|
+
$[0] = t0;
|
|
145
|
+
$[1] = className;
|
|
146
|
+
$[2] = props;
|
|
147
|
+
$[3] = ref;
|
|
148
|
+
} else {
|
|
149
|
+
className = $[1];
|
|
150
|
+
props = $[2];
|
|
151
|
+
ref = $[3];
|
|
152
|
+
}
|
|
153
|
+
let t1;
|
|
154
|
+
if ($[4] !== className) {
|
|
155
|
+
t1 = withClass("oui-tabs__panel", className);
|
|
156
|
+
$[4] = className;
|
|
157
|
+
$[5] = t1;
|
|
158
|
+
} else t1 = $[5];
|
|
159
|
+
let t2;
|
|
160
|
+
if ($[6] !== props || $[7] !== ref || $[8] !== t1) {
|
|
161
|
+
t2 = /* @__PURE__ */ jsx(Tabs.Panel, {
|
|
162
|
+
ref,
|
|
163
|
+
className: t1,
|
|
164
|
+
...props
|
|
165
|
+
});
|
|
166
|
+
$[6] = props;
|
|
167
|
+
$[7] = ref;
|
|
168
|
+
$[8] = t1;
|
|
169
|
+
$[9] = t2;
|
|
170
|
+
} else t2 = $[9];
|
|
171
|
+
return t2;
|
|
172
|
+
}
|
|
173
|
+
/** `Tabs.Root` › `Tabs.List` › `Tabs.Tab`, then one `Tabs.Panel` per value. */
|
|
174
|
+
var Tabs$1 = {
|
|
175
|
+
Root: TabsRoot,
|
|
176
|
+
List: TabsList,
|
|
177
|
+
Tab: TabsTab,
|
|
178
|
+
Panel: TabsPanel
|
|
179
|
+
};
|
|
180
|
+
//#endregion
|
|
181
|
+
export { Tabs$1 as Tabs };
|
|
182
|
+
|
|
183
|
+
//# sourceMappingURL=Tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.js","names":["Tabs","BaseTabs","withClass","TabsVariant","TabsListProps","List","Props","variant","size","TabsRoot","t0","$","_c","className","props","ref","t1","t2","TabsList","children","undefined","t3","t4","Symbol","for","t5","TabsTab","TabsPanel","Root","Tab","Panel","_c","BaseTabs","Tabs"],"sources":["../../../src/components/tabs/Tabs.tsx"],"sourcesContent":["import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { withClass } from '../../utils/cx';\n\nexport type TabsVariant = 'underline' | 'segmented';\n\nexport interface TabsListProps extends BaseTabs.List.Props {\n /** `underline` (default) for page sections, `segmented` for compact switchers. */\n variant?: TabsVariant;\n size?: 'sm' | 'md';\n}\n\nfunction TabsRoot({ className, ref, ...props }: BaseTabs.Root.Props) {\n return <BaseTabs.Root ref={ref} className={withClass('oui-tabs', className)} {...props} />;\n}\n\nfunction TabsList({ variant = 'underline', size = 'md', className, children, ref, ...props }: TabsListProps) {\n return (\n <BaseTabs.List\n ref={ref}\n className={withClass('oui-tabs__list', className)}\n data-variant={variant}\n data-size={size}\n {...props}\n >\n {children}\n <BaseTabs.Indicator className=\"oui-tabs__indicator\" />\n </BaseTabs.List>\n );\n}\n\nfunction TabsTab({ className, ref, ...props }: BaseTabs.Tab.Props) {\n return <BaseTabs.Tab ref={ref} className={withClass('oui-tabs__tab', className)} {...props} />;\n}\n\nfunction TabsPanel({ className, ref, ...props }: BaseTabs.Panel.Props) {\n return <BaseTabs.Panel ref={ref} className={withClass('oui-tabs__panel', className)} {...props} />;\n}\n\n/** `Tabs.Root` › `Tabs.List` › `Tabs.Tab`, then one `Tabs.Panel` per value. */\nexport const Tabs = { Root: TabsRoot, List: TabsList, Tab: TabsTab, Panel: TabsPanel };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
3
|
+
import type { BadgeTone } from '../badge/Badge';
|
|
4
|
+
export type TagState = {
|
|
5
|
+
tone: BadgeTone;
|
|
6
|
+
size: 'sm' | 'md';
|
|
7
|
+
removable: boolean;
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
};
|
|
10
|
+
export interface TagProps extends useRender.ComponentProps<'span', TagState> {
|
|
11
|
+
tone?: BadgeTone;
|
|
12
|
+
size?: 'sm' | 'md';
|
|
13
|
+
/** Leading icon. */
|
|
14
|
+
icon?: React.ReactNode;
|
|
15
|
+
/** Adds the remove button. */
|
|
16
|
+
onRemove?: () => void;
|
|
17
|
+
/** Accessible name of the remove button. Defaults to "Remove <text>". */
|
|
18
|
+
removeLabel?: string;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/** Label for a value the user can take away again: an active filter, a recipient, a keyword. */
|
|
22
|
+
export declare function Tag({ tone, size, icon, onRemove, removeLabel, disabled, render, children, ref, ...props }: TagProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { XIcon } from "../../icons/index.js";
|
|
3
|
+
import { c } from "react/compiler-runtime";
|
|
4
|
+
import "react";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
7
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
8
|
+
//#region src/components/tag/Tag.tsx
|
|
9
|
+
/** Label for a value the user can take away again: an active filter, a recipient, a keyword. */
|
|
10
|
+
function Tag(t0) {
|
|
11
|
+
const $ = c(29);
|
|
12
|
+
let t1;
|
|
13
|
+
let t2;
|
|
14
|
+
let t3;
|
|
15
|
+
let t4;
|
|
16
|
+
let t5;
|
|
17
|
+
let t6;
|
|
18
|
+
if ($[0] !== t0) {
|
|
19
|
+
const { tone: t7, size: t8, icon, onRemove, removeLabel, disabled: t9, render, children, ref, ...props } = t0;
|
|
20
|
+
const tone = t7 === void 0 ? "neutral" : t7;
|
|
21
|
+
const size = t8 === void 0 ? "md" : t8;
|
|
22
|
+
const disabled = t9 === void 0 ? false : t9;
|
|
23
|
+
const t10 = Boolean(onRemove);
|
|
24
|
+
let t11;
|
|
25
|
+
if ($[7] !== disabled || $[8] !== size || $[9] !== t10 || $[10] !== tone) {
|
|
26
|
+
t11 = {
|
|
27
|
+
tone,
|
|
28
|
+
size,
|
|
29
|
+
removable: t10,
|
|
30
|
+
disabled
|
|
31
|
+
};
|
|
32
|
+
$[7] = disabled;
|
|
33
|
+
$[8] = size;
|
|
34
|
+
$[9] = t10;
|
|
35
|
+
$[10] = tone;
|
|
36
|
+
$[11] = t11;
|
|
37
|
+
} else t11 = $[11];
|
|
38
|
+
const state = t11;
|
|
39
|
+
t6 = useRender;
|
|
40
|
+
t1 = "span";
|
|
41
|
+
t2 = render;
|
|
42
|
+
t3 = ref;
|
|
43
|
+
t4 = state;
|
|
44
|
+
let t12;
|
|
45
|
+
if ($[12] !== children) {
|
|
46
|
+
t12 = /* @__PURE__ */ jsx("span", {
|
|
47
|
+
className: "oui-tag__label",
|
|
48
|
+
children
|
|
49
|
+
});
|
|
50
|
+
$[12] = children;
|
|
51
|
+
$[13] = t12;
|
|
52
|
+
} else t12 = $[13];
|
|
53
|
+
let t13;
|
|
54
|
+
if ($[14] !== children || $[15] !== disabled || $[16] !== onRemove || $[17] !== removeLabel) {
|
|
55
|
+
t13 = onRemove && /* @__PURE__ */ jsx("button", {
|
|
56
|
+
type: "button",
|
|
57
|
+
className: "oui-tag__remove",
|
|
58
|
+
"aria-label": removeLabel ?? (typeof children === "string" ? `Remove ${children}` : "Remove"),
|
|
59
|
+
disabled,
|
|
60
|
+
onClick: onRemove,
|
|
61
|
+
children: /* @__PURE__ */ jsx(XIcon, {})
|
|
62
|
+
});
|
|
63
|
+
$[14] = children;
|
|
64
|
+
$[15] = disabled;
|
|
65
|
+
$[16] = onRemove;
|
|
66
|
+
$[17] = removeLabel;
|
|
67
|
+
$[18] = t13;
|
|
68
|
+
} else t13 = $[18];
|
|
69
|
+
let t14;
|
|
70
|
+
if ($[19] !== icon || $[20] !== t12 || $[21] !== t13) {
|
|
71
|
+
t14 = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
72
|
+
icon,
|
|
73
|
+
t12,
|
|
74
|
+
t13
|
|
75
|
+
] });
|
|
76
|
+
$[19] = icon;
|
|
77
|
+
$[20] = t12;
|
|
78
|
+
$[21] = t13;
|
|
79
|
+
$[22] = t14;
|
|
80
|
+
} else t14 = $[22];
|
|
81
|
+
t5 = mergeProps({
|
|
82
|
+
className: "oui-tag",
|
|
83
|
+
children: t14
|
|
84
|
+
}, props);
|
|
85
|
+
$[0] = t0;
|
|
86
|
+
$[1] = t1;
|
|
87
|
+
$[2] = t2;
|
|
88
|
+
$[3] = t3;
|
|
89
|
+
$[4] = t4;
|
|
90
|
+
$[5] = t5;
|
|
91
|
+
$[6] = t6;
|
|
92
|
+
} else {
|
|
93
|
+
t1 = $[1];
|
|
94
|
+
t2 = $[2];
|
|
95
|
+
t3 = $[3];
|
|
96
|
+
t4 = $[4];
|
|
97
|
+
t5 = $[5];
|
|
98
|
+
t6 = $[6];
|
|
99
|
+
}
|
|
100
|
+
let t7;
|
|
101
|
+
if ($[23] !== t1 || $[24] !== t2 || $[25] !== t3 || $[26] !== t4 || $[27] !== t5) {
|
|
102
|
+
t7 = {
|
|
103
|
+
defaultTagName: t1,
|
|
104
|
+
render: t2,
|
|
105
|
+
ref: t3,
|
|
106
|
+
state: t4,
|
|
107
|
+
props: t5
|
|
108
|
+
};
|
|
109
|
+
$[23] = t1;
|
|
110
|
+
$[24] = t2;
|
|
111
|
+
$[25] = t3;
|
|
112
|
+
$[26] = t4;
|
|
113
|
+
$[27] = t5;
|
|
114
|
+
$[28] = t7;
|
|
115
|
+
} else t7 = $[28];
|
|
116
|
+
return t6(t7);
|
|
117
|
+
}
|
|
118
|
+
//#endregion
|
|
119
|
+
export { Tag };
|
|
120
|
+
|
|
121
|
+
//# sourceMappingURL=Tag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tag.js","names":["React","useRender","mergeProps","XIcon","BadgeTone","TagState","tone","size","removable","disabled","TagProps","ComponentProps","icon","ReactNode","onRemove","removeLabel","Tag","t0","$","_c","t1","t2","t3","t4","t5","t6","t7","t8","t9","render","children","ref","props","undefined","t10","Boolean","t11","state","t12","t13","t14","className","defaultTagName","_c","_Fragment"],"sources":["../../../src/components/tag/Tag.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useRender } from '@base-ui/react/use-render';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { XIcon } from '../../icons';\nimport type { BadgeTone } from '../badge/Badge';\n\nexport type TagState = {\n tone: BadgeTone;\n size: 'sm' | 'md';\n removable: boolean;\n disabled: boolean;\n};\n\nexport interface TagProps extends useRender.ComponentProps<'span', TagState> {\n tone?: BadgeTone;\n size?: 'sm' | 'md';\n /** Leading icon. */\n icon?: React.ReactNode;\n /** Adds the remove button. */\n onRemove?: () => void;\n /** Accessible name of the remove button. Defaults to \"Remove <text>\". */\n removeLabel?: string;\n disabled?: boolean;\n}\n\n/** Label for a value the user can take away again: an active filter, a recipient, a keyword. */\nexport function Tag({\n tone = 'neutral',\n size = 'md',\n icon,\n onRemove,\n removeLabel,\n disabled = false,\n render,\n children,\n ref,\n ...props\n}: TagProps) {\n const state: TagState = { tone, size, removable: Boolean(onRemove), disabled };\n return useRender({\n defaultTagName: 'span',\n render,\n ref,\n state,\n props: mergeProps<'span'>(\n {\n className: 'oui-tag',\n children: (\n <>\n {icon}\n <span className=\"oui-tag__label\">{children}</span>\n {onRemove && (\n <button\n type=\"button\"\n className=\"oui-tag__remove\"\n aria-label={removeLabel ?? (typeof children === 'string' ? `Remove ${children}` : 'Remove')}\n disabled={disabled}\n onClick={onRemove}\n >\n <XIcon />\n </button>\n )}\n </>\n ),\n },\n props,\n ),\n });\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Toast as BaseToast } from '@base-ui/react/toast';
|
|
3
|
+
export type ToastTone = 'info' | 'success' | 'warning' | 'danger' | 'neutral';
|
|
4
|
+
export type ToastPlacement = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | 'bottom-center' | 'top-center';
|
|
5
|
+
export interface ToastProviderProps extends Omit<BaseToast.Provider.Props, 'children'> {
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
placement?: ToastPlacement;
|
|
8
|
+
/** Class for the viewport (positioning container). */
|
|
9
|
+
viewportClassName?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Mount once near the app root. Then call `useToast()` anywhere below, or pass
|
|
13
|
+
* a `toastManager` from `createToastManager()` to trigger toasts outside React.
|
|
14
|
+
*/
|
|
15
|
+
export declare function ToastProvider({ children, placement, viewportClassName, ...props }: ToastProviderProps): React.JSX.Element;
|
|
16
|
+
type AddOptions = Parameters<ReturnType<typeof BaseToast.useToastManager>['add']>[0];
|
|
17
|
+
type ToneOptions = Omit<AddOptions, 'type'>;
|
|
18
|
+
/** Toast API with tone shortcuts: `toast.success({ title })`. */
|
|
19
|
+
export declare function useToast(): {
|
|
20
|
+
toasts: import("@base-ui/react").ToastObject<any>[];
|
|
21
|
+
add: <T extends any = any>(options: import("@base-ui/react").ToastManagerAddOptions<T>) => string;
|
|
22
|
+
close: (toastId?: string) => void;
|
|
23
|
+
update: <T extends any = any>(toastId: string, options: import("@base-ui/react").ToastManagerUpdateOptions<T> | ((prevToast: import("@base-ui/react").ToastObject<T>) => import("@base-ui/react").ToastManagerUpdateOptions<T>)) => void;
|
|
24
|
+
promise: <Value, T extends any = any>(promise: Promise<Value>, options: import("@base-ui/react").ToastManagerPromiseOptions<Value, T>) => Promise<Value>;
|
|
25
|
+
show: (options: AddOptions & {
|
|
26
|
+
type?: ToastTone;
|
|
27
|
+
}) => string;
|
|
28
|
+
info: (options: ToneOptions) => string;
|
|
29
|
+
success: (options: ToneOptions) => string;
|
|
30
|
+
warning: (options: ToneOptions) => string;
|
|
31
|
+
danger: (options: ToneOptions) => string;
|
|
32
|
+
};
|
|
33
|
+
export declare const createToastManager: typeof BaseToast.createToastManager;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { usePortalContainer } from "../../utils/portal.js";
|
|
3
|
+
import { cx } from "../../utils/cx.js";
|
|
4
|
+
import { CircleCheckIcon, CircleXIcon, InfoIcon, TriangleAlertIcon, XIcon } from "../../icons/index.js";
|
|
5
|
+
import { c } from "react/compiler-runtime";
|
|
6
|
+
import "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { Toast } from "@base-ui/react/toast";
|
|
9
|
+
//#region src/components/toast/Toast.tsx
|
|
10
|
+
var icons = {
|
|
11
|
+
info: /* @__PURE__ */ jsx(InfoIcon, {}),
|
|
12
|
+
success: /* @__PURE__ */ jsx(CircleCheckIcon, {}),
|
|
13
|
+
warning: /* @__PURE__ */ jsx(TriangleAlertIcon, {}),
|
|
14
|
+
danger: /* @__PURE__ */ jsx(CircleXIcon, {})
|
|
15
|
+
};
|
|
16
|
+
function ToastList() {
|
|
17
|
+
const $ = c(2);
|
|
18
|
+
const { toasts } = Toast.useToastManager();
|
|
19
|
+
let t0;
|
|
20
|
+
if ($[0] !== toasts) {
|
|
21
|
+
t0 = toasts.map(_temp);
|
|
22
|
+
$[0] = toasts;
|
|
23
|
+
$[1] = t0;
|
|
24
|
+
} else t0 = $[1];
|
|
25
|
+
return t0;
|
|
26
|
+
}
|
|
27
|
+
function _temp(toast) {
|
|
28
|
+
return /* @__PURE__ */ jsx(Toast.Root, {
|
|
29
|
+
toast,
|
|
30
|
+
className: "oui-toast",
|
|
31
|
+
children: /* @__PURE__ */ jsxs(Toast.Content, {
|
|
32
|
+
className: "oui-toast__content",
|
|
33
|
+
children: [
|
|
34
|
+
toast.type && icons[toast.type] && /* @__PURE__ */ jsx("span", {
|
|
35
|
+
className: "oui-toast__icon",
|
|
36
|
+
children: icons[toast.type]
|
|
37
|
+
}),
|
|
38
|
+
/* @__PURE__ */ jsxs("div", {
|
|
39
|
+
className: "oui-toast__text",
|
|
40
|
+
children: [/* @__PURE__ */ jsx(Toast.Title, { className: "oui-toast__title" }), /* @__PURE__ */ jsx(Toast.Description, { className: "oui-toast__description" })]
|
|
41
|
+
}),
|
|
42
|
+
toast.actionProps && /* @__PURE__ */ jsx(Toast.Action, { className: "oui-toast__action" }),
|
|
43
|
+
/* @__PURE__ */ jsx(Toast.Close, {
|
|
44
|
+
className: "oui-toast__close",
|
|
45
|
+
"aria-label": "Close",
|
|
46
|
+
children: /* @__PURE__ */ jsx(XIcon, {})
|
|
47
|
+
})
|
|
48
|
+
]
|
|
49
|
+
})
|
|
50
|
+
}, toast.id);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Mount once near the app root. Then call `useToast()` anywhere below, or pass
|
|
54
|
+
* a `toastManager` from `createToastManager()` to trigger toasts outside React.
|
|
55
|
+
*/
|
|
56
|
+
function ToastProvider(t0) {
|
|
57
|
+
const $ = c(18);
|
|
58
|
+
let children;
|
|
59
|
+
let props;
|
|
60
|
+
let t1;
|
|
61
|
+
let viewportClassName;
|
|
62
|
+
if ($[0] !== t0) {
|
|
63
|
+
({children, placement: t1, viewportClassName, ...props} = t0);
|
|
64
|
+
$[0] = t0;
|
|
65
|
+
$[1] = children;
|
|
66
|
+
$[2] = props;
|
|
67
|
+
$[3] = t1;
|
|
68
|
+
$[4] = viewportClassName;
|
|
69
|
+
} else {
|
|
70
|
+
children = $[1];
|
|
71
|
+
props = $[2];
|
|
72
|
+
t1 = $[3];
|
|
73
|
+
viewportClassName = $[4];
|
|
74
|
+
}
|
|
75
|
+
const placement = t1 === void 0 ? "bottom-right" : t1;
|
|
76
|
+
const container = usePortalContainer();
|
|
77
|
+
let t2;
|
|
78
|
+
if ($[5] !== viewportClassName) {
|
|
79
|
+
t2 = cx("oui-toast-viewport", viewportClassName);
|
|
80
|
+
$[5] = viewportClassName;
|
|
81
|
+
$[6] = t2;
|
|
82
|
+
} else t2 = $[6];
|
|
83
|
+
let t3;
|
|
84
|
+
if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
|
|
85
|
+
t3 = /* @__PURE__ */ jsx(ToastList, {});
|
|
86
|
+
$[7] = t3;
|
|
87
|
+
} else t3 = $[7];
|
|
88
|
+
let t4;
|
|
89
|
+
if ($[8] !== placement || $[9] !== t2) {
|
|
90
|
+
t4 = /* @__PURE__ */ jsx(Toast.Viewport, {
|
|
91
|
+
className: t2,
|
|
92
|
+
"data-placement": placement,
|
|
93
|
+
children: t3
|
|
94
|
+
});
|
|
95
|
+
$[8] = placement;
|
|
96
|
+
$[9] = t2;
|
|
97
|
+
$[10] = t4;
|
|
98
|
+
} else t4 = $[10];
|
|
99
|
+
let t5;
|
|
100
|
+
if ($[11] !== container || $[12] !== t4) {
|
|
101
|
+
t5 = /* @__PURE__ */ jsx(Toast.Portal, {
|
|
102
|
+
container,
|
|
103
|
+
children: t4
|
|
104
|
+
});
|
|
105
|
+
$[11] = container;
|
|
106
|
+
$[12] = t4;
|
|
107
|
+
$[13] = t5;
|
|
108
|
+
} else t5 = $[13];
|
|
109
|
+
let t6;
|
|
110
|
+
if ($[14] !== children || $[15] !== props || $[16] !== t5) {
|
|
111
|
+
t6 = /* @__PURE__ */ jsxs(Toast.Provider, {
|
|
112
|
+
...props,
|
|
113
|
+
children: [children, t5]
|
|
114
|
+
});
|
|
115
|
+
$[14] = children;
|
|
116
|
+
$[15] = props;
|
|
117
|
+
$[16] = t5;
|
|
118
|
+
$[17] = t6;
|
|
119
|
+
} else t6 = $[17];
|
|
120
|
+
return t6;
|
|
121
|
+
}
|
|
122
|
+
/** Toast API with tone shortcuts: `toast.success({ title })`. */
|
|
123
|
+
function useToast() {
|
|
124
|
+
const $ = c(13);
|
|
125
|
+
const manager = Toast.useToastManager();
|
|
126
|
+
let t0;
|
|
127
|
+
let t1;
|
|
128
|
+
let t2;
|
|
129
|
+
let t3;
|
|
130
|
+
let t4;
|
|
131
|
+
if ($[0] !== manager) {
|
|
132
|
+
t0 = (options) => manager.add(options);
|
|
133
|
+
t1 = (options_0) => manager.add({
|
|
134
|
+
...options_0,
|
|
135
|
+
type: "info"
|
|
136
|
+
});
|
|
137
|
+
t2 = (options_1) => manager.add({
|
|
138
|
+
...options_1,
|
|
139
|
+
type: "success"
|
|
140
|
+
});
|
|
141
|
+
t3 = (options_2) => manager.add({
|
|
142
|
+
...options_2,
|
|
143
|
+
type: "warning"
|
|
144
|
+
});
|
|
145
|
+
t4 = (options_3) => manager.add({
|
|
146
|
+
...options_3,
|
|
147
|
+
type: "danger",
|
|
148
|
+
priority: "high"
|
|
149
|
+
});
|
|
150
|
+
$[0] = manager;
|
|
151
|
+
$[1] = t0;
|
|
152
|
+
$[2] = t1;
|
|
153
|
+
$[3] = t2;
|
|
154
|
+
$[4] = t3;
|
|
155
|
+
$[5] = t4;
|
|
156
|
+
} else {
|
|
157
|
+
t0 = $[1];
|
|
158
|
+
t1 = $[2];
|
|
159
|
+
t2 = $[3];
|
|
160
|
+
t3 = $[4];
|
|
161
|
+
t4 = $[5];
|
|
162
|
+
}
|
|
163
|
+
let t5;
|
|
164
|
+
if ($[6] !== manager || $[7] !== t0 || $[8] !== t1 || $[9] !== t2 || $[10] !== t3 || $[11] !== t4) {
|
|
165
|
+
t5 = {
|
|
166
|
+
...manager,
|
|
167
|
+
show: t0,
|
|
168
|
+
info: t1,
|
|
169
|
+
success: t2,
|
|
170
|
+
warning: t3,
|
|
171
|
+
danger: t4
|
|
172
|
+
};
|
|
173
|
+
$[6] = manager;
|
|
174
|
+
$[7] = t0;
|
|
175
|
+
$[8] = t1;
|
|
176
|
+
$[9] = t2;
|
|
177
|
+
$[10] = t3;
|
|
178
|
+
$[11] = t4;
|
|
179
|
+
$[12] = t5;
|
|
180
|
+
} else t5 = $[12];
|
|
181
|
+
return t5;
|
|
182
|
+
}
|
|
183
|
+
var createToastManager = Toast.createToastManager;
|
|
184
|
+
//#endregion
|
|
185
|
+
export { ToastProvider, createToastManager, useToast };
|
|
186
|
+
|
|
187
|
+
//# sourceMappingURL=Toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.js","names":["React","Toast","BaseToast","cx","usePortalContainer","CircleCheckIcon","CircleXIcon","InfoIcon","TriangleAlertIcon","XIcon","ToastTone","ToastPlacement","icons","Partial","Record","ReactNode","info","success","warning","danger","ToastList","$","_c","toasts","useToastManager","t0","map","_temp","toast","id","type","actionProps","ToastProviderProps","Omit","Provider","Props","children","placement","viewportClassName","ToastProvider","props","t1","undefined","container","t2","t3","Symbol","for","t4","t5","t6","AddOptions","Parameters","ReturnType","ToneOptions","useToast","manager","options","add","options_0","options_1","options_2","options_3","priority","show","createToastManager","_c","BaseToast"],"sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Toast as BaseToast } from '@base-ui/react/toast';\nimport { cx } from '../../utils/cx';\nimport { usePortalContainer } from '../../utils/portal';\nimport { CircleCheckIcon, CircleXIcon, InfoIcon, TriangleAlertIcon, XIcon } from '../../icons';\n\nexport type ToastTone = 'info' | 'success' | 'warning' | 'danger' | 'neutral';\n\nexport type ToastPlacement = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | 'bottom-center' | 'top-center';\n\nconst icons: Partial<Record<string, React.ReactNode>> = {\n info: <InfoIcon />,\n success: <CircleCheckIcon />,\n warning: <TriangleAlertIcon />,\n danger: <CircleXIcon />,\n};\n\nfunction ToastList() {\n const { toasts } = BaseToast.useToastManager();\n return toasts.map((toast) => (\n <BaseToast.Root key={toast.id} toast={toast} className=\"oui-toast\">\n <BaseToast.Content className=\"oui-toast__content\">\n {toast.type && icons[toast.type] && <span className=\"oui-toast__icon\">{icons[toast.type]}</span>}\n <div className=\"oui-toast__text\">\n <BaseToast.Title className=\"oui-toast__title\" />\n <BaseToast.Description className=\"oui-toast__description\" />\n </div>\n {toast.actionProps && <BaseToast.Action className=\"oui-toast__action\" />}\n <BaseToast.Close className=\"oui-toast__close\" aria-label=\"Close\">\n <XIcon />\n </BaseToast.Close>\n </BaseToast.Content>\n </BaseToast.Root>\n ));\n}\n\nexport interface ToastProviderProps extends Omit<BaseToast.Provider.Props, 'children'> {\n children?: React.ReactNode;\n placement?: ToastPlacement;\n /** Class for the viewport (positioning container). */\n viewportClassName?: string;\n}\n\n/**\n * Mount once near the app root. Then call `useToast()` anywhere below, or pass\n * a `toastManager` from `createToastManager()` to trigger toasts outside React.\n */\nexport function ToastProvider({ children, placement = 'bottom-right', viewportClassName, ...props }: ToastProviderProps) {\n const container = usePortalContainer();\n return (\n <BaseToast.Provider {...props}>\n {children}\n <BaseToast.Portal container={container}>\n <BaseToast.Viewport className={cx('oui-toast-viewport', viewportClassName)} data-placement={placement}>\n <ToastList />\n </BaseToast.Viewport>\n </BaseToast.Portal>\n </BaseToast.Provider>\n );\n}\n\ntype AddOptions = Parameters<ReturnType<typeof BaseToast.useToastManager>['add']>[0];\ntype ToneOptions = Omit<AddOptions, 'type'>;\n\n/** Toast API with tone shortcuts: `toast.success({ title })`. */\nexport function useToast() {\n const manager = BaseToast.useToastManager();\n return {\n ...manager,\n show: (options: AddOptions & { type?: ToastTone }) => manager.add(options),\n info: (options: ToneOptions) => manager.add({ ...options, type: 'info' }),\n success: (options: ToneOptions) => manager.add({ ...options, type: 'success' }),\n warning: (options: ToneOptions) => manager.add({ ...options, type: 'warning' }),\n danger: (options: ToneOptions) => manager.add({ ...options, type: 'danger', priority: 'high' }),\n };\n}\n\nexport const createToastManager = BaseToast.createToastManager;\n"],"mappings":";;;;;;;;;AAUA,IAAMY,QAAkD;CACtDI,MAAM,oBAAC,UAAD,CAAS,CAAA;CACfC,SAAS,oBAAC,iBAAD,CAAgB,CAAA;CACzBC,SAAS,oBAAC,mBAAD,CAAkB,CAAA;CAC3BC,QAAQ,oBAAC,aAAD,CAAY,CAAA;AACtB;AAEA,SAAAC,YAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACE,MAAA,EAAAC,WAAmBrB,MAASsB,gBAAiB;CAAE,IAAAC;CAAA,IAAAJ,EAAA,OAAAE,QAAA;EACxCE,KAAAF,OAAMG,IAAKC,KAcjB;EAACN,EAAA,KAAAE;EAAAF,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,OAdKI;AAcL;AAhBJ,SAAAE,MAAAC,OAAA;CAAA,OAGI,oBAAAuC,MAAA,MAAA;EAAsCvC;EAAiB,WAAA;EACrD,UAAA,qBAAAuC,MAAA,SAAA;GAA6B,WAAA;GAA7B,UAAA;IACGvC,MAAKE,QAASlB,MAAMgB,MAAKE,SAAU,oBAAA,QAAA;KAAgB,WAAA;KAAmBlB,UAAAA,MAAMgB,MAAKE;IAAc,CAAA;IAChG,qBAAA,OAAA;KAAe,WAAA;KAAf,UAAA,CACE,oBAAAqC,MAAA,OAAA,EAA2B,WAAA,mBAAkB,CAAA,GAC7C,oBAAAA,MAAA,aAAA,EAAiC,WAAA,yBAAwB,CAAA,CACrD;;IACLvC,MAAKG,eAAgB,oBAAAoC,MAAA,QAAA,EAA4B,WAAA,oBAAmB,CAAA;IACrE,oBAAAA,MAAA,OAAA;KAA2B,WAAA;KAA8B,cAAA;KACvD,UAAA,oBAAC,OAAD,CAAM,CAAA;IACR,CAAA;GACF;;CACF,GAZqBvC,MAAKC,EAY1B;AAAiB;;;;;AAerB,SAAOU,cAAAd,IAAA;CAAA,MAAAJ,IAAAC,EAAA,EAAA;CAAA,IAAAc;CAAA,IAAAI;CAAA,IAAAC;CAAA,IAAAH;CAAA,IAAAjB,EAAA,OAAAI,IAAA;EAAuB,CAAA,CAAAW,UAAAC,WAAAI,IAAAH,mBAAA,GAAAE,SAAAf;EAAyFJ,EAAA,KAAAI;EAAAJ,EAAA,KAAAe;EAAAf,EAAA,KAAAmB;EAAAnB,EAAA,KAAAoB;EAAApB,EAAA,KAAAiB;CAAA,OAAA;EAAAF,WAAAf,EAAA;EAAAmB,QAAAnB,EAAA;EAAAoB,KAAApB,EAAA;EAAAiB,oBAAAjB,EAAA;CAAA;CAA7E,MAAAgB,YAAAI,OAAAC,KAAAA,IAAA,iBAAAD;CACxC,MAAAE,YAAkBvC,mBAAmB;CAAE,IAAAwC;CAAA,IAAAvB,EAAA,OAAAiB,mBAAA;EAKFM,KAAAzC,GAAG,sBAAsBmC,iBAAiB;EAACjB,EAAA,KAAAiB;EAAAjB,EAAA,KAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CAAA,IAAAwB;CAAA,IAAAxB,EAAA,OAAAyB,OAAAC,IAAA,2BAAA,GAAA;EACxEF,KAAA,oBAAC,WAAD,CAAU,CAAA;EAAGxB,EAAA,KAAAwB;CAAA,OAAAA,KAAAxB,EAAA;CAAA,IAAA2B;CAAA,IAAA3B,EAAA,OAAAgB,aAAAhB,EAAA,OAAAuB,IAAA;EADfI,KAAA,oBAAAmB,MAAA,UAAA;GAA+B,WAAAvB;GAA6DP,kBAAAA;GAC1FQ,UAAAA;EACF,CAAA;EAAqBxB,EAAA,KAAAgB;EAAAhB,EAAA,KAAAuB;EAAAvB,EAAA,MAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAAA,IAAA4B;CAAA,IAAA5B,EAAA,QAAAsB,aAAAtB,EAAA,QAAA2B,IAAA;EAHvBC,KAAA,oBAAAkB,MAAA,QAAA;GAA6BxB;GAC3BK,UAAAA;EAGF,CAAA;EAAmB3B,EAAA,MAAAsB;EAAAtB,EAAA,MAAA2B;EAAA3B,EAAA,MAAA4B;CAAA,OAAAA,KAAA5B,EAAA;CAAA,IAAA6B;CAAA,IAAA7B,EAAA,QAAAe,YAAAf,EAAA,QAAAmB,SAAAnB,EAAA,QAAA4B,IAAA;EANrBC,KAAA,qBAAAiB,MAAA,UAAA;GAAA,GAAwB3B;GAAxB,UAAA,CACGJ,UACDa,EAKF;;EAAqB5B,EAAA,MAAAe;EAAAf,EAAA,MAAAmB;EAAAnB,EAAA,MAAA4B;EAAA5B,EAAA,MAAA6B;CAAA,OAAAA,KAAA7B,EAAA;CAAA,OAPrB6B;AAOqB;;AAQzB,SAAOK,WAAA;CAAA,MAAAlC,IAAAC,EAAA,EAAA;CACL,MAAAkC,UAAgBtD,MAASsB,gBAAiB;CAAE,IAAAC;CAAA,IAAAgB;CAAA,IAAAG;CAAA,IAAAC;CAAA,IAAAG;CAAA,IAAA3B,EAAA,OAAAmC,SAAA;EAGpC/B,MAAAgC,YAAgDD,QAAOE,IAAKD,OAAO;EACnEhB,MAAAkB,cAA0BH,QAAOE,IAAK;GAAA,GAAKD;GAAO3B,MAAQ;EAAO,CAAC;EAC/Dc,MAAAgB,cAA0BJ,QAAOE,IAAK;GAAA,GAAKD;GAAO3B,MAAQ;EAAU,CAAC;EACrEe,MAAAgB,cAA0BL,QAAOE,IAAK;GAAA,GAAKD;GAAO3B,MAAQ;EAAU,CAAC;EACtEkB,MAAAc,cAA0BN,QAAOE,IAAK;GAAA,GAAKD;GAAO3B,MAAQ;GAAQiC,UAAY;EAAO,CAAC;EAAC1C,EAAA,KAAAmC;EAAAnC,EAAA,KAAAI;EAAAJ,EAAA,KAAAoB;EAAApB,EAAA,KAAAuB;EAAAvB,EAAA,KAAAwB;EAAAxB,EAAA,KAAA2B;CAAA,OAAA;EAAAvB,KAAAJ,EAAA;EAAAoB,KAAApB,EAAA;EAAAuB,KAAAvB,EAAA;EAAAwB,KAAAxB,EAAA;EAAA2B,KAAA3B,EAAA;CAAA;CAAA,IAAA4B;CAAA,IAAA5B,EAAA,OAAAmC,WAAAnC,EAAA,OAAAI,MAAAJ,EAAA,OAAAoB,MAAApB,EAAA,OAAAuB,MAAAvB,EAAA,QAAAwB,MAAAxB,EAAA,QAAA2B,IAAA;EAN1FC,KAAA;GAAA,GACFO;GAAOQ,MACJvC;GAAoET,MACpEyB;GAAmExB,SAChE2B;GAAsE1B,SACtE2B;GAAsE1B,QACvE6B;EACV;EAAC3B,EAAA,KAAAmC;EAAAnC,EAAA,KAAAI;EAAAJ,EAAA,KAAAoB;EAAApB,EAAA,KAAAuB;EAAAvB,EAAA,MAAAwB;EAAAxB,EAAA,MAAA2B;EAAA3B,EAAA,MAAA4B;CAAA,OAAAA,KAAA5B,EAAA;CAAA,OAPM4B;AAON;AAGH,IAAagB,qBAAqB/D,MAAU+D"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Toggle as BaseToggle } from '@base-ui/react/toggle';
|
|
3
|
+
import { ToggleGroup as BaseToggleGroup } from '@base-ui/react/toggle-group';
|
|
4
|
+
export type ToggleSize = 'sm' | 'md';
|
|
5
|
+
export interface ToggleProps extends BaseToggle.Props {
|
|
6
|
+
size?: ToggleSize;
|
|
7
|
+
}
|
|
8
|
+
/** Two-state button (bold, pin, favourite…). Inside a ToggleGroup it acts as a segment. */
|
|
9
|
+
export declare function Toggle({ size, className, ref, ...props }: ToggleProps): React.JSX.Element;
|
|
10
|
+
export interface ToggleGroupProps extends BaseToggleGroup.Props {
|
|
11
|
+
size?: ToggleSize;
|
|
12
|
+
/** `segmented` renders a pill track like a tab switcher; `outline` separate buttons. */
|
|
13
|
+
variant?: 'segmented' | 'outline';
|
|
14
|
+
/** Stretch segments to fill the width. */
|
|
15
|
+
fullWidth?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function ToggleGroup({ size, variant, fullWidth, className, ref, ...props }: ToggleGroupProps): React.JSX.Element;
|
|
18
|
+
export interface SegmentedControlOption {
|
|
19
|
+
value: string;
|
|
20
|
+
label: React.ReactNode;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
'aria-label'?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface SegmentedControlProps extends Omit<ToggleGroupProps, 'value' | 'defaultValue' | 'onValueChange' | 'multiple' | 'children'> {
|
|
25
|
+
options: SegmentedControlOption[];
|
|
26
|
+
value?: string;
|
|
27
|
+
defaultValue?: string;
|
|
28
|
+
onValueChange?: (value: string) => void;
|
|
29
|
+
}
|
|
30
|
+
/** Single-choice switcher (e.g. Day / Week / Month). Always keeps one value selected. */
|
|
31
|
+
export declare function SegmentedControl({ options, value, defaultValue, onValueChange, size, ref, ...props }: SegmentedControlProps): React.JSX.Element;
|