@bug-on/m3-expressive 1.2.1 → 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.
Files changed (48) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/buttons.d.mts +26 -5
  3. package/dist/buttons.d.ts +26 -5
  4. package/dist/buttons.js +581 -345
  5. package/dist/buttons.js.map +1 -1
  6. package/dist/buttons.mjs +573 -345
  7. package/dist/buttons.mjs.map +1 -1
  8. package/dist/core.js +52 -13
  9. package/dist/core.js.map +1 -1
  10. package/dist/core.mjs +52 -13
  11. package/dist/core.mjs.map +1 -1
  12. package/dist/feedback.js +52 -13
  13. package/dist/feedback.js.map +1 -1
  14. package/dist/feedback.mjs +52 -13
  15. package/dist/feedback.mjs.map +1 -1
  16. package/dist/forms.js +4 -1
  17. package/dist/forms.js.map +1 -1
  18. package/dist/forms.mjs +4 -1
  19. package/dist/forms.mjs.map +1 -1
  20. package/dist/{icon-button-sSt6PPLg.d.mts → icon-button-CSsDmuQC.d.mts} +13 -0
  21. package/dist/{icon-button-sSt6PPLg.d.ts → icon-button-CSsDmuQC.d.ts} +13 -0
  22. package/dist/index.d.mts +2 -2
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.js +1268 -1005
  25. package/dist/index.js.map +1 -1
  26. package/dist/index.mjs +1127 -865
  27. package/dist/index.mjs.map +1 -1
  28. package/dist/layout.js +15 -7
  29. package/dist/layout.js.map +1 -1
  30. package/dist/layout.mjs +15 -7
  31. package/dist/layout.mjs.map +1 -1
  32. package/dist/navigation.d.mts +1 -1
  33. package/dist/navigation.d.ts +1 -1
  34. package/dist/navigation.js +66 -16
  35. package/dist/navigation.js.map +1 -1
  36. package/dist/navigation.mjs +66 -16
  37. package/dist/navigation.mjs.map +1 -1
  38. package/dist/overlays.js +52 -13
  39. package/dist/overlays.js.map +1 -1
  40. package/dist/overlays.mjs +52 -13
  41. package/dist/overlays.mjs.map +1 -1
  42. package/dist/pickers.js +177 -111
  43. package/dist/pickers.js.map +1 -1
  44. package/dist/pickers.mjs +177 -111
  45. package/dist/pickers.mjs.map +1 -1
  46. package/dist/{split-button-trailing-uncheckable-BcPD_7uK.d.ts → split-button-trailing-uncheckable-C-qQlyZx.d.ts} +74 -19
  47. package/dist/{split-button-trailing-uncheckable-DtFJkTFr.d.mts → split-button-trailing-uncheckable-DHJqNeq_.d.mts} +74 -19
  48. package/package.json +3 -3
package/dist/core.mjs CHANGED
@@ -415,7 +415,10 @@ function useRippleState(options = {}) {
415
415
  const rect = e.currentTarget.getBoundingClientRect();
416
416
  const x = e.clientX - rect.left;
417
417
  const y = e.clientY - rect.top;
418
- const rippleSize = Math.hypot(rect.width, rect.height) * 2;
418
+ const rippleSize = Math.max(
419
+ Math.hypot(rect.width, rect.height) * 2.5,
420
+ 320
421
+ );
419
422
  setRipples((prev) => [
420
423
  ...prev,
421
424
  { id: Date.now(), x, y, size: rippleSize }
@@ -1370,12 +1373,39 @@ function TouchTarget() {
1370
1373
  }
1371
1374
  );
1372
1375
  }
1373
- var SIZE_STYLES = {
1374
- xs: "h-8 w-8",
1375
- sm: "h-10 w-10",
1376
- md: "h-14 w-14",
1377
- lg: "h-24 w-24",
1378
- xl: "h-[8.5rem] w-[8.5rem]"
1376
+ var SIZE_HEIGHT_STYLES = {
1377
+ xs: "h-8",
1378
+ sm: "h-10",
1379
+ md: "h-14",
1380
+ lg: "h-24",
1381
+ xl: "h-[8.5rem]"
1382
+ };
1383
+ var WIDTH_SIZE_STYLES = {
1384
+ xs: {
1385
+ default: "w-8",
1386
+ narrow: "w-8",
1387
+ wide: "w-12"
1388
+ },
1389
+ sm: {
1390
+ default: "w-10",
1391
+ narrow: "w-12",
1392
+ wide: "w-[3.25rem]"
1393
+ },
1394
+ md: {
1395
+ default: "w-14",
1396
+ narrow: "w-12",
1397
+ wide: "w-[4.5rem]"
1398
+ },
1399
+ lg: {
1400
+ default: "w-24",
1401
+ narrow: "w-16",
1402
+ wide: "w-32"
1403
+ },
1404
+ xl: {
1405
+ default: "w-[8.5rem]",
1406
+ narrow: "w-[6.5rem]",
1407
+ wide: "w-[11.5rem]"
1408
+ }
1379
1409
  };
1380
1410
  var SIZE_ICON = {
1381
1411
  xs: { cls: "size-5", px: 20 },
@@ -1476,8 +1506,10 @@ var IconButtonComponent = React11.forwardRef(
1476
1506
  variant = "default",
1477
1507
  colorStyle = "standard",
1478
1508
  size = "sm",
1509
+ widthVariant = "default",
1479
1510
  shape = "round",
1480
1511
  selected,
1512
+ selectedIcon,
1481
1513
  loading = false,
1482
1514
  loadingVariant = "loading-indicator",
1483
1515
  iconSize,
@@ -1492,8 +1524,10 @@ var IconButtonComponent = React11.forwardRef(
1492
1524
  "variant",
1493
1525
  "colorStyle",
1494
1526
  "size",
1527
+ "widthVariant",
1495
1528
  "shape",
1496
1529
  "selected",
1530
+ "selectedIcon",
1497
1531
  "loading",
1498
1532
  "loadingVariant",
1499
1533
  "iconSize",
@@ -1503,7 +1537,7 @@ var IconButtonComponent = React11.forwardRef(
1503
1537
  "onKeyDown",
1504
1538
  "aria-label"
1505
1539
  ]);
1506
- var _a2, _b2;
1540
+ var _a2, _b2, _c, _d, _e;
1507
1541
  const isToggle = variant === "toggle";
1508
1542
  const isSelected = isToggle && !!selected;
1509
1543
  const resolvedColorClass = React11.useMemo(
@@ -1534,6 +1568,8 @@ var IconButtonComponent = React11.forwardRef(
1534
1568
  const defaultIconPx = sizeIcon.px;
1535
1569
  const iconPx = iconSize != null ? iconSize : defaultIconPx;
1536
1570
  const isCustomSize = iconSize != null && iconSize !== "inherit";
1571
+ const heightClass = (_c = SIZE_HEIGHT_STYLES[size]) != null ? _c : SIZE_HEIGHT_STYLES.sm;
1572
+ const widthClass = (_e = ((_d = WIDTH_SIZE_STYLES[size]) != null ? _d : WIDTH_SIZE_STYLES.sm)[widthVariant]) != null ? _e : WIDTH_SIZE_STYLES.sm.default;
1537
1573
  const needsTouchTarget = size === "xs" || size === "sm";
1538
1574
  const { ripples, onPointerDown, removeRipple } = useRippleState({
1539
1575
  disabled: loading
@@ -1596,7 +1632,7 @@ var IconButtonComponent = React11.forwardRef(
1596
1632
  transition: SPRING_TRANSITION,
1597
1633
  "aria-hidden": "true",
1598
1634
  className: cn(
1599
- "flex items-center justify-center shrink-0 [&_svg]:w-full [&_svg]:h-full [&_.md-icon]:text-[length:inherit]!",
1635
+ "flex items-center justify-center shrink-0 [&_svg]:w-full [&_svg]:h-full [&_.md-icon]:text-[length:inherit]",
1600
1636
  iconSize != null ? void 0 : iconClass
1601
1637
  ),
1602
1638
  style: {
@@ -1604,9 +1640,9 @@ var IconButtonComponent = React11.forwardRef(
1604
1640
  width: isCustomSize ? `${iconSize}px` : void 0,
1605
1641
  height: isCustomSize ? `${iconSize}px` : void 0
1606
1642
  },
1607
- children: asChild ? React11.Children.only(children).props.children : children
1643
+ children: isSelected && selectedIcon ? selectedIcon : asChild ? React11.Children.only(children).props.children : children
1608
1644
  }),
1609
- "content"
1645
+ isSelected && selectedIcon ? "selected-content" : "content"
1610
1646
  ) })
1611
1647
  ] });
1612
1648
  const containerClassName = cn(
@@ -1615,7 +1651,8 @@ var IconButtonComponent = React11.forwardRef(
1615
1651
  outlineWidthClass,
1616
1652
  disabledBgClass,
1617
1653
  "overflow-hidden",
1618
- SIZE_STYLES[size],
1654
+ heightClass,
1655
+ widthClass,
1619
1656
  loading && "pointer-events-none opacity-75 cursor-not-allowed",
1620
1657
  className
1621
1658
  );
@@ -1632,7 +1669,9 @@ var IconButtonComponent = React11.forwardRef(
1632
1669
  onClick: handleClick,
1633
1670
  onPointerDown,
1634
1671
  onKeyDown: handleKeyDown,
1635
- style: __spreadProps(__spreadValues({}, style), { borderRadius: `${animateRadius}px` }),
1672
+ style: __spreadProps(__spreadValues({}, style), {
1673
+ borderRadius: `${animateRadius}px`
1674
+ }),
1636
1675
  className: containerClassName
1637
1676
  }, restProps), {
1638
1677
  children: React11.cloneElement(child, { children: innerContent })