@bug-on/m3-expressive 1.2.0 → 1.2.1

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 (54) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/buttons.d.mts +2 -2
  3. package/dist/buttons.d.ts +2 -2
  4. package/dist/buttons.js +678 -605
  5. package/dist/buttons.js.map +1 -1
  6. package/dist/buttons.mjs +677 -604
  7. package/dist/buttons.mjs.map +1 -1
  8. package/dist/core.js +86 -61
  9. package/dist/core.js.map +1 -1
  10. package/dist/core.mjs +86 -61
  11. package/dist/core.mjs.map +1 -1
  12. package/dist/feedback.js +85 -61
  13. package/dist/feedback.js.map +1 -1
  14. package/dist/feedback.mjs +85 -61
  15. package/dist/feedback.mjs.map +1 -1
  16. package/dist/forms.d.mts +2 -2
  17. package/dist/forms.d.ts +2 -2
  18. package/dist/forms.js +70 -8
  19. package/dist/forms.js.map +1 -1
  20. package/dist/forms.mjs +70 -8
  21. package/dist/forms.mjs.map +1 -1
  22. package/dist/{icon-button-D-gs0gfj.d.mts → icon-button-sSt6PPLg.d.mts} +6 -0
  23. package/dist/{icon-button-D-gs0gfj.d.ts → icon-button-sSt6PPLg.d.ts} +6 -0
  24. package/dist/index.d.mts +4 -4
  25. package/dist/index.d.ts +4 -4
  26. package/dist/index.js +973 -496
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.mjs +967 -497
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/layout.d.mts +18 -1
  31. package/dist/layout.d.ts +18 -1
  32. package/dist/layout.js +65 -8
  33. package/dist/layout.js.map +1 -1
  34. package/dist/layout.mjs +65 -8
  35. package/dist/layout.mjs.map +1 -1
  36. package/dist/navigation.d.mts +134 -9
  37. package/dist/navigation.d.ts +134 -9
  38. package/dist/navigation.js +403 -93
  39. package/dist/navigation.js.map +1 -1
  40. package/dist/navigation.mjs +397 -94
  41. package/dist/navigation.mjs.map +1 -1
  42. package/dist/overlays.js +214 -189
  43. package/dist/overlays.js.map +1 -1
  44. package/dist/overlays.mjs +176 -151
  45. package/dist/overlays.mjs.map +1 -1
  46. package/dist/pickers.js +222 -197
  47. package/dist/pickers.js.map +1 -1
  48. package/dist/pickers.mjs +189 -164
  49. package/dist/pickers.mjs.map +1 -1
  50. package/dist/{split-button-trailing-uncheckable-BkPbiBo3.d.ts → split-button-trailing-uncheckable-BcPD_7uK.d.ts} +44 -6
  51. package/dist/{split-button-trailing-uncheckable-D_PLPb-u.d.mts → split-button-trailing-uncheckable-DtFJkTFr.d.mts} +44 -6
  52. package/dist/{text-field-eAIpz9z1.d.mts → text-field-T4Rg-9Bw.d.mts} +7 -0
  53. package/dist/{text-field-eAIpz9z1.d.ts → text-field-T4Rg-9Bw.d.ts} +7 -0
  54. package/package.json +1 -1
@@ -200,7 +200,7 @@ declare const BUTTON_COLOR_TOKENS: {
200
200
  };
201
201
  };
202
202
 
203
- type ButtonGroupVariant = "standard" | "connected" | "navbar";
203
+ type ButtonGroupVariant = "standard" | "connected";
204
204
  type ButtonGroupOrientation = "horizontal" | "vertical";
205
205
  /**
206
206
  * Props for ButtonGroup component.
@@ -210,7 +210,6 @@ interface ButtonGroupProps extends React$1.FieldsetHTMLAttributes<HTMLFieldSetEl
210
210
  * Display variant of the button group:
211
211
  * - `standard`: Independent buttons with gap spacing.
212
212
  * - `connected`: Connected buttons sharing borders (Segmented Button).
213
- * - `navbar`: Navigation bar variant with animated active sliding indicator pill.
214
213
  * @default "standard"
215
214
  */
216
215
  variant?: ButtonGroupVariant;
@@ -245,14 +244,14 @@ interface ButtonGroupProps extends React$1.FieldsetHTMLAttributes<HTMLFieldSetEl
245
244
  */
246
245
  showCheck?: boolean;
247
246
  /**
248
- * Controls icon display behavior (primarily for `navbar`).
247
+ * Controls icon display behavior.
249
248
  * - `selected`: Display icon only on selected item.
250
249
  * - `all`: Display on all items.
251
250
  * - `none`: Hide all icons.
252
251
  */
253
252
  iconBehavior?: "selected" | "all" | "none";
254
253
  /**
255
- * Controls label display behavior (primarily for `navbar`).
254
+ * Controls label display behavior.
256
255
  * - `selected`: Display label only on selected item.
257
256
  * - `all`: Display on all items.
258
257
  * - `none`: Hide all labels.
@@ -268,7 +267,6 @@ interface ButtonGroupProps extends React$1.FieldsetHTMLAttributes<HTMLFieldSetEl
268
267
  /**
269
268
  * Custom CSS class applied to individual child buttons in group.
270
269
  * Useful for customizing padding, min-width, or other layout properties.
271
- * For `navbar` variant, overrides default padding styles.
272
270
  */
273
271
  itemClassName?: string;
274
272
  }
@@ -310,6 +308,13 @@ interface ExtendedFABProps extends MotionButtonProps$2 {
310
308
  onCollapsedChange?: (collapsed: boolean) => void;
311
309
  /** Layout ID for Framer Motion Container Transform transitions. */
312
310
  layoutId?: string;
311
+ /**
312
+ * Change the component to the underlying child element and merge props/behavior.
313
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
314
+ * @default false
315
+ */
316
+ asChild?: boolean;
317
+ children?: React$1.ReactNode;
313
318
  }
314
319
  declare const ExtendedFAB: React$1.NamedExoticComponent<Omit<ExtendedFABProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
315
320
 
@@ -376,6 +381,12 @@ interface FABProps extends MotionButtonProps$1 {
376
381
  * @default true
377
382
  */
378
383
  visible?: boolean;
384
+ /**
385
+ * Change the component to the underlying child element and merge props/behavior.
386
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
387
+ * @default false
388
+ */
389
+ asChild?: boolean;
379
390
  }
380
391
  /**
381
392
  * Props for `FABPosition` layout wrapper component.
@@ -576,6 +587,13 @@ interface FABMenuItemProps {
576
587
  totalItems?: number;
577
588
  /** Logic `tabIndex` value for manual keyboard navigation. */
578
589
  tabIndex?: number;
590
+ /**
591
+ * Change the component to the underlying child element and merge props/behavior.
592
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
593
+ * @default false
594
+ */
595
+ asChild?: boolean;
596
+ children?: React$1.ReactNode;
579
597
  }
580
598
  /**
581
599
  * Toggle FAB button (Morphing FAB) usable as standalone or trigger for `FABMenu`.
@@ -607,7 +625,7 @@ declare const ToggleFAB: React$1.NamedExoticComponent<ToggleFABProps & React$1.R
607
625
  * Disabled items use `aria-disabled="true"` rather than native HTML `disabled`
608
626
  * so they remain focusable in the tab sequence per MD3 specification.
609
627
  */
610
- declare function FABMenuItem({ icon, label, onClick, disabled, colorVariant, className, tabIndex, }: FABMenuItemProps): react_jsx_runtime.JSX.Element;
628
+ declare function FABMenuItem({ icon, label, onClick, disabled, colorVariant, className, tabIndex, asChild, children, }: FABMenuItemProps): react_jsx_runtime.JSX.Element;
611
629
  /**
612
630
  * MD3 Expressive FAB Menu.
613
631
  *
@@ -700,6 +718,12 @@ interface SplitButtonLeadingProps extends MotionButtonProps {
700
718
  children?: React.ReactNode;
701
719
  disabled?: boolean;
702
720
  className?: string;
721
+ /**
722
+ * Change the component to the underlying child element and merge props/behavior.
723
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
724
+ * @default false
725
+ */
726
+ asChild?: boolean;
703
727
  }
704
728
  interface SplitButtonTrailingProps extends Omit<MotionButtonProps, "onChange" | "color" | "children"> {
705
729
  variant?: SplitButtonVariant;
@@ -715,6 +739,13 @@ interface SplitButtonTrailingProps extends Omit<MotionButtonProps, "onChange" |
715
739
  /** ID of controlled menu element */
716
740
  "aria-controls"?: string;
717
741
  className?: string;
742
+ /**
743
+ * Change the component to the underlying child element and merge props/behavior.
744
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
745
+ * @default false
746
+ */
747
+ asChild?: boolean;
748
+ children?: React.ReactNode;
718
749
  }
719
750
  interface SplitButtonTrailingUncheckableProps extends Omit<MotionButtonProps, "color" | "children"> {
720
751
  variant?: SplitButtonVariant;
@@ -723,6 +754,13 @@ interface SplitButtonTrailingUncheckableProps extends Omit<MotionButtonProps, "c
723
754
  disabled?: boolean;
724
755
  "aria-label": string;
725
756
  className?: string;
757
+ /**
758
+ * Change the component to the underlying child element and merge props/behavior.
759
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
760
+ * @default false
761
+ */
762
+ asChild?: boolean;
763
+ children?: React.ReactNode;
726
764
  }
727
765
 
728
766
  declare const SplitButtonLayout: React$1.NamedExoticComponent<SplitButtonLayoutProps & React$1.RefAttributes<HTMLDivElement>>;
@@ -200,7 +200,7 @@ declare const BUTTON_COLOR_TOKENS: {
200
200
  };
201
201
  };
202
202
 
203
- type ButtonGroupVariant = "standard" | "connected" | "navbar";
203
+ type ButtonGroupVariant = "standard" | "connected";
204
204
  type ButtonGroupOrientation = "horizontal" | "vertical";
205
205
  /**
206
206
  * Props for ButtonGroup component.
@@ -210,7 +210,6 @@ interface ButtonGroupProps extends React$1.FieldsetHTMLAttributes<HTMLFieldSetEl
210
210
  * Display variant of the button group:
211
211
  * - `standard`: Independent buttons with gap spacing.
212
212
  * - `connected`: Connected buttons sharing borders (Segmented Button).
213
- * - `navbar`: Navigation bar variant with animated active sliding indicator pill.
214
213
  * @default "standard"
215
214
  */
216
215
  variant?: ButtonGroupVariant;
@@ -245,14 +244,14 @@ interface ButtonGroupProps extends React$1.FieldsetHTMLAttributes<HTMLFieldSetEl
245
244
  */
246
245
  showCheck?: boolean;
247
246
  /**
248
- * Controls icon display behavior (primarily for `navbar`).
247
+ * Controls icon display behavior.
249
248
  * - `selected`: Display icon only on selected item.
250
249
  * - `all`: Display on all items.
251
250
  * - `none`: Hide all icons.
252
251
  */
253
252
  iconBehavior?: "selected" | "all" | "none";
254
253
  /**
255
- * Controls label display behavior (primarily for `navbar`).
254
+ * Controls label display behavior.
256
255
  * - `selected`: Display label only on selected item.
257
256
  * - `all`: Display on all items.
258
257
  * - `none`: Hide all labels.
@@ -268,7 +267,6 @@ interface ButtonGroupProps extends React$1.FieldsetHTMLAttributes<HTMLFieldSetEl
268
267
  /**
269
268
  * Custom CSS class applied to individual child buttons in group.
270
269
  * Useful for customizing padding, min-width, or other layout properties.
271
- * For `navbar` variant, overrides default padding styles.
272
270
  */
273
271
  itemClassName?: string;
274
272
  }
@@ -310,6 +308,13 @@ interface ExtendedFABProps extends MotionButtonProps$2 {
310
308
  onCollapsedChange?: (collapsed: boolean) => void;
311
309
  /** Layout ID for Framer Motion Container Transform transitions. */
312
310
  layoutId?: string;
311
+ /**
312
+ * Change the component to the underlying child element and merge props/behavior.
313
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
314
+ * @default false
315
+ */
316
+ asChild?: boolean;
317
+ children?: React$1.ReactNode;
313
318
  }
314
319
  declare const ExtendedFAB: React$1.NamedExoticComponent<Omit<ExtendedFABProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
315
320
 
@@ -376,6 +381,12 @@ interface FABProps extends MotionButtonProps$1 {
376
381
  * @default true
377
382
  */
378
383
  visible?: boolean;
384
+ /**
385
+ * Change the component to the underlying child element and merge props/behavior.
386
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
387
+ * @default false
388
+ */
389
+ asChild?: boolean;
379
390
  }
380
391
  /**
381
392
  * Props for `FABPosition` layout wrapper component.
@@ -576,6 +587,13 @@ interface FABMenuItemProps {
576
587
  totalItems?: number;
577
588
  /** Logic `tabIndex` value for manual keyboard navigation. */
578
589
  tabIndex?: number;
590
+ /**
591
+ * Change the component to the underlying child element and merge props/behavior.
592
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
593
+ * @default false
594
+ */
595
+ asChild?: boolean;
596
+ children?: React$1.ReactNode;
579
597
  }
580
598
  /**
581
599
  * Toggle FAB button (Morphing FAB) usable as standalone or trigger for `FABMenu`.
@@ -607,7 +625,7 @@ declare const ToggleFAB: React$1.NamedExoticComponent<ToggleFABProps & React$1.R
607
625
  * Disabled items use `aria-disabled="true"` rather than native HTML `disabled`
608
626
  * so they remain focusable in the tab sequence per MD3 specification.
609
627
  */
610
- declare function FABMenuItem({ icon, label, onClick, disabled, colorVariant, className, tabIndex, }: FABMenuItemProps): react_jsx_runtime.JSX.Element;
628
+ declare function FABMenuItem({ icon, label, onClick, disabled, colorVariant, className, tabIndex, asChild, children, }: FABMenuItemProps): react_jsx_runtime.JSX.Element;
611
629
  /**
612
630
  * MD3 Expressive FAB Menu.
613
631
  *
@@ -700,6 +718,12 @@ interface SplitButtonLeadingProps extends MotionButtonProps {
700
718
  children?: React.ReactNode;
701
719
  disabled?: boolean;
702
720
  className?: string;
721
+ /**
722
+ * Change the component to the underlying child element and merge props/behavior.
723
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
724
+ * @default false
725
+ */
726
+ asChild?: boolean;
703
727
  }
704
728
  interface SplitButtonTrailingProps extends Omit<MotionButtonProps, "onChange" | "color" | "children"> {
705
729
  variant?: SplitButtonVariant;
@@ -715,6 +739,13 @@ interface SplitButtonTrailingProps extends Omit<MotionButtonProps, "onChange" |
715
739
  /** ID of controlled menu element */
716
740
  "aria-controls"?: string;
717
741
  className?: string;
742
+ /**
743
+ * Change the component to the underlying child element and merge props/behavior.
744
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
745
+ * @default false
746
+ */
747
+ asChild?: boolean;
748
+ children?: React.ReactNode;
718
749
  }
719
750
  interface SplitButtonTrailingUncheckableProps extends Omit<MotionButtonProps, "color" | "children"> {
720
751
  variant?: SplitButtonVariant;
@@ -723,6 +754,13 @@ interface SplitButtonTrailingUncheckableProps extends Omit<MotionButtonProps, "c
723
754
  disabled?: boolean;
724
755
  "aria-label": string;
725
756
  className?: string;
757
+ /**
758
+ * Change the component to the underlying child element and merge props/behavior.
759
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
760
+ * @default false
761
+ */
762
+ asChild?: boolean;
763
+ children?: React.ReactNode;
726
764
  }
727
765
 
728
766
  declare const SplitButtonLayout: React$1.NamedExoticComponent<SplitButtonLayoutProps & React$1.RefAttributes<HTMLDivElement>>;
@@ -145,6 +145,13 @@ interface ChipProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>,
145
145
  * When provided, a dedicated tabbable close button with `aria-label="Remove {label}"` is rendered.
146
146
  */
147
147
  onRemove?: (e: React.MouseEvent<HTMLButtonElement>) => void;
148
+ /**
149
+ * Change the component to the underlying child element and merge props/behavior.
150
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
151
+ * @default false
152
+ */
153
+ asChild?: boolean;
154
+ children?: React.ReactNode;
148
155
  }
149
156
  /**
150
157
  * MD3 Expressive Chip — 4-variant interactive tag component.
@@ -145,6 +145,13 @@ interface ChipProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>,
145
145
  * When provided, a dedicated tabbable close button with `aria-label="Remove {label}"` is rendered.
146
146
  */
147
147
  onRemove?: (e: React.MouseEvent<HTMLButtonElement>) => void;
148
+ /**
149
+ * Change the component to the underlying child element and merge props/behavior.
150
+ * Useful when wrapping in Next.js `<Link>` or custom anchor tags.
151
+ * @default false
152
+ */
153
+ asChild?: boolean;
154
+ children?: React.ReactNode;
148
155
  }
149
156
  /**
150
157
  * MD3 Expressive Chip — 4-variant interactive tag component.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bug-on/m3-expressive",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "Material Design 3 Expressive React components",
5
5
  "author": "Bug On",
6
6
  "license": "MIT",