@optimum-intelligence/opti-ui 0.0.0-stage → 0.2.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 (174) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +161 -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 +111 -0
  46. package/dist/components/data-table/DataTable.js +444 -0
  47. package/dist/components/data-table/DataTable.js.map +1 -0
  48. package/dist/components/date-picker/DatePicker.d.ts +50 -0
  49. package/dist/components/date-picker/DatePicker.js +485 -0
  50. package/dist/components/date-picker/DatePicker.js.map +1 -0
  51. package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
  52. package/dist/components/date-picker/DateRangePicker.js +339 -0
  53. package/dist/components/date-picker/DateRangePicker.js.map +1 -0
  54. package/dist/components/date-picker/PickerField.d.ts +38 -0
  55. package/dist/components/date-picker/PickerField.js +238 -0
  56. package/dist/components/date-picker/PickerField.js.map +1 -0
  57. package/dist/components/dialog/Dialog.d.ts +70 -0
  58. package/dist/components/dialog/Dialog.js +354 -0
  59. package/dist/components/dialog/Dialog.js.map +1 -0
  60. package/dist/components/drawer/Drawer.d.ts +39 -0
  61. package/dist/components/drawer/Drawer.js +225 -0
  62. package/dist/components/drawer/Drawer.js.map +1 -0
  63. package/dist/components/empty-state/EmptyState.d.ts +12 -0
  64. package/dist/components/empty-state/EmptyState.js +116 -0
  65. package/dist/components/empty-state/EmptyState.js.map +1 -0
  66. package/dist/components/field/Field.d.ts +36 -0
  67. package/dist/components/field/Field.js +337 -0
  68. package/dist/components/field/Field.js.map +1 -0
  69. package/dist/components/file-upload/FileUpload.d.ts +91 -0
  70. package/dist/components/file-upload/FileUpload.js +714 -0
  71. package/dist/components/file-upload/FileUpload.js.map +1 -0
  72. package/dist/components/input/Input.d.ts +49 -0
  73. package/dist/components/input/Input.js +538 -0
  74. package/dist/components/input/Input.js.map +1 -0
  75. package/dist/components/link/Link.d.ts +17 -0
  76. package/dist/components/link/Link.js +91 -0
  77. package/dist/components/link/Link.js.map +1 -0
  78. package/dist/components/menu/Menu.d.ts +79 -0
  79. package/dist/components/menu/Menu.js +615 -0
  80. package/dist/components/menu/Menu.js.map +1 -0
  81. package/dist/components/number-field/NumberField.d.ts +16 -0
  82. package/dist/components/number-field/NumberField.js +188 -0
  83. package/dist/components/number-field/NumberField.js.map +1 -0
  84. package/dist/components/pagination/Pagination.d.ts +34 -0
  85. package/dist/components/pagination/Pagination.js +244 -0
  86. package/dist/components/pagination/Pagination.js.map +1 -0
  87. package/dist/components/popover/Popover.d.ts +22 -0
  88. package/dist/components/popover/Popover.js +186 -0
  89. package/dist/components/popover/Popover.js.map +1 -0
  90. package/dist/components/preview-card/PreviewCard.d.ts +20 -0
  91. package/dist/components/preview-card/PreviewCard.js +114 -0
  92. package/dist/components/preview-card/PreviewCard.js.map +1 -0
  93. package/dist/components/progress/Progress.d.ts +20 -0
  94. package/dist/components/progress/Progress.js +169 -0
  95. package/dist/components/progress/Progress.js.map +1 -0
  96. package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
  97. package/dist/components/scroll-area/ScrollArea.js +112 -0
  98. package/dist/components/scroll-area/ScrollArea.js.map +1 -0
  99. package/dist/components/search-input/SearchInput.d.ts +14 -0
  100. package/dist/components/search-input/SearchInput.js +114 -0
  101. package/dist/components/search-input/SearchInput.js.map +1 -0
  102. package/dist/components/select/Select.d.ts +66 -0
  103. package/dist/components/select/Select.js +601 -0
  104. package/dist/components/select/Select.js.map +1 -0
  105. package/dist/components/separator/Separator.d.ts +4 -0
  106. package/dist/components/separator/Separator.js +46 -0
  107. package/dist/components/separator/Separator.js.map +1 -0
  108. package/dist/components/skeleton/Skeleton.d.ts +16 -0
  109. package/dist/components/skeleton/Skeleton.js +135 -0
  110. package/dist/components/skeleton/Skeleton.js.map +1 -0
  111. package/dist/components/slider/Slider.d.ts +11 -0
  112. package/dist/components/slider/Slider.js +107 -0
  113. package/dist/components/slider/Slider.js.map +1 -0
  114. package/dist/components/spinner/Spinner.d.ts +9 -0
  115. package/dist/components/spinner/Spinner.js +78 -0
  116. package/dist/components/spinner/Spinner.js.map +1 -0
  117. package/dist/components/stack/Stack.d.ts +23 -0
  118. package/dist/components/stack/Stack.js +79 -0
  119. package/dist/components/stack/Stack.js.map +1 -0
  120. package/dist/components/stat-card/StatCard.d.ts +22 -0
  121. package/dist/components/stat-card/StatCard.js +153 -0
  122. package/dist/components/stat-card/StatCard.js.map +1 -0
  123. package/dist/components/stepper/Stepper.d.ts +30 -0
  124. package/dist/components/stepper/Stepper.js +131 -0
  125. package/dist/components/stepper/Stepper.js.map +1 -0
  126. package/dist/components/table/Table.d.ts +53 -0
  127. package/dist/components/table/Table.js +221 -0
  128. package/dist/components/table/Table.js.map +1 -0
  129. package/dist/components/tabs/Tabs.d.ts +19 -0
  130. package/dist/components/tabs/Tabs.js +183 -0
  131. package/dist/components/tabs/Tabs.js.map +1 -0
  132. package/dist/components/tag/Tag.d.ts +22 -0
  133. package/dist/components/tag/Tag.js +121 -0
  134. package/dist/components/tag/Tag.js.map +1 -0
  135. package/dist/components/toast/Toast.d.ts +34 -0
  136. package/dist/components/toast/Toast.js +187 -0
  137. package/dist/components/toast/Toast.js.map +1 -0
  138. package/dist/components/toggle/Toggle.d.ts +31 -0
  139. package/dist/components/toggle/Toggle.js +197 -0
  140. package/dist/components/toggle/Toggle.js.map +1 -0
  141. package/dist/components/toolbar/Toolbar.d.ts +21 -0
  142. package/dist/components/toolbar/Toolbar.js +239 -0
  143. package/dist/components/toolbar/Toolbar.js.map +1 -0
  144. package/dist/components/tooltip/Tooltip.d.ts +33 -0
  145. package/dist/components/tooltip/Tooltip.js +182 -0
  146. package/dist/components/tooltip/Tooltip.js.map +1 -0
  147. package/dist/components/typography/Typography.d.ts +32 -0
  148. package/dist/components/typography/Typography.js +183 -0
  149. package/dist/components/typography/Typography.js.map +1 -0
  150. package/dist/fonts.css +3 -0
  151. package/dist/icons/index.d.ts +125 -0
  152. package/dist/icons/index.js +174 -0
  153. package/dist/icons/index.js.map +1 -0
  154. package/dist/index.d.ts +53 -0
  155. package/dist/index.js +56 -0
  156. package/dist/opti-ui.css +5365 -0
  157. package/dist/theme/ThemeProvider.d.ts +22 -0
  158. package/dist/theme/ThemeProvider.js +115 -0
  159. package/dist/theme/ThemeProvider.js.map +1 -0
  160. package/dist/theme/index.d.ts +2 -0
  161. package/dist/utils/cx.d.ts +10 -0
  162. package/dist/utils/cx.js +18 -0
  163. package/dist/utils/cx.js.map +1 -0
  164. package/dist/utils/index.d.ts +2 -0
  165. package/dist/utils/portal.d.ts +8 -0
  166. package/dist/utils/portal.js +16 -0
  167. package/dist/utils/portal.js.map +1 -0
  168. package/dist/utils/primitive.d.ts +13 -0
  169. package/dist/utils/primitive.js +61 -0
  170. package/dist/utils/primitive.js.map +1 -0
  171. package/dist/utils/search.d.ts +4 -0
  172. package/dist/utils/search.js +15 -0
  173. package/dist/utils/search.js.map +1 -0
  174. package/package.json +71 -4
@@ -0,0 +1,70 @@
1
+ import { Dialog as BaseDialog } from '@base-ui/react/dialog';
2
+ import { AlertDialog as BaseAlertDialog } from '@base-ui/react/alert-dialog';
3
+ export type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
4
+ /** `center` is a modal; the edges turn the dialog into a sheet / drawer. */
5
+ export type DialogPlacement = 'center' | 'right' | 'left' | 'bottom';
6
+ export interface DialogContentProps extends BaseDialog.Popup.Props {
7
+ size?: DialogSize;
8
+ placement?: DialogPlacement;
9
+ /** Render the corner close button. */
10
+ showClose?: boolean;
11
+ closeLabel?: string;
12
+ backdropProps?: BaseDialog.Backdrop.Props;
13
+ }
14
+ declare function DialogContent({ size, placement, showClose, closeLabel, backdropProps, className, children, ref, ...props }: DialogContentProps): import("react").JSX.Element;
15
+ declare function DialogTitle({ className, ref, ...props }: BaseDialog.Title.Props): import("react").JSX.Element;
16
+ declare function DialogDescription({ className, ref, ...props }: BaseDialog.Description.Props): import("react").JSX.Element;
17
+ /**
18
+ * Modal dialog and side sheet. Compose:
19
+ * `Dialog.Root` › `Dialog.Trigger` + `Dialog.Content` › `Dialog.Header` (`Title`, `Description`), `Dialog.Body`, `Dialog.Footer`.
20
+ * Use `render={<Button />}` on `Dialog.Trigger` / `Dialog.Close` to style them as buttons.
21
+ */
22
+ export declare const Dialog: {
23
+ Root: <Payload>(props: BaseDialog.Root.Props<Payload>) => React.JSX.Element;
24
+ Trigger: BaseDialog.Trigger;
25
+ Content: typeof DialogContent;
26
+ Header: {
27
+ (props: import("../../utils/primitive").PrimitiveProps<"div">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
28
+ displayName: string;
29
+ };
30
+ Title: typeof DialogTitle;
31
+ Description: typeof DialogDescription;
32
+ Body: {
33
+ (props: import("../../utils/primitive").PrimitiveProps<"div">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
34
+ displayName: string;
35
+ };
36
+ Footer: {
37
+ (props: import("../../utils/primitive").PrimitiveProps<"div">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
38
+ displayName: string;
39
+ };
40
+ Close: import("react").ForwardRefExoticComponent<Omit<import("@base-ui/react").DialogCloseProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
41
+ createHandle: typeof BaseDialog.createHandle;
42
+ };
43
+ export interface AlertDialogContentProps extends BaseAlertDialog.Popup.Props {
44
+ size?: Exclude<DialogSize, 'full'>;
45
+ }
46
+ declare function AlertDialogContent({ size, className, ref, ...props }: AlertDialogContentProps): import("react").JSX.Element;
47
+ declare function AlertDialogTitle({ className, ref, ...props }: BaseAlertDialog.Title.Props): import("react").JSX.Element;
48
+ declare function AlertDialogDescription({ className, ref, ...props }: BaseAlertDialog.Description.Props): import("react").JSX.Element;
49
+ /** Confirmation dialog that requires an explicit choice (no outside-click dismissal). */
50
+ export declare const AlertDialog: {
51
+ Root: typeof BaseAlertDialog.Root;
52
+ Trigger: BaseAlertDialog.Trigger;
53
+ Content: typeof AlertDialogContent;
54
+ Header: {
55
+ (props: import("../../utils/primitive").PrimitiveProps<"div">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
56
+ displayName: string;
57
+ };
58
+ Title: typeof AlertDialogTitle;
59
+ Description: typeof AlertDialogDescription;
60
+ Body: {
61
+ (props: import("../../utils/primitive").PrimitiveProps<"div">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
62
+ displayName: string;
63
+ };
64
+ Footer: {
65
+ (props: import("../../utils/primitive").PrimitiveProps<"div">): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
66
+ displayName: string;
67
+ };
68
+ Close: import("react").ForwardRefExoticComponent<Omit<import("@base-ui/react").DialogCloseProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
69
+ };
70
+ export {};
@@ -0,0 +1,354 @@
1
+ "use client";
2
+ import { usePortalContainer } from "../../utils/portal.js";
3
+ import { withClass } from "../../utils/cx.js";
4
+ import { createPrimitive } from "../../utils/primitive.js";
5
+ import { XIcon } from "../../icons/index.js";
6
+ import { c } from "react/compiler-runtime";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { Dialog } from "@base-ui/react/dialog";
9
+ import { AlertDialog } from "@base-ui/react/alert-dialog";
10
+ //#region src/components/dialog/Dialog.tsx
11
+ function DialogContent(t0) {
12
+ const $ = c(32);
13
+ let backdropProps;
14
+ let children;
15
+ let className;
16
+ let props;
17
+ let ref;
18
+ let t1;
19
+ let t2;
20
+ let t3;
21
+ let t4;
22
+ if ($[0] !== t0) {
23
+ ({size: t1, placement: t2, showClose: t3, closeLabel: t4, backdropProps, className, children, ref, ...props} = t0);
24
+ $[0] = t0;
25
+ $[1] = backdropProps;
26
+ $[2] = children;
27
+ $[3] = className;
28
+ $[4] = props;
29
+ $[5] = ref;
30
+ $[6] = t1;
31
+ $[7] = t2;
32
+ $[8] = t3;
33
+ $[9] = t4;
34
+ } else {
35
+ backdropProps = $[1];
36
+ children = $[2];
37
+ className = $[3];
38
+ props = $[4];
39
+ ref = $[5];
40
+ t1 = $[6];
41
+ t2 = $[7];
42
+ t3 = $[8];
43
+ t4 = $[9];
44
+ }
45
+ const size = t1 === void 0 ? "md" : t1;
46
+ const placement = t2 === void 0 ? "center" : t2;
47
+ const showClose = t3 === void 0 ? true : t3;
48
+ const closeLabel = t4 === void 0 ? "Close" : t4;
49
+ const container = usePortalContainer();
50
+ const t5 = backdropProps?.className;
51
+ let t6;
52
+ if ($[10] !== t5) {
53
+ t6 = withClass("oui-dialog__backdrop", t5);
54
+ $[10] = t5;
55
+ $[11] = t6;
56
+ } else t6 = $[11];
57
+ let t7;
58
+ if ($[12] !== backdropProps || $[13] !== t6) {
59
+ t7 = /* @__PURE__ */ jsx(Dialog.Backdrop, {
60
+ ...backdropProps,
61
+ className: t6
62
+ });
63
+ $[12] = backdropProps;
64
+ $[13] = t6;
65
+ $[14] = t7;
66
+ } else t7 = $[14];
67
+ let t8;
68
+ if ($[15] !== className) {
69
+ t8 = withClass("oui-dialog", className);
70
+ $[15] = className;
71
+ $[16] = t8;
72
+ } else t8 = $[16];
73
+ let t9;
74
+ if ($[17] !== closeLabel || $[18] !== showClose) {
75
+ t9 = showClose && /* @__PURE__ */ jsx(Dialog.Close, {
76
+ className: "oui-dialog__close",
77
+ "aria-label": closeLabel,
78
+ children: /* @__PURE__ */ jsx(XIcon, {})
79
+ });
80
+ $[17] = closeLabel;
81
+ $[18] = showClose;
82
+ $[19] = t9;
83
+ } else t9 = $[19];
84
+ let t10;
85
+ if ($[20] !== children || $[21] !== placement || $[22] !== props || $[23] !== ref || $[24] !== size || $[25] !== t8 || $[26] !== t9) {
86
+ t10 = /* @__PURE__ */ jsxs(Dialog.Popup, {
87
+ ref,
88
+ className: t8,
89
+ "data-size": size,
90
+ "data-placement": placement,
91
+ ...props,
92
+ children: [children, t9]
93
+ });
94
+ $[20] = children;
95
+ $[21] = placement;
96
+ $[22] = props;
97
+ $[23] = ref;
98
+ $[24] = size;
99
+ $[25] = t8;
100
+ $[26] = t9;
101
+ $[27] = t10;
102
+ } else t10 = $[27];
103
+ let t11;
104
+ if ($[28] !== container || $[29] !== t10 || $[30] !== t7) {
105
+ t11 = /* @__PURE__ */ jsxs(Dialog.Portal, {
106
+ container,
107
+ children: [t7, t10]
108
+ });
109
+ $[28] = container;
110
+ $[29] = t10;
111
+ $[30] = t7;
112
+ $[31] = t11;
113
+ } else t11 = $[31];
114
+ return t11;
115
+ }
116
+ function DialogTitle(t0) {
117
+ const $ = c(10);
118
+ let className;
119
+ let props;
120
+ let ref;
121
+ if ($[0] !== t0) {
122
+ ({className, ref, ...props} = t0);
123
+ $[0] = t0;
124
+ $[1] = className;
125
+ $[2] = props;
126
+ $[3] = ref;
127
+ } else {
128
+ className = $[1];
129
+ props = $[2];
130
+ ref = $[3];
131
+ }
132
+ let t1;
133
+ if ($[4] !== className) {
134
+ t1 = withClass("oui-dialog__title", className);
135
+ $[4] = className;
136
+ $[5] = t1;
137
+ } else t1 = $[5];
138
+ let t2;
139
+ if ($[6] !== props || $[7] !== ref || $[8] !== t1) {
140
+ t2 = /* @__PURE__ */ jsx(Dialog.Title, {
141
+ ref,
142
+ className: t1,
143
+ ...props
144
+ });
145
+ $[6] = props;
146
+ $[7] = ref;
147
+ $[8] = t1;
148
+ $[9] = t2;
149
+ } else t2 = $[9];
150
+ return t2;
151
+ }
152
+ function DialogDescription(t0) {
153
+ const $ = c(10);
154
+ let className;
155
+ let props;
156
+ let ref;
157
+ if ($[0] !== t0) {
158
+ ({className, ref, ...props} = t0);
159
+ $[0] = t0;
160
+ $[1] = className;
161
+ $[2] = props;
162
+ $[3] = ref;
163
+ } else {
164
+ className = $[1];
165
+ props = $[2];
166
+ ref = $[3];
167
+ }
168
+ let t1;
169
+ if ($[4] !== className) {
170
+ t1 = withClass("oui-dialog__description", className);
171
+ $[4] = className;
172
+ $[5] = t1;
173
+ } else t1 = $[5];
174
+ let t2;
175
+ if ($[6] !== props || $[7] !== ref || $[8] !== t1) {
176
+ t2 = /* @__PURE__ */ jsx(Dialog.Description, {
177
+ ref,
178
+ className: t1,
179
+ ...props
180
+ });
181
+ $[6] = props;
182
+ $[7] = ref;
183
+ $[8] = t1;
184
+ $[9] = t2;
185
+ } else t2 = $[9];
186
+ return t2;
187
+ }
188
+ var DialogHeader = createPrimitive("div", "oui-dialog__header", "DialogHeader");
189
+ var DialogBody = createPrimitive("div", "oui-dialog__body", "DialogBody");
190
+ var DialogFooter = createPrimitive("div", "oui-dialog__footer", "DialogFooter");
191
+ /**
192
+ * Modal dialog and side sheet. Compose:
193
+ * `Dialog.Root` › `Dialog.Trigger` + `Dialog.Content` › `Dialog.Header` (`Title`, `Description`), `Dialog.Body`, `Dialog.Footer`.
194
+ * Use `render={<Button />}` on `Dialog.Trigger` / `Dialog.Close` to style them as buttons.
195
+ */
196
+ var Dialog$1 = {
197
+ Root: Dialog.Root,
198
+ Trigger: Dialog.Trigger,
199
+ Content: DialogContent,
200
+ Header: DialogHeader,
201
+ Title: DialogTitle,
202
+ Description: DialogDescription,
203
+ Body: DialogBody,
204
+ Footer: DialogFooter,
205
+ Close: Dialog.Close,
206
+ createHandle: Dialog.createHandle
207
+ };
208
+ function AlertDialogContent(t0) {
209
+ const $ = c(16);
210
+ let className;
211
+ let props;
212
+ let ref;
213
+ let t1;
214
+ if ($[0] !== t0) {
215
+ ({size: t1, className, ref, ...props} = t0);
216
+ $[0] = t0;
217
+ $[1] = className;
218
+ $[2] = props;
219
+ $[3] = ref;
220
+ $[4] = t1;
221
+ } else {
222
+ className = $[1];
223
+ props = $[2];
224
+ ref = $[3];
225
+ t1 = $[4];
226
+ }
227
+ const size = t1 === void 0 ? "sm" : t1;
228
+ const container = usePortalContainer();
229
+ let t2;
230
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
231
+ t2 = /* @__PURE__ */ jsx(AlertDialog.Backdrop, { className: "oui-dialog__backdrop" });
232
+ $[5] = t2;
233
+ } else t2 = $[5];
234
+ let t3;
235
+ if ($[6] !== className) {
236
+ t3 = withClass("oui-dialog", className);
237
+ $[6] = className;
238
+ $[7] = t3;
239
+ } else t3 = $[7];
240
+ let t4;
241
+ if ($[8] !== props || $[9] !== ref || $[10] !== size || $[11] !== t3) {
242
+ t4 = /* @__PURE__ */ jsx(AlertDialog.Popup, {
243
+ ref,
244
+ className: t3,
245
+ "data-size": size,
246
+ "data-placement": "center",
247
+ ...props
248
+ });
249
+ $[8] = props;
250
+ $[9] = ref;
251
+ $[10] = size;
252
+ $[11] = t3;
253
+ $[12] = t4;
254
+ } else t4 = $[12];
255
+ let t5;
256
+ if ($[13] !== container || $[14] !== t4) {
257
+ t5 = /* @__PURE__ */ jsxs(AlertDialog.Portal, {
258
+ container,
259
+ children: [t2, t4]
260
+ });
261
+ $[13] = container;
262
+ $[14] = t4;
263
+ $[15] = t5;
264
+ } else t5 = $[15];
265
+ return t5;
266
+ }
267
+ function AlertDialogTitle(t0) {
268
+ const $ = c(10);
269
+ let className;
270
+ let props;
271
+ let ref;
272
+ if ($[0] !== t0) {
273
+ ({className, ref, ...props} = t0);
274
+ $[0] = t0;
275
+ $[1] = className;
276
+ $[2] = props;
277
+ $[3] = ref;
278
+ } else {
279
+ className = $[1];
280
+ props = $[2];
281
+ ref = $[3];
282
+ }
283
+ let t1;
284
+ if ($[4] !== className) {
285
+ t1 = withClass("oui-dialog__title", className);
286
+ $[4] = className;
287
+ $[5] = t1;
288
+ } else t1 = $[5];
289
+ let t2;
290
+ if ($[6] !== props || $[7] !== ref || $[8] !== t1) {
291
+ t2 = /* @__PURE__ */ jsx(AlertDialog.Title, {
292
+ ref,
293
+ className: t1,
294
+ ...props
295
+ });
296
+ $[6] = props;
297
+ $[7] = ref;
298
+ $[8] = t1;
299
+ $[9] = t2;
300
+ } else t2 = $[9];
301
+ return t2;
302
+ }
303
+ function AlertDialogDescription(t0) {
304
+ const $ = c(10);
305
+ let className;
306
+ let props;
307
+ let ref;
308
+ if ($[0] !== t0) {
309
+ ({className, ref, ...props} = t0);
310
+ $[0] = t0;
311
+ $[1] = className;
312
+ $[2] = props;
313
+ $[3] = ref;
314
+ } else {
315
+ className = $[1];
316
+ props = $[2];
317
+ ref = $[3];
318
+ }
319
+ let t1;
320
+ if ($[4] !== className) {
321
+ t1 = withClass("oui-dialog__description", className);
322
+ $[4] = className;
323
+ $[5] = t1;
324
+ } else t1 = $[5];
325
+ let t2;
326
+ if ($[6] !== props || $[7] !== ref || $[8] !== t1) {
327
+ t2 = /* @__PURE__ */ jsx(AlertDialog.Description, {
328
+ ref,
329
+ className: t1,
330
+ ...props
331
+ });
332
+ $[6] = props;
333
+ $[7] = ref;
334
+ $[8] = t1;
335
+ $[9] = t2;
336
+ } else t2 = $[9];
337
+ return t2;
338
+ }
339
+ /** Confirmation dialog that requires an explicit choice (no outside-click dismissal). */
340
+ var AlertDialog$1 = {
341
+ Root: AlertDialog.Root,
342
+ Trigger: AlertDialog.Trigger,
343
+ Content: AlertDialogContent,
344
+ Header: DialogHeader,
345
+ Title: AlertDialogTitle,
346
+ Description: AlertDialogDescription,
347
+ Body: DialogBody,
348
+ Footer: DialogFooter,
349
+ Close: AlertDialog.Close
350
+ };
351
+ //#endregion
352
+ export { AlertDialog$1 as AlertDialog, Dialog$1 as Dialog };
353
+
354
+ //# sourceMappingURL=Dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.js","names":["Dialog","BaseDialog","AlertDialog","BaseAlertDialog","withClass","createPrimitive","usePortalContainer","XIcon","DialogSize","DialogPlacement","DialogContentProps","Popup","Props","size","placement","showClose","closeLabel","backdropProps","Backdrop","DialogContent","t0","$","_c","children","className","props","ref","t1","t2","t3","t4","undefined","container","t5","t6","t7","t8","t9","t10","t11","DialogTitle","DialogDescription","DialogHeader","DialogBody","DialogFooter","Root","Trigger","Content","Header","Title","Description","Body","Footer","Close","createHandle","AlertDialogContentProps","Exclude","AlertDialogContent","Symbol","for","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\nexport interface DialogContentProps extends BaseDialog.Popup.Props {\n size?: DialogSize;\n placement?: DialogPlacement;\n /** Render the corner close button. */\n showClose?: boolean;\n closeLabel?: string;\n backdropProps?: BaseDialog.Backdrop.Props;\n}\n\nfunction DialogContent({\n size = 'md',\n placement = 'center',\n showClose = true,\n closeLabel = 'Close',\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 {...backdropProps} className={withClass('oui-dialog__backdrop', backdropProps?.className)} />\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 size?: Exclude<DialogSize, 'full'>;\n}\n\nfunction AlertDialogContent({ size = 'sm', className, ref, ...props }: AlertDialogContentProps) {\n const container = usePortalContainer();\n return (\n <BaseAlertDialog.Portal container={container}>\n <BaseAlertDialog.Backdrop className=\"oui-dialog__backdrop\" />\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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"}
@@ -0,0 +1,39 @@
1
+ import * as React from 'react';
2
+ export type DrawerSize = 'sm' | 'md' | 'lg' | 'xl';
3
+ export interface DrawerProps {
4
+ ref?: React.Ref<HTMLDivElement>;
5
+ open?: boolean;
6
+ defaultOpen?: boolean;
7
+ onOpenChange?: (open: boolean) => void;
8
+ /** Element that opens the drawer, e.g. `<Button>Details</Button>`. Omit when `open` is controlled. */
9
+ trigger?: React.ReactElement;
10
+ title: React.ReactNode;
11
+ /** Small label above the title, e.g. the record type. */
12
+ eyebrow?: React.ReactNode;
13
+ description?: React.ReactNode;
14
+ /** Header content next to the close button (edit, delete, a menu…). */
15
+ actions?: React.ReactNode;
16
+ /** Pinned to the bottom, for form buttons. */
17
+ footer?: React.ReactNode;
18
+ side?: 'right' | 'left';
19
+ /** Width: sm 24rem, md 32rem (default), lg 48rem, xl 60rem. Override with `--oui-drawer-width`. */
20
+ size?: DrawerSize;
21
+ /**
22
+ * Set to `false` to block Esc, outside clicks and the close button, e.g.
23
+ * while a form inside is saving.
24
+ */
25
+ dismissible?: boolean;
26
+ /** `false` leaves the page behind interactive and drops the backdrop. */
27
+ modal?: boolean;
28
+ closeLabel?: string;
29
+ className?: string;
30
+ /** Props for the scrolling content area. */
31
+ bodyProps?: React.HTMLAttributes<HTMLDivElement>;
32
+ children?: React.ReactNode;
33
+ }
34
+ /**
35
+ * Side panel for inspecting or editing a record without leaving the page:
36
+ * pinned header, scrolling body, optional pinned footer. For a free-form
37
+ * sheet use `Dialog.Content` with `placement`.
38
+ */
39
+ export declare function Drawer({ open: openProp, defaultOpen, onOpenChange, trigger, title, eyebrow, description, actions, footer, side, size, dismissible, modal, closeLabel, className, bodyProps, children, ref, }: DrawerProps): React.JSX.Element;