@optimum-intelligence/opti-ui 0.0.0-stage → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +244 -2
  3. package/dist/components/accordion/Accordion.d.ts +17 -0
  4. package/dist/components/accordion/Accordion.js +204 -0
  5. package/dist/components/accordion/Accordion.js.map +1 -0
  6. package/dist/components/alert/Alert.d.ts +18 -0
  7. package/dist/components/alert/Alert.js +164 -0
  8. package/dist/components/alert/Alert.js.map +1 -0
  9. package/dist/components/app-shell/AppShell.d.ts +97 -0
  10. package/dist/components/app-shell/AppShell.js +689 -0
  11. package/dist/components/app-shell/AppShell.js.map +1 -0
  12. package/dist/components/avatar/Avatar.d.ts +21 -0
  13. package/dist/components/avatar/Avatar.js +190 -0
  14. package/dist/components/avatar/Avatar.js.map +1 -0
  15. package/dist/components/badge/Badge.d.ts +16 -0
  16. package/dist/components/badge/Badge.js +94 -0
  17. package/dist/components/badge/Badge.js.map +1 -0
  18. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
  19. package/dist/components/breadcrumbs/Breadcrumbs.js +154 -0
  20. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
  21. package/dist/components/button/Button.d.ts +23 -0
  22. package/dist/components/button/Button.js +159 -0
  23. package/dist/components/button/Button.js.map +1 -0
  24. package/dist/components/calendar/Calendar.d.ts +59 -0
  25. package/dist/components/calendar/Calendar.js +709 -0
  26. package/dist/components/calendar/Calendar.js.map +1 -0
  27. package/dist/components/calendar/date-utils.d.ts +32 -0
  28. package/dist/components/calendar/date-utils.js +112 -0
  29. package/dist/components/calendar/date-utils.js.map +1 -0
  30. package/dist/components/card/Card.d.ts +42 -0
  31. package/dist/components/card/Card.js +82 -0
  32. package/dist/components/card/Card.js.map +1 -0
  33. package/dist/components/choice/Choice.d.ts +32 -0
  34. package/dist/components/choice/Choice.js +371 -0
  35. package/dist/components/choice/Choice.js.map +1 -0
  36. package/dist/components/collapsible/Collapsible.d.ts +15 -0
  37. package/dist/components/collapsible/Collapsible.js +155 -0
  38. package/dist/components/collapsible/Collapsible.js.map +1 -0
  39. package/dist/components/combobox/Combobox.d.ts +68 -0
  40. package/dist/components/combobox/Combobox.js +752 -0
  41. package/dist/components/combobox/Combobox.js.map +1 -0
  42. package/dist/components/command-palette/CommandPalette.d.ts +52 -0
  43. package/dist/components/command-palette/CommandPalette.js +328 -0
  44. package/dist/components/command-palette/CommandPalette.js.map +1 -0
  45. package/dist/components/data-table/DataTable.d.ts +73 -0
  46. package/dist/components/data-table/DataTable.js +478 -0
  47. package/dist/components/data-table/DataTable.js.map +1 -0
  48. package/dist/components/data-table/DataTableContent.d.ts +35 -0
  49. package/dist/components/data-table/DataTableContent.js +550 -0
  50. package/dist/components/data-table/DataTableContent.js.map +1 -0
  51. package/dist/components/data-table/DataTableFilters.d.ts +15 -0
  52. package/dist/components/data-table/DataTableFilters.js +284 -0
  53. package/dist/components/data-table/DataTableFilters.js.map +1 -0
  54. package/dist/components/data-table/DataTableRow.d.ts +33 -0
  55. package/dist/components/data-table/DataTableRow.js +552 -0
  56. package/dist/components/data-table/DataTableRow.js.map +1 -0
  57. package/dist/components/data-table/context.d.ts +5 -0
  58. package/dist/components/data-table/context.js +14 -0
  59. package/dist/components/data-table/context.js.map +1 -0
  60. package/dist/components/data-table/layout.d.ts +60 -0
  61. package/dist/components/data-table/layout.js +272 -0
  62. package/dist/components/data-table/layout.js.map +1 -0
  63. package/dist/components/data-table/types.d.ts +319 -0
  64. package/dist/components/data-table/useDataTable.d.ts +9 -0
  65. package/dist/components/data-table/useDataTable.js +666 -0
  66. package/dist/components/data-table/useDataTable.js.map +1 -0
  67. package/dist/components/date-picker/DatePicker.d.ts +50 -0
  68. package/dist/components/date-picker/DatePicker.js +485 -0
  69. package/dist/components/date-picker/DatePicker.js.map +1 -0
  70. package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
  71. package/dist/components/date-picker/DateRangePicker.js +339 -0
  72. package/dist/components/date-picker/DateRangePicker.js.map +1 -0
  73. package/dist/components/date-picker/PickerField.d.ts +38 -0
  74. package/dist/components/date-picker/PickerField.js +238 -0
  75. package/dist/components/date-picker/PickerField.js.map +1 -0
  76. package/dist/components/dialog/Dialog.d.ts +70 -0
  77. package/dist/components/dialog/Dialog.js +354 -0
  78. package/dist/components/dialog/Dialog.js.map +1 -0
  79. package/dist/components/drawer/Drawer.d.ts +39 -0
  80. package/dist/components/drawer/Drawer.js +225 -0
  81. package/dist/components/drawer/Drawer.js.map +1 -0
  82. package/dist/components/empty-state/EmptyState.d.ts +12 -0
  83. package/dist/components/empty-state/EmptyState.js +116 -0
  84. package/dist/components/empty-state/EmptyState.js.map +1 -0
  85. package/dist/components/field/Field.d.ts +36 -0
  86. package/dist/components/field/Field.js +337 -0
  87. package/dist/components/field/Field.js.map +1 -0
  88. package/dist/components/file-upload/FileUpload.d.ts +91 -0
  89. package/dist/components/file-upload/FileUpload.js +714 -0
  90. package/dist/components/file-upload/FileUpload.js.map +1 -0
  91. package/dist/components/input/Input.d.ts +49 -0
  92. package/dist/components/input/Input.js +538 -0
  93. package/dist/components/input/Input.js.map +1 -0
  94. package/dist/components/link/Link.d.ts +17 -0
  95. package/dist/components/link/Link.js +91 -0
  96. package/dist/components/link/Link.js.map +1 -0
  97. package/dist/components/menu/Menu.d.ts +79 -0
  98. package/dist/components/menu/Menu.js +615 -0
  99. package/dist/components/menu/Menu.js.map +1 -0
  100. package/dist/components/number-field/NumberField.d.ts +16 -0
  101. package/dist/components/number-field/NumberField.js +188 -0
  102. package/dist/components/number-field/NumberField.js.map +1 -0
  103. package/dist/components/pagination/Pagination.d.ts +34 -0
  104. package/dist/components/pagination/Pagination.js +244 -0
  105. package/dist/components/pagination/Pagination.js.map +1 -0
  106. package/dist/components/popover/Popover.d.ts +22 -0
  107. package/dist/components/popover/Popover.js +186 -0
  108. package/dist/components/popover/Popover.js.map +1 -0
  109. package/dist/components/preview-card/PreviewCard.d.ts +20 -0
  110. package/dist/components/preview-card/PreviewCard.js +114 -0
  111. package/dist/components/preview-card/PreviewCard.js.map +1 -0
  112. package/dist/components/progress/Progress.d.ts +20 -0
  113. package/dist/components/progress/Progress.js +169 -0
  114. package/dist/components/progress/Progress.js.map +1 -0
  115. package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
  116. package/dist/components/scroll-area/ScrollArea.js +112 -0
  117. package/dist/components/scroll-area/ScrollArea.js.map +1 -0
  118. package/dist/components/search-input/SearchInput.d.ts +14 -0
  119. package/dist/components/search-input/SearchInput.js +114 -0
  120. package/dist/components/search-input/SearchInput.js.map +1 -0
  121. package/dist/components/select/Select.d.ts +66 -0
  122. package/dist/components/select/Select.js +601 -0
  123. package/dist/components/select/Select.js.map +1 -0
  124. package/dist/components/separator/Separator.d.ts +4 -0
  125. package/dist/components/separator/Separator.js +46 -0
  126. package/dist/components/separator/Separator.js.map +1 -0
  127. package/dist/components/skeleton/Skeleton.d.ts +16 -0
  128. package/dist/components/skeleton/Skeleton.js +135 -0
  129. package/dist/components/skeleton/Skeleton.js.map +1 -0
  130. package/dist/components/slider/Slider.d.ts +11 -0
  131. package/dist/components/slider/Slider.js +107 -0
  132. package/dist/components/slider/Slider.js.map +1 -0
  133. package/dist/components/spinner/Spinner.d.ts +9 -0
  134. package/dist/components/spinner/Spinner.js +78 -0
  135. package/dist/components/spinner/Spinner.js.map +1 -0
  136. package/dist/components/stack/Stack.d.ts +23 -0
  137. package/dist/components/stack/Stack.js +79 -0
  138. package/dist/components/stack/Stack.js.map +1 -0
  139. package/dist/components/stat-card/StatCard.d.ts +22 -0
  140. package/dist/components/stat-card/StatCard.js +153 -0
  141. package/dist/components/stat-card/StatCard.js.map +1 -0
  142. package/dist/components/stepper/Stepper.d.ts +30 -0
  143. package/dist/components/stepper/Stepper.js +131 -0
  144. package/dist/components/stepper/Stepper.js.map +1 -0
  145. package/dist/components/table/Table.d.ts +53 -0
  146. package/dist/components/table/Table.js +221 -0
  147. package/dist/components/table/Table.js.map +1 -0
  148. package/dist/components/tabs/Tabs.d.ts +19 -0
  149. package/dist/components/tabs/Tabs.js +183 -0
  150. package/dist/components/tabs/Tabs.js.map +1 -0
  151. package/dist/components/tag/Tag.d.ts +22 -0
  152. package/dist/components/tag/Tag.js +121 -0
  153. package/dist/components/tag/Tag.js.map +1 -0
  154. package/dist/components/toast/Toast.d.ts +34 -0
  155. package/dist/components/toast/Toast.js +187 -0
  156. package/dist/components/toast/Toast.js.map +1 -0
  157. package/dist/components/toggle/Toggle.d.ts +31 -0
  158. package/dist/components/toggle/Toggle.js +197 -0
  159. package/dist/components/toggle/Toggle.js.map +1 -0
  160. package/dist/components/toolbar/Toolbar.d.ts +21 -0
  161. package/dist/components/toolbar/Toolbar.js +239 -0
  162. package/dist/components/toolbar/Toolbar.js.map +1 -0
  163. package/dist/components/tooltip/Tooltip.d.ts +33 -0
  164. package/dist/components/tooltip/Tooltip.js +182 -0
  165. package/dist/components/tooltip/Tooltip.js.map +1 -0
  166. package/dist/components/typography/Typography.d.ts +32 -0
  167. package/dist/components/typography/Typography.js +183 -0
  168. package/dist/components/typography/Typography.js.map +1 -0
  169. package/dist/fonts.css +3 -0
  170. package/dist/icons/index.d.ts +133 -0
  171. package/dist/icons/index.js +182 -0
  172. package/dist/icons/index.js.map +1 -0
  173. package/dist/index.d.ts +55 -0
  174. package/dist/index.js +58 -0
  175. package/dist/opti-ui.css +5692 -0
  176. package/dist/theme/ThemeProvider.d.ts +22 -0
  177. package/dist/theme/ThemeProvider.js +115 -0
  178. package/dist/theme/ThemeProvider.js.map +1 -0
  179. package/dist/theme/index.d.ts +2 -0
  180. package/dist/utils/cx.d.ts +10 -0
  181. package/dist/utils/cx.js +18 -0
  182. package/dist/utils/cx.js.map +1 -0
  183. package/dist/utils/index.d.ts +2 -0
  184. package/dist/utils/portal.d.ts +8 -0
  185. package/dist/utils/portal.js +16 -0
  186. package/dist/utils/portal.js.map +1 -0
  187. package/dist/utils/primitive.d.ts +13 -0
  188. package/dist/utils/primitive.js +61 -0
  189. package/dist/utils/primitive.js.map +1 -0
  190. package/dist/utils/search.d.ts +4 -0
  191. package/dist/utils/search.js +15 -0
  192. package/dist/utils/search.js.map +1 -0
  193. package/package.json +71 -4
@@ -0,0 +1,689 @@
1
+ "use client";
2
+ import { usePortalContainer } from "../../utils/portal.js";
3
+ import { cx } from "../../utils/cx.js";
4
+ import { createPrimitive } from "../../utils/primitive.js";
5
+ import { ChevronLeftIcon, MenuIcon, XIcon } from "../../icons/index.js";
6
+ import { c } from "react/compiler-runtime";
7
+ import * as React from "react";
8
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
+ import { Dialog } from "@base-ui/react/dialog";
10
+ import { useRender } from "@base-ui/react/use-render";
11
+ import { mergeProps } from "@base-ui/react/merge-props";
12
+ //#region src/components/app-shell/AppShell.tsx
13
+ var NavbarCollapsedContext = React.createContext(false);
14
+ var NavbarDrawerContext = React.createContext(false);
15
+ function Navbar(t0) {
16
+ const $ = c(29);
17
+ const { variant: t1, collapsible: t2, collapsed: collapsedProp, defaultCollapsed: t3, onCollapsedChange, expandOnHover: t4, collapseLabel: t5, expandLabel: t6, render, children, ref, ...props } = t0;
18
+ const variant = t1 === void 0 ? "inverse" : t1;
19
+ const collapsible = t2 === void 0 ? true : t2;
20
+ const defaultCollapsed = t3 === void 0 ? false : t3;
21
+ const expandOnHover = t4 === void 0 ? true : t4;
22
+ const collapseLabel = t5 === void 0 ? "Collapse" : t5;
23
+ const expandLabel = t6 === void 0 ? "Expand" : t6;
24
+ const inDrawer = React.useContext(NavbarDrawerContext);
25
+ const canCollapse = collapsible && !inDrawer;
26
+ const [internal, setInternal] = React.useState(defaultCollapsed);
27
+ const collapsed = canCollapse && (collapsedProp ?? internal);
28
+ const label = collapsed ? expandLabel : collapseLabel;
29
+ const [pointerInside, setPointerInside] = React.useState(false);
30
+ const [hovered, setHovered] = React.useState(false);
31
+ let t7;
32
+ let t8;
33
+ if ($[0] !== pointerInside) {
34
+ t7 = () => {
35
+ if (!pointerInside) return;
36
+ const timer = setTimeout(() => setHovered(true), 120);
37
+ return () => clearTimeout(timer);
38
+ };
39
+ t8 = [pointerInside];
40
+ $[0] = pointerInside;
41
+ $[1] = t7;
42
+ $[2] = t8;
43
+ } else {
44
+ t7 = $[1];
45
+ t8 = $[2];
46
+ }
47
+ React.useEffect(t7, t8);
48
+ const peek = collapsed && expandOnHover && hovered;
49
+ let t9;
50
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
51
+ t9 = () => {
52
+ setPointerInside(false);
53
+ setHovered(false);
54
+ };
55
+ $[3] = t9;
56
+ } else t9 = $[3];
57
+ const endHover = t9;
58
+ let t10;
59
+ if ($[4] !== collapsed || $[5] !== collapsedProp || $[6] !== onCollapsedChange) {
60
+ t10 = () => {
61
+ endHover();
62
+ if (collapsedProp === void 0) setInternal(!collapsed);
63
+ onCollapsedChange?.(!collapsed);
64
+ };
65
+ $[4] = collapsed;
66
+ $[5] = collapsedProp;
67
+ $[6] = onCollapsedChange;
68
+ $[7] = t10;
69
+ } else t10 = $[7];
70
+ const toggle = t10;
71
+ let t11;
72
+ if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
73
+ t11 = (event) => {
74
+ if (event.pointerType === "mouse") setPointerInside(true);
75
+ };
76
+ $[8] = t11;
77
+ } else t11 = $[8];
78
+ const onPointerEnter = t11;
79
+ const t12 = collapsed && !peek;
80
+ let t13;
81
+ if ($[9] !== peek || $[10] !== t12 || $[11] !== variant) {
82
+ t13 = {
83
+ variant,
84
+ collapsed: t12,
85
+ peek
86
+ };
87
+ $[9] = peek;
88
+ $[10] = t12;
89
+ $[11] = variant;
90
+ $[12] = t13;
91
+ } else t13 = $[12];
92
+ const state = t13;
93
+ const t14 = "nav";
94
+ let t15;
95
+ if ($[13] !== canCollapse || $[14] !== collapsed || $[15] !== label || $[16] !== toggle) {
96
+ t15 = canCollapse && /* @__PURE__ */ jsx("button", {
97
+ type: "button",
98
+ className: "oui-navbar__toggle",
99
+ "aria-label": label,
100
+ "aria-expanded": !collapsed,
101
+ title: label,
102
+ onClick: toggle,
103
+ children: /* @__PURE__ */ jsx(ChevronLeftIcon, {})
104
+ });
105
+ $[13] = canCollapse;
106
+ $[14] = collapsed;
107
+ $[15] = label;
108
+ $[16] = toggle;
109
+ $[17] = t15;
110
+ } else t15 = $[17];
111
+ let t16;
112
+ if ($[18] !== children || $[19] !== t15) {
113
+ t16 = /* @__PURE__ */ jsxs(Fragment, { children: [t15, children] });
114
+ $[18] = children;
115
+ $[19] = t15;
116
+ $[20] = t16;
117
+ } else t16 = $[20];
118
+ const t17 = mergeProps({
119
+ className: "oui-navbar",
120
+ onPointerEnter: collapsed && expandOnHover ? onPointerEnter : void 0,
121
+ onPointerLeave: collapsed && expandOnHover ? endHover : void 0,
122
+ children: t16
123
+ }, props);
124
+ let t18;
125
+ if ($[21] !== ref || $[22] !== render || $[23] !== state || $[24] !== t17) {
126
+ t18 = {
127
+ defaultTagName: t14,
128
+ render,
129
+ ref,
130
+ state,
131
+ props: t17
132
+ };
133
+ $[21] = ref;
134
+ $[22] = render;
135
+ $[23] = state;
136
+ $[24] = t17;
137
+ $[25] = t18;
138
+ } else t18 = $[25];
139
+ const element = useRender(t18);
140
+ const t19 = collapsed && !peek;
141
+ let t20;
142
+ if ($[26] !== element || $[27] !== t19) {
143
+ t20 = /* @__PURE__ */ jsx(NavbarCollapsedContext, {
144
+ value: t19,
145
+ children: element
146
+ });
147
+ $[26] = element;
148
+ $[27] = t19;
149
+ $[28] = t20;
150
+ } else t20 = $[28];
151
+ return t20;
152
+ }
153
+ var NavbarHeader = createPrimitive("div", "oui-navbar__header", "NavbarHeader");
154
+ var NavbarFooter = createPrimitive("div", "oui-navbar__footer", "NavbarFooter");
155
+ var NavbarSection = createPrimitive("div", "oui-navbar__section", "NavbarSection");
156
+ var NavbarSectionLabel = createPrimitive("div", "oui-navbar__section-label", "NavbarSectionLabel");
157
+ function NavbarBrand(t0) {
158
+ const $ = c(23);
159
+ let t1;
160
+ let t2;
161
+ let t3;
162
+ let t4;
163
+ let t5;
164
+ if ($[0] !== t0) {
165
+ const { logo, title, subtitle, render, ref, ...props } = t0;
166
+ t5 = useRender;
167
+ t1 = "div";
168
+ t2 = render;
169
+ t3 = ref;
170
+ let t6;
171
+ if ($[6] !== logo) {
172
+ t6 = logo && /* @__PURE__ */ jsx("span", {
173
+ className: "oui-navbar__logo",
174
+ children: logo
175
+ });
176
+ $[6] = logo;
177
+ $[7] = t6;
178
+ } else t6 = $[7];
179
+ let t7;
180
+ if ($[8] !== title) {
181
+ t7 = /* @__PURE__ */ jsx("span", {
182
+ className: "oui-navbar__brand-title",
183
+ children: title
184
+ });
185
+ $[8] = title;
186
+ $[9] = t7;
187
+ } else t7 = $[9];
188
+ let t8;
189
+ if ($[10] !== subtitle) {
190
+ t8 = subtitle && /* @__PURE__ */ jsx("span", {
191
+ className: "oui-navbar__brand-subtitle",
192
+ children: subtitle
193
+ });
194
+ $[10] = subtitle;
195
+ $[11] = t8;
196
+ } else t8 = $[11];
197
+ let t9;
198
+ if ($[12] !== t7 || $[13] !== t8) {
199
+ t9 = /* @__PURE__ */ jsxs("span", {
200
+ className: "oui-navbar__brand-text",
201
+ children: [t7, t8]
202
+ });
203
+ $[12] = t7;
204
+ $[13] = t8;
205
+ $[14] = t9;
206
+ } else t9 = $[14];
207
+ let t10;
208
+ if ($[15] !== t6 || $[16] !== t9) {
209
+ t10 = /* @__PURE__ */ jsxs(Fragment, { children: [t6, t9] });
210
+ $[15] = t6;
211
+ $[16] = t9;
212
+ $[17] = t10;
213
+ } else t10 = $[17];
214
+ t4 = mergeProps({
215
+ className: "oui-navbar__brand",
216
+ children: t10
217
+ }, props);
218
+ $[0] = t0;
219
+ $[1] = t1;
220
+ $[2] = t2;
221
+ $[3] = t3;
222
+ $[4] = t4;
223
+ $[5] = t5;
224
+ } else {
225
+ t1 = $[1];
226
+ t2 = $[2];
227
+ t3 = $[3];
228
+ t4 = $[4];
229
+ t5 = $[5];
230
+ }
231
+ let t6;
232
+ if ($[18] !== t1 || $[19] !== t2 || $[20] !== t3 || $[21] !== t4) {
233
+ t6 = {
234
+ defaultTagName: t1,
235
+ render: t2,
236
+ ref: t3,
237
+ props: t4
238
+ };
239
+ $[18] = t1;
240
+ $[19] = t2;
241
+ $[20] = t3;
242
+ $[21] = t4;
243
+ $[22] = t6;
244
+ } else t6 = $[22];
245
+ return t5(t6);
246
+ }
247
+ /**
248
+ * Navigation link. Renders an `<a>`; use `render={<Link to="…" />}` for a
249
+ * router link or `render={<button />}` for an action.
250
+ */
251
+ function NavbarItem(t0) {
252
+ const $ = c(17);
253
+ const { icon, active: t1, badge, render, children, ref, ...props } = t0;
254
+ const active = t1 === void 0 ? false : t1;
255
+ const collapsed = React.useContext(NavbarCollapsedContext);
256
+ let t2;
257
+ if ($[0] !== active) {
258
+ t2 = { active };
259
+ $[0] = active;
260
+ $[1] = t2;
261
+ } else t2 = $[1];
262
+ const state = t2;
263
+ const t3 = "a";
264
+ let t4;
265
+ if ($[2] !== icon) {
266
+ t4 = icon && /* @__PURE__ */ jsx("span", {
267
+ className: "oui-navbar__item-icon",
268
+ children: icon
269
+ });
270
+ $[2] = icon;
271
+ $[3] = t4;
272
+ } else t4 = $[3];
273
+ let t5;
274
+ if ($[4] !== children) {
275
+ t5 = /* @__PURE__ */ jsx("span", {
276
+ className: "oui-navbar__item-label",
277
+ children
278
+ });
279
+ $[4] = children;
280
+ $[5] = t5;
281
+ } else t5 = $[5];
282
+ let t6;
283
+ if ($[6] !== badge) {
284
+ t6 = badge != null && /* @__PURE__ */ jsx("span", {
285
+ className: "oui-navbar__item-badge",
286
+ children: badge
287
+ });
288
+ $[6] = badge;
289
+ $[7] = t6;
290
+ } else t6 = $[7];
291
+ let t7;
292
+ if ($[8] !== t4 || $[9] !== t5 || $[10] !== t6) {
293
+ t7 = /* @__PURE__ */ jsxs(Fragment, { children: [
294
+ t4,
295
+ t5,
296
+ t6
297
+ ] });
298
+ $[8] = t4;
299
+ $[9] = t5;
300
+ $[10] = t6;
301
+ $[11] = t7;
302
+ } else t7 = $[11];
303
+ const t8 = mergeProps({
304
+ className: "oui-navbar__item",
305
+ "aria-current": active ? "page" : void 0,
306
+ title: collapsed && typeof children === "string" ? children : void 0,
307
+ children: t7
308
+ }, props);
309
+ let t9;
310
+ if ($[12] !== ref || $[13] !== render || $[14] !== state || $[15] !== t8) {
311
+ t9 = {
312
+ defaultTagName: t3,
313
+ render,
314
+ ref,
315
+ state,
316
+ props: t8
317
+ };
318
+ $[12] = ref;
319
+ $[13] = render;
320
+ $[14] = state;
321
+ $[15] = t8;
322
+ $[16] = t9;
323
+ } else t9 = $[16];
324
+ return useRender(t9);
325
+ }
326
+ /**
327
+ * Full-height layout with a fixed navbar and an internally scrolling main
328
+ * area. Below 900px the navbar moves into a slide-in drawer.
329
+ * Customize width with `--oui-navbar-width` and `--oui-navbar-collapsed-width`.
330
+ */
331
+ function AppShell(t0) {
332
+ const $ = c(48);
333
+ let children;
334
+ let className;
335
+ let mainProps;
336
+ let mobileActions;
337
+ let mobileBrand;
338
+ let navbar;
339
+ let props;
340
+ let ref;
341
+ let t1;
342
+ if ($[0] !== t0) {
343
+ ({navbar, mobileBrand, mobileActions, menuLabel: t1, mainProps, className, children, ref, ...props} = t0);
344
+ $[0] = t0;
345
+ $[1] = children;
346
+ $[2] = className;
347
+ $[3] = mainProps;
348
+ $[4] = mobileActions;
349
+ $[5] = mobileBrand;
350
+ $[6] = navbar;
351
+ $[7] = props;
352
+ $[8] = ref;
353
+ $[9] = t1;
354
+ } else {
355
+ children = $[1];
356
+ className = $[2];
357
+ mainProps = $[3];
358
+ mobileActions = $[4];
359
+ mobileBrand = $[5];
360
+ navbar = $[6];
361
+ props = $[7];
362
+ ref = $[8];
363
+ t1 = $[9];
364
+ }
365
+ const menuLabel = t1 === void 0 ? "Open navigation" : t1;
366
+ const [open, setOpen] = React.useState(false);
367
+ const container = usePortalContainer();
368
+ let t2;
369
+ if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
370
+ t2 = (event) => {
371
+ if (event.target.closest("a, .oui-navbar__item")) setOpen(false);
372
+ };
373
+ $[10] = t2;
374
+ } else t2 = $[10];
375
+ const closeOnNavigate = t2;
376
+ let t3;
377
+ if ($[11] !== className) {
378
+ t3 = cx("oui-app-shell", className);
379
+ $[11] = className;
380
+ $[12] = t3;
381
+ } else t3 = $[12];
382
+ let t4;
383
+ if ($[13] !== navbar) {
384
+ t4 = /* @__PURE__ */ jsx("div", {
385
+ className: "oui-app-shell__navbar",
386
+ children: navbar
387
+ });
388
+ $[13] = navbar;
389
+ $[14] = t4;
390
+ } else t4 = $[14];
391
+ let t5;
392
+ if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
393
+ t5 = /* @__PURE__ */ jsx(MenuIcon, {});
394
+ $[15] = t5;
395
+ } else t5 = $[15];
396
+ let t6;
397
+ if ($[16] !== menuLabel) {
398
+ t6 = /* @__PURE__ */ jsx(Dialog.Trigger, {
399
+ className: "oui-app-shell__menu-button",
400
+ "aria-label": menuLabel,
401
+ children: t5
402
+ });
403
+ $[16] = menuLabel;
404
+ $[17] = t6;
405
+ } else t6 = $[17];
406
+ let t7;
407
+ if ($[18] !== mobileBrand) {
408
+ t7 = /* @__PURE__ */ jsx("div", {
409
+ className: "oui-app-shell__mobile-brand",
410
+ children: mobileBrand
411
+ });
412
+ $[18] = mobileBrand;
413
+ $[19] = t7;
414
+ } else t7 = $[19];
415
+ let t8;
416
+ if ($[20] !== mobileActions || $[21] !== t6 || $[22] !== t7) {
417
+ t8 = /* @__PURE__ */ jsxs("header", {
418
+ className: "oui-app-shell__mobile-bar",
419
+ children: [
420
+ t6,
421
+ t7,
422
+ mobileActions
423
+ ]
424
+ });
425
+ $[20] = mobileActions;
426
+ $[21] = t6;
427
+ $[22] = t7;
428
+ $[23] = t8;
429
+ } else t8 = $[23];
430
+ let t9;
431
+ if ($[24] === Symbol.for("react.memo_cache_sentinel")) {
432
+ t9 = /* @__PURE__ */ jsx(Dialog.Backdrop, { className: "oui-dialog__backdrop" });
433
+ $[24] = t9;
434
+ } else t9 = $[24];
435
+ let t10;
436
+ if ($[25] === Symbol.for("react.memo_cache_sentinel")) {
437
+ t10 = /* @__PURE__ */ jsx(Dialog.Close, {
438
+ className: "oui-app-shell__drawer-close",
439
+ "aria-label": "Close navigation",
440
+ children: /* @__PURE__ */ jsx(XIcon, {})
441
+ });
442
+ $[25] = t10;
443
+ } else t10 = $[25];
444
+ let t11;
445
+ if ($[26] !== navbar) {
446
+ t11 = /* @__PURE__ */ jsxs(Dialog.Popup, {
447
+ className: "oui-app-shell__drawer",
448
+ "aria-label": "Navigation",
449
+ onClick: closeOnNavigate,
450
+ children: [t10, /* @__PURE__ */ jsx(NavbarDrawerContext, {
451
+ value: true,
452
+ children: navbar
453
+ })]
454
+ });
455
+ $[26] = navbar;
456
+ $[27] = t11;
457
+ } else t11 = $[27];
458
+ let t12;
459
+ if ($[28] !== container || $[29] !== t11) {
460
+ t12 = /* @__PURE__ */ jsxs(Dialog.Portal, {
461
+ container,
462
+ children: [t9, t11]
463
+ });
464
+ $[28] = container;
465
+ $[29] = t11;
466
+ $[30] = t12;
467
+ } else t12 = $[30];
468
+ let t13;
469
+ if ($[31] !== open || $[32] !== t12 || $[33] !== t8) {
470
+ t13 = /* @__PURE__ */ jsxs(Dialog.Root, {
471
+ open,
472
+ onOpenChange: setOpen,
473
+ children: [t8, t12]
474
+ });
475
+ $[31] = open;
476
+ $[32] = t12;
477
+ $[33] = t8;
478
+ $[34] = t13;
479
+ } else t13 = $[34];
480
+ const t14 = mainProps?.className;
481
+ let t15;
482
+ if ($[35] !== t14) {
483
+ t15 = cx("oui-app-shell__main", t14);
484
+ $[35] = t14;
485
+ $[36] = t15;
486
+ } else t15 = $[36];
487
+ let t16;
488
+ if ($[37] !== children || $[38] !== mainProps || $[39] !== t15) {
489
+ t16 = /* @__PURE__ */ jsx("main", {
490
+ ...mainProps,
491
+ className: t15,
492
+ children
493
+ });
494
+ $[37] = children;
495
+ $[38] = mainProps;
496
+ $[39] = t15;
497
+ $[40] = t16;
498
+ } else t16 = $[40];
499
+ let t17;
500
+ if ($[41] !== props || $[42] !== ref || $[43] !== t13 || $[44] !== t16 || $[45] !== t3 || $[46] !== t4) {
501
+ t17 = /* @__PURE__ */ jsxs("div", {
502
+ ref,
503
+ className: t3,
504
+ ...props,
505
+ children: [
506
+ t4,
507
+ t13,
508
+ t16
509
+ ]
510
+ });
511
+ $[41] = props;
512
+ $[42] = ref;
513
+ $[43] = t13;
514
+ $[44] = t16;
515
+ $[45] = t3;
516
+ $[46] = t4;
517
+ $[47] = t17;
518
+ } else t17 = $[47];
519
+ return t17;
520
+ }
521
+ function PageHeader(t0) {
522
+ const $ = c(32);
523
+ let actions;
524
+ let breadcrumbs;
525
+ let className;
526
+ let description;
527
+ let eyebrow;
528
+ let props;
529
+ let ref;
530
+ let title;
531
+ if ($[0] !== t0) {
532
+ ({breadcrumbs, eyebrow, title, description, actions, className, ref, ...props} = t0);
533
+ $[0] = t0;
534
+ $[1] = actions;
535
+ $[2] = breadcrumbs;
536
+ $[3] = className;
537
+ $[4] = description;
538
+ $[5] = eyebrow;
539
+ $[6] = props;
540
+ $[7] = ref;
541
+ $[8] = title;
542
+ } else {
543
+ actions = $[1];
544
+ breadcrumbs = $[2];
545
+ className = $[3];
546
+ description = $[4];
547
+ eyebrow = $[5];
548
+ props = $[6];
549
+ ref = $[7];
550
+ title = $[8];
551
+ }
552
+ let t1;
553
+ if ($[9] !== className) {
554
+ t1 = cx("oui-page-header", className);
555
+ $[9] = className;
556
+ $[10] = t1;
557
+ } else t1 = $[10];
558
+ let t2;
559
+ if ($[11] !== breadcrumbs) {
560
+ t2 = breadcrumbs && /* @__PURE__ */ jsx("div", {
561
+ className: "oui-page-header__breadcrumbs",
562
+ children: breadcrumbs
563
+ });
564
+ $[11] = breadcrumbs;
565
+ $[12] = t2;
566
+ } else t2 = $[12];
567
+ let t3;
568
+ if ($[13] !== eyebrow) {
569
+ t3 = eyebrow && /* @__PURE__ */ jsx("span", {
570
+ className: "oui-eyebrow",
571
+ children: eyebrow
572
+ });
573
+ $[13] = eyebrow;
574
+ $[14] = t3;
575
+ } else t3 = $[14];
576
+ let t4;
577
+ if ($[15] !== title) {
578
+ t4 = /* @__PURE__ */ jsx("h1", {
579
+ className: "oui-page-header__title",
580
+ children: title
581
+ });
582
+ $[15] = title;
583
+ $[16] = t4;
584
+ } else t4 = $[16];
585
+ let t5;
586
+ if ($[17] !== description) {
587
+ t5 = description && /* @__PURE__ */ jsx("p", {
588
+ className: "oui-page-header__description",
589
+ children: description
590
+ });
591
+ $[17] = description;
592
+ $[18] = t5;
593
+ } else t5 = $[18];
594
+ let t6;
595
+ if ($[19] !== t2 || $[20] !== t3 || $[21] !== t4 || $[22] !== t5) {
596
+ t6 = /* @__PURE__ */ jsxs("div", {
597
+ className: "oui-page-header__text",
598
+ children: [
599
+ t2,
600
+ t3,
601
+ t4,
602
+ t5
603
+ ]
604
+ });
605
+ $[19] = t2;
606
+ $[20] = t3;
607
+ $[21] = t4;
608
+ $[22] = t5;
609
+ $[23] = t6;
610
+ } else t6 = $[23];
611
+ let t7;
612
+ if ($[24] !== actions) {
613
+ t7 = actions && /* @__PURE__ */ jsx("div", {
614
+ className: "oui-page-header__actions",
615
+ children: actions
616
+ });
617
+ $[24] = actions;
618
+ $[25] = t7;
619
+ } else t7 = $[25];
620
+ let t8;
621
+ if ($[26] !== props || $[27] !== ref || $[28] !== t1 || $[29] !== t6 || $[30] !== t7) {
622
+ t8 = /* @__PURE__ */ jsxs("header", {
623
+ ref,
624
+ className: t1,
625
+ ...props,
626
+ children: [t6, t7]
627
+ });
628
+ $[26] = props;
629
+ $[27] = ref;
630
+ $[28] = t1;
631
+ $[29] = t6;
632
+ $[30] = t7;
633
+ $[31] = t8;
634
+ } else t8 = $[31];
635
+ return t8;
636
+ }
637
+ /** Responsive dashboard grid. */
638
+ function Grid(t0) {
639
+ const $ = c(14);
640
+ let className;
641
+ let props;
642
+ let ref;
643
+ let t1;
644
+ let t2;
645
+ if ($[0] !== t0) {
646
+ ({columns: t1, gap: t2, className, ref, ...props} = t0);
647
+ $[0] = t0;
648
+ $[1] = className;
649
+ $[2] = props;
650
+ $[3] = ref;
651
+ $[4] = t1;
652
+ $[5] = t2;
653
+ } else {
654
+ className = $[1];
655
+ props = $[2];
656
+ ref = $[3];
657
+ t1 = $[4];
658
+ t2 = $[5];
659
+ }
660
+ const columns = t1 === void 0 ? 3 : t1;
661
+ const gap = t2 === void 0 ? "md" : t2;
662
+ let t3;
663
+ if ($[6] !== className) {
664
+ t3 = cx("oui-grid", className);
665
+ $[6] = className;
666
+ $[7] = t3;
667
+ } else t3 = $[7];
668
+ let t4;
669
+ if ($[8] !== columns || $[9] !== gap || $[10] !== props || $[11] !== ref || $[12] !== t3) {
670
+ t4 = /* @__PURE__ */ jsx("div", {
671
+ ref,
672
+ className: t3,
673
+ "data-columns": columns,
674
+ "data-gap": gap,
675
+ ...props
676
+ });
677
+ $[8] = columns;
678
+ $[9] = gap;
679
+ $[10] = props;
680
+ $[11] = ref;
681
+ $[12] = t3;
682
+ $[13] = t4;
683
+ } else t4 = $[13];
684
+ return t4;
685
+ }
686
+ //#endregion
687
+ export { AppShell, Grid, Navbar, NavbarBrand, NavbarFooter, NavbarHeader, NavbarItem, NavbarSection, NavbarSectionLabel, PageHeader };
688
+
689
+ //# sourceMappingURL=AppShell.js.map