@optimum-intelligence/opti-ui 0.5.2 → 0.6.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/dist/components/badge/Badge.d.ts +4 -2
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/button/Button.d.ts +6 -1
- package/dist/components/button/Button.js +31 -26
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/data-table/DataTable.d.ts +14 -2
- package/dist/components/data-table/DataTable.js +113 -98
- package/dist/components/data-table/DataTable.js.map +1 -1
- package/dist/components/data-table/DataTableFilters.d.ts +1 -1
- package/dist/components/data-table/DataTableFilters.js +85 -44
- package/dist/components/data-table/DataTableFilters.js.map +1 -1
- package/dist/components/data-table/export.d.ts +3 -0
- package/dist/components/data-table/export.js +31 -0
- package/dist/components/data-table/export.js.map +1 -0
- package/dist/components/data-table/types.d.ts +32 -5
- package/dist/components/data-table/useDataTable.js +18 -4
- package/dist/components/data-table/useDataTable.js.map +1 -1
- package/dist/components/description-list/DescriptionList.d.ts +29 -0
- package/dist/components/description-list/DescriptionList.js +125 -0
- package/dist/components/description-list/DescriptionList.js.map +1 -0
- package/dist/components/dialog/ConfirmDialog.d.ts +59 -0
- package/dist/components/dialog/ConfirmDialog.js +165 -0
- package/dist/components/dialog/ConfirmDialog.js.map +1 -0
- package/dist/components/dialog/Dialog.d.ts +9 -2
- package/dist/components/dialog/Dialog.js +103 -89
- package/dist/components/dialog/Dialog.js.map +1 -1
- package/dist/components/drawer/Drawer.d.ts +3 -1
- package/dist/components/drawer/Drawer.js +11 -9
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components/select/Select.d.ts +6 -1
- package/dist/components/select/Select.js +110 -92
- package/dist/components/select/Select.js.map +1 -1
- package/dist/components.json +259 -20
- package/dist/icons/index.d.ts +4 -0
- package/dist/icons/index.js +6 -1
- package/dist/icons/index.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +5 -3
- package/dist/llms-full.txt +103 -5
- package/dist/llms.txt +3 -0
- package/dist/opti-ui.css +434 -19
- package/package.json +4 -1
|
@@ -9,7 +9,7 @@ import { Dialog } from "@base-ui/react/dialog";
|
|
|
9
9
|
import { AlertDialog } from "@base-ui/react/alert-dialog";
|
|
10
10
|
//#region src/components/dialog/Dialog.tsx
|
|
11
11
|
function DialogContent(t0) {
|
|
12
|
-
const $ = c(
|
|
12
|
+
const $ = c(36);
|
|
13
13
|
let backdropProps;
|
|
14
14
|
let children;
|
|
15
15
|
let className;
|
|
@@ -20,8 +20,9 @@ function DialogContent(t0) {
|
|
|
20
20
|
let t3;
|
|
21
21
|
let t4;
|
|
22
22
|
let t5;
|
|
23
|
+
let t6;
|
|
23
24
|
if ($[0] !== t0) {
|
|
24
|
-
({size: t1, placement: t2, showClose: t3, closeLabel: t4, backdropBlur: t5, backdropProps, className, children, ref, ...props} = t0);
|
|
25
|
+
({size: t1, placement: t2, showClose: t3, closeLabel: t4, backdropBlur: t5, backdropProps, nestedBackdrop: t6, className, children, ref, ...props} = t0);
|
|
25
26
|
$[0] = t0;
|
|
26
27
|
$[1] = backdropProps;
|
|
27
28
|
$[2] = children;
|
|
@@ -33,6 +34,7 @@ function DialogContent(t0) {
|
|
|
33
34
|
$[8] = t3;
|
|
34
35
|
$[9] = t4;
|
|
35
36
|
$[10] = t5;
|
|
37
|
+
$[11] = t6;
|
|
36
38
|
} else {
|
|
37
39
|
backdropProps = $[1];
|
|
38
40
|
children = $[2];
|
|
@@ -44,80 +46,85 @@ function DialogContent(t0) {
|
|
|
44
46
|
t3 = $[8];
|
|
45
47
|
t4 = $[9];
|
|
46
48
|
t5 = $[10];
|
|
49
|
+
t6 = $[11];
|
|
47
50
|
}
|
|
48
51
|
const size = t1 === void 0 ? "md" : t1;
|
|
49
52
|
const placement = t2 === void 0 ? "center" : t2;
|
|
50
53
|
const showClose = t3 === void 0 ? true : t3;
|
|
51
54
|
const closeLabel = t4 === void 0 ? "Close" : t4;
|
|
52
55
|
const backdropBlur = t5 === void 0 ? "md" : t5;
|
|
56
|
+
const nestedBackdrop = t6 === void 0 ? false : t6;
|
|
53
57
|
const container = usePortalContainer();
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
$[12] =
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
const t7 = nestedBackdrop || void 0;
|
|
59
|
+
const t8 = backdropProps?.className;
|
|
60
|
+
let t9;
|
|
61
|
+
if ($[12] !== t8) {
|
|
62
|
+
t9 = withClass("oui-dialog__backdrop", t8);
|
|
63
|
+
$[12] = t8;
|
|
64
|
+
$[13] = t9;
|
|
65
|
+
} else t9 = $[13];
|
|
66
|
+
let t10;
|
|
67
|
+
if ($[14] !== backdropBlur || $[15] !== backdropProps || $[16] !== t7 || $[17] !== t9) {
|
|
68
|
+
t10 = /* @__PURE__ */ jsx(Dialog.Backdrop, {
|
|
64
69
|
"data-blur": backdropBlur,
|
|
70
|
+
"data-show-nested": t7,
|
|
65
71
|
...backdropProps,
|
|
66
|
-
className:
|
|
72
|
+
className: t9
|
|
67
73
|
});
|
|
68
|
-
$[
|
|
69
|
-
$[
|
|
70
|
-
$[
|
|
71
|
-
$[
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
$[
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
74
|
+
$[14] = backdropBlur;
|
|
75
|
+
$[15] = backdropProps;
|
|
76
|
+
$[16] = t7;
|
|
77
|
+
$[17] = t9;
|
|
78
|
+
$[18] = t10;
|
|
79
|
+
} else t10 = $[18];
|
|
80
|
+
let t11;
|
|
81
|
+
if ($[19] !== className) {
|
|
82
|
+
t11 = withClass("oui-dialog", className);
|
|
83
|
+
$[19] = className;
|
|
84
|
+
$[20] = t11;
|
|
85
|
+
} else t11 = $[20];
|
|
86
|
+
let t12;
|
|
87
|
+
if ($[21] !== closeLabel || $[22] !== showClose) {
|
|
88
|
+
t12 = showClose && /* @__PURE__ */ jsx(Dialog.Close, {
|
|
82
89
|
className: "oui-dialog__close",
|
|
83
90
|
"aria-label": closeLabel,
|
|
84
91
|
children: /* @__PURE__ */ jsx(XIcon, {})
|
|
85
92
|
});
|
|
86
|
-
$[
|
|
87
|
-
$[
|
|
88
|
-
$[
|
|
89
|
-
} else
|
|
90
|
-
let
|
|
91
|
-
if ($[
|
|
92
|
-
|
|
93
|
+
$[21] = closeLabel;
|
|
94
|
+
$[22] = showClose;
|
|
95
|
+
$[23] = t12;
|
|
96
|
+
} else t12 = $[23];
|
|
97
|
+
let t13;
|
|
98
|
+
if ($[24] !== children || $[25] !== placement || $[26] !== props || $[27] !== ref || $[28] !== size || $[29] !== t11 || $[30] !== t12) {
|
|
99
|
+
t13 = /* @__PURE__ */ jsxs(Dialog.Popup, {
|
|
93
100
|
ref,
|
|
94
|
-
className:
|
|
101
|
+
className: t11,
|
|
95
102
|
"data-size": size,
|
|
96
103
|
"data-placement": placement,
|
|
97
104
|
...props,
|
|
98
|
-
children: [children,
|
|
105
|
+
children: [children, t12]
|
|
99
106
|
});
|
|
100
|
-
$[
|
|
101
|
-
$[
|
|
102
|
-
$[
|
|
103
|
-
$[
|
|
104
|
-
$[
|
|
105
|
-
$[27] = t10;
|
|
106
|
-
$[28] = t9;
|
|
107
|
+
$[24] = children;
|
|
108
|
+
$[25] = placement;
|
|
109
|
+
$[26] = props;
|
|
110
|
+
$[27] = ref;
|
|
111
|
+
$[28] = size;
|
|
107
112
|
$[29] = t11;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
113
|
+
$[30] = t12;
|
|
114
|
+
$[31] = t13;
|
|
115
|
+
} else t13 = $[31];
|
|
116
|
+
let t14;
|
|
117
|
+
if ($[32] !== container || $[33] !== t10 || $[34] !== t13) {
|
|
118
|
+
t14 = /* @__PURE__ */ jsxs(Dialog.Portal, {
|
|
112
119
|
container,
|
|
113
|
-
children: [
|
|
120
|
+
children: [t10, t13]
|
|
114
121
|
});
|
|
115
|
-
$[
|
|
116
|
-
$[
|
|
117
|
-
$[
|
|
118
|
-
$[
|
|
119
|
-
} else
|
|
120
|
-
return
|
|
122
|
+
$[32] = container;
|
|
123
|
+
$[33] = t10;
|
|
124
|
+
$[34] = t13;
|
|
125
|
+
$[35] = t14;
|
|
126
|
+
} else t14 = $[35];
|
|
127
|
+
return t14;
|
|
121
128
|
}
|
|
122
129
|
function DialogTitle(t0) {
|
|
123
130
|
const $ = c(10);
|
|
@@ -212,72 +219,79 @@ var Dialog$1 = {
|
|
|
212
219
|
createHandle: Dialog.createHandle
|
|
213
220
|
};
|
|
214
221
|
function AlertDialogContent(t0) {
|
|
215
|
-
const $ = c(
|
|
222
|
+
const $ = c(21);
|
|
216
223
|
let className;
|
|
217
224
|
let props;
|
|
218
225
|
let ref;
|
|
219
226
|
let t1;
|
|
220
227
|
let t2;
|
|
228
|
+
let t3;
|
|
221
229
|
if ($[0] !== t0) {
|
|
222
|
-
({size: t1, backdropBlur: t2, className, ref, ...props} = t0);
|
|
230
|
+
({size: t1, backdropBlur: t2, nestedBackdrop: t3, className, ref, ...props} = t0);
|
|
223
231
|
$[0] = t0;
|
|
224
232
|
$[1] = className;
|
|
225
233
|
$[2] = props;
|
|
226
234
|
$[3] = ref;
|
|
227
235
|
$[4] = t1;
|
|
228
236
|
$[5] = t2;
|
|
237
|
+
$[6] = t3;
|
|
229
238
|
} else {
|
|
230
239
|
className = $[1];
|
|
231
240
|
props = $[2];
|
|
232
241
|
ref = $[3];
|
|
233
242
|
t1 = $[4];
|
|
234
243
|
t2 = $[5];
|
|
244
|
+
t3 = $[6];
|
|
235
245
|
}
|
|
236
246
|
const size = t1 === void 0 ? "sm" : t1;
|
|
237
247
|
const backdropBlur = t2 === void 0 ? "md" : t2;
|
|
248
|
+
const nestedBackdrop = t3 === void 0 ? false : t3;
|
|
238
249
|
const container = usePortalContainer();
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
250
|
+
const t4 = nestedBackdrop || void 0;
|
|
251
|
+
let t5;
|
|
252
|
+
if ($[7] !== backdropBlur || $[8] !== t4) {
|
|
253
|
+
t5 = /* @__PURE__ */ jsx(AlertDialog.Backdrop, {
|
|
242
254
|
className: "oui-dialog__backdrop",
|
|
243
|
-
"data-blur": backdropBlur
|
|
255
|
+
"data-blur": backdropBlur,
|
|
256
|
+
"data-show-nested": t4
|
|
244
257
|
});
|
|
245
|
-
$[
|
|
246
|
-
$[
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
$[
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
258
|
+
$[7] = backdropBlur;
|
|
259
|
+
$[8] = t4;
|
|
260
|
+
$[9] = t5;
|
|
261
|
+
} else t5 = $[9];
|
|
262
|
+
let t6;
|
|
263
|
+
if ($[10] !== className) {
|
|
264
|
+
t6 = withClass("oui-dialog", className);
|
|
265
|
+
$[10] = className;
|
|
266
|
+
$[11] = t6;
|
|
267
|
+
} else t6 = $[11];
|
|
268
|
+
let t7;
|
|
269
|
+
if ($[12] !== props || $[13] !== ref || $[14] !== size || $[15] !== t6) {
|
|
270
|
+
t7 = /* @__PURE__ */ jsx(AlertDialog.Popup, {
|
|
257
271
|
ref,
|
|
258
|
-
className:
|
|
272
|
+
className: t6,
|
|
259
273
|
"data-size": size,
|
|
260
274
|
"data-placement": "center",
|
|
261
275
|
...props
|
|
262
276
|
});
|
|
263
|
-
$[
|
|
264
|
-
$[
|
|
265
|
-
$[
|
|
266
|
-
$[
|
|
267
|
-
$[
|
|
268
|
-
} else
|
|
269
|
-
let
|
|
270
|
-
if ($[
|
|
271
|
-
|
|
277
|
+
$[12] = props;
|
|
278
|
+
$[13] = ref;
|
|
279
|
+
$[14] = size;
|
|
280
|
+
$[15] = t6;
|
|
281
|
+
$[16] = t7;
|
|
282
|
+
} else t7 = $[16];
|
|
283
|
+
let t8;
|
|
284
|
+
if ($[17] !== container || $[18] !== t5 || $[19] !== t7) {
|
|
285
|
+
t8 = /* @__PURE__ */ jsxs(AlertDialog.Portal, {
|
|
272
286
|
container,
|
|
273
|
-
children: [
|
|
287
|
+
children: [t5, t7]
|
|
274
288
|
});
|
|
275
|
-
$[
|
|
276
|
-
$[
|
|
277
|
-
$[
|
|
278
|
-
$[
|
|
279
|
-
} else
|
|
280
|
-
return
|
|
289
|
+
$[17] = container;
|
|
290
|
+
$[18] = t5;
|
|
291
|
+
$[19] = t7;
|
|
292
|
+
$[20] = t8;
|
|
293
|
+
} else t8 = $[20];
|
|
294
|
+
return t8;
|
|
281
295
|
}
|
|
282
296
|
function AlertDialogTitle(t0) {
|
|
283
297
|
const $ = c(10);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.js","names":["Dialog","BaseDialog","AlertDialog","BaseAlertDialog","withClass","createPrimitive","usePortalContainer","XIcon","DialogSize","DialogPlacement","DialogBackdropBlur","DialogContentProps","Popup","Props","size","placement","showClose","closeLabel","backdropBlur","backdropProps","Backdrop","DialogContent","t0","$","_c","children","className","props","ref","t1","t2","t3","t4","t5","undefined","container","t6","t7","t8","t9","t10","t11","t12","DialogTitle","DialogDescription","DialogHeader","DialogBody","DialogFooter","Root","Trigger","Content","Header","Title","Description","Body","Footer","Close","createHandle","AlertDialogContentProps","Exclude","AlertDialogContent","AlertDialogTitle","AlertDialogDescription","_c","BaseDialog","Dialog","BaseAlertDialog","AlertDialog"],"sources":["../../../src/components/dialog/Dialog.tsx"],"sourcesContent":["import { Dialog as BaseDialog } from '@base-ui/react/dialog';\nimport { AlertDialog as BaseAlertDialog } from '@base-ui/react/alert-dialog';\nimport { withClass } from '../../utils/cx';\nimport { createPrimitive } from '../../utils/primitive';\nimport { usePortalContainer } from '../../utils/portal';\nimport { XIcon } from '../../icons';\n\nexport type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\n/** `center` is a modal; the edges turn the dialog into a sheet / drawer. */\nexport type DialogPlacement = 'center' | 'right' | 'left' | 'bottom';\n/** Blur applied to the page behind a modal: none, 4px, 8px or 16px. */\nexport type DialogBackdropBlur = 'none' | 'sm' | 'md' | 'lg';\n\nexport interface DialogContentProps extends BaseDialog.Popup.Props {\n /** Width of a centered dialog, or of a sheet. */\n size?: DialogSize;\n /** `center` modal, or a sheet docked to an edge. */\n placement?: DialogPlacement;\n /** Render the corner close button. */\n showClose?: boolean;\n /** Accessible name of the close button. */\n closeLabel?: string;\n /** How strongly the page behind the dialog is blurred. Override the radius with `--oui-backdrop-blur`. */\n backdropBlur?: DialogBackdropBlur;\n /** Props for the backdrop behind the dialog. */\n backdropProps?: BaseDialog.Backdrop.Props;\n}\n\nfunction DialogContent({\n size = 'md',\n placement = 'center',\n showClose = true,\n closeLabel = 'Close',\n backdropBlur = 'md',\n backdropProps,\n className,\n children,\n ref,\n ...props\n}: DialogContentProps) {\n const container = usePortalContainer();\n return (\n <BaseDialog.Portal container={container}>\n <BaseDialog.Backdrop\n data-blur={backdropBlur}\n {...backdropProps}\n className={withClass('oui-dialog__backdrop', backdropProps?.className)}\n />\n <BaseDialog.Popup\n ref={ref}\n className={withClass('oui-dialog', className)}\n data-size={size}\n data-placement={placement}\n {...props}\n >\n {children}\n {showClose && (\n <BaseDialog.Close className=\"oui-dialog__close\" aria-label={closeLabel}>\n <XIcon />\n </BaseDialog.Close>\n )}\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n );\n}\n\nfunction DialogTitle({ className, ref, ...props }: BaseDialog.Title.Props) {\n return <BaseDialog.Title ref={ref} className={withClass('oui-dialog__title', className)} {...props} />;\n}\n\nfunction DialogDescription({ className, ref, ...props }: BaseDialog.Description.Props) {\n return <BaseDialog.Description ref={ref} className={withClass('oui-dialog__description', className)} {...props} />;\n}\n\nconst DialogHeader = createPrimitive('div', 'oui-dialog__header', 'DialogHeader');\nconst DialogBody = createPrimitive('div', 'oui-dialog__body', 'DialogBody');\nconst DialogFooter = createPrimitive('div', 'oui-dialog__footer', 'DialogFooter');\n\n/**\n * Modal dialog and side sheet. Compose:\n * `Dialog.Root` › `Dialog.Trigger` + `Dialog.Content` › `Dialog.Header` (`Title`, `Description`), `Dialog.Body`, `Dialog.Footer`.\n * Use `render={<Button />}` on `Dialog.Trigger` / `Dialog.Close` to style them as buttons.\n */\nexport const Dialog = {\n Root: BaseDialog.Root,\n Trigger: BaseDialog.Trigger,\n Content: DialogContent,\n Header: DialogHeader,\n Title: DialogTitle,\n Description: DialogDescription,\n Body: DialogBody,\n Footer: DialogFooter,\n Close: BaseDialog.Close,\n createHandle: BaseDialog.createHandle,\n};\n\n// ─── Alert dialog ────────────────────────────────────────────────────────────\n\nexport interface AlertDialogContentProps extends BaseAlertDialog.Popup.Props {\n /** Dialog width. */\n size?: Exclude<DialogSize, 'full'>;\n /** How strongly the page behind the dialog is blurred. Override the radius with `--oui-backdrop-blur`. */\n backdropBlur?: DialogBackdropBlur;\n}\n\nfunction AlertDialogContent({ size = 'sm', backdropBlur = 'md', className, ref, ...props }: AlertDialogContentProps) {\n const container = usePortalContainer();\n return (\n <BaseAlertDialog.Portal container={container}>\n <BaseAlertDialog.Backdrop className=\"oui-dialog__backdrop\" data-blur={backdropBlur} />\n <BaseAlertDialog.Popup\n ref={ref}\n className={withClass('oui-dialog', className)}\n data-size={size}\n data-placement=\"center\"\n {...props}\n />\n </BaseAlertDialog.Portal>\n );\n}\n\nfunction AlertDialogTitle({ className, ref, ...props }: BaseAlertDialog.Title.Props) {\n return <BaseAlertDialog.Title ref={ref} className={withClass('oui-dialog__title', className)} {...props} />;\n}\n\nfunction AlertDialogDescription({ className, ref, ...props }: BaseAlertDialog.Description.Props) {\n return (\n <BaseAlertDialog.Description ref={ref} className={withClass('oui-dialog__description', className)} {...props} />\n );\n}\n\n/** Confirmation dialog that requires an explicit choice (no outside-click dismissal). */\nexport const AlertDialog = {\n Root: BaseAlertDialog.Root,\n Trigger: BaseAlertDialog.Trigger,\n Content: AlertDialogContent,\n Header: DialogHeader,\n Title: AlertDialogTitle,\n Description: AlertDialogDescription,\n Body: DialogBody,\n Footer: DialogFooter,\n Close: BaseAlertDialog.Close,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dialog.js","names":["Dialog","BaseDialog","AlertDialog","BaseAlertDialog","withClass","createPrimitive","usePortalContainer","XIcon","DialogSize","DialogPlacement","DialogBackdropBlur","DialogContentProps","Popup","Props","size","placement","showClose","closeLabel","backdropBlur","backdropProps","Backdrop","nestedBackdrop","DialogContent","t0","$","_c","children","className","props","ref","t1","t2","t3","t4","t5","t6","undefined","container","t7","t8","t9","t10","t11","t12","t13","t14","DialogTitle","DialogDescription","DialogHeader","DialogBody","DialogFooter","Root","Trigger","Content","Header","Title","Description","Body","Footer","Close","createHandle","AlertDialogContentProps","Exclude","AlertDialogContent","AlertDialogTitle","AlertDialogDescription","_c","BaseDialog","Dialog","BaseAlertDialog","AlertDialog"],"sources":["../../../src/components/dialog/Dialog.tsx"],"sourcesContent":["import { Dialog as BaseDialog } from '@base-ui/react/dialog';\nimport { AlertDialog as BaseAlertDialog } from '@base-ui/react/alert-dialog';\nimport { withClass } from '../../utils/cx';\nimport { createPrimitive } from '../../utils/primitive';\nimport { usePortalContainer } from '../../utils/portal';\nimport { XIcon } from '../../icons';\n\nexport type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\n/** `center` is a modal; the edges turn the dialog into a sheet / drawer. */\nexport type DialogPlacement = 'center' | 'right' | 'left' | 'bottom';\n/** Blur applied to the page behind a modal: none, 4px, 8px or 16px. */\nexport type DialogBackdropBlur = 'none' | 'sm' | 'md' | 'lg';\n\nexport interface DialogContentProps extends BaseDialog.Popup.Props {\n /** Width of a centered dialog, or of a sheet. */\n size?: DialogSize;\n /** `center` modal, or a sheet docked to an edge. */\n placement?: DialogPlacement;\n /** Render the corner close button. */\n showClose?: boolean;\n /** Accessible name of the close button. */\n closeLabel?: string;\n /** How strongly the page behind the dialog is blurred. Override the radius with `--oui-backdrop-blur`. */\n backdropBlur?: DialogBackdropBlur;\n /** Props for the backdrop behind the dialog. */\n backdropProps?: BaseDialog.Backdrop.Props;\n /**\n * Blur the dialog or drawer this one opens from. Nested dialogs otherwise\n * show no backdrop, so the parent stays sharp behind them.\n */\n nestedBackdrop?: boolean;\n}\n\nfunction DialogContent({\n size = 'md',\n placement = 'center',\n showClose = true,\n closeLabel = 'Close',\n backdropBlur = 'md',\n backdropProps,\n nestedBackdrop = false,\n className,\n children,\n ref,\n ...props\n}: DialogContentProps) {\n const container = usePortalContainer();\n return (\n <BaseDialog.Portal container={container}>\n <BaseDialog.Backdrop\n data-blur={backdropBlur}\n data-show-nested={nestedBackdrop || undefined}\n {...backdropProps}\n className={withClass('oui-dialog__backdrop', backdropProps?.className)}\n />\n <BaseDialog.Popup\n ref={ref}\n className={withClass('oui-dialog', className)}\n data-size={size}\n data-placement={placement}\n {...props}\n >\n {children}\n {showClose && (\n <BaseDialog.Close className=\"oui-dialog__close\" aria-label={closeLabel}>\n <XIcon />\n </BaseDialog.Close>\n )}\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n );\n}\n\nfunction DialogTitle({ className, ref, ...props }: BaseDialog.Title.Props) {\n return <BaseDialog.Title ref={ref} className={withClass('oui-dialog__title', className)} {...props} />;\n}\n\nfunction DialogDescription({ className, ref, ...props }: BaseDialog.Description.Props) {\n return <BaseDialog.Description ref={ref} className={withClass('oui-dialog__description', className)} {...props} />;\n}\n\nconst DialogHeader = createPrimitive('div', 'oui-dialog__header', 'DialogHeader');\nconst DialogBody = createPrimitive('div', 'oui-dialog__body', 'DialogBody');\nconst DialogFooter = createPrimitive('div', 'oui-dialog__footer', 'DialogFooter');\n\n/**\n * Modal dialog and side sheet. Compose:\n * `Dialog.Root` › `Dialog.Trigger` + `Dialog.Content` › `Dialog.Header` (`Title`, `Description`), `Dialog.Body`, `Dialog.Footer`.\n * Use `render={<Button />}` on `Dialog.Trigger` / `Dialog.Close` to style them as buttons.\n */\nexport const Dialog = {\n Root: BaseDialog.Root,\n Trigger: BaseDialog.Trigger,\n Content: DialogContent,\n Header: DialogHeader,\n Title: DialogTitle,\n Description: DialogDescription,\n Body: DialogBody,\n Footer: DialogFooter,\n Close: BaseDialog.Close,\n createHandle: BaseDialog.createHandle,\n};\n\n// ─── Alert dialog ────────────────────────────────────────────────────────────\n\nexport interface AlertDialogContentProps extends BaseAlertDialog.Popup.Props {\n /** Dialog width. */\n size?: Exclude<DialogSize, 'full'>;\n /** How strongly the page behind the dialog is blurred. Override the radius with `--oui-backdrop-blur`. */\n backdropBlur?: DialogBackdropBlur;\n /** Blur the dialog or drawer this one opens from, instead of showing no backdrop. */\n nestedBackdrop?: boolean;\n}\n\nfunction AlertDialogContent({\n size = 'sm',\n backdropBlur = 'md',\n nestedBackdrop = false,\n className,\n ref,\n ...props\n}: AlertDialogContentProps) {\n const container = usePortalContainer();\n return (\n <BaseAlertDialog.Portal container={container}>\n <BaseAlertDialog.Backdrop\n className=\"oui-dialog__backdrop\"\n data-blur={backdropBlur}\n data-show-nested={nestedBackdrop || undefined}\n />\n <BaseAlertDialog.Popup\n ref={ref}\n className={withClass('oui-dialog', className)}\n data-size={size}\n data-placement=\"center\"\n {...props}\n />\n </BaseAlertDialog.Portal>\n );\n}\n\nfunction AlertDialogTitle({ className, ref, ...props }: BaseAlertDialog.Title.Props) {\n return <BaseAlertDialog.Title ref={ref} className={withClass('oui-dialog__title', className)} {...props} />;\n}\n\nfunction AlertDialogDescription({ className, ref, ...props }: BaseAlertDialog.Description.Props) {\n return (\n <BaseAlertDialog.Description ref={ref} className={withClass('oui-dialog__description', className)} {...props} />\n );\n}\n\n/** Confirmation dialog that requires an explicit choice (no outside-click dismissal). */\nexport const AlertDialog = {\n Root: BaseAlertDialog.Root,\n Trigger: BaseAlertDialog.Trigger,\n Content: AlertDialogContent,\n Header: DialogHeader,\n Title: AlertDialogTitle,\n Description: AlertDialogDescription,\n Body: DialogBody,\n Footer: DialogFooter,\n Close: BaseAlertDialog.Close,\n};\n"],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ export interface DrawerProps {
|
|
|
10
10
|
defaultOpen?: boolean;
|
|
11
11
|
/** Called when the drawer opens or closes. */
|
|
12
12
|
onOpenChange?: (open: boolean) => void;
|
|
13
|
+
/** Called once the open or close transition has finished, e.g. to unmount the drawer after it slid out. */
|
|
14
|
+
onOpenChangeComplete?: (open: boolean) => void;
|
|
13
15
|
/** Element that opens the drawer, e.g. `<Button>Details</Button>`. Omit when `open` is controlled. */
|
|
14
16
|
trigger?: React.ReactElement;
|
|
15
17
|
/** Header title; also the drawer's accessible name. */
|
|
@@ -49,4 +51,4 @@ export interface DrawerProps {
|
|
|
49
51
|
* pinned header, scrolling body, optional pinned footer. For a free-form
|
|
50
52
|
* sheet use `Dialog.Content` with `placement`.
|
|
51
53
|
*/
|
|
52
|
-
export declare function Drawer({ open: openProp, defaultOpen, onOpenChange, trigger, title, eyebrow, description, actions, footer, side, size, dismissible, modal, backdropBlur, closeLabel, className, bodyProps, children, ref, }: DrawerProps): React.JSX.Element;
|
|
54
|
+
export declare function Drawer({ open: openProp, defaultOpen, onOpenChange, onOpenChangeComplete, trigger, title, eyebrow, description, actions, footer, side, size, dismissible, modal, backdropBlur, closeLabel, className, bodyProps, children, ref, }: DrawerProps): React.JSX.Element;
|
|
@@ -14,8 +14,8 @@ import { Dialog } from "@base-ui/react/dialog";
|
|
|
14
14
|
* sheet use `Dialog.Content` with `placement`.
|
|
15
15
|
*/
|
|
16
16
|
function Drawer(t0) {
|
|
17
|
-
const $ = c(
|
|
18
|
-
const { open: openProp, defaultOpen: t1, onOpenChange, trigger, title, eyebrow, description, actions, footer, side: t2, size: t3, dismissible: t4, modal: t5, backdropBlur: t6, closeLabel: t7, className, bodyProps, children, ref } = t0;
|
|
17
|
+
const $ = c(59);
|
|
18
|
+
const { open: openProp, defaultOpen: t1, onOpenChange, onOpenChangeComplete, trigger, title, eyebrow, description, actions, footer, side: t2, size: t3, dismissible: t4, modal: t5, backdropBlur: t6, closeLabel: t7, className, bodyProps, children, ref } = t0;
|
|
19
19
|
const defaultOpen = t1 === void 0 ? false : t1;
|
|
20
20
|
const side = t2 === void 0 ? "right" : t2;
|
|
21
21
|
const size = t3 === void 0 ? "md" : t3;
|
|
@@ -208,20 +208,22 @@ function Drawer(t0) {
|
|
|
208
208
|
$[51] = t27;
|
|
209
209
|
} else t27 = $[51];
|
|
210
210
|
let t28;
|
|
211
|
-
if ($[52] !== modal || $[53] !==
|
|
211
|
+
if ($[52] !== modal || $[53] !== onOpenChangeComplete || $[54] !== open || $[55] !== t27 || $[56] !== t8 || $[57] !== t9) {
|
|
212
212
|
t28 = /* @__PURE__ */ jsxs(Dialog.Root, {
|
|
213
213
|
open,
|
|
214
214
|
modal,
|
|
215
|
+
onOpenChangeComplete,
|
|
215
216
|
onOpenChange: t8,
|
|
216
217
|
children: [t9, t27]
|
|
217
218
|
});
|
|
218
219
|
$[52] = modal;
|
|
219
|
-
$[53] =
|
|
220
|
-
$[54] =
|
|
221
|
-
$[55] =
|
|
222
|
-
$[56] =
|
|
223
|
-
$[57] =
|
|
224
|
-
|
|
220
|
+
$[53] = onOpenChangeComplete;
|
|
221
|
+
$[54] = open;
|
|
222
|
+
$[55] = t27;
|
|
223
|
+
$[56] = t8;
|
|
224
|
+
$[57] = t9;
|
|
225
|
+
$[58] = t28;
|
|
226
|
+
} else t28 = $[58];
|
|
225
227
|
return t28;
|
|
226
228
|
}
|
|
227
229
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.js","names":["React","Dialog","BaseDialog","cx","usePortalContainer","XIcon","IconButton","DialogBackdropBlur","DrawerSize","DrawerProps","ref","Ref","HTMLDivElement","open","defaultOpen","onOpenChange","trigger","ReactElement","title","ReactNode","eyebrow","description","actions","footer","side","size","dismissible","modal","backdropBlur","closeLabel","className","bodyProps","HTMLAttributes","children","Drawer","t0","$","_c","openProp","t1","t2","t3","t4","t5","t6","t7","undefined","inner","setInner","useState","container","t8","next","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","Symbol","for","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","_c","BaseDialog"],"sources":["../../../src/components/drawer/Drawer.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Dialog as BaseDialog } from '@base-ui/react/dialog';\nimport { cx } from '../../utils/cx';\nimport { usePortalContainer } from '../../utils/portal';\nimport { XIcon } from '../../icons';\nimport { IconButton } from '../button/Button';\nimport type { DialogBackdropBlur } from '../dialog/Dialog';\n\nexport type DrawerSize = 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface DrawerProps {\n /** Ref to the drawer panel. */\n ref?: React.Ref<HTMLDivElement>;\n /** Whether the drawer is open (controlled). */\n open?: boolean;\n /** Initial state when uncontrolled. */\n defaultOpen?: boolean;\n /** Called when the drawer opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Element that opens the drawer, e.g. `<Button>Details</Button>`. Omit when `open` is controlled. */\n trigger?: React.ReactElement;\n /** Header title; also the drawer's accessible name. */\n title: React.ReactNode;\n /** Small label above the title, e.g. the record type. */\n eyebrow?: React.ReactNode;\n /** Supporting text under the title. */\n description?: React.ReactNode;\n /** Header content next to the close button (edit, delete, a menu…). */\n actions?: React.ReactNode;\n /** Pinned to the bottom, for form buttons. */\n footer?: React.ReactNode;\n /** Edge the drawer slides in from. */\n side?: 'right' | 'left';\n /** Width: sm 24rem, md 32rem (default), lg 48rem, xl 60rem. Override with `--oui-drawer-width`. */\n size?: DrawerSize;\n /**\n * Set to `false` to block Esc, outside clicks and the close button, e.g.\n * while a form inside is saving.\n */\n dismissible?: boolean;\n /** `false` leaves the page behind interactive and drops the backdrop. */\n modal?: boolean;\n /** How strongly the page behind a modal drawer is blurred. Override the radius with `--oui-backdrop-blur`. */\n backdropBlur?: DialogBackdropBlur;\n /** Accessible name of the close button. */\n closeLabel?: string;\n /** Class name for the drawer panel. */\n className?: string;\n /** Props for the scrolling content area. */\n bodyProps?: React.HTMLAttributes<HTMLDivElement>;\n /** Drawer body content. */\n children?: React.ReactNode;\n}\n\n/**\n * Side panel for inspecting or editing a record without leaving the page:\n * pinned header, scrolling body, optional pinned footer. For a free-form\n * sheet use `Dialog.Content` with `placement`.\n */\nexport function Drawer({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n trigger,\n title,\n eyebrow,\n description,\n actions,\n footer,\n side = 'right',\n size = 'md',\n dismissible = true,\n modal = true,\n backdropBlur = 'md',\n closeLabel = 'Close',\n className,\n bodyProps,\n children,\n ref,\n}: DrawerProps) {\n const [inner, setInner] = React.useState(defaultOpen);\n const open = openProp ?? inner;\n const container = usePortalContainer();\n\n return (\n <BaseDialog.Root\n open={open}\n modal={modal}\n onOpenChange={(next) => {\n if (!next && !dismissible) return;\n setInner(next);\n onOpenChange?.(next);\n }}\n >\n {trigger && <BaseDialog.Trigger render={trigger} />}\n <BaseDialog.Portal container={container}>\n {modal && <BaseDialog.Backdrop className=\"oui-dialog__backdrop\" data-blur={backdropBlur} />}\n <BaseDialog.Popup ref={ref} className={cx('oui-drawer', className)} data-side={side} data-size={size}>\n <header className=\"oui-drawer__header\">\n <div className=\"oui-drawer__heading\">\n {eyebrow && <div className=\"oui-drawer__eyebrow\">{eyebrow}</div>}\n <BaseDialog.Title className=\"oui-drawer__title\">{title}</BaseDialog.Title>\n {description && (\n <BaseDialog.Description className=\"oui-drawer__description\">{description}</BaseDialog.Description>\n )}\n </div>\n <div className=\"oui-drawer__actions\">\n {actions}\n <BaseDialog.Close render={<IconButton aria-label={closeLabel} disabled={!dismissible} />}>\n <XIcon />\n </BaseDialog.Close>\n </div>\n </header>\n <div {...bodyProps} className={cx('oui-drawer__body', bodyProps?.className)}>\n {children}\n </div>\n {footer && <footer className=\"oui-drawer__footer\">{footer}</footer>}\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Drawer.js","names":["React","Dialog","BaseDialog","cx","usePortalContainer","XIcon","IconButton","DialogBackdropBlur","DrawerSize","DrawerProps","ref","Ref","HTMLDivElement","open","defaultOpen","onOpenChange","onOpenChangeComplete","trigger","ReactElement","title","ReactNode","eyebrow","description","actions","footer","side","size","dismissible","modal","backdropBlur","closeLabel","className","bodyProps","HTMLAttributes","children","Drawer","t0","$","_c","openProp","t1","t2","t3","t4","t5","t6","t7","undefined","inner","setInner","useState","container","t8","next","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","Symbol","for","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","_c","BaseDialog"],"sources":["../../../src/components/drawer/Drawer.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Dialog as BaseDialog } from '@base-ui/react/dialog';\nimport { cx } from '../../utils/cx';\nimport { usePortalContainer } from '../../utils/portal';\nimport { XIcon } from '../../icons';\nimport { IconButton } from '../button/Button';\nimport type { DialogBackdropBlur } from '../dialog/Dialog';\n\nexport type DrawerSize = 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface DrawerProps {\n /** Ref to the drawer panel. */\n ref?: React.Ref<HTMLDivElement>;\n /** Whether the drawer is open (controlled). */\n open?: boolean;\n /** Initial state when uncontrolled. */\n defaultOpen?: boolean;\n /** Called when the drawer opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Called once the open or close transition has finished, e.g. to unmount the drawer after it slid out. */\n onOpenChangeComplete?: (open: boolean) => void;\n /** Element that opens the drawer, e.g. `<Button>Details</Button>`. Omit when `open` is controlled. */\n trigger?: React.ReactElement;\n /** Header title; also the drawer's accessible name. */\n title: React.ReactNode;\n /** Small label above the title, e.g. the record type. */\n eyebrow?: React.ReactNode;\n /** Supporting text under the title. */\n description?: React.ReactNode;\n /** Header content next to the close button (edit, delete, a menu…). */\n actions?: React.ReactNode;\n /** Pinned to the bottom, for form buttons. */\n footer?: React.ReactNode;\n /** Edge the drawer slides in from. */\n side?: 'right' | 'left';\n /** Width: sm 24rem, md 32rem (default), lg 48rem, xl 60rem. Override with `--oui-drawer-width`. */\n size?: DrawerSize;\n /**\n * Set to `false` to block Esc, outside clicks and the close button, e.g.\n * while a form inside is saving.\n */\n dismissible?: boolean;\n /** `false` leaves the page behind interactive and drops the backdrop. */\n modal?: boolean;\n /** How strongly the page behind a modal drawer is blurred. Override the radius with `--oui-backdrop-blur`. */\n backdropBlur?: DialogBackdropBlur;\n /** Accessible name of the close button. */\n closeLabel?: string;\n /** Class name for the drawer panel. */\n className?: string;\n /** Props for the scrolling content area. */\n bodyProps?: React.HTMLAttributes<HTMLDivElement>;\n /** Drawer body content. */\n children?: React.ReactNode;\n}\n\n/**\n * Side panel for inspecting or editing a record without leaving the page:\n * pinned header, scrolling body, optional pinned footer. For a free-form\n * sheet use `Dialog.Content` with `placement`.\n */\nexport function Drawer({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n onOpenChangeComplete,\n trigger,\n title,\n eyebrow,\n description,\n actions,\n footer,\n side = 'right',\n size = 'md',\n dismissible = true,\n modal = true,\n backdropBlur = 'md',\n closeLabel = 'Close',\n className,\n bodyProps,\n children,\n ref,\n}: DrawerProps) {\n const [inner, setInner] = React.useState(defaultOpen);\n const open = openProp ?? inner;\n const container = usePortalContainer();\n\n return (\n <BaseDialog.Root\n open={open}\n modal={modal}\n onOpenChangeComplete={onOpenChangeComplete}\n onOpenChange={(next) => {\n if (!next && !dismissible) return;\n setInner(next);\n onOpenChange?.(next);\n }}\n >\n {trigger && <BaseDialog.Trigger render={trigger} />}\n <BaseDialog.Portal container={container}>\n {modal && <BaseDialog.Backdrop className=\"oui-dialog__backdrop\" data-blur={backdropBlur} />}\n <BaseDialog.Popup ref={ref} className={cx('oui-drawer', className)} data-side={side} data-size={size}>\n <header className=\"oui-drawer__header\">\n <div className=\"oui-drawer__heading\">\n {eyebrow && <div className=\"oui-drawer__eyebrow\">{eyebrow}</div>}\n <BaseDialog.Title className=\"oui-drawer__title\">{title}</BaseDialog.Title>\n {description && (\n <BaseDialog.Description className=\"oui-drawer__description\">{description}</BaseDialog.Description>\n )}\n </div>\n <div className=\"oui-drawer__actions\">\n {actions}\n <BaseDialog.Close render={<IconButton aria-label={closeLabel} disabled={!dismissible} />}>\n <XIcon />\n </BaseDialog.Close>\n </div>\n </header>\n <div {...bodyProps} className={cx('oui-drawer__body', bodyProps?.className)}>\n {children}\n </div>\n {footer && <footer className=\"oui-drawer__footer\">{footer}</footer>}\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n );\n}\n"],"mappings":"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"}
|
|
@@ -50,6 +50,11 @@ export interface SelectProps extends RootProps {
|
|
|
50
50
|
error?: React.ReactNode;
|
|
51
51
|
/** Text shown while nothing is selected. */
|
|
52
52
|
placeholder?: React.ReactNode;
|
|
53
|
+
/**
|
|
54
|
+
* Adds a first option for "no choice", such as "All" in a filter. Choosing it
|
|
55
|
+
* reports `null`, and it shows while the value is `null`.
|
|
56
|
+
*/
|
|
57
|
+
allLabel?: React.ReactNode;
|
|
53
58
|
/** Control height. */
|
|
54
59
|
size?: ControlSize;
|
|
55
60
|
/** Props passed to the trigger button (className, style, aria-*). */
|
|
@@ -57,7 +62,7 @@ export interface SelectProps extends RootProps {
|
|
|
57
62
|
/** Props for the popup (side, align, className…). */
|
|
58
63
|
contentProps?: Omit<SelectContentProps, 'children'>;
|
|
59
64
|
}
|
|
60
|
-
declare function SelectComponent({ items, label, description, error, placeholder, size, triggerProps, contentProps, name, disabled, required, ...rootProps }: SelectProps): React.JSX.Element;
|
|
65
|
+
declare function SelectComponent({ items, label, description, error, placeholder, allLabel, size, triggerProps, contentProps, name, disabled, required, ...rootProps }: SelectProps): React.JSX.Element;
|
|
61
66
|
/**
|
|
62
67
|
* `<Select items={…} />` renders a complete labelled select. For full control
|
|
63
68
|
* compose the parts: `Select.Root`, `Select.Trigger`, `Select.Content`,
|