@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.
Files changed (193) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +244 -2
  3. package/dist/components/accordion/Accordion.d.ts +17 -0
  4. package/dist/components/accordion/Accordion.js +204 -0
  5. package/dist/components/accordion/Accordion.js.map +1 -0
  6. package/dist/components/alert/Alert.d.ts +18 -0
  7. package/dist/components/alert/Alert.js +164 -0
  8. package/dist/components/alert/Alert.js.map +1 -0
  9. package/dist/components/app-shell/AppShell.d.ts +97 -0
  10. package/dist/components/app-shell/AppShell.js +689 -0
  11. package/dist/components/app-shell/AppShell.js.map +1 -0
  12. package/dist/components/avatar/Avatar.d.ts +21 -0
  13. package/dist/components/avatar/Avatar.js +190 -0
  14. package/dist/components/avatar/Avatar.js.map +1 -0
  15. package/dist/components/badge/Badge.d.ts +16 -0
  16. package/dist/components/badge/Badge.js +94 -0
  17. package/dist/components/badge/Badge.js.map +1 -0
  18. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
  19. package/dist/components/breadcrumbs/Breadcrumbs.js +154 -0
  20. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
  21. package/dist/components/button/Button.d.ts +23 -0
  22. package/dist/components/button/Button.js +159 -0
  23. package/dist/components/button/Button.js.map +1 -0
  24. package/dist/components/calendar/Calendar.d.ts +59 -0
  25. package/dist/components/calendar/Calendar.js +709 -0
  26. package/dist/components/calendar/Calendar.js.map +1 -0
  27. package/dist/components/calendar/date-utils.d.ts +32 -0
  28. package/dist/components/calendar/date-utils.js +112 -0
  29. package/dist/components/calendar/date-utils.js.map +1 -0
  30. package/dist/components/card/Card.d.ts +42 -0
  31. package/dist/components/card/Card.js +82 -0
  32. package/dist/components/card/Card.js.map +1 -0
  33. package/dist/components/choice/Choice.d.ts +32 -0
  34. package/dist/components/choice/Choice.js +371 -0
  35. package/dist/components/choice/Choice.js.map +1 -0
  36. package/dist/components/collapsible/Collapsible.d.ts +15 -0
  37. package/dist/components/collapsible/Collapsible.js +155 -0
  38. package/dist/components/collapsible/Collapsible.js.map +1 -0
  39. package/dist/components/combobox/Combobox.d.ts +68 -0
  40. package/dist/components/combobox/Combobox.js +752 -0
  41. package/dist/components/combobox/Combobox.js.map +1 -0
  42. package/dist/components/command-palette/CommandPalette.d.ts +52 -0
  43. package/dist/components/command-palette/CommandPalette.js +328 -0
  44. package/dist/components/command-palette/CommandPalette.js.map +1 -0
  45. package/dist/components/data-table/DataTable.d.ts +73 -0
  46. package/dist/components/data-table/DataTable.js +478 -0
  47. package/dist/components/data-table/DataTable.js.map +1 -0
  48. package/dist/components/data-table/DataTableContent.d.ts +35 -0
  49. package/dist/components/data-table/DataTableContent.js +550 -0
  50. package/dist/components/data-table/DataTableContent.js.map +1 -0
  51. package/dist/components/data-table/DataTableFilters.d.ts +15 -0
  52. package/dist/components/data-table/DataTableFilters.js +284 -0
  53. package/dist/components/data-table/DataTableFilters.js.map +1 -0
  54. package/dist/components/data-table/DataTableRow.d.ts +33 -0
  55. package/dist/components/data-table/DataTableRow.js +552 -0
  56. package/dist/components/data-table/DataTableRow.js.map +1 -0
  57. package/dist/components/data-table/context.d.ts +5 -0
  58. package/dist/components/data-table/context.js +14 -0
  59. package/dist/components/data-table/context.js.map +1 -0
  60. package/dist/components/data-table/layout.d.ts +60 -0
  61. package/dist/components/data-table/layout.js +272 -0
  62. package/dist/components/data-table/layout.js.map +1 -0
  63. package/dist/components/data-table/types.d.ts +319 -0
  64. package/dist/components/data-table/useDataTable.d.ts +9 -0
  65. package/dist/components/data-table/useDataTable.js +666 -0
  66. package/dist/components/data-table/useDataTable.js.map +1 -0
  67. package/dist/components/date-picker/DatePicker.d.ts +50 -0
  68. package/dist/components/date-picker/DatePicker.js +485 -0
  69. package/dist/components/date-picker/DatePicker.js.map +1 -0
  70. package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
  71. package/dist/components/date-picker/DateRangePicker.js +339 -0
  72. package/dist/components/date-picker/DateRangePicker.js.map +1 -0
  73. package/dist/components/date-picker/PickerField.d.ts +38 -0
  74. package/dist/components/date-picker/PickerField.js +238 -0
  75. package/dist/components/date-picker/PickerField.js.map +1 -0
  76. package/dist/components/dialog/Dialog.d.ts +70 -0
  77. package/dist/components/dialog/Dialog.js +354 -0
  78. package/dist/components/dialog/Dialog.js.map +1 -0
  79. package/dist/components/drawer/Drawer.d.ts +39 -0
  80. package/dist/components/drawer/Drawer.js +225 -0
  81. package/dist/components/drawer/Drawer.js.map +1 -0
  82. package/dist/components/empty-state/EmptyState.d.ts +12 -0
  83. package/dist/components/empty-state/EmptyState.js +116 -0
  84. package/dist/components/empty-state/EmptyState.js.map +1 -0
  85. package/dist/components/field/Field.d.ts +36 -0
  86. package/dist/components/field/Field.js +337 -0
  87. package/dist/components/field/Field.js.map +1 -0
  88. package/dist/components/file-upload/FileUpload.d.ts +91 -0
  89. package/dist/components/file-upload/FileUpload.js +714 -0
  90. package/dist/components/file-upload/FileUpload.js.map +1 -0
  91. package/dist/components/input/Input.d.ts +49 -0
  92. package/dist/components/input/Input.js +538 -0
  93. package/dist/components/input/Input.js.map +1 -0
  94. package/dist/components/link/Link.d.ts +17 -0
  95. package/dist/components/link/Link.js +91 -0
  96. package/dist/components/link/Link.js.map +1 -0
  97. package/dist/components/menu/Menu.d.ts +79 -0
  98. package/dist/components/menu/Menu.js +615 -0
  99. package/dist/components/menu/Menu.js.map +1 -0
  100. package/dist/components/number-field/NumberField.d.ts +16 -0
  101. package/dist/components/number-field/NumberField.js +188 -0
  102. package/dist/components/number-field/NumberField.js.map +1 -0
  103. package/dist/components/pagination/Pagination.d.ts +34 -0
  104. package/dist/components/pagination/Pagination.js +244 -0
  105. package/dist/components/pagination/Pagination.js.map +1 -0
  106. package/dist/components/popover/Popover.d.ts +22 -0
  107. package/dist/components/popover/Popover.js +186 -0
  108. package/dist/components/popover/Popover.js.map +1 -0
  109. package/dist/components/preview-card/PreviewCard.d.ts +20 -0
  110. package/dist/components/preview-card/PreviewCard.js +114 -0
  111. package/dist/components/preview-card/PreviewCard.js.map +1 -0
  112. package/dist/components/progress/Progress.d.ts +20 -0
  113. package/dist/components/progress/Progress.js +169 -0
  114. package/dist/components/progress/Progress.js.map +1 -0
  115. package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
  116. package/dist/components/scroll-area/ScrollArea.js +112 -0
  117. package/dist/components/scroll-area/ScrollArea.js.map +1 -0
  118. package/dist/components/search-input/SearchInput.d.ts +14 -0
  119. package/dist/components/search-input/SearchInput.js +114 -0
  120. package/dist/components/search-input/SearchInput.js.map +1 -0
  121. package/dist/components/select/Select.d.ts +66 -0
  122. package/dist/components/select/Select.js +601 -0
  123. package/dist/components/select/Select.js.map +1 -0
  124. package/dist/components/separator/Separator.d.ts +4 -0
  125. package/dist/components/separator/Separator.js +46 -0
  126. package/dist/components/separator/Separator.js.map +1 -0
  127. package/dist/components/skeleton/Skeleton.d.ts +16 -0
  128. package/dist/components/skeleton/Skeleton.js +135 -0
  129. package/dist/components/skeleton/Skeleton.js.map +1 -0
  130. package/dist/components/slider/Slider.d.ts +11 -0
  131. package/dist/components/slider/Slider.js +107 -0
  132. package/dist/components/slider/Slider.js.map +1 -0
  133. package/dist/components/spinner/Spinner.d.ts +9 -0
  134. package/dist/components/spinner/Spinner.js +78 -0
  135. package/dist/components/spinner/Spinner.js.map +1 -0
  136. package/dist/components/stack/Stack.d.ts +23 -0
  137. package/dist/components/stack/Stack.js +79 -0
  138. package/dist/components/stack/Stack.js.map +1 -0
  139. package/dist/components/stat-card/StatCard.d.ts +22 -0
  140. package/dist/components/stat-card/StatCard.js +153 -0
  141. package/dist/components/stat-card/StatCard.js.map +1 -0
  142. package/dist/components/stepper/Stepper.d.ts +30 -0
  143. package/dist/components/stepper/Stepper.js +131 -0
  144. package/dist/components/stepper/Stepper.js.map +1 -0
  145. package/dist/components/table/Table.d.ts +53 -0
  146. package/dist/components/table/Table.js +221 -0
  147. package/dist/components/table/Table.js.map +1 -0
  148. package/dist/components/tabs/Tabs.d.ts +19 -0
  149. package/dist/components/tabs/Tabs.js +183 -0
  150. package/dist/components/tabs/Tabs.js.map +1 -0
  151. package/dist/components/tag/Tag.d.ts +22 -0
  152. package/dist/components/tag/Tag.js +121 -0
  153. package/dist/components/tag/Tag.js.map +1 -0
  154. package/dist/components/toast/Toast.d.ts +34 -0
  155. package/dist/components/toast/Toast.js +187 -0
  156. package/dist/components/toast/Toast.js.map +1 -0
  157. package/dist/components/toggle/Toggle.d.ts +31 -0
  158. package/dist/components/toggle/Toggle.js +197 -0
  159. package/dist/components/toggle/Toggle.js.map +1 -0
  160. package/dist/components/toolbar/Toolbar.d.ts +21 -0
  161. package/dist/components/toolbar/Toolbar.js +239 -0
  162. package/dist/components/toolbar/Toolbar.js.map +1 -0
  163. package/dist/components/tooltip/Tooltip.d.ts +33 -0
  164. package/dist/components/tooltip/Tooltip.js +182 -0
  165. package/dist/components/tooltip/Tooltip.js.map +1 -0
  166. package/dist/components/typography/Typography.d.ts +32 -0
  167. package/dist/components/typography/Typography.js +183 -0
  168. package/dist/components/typography/Typography.js.map +1 -0
  169. package/dist/fonts.css +3 -0
  170. package/dist/icons/index.d.ts +133 -0
  171. package/dist/icons/index.js +182 -0
  172. package/dist/icons/index.js.map +1 -0
  173. package/dist/index.d.ts +55 -0
  174. package/dist/index.js +58 -0
  175. package/dist/opti-ui.css +5692 -0
  176. package/dist/theme/ThemeProvider.d.ts +22 -0
  177. package/dist/theme/ThemeProvider.js +115 -0
  178. package/dist/theme/ThemeProvider.js.map +1 -0
  179. package/dist/theme/index.d.ts +2 -0
  180. package/dist/utils/cx.d.ts +10 -0
  181. package/dist/utils/cx.js +18 -0
  182. package/dist/utils/cx.js.map +1 -0
  183. package/dist/utils/index.d.ts +2 -0
  184. package/dist/utils/portal.d.ts +8 -0
  185. package/dist/utils/portal.js +16 -0
  186. package/dist/utils/portal.js.map +1 -0
  187. package/dist/utils/primitive.d.ts +13 -0
  188. package/dist/utils/primitive.js +61 -0
  189. package/dist/utils/primitive.js.map +1 -0
  190. package/dist/utils/search.d.ts +4 -0
  191. package/dist/utils/search.js +15 -0
  192. package/dist/utils/search.js.map +1 -0
  193. 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":"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"}
@@ -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;