@noxickon/onyx 0.0.1 → 0.0.3

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 (41) hide show
  1. package/dist/chunks/Button-BV4_pmoH.js +11054 -0
  2. package/dist/chunks/Button-CU-zvMVL.js +20 -0
  3. package/dist/chunks/Input-BraK4lDE.js +138 -0
  4. package/dist/chunks/Input-C5dK8VSu.js +1 -0
  5. package/dist/chunks/_commonjsHelpers-C6fGbg64.js +6 -0
  6. package/dist/chunks/_commonjsHelpers-DwGv2jUC.js +1 -0
  7. package/dist/chunks/constants-B1_n9ezb.js +1 -0
  8. package/dist/chunks/constants-CDXq37n6.js +4 -0
  9. package/dist/chunks/index-DGjVEo0G.js +22 -0
  10. package/dist/chunks/index-Dgwp7JKP.js +601 -0
  11. package/dist/chunks/index-DnVdNmco.js +2129 -0
  12. package/dist/chunks/index-rUH_mzKt.js +2 -0
  13. package/dist/chunks/isObject-BDHKUJKN.js +1 -0
  14. package/dist/chunks/isObject-vmP43YLW.js +6 -0
  15. package/dist/chunks/jsx-runtime--oOP9f8K.js +284 -0
  16. package/dist/chunks/jsx-runtime-CITbqOLs.js +22 -0
  17. package/dist/chunks/useAuth-BwjRd05B.js +10 -0
  18. package/dist/chunks/useAuth-CR3bAGqp.js +61 -0
  19. package/dist/chunks/useForm-BAbY8X4X.js +3085 -0
  20. package/dist/chunks/useForm-cxgyAiOs.js +26 -0
  21. package/dist/chunks/useQuery--6GP2-dN.js +2 -0
  22. package/dist/chunks/useQuery-mFRa2XuW.js +1481 -0
  23. package/dist/context/context.cjs.js +1 -0
  24. package/dist/context/context.es.js +6 -0
  25. package/dist/context.d.ts +44 -0
  26. package/dist/hooks/hooks.cjs.js +6 -0
  27. package/dist/hooks/hooks.es.js +1917 -0
  28. package/dist/hooks.d.ts +130 -0
  29. package/dist/index.css +1 -1
  30. package/dist/index.d.ts +144 -110
  31. package/dist/layout/layout.cjs.js +1 -0
  32. package/dist/layout/layout.es.js +264 -0
  33. package/dist/layout.d.ts +89 -0
  34. package/dist/onyx.cjs.js +1 -0
  35. package/dist/onyx.es.js +1219 -9485
  36. package/dist/pages/pages.cjs.js +7 -0
  37. package/dist/pages/pages.es.js +93 -0
  38. package/dist/pages.d.ts +14 -0
  39. package/dist/shared.css +104 -0
  40. package/package.json +40 -16
  41. package/dist/onyx.umd.js +0 -42
package/dist/index.d.ts CHANGED
@@ -2,18 +2,11 @@ import { default as default_2 } from 'react';
2
2
  import { HTMLAttributes } from 'react';
3
3
  import { ReactNode } from 'react';
4
4
 
5
- export declare type BadgeColor = 'purple' | 'lime' | 'red' | 'yellow' | 'green' | 'blue' | 'indigo' | 'pink' | 'amber' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'violet' | 'fuchsia' | 'gray';
5
+ declare type CardColor = 'purple' | 'blue' | 'emerald' | 'orange' | 'rose' | 'amber' | 'cyan' | 'indigo';
6
6
 
7
- export declare type BadgeSize = 'sm' | 'md' | 'lg';
7
+ declare type FloatingAlign = 'start' | 'center' | 'end';
8
8
 
9
- declare interface DropdownBaseProps {
10
- className?: string;
11
- }
12
-
13
- declare interface DropdownShortcutProps {
14
- children: default_2.ReactNode;
15
- className?: string;
16
- }
9
+ declare type FloatingPosition = 'top' | 'bottom' | 'left' | 'right';
17
10
 
18
11
  export declare const OxAvatar: default_2.FC<OxAvatarProps>;
19
12
 
@@ -23,12 +16,12 @@ export declare interface OxAvatarImageProps {
23
16
  alt: string;
24
17
  className?: string;
25
18
  fallback?: string | ReactNode;
26
- skeleton?: boolean;
27
- size?: OxAvatarSize;
28
19
  showStatus?: boolean;
20
+ size?: OxAvatarSize;
21
+ skeleton?: boolean;
29
22
  src: string;
30
- status?: OxAvatarStatus;
31
- type?: OxAvatarType;
23
+ status?: 'online' | 'offline' | 'away' | 'busy';
24
+ type?: 'rounded' | 'square';
32
25
  }
33
26
 
34
27
  export declare interface OxAvatarProps {
@@ -38,8 +31,6 @@ export declare interface OxAvatarProps {
38
31
 
39
32
  export declare type OxAvatarSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
40
33
 
41
- export declare type OxAvatarStatus = 'online' | 'offline' | 'away' | 'busy';
42
-
43
34
  export declare const OxAvatarText: default_2.FC<OxAvatarTextProps>;
44
35
 
45
36
  export declare interface OxAvatarTextProps {
@@ -49,35 +40,32 @@ export declare interface OxAvatarTextProps {
49
40
  username: string;
50
41
  }
51
42
 
52
- export declare type OxAvatarType = 'rounded' | 'square';
53
-
54
43
  export declare const OxBadge: default_2.FC<OxBadgeProps>;
55
44
 
45
+ export declare type OxBadgeColor = 'purple' | 'lime' | 'red' | 'yellow' | 'green' | 'blue' | 'indigo' | 'pink' | 'amber' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'violet' | 'fuchsia' | 'gray';
46
+
56
47
  export declare interface OxBadgeProps {
48
+ bgColor?: string;
57
49
  children: ReactNode;
58
50
  className?: string;
59
- color?: BadgeColor;
60
- bgColor?: string;
51
+ color?: OxBadgeColor;
52
+ size?: 'sm' | 'md' | 'lg';
61
53
  textColor?: string;
62
- size?: BadgeSize;
63
54
  }
64
55
 
65
56
  export declare const OxButton: default_2.FC<OxButtonProps>;
66
57
 
67
- export declare interface OxButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'ref' | 'type' | 'aria-label' | 'onClick' | 'disabled' | 'className' | 'children'> {
68
- ref?: React.RefObject<HTMLButtonElement>;
69
- ariaLabel?: string;
58
+ export declare interface OxButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'disabled' | 'className' | 'children'> {
70
59
  children?: React.ReactNode;
71
- type?: 'button' | 'submit' | 'reset';
72
- variant?: 'primary' | 'secondary' | 'ghost' | 'link';
73
- size?: 'sm' | 'md' | 'lg';
74
- disabled?: boolean;
75
60
  className?: string;
61
+ disabled?: boolean;
76
62
  fullWidth?: boolean;
77
- isLoading?: boolean;
78
63
  icon?: string;
79
64
  iconAlign?: 'left' | 'right';
80
- onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
65
+ isLoading?: boolean;
66
+ size?: 'sm' | 'md' | 'lg';
67
+ type?: 'button' | 'submit' | 'reset';
68
+ variant?: 'primary' | 'secondary' | 'ghost' | 'link';
81
69
  }
82
70
 
83
71
  export declare const OxCard: default_2.FC<OxCardProps>;
@@ -85,55 +73,60 @@ export declare const OxCard: default_2.FC<OxCardProps>;
85
73
  export declare const OxCardContent: default_2.FC<OxCardContentProps>;
86
74
 
87
75
  export declare interface OxCardContentProps extends React.HTMLAttributes<HTMLDivElement> {
88
- className?: string;
89
76
  children: React.ReactNode;
77
+ className?: string;
90
78
  flexGrow?: boolean;
91
79
  }
92
80
 
93
81
  export declare const OxCardFooter: default_2.FC<OxCardFooterProps>;
94
82
 
95
83
  export declare interface OxCardFooterProps extends HTMLAttributes<HTMLDivElement> {
96
- className?: string;
97
84
  children: ReactNode;
85
+ className?: string;
98
86
  }
99
87
 
100
88
  export declare const OxCardHeader: default_2.FC<OxCardHeaderProps>;
101
89
 
102
90
  export declare interface OxCardHeaderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
103
- className?: string;
104
- title?: ReactNode;
105
- subtitle?: ReactNode;
106
91
  action?: ReactNode;
107
92
  children?: ReactNode;
93
+ className?: string;
94
+ color?: CardColor;
95
+ icon?: string;
96
+ iconColor?: CardColor;
97
+ subtitle?: ReactNode;
98
+ title?: ReactNode;
108
99
  }
109
100
 
110
- export declare type OxCardPadding = 'none' | 'sm' | 'md' | 'lg';
111
-
112
101
  export declare interface OxCardProps extends HTMLAttributes<HTMLDivElement> {
113
- variant?: OxCardVariant;
114
- padding?: OxCardPadding;
115
- hoverable?: boolean;
116
- className?: string;
102
+ backdropBlur?: boolean;
117
103
  children: ReactNode;
104
+ className?: string;
105
+ color?: CardColor;
118
106
  equalHeight?: boolean;
107
+ hoverable?: boolean;
108
+ hoverVariant?: 'none' | 'lift' | 'glow' | 'border';
109
+ padding?: 'none' | 'sm' | 'md' | 'lg';
110
+ variant?: 'default' | 'outline' | 'gradient';
119
111
  }
120
112
 
121
- export declare type OxCardVariant = 'default' | 'outline';
122
-
123
113
  export declare const OxCheckbox: default_2.FC<OxCheckboxProps>;
124
114
 
125
115
  export declare interface OxCheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'id' | 'name' | 'checked' | 'defaultChecked' | 'onChange' | 'value' | 'className' | 'required' | 'disabled' | 'size'> {
126
- id?: string;
127
- name?: string;
128
- className?: string;
129
116
  checked?: boolean;
117
+ className?: string;
130
118
  defaultChecked?: boolean;
119
+ description?: string;
131
120
  disabled?: boolean;
132
121
  error?: boolean;
122
+ errorMessage?: string;
123
+ id?: string;
124
+ label?: string;
125
+ name?: string;
126
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
133
127
  required?: boolean;
134
128
  size?: 'sm' | 'md' | 'lg';
135
129
  value?: string | number | readonly string[];
136
- onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
137
130
  }
138
131
 
139
132
  export declare const OxDescription: default_2.FC<OxDescriptionProps>;
@@ -149,49 +142,70 @@ export declare const OxDropdown: default_2.FC<OxDropdownProps>;
149
142
 
150
143
  export declare const OxDropdownContent: default_2.FC<OxDropdownContentProps>;
151
144
 
152
- export declare interface OxDropdownContentProps extends DropdownBaseProps {
145
+ export declare interface OxDropdownContentProps {
146
+ align?: FloatingAlign;
147
+ children: default_2.ReactNode;
148
+ className?: string;
149
+ side?: FloatingPosition;
150
+ }
151
+
152
+ export declare const OxDropdownFooter: React.FC<OxDropdownFooterProps>;
153
+
154
+ export declare interface OxDropdownFooterProps {
155
+ children: default_2.ReactNode;
156
+ className?: string;
157
+ }
158
+
159
+ export declare const OxDropdownHeader: React.FC<OxDropdownHeaderProps>;
160
+
161
+ export declare interface OxDropdownHeaderProps {
153
162
  children: default_2.ReactNode;
154
- align?: 'start' | 'end';
155
- side?: 'top' | 'right' | 'bottom' | 'left';
163
+ className?: string;
156
164
  }
157
165
 
158
166
  export declare const OxDropdownItem: default_2.FC<OxDropdownItemProps>;
159
167
 
160
- export declare interface OxDropdownItemProps extends DropdownBaseProps {
168
+ export declare interface OxDropdownItemProps {
161
169
  children: default_2.ReactNode;
162
- onClick?: (event: default_2.MouseEvent<HTMLButtonElement>) => void;
170
+ className?: string;
163
171
  disabled?: boolean;
164
- href?: string;
165
172
  icon?: string;
166
- target?: '_self' | '_blank' | '_parent' | '_top';
173
+ onClick?: (event: default_2.MouseEvent<HTMLButtonElement>) => void;
174
+ unstyled?: boolean;
167
175
  }
168
176
 
169
- export declare interface OxDropdownProps extends DropdownBaseProps {
170
- defaultOpen?: boolean;
171
- open?: boolean;
172
- onOpenChange?: (open: boolean) => void;
177
+ export declare interface OxDropdownProps {
173
178
  children: default_2.ReactNode;
179
+ className?: string;
180
+ defaultOpen?: boolean;
174
181
  disabled?: boolean;
182
+ onOpenChange?: (open: boolean) => void;
183
+ open?: boolean;
175
184
  }
176
185
 
177
186
  export declare const OxDropdownSeparator: default_2.FC<OxDropdownSeparatorProps>;
178
187
 
179
- export declare type OxDropdownSeparatorProps = DropdownBaseProps;
188
+ export declare interface OxDropdownSeparatorProps {
189
+ className?: string;
190
+ }
180
191
 
181
- export declare const OxDropdownShortcut: default_2.FC<DropdownShortcutProps>;
192
+ export declare const OxDropdownShortcut: default_2.FC<OxDropdownShortcutProps>;
182
193
 
183
- export declare interface OxDropdownShortcutProps extends DropdownBaseProps {
194
+ export declare interface OxDropdownShortcutProps {
184
195
  children: default_2.ReactNode;
196
+ className?: string;
185
197
  }
186
198
 
187
199
  export declare const OxDropdownTrigger: default_2.FC<OxDropdownTriggerProps>;
188
200
 
189
- export declare interface OxDropdownTriggerProps extends DropdownBaseProps {
201
+ export declare interface OxDropdownTriggerProps extends Omit<default_2.ButtonHTMLAttributes<HTMLButtonElement>, 'disabled' | 'className' | 'children' | 'type'> {
202
+ animateIcon?: boolean;
190
203
  children: default_2.ReactNode;
191
- outline?: boolean;
204
+ className?: string;
192
205
  disabled?: boolean;
193
206
  icon?: string;
194
- animateIcon?: boolean;
207
+ outline?: boolean;
208
+ unstyled?: boolean;
195
209
  }
196
210
 
197
211
  export declare const OxErrorMessage: default_2.FC<OxErrorMessageProps>;
@@ -199,70 +213,57 @@ export declare const OxErrorMessage: default_2.FC<OxErrorMessageProps>;
199
213
  export declare interface OxErrorMessageProps {
200
214
  children?: React.ReactNode;
201
215
  className?: string;
202
- id?: string;
203
216
  icon?: string;
217
+ id?: string;
204
218
  }
205
219
 
206
220
  export declare const OxForm: default_2.FC<OxFormProps>;
207
221
 
208
- export declare const OxFormField: default_2.FC<OxFormFieldProps>;
209
-
210
- export declare interface OxFormFieldContextProps {
211
- id?: string;
212
- disabled?: boolean;
213
- name?: string;
214
- error?: string;
215
- required?: boolean;
216
- descriptionId?: string;
217
- errorId?: string;
218
- }
219
-
220
- export declare interface OxFormFieldProps {
222
+ export declare interface OxFormProps extends Omit<React.FormHTMLAttributes<HTMLFormElement>, 'className' | 'noValidate'> {
221
223
  children: React.ReactNode;
222
224
  className?: string;
223
- error?: string;
224
- disabled?: boolean;
225
225
  fullWidth?: boolean;
226
- id?: string;
227
- name?: string;
228
- orientation?: 'vertical' | 'horizontal';
229
- spacing?: 'tight' | 'default' | 'relaxed';
230
- required?: boolean;
231
- hideError?: boolean;
226
+ noValidate?: boolean;
232
227
  }
233
228
 
234
- export declare interface OxFormProps extends React.FormHTMLAttributes<HTMLFormElement> {
229
+ export declare const OxGuestRoute: ({ children, onAuthenticated, onLoading, }: OxGuestRouteProps) => ReactNode;
230
+
231
+ export declare interface OxGuestRouteProps {
235
232
  children: React.ReactNode;
236
- className?: string;
237
- fullWidth?: boolean;
233
+ onAuthenticated?: React.ReactNode;
234
+ onLoading?: React.ReactNode;
238
235
  }
239
236
 
240
237
  export declare const OxIcon: React.FC<OxIconProps>;
241
238
 
242
239
  export declare interface OxIconProps {
240
+ className?: string;
243
241
  icon: string;
244
242
  size?: number;
245
- className?: string;
243
+ style?: React.CSSProperties;
246
244
  }
247
245
 
248
246
  export declare const OxInput: default_2.FC<OxInputProps>;
249
247
 
250
248
  export declare interface OxInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'name' | 'id' | 'value' | 'onChange' | 'className' | 'readOnly' | 'required' | 'disabled' | 'placeholder'> {
251
- ref?: React.RefObject<HTMLInputElement>;
252
- id?: string;
253
249
  className?: string;
254
- placeholder?: string;
255
- type?: 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';
256
- value?: string | number;
257
- onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
250
+ description?: string;
258
251
  disabled?: boolean;
259
252
  error?: boolean;
260
- required?: boolean;
253
+ errorMessage?: string | string[];
261
254
  icon?: string;
262
255
  iconPosition?: 'left' | 'right';
263
- readOnly?: boolean;
256
+ id?: string;
257
+ label?: string;
264
258
  name?: string;
259
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
260
+ placeholder?: string;
261
+ readOnly?: boolean;
262
+ ref?: React.RefObject<HTMLInputElement>;
263
+ required?: boolean;
265
264
  showMaxLength?: boolean;
265
+ type?: 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';
266
+ value?: string | number;
266
267
  }
267
268
 
268
269
  export declare const OxLabel: default_2.FC<OxLabelProps>;
@@ -270,9 +271,41 @@ export declare const OxLabel: default_2.FC<OxLabelProps>;
270
271
  export declare interface OxLabelProps {
271
272
  children: React.ReactNode;
272
273
  className?: string;
274
+ disabled?: boolean;
273
275
  htmlFor?: string;
274
276
  required?: boolean;
277
+ }
278
+
279
+ export declare const OxNotificationDropdown: default_2.FC<OxNotificationDropdownProps>;
280
+
281
+ export declare interface OxNotificationDropdownProps {
282
+ className?: string;
275
283
  disabled?: boolean;
284
+ emptyMessage?: string;
285
+ maxHeight?: string;
286
+ notifications: OxNotificationProps[];
287
+ onMarkAllRead?: () => void;
288
+ onNotificationClick?: (notification: OxNotificationProps) => void;
289
+ unreadCount?: number;
290
+ }
291
+
292
+ export declare interface OxNotificationProps {
293
+ icon?: string;
294
+ id: string;
295
+ img?: string;
296
+ message?: string;
297
+ read: boolean;
298
+ timestamp: Date;
299
+ title: string;
300
+ type?: 'default' | 'info' | 'success' | 'warning' | 'error';
301
+ }
302
+
303
+ export declare const OxProtectedRoute: ({ children, onLoading, onUnauthenticated, }: OxProtectedRouteProps) => ReactNode;
304
+
305
+ export declare interface OxProtectedRouteProps {
306
+ children: React.ReactNode;
307
+ onLoading?: React.ReactNode;
308
+ onUnauthenticated?: React.ReactNode;
276
309
  }
277
310
 
278
311
  export declare const OxSelect: default_2.FC<OxSelectProps>;
@@ -295,14 +328,17 @@ export declare interface OxSelectOptionProps {
295
328
  }
296
329
 
297
330
  export declare interface OxSelectProps {
298
- badgeColor?: BadgeColor;
331
+ badgeColor?: OxBadgeColor;
299
332
  children: React.ReactNode;
300
333
  className?: string;
301
334
  defaultValue?: string | string[] | number | number[];
335
+ description?: string;
302
336
  disabled?: boolean;
303
337
  displayAsBadges?: boolean;
304
338
  error?: boolean;
339
+ errorMessage?: string;
305
340
  id?: string;
341
+ label?: string;
306
342
  multiple?: boolean;
307
343
  name?: string;
308
344
  onChange?: (value: string | number | null | (string | number | null)[], name?: string) => void;
@@ -312,43 +348,41 @@ export declare interface OxSelectProps {
312
348
 
313
349
  export declare const OxSkeleton: default_2.FC<OxSkeletonProps>;
314
350
 
315
- export declare type OxSkeletonColor = 'default' | 'purple' | 'blue' | 'gray';
316
-
317
351
  export declare interface OxSkeletonProps extends HTMLAttributes<HTMLDivElement> {
318
352
  animate?: boolean;
319
353
  className?: string;
320
- color?: OxSkeletonColor;
354
+ color?: 'default' | 'purple' | 'blue' | 'gray';
321
355
  fullWidth?: boolean;
322
356
  height?: string | number;
323
- shape?: OxSkeletonShape;
357
+ shape?: 'rectangle' | 'circle';
324
358
  width?: string | number;
325
359
  }
326
360
 
327
- export declare type OxSkeletonShape = 'rectangle' | 'circle';
328
-
329
361
  export declare const OxSkeletonText: default_2.FC<OxSkeletonTextProps>;
330
362
 
331
363
  export declare interface OxSkeletonTextProps extends Omit<OxSkeletonProps, 'shape' | 'width'> {
364
+ gap?: number;
332
365
  lines?: number;
333
366
  width?: number | number[];
334
- gap?: number;
335
367
  }
336
368
 
337
369
  export declare const OxTextarea: default_2.FC<OxTextareaProps>;
338
370
 
339
- export declare interface OxTextareaProps extends Omit<default_2.TextareaHTMLAttributes<HTMLTextAreaElement>, 'id' | 'name' | 'className' | 'onChange' | 'value' | 'readOnly' | 'required' | 'disabled'> {
371
+ export declare interface OxTextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'id' | 'name' | 'className' | 'onChange' | 'value' | 'readOnly' | 'required' | 'disabled' | 'placeholder'> {
340
372
  className?: string;
373
+ description?: string;
341
374
  disabled?: boolean;
342
375
  error?: boolean;
376
+ errorMessage?: string;
343
377
  id?: string;
378
+ label?: string;
344
379
  name?: string;
345
- onChange?: (event: default_2.ChangeEvent<HTMLTextAreaElement>) => void;
380
+ onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;
381
+ placeholder?: string;
346
382
  readOnly?: boolean;
347
383
  required?: boolean;
348
384
  showMaxLength?: boolean;
349
385
  value?: string;
350
386
  }
351
387
 
352
- export declare const useFormFieldContext: () => OxFormFieldContextProps;
353
-
354
388
  export { }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/jsx-runtime-CITbqOLs.js"),m=require("react"),r=require("../chunks/Button-CU-zvMVL.js"),f=require("../chunks/constants-B1_n9ezb.js"),v=({brand:t,children:n,className:o,hasSidebar:s=!1,navClassName:i,toggleSidebar:a})=>e.jsxRuntimeExports.jsx("header",{className:r.twMerge("fixed top-0 z-50 h-15 w-full border-b border-neutral-800 bg-zinc-1000/50 backdrop-blur-xl",o),children:e.jsxRuntimeExports.jsxs("nav",{className:r.twMerge("mx-auto flex max-w-10xl items-center justify-between px-4 py-2.5",i),children:[e.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[s?e.jsxRuntimeExports.jsx(r.OxButton,{"aria-label":"Open menu",icon:"mdiMenu",size:"md",variant:"ghost",onClick:a}):null,t?e.jsxRuntimeExports.jsx("div",{children:t}):null]}),n]})}),p=m.createContext({collapsed:!1}),b="h-15",w=({brand:t,children:n,className:o,collapsed:s=!1,onClose:i})=>{const a=m.useMemo(()=>({collapsed:s}),[s]);m.useEffect(()=>{const x=()=>{window.innerWidth<f.MOBILE_BREAKPOINT&&!s?document.body.classList.add("overflow-hidden"):document.body.classList.remove("overflow-hidden")};return x(),window.addEventListener("resize",x),()=>{document.body.classList.remove("overflow-hidden"),window.removeEventListener("resize",x)}},[s]);const l=t||i;return e.jsxRuntimeExports.jsxs(p.Provider,{value:a,children:[e.jsxRuntimeExports.jsxs("nav",{"aria-label":"Mobile navigation",className:r.twMerge("fixed inset-0 top-0 z-50 flex h-screen flex-col bg-zinc-1000/50 backdrop-blur-xl transition-transform duration-300 md:hidden",s?"-translate-x-full":"translate-x-0",o),role:"navigation",children:[l?e.jsxRuntimeExports.jsxs("div",{className:r.twJoin(b,"flex h-15 items-center gap-3 border-b border-neutral-800 px-4"),children:[i?e.jsxRuntimeExports.jsx(r.OxButton,{"aria-label":"Close sidebar",icon:"mdiClose",variant:"ghost",onClick:i}):null,t||null]}):null,n]}),e.jsxRuntimeExports.jsxs("nav",{"aria-label":"Desktop navigation",className:r.twMerge("fixed z-40 hidden flex-col border-r border-neutral-800 bg-zinc-1000/50 text-white backdrop-blur-xl md:flex",t?"top-0 h-screen":"viewport-minus-header",s?"w-16":"w-64",o),role:"navigation",children:[t&&!s?e.jsxRuntimeExports.jsx("div",{"aria-label":s?"Navigation collapsed":"Navigation expanded",className:r.twJoin(b,"flex items-center border-b border-neutral-800 px-4"),children:t}):null,n]})]})},j=()=>m.useContext(p),E=({children:t,className:n,disabled:o=!1,icon:s,isActive:i=!1,...a})=>{const{collapsed:l}=j(),x=r.twMerge("flex cursor-pointer items-center rounded-lg text-sm font-medium transition-colors",l?"size-10 justify-center":"h-10 w-full gap-3 px-3",i?"bg-white/10 text-white":o?"cursor-not-allowed text-neutral-500":"secondary-inset-focus text-neutral-300 hover:bg-white/6 hover:text-white",n);if("href"in a&&a.href){const{href:c,...g}=a;return e.jsxRuntimeExports.jsxs("a",{"aria-current":i?"page":void 0,className:x,href:o?void 0:c,onClick:o?h=>h.preventDefault():void 0,...g,children:[e.jsxRuntimeExports.jsx("span",{className:"flex items-center",children:e.jsxRuntimeExports.jsx(r.OxIcon,{icon:s,size:.8})}),!l&&t?t:null]})}const{onClick:d,...u}=a;return e.jsxRuntimeExports.jsxs("button",{className:x,disabled:o,type:"button",onClick:o?void 0:d,...u,children:[e.jsxRuntimeExports.jsx("span",{className:"flex items-center",children:e.jsxRuntimeExports.jsx(r.OxIcon,{icon:s,size:.8})}),!l&&t?t:null]})},R=({children:t,className:n,headline:o})=>{const{collapsed:s}=j();return e.jsxRuntimeExports.jsxs("div",{className:r.twMerge("flex flex-col gap-1",n),children:[s?null:e.jsxRuntimeExports.jsx("h3",{className:"mb-2 cursor-default px-3 text-xs font-medium text-neutral-400",children:o}),t]})},N=({children:t,className:n})=>e.jsxRuntimeExports.jsx("div",{className:r.twMerge("flex-1 space-y-1 overflow-y-auto p-4",n),children:t}),O=({children:t,className:n})=>e.jsxRuntimeExports.jsx("div",{className:r.twMerge("border-t border-neutral-800 p-4",n),children:t}),y={purple:{border:"border-purple-500/20",bg:"bg-purple-500/10",text:"text-purple-400"},blue:{border:"border-blue-500/20",bg:"bg-blue-500/10",text:"text-blue-400"},emerald:{border:"border-emerald-500/20",bg:"bg-emerald-500/10",text:"text-emerald-400"},orange:{border:"border-orange-500/20",bg:"bg-orange-500/10",text:"text-orange-400"},rose:{border:"border-rose-500/20",bg:"bg-rose-500/10",text:"text-rose-400"},amber:{border:"border-amber-500/20",bg:"bg-amber-500/10",text:"text-amber-400"},cyan:{border:"border-cyan-500/20",bg:"bg-cyan-500/10",text:"text-cyan-400"},indigo:{border:"border-indigo-500/20",bg:"bg-indigo-500/10",text:"text-indigo-400"}},M=({children:t,className:n,collapsed:o=!1,color:s="purple",hasHeader:i=!1,hasSidebar:a=!1,icon:l,subtitle:x,title:d})=>{const u=d||x||l,c=y[s];return e.jsxRuntimeExports.jsxs("main",{"aria-labelledby":u?"main-headline":void 0,className:r.twMerge("m-auto max-w-10xl overflow-y-auto p-6",i&&"mt-15 h-[calc(100vh-60px)]",a&&(o?"md:ml-16":"md:ml-64"),n),children:[u&&e.jsxRuntimeExports.jsx("div",{className:"mb-8 border-b border-neutral-800 pb-6",children:e.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[l&&e.jsxRuntimeExports.jsx("div",{className:r.twJoin("rounded-lg border p-3",c.border,c.bg),children:e.jsxRuntimeExports.jsx(r.OxIcon,{className:r.twJoin(c.text),icon:l,size:1.41})}),e.jsxRuntimeExports.jsxs("div",{children:[d&&e.jsxRuntimeExports.jsx("h1",{id:"main-headline",className:"text-3xl font-bold text-white",children:d}),x&&e.jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-neutral-400",children:x})]})]})}),t]})};exports.OxHeader=v;exports.OxMainContent=M;exports.OxSidebar=w;exports.OxSidebarBody=N;exports.OxSidebarFooter=O;exports.OxSidebarGroup=R;exports.OxSidebarItem=E;