@bug-on/m3-expressive 1.2.0 → 1.2.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.
- package/CHANGELOG.md +12 -0
- package/dist/buttons.d.mts +26 -5
- package/dist/buttons.d.ts +26 -5
- package/dist/buttons.js +1074 -765
- package/dist/buttons.js.map +1 -1
- package/dist/buttons.mjs +1066 -765
- package/dist/buttons.mjs.map +1 -1
- package/dist/core.js +133 -69
- package/dist/core.js.map +1 -1
- package/dist/core.mjs +133 -69
- package/dist/core.mjs.map +1 -1
- package/dist/feedback.js +132 -69
- package/dist/feedback.js.map +1 -1
- package/dist/feedback.mjs +132 -69
- package/dist/feedback.mjs.map +1 -1
- package/dist/forms.d.mts +2 -2
- package/dist/forms.d.ts +2 -2
- package/dist/forms.js +74 -9
- package/dist/forms.js.map +1 -1
- package/dist/forms.mjs +74 -9
- package/dist/forms.mjs.map +1 -1
- package/dist/{icon-button-D-gs0gfj.d.mts → icon-button-CSsDmuQC.d.mts} +19 -0
- package/dist/{icon-button-D-gs0gfj.d.ts → icon-button-CSsDmuQC.d.ts} +19 -0
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +2204 -1464
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2056 -1324
- package/dist/index.mjs.map +1 -1
- package/dist/layout.d.mts +18 -1
- package/dist/layout.d.ts +18 -1
- package/dist/layout.js +80 -15
- package/dist/layout.js.map +1 -1
- package/dist/layout.mjs +80 -15
- package/dist/layout.mjs.map +1 -1
- package/dist/navigation.d.mts +134 -9
- package/dist/navigation.d.ts +134 -9
- package/dist/navigation.js +461 -101
- package/dist/navigation.js.map +1 -1
- package/dist/navigation.mjs +455 -102
- package/dist/navigation.mjs.map +1 -1
- package/dist/overlays.js +261 -197
- package/dist/overlays.js.map +1 -1
- package/dist/overlays.mjs +223 -159
- package/dist/overlays.mjs.map +1 -1
- package/dist/pickers.js +392 -301
- package/dist/pickers.js.map +1 -1
- package/dist/pickers.mjs +361 -270
- package/dist/pickers.mjs.map +1 -1
- package/dist/{split-button-trailing-uncheckable-BkPbiBo3.d.ts → split-button-trailing-uncheckable-C-qQlyZx.d.ts} +118 -25
- package/dist/{split-button-trailing-uncheckable-D_PLPb-u.d.mts → split-button-trailing-uncheckable-DHJqNeq_.d.mts} +118 -25
- package/dist/{text-field-eAIpz9z1.d.mts → text-field-T4Rg-9Bw.d.mts} +7 -0
- package/dist/{text-field-eAIpz9z1.d.ts → text-field-T4Rg-9Bw.d.ts} +7 -0
- package/package.json +3 -3
package/dist/forms.mjs
CHANGED
|
@@ -5,6 +5,7 @@ import { useMemo } from 'react';
|
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
6
|
import { twMerge } from 'tailwind-merge';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
8
9
|
import { cva } from 'class-variance-authority';
|
|
9
10
|
import * as RadixScrollArea from '@radix-ui/react-scroll-area';
|
|
10
11
|
|
|
@@ -93,7 +94,10 @@ function useRippleState(options = {}) {
|
|
|
93
94
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
94
95
|
const x = e.clientX - rect.left;
|
|
95
96
|
const y = e.clientY - rect.top;
|
|
96
|
-
const rippleSize = Math.
|
|
97
|
+
const rippleSize = Math.max(
|
|
98
|
+
Math.hypot(rect.width, rect.height) * 2.5,
|
|
99
|
+
320
|
|
100
|
+
);
|
|
97
101
|
setRipples((prev) => [
|
|
98
102
|
...prev,
|
|
99
103
|
{ id: Date.now(), x, y, size: rippleSize }
|
|
@@ -518,7 +522,9 @@ var ChipImpl = React4.forwardRef(
|
|
|
518
522
|
avatar,
|
|
519
523
|
onRemove,
|
|
520
524
|
className,
|
|
521
|
-
onClick
|
|
525
|
+
onClick,
|
|
526
|
+
asChild = false,
|
|
527
|
+
children
|
|
522
528
|
} = _b, props = __objRest(_b, [
|
|
523
529
|
"variant",
|
|
524
530
|
"elevated",
|
|
@@ -530,7 +536,9 @@ var ChipImpl = React4.forwardRef(
|
|
|
530
536
|
"avatar",
|
|
531
537
|
"onRemove",
|
|
532
538
|
"className",
|
|
533
|
-
"onClick"
|
|
539
|
+
"onClick",
|
|
540
|
+
"asChild",
|
|
541
|
+
"children"
|
|
534
542
|
]);
|
|
535
543
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
536
544
|
disabled
|
|
@@ -645,6 +653,63 @@ var ChipImpl = React4.forwardRef(
|
|
|
645
653
|
) : null }),
|
|
646
654
|
/* @__PURE__ */ jsx("span", { className: "whitespace-nowrap", children: label })
|
|
647
655
|
] });
|
|
656
|
+
if (asChild) {
|
|
657
|
+
const child = React4.Children.only(children);
|
|
658
|
+
const innerContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
659
|
+
/* @__PURE__ */ jsx(Ripple, { ripples, onRippleDone: removeRipple }),
|
|
660
|
+
mainContent,
|
|
661
|
+
hasTrailingContent && /* @__PURE__ */ jsx("span", { className: "flex items-center justify-center shrink-0", children: onRemove ? /* @__PURE__ */ jsx(
|
|
662
|
+
"button",
|
|
663
|
+
{
|
|
664
|
+
type: "button",
|
|
665
|
+
tabIndex: disabled ? -1 : 0,
|
|
666
|
+
"aria-label": typeof label === "string" ? `Remove ${label}` : "Remove",
|
|
667
|
+
onClick: (e) => {
|
|
668
|
+
e.stopPropagation();
|
|
669
|
+
onRemove(e);
|
|
670
|
+
},
|
|
671
|
+
onPointerDown: (e) => e.stopPropagation(),
|
|
672
|
+
className: cn(
|
|
673
|
+
"flex items-center justify-center w-8.5 h-full",
|
|
674
|
+
"cursor-pointer focus-visible:outline-none",
|
|
675
|
+
"transition-all duration-150",
|
|
676
|
+
"relative overflow-hidden rounded-r-[7px] rounded-l-none",
|
|
677
|
+
"before:absolute before:-inset-px before:pointer-events-none before:bg-current",
|
|
678
|
+
"before:transition-opacity before:duration-200 before:opacity-0 before:rounded-r-[7px]",
|
|
679
|
+
"hover:before:opacity-[0.08] active:before:opacity-[0.12]",
|
|
680
|
+
selected ? "text-m3-on-secondary-container" : "text-m3-on-surface-variant"
|
|
681
|
+
),
|
|
682
|
+
children: /* @__PURE__ */ jsx(CloseIcon, {})
|
|
683
|
+
}
|
|
684
|
+
) : trailingIcon ? /* @__PURE__ */ jsx(
|
|
685
|
+
"span",
|
|
686
|
+
{
|
|
687
|
+
className: cn(
|
|
688
|
+
"flex items-center justify-center w-4.5 h-4.5 [&_.md-icon]:text-[length:inherit]!",
|
|
689
|
+
selected ? "text-m3-on-secondary-container" : "text-m3-on-surface-variant"
|
|
690
|
+
),
|
|
691
|
+
style: { fontSize: 18 },
|
|
692
|
+
"aria-hidden": "true",
|
|
693
|
+
children: trailingIcon
|
|
694
|
+
}
|
|
695
|
+
) : null })
|
|
696
|
+
] });
|
|
697
|
+
const strippedProps = __spreadValues({}, props);
|
|
698
|
+
delete strippedProps.children;
|
|
699
|
+
return /* @__PURE__ */ jsx(LazyMotion, { features: domMax, strict: true, children: /* @__PURE__ */ jsx(
|
|
700
|
+
Slot,
|
|
701
|
+
__spreadProps(__spreadValues({
|
|
702
|
+
ref,
|
|
703
|
+
"aria-disabled": disabled || void 0,
|
|
704
|
+
tabIndex: disabled ? -1 : 0,
|
|
705
|
+
onClick,
|
|
706
|
+
onPointerDown,
|
|
707
|
+
className: containerClass
|
|
708
|
+
}, strippedProps), {
|
|
709
|
+
children: React4.cloneElement(child, { children: innerContent })
|
|
710
|
+
})
|
|
711
|
+
) });
|
|
712
|
+
}
|
|
648
713
|
return /* @__PURE__ */ jsx(LazyMotion, { features: domMax, strict: true, children: /* @__PURE__ */ jsxs(
|
|
649
714
|
Root2,
|
|
650
715
|
__spreadProps(__spreadValues(__spreadProps(__spreadValues({
|
|
@@ -3449,7 +3514,6 @@ var FloatingLabel = React4.memo(function FloatingLabel2({
|
|
|
3449
3514
|
"absolute pointer-events-none select-none origin-[left_center] leading-6 text-base whitespace-nowrap",
|
|
3450
3515
|
"px-1 -mx-1",
|
|
3451
3516
|
// Clear the notch gap and keep text aligned
|
|
3452
|
-
variant === "outlined" && isFloated && "bg-m3-surface",
|
|
3453
3517
|
"left-4",
|
|
3454
3518
|
isDisabled && "opacity-[0.38]"
|
|
3455
3519
|
),
|
|
@@ -3525,7 +3589,8 @@ var OutlineContainer = React4.memo(function OutlineContainer2({
|
|
|
3525
3589
|
);
|
|
3526
3590
|
const borderWidth = isFocused || isError ? TF_SIZE.outlineThick : TF_SIZE.outlineThin;
|
|
3527
3591
|
const leftSegmentWidth = TF_SIZE.paddingStart;
|
|
3528
|
-
const
|
|
3592
|
+
const isNotched = isFloated && labelWidth > 0;
|
|
3593
|
+
const notchWidth = isNotched ? labelWidth * TF_TYPOGRAPHY.labelScaleRatio + TF_SIZE.notchPadding * 2 : 0;
|
|
3529
3594
|
const borderTransition = { duration: colorDuration, ease };
|
|
3530
3595
|
const notchTransition = { duration: notchDuration, ease };
|
|
3531
3596
|
return /* @__PURE__ */ jsxs(
|
|
@@ -3563,7 +3628,7 @@ var OutlineContainer = React4.memo(function OutlineContainer2({
|
|
|
3563
3628
|
style: { height: borderWidth },
|
|
3564
3629
|
animate: {
|
|
3565
3630
|
borderTopColor: borderColor,
|
|
3566
|
-
opacity:
|
|
3631
|
+
opacity: isNotched ? 0 : 1,
|
|
3567
3632
|
borderTopWidth: borderWidth,
|
|
3568
3633
|
borderTopStyle: "solid"
|
|
3569
3634
|
},
|
|
@@ -4015,7 +4080,7 @@ var TextFieldComponent = React4.forwardRef(
|
|
|
4015
4080
|
const computedDescribedby = [hasSupporting ? supportingId : "", ariaDescribedby != null ? ariaDescribedby : ""].filter(Boolean).join(" ") || void 0;
|
|
4016
4081
|
const inputClass = cn(
|
|
4017
4082
|
"bg-transparent outline-none w-full",
|
|
4018
|
-
isInToolbar ? "self-center" : "self-end",
|
|
4083
|
+
!resolvedLabel || isInToolbar ? "self-center" : "self-end",
|
|
4019
4084
|
"text-base leading-6 text-m3-on-surface",
|
|
4020
4085
|
"caret-[var(--color-m3-primary)]",
|
|
4021
4086
|
"placeholder:text-m3-on-surface-variant/60",
|
|
@@ -4026,7 +4091,7 @@ var TextFieldComponent = React4.forwardRef(
|
|
|
4026
4091
|
id: inputId,
|
|
4027
4092
|
name,
|
|
4028
4093
|
value: currentValue,
|
|
4029
|
-
placeholder: isFloated ? placeholder != null ? placeholder : "" : "",
|
|
4094
|
+
placeholder: !resolvedLabel || isFloated ? placeholder != null ? placeholder : "" : "",
|
|
4030
4095
|
disabled,
|
|
4031
4096
|
readOnly,
|
|
4032
4097
|
required,
|
|
@@ -4058,7 +4123,7 @@ var TextFieldComponent = React4.forwardRef(
|
|
|
4058
4123
|
"relative flex flex-col flex-1 min-w-0 h-full",
|
|
4059
4124
|
paddingStart,
|
|
4060
4125
|
paddingEnd,
|
|
4061
|
-
isInToolbar ? "justify-center" : variant === "filled" ? resolvedDense ? "pt-5 pb-2" : "pt-6 pb-2" : resolvedDense ? "py-3" : "py-4"
|
|
4126
|
+
isInToolbar || !resolvedLabel ? "justify-center" : variant === "filled" ? resolvedDense ? "pt-5 pb-2" : "pt-6 pb-2" : resolvedDense ? "py-3" : "py-4"
|
|
4062
4127
|
);
|
|
4063
4128
|
const wrapperClass = cn(
|
|
4064
4129
|
"group/tf inline-flex flex-col",
|