@noxickon/onyx 0.0.1 → 0.0.2

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-CLMaoxRW.js +11054 -0
  2. package/dist/chunks/Button-CZYAHivj.js +20 -0
  3. package/dist/chunks/Input-BQQT5eZ0.js +138 -0
  4. package/dist/chunks/Input-DJZcvJdP.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-1-zQ3RaM.js +601 -0
  10. package/dist/chunks/index-BgUMV1hv.js +2129 -0
  11. package/dist/chunks/index-CjVXr8mh.js +2 -0
  12. package/dist/chunks/index-XTQUUzZ1.js +22 -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-C5mzlN2N.js +284 -0
  16. package/dist/chunks/jsx-runtime-DUiatUiq.js +22 -0
  17. package/dist/chunks/useAuth-C-TIgBfr.js +61 -0
  18. package/dist/chunks/useAuth-CfKOZqhG.js +10 -0
  19. package/dist/chunks/useForm-BIKRbGHj.js +3085 -0
  20. package/dist/chunks/useForm-BZEaiRaa.js +26 -0
  21. package/dist/chunks/useQuery-B_ce5e8f.js +2 -0
  22. package/dist/chunks/useQuery-CJdYhuQu.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 +148 -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 +12 -0
  35. package/dist/onyx.es.js +2523 -9494
  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 +41 -16
  41. package/dist/onyx.umd.js +0 -42
package/dist/index.d.ts CHANGED
@@ -1,19 +1,16 @@
1
1
  import { default as default_2 } from 'react';
2
2
  import { HTMLAttributes } from 'react';
3
+ import { JSX } from 'react/jsx-runtime';
4
+ import { JSXElementConstructor } from 'react';
5
+ import { ReactElement } from 'react';
3
6
  import { ReactNode } from 'react';
7
+ import { ReactPortal } from 'react';
4
8
 
5
- export declare type BadgeColor = 'purple' | 'lime' | 'red' | 'yellow' | 'green' | 'blue' | 'indigo' | 'pink' | 'amber' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'violet' | 'fuchsia' | 'gray';
9
+ declare type CardColor = 'purple' | 'blue' | 'emerald' | 'orange' | 'rose' | 'amber' | 'cyan' | 'indigo';
6
10
 
7
- export declare type BadgeSize = 'sm' | 'md' | 'lg';
11
+ declare type FloatingAlign = 'start' | 'center' | 'end';
8
12
 
9
- declare interface DropdownBaseProps {
10
- className?: string;
11
- }
12
-
13
- declare interface DropdownShortcutProps {
14
- children: default_2.ReactNode;
15
- className?: string;
16
- }
13
+ declare type FloatingPosition = 'top' | 'bottom' | 'left' | 'right';
17
14
 
18
15
  export declare const OxAvatar: default_2.FC<OxAvatarProps>;
19
16
 
@@ -23,12 +20,12 @@ export declare interface OxAvatarImageProps {
23
20
  alt: string;
24
21
  className?: string;
25
22
  fallback?: string | ReactNode;
26
- skeleton?: boolean;
27
- size?: OxAvatarSize;
28
23
  showStatus?: boolean;
24
+ size?: OxAvatarSize;
25
+ skeleton?: boolean;
29
26
  src: string;
30
- status?: OxAvatarStatus;
31
- type?: OxAvatarType;
27
+ status?: 'online' | 'offline' | 'away' | 'busy';
28
+ type?: 'rounded' | 'square';
32
29
  }
33
30
 
34
31
  export declare interface OxAvatarProps {
@@ -38,8 +35,6 @@ export declare interface OxAvatarProps {
38
35
 
39
36
  export declare type OxAvatarSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
40
37
 
41
- export declare type OxAvatarStatus = 'online' | 'offline' | 'away' | 'busy';
42
-
43
38
  export declare const OxAvatarText: default_2.FC<OxAvatarTextProps>;
44
39
 
45
40
  export declare interface OxAvatarTextProps {
@@ -49,35 +44,32 @@ export declare interface OxAvatarTextProps {
49
44
  username: string;
50
45
  }
51
46
 
52
- export declare type OxAvatarType = 'rounded' | 'square';
53
-
54
47
  export declare const OxBadge: default_2.FC<OxBadgeProps>;
55
48
 
49
+ export declare type OxBadgeColor = 'purple' | 'lime' | 'red' | 'yellow' | 'green' | 'blue' | 'indigo' | 'pink' | 'amber' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'violet' | 'fuchsia' | 'gray';
50
+
56
51
  export declare interface OxBadgeProps {
52
+ bgColor?: string;
57
53
  children: ReactNode;
58
54
  className?: string;
59
- color?: BadgeColor;
60
- bgColor?: string;
55
+ color?: OxBadgeColor;
56
+ size?: 'sm' | 'md' | 'lg';
61
57
  textColor?: string;
62
- size?: BadgeSize;
63
58
  }
64
59
 
65
60
  export declare const OxButton: default_2.FC<OxButtonProps>;
66
61
 
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;
62
+ export declare interface OxButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'disabled' | 'className' | 'children'> {
70
63
  children?: React.ReactNode;
71
- type?: 'button' | 'submit' | 'reset';
72
- variant?: 'primary' | 'secondary' | 'ghost' | 'link';
73
- size?: 'sm' | 'md' | 'lg';
74
- disabled?: boolean;
75
64
  className?: string;
65
+ disabled?: boolean;
76
66
  fullWidth?: boolean;
77
- isLoading?: boolean;
78
67
  icon?: string;
79
68
  iconAlign?: 'left' | 'right';
80
- onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
69
+ isLoading?: boolean;
70
+ size?: 'sm' | 'md' | 'lg';
71
+ type?: 'button' | 'submit' | 'reset';
72
+ variant?: 'primary' | 'secondary' | 'ghost' | 'link';
81
73
  }
82
74
 
83
75
  export declare const OxCard: default_2.FC<OxCardProps>;
@@ -85,55 +77,60 @@ export declare const OxCard: default_2.FC<OxCardProps>;
85
77
  export declare const OxCardContent: default_2.FC<OxCardContentProps>;
86
78
 
87
79
  export declare interface OxCardContentProps extends React.HTMLAttributes<HTMLDivElement> {
88
- className?: string;
89
80
  children: React.ReactNode;
81
+ className?: string;
90
82
  flexGrow?: boolean;
91
83
  }
92
84
 
93
85
  export declare const OxCardFooter: default_2.FC<OxCardFooterProps>;
94
86
 
95
87
  export declare interface OxCardFooterProps extends HTMLAttributes<HTMLDivElement> {
96
- className?: string;
97
88
  children: ReactNode;
89
+ className?: string;
98
90
  }
99
91
 
100
92
  export declare const OxCardHeader: default_2.FC<OxCardHeaderProps>;
101
93
 
102
94
  export declare interface OxCardHeaderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
103
- className?: string;
104
- title?: ReactNode;
105
- subtitle?: ReactNode;
106
95
  action?: ReactNode;
107
96
  children?: ReactNode;
97
+ className?: string;
98
+ color?: CardColor;
99
+ icon?: string;
100
+ iconColor?: CardColor;
101
+ subtitle?: ReactNode;
102
+ title?: ReactNode;
108
103
  }
109
104
 
110
- export declare type OxCardPadding = 'none' | 'sm' | 'md' | 'lg';
111
-
112
105
  export declare interface OxCardProps extends HTMLAttributes<HTMLDivElement> {
113
- variant?: OxCardVariant;
114
- padding?: OxCardPadding;
115
- hoverable?: boolean;
116
- className?: string;
106
+ backdropBlur?: boolean;
117
107
  children: ReactNode;
108
+ className?: string;
109
+ color?: CardColor;
118
110
  equalHeight?: boolean;
111
+ hoverable?: boolean;
112
+ hoverVariant?: 'none' | 'lift' | 'glow' | 'border';
113
+ padding?: 'none' | 'sm' | 'md' | 'lg';
114
+ variant?: 'default' | 'outline' | 'gradient';
119
115
  }
120
116
 
121
- export declare type OxCardVariant = 'default' | 'outline';
122
-
123
117
  export declare const OxCheckbox: default_2.FC<OxCheckboxProps>;
124
118
 
125
119
  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
120
  checked?: boolean;
121
+ className?: string;
130
122
  defaultChecked?: boolean;
123
+ description?: string;
131
124
  disabled?: boolean;
132
125
  error?: boolean;
126
+ errorMessage?: string;
127
+ id?: string;
128
+ label?: string;
129
+ name?: string;
130
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
133
131
  required?: boolean;
134
132
  size?: 'sm' | 'md' | 'lg';
135
133
  value?: string | number | readonly string[];
136
- onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
137
134
  }
138
135
 
139
136
  export declare const OxDescription: default_2.FC<OxDescriptionProps>;
@@ -149,49 +146,70 @@ export declare const OxDropdown: default_2.FC<OxDropdownProps>;
149
146
 
150
147
  export declare const OxDropdownContent: default_2.FC<OxDropdownContentProps>;
151
148
 
152
- export declare interface OxDropdownContentProps extends DropdownBaseProps {
149
+ export declare interface OxDropdownContentProps {
150
+ align?: FloatingAlign;
151
+ children: default_2.ReactNode;
152
+ className?: string;
153
+ side?: FloatingPosition;
154
+ }
155
+
156
+ export declare const OxDropdownFooter: React.FC<OxDropdownFooterProps>;
157
+
158
+ export declare interface OxDropdownFooterProps {
159
+ children: default_2.ReactNode;
160
+ className?: string;
161
+ }
162
+
163
+ export declare const OxDropdownHeader: React.FC<OxDropdownHeaderProps>;
164
+
165
+ export declare interface OxDropdownHeaderProps {
153
166
  children: default_2.ReactNode;
154
- align?: 'start' | 'end';
155
- side?: 'top' | 'right' | 'bottom' | 'left';
167
+ className?: string;
156
168
  }
157
169
 
158
170
  export declare const OxDropdownItem: default_2.FC<OxDropdownItemProps>;
159
171
 
160
- export declare interface OxDropdownItemProps extends DropdownBaseProps {
172
+ export declare interface OxDropdownItemProps {
161
173
  children: default_2.ReactNode;
162
- onClick?: (event: default_2.MouseEvent<HTMLButtonElement>) => void;
174
+ className?: string;
163
175
  disabled?: boolean;
164
- href?: string;
165
176
  icon?: string;
166
- target?: '_self' | '_blank' | '_parent' | '_top';
177
+ onClick?: (event: default_2.MouseEvent<HTMLButtonElement>) => void;
178
+ unstyled?: boolean;
167
179
  }
168
180
 
169
- export declare interface OxDropdownProps extends DropdownBaseProps {
170
- defaultOpen?: boolean;
171
- open?: boolean;
172
- onOpenChange?: (open: boolean) => void;
181
+ export declare interface OxDropdownProps {
173
182
  children: default_2.ReactNode;
183
+ className?: string;
184
+ defaultOpen?: boolean;
174
185
  disabled?: boolean;
186
+ onOpenChange?: (open: boolean) => void;
187
+ open?: boolean;
175
188
  }
176
189
 
177
190
  export declare const OxDropdownSeparator: default_2.FC<OxDropdownSeparatorProps>;
178
191
 
179
- export declare type OxDropdownSeparatorProps = DropdownBaseProps;
192
+ export declare interface OxDropdownSeparatorProps {
193
+ className?: string;
194
+ }
180
195
 
181
- export declare const OxDropdownShortcut: default_2.FC<DropdownShortcutProps>;
196
+ export declare const OxDropdownShortcut: default_2.FC<OxDropdownShortcutProps>;
182
197
 
183
- export declare interface OxDropdownShortcutProps extends DropdownBaseProps {
198
+ export declare interface OxDropdownShortcutProps {
184
199
  children: default_2.ReactNode;
200
+ className?: string;
185
201
  }
186
202
 
187
203
  export declare const OxDropdownTrigger: default_2.FC<OxDropdownTriggerProps>;
188
204
 
189
- export declare interface OxDropdownTriggerProps extends DropdownBaseProps {
205
+ export declare interface OxDropdownTriggerProps extends Omit<default_2.ButtonHTMLAttributes<HTMLButtonElement>, 'disabled' | 'className' | 'children' | 'type'> {
206
+ animateIcon?: boolean;
190
207
  children: default_2.ReactNode;
191
- outline?: boolean;
208
+ className?: string;
192
209
  disabled?: boolean;
193
210
  icon?: string;
194
- animateIcon?: boolean;
211
+ outline?: boolean;
212
+ unstyled?: boolean;
195
213
  }
196
214
 
197
215
  export declare const OxErrorMessage: default_2.FC<OxErrorMessageProps>;
@@ -199,70 +217,57 @@ export declare const OxErrorMessage: default_2.FC<OxErrorMessageProps>;
199
217
  export declare interface OxErrorMessageProps {
200
218
  children?: React.ReactNode;
201
219
  className?: string;
202
- id?: string;
203
220
  icon?: string;
221
+ id?: string;
204
222
  }
205
223
 
206
224
  export declare const OxForm: default_2.FC<OxFormProps>;
207
225
 
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 {
226
+ export declare interface OxFormProps extends Omit<React.FormHTMLAttributes<HTMLFormElement>, 'className' | 'noValidate'> {
221
227
  children: React.ReactNode;
222
228
  className?: string;
223
- error?: string;
224
- disabled?: boolean;
225
229
  fullWidth?: boolean;
226
- id?: string;
227
- name?: string;
228
- orientation?: 'vertical' | 'horizontal';
229
- spacing?: 'tight' | 'default' | 'relaxed';
230
- required?: boolean;
231
- hideError?: boolean;
230
+ noValidate?: boolean;
232
231
  }
233
232
 
234
- export declare interface OxFormProps extends React.FormHTMLAttributes<HTMLFormElement> {
233
+ export declare const OxGuestRoute: ({ children, fallback, redirectTo, }: OxGuestRouteProps) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | ReactPortal | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | JSX.Element | null | undefined;
234
+
235
+ export declare interface OxGuestRouteProps {
235
236
  children: React.ReactNode;
236
- className?: string;
237
- fullWidth?: boolean;
237
+ fallback?: React.ReactNode;
238
+ redirectTo?: string;
238
239
  }
239
240
 
240
241
  export declare const OxIcon: React.FC<OxIconProps>;
241
242
 
242
243
  export declare interface OxIconProps {
244
+ className?: string;
243
245
  icon: string;
244
246
  size?: number;
245
- className?: string;
247
+ style?: React.CSSProperties;
246
248
  }
247
249
 
248
250
  export declare const OxInput: default_2.FC<OxInputProps>;
249
251
 
250
252
  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
253
  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;
254
+ description?: string;
258
255
  disabled?: boolean;
259
256
  error?: boolean;
260
- required?: boolean;
257
+ errorMessage?: string | string[];
261
258
  icon?: string;
262
259
  iconPosition?: 'left' | 'right';
263
- readOnly?: boolean;
260
+ id?: string;
261
+ label?: string;
264
262
  name?: string;
263
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
264
+ placeholder?: string;
265
+ readOnly?: boolean;
266
+ ref?: React.RefObject<HTMLInputElement>;
267
+ required?: boolean;
265
268
  showMaxLength?: boolean;
269
+ type?: 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';
270
+ value?: string | number;
266
271
  }
267
272
 
268
273
  export declare const OxLabel: default_2.FC<OxLabelProps>;
@@ -270,9 +275,41 @@ export declare const OxLabel: default_2.FC<OxLabelProps>;
270
275
  export declare interface OxLabelProps {
271
276
  children: React.ReactNode;
272
277
  className?: string;
278
+ disabled?: boolean;
273
279
  htmlFor?: string;
274
280
  required?: boolean;
281
+ }
282
+
283
+ export declare const OxNotificationDropdown: default_2.FC<OxNotificationDropdownProps>;
284
+
285
+ export declare interface OxNotificationDropdownProps {
286
+ className?: string;
275
287
  disabled?: boolean;
288
+ emptyMessage?: string;
289
+ maxHeight?: string;
290
+ notifications: OxNotificationProps[];
291
+ onMarkAllRead?: () => void;
292
+ onNotificationClick?: (notification: OxNotificationProps) => void;
293
+ unreadCount?: number;
294
+ }
295
+
296
+ export declare interface OxNotificationProps {
297
+ icon?: string;
298
+ id: string;
299
+ img?: string;
300
+ message?: string;
301
+ read: boolean;
302
+ timestamp: Date;
303
+ title: string;
304
+ type?: 'default' | 'info' | 'success' | 'warning' | 'error';
305
+ }
306
+
307
+ export declare const OxProtectedRoute: ({ children, fallback, redirectTo, }: OxProtectedRouteProps) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | ReactPortal | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | JSX.Element | null | undefined;
308
+
309
+ export declare interface OxProtectedRouteProps {
310
+ children: React.ReactNode;
311
+ fallback?: React.ReactNode;
312
+ redirectTo?: string;
276
313
  }
277
314
 
278
315
  export declare const OxSelect: default_2.FC<OxSelectProps>;
@@ -295,14 +332,17 @@ export declare interface OxSelectOptionProps {
295
332
  }
296
333
 
297
334
  export declare interface OxSelectProps {
298
- badgeColor?: BadgeColor;
335
+ badgeColor?: OxBadgeColor;
299
336
  children: React.ReactNode;
300
337
  className?: string;
301
338
  defaultValue?: string | string[] | number | number[];
339
+ description?: string;
302
340
  disabled?: boolean;
303
341
  displayAsBadges?: boolean;
304
342
  error?: boolean;
343
+ errorMessage?: string;
305
344
  id?: string;
345
+ label?: string;
306
346
  multiple?: boolean;
307
347
  name?: string;
308
348
  onChange?: (value: string | number | null | (string | number | null)[], name?: string) => void;
@@ -312,43 +352,41 @@ export declare interface OxSelectProps {
312
352
 
313
353
  export declare const OxSkeleton: default_2.FC<OxSkeletonProps>;
314
354
 
315
- export declare type OxSkeletonColor = 'default' | 'purple' | 'blue' | 'gray';
316
-
317
355
  export declare interface OxSkeletonProps extends HTMLAttributes<HTMLDivElement> {
318
356
  animate?: boolean;
319
357
  className?: string;
320
- color?: OxSkeletonColor;
358
+ color?: 'default' | 'purple' | 'blue' | 'gray';
321
359
  fullWidth?: boolean;
322
360
  height?: string | number;
323
- shape?: OxSkeletonShape;
361
+ shape?: 'rectangle' | 'circle';
324
362
  width?: string | number;
325
363
  }
326
364
 
327
- export declare type OxSkeletonShape = 'rectangle' | 'circle';
328
-
329
365
  export declare const OxSkeletonText: default_2.FC<OxSkeletonTextProps>;
330
366
 
331
367
  export declare interface OxSkeletonTextProps extends Omit<OxSkeletonProps, 'shape' | 'width'> {
368
+ gap?: number;
332
369
  lines?: number;
333
370
  width?: number | number[];
334
- gap?: number;
335
371
  }
336
372
 
337
373
  export declare const OxTextarea: default_2.FC<OxTextareaProps>;
338
374
 
339
- export declare interface OxTextareaProps extends Omit<default_2.TextareaHTMLAttributes<HTMLTextAreaElement>, 'id' | 'name' | 'className' | 'onChange' | 'value' | 'readOnly' | 'required' | 'disabled'> {
375
+ export declare interface OxTextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'id' | 'name' | 'className' | 'onChange' | 'value' | 'readOnly' | 'required' | 'disabled' | 'placeholder'> {
340
376
  className?: string;
377
+ description?: string;
341
378
  disabled?: boolean;
342
379
  error?: boolean;
380
+ errorMessage?: string;
343
381
  id?: string;
382
+ label?: string;
344
383
  name?: string;
345
- onChange?: (event: default_2.ChangeEvent<HTMLTextAreaElement>) => void;
384
+ onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;
385
+ placeholder?: string;
346
386
  readOnly?: boolean;
347
387
  required?: boolean;
348
388
  showMaxLength?: boolean;
349
389
  value?: string;
350
390
  }
351
391
 
352
- export declare const useFormFieldContext: () => OxFormFieldContextProps;
353
-
354
392
  export { }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/jsx-runtime-DUiatUiq.js"),m=require("react"),r=require("../chunks/Button-CZYAHivj.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;