@optimum-intelligence/opti-ui 0.5.2 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/dist/components/badge/Badge.d.ts +4 -2
  3. package/dist/components/badge/Badge.js.map +1 -1
  4. package/dist/components/button/Button.d.ts +6 -1
  5. package/dist/components/button/Button.js +31 -26
  6. package/dist/components/button/Button.js.map +1 -1
  7. package/dist/components/data-table/DataTable.d.ts +14 -2
  8. package/dist/components/data-table/DataTable.js +113 -98
  9. package/dist/components/data-table/DataTable.js.map +1 -1
  10. package/dist/components/data-table/DataTableFilters.d.ts +1 -1
  11. package/dist/components/data-table/DataTableFilters.js +85 -44
  12. package/dist/components/data-table/DataTableFilters.js.map +1 -1
  13. package/dist/components/data-table/export.d.ts +3 -0
  14. package/dist/components/data-table/export.js +31 -0
  15. package/dist/components/data-table/export.js.map +1 -0
  16. package/dist/components/data-table/types.d.ts +32 -5
  17. package/dist/components/data-table/useDataTable.js +18 -4
  18. package/dist/components/data-table/useDataTable.js.map +1 -1
  19. package/dist/components/description-list/DescriptionList.d.ts +29 -0
  20. package/dist/components/description-list/DescriptionList.js +125 -0
  21. package/dist/components/description-list/DescriptionList.js.map +1 -0
  22. package/dist/components/dialog/ConfirmDialog.d.ts +59 -0
  23. package/dist/components/dialog/ConfirmDialog.js +165 -0
  24. package/dist/components/dialog/ConfirmDialog.js.map +1 -0
  25. package/dist/components/dialog/Dialog.d.ts +9 -2
  26. package/dist/components/dialog/Dialog.js +103 -89
  27. package/dist/components/dialog/Dialog.js.map +1 -1
  28. package/dist/components/drawer/Drawer.d.ts +3 -1
  29. package/dist/components/drawer/Drawer.js +11 -9
  30. package/dist/components/drawer/Drawer.js.map +1 -1
  31. package/dist/components/select/Select.d.ts +6 -1
  32. package/dist/components/select/Select.js +110 -92
  33. package/dist/components/select/Select.js.map +1 -1
  34. package/dist/components.json +259 -20
  35. package/dist/icons/index.d.ts +4 -0
  36. package/dist/icons/index.js +6 -1
  37. package/dist/icons/index.js.map +1 -1
  38. package/dist/index.d.ts +2 -0
  39. package/dist/index.js +5 -3
  40. package/dist/llms-full.txt +103 -5
  41. package/dist/llms.txt +3 -0
  42. package/dist/opti-ui.css +434 -19
  43. package/package.json +6 -2
@@ -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(34);
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 t6 = backdropProps?.className;
55
- let t7;
56
- if ($[11] !== t6) {
57
- t7 = withClass("oui-dialog__backdrop", t6);
58
- $[11] = t6;
59
- $[12] = t7;
60
- } else t7 = $[12];
61
- let t8;
62
- if ($[13] !== backdropBlur || $[14] !== backdropProps || $[15] !== t7) {
63
- t8 = /* @__PURE__ */ jsx(Dialog.Backdrop, {
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: t7
72
+ className: t9
67
73
  });
68
- $[13] = backdropBlur;
69
- $[14] = backdropProps;
70
- $[15] = t7;
71
- $[16] = t8;
72
- } else t8 = $[16];
73
- let t9;
74
- if ($[17] !== className) {
75
- t9 = withClass("oui-dialog", className);
76
- $[17] = className;
77
- $[18] = t9;
78
- } else t9 = $[18];
79
- let t10;
80
- if ($[19] !== closeLabel || $[20] !== showClose) {
81
- t10 = showClose && /* @__PURE__ */ jsx(Dialog.Close, {
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
- $[19] = closeLabel;
87
- $[20] = showClose;
88
- $[21] = t10;
89
- } else t10 = $[21];
90
- let t11;
91
- if ($[22] !== children || $[23] !== placement || $[24] !== props || $[25] !== ref || $[26] !== size || $[27] !== t10 || $[28] !== t9) {
92
- t11 = /* @__PURE__ */ jsxs(Dialog.Popup, {
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: t9,
101
+ className: t11,
95
102
  "data-size": size,
96
103
  "data-placement": placement,
97
104
  ...props,
98
- children: [children, t10]
105
+ children: [children, t12]
99
106
  });
100
- $[22] = children;
101
- $[23] = placement;
102
- $[24] = props;
103
- $[25] = ref;
104
- $[26] = size;
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
- } else t11 = $[29];
109
- let t12;
110
- if ($[30] !== container || $[31] !== t11 || $[32] !== t8) {
111
- t12 = /* @__PURE__ */ jsxs(Dialog.Portal, {
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: [t8, t11]
120
+ children: [t10, t13]
114
121
  });
115
- $[30] = container;
116
- $[31] = t11;
117
- $[32] = t8;
118
- $[33] = t12;
119
- } else t12 = $[33];
120
- return t12;
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(19);
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
- let t3;
240
- if ($[6] !== backdropBlur) {
241
- t3 = /* @__PURE__ */ jsx(AlertDialog.Backdrop, {
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
- $[6] = backdropBlur;
246
- $[7] = t3;
247
- } else t3 = $[7];
248
- let t4;
249
- if ($[8] !== className) {
250
- t4 = withClass("oui-dialog", className);
251
- $[8] = className;
252
- $[9] = t4;
253
- } else t4 = $[9];
254
- let t5;
255
- if ($[10] !== props || $[11] !== ref || $[12] !== size || $[13] !== t4) {
256
- t5 = /* @__PURE__ */ jsx(AlertDialog.Popup, {
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: t4,
272
+ className: t6,
259
273
  "data-size": size,
260
274
  "data-placement": "center",
261
275
  ...props
262
276
  });
263
- $[10] = props;
264
- $[11] = ref;
265
- $[12] = size;
266
- $[13] = t4;
267
- $[14] = t5;
268
- } else t5 = $[14];
269
- let t6;
270
- if ($[15] !== container || $[16] !== t3 || $[17] !== t5) {
271
- t6 = /* @__PURE__ */ jsxs(AlertDialog.Portal, {
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: [t3, t5]
287
+ children: [t5, t7]
274
288
  });
275
- $[15] = container;
276
- $[16] = t3;
277
- $[17] = t5;
278
- $[18] = t6;
279
- } else t6 = $[18];
280
- return t6;
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(58);
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] !== open || $[54] !== t27 || $[55] !== t8 || $[56] !== t9) {
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] = open;
220
- $[54] = t27;
221
- $[55] = t8;
222
- $[56] = t9;
223
- $[57] = t28;
224
- } else t28 = $[57];
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`,