suwa-ui 0.0.0-development → 1.0.0-beta.10

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 (4) hide show
  1. package/dist/index.d.ts +279 -34
  2. package/dist/styles.css +754 -744
  3. package/dist/suwa-ui.es.js +12774 -9938
  4. package/package.json +117 -105
package/dist/index.d.ts CHANGED
@@ -1,11 +1,15 @@
1
+ import { Accordion as Accordion_2 } from '@base-ui/react/accordion';
1
2
  import { AppFieldExtendedReactFieldGroupApi } from '@tanstack/react-form';
2
3
  import { AppFieldExtendedReactFormApi } from '@tanstack/react-form';
3
4
  import { Avatar as Avatar_2 } from '@base-ui/react/avatar';
4
5
  import { Checkbox as Checkbox_2 } from '@base-ui/react/checkbox';
6
+ import { CheckboxGroup as CheckboxGroup_2 } from '@base-ui/react';
5
7
  import { ClassProp } from 'class-variance-authority/types';
6
8
  import { ClassValue } from 'clsx';
9
+ import { Collapsible } from '@base-ui/react/collapsible';
7
10
  import { ComponentProps } from 'react';
8
11
  import { DeepKeysOfType } from '@tanstack/react-form';
12
+ import { default as default_2 } from 'react';
9
13
  import { Dialog as Dialog_2 } from '@base-ui/react/dialog';
10
14
  import { FieldsMap } from '@tanstack/react-form';
11
15
  import { FormAsyncValidateOrFn } from '@tanstack/react-form';
@@ -17,10 +21,10 @@ import { Input as Input_2 } from '@base-ui/react/input';
17
21
  import { JSX } from 'react/jsx-runtime';
18
22
  import { KeyboardEventHandler } from 'react';
19
23
  import { MouseEventHandler } from 'react';
24
+ import { NavigationMenu as NavigationMenu_2 } from '@base-ui/react/navigation-menu';
25
+ import { Popover as Popover_2 } from '@base-ui/react/popover';
20
26
  import { PropsWithChildren } from 'react';
21
27
  import { Ranger } from '@tanstack/react-ranger';
22
- import type * as React_2 from 'react';
23
- import { ReactNode } from 'react';
24
28
  import { RefObject } from 'react';
25
29
  import { ScrollArea as ScrollArea_2 } from '@base-ui/react/scroll-area';
26
30
  import { Separator as Separator_2 } from '@base-ui/react/separator';
@@ -33,6 +37,32 @@ import { VariantProps } from 'class-variance-authority';
33
37
  import { WithFieldGroupProps } from '@tanstack/react-form';
34
38
  import { WithFormProps } from '@tanstack/react-form';
35
39
 
40
+ export declare const Accordion: ({ className, children, ref, ...props }: AccordionProps) => JSX.Element;
41
+
42
+ export declare const AccordionItem: ({ tone, className, children, ref, ...props }: AccordionItemProps) => JSX.Element;
43
+
44
+ export declare type AccordionItemProps = default_2.ComponentProps<typeof Accordion_2.Item> & VariantProps<typeof accordionItemVariants> & default_2.ComponentProps<typeof Accordion_2.Trigger>;
45
+
46
+ declare const accordionItemVariants: (props?: ({
47
+ tone?: "primary" | "secondary" | "accent" | "neutral" | "error" | "success" | "warning" | null | undefined;
48
+ } & ClassProp) | undefined) => string;
49
+
50
+ export declare const AccordionPanel: ({ heading, className, children, ref, ...props }: AccordionPanelProps) => JSX.Element;
51
+
52
+ declare type AccordionPanelProps = default_2.ComponentProps<typeof Accordion_2.Panel> & {
53
+ heading?: string;
54
+ };
55
+
56
+ export declare type AccordionProps = default_2.ComponentProps<typeof Accordion_2.Root>;
57
+
58
+ export declare const AccordionTrigger: ({ title, subtitle, icon: Icon, className, children, ref, ...props }: AccordionTriggerProps) => JSX.Element;
59
+
60
+ export declare type AccordionTriggerProps = default_2.ComponentProps<typeof Accordion_2.Trigger> & {
61
+ title: string;
62
+ subtitle?: string;
63
+ icon?: Icon;
64
+ };
65
+
36
66
  export declare const Avatar: ({ className, children, ref, ...props }: AvatarProps) => JSX.Element;
37
67
 
38
68
  export declare const AvatarFallback: ({ className, ref, ...props }: AvatarFallbackProps) => JSX.Element;
@@ -55,31 +85,124 @@ export declare interface BadgeExtendedProps extends Omit<BadgeProps, "style">, V
55
85
  declare type BadgeProps = ComponentProps<"div">;
56
86
 
57
87
  declare const badgeVariants: (props?: ({
58
- tone?: "primary" | "secondary" | "tertiary" | "neutral" | "error" | "success" | "warning" | null | undefined;
88
+ tone?: "primary" | "secondary" | "accent" | "neutral" | "error" | "success" | "warning" | "neutralVariant" | "inverse" | null | undefined;
59
89
  style?: "solid" | "outline" | null | undefined;
60
90
  radius?: "circle" | "rounded" | null | undefined;
61
91
  } & ClassProp) | undefined) => string;
62
92
 
63
- export declare function Button({ className, children, tone, style, size, ...props }: ButtonExtendedProps): JSX.Element;
93
+ /**
94
+ * @fileoverview Button component - A versatile, accessible button component for the Suwa UI design system
95
+ * @author PHNTMbandit
96
+ * @version 1.0.0
97
+ * @since 1.0.0
98
+ * @license MIT
99
+ */
100
+ /**
101
+ * @summary A comprehensive button component with extensive customization options
102
+ * @description
103
+ * A versatile, accessible button component with multiple visual variants and sizes.
104
+ * Built with accessibility-first principles, this component supports WCAG 2.1 AA standards,
105
+ * keyboard navigation, screen readers, and provides comprehensive theming capabilities.
106
+ *
107
+ * @function
108
+ * @public
109
+ * @memberof SuwaUI
110
+ * @name Button
111
+ *
112
+ * @param {"primary"|"secondary"|"accent"|"neutral"|"error"|"success"|"warning"|"glass"} [props.tone="primary"] - The color theme variant of the button for semantic meaning
113
+ * @param {"solid"|"outline"|"ghost"} [props.style="solid"] - The visual style variant affecting background and borders
114
+ * @param {"small"|"medium"|"large"|"iconSmall"|"iconMedium"|"iconLarge"} [props.size="medium"] - The size variant controlling dimensions and typography
115
+ *
116
+ * @returns {React.ReactElement<HTMLButtonElement>} A fully accessible and styled HTML button element
117
+ *
118
+ * @example
119
+ * // Basic button usage
120
+ * <Button>Click me</Button>
121
+ *
122
+ * @example
123
+ * // Primary call-to-action button
124
+ * <Button tone="primary" size="large" onClick={handleSubmit}>
125
+ * Submit Form
126
+ * </Button>
127
+ *
128
+ * @example
129
+ * // Secondary action with outline style
130
+ * <Button tone="secondary" style="outline" onClick={handleCancel}>
131
+ * Cancel
132
+ * </Button>
133
+ *
134
+ * @example
135
+ * // Icon-only button (requires aria-label for accessibility)
136
+ * <Button
137
+ * size="iconMedium"
138
+ * aria-label="Add new item"
139
+ * onClick={handleAdd}
140
+ * >
141
+ * <PlusIcon />
142
+ * </Button>
143
+ *
144
+ * @example
145
+ * // Destructive action button
146
+ * <Button tone="error" style="solid" onClick={handleDelete}>
147
+ * Delete Account
148
+ * </Button>
149
+ *
150
+ * @example
151
+ * // Disabled button state
152
+ * <Button disabled onClick={handleAction}>
153
+ * Processing...
154
+ * </Button>
155
+ *
156
+ * @example
157
+ * // Glass morphism effect button
158
+ * <Button tone="glass" style="solid">
159
+ * Glass Effect
160
+ * </Button>
161
+ *
162
+ * @example
163
+ * // Form submission button
164
+ * <Button type="submit" tone="primary">
165
+ * Submit
166
+ * </Button>
167
+ *
168
+ * @see {@link ButtonExtendedProps} - For detailed prop interface documentation
169
+ * @see {@link buttonVariants} - For styling variant configurations
170
+ * @see {@link https://www.w3.org/WAI/WCAG21/Understanding/} - WCAG 2.1 accessibility guidelines
171
+ *
172
+ *
173
+ * @default tone "primary"
174
+ * @default style "solid"
175
+ * @default size "medium"
176
+ *
177
+ * @access public
178
+ * @readonly
179
+ * @since 1.0.0
180
+ * @version 1.0.0
181
+ */
182
+ export declare function Button({ className, children, tone, style, size, ...props }: ButtonExtendedProps): React.ReactElement<HTMLButtonElement>;
64
183
 
65
184
  export declare interface ButtonExtendedProps extends Omit<ComponentProps<"button">, "style">, VariantProps<typeof buttonVariants> {
66
185
  style?: "solid" | "outline" | "ghost";
67
186
  }
68
187
 
69
188
  declare const buttonVariants: (props?: ({
70
- tone?: "primary" | "secondary" | "neutral" | "error" | "success" | "warning" | "accent" | "glass" | null | undefined;
189
+ tone?: "primary" | "secondary" | "accent" | "neutral" | "error" | "success" | "warning" | "glass" | null | undefined;
71
190
  style?: "solid" | "outline" | "ghost" | null | undefined;
72
- size?: "small" | "medium" | "large" | "iconLarge" | "iconMedium" | "iconSmall" | null | undefined;
191
+ size?: "small" | "large" | "medium" | "iconLarge" | "iconMedium" | "iconSmall" | null | undefined;
73
192
  } & ClassProp) | undefined) => string;
74
193
 
75
- export declare const Checkbox: ({ className, ref, label, id, disabled, ...props }: CheckboxRootProps) => JSX.Element;
194
+ export declare const Checkbox: ({ className, ref, label, disabled, ...props }: CheckboxRootProps) => JSX.Element;
195
+
196
+ export declare const CheckboxGroup: ({ className, children, ref, ...props }: CheckboxGroupProps) => JSX.Element;
197
+
198
+ export declare type CheckboxGroupProps = React.ComponentProps<typeof CheckboxGroup_2>;
76
199
 
77
200
  export declare const CheckboxIndicator: ({ className, ...props }: CheckboxIndicatorProps) => JSX.Element;
78
201
 
79
202
  export declare type CheckboxIndicatorProps = ComponentProps<typeof Checkbox_2.Indicator>;
80
203
 
81
204
  export declare type CheckboxRootProps = ComponentProps<typeof Checkbox_2.Root> & {
82
- label?: ReactNode;
205
+ label?: string;
83
206
  };
84
207
 
85
208
  export declare function cn(...inputs: Array<ClassValue>): string;
@@ -90,11 +213,15 @@ export declare const DialogClose: ({ className, children, ref, ...props }: Dialo
90
213
 
91
214
  export declare type DialogCloseProps = ComponentProps<typeof Dialog_2.Close>;
92
215
 
216
+ export declare const DialogContent: ({ className, children, ref, ...props }: DialogContentProps) => JSX.Element;
217
+
218
+ declare type DialogContentProps = React.ComponentProps<"div">;
219
+
93
220
  export declare const DialogDescription: ({ className, children, ref, ...props }: DialogDescriptionProps) => JSX.Element;
94
221
 
95
222
  export declare type DialogDescriptionProps = ComponentProps<typeof Dialog_2.Description>;
96
223
 
97
- export declare const DialogPopup: ({ className, children, showCloseButton, ref, ...props }: DialogPopupProps) => JSX.Element;
224
+ export declare const DialogPopup: ({ showCloseButton, className, children, ref, ...props }: DialogPopupProps) => JSX.Element;
98
225
 
99
226
  export declare type DialogPopupProps = ComponentProps<typeof Dialog_2.Popup> & {
100
227
  showCloseButton?: boolean;
@@ -175,17 +302,68 @@ export declare type FormErrorsProps = ComponentProps<"div">;
175
302
 
176
303
  export declare const FormSubmit: ({ submittingText, className, children, ref, ...props }: FieldSubmitButtonProps) => JSX.Element;
177
304
 
178
- export declare const Input: ({ leadingIcon, showSeparator, className, ref, ...props }: InputProps) => JSX.Element;
305
+ export declare const Input: ({ leadingIcon: Icon, children, className, ref, ...props }: InputProps) => JSX.Element;
179
306
 
180
307
  export declare type InputProps = ComponentProps<typeof Input_2> & {
181
308
  leadingIcon?: Icon;
182
- showSeparator?: boolean;
183
309
  };
184
310
 
185
311
  export declare const Label: ({ className, children, ref, ...props }: LabelProps) => JSX.Element;
186
312
 
187
313
  export declare type LabelProps = ComponentProps<"label">;
188
314
 
315
+ export declare const NavigationMenu: ({ className, children, ref, ...props }: NavigationMenuProps) => JSX.Element;
316
+
317
+ export declare const NavigationMenuContent: ({ className, children, ref, ...props }: NavigationMenuContentProps) => JSX.Element;
318
+
319
+ export declare type NavigationMenuContentProps = React.ComponentProps<typeof NavigationMenu_2.Content>;
320
+
321
+ export declare const NavigationMenuIcon: ({ className, children, ref, ...props }: NavigationMenuIconProps) => JSX.Element;
322
+
323
+ export declare type NavigationMenuIconProps = React.ComponentProps<typeof NavigationMenu_2.Icon>;
324
+
325
+ export declare const NavigationMenuItem: ({ className, children, ref, ...props }: NavigationMenuItemProps) => JSX.Element;
326
+
327
+ export declare type NavigationMenuItemProps = React.ComponentProps<typeof NavigationMenu_2.Item>;
328
+
329
+ export declare const NavigationMenuLink: ({ className, children, ref, ...props }: NavigationMenuLinkProps) => JSX.Element;
330
+
331
+ export declare type NavigationMenuLinkProps = React.ComponentProps<typeof NavigationMenu_2.Link>;
332
+
333
+ export declare const NavigationMenuList: ({ className, children, ref, ...props }: NavigationMenuListProps) => JSX.Element;
334
+
335
+ export declare type NavigationMenuListProps = React.ComponentProps<typeof NavigationMenu_2.List>;
336
+
337
+ export declare type NavigationMenuProps = React.ComponentProps<typeof NavigationMenu_2.Root>;
338
+
339
+ export declare const NavigationMenuTrigger: ({ className, children, ref, ...props }: NavigationMenuTriggerProps) => JSX.Element;
340
+
341
+ export declare type NavigationMenuTriggerProps = React.ComponentProps<typeof NavigationMenu_2.Trigger>;
342
+
343
+ export declare const NavigationMenuViewport: ({ className, children, ref, ...props }: NavigationMenuViewportProps) => JSX.Element;
344
+
345
+ export declare type NavigationMenuViewportProps = React.ComponentProps<typeof NavigationMenu_2.Positioner>;
346
+
347
+ export declare const Popover: ({ children, ...props }: PopoverProps) => JSX.Element;
348
+
349
+ export declare const PopoverDescription: ({ className, ref, children, ...props }: PopoverDescriptionProps) => JSX.Element;
350
+
351
+ export declare type PopoverDescriptionProps = React.ComponentProps<typeof Popover_2.Description>;
352
+
353
+ export declare const PopoverPanel: ({ className, ref, children, ...props }: PopoverPanelProps) => JSX.Element;
354
+
355
+ export declare type PopoverPanelProps = React.ComponentProps<typeof Popover_2.Positioner>;
356
+
357
+ export declare type PopoverProps = React.ComponentProps<typeof Popover_2.Root>;
358
+
359
+ export declare const PopoverTitle: ({ className, ref, children, ...props }: PopoverTitleProps) => JSX.Element;
360
+
361
+ export declare type PopoverTitleProps = React.ComponentProps<typeof Popover_2.Title>;
362
+
363
+ export declare const PopoverTrigger: ({ className, ref, children, ...props }: PopoverTriggerProps) => JSX.Element;
364
+
365
+ export declare type PopoverTriggerProps = React.ComponentProps<typeof Popover_2.Trigger>;
366
+
189
367
  export declare const Profile: ({ className, imageUrl, fallbackText, profileName, profileEmail, compact, children, ref, ...props }: ProfileProps) => JSX.Element;
190
368
 
191
369
  export declare type ProfileProps = ComponentProps<"button"> & {
@@ -203,15 +381,103 @@ export declare type ScrollAreaProps = ComponentProps<typeof ScrollArea_2.Root> &
203
381
  defaultHeight?: number;
204
382
  };
205
383
 
206
- export declare const Separator: ({ orientation, thickness, className, children, ref, ...props }: SeparatorProps) => JSX.Element;
384
+ export declare const Separator: ({ tone, orientation, thickness, className, children, ref, ...props }: SeparatorProps) => JSX.Element;
207
385
 
208
386
  export declare type SeparatorProps = Omit<ComponentProps<typeof Separator_2>, "style"> & VariantProps<typeof separatorVariants>;
209
387
 
210
388
  declare const separatorVariants: (props?: ({
389
+ tone?: "default" | "variant" | null | undefined;
211
390
  orientation?: "horizontal" | "vertical" | null | undefined;
212
- thickness?: "medium" | "thick" | "thin" | null | undefined;
391
+ thickness?: "thin" | "medium" | "thick" | null | undefined;
392
+ } & ClassProp) | undefined) => string;
393
+
394
+ export declare const Sidebar: ({ tone, width, className, children, ref, ...props }: SidebarProps) => JSX.Element;
395
+
396
+ export declare const SidebarContent: ({ hideScrollbar, className, children, ref, ...props }: SidebarContentProps) => JSX.Element;
397
+
398
+ export declare type SidebarContentProps = React.ComponentProps<"div"> & {
399
+ hideScrollbar?: boolean;
400
+ };
401
+
402
+ declare type SidebarContextProps = default_2.ComponentProps<"div"> & {
403
+ defaultOpen?: boolean;
404
+ trigger?: () => void;
405
+ open?: boolean;
406
+ setOpen?: (open: boolean) => void;
407
+ isMobile?: boolean;
408
+ setIsMobile?: (isMobile: boolean) => void;
409
+ side?: "left" | "right";
410
+ collapsible?: "offcanvas" | "icon" | "none";
411
+ };
412
+
413
+ export declare const SidebarFooter: ({ className, children, ref, ...props }: SidebarFooterProps) => JSX.Element;
414
+
415
+ export declare type SidebarFooterProps = React.ComponentProps<"div">;
416
+
417
+ export declare const SidebarGroup: ({ className, children, ref, ...props }: SidebarGroupProps) => JSX.Element;
418
+
419
+ export declare const SidebarGroupContent: ({ className, children, ref, ...props }: SidebarGroupContentProps) => JSX.Element;
420
+
421
+ export declare type SidebarGroupContentProps = React.ComponentProps<"div">;
422
+
423
+ export declare const SidebarGroupLabel: ({ className, children, ref, ...props }: SidebarGroupLabelProps) => JSX.Element | null;
424
+
425
+ export declare type SidebarGroupLabelProps = React.ComponentProps<"span">;
426
+
427
+ export declare type SidebarGroupProps = React.ComponentProps<"div">;
428
+
429
+ export declare const SidebarHeader: ({ className, children, ref, ...props }: SidebarHeaderProps) => JSX.Element;
430
+
431
+ export declare type SidebarHeaderProps = React.ComponentProps<"div">;
432
+
433
+ export declare const SidebarMenu: ({ className, children, ref, ...props }: SidebarMenuProps) => JSX.Element;
434
+
435
+ export declare type SidebarMenuButtonProps = React.ComponentProps<"button">;
436
+
437
+ export declare const SidebarMenuLink: ({ isActive, size, label, leadingIcon: Icon, className, children, ref, ...props }: SidebarMenuLinkProps) => JSX.Element;
438
+
439
+ export declare type SidebarMenuLinkProps = React.ComponentProps<"div"> & VariantProps<typeof sidebarMenuLinkVariants> & {
440
+ isActive?: boolean;
441
+ label: string;
442
+ leadingIcon?: Icon;
443
+ };
444
+
445
+ declare const sidebarMenuLinkVariants: (props?: ({
446
+ size?: "compact" | "full" | null | undefined;
447
+ } & ClassProp) | undefined) => string;
448
+
449
+ export declare type SidebarMenuProps = React.ComponentProps<"div">;
450
+
451
+ export declare type SidebarProps = React.ComponentProps<"div"> & {
452
+ tone?: "default" | "ghost";
453
+ width?: string | number;
454
+ };
455
+
456
+ export declare const SidebarProvider: ({ defaultOpen, side, collapsible, className, children, ref, ...props }: SidebarContextProps) => JSX.Element;
457
+
458
+ export declare const SidebarSubMenu: ({ className, children, ref, ...props }: SidebarSubMenuProps) => JSX.Element;
459
+
460
+ export declare const SidebarSubMenuPanel: ({ className, children, ref, ...props }: SidebarSubMenuPanelProps) => JSX.Element;
461
+
462
+ export declare type SidebarSubMenuPanelProps = React.ComponentProps<typeof Collapsible.Panel>;
463
+
464
+ export declare type SidebarSubMenuProps = React.ComponentProps<typeof Collapsible.Root>;
465
+
466
+ export declare const SidebarSubMenuTrigger: ({ leadingIcon: Icon, label, size, className, children, ref, ...props }: SidebarSubMenuTriggerProps) => JSX.Element;
467
+
468
+ export declare type SidebarSubMenuTriggerProps = React.ComponentProps<typeof Collapsible.Trigger> & VariantProps<typeof sidebarSubMenuTriggerVariants> & {
469
+ label: string;
470
+ leadingIcon?: Icon;
471
+ };
472
+
473
+ declare const sidebarSubMenuTriggerVariants: (props?: ({
474
+ size?: "compact" | "full" | null | undefined;
213
475
  } & ClassProp) | undefined) => string;
214
476
 
477
+ export declare const SidebarToggle: ({ className, children, ref, ...props }: SidebarToggleProps) => JSX.Element | null;
478
+
479
+ export declare type SidebarToggleProps = ButtonExtendedProps;
480
+
215
481
  export declare const Slider: ({ leadingIcon: LeadingIcon, trailingIcon: TrailingIcon, min, max, stepSize, defaultValues, showTickLabels, label, className, ref, ...props }: SliderProps) => JSX.Element;
216
482
 
217
483
  export declare const SliderHandle: ({ sliderInstance, isActive, onKeyDownHandler, onMouseDownHandler, onTouchStart, value, className, children, ref, ...props }: SliderHandleProps) => JSX.Element;
@@ -287,25 +553,6 @@ export declare const TabsTab: ({ className, ...props }: TabsTabProps) => JSX.Ele
287
553
 
288
554
  export declare type TabsTabProps = ComponentProps<typeof Tabs_2.Tab>;
289
555
 
290
- declare type Theme = "dark" | "light" | "system";
291
-
292
- export declare function ThemeProvider({ children, defaultTheme, storageKey, ...props }: ThemeProviderProps): JSX.Element;
293
-
294
- declare type ThemeProviderProps = {
295
- children: React.ReactNode;
296
- defaultTheme?: Theme;
297
- storageKey?: string;
298
- };
299
-
300
- declare type ThemeProviderState = {
301
- theme: Theme;
302
- setTheme: (theme: Theme) => void;
303
- };
304
-
305
- export declare const ThemeToggle: ({ className, children, ref, ...props }: ThemeToggleProps) => JSX.Element;
306
-
307
- declare type ThemeToggleProps = React_2.ComponentProps<"button" & typeof Button>;
308
-
309
556
  export declare const Toast: ({ className, children, position, ref, ...props }: ToastProps) => JSX.Element[];
310
557
 
311
558
  export declare type ToastProps = ComponentProps<"div"> & {
@@ -333,6 +580,4 @@ export declare const TooltipTrigger: ({ children, ...props }: TooltipTriggerProp
333
580
 
334
581
  export declare type TooltipTriggerProps = ComponentProps<typeof Tooltip_2.Trigger>;
335
582
 
336
- export declare const useTheme: () => ThemeProviderState;
337
-
338
583
  export { }