@bubo-squared/ui-framework 0.2.14 → 0.2.16

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.
package/dist/index.d.cts CHANGED
@@ -2,7 +2,9 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
2
2
  import * as React$1 from 'react';
3
3
  import { FC } from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
5
6
  import * as react_jsx_runtime from 'react/jsx-runtime';
7
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
6
8
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
7
9
  import * as RPNInput from 'react-phone-number-input';
8
10
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
@@ -31,6 +33,8 @@ declare const iconButtonVariants: (props?: ({
31
33
  interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof iconButtonVariants> {
32
34
  asChild?: boolean;
33
35
  icon: React$1.ReactNode;
36
+ /** If true, renders a circular IconButton. */
37
+ round?: boolean;
34
38
  }
35
39
  declare const IconButton: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
36
40
 
@@ -71,6 +75,14 @@ type MessageButtonProps = Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>,
71
75
  };
72
76
  declare const MessageButton: React$1.FC<MessageButtonProps>;
73
77
 
78
+ declare const Accordion: React$1.ForwardRefExoticComponent<Omit<Omit<AccordionPrimitive.AccordionSingleProps & React$1.RefAttributes<HTMLDivElement>, "ref">, "children" | "type" | "title" | "collapsible"> & {
79
+ title: React$1.ReactNode;
80
+ expandIcon?: React$1.ReactNode;
81
+ defaultOpen?: boolean;
82
+ children: React$1.ReactNode;
83
+ bordered?: boolean;
84
+ } & React$1.RefAttributes<HTMLDivElement>>;
85
+
74
86
  type AvatarVariant = "initial" | "icon" | "image";
75
87
  declare const avatarVariants: (props?: ({
76
88
  size?: "20" | "24" | "32" | "40" | "48" | "56" | "64" | null | undefined;
@@ -265,6 +277,53 @@ interface TagProps extends VariantProps<typeof tagVariants> {
265
277
  }
266
278
  declare const Tag: React$1.ForwardRefExoticComponent<TagProps & React$1.RefAttributes<HTMLDivElement>>;
267
279
 
280
+ type DropdownSize = "sm" | "md" | "lg" | "xl";
281
+
282
+ declare function DropdownMenuPortal({ ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Portal>): react_jsx_runtime.JSX.Element;
283
+ declare function DropdownMenuGroup({ ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Group>): react_jsx_runtime.JSX.Element;
284
+ declare function DropdownMenuItem({ className, inset, size, variant, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
285
+ inset?: boolean;
286
+ size?: DropdownSize;
287
+ variant?: "default" | "destructive";
288
+ }): react_jsx_runtime.JSX.Element;
289
+ declare function DropdownMenuLabel({ className, inset, size, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
290
+ inset?: boolean;
291
+ size?: DropdownSize;
292
+ }): react_jsx_runtime.JSX.Element;
293
+ declare function DropdownMenuSeparator({ className, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Separator>): react_jsx_runtime.JSX.Element;
294
+ declare function DropdownMenuShortcut({ className, ...props }: React$1.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
295
+ declare function DropdownMenuSub({ ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Sub>): react_jsx_runtime.JSX.Element;
296
+ declare function DropdownMenuSubTrigger({ className, inset, size, children, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
297
+ inset?: boolean;
298
+ size?: DropdownSize;
299
+ }): react_jsx_runtime.JSX.Element;
300
+ declare function DropdownMenuSubContent({ className, size, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.SubContent> & {
301
+ size?: DropdownSize;
302
+ }): react_jsx_runtime.JSX.Element;
303
+
304
+ interface MenuProps {
305
+ trigger: React$1.ReactElement;
306
+ children: React$1.ReactNode;
307
+ size?: DropdownSize;
308
+ align?: DropdownMenuPrimitive.DropdownMenuContentProps["align"];
309
+ side?: DropdownMenuPrimitive.DropdownMenuContentProps["side"];
310
+ offset?: number;
311
+ className?: string;
312
+ open?: boolean;
313
+ onOpenChange?: (open: boolean) => void;
314
+ modal?: boolean;
315
+ }
316
+ declare const Menu: React$1.FC<MenuProps>;
317
+ declare const MenuGroup: typeof DropdownMenuGroup;
318
+ declare const MenuItem: typeof DropdownMenuItem;
319
+ declare const MenuLabel: typeof DropdownMenuLabel;
320
+ declare const MenuPortal: typeof DropdownMenuPortal;
321
+ declare const MenuSeparator: typeof DropdownMenuSeparator;
322
+ declare const MenuShortcut: typeof DropdownMenuShortcut;
323
+ declare const MenuSub: typeof DropdownMenuSub;
324
+ declare const MenuSubContent: typeof DropdownMenuSubContent;
325
+ declare const MenuSubTrigger: typeof DropdownMenuSubTrigger;
326
+
268
327
  interface CheckboxProps extends React$1.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
269
328
  /** Only needed when the component is a part of a native form. */
270
329
  name?: string;
@@ -272,6 +331,59 @@ interface CheckboxProps extends React$1.ComponentPropsWithoutRef<typeof Checkbox
272
331
  }
273
332
  declare function Checkbox({ label, className, ...props }: CheckboxProps): react_jsx_runtime.JSX.Element;
274
333
 
334
+ type TextInputSize = "sm" | "md" | "lg" | "xl";
335
+ type TextInputStatus = "default" | "success" | "error";
336
+ interface TextInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "size" | "disabled"> {
337
+ label?: string;
338
+ hint?: string;
339
+ /**
340
+ * If true, the hint will not be rendered even if provided.
341
+ */
342
+ hideHint?: boolean;
343
+ /**
344
+ * Only needed when the component is a part of a native form.
345
+ * Provide this to include the value in native form submission / FormData.
346
+ */
347
+ name?: string;
348
+ placeholder?: string;
349
+ status?: TextInputStatus;
350
+ size?: TextInputSize;
351
+ disabled?: boolean;
352
+ leadingIcon?: React$1.ReactNode | null;
353
+ trailingIcon?: React$1.ReactNode | null;
354
+ }
355
+ declare const TextInput: React$1.FC<TextInputProps>;
356
+
357
+ interface AutocompleteProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "size" | "disabled" | "value" | "defaultValue" | "onChange"> {
358
+ label?: string;
359
+ hint?: string;
360
+ /** If true, the hint will not be rendered even if provided. */
361
+ hideHint?: boolean;
362
+ status?: TextInputStatus;
363
+ size?: TextInputSize;
364
+ disabled?: boolean;
365
+ leadingIcon?: React$1.ReactNode | null;
366
+ trailingIcon?: React$1.ReactNode | null;
367
+ /** Options to render (assumed already server-filtered). */
368
+ options: string[];
369
+ loading?: boolean;
370
+ loadingText?: React$1.ReactNode;
371
+ noOptionsText?: React$1.ReactNode;
372
+ /** Committed value (e.g. selected option). */
373
+ value?: string;
374
+ defaultValue?: string;
375
+ onChange?: (value: string) => void;
376
+ /** Current input text (used as query). */
377
+ inputValue?: string;
378
+ defaultInputValue?: string;
379
+ onInputChange?: (value: string) => void;
380
+ /** Optional className for the dropdown (options container). */
381
+ dropdownClassName?: string;
382
+ /** Optional className for the listbox (<ul>). */
383
+ listboxClassName?: string;
384
+ }
385
+ declare const Autocomplete: React$1.FC<AutocompleteProps>;
386
+
275
387
  type SelectStatus = "default" | "success" | "error";
276
388
  interface SelectOption {
277
389
  label: string;
@@ -345,29 +457,6 @@ interface PasswordInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputE
345
457
  }
346
458
  declare const PasswordInput: React$1.FC<PasswordInputProps>;
347
459
 
348
- type TextInputSize = "sm" | "md" | "lg" | "xl";
349
- type TextInputStatus = "default" | "success" | "error";
350
- interface TextInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "size" | "disabled"> {
351
- label?: string;
352
- hint?: string;
353
- /**
354
- * If true, the hint will not be rendered even if provided.
355
- */
356
- hideHint?: boolean;
357
- /**
358
- * Only needed when the component is a part of a native form.
359
- * Provide this to include the value in native form submission / FormData.
360
- */
361
- name?: string;
362
- placeholder?: string;
363
- status?: TextInputStatus;
364
- size?: TextInputSize;
365
- disabled?: boolean;
366
- leadingIcon?: React$1.ReactNode | null;
367
- trailingIcon?: React$1.ReactNode | null;
368
- }
369
- declare const TextInput: React$1.FC<TextInputProps>;
370
-
371
460
  type PhoneInputProps = Omit<React$1.ComponentProps<"input">, "onChange" | "value" | "ref" | "size"> & Omit<RPNInput.Props<typeof RPNInput.default>, "onChange"> & {
372
461
  onChange?: (value: RPNInput.Value) => void;
373
462
  } & {
@@ -624,4 +713,4 @@ declare const Logo: FC<LogoProps>;
624
713
 
625
714
  declare function cn(...inputs: ClassValue[]): string;
626
715
 
627
- export { Avatar, Badge, BadgeDigit, BadgeDot, BadgeStatus, Breadcrumbs, Button, ButtonGroup, Checkbox, Divider, Field, IconButton, IconButtonGroup, LinkButton, Logo, LogoIcon, MessageButton, PasswordInput, PhoneInput, Popover, Progress, RadioGroup, SearchInput, Select, Slider, StatusAvatar, Tag, TextArea, TextInput, Toggle, Tooltip, TooltipProvider, Typography, WebsiteInput, cn };
716
+ export { Accordion, Autocomplete, Avatar, Badge, BadgeDigit, BadgeDot, BadgeStatus, Breadcrumbs, Button, ButtonGroup, Checkbox, Divider, Field, IconButton, IconButtonGroup, LinkButton, Logo, LogoIcon, Menu, MenuGroup, MenuItem, MenuLabel, MenuPortal, MenuSeparator, MenuShortcut, MenuSub, MenuSubContent, MenuSubTrigger, MessageButton, PasswordInput, PhoneInput, Popover, Progress, RadioGroup, SearchInput, Select, Slider, StatusAvatar, Tag, TextArea, TextInput, Toggle, Tooltip, TooltipProvider, Typography, WebsiteInput, cn };
package/dist/index.d.ts CHANGED
@@ -2,7 +2,9 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
2
2
  import * as React$1 from 'react';
3
3
  import { FC } from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
5
6
  import * as react_jsx_runtime from 'react/jsx-runtime';
7
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
6
8
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
7
9
  import * as RPNInput from 'react-phone-number-input';
8
10
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
@@ -31,6 +33,8 @@ declare const iconButtonVariants: (props?: ({
31
33
  interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof iconButtonVariants> {
32
34
  asChild?: boolean;
33
35
  icon: React$1.ReactNode;
36
+ /** If true, renders a circular IconButton. */
37
+ round?: boolean;
34
38
  }
35
39
  declare const IconButton: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
36
40
 
@@ -71,6 +75,14 @@ type MessageButtonProps = Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>,
71
75
  };
72
76
  declare const MessageButton: React$1.FC<MessageButtonProps>;
73
77
 
78
+ declare const Accordion: React$1.ForwardRefExoticComponent<Omit<Omit<AccordionPrimitive.AccordionSingleProps & React$1.RefAttributes<HTMLDivElement>, "ref">, "children" | "type" | "title" | "collapsible"> & {
79
+ title: React$1.ReactNode;
80
+ expandIcon?: React$1.ReactNode;
81
+ defaultOpen?: boolean;
82
+ children: React$1.ReactNode;
83
+ bordered?: boolean;
84
+ } & React$1.RefAttributes<HTMLDivElement>>;
85
+
74
86
  type AvatarVariant = "initial" | "icon" | "image";
75
87
  declare const avatarVariants: (props?: ({
76
88
  size?: "20" | "24" | "32" | "40" | "48" | "56" | "64" | null | undefined;
@@ -265,6 +277,53 @@ interface TagProps extends VariantProps<typeof tagVariants> {
265
277
  }
266
278
  declare const Tag: React$1.ForwardRefExoticComponent<TagProps & React$1.RefAttributes<HTMLDivElement>>;
267
279
 
280
+ type DropdownSize = "sm" | "md" | "lg" | "xl";
281
+
282
+ declare function DropdownMenuPortal({ ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Portal>): react_jsx_runtime.JSX.Element;
283
+ declare function DropdownMenuGroup({ ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Group>): react_jsx_runtime.JSX.Element;
284
+ declare function DropdownMenuItem({ className, inset, size, variant, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
285
+ inset?: boolean;
286
+ size?: DropdownSize;
287
+ variant?: "default" | "destructive";
288
+ }): react_jsx_runtime.JSX.Element;
289
+ declare function DropdownMenuLabel({ className, inset, size, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
290
+ inset?: boolean;
291
+ size?: DropdownSize;
292
+ }): react_jsx_runtime.JSX.Element;
293
+ declare function DropdownMenuSeparator({ className, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Separator>): react_jsx_runtime.JSX.Element;
294
+ declare function DropdownMenuShortcut({ className, ...props }: React$1.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
295
+ declare function DropdownMenuSub({ ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Sub>): react_jsx_runtime.JSX.Element;
296
+ declare function DropdownMenuSubTrigger({ className, inset, size, children, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
297
+ inset?: boolean;
298
+ size?: DropdownSize;
299
+ }): react_jsx_runtime.JSX.Element;
300
+ declare function DropdownMenuSubContent({ className, size, ...props }: React$1.ComponentProps<typeof DropdownMenuPrimitive.SubContent> & {
301
+ size?: DropdownSize;
302
+ }): react_jsx_runtime.JSX.Element;
303
+
304
+ interface MenuProps {
305
+ trigger: React$1.ReactElement;
306
+ children: React$1.ReactNode;
307
+ size?: DropdownSize;
308
+ align?: DropdownMenuPrimitive.DropdownMenuContentProps["align"];
309
+ side?: DropdownMenuPrimitive.DropdownMenuContentProps["side"];
310
+ offset?: number;
311
+ className?: string;
312
+ open?: boolean;
313
+ onOpenChange?: (open: boolean) => void;
314
+ modal?: boolean;
315
+ }
316
+ declare const Menu: React$1.FC<MenuProps>;
317
+ declare const MenuGroup: typeof DropdownMenuGroup;
318
+ declare const MenuItem: typeof DropdownMenuItem;
319
+ declare const MenuLabel: typeof DropdownMenuLabel;
320
+ declare const MenuPortal: typeof DropdownMenuPortal;
321
+ declare const MenuSeparator: typeof DropdownMenuSeparator;
322
+ declare const MenuShortcut: typeof DropdownMenuShortcut;
323
+ declare const MenuSub: typeof DropdownMenuSub;
324
+ declare const MenuSubContent: typeof DropdownMenuSubContent;
325
+ declare const MenuSubTrigger: typeof DropdownMenuSubTrigger;
326
+
268
327
  interface CheckboxProps extends React$1.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
269
328
  /** Only needed when the component is a part of a native form. */
270
329
  name?: string;
@@ -272,6 +331,59 @@ interface CheckboxProps extends React$1.ComponentPropsWithoutRef<typeof Checkbox
272
331
  }
273
332
  declare function Checkbox({ label, className, ...props }: CheckboxProps): react_jsx_runtime.JSX.Element;
274
333
 
334
+ type TextInputSize = "sm" | "md" | "lg" | "xl";
335
+ type TextInputStatus = "default" | "success" | "error";
336
+ interface TextInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "size" | "disabled"> {
337
+ label?: string;
338
+ hint?: string;
339
+ /**
340
+ * If true, the hint will not be rendered even if provided.
341
+ */
342
+ hideHint?: boolean;
343
+ /**
344
+ * Only needed when the component is a part of a native form.
345
+ * Provide this to include the value in native form submission / FormData.
346
+ */
347
+ name?: string;
348
+ placeholder?: string;
349
+ status?: TextInputStatus;
350
+ size?: TextInputSize;
351
+ disabled?: boolean;
352
+ leadingIcon?: React$1.ReactNode | null;
353
+ trailingIcon?: React$1.ReactNode | null;
354
+ }
355
+ declare const TextInput: React$1.FC<TextInputProps>;
356
+
357
+ interface AutocompleteProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "size" | "disabled" | "value" | "defaultValue" | "onChange"> {
358
+ label?: string;
359
+ hint?: string;
360
+ /** If true, the hint will not be rendered even if provided. */
361
+ hideHint?: boolean;
362
+ status?: TextInputStatus;
363
+ size?: TextInputSize;
364
+ disabled?: boolean;
365
+ leadingIcon?: React$1.ReactNode | null;
366
+ trailingIcon?: React$1.ReactNode | null;
367
+ /** Options to render (assumed already server-filtered). */
368
+ options: string[];
369
+ loading?: boolean;
370
+ loadingText?: React$1.ReactNode;
371
+ noOptionsText?: React$1.ReactNode;
372
+ /** Committed value (e.g. selected option). */
373
+ value?: string;
374
+ defaultValue?: string;
375
+ onChange?: (value: string) => void;
376
+ /** Current input text (used as query). */
377
+ inputValue?: string;
378
+ defaultInputValue?: string;
379
+ onInputChange?: (value: string) => void;
380
+ /** Optional className for the dropdown (options container). */
381
+ dropdownClassName?: string;
382
+ /** Optional className for the listbox (<ul>). */
383
+ listboxClassName?: string;
384
+ }
385
+ declare const Autocomplete: React$1.FC<AutocompleteProps>;
386
+
275
387
  type SelectStatus = "default" | "success" | "error";
276
388
  interface SelectOption {
277
389
  label: string;
@@ -345,29 +457,6 @@ interface PasswordInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputE
345
457
  }
346
458
  declare const PasswordInput: React$1.FC<PasswordInputProps>;
347
459
 
348
- type TextInputSize = "sm" | "md" | "lg" | "xl";
349
- type TextInputStatus = "default" | "success" | "error";
350
- interface TextInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "size" | "disabled"> {
351
- label?: string;
352
- hint?: string;
353
- /**
354
- * If true, the hint will not be rendered even if provided.
355
- */
356
- hideHint?: boolean;
357
- /**
358
- * Only needed when the component is a part of a native form.
359
- * Provide this to include the value in native form submission / FormData.
360
- */
361
- name?: string;
362
- placeholder?: string;
363
- status?: TextInputStatus;
364
- size?: TextInputSize;
365
- disabled?: boolean;
366
- leadingIcon?: React$1.ReactNode | null;
367
- trailingIcon?: React$1.ReactNode | null;
368
- }
369
- declare const TextInput: React$1.FC<TextInputProps>;
370
-
371
460
  type PhoneInputProps = Omit<React$1.ComponentProps<"input">, "onChange" | "value" | "ref" | "size"> & Omit<RPNInput.Props<typeof RPNInput.default>, "onChange"> & {
372
461
  onChange?: (value: RPNInput.Value) => void;
373
462
  } & {
@@ -624,4 +713,4 @@ declare const Logo: FC<LogoProps>;
624
713
 
625
714
  declare function cn(...inputs: ClassValue[]): string;
626
715
 
627
- export { Avatar, Badge, BadgeDigit, BadgeDot, BadgeStatus, Breadcrumbs, Button, ButtonGroup, Checkbox, Divider, Field, IconButton, IconButtonGroup, LinkButton, Logo, LogoIcon, MessageButton, PasswordInput, PhoneInput, Popover, Progress, RadioGroup, SearchInput, Select, Slider, StatusAvatar, Tag, TextArea, TextInput, Toggle, Tooltip, TooltipProvider, Typography, WebsiteInput, cn };
716
+ export { Accordion, Autocomplete, Avatar, Badge, BadgeDigit, BadgeDot, BadgeStatus, Breadcrumbs, Button, ButtonGroup, Checkbox, Divider, Field, IconButton, IconButtonGroup, LinkButton, Logo, LogoIcon, Menu, MenuGroup, MenuItem, MenuLabel, MenuPortal, MenuSeparator, MenuShortcut, MenuSub, MenuSubContent, MenuSubTrigger, MessageButton, PasswordInput, PhoneInput, Popover, Progress, RadioGroup, SearchInput, Select, Slider, StatusAvatar, Tag, TextArea, TextInput, Toggle, Tooltip, TooltipProvider, Typography, WebsiteInput, cn };