@byyuurin/ui 0.2.0 → 0.4.0

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 (137) hide show
  1. package/README.md +5 -3
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +2 -2
  4. package/dist/runtime/components/Accordion.vue +2 -2
  5. package/dist/runtime/components/Accordion.vue.d.ts +11 -7
  6. package/dist/runtime/components/Alert.vue +2 -1
  7. package/dist/runtime/components/Alert.vue.d.ts +4 -4
  8. package/dist/runtime/components/App.vue +2 -1
  9. package/dist/runtime/components/App.vue.d.ts +11 -7
  10. package/dist/runtime/components/Avatar.vue +2 -1
  11. package/dist/runtime/components/Avatar.vue.d.ts +4 -3
  12. package/dist/runtime/components/AvatarGroup.vue +2 -1
  13. package/dist/runtime/components/AvatarGroup.vue.d.ts +1 -1
  14. package/dist/runtime/components/Badge.vue +4 -3
  15. package/dist/runtime/components/Badge.vue.d.ts +2 -2
  16. package/dist/runtime/components/Breadcrumb.vue +2 -2
  17. package/dist/runtime/components/Breadcrumb.vue.d.ts +10 -6
  18. package/dist/runtime/components/Button.vue +8 -8
  19. package/dist/runtime/components/Button.vue.d.ts +1 -1
  20. package/dist/runtime/components/Calendar.vue +2 -1
  21. package/dist/runtime/components/Calendar.vue.d.ts +16 -12
  22. package/dist/runtime/components/Card.vue +2 -1
  23. package/dist/runtime/components/Card.vue.d.ts +1 -1
  24. package/dist/runtime/components/Carousel.vue +2 -1
  25. package/dist/runtime/components/Carousel.vue.d.ts +14 -10
  26. package/dist/runtime/components/Checkbox.vue +4 -2
  27. package/dist/runtime/components/Checkbox.vue.d.ts +4 -3
  28. package/dist/runtime/components/CheckboxGroup.vue +4 -3
  29. package/dist/runtime/components/CheckboxGroup.vue.d.ts +11 -7
  30. package/dist/runtime/components/Chip.vue +5 -1
  31. package/dist/runtime/components/Chip.vue.d.ts +2 -2
  32. package/dist/runtime/components/Collapsible.vue +2 -1
  33. package/dist/runtime/components/Collapsible.vue.d.ts +2 -2
  34. package/dist/runtime/components/Drawer.vue +2 -1
  35. package/dist/runtime/components/Drawer.vue.d.ts +6 -6
  36. package/dist/runtime/components/DropdownMenu.vue +3 -3
  37. package/dist/runtime/components/DropdownMenu.vue.d.ts +17 -9
  38. package/dist/runtime/components/DropdownMenuContent.vue +11 -12
  39. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +11 -7
  40. package/dist/runtime/components/FieldGroup.vue +2 -1
  41. package/dist/runtime/components/FieldGroup.vue.d.ts +2 -2
  42. package/dist/runtime/components/FileUpload.vue +267 -0
  43. package/dist/runtime/components/FileUpload.vue.d.ts +178 -0
  44. package/dist/runtime/components/Form.vue +2 -1
  45. package/dist/runtime/components/Form.vue.d.ts +13 -8
  46. package/dist/runtime/components/FormField.vue +6 -4
  47. package/dist/runtime/components/FormField.vue.d.ts +7 -2
  48. package/dist/runtime/components/Icon.vue.d.ts +1 -1
  49. package/dist/runtime/components/Input.vue +4 -4
  50. package/dist/runtime/components/Input.vue.d.ts +16 -12
  51. package/dist/runtime/components/InputNumber.vue +3 -2
  52. package/dist/runtime/components/InputNumber.vue.d.ts +128 -124
  53. package/dist/runtime/components/InputTags.vue +2 -1
  54. package/dist/runtime/components/InputTags.vue.d.ts +16 -11
  55. package/dist/runtime/components/Kbd.vue +2 -1
  56. package/dist/runtime/components/Kbd.vue.d.ts +2 -2
  57. package/dist/runtime/components/Link.vue +5 -3
  58. package/dist/runtime/components/Link.vue.d.ts +16 -6
  59. package/dist/runtime/components/LinkBase.vue.d.ts +2 -2
  60. package/dist/runtime/components/Marquee.vue +2 -1
  61. package/dist/runtime/components/Marquee.vue.d.ts +3 -3
  62. package/dist/runtime/components/Modal.vue +3 -2
  63. package/dist/runtime/components/Modal.vue.d.ts +6 -6
  64. package/dist/runtime/components/NavigationMenu.vue +2 -2
  65. package/dist/runtime/components/NavigationMenu.vue.d.ts +11 -7
  66. package/dist/runtime/components/Pagination.vue +2 -1
  67. package/dist/runtime/components/Pagination.vue.d.ts +4 -4
  68. package/dist/runtime/components/PinInput.vue +4 -4
  69. package/dist/runtime/components/PinInput.vue.d.ts +14 -10
  70. package/dist/runtime/components/Popover.vue +1 -1
  71. package/dist/runtime/components/Popover.vue.d.ts +11 -7
  72. package/dist/runtime/components/Progress.vue +2 -1
  73. package/dist/runtime/components/Progress.vue.d.ts +2 -2
  74. package/dist/runtime/components/RadioGroup.vue +3 -3
  75. package/dist/runtime/components/RadioGroup.vue.d.ts +11 -7
  76. package/dist/runtime/components/ScrollArea.vue +2 -1
  77. package/dist/runtime/components/ScrollArea.vue.d.ts +2 -2
  78. package/dist/runtime/components/Select.vue +282 -131
  79. package/dist/runtime/components/Select.vue.d.ts +103 -123
  80. package/dist/runtime/components/Separator.vue +2 -1
  81. package/dist/runtime/components/Separator.vue.d.ts +2 -2
  82. package/dist/runtime/components/Skeleton.vue +2 -1
  83. package/dist/runtime/components/Skeleton.vue.d.ts +2 -2
  84. package/dist/runtime/components/Slider.vue +2 -1
  85. package/dist/runtime/components/Slider.vue.d.ts +11 -7
  86. package/dist/runtime/components/Stepper.vue +117 -0
  87. package/dist/runtime/components/Stepper.vue.d.ts +83 -0
  88. package/dist/runtime/components/Switch.vue +3 -4
  89. package/dist/runtime/components/Switch.vue.d.ts +4 -3
  90. package/dist/runtime/components/Table.vue +2 -1
  91. package/dist/runtime/components/Table.vue.d.ts +13 -8
  92. package/dist/runtime/components/Tabs.vue +2 -2
  93. package/dist/runtime/components/Tabs.vue.d.ts +12 -8
  94. package/dist/runtime/components/Textarea.vue +3 -3
  95. package/dist/runtime/components/Textarea.vue.d.ts +16 -11
  96. package/dist/runtime/components/Timeline.vue +2 -1
  97. package/dist/runtime/components/Timeline.vue.d.ts +11 -7
  98. package/dist/runtime/components/Toast.vue +2 -1
  99. package/dist/runtime/components/Toast.vue.d.ts +5 -5
  100. package/dist/runtime/components/ToastProvider.vue +2 -2
  101. package/dist/runtime/components/ToastProvider.vue.d.ts +3 -3
  102. package/dist/runtime/components/Tooltip.vue +4 -4
  103. package/dist/runtime/components/Tooltip.vue.d.ts +2 -2
  104. package/dist/runtime/components/Tree.vue +241 -0
  105. package/dist/runtime/components/Tree.vue.d.ts +121 -0
  106. package/dist/runtime/composables/defineShortcuts.d.ts +1 -0
  107. package/dist/runtime/composables/defineShortcuts.js +44 -8
  108. package/dist/runtime/composables/useFileUpload.d.ts +19 -0
  109. package/dist/runtime/composables/useFileUpload.js +79 -0
  110. package/dist/runtime/composables/useLocale.d.ts +18 -0
  111. package/dist/runtime/locale/en.d.ts +9 -0
  112. package/dist/runtime/locale/en.js +9 -0
  113. package/dist/runtime/locale/zh_tw.d.ts +9 -0
  114. package/dist/runtime/locale/zh_tw.js +9 -0
  115. package/dist/runtime/types/html.d.ts +8 -0
  116. package/dist/runtime/types/html.js +0 -0
  117. package/dist/runtime/types/index.d.ts +3 -0
  118. package/dist/runtime/types/index.js +3 -0
  119. package/dist/runtime/types/input.d.ts +5 -5
  120. package/dist/runtime/types/locale.d.ts +9 -0
  121. package/dist/runtime/types/utils.d.ts +4 -4
  122. package/dist/runtime/utils/index.d.ts +3 -3
  123. package/dist/runtime/utils/link.d.ts +2 -1
  124. package/dist/runtime/utils/link.js +40 -29
  125. package/dist/runtime/vue/components/Icon.vue.d.ts +1 -1
  126. package/dist/runtime/vue/components/Link.vue +7 -12
  127. package/dist/runtime/vue/components/Link.vue.d.ts +11 -40
  128. package/dist/setup.d.mts +1 -1
  129. package/dist/shared/{ui.DpbffTXs.d.mts → ui.CGCKYv7g.d.mts} +6 -2
  130. package/dist/shared/{ui.CzIlLITK.mjs → ui.DYMXCXO6.mjs} +9 -5
  131. package/dist/shared/{ui.DLOxhmP0.mjs → ui.DcEKQd0n.mjs} +490 -20
  132. package/dist/unocss.mjs +1 -1
  133. package/dist/unplugin.d.mts +1 -1
  134. package/dist/unplugin.mjs +2 -2
  135. package/dist/vite.d.mts +1 -1
  136. package/dist/vite.mjs +2 -2
  137. package/package.json +31 -31
@@ -4,12 +4,12 @@ import { findPath, addTypeTemplate, addTemplate } from '@nuxt/kit';
4
4
  import { loadConfig } from '@unocss/config';
5
5
  import { genExport } from 'knitwork';
6
6
  import { kebabCase } from 'scule';
7
- import { n as neutralColors } from './ui.CzIlLITK.mjs';
7
+ import { n as neutralColors } from './ui.DYMXCXO6.mjs';
8
8
  import { ct } from '@byyuurin/ui-kit';
9
9
  import { defu } from 'defu';
10
10
 
11
11
  const name = "@byyuurin/ui";
12
- const version = "0.2.0";
12
+ const version = "0.4.0";
13
13
 
14
14
  const accordion = ct({
15
15
  parts: {
@@ -860,7 +860,7 @@ const carousel = (options) => ct({
860
860
  next: "absolute rounded-full",
861
861
  dots: "absolute inset-x-0 -bottom-7 flex flex-wrap items-center justify-center gap-3",
862
862
  dot: [
863
- "cursor-pointer size-3 bg-accented rounded-full",
863
+ "cursor-pointer size-3 bg-accented rounded-full focus:outline-none focus-visible:ring-2 focus-visible:ring-primary",
864
864
  options.theme.transitions && "transition"
865
865
  ]
866
866
  },
@@ -970,9 +970,6 @@ const checkbox = (options) => ct({
970
970
  label: "cursor-not-allowed",
971
971
  description: "cursor-not-allowed"
972
972
  }
973
- },
974
- checked: {
975
- true: ""
976
973
  }
977
974
  },
978
975
  compoundVariants: [
@@ -1458,6 +1455,233 @@ const dropdownMenu = (options) => ct({
1458
1455
  }
1459
1456
  });
1460
1457
 
1458
+ const fileUpload = (options) => ct({
1459
+ parts: {
1460
+ root: "relative flex flex-col",
1461
+ base: [
1462
+ "w-full flex-1 bg-default border border-default flex flex-col gap-2 items-stretch justify-center rounded-lg cursor-pointer focus-visible:outline-2",
1463
+ options.theme.transitions && "transition-colors"
1464
+ ],
1465
+ wrapper: "flex flex-col items-center justify-center text-center",
1466
+ icon: "shrink-0",
1467
+ avatar: "shrink-0",
1468
+ label: "font-medium text-default mt-2",
1469
+ description: "text-muted mt-1",
1470
+ actions: "flex flex-wrap gap-1.5 shrink-0 mt-4",
1471
+ files: "",
1472
+ file: "relative",
1473
+ fileLeadingAvatar: "shrink-0",
1474
+ fileWrapper: "flex flex-col min-w-0",
1475
+ fileName: "text-default truncate",
1476
+ fileSize: "text-muted truncate",
1477
+ fileTrailingButton: ""
1478
+ },
1479
+ variants: {
1480
+ color: {
1481
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
1482
+ neutral: ""
1483
+ },
1484
+ variant: {
1485
+ area: {
1486
+ wrapper: "px-4 py-3",
1487
+ base: "p-4"
1488
+ },
1489
+ button: ""
1490
+ },
1491
+ size: {
1492
+ xs: {
1493
+ base: "text-xs",
1494
+ icon: "size-4",
1495
+ file: "text-xs px-2 py-1 gap-1",
1496
+ fileWrapper: "flex-row gap-1"
1497
+ },
1498
+ sm: {
1499
+ base: "text-xs",
1500
+ icon: "size-4",
1501
+ file: "text-xs px-2.5 py-1.5 gap-1.5",
1502
+ fileWrapper: "flex-row gap-1"
1503
+ },
1504
+ md: {
1505
+ base: "text-sm",
1506
+ icon: "size-5",
1507
+ file: "text-xs px-2.5 py-1.5 gap-1.5"
1508
+ },
1509
+ lg: {
1510
+ base: "text-sm",
1511
+ icon: "size-5",
1512
+ file: "text-sm px-3 py-2 gap-2",
1513
+ fileSize: "text-xs"
1514
+ },
1515
+ xl: {
1516
+ base: "text-base",
1517
+ icon: "size-6",
1518
+ file: "text-sm px-3 py-2 gap-2"
1519
+ }
1520
+ },
1521
+ layout: {
1522
+ list: {
1523
+ root: "gap-2 items-start",
1524
+ files: "flex flex-col w-full gap-2",
1525
+ file: "min-w-0 flex items-center border border-default rounded-md w-full",
1526
+ fileTrailingButton: "ms-auto"
1527
+ },
1528
+ grid: {
1529
+ fileWrapper: "hidden",
1530
+ fileLeadingAvatar: "size-full rounded-lg",
1531
+ fileTrailingButton: "absolute -top-1.5 -end-1.5 p-0 rounded-full border-2 border-bg"
1532
+ }
1533
+ },
1534
+ position: {
1535
+ inside: "",
1536
+ outside: ""
1537
+ },
1538
+ dropzone: {
1539
+ true: {
1540
+ base: "border-dashed data-[dragging=true]:bg-elevated/25"
1541
+ }
1542
+ },
1543
+ interactive: {
1544
+ true: ""
1545
+ },
1546
+ highlight: {
1547
+ true: ""
1548
+ },
1549
+ multiple: {
1550
+ true: ""
1551
+ },
1552
+ disabled: {
1553
+ true: {
1554
+ base: "cursor-not-allowed opacity-75"
1555
+ }
1556
+ }
1557
+ },
1558
+ compoundVariants: [
1559
+ ...(options.theme.colors || []).map((color) => ({
1560
+ color,
1561
+ class: {
1562
+ base: `focus-visible:outline-${color}`
1563
+ }
1564
+ })),
1565
+ {
1566
+ color: "neutral",
1567
+ class: {
1568
+ base: "focus-visible:outline-inverted"
1569
+ }
1570
+ },
1571
+ ...(options.theme.colors || []).map((color) => ({
1572
+ color,
1573
+ highlight: true,
1574
+ class: {
1575
+ base: `border-${color}`
1576
+ }
1577
+ })),
1578
+ {
1579
+ color: "neutral",
1580
+ highlight: true,
1581
+ class: {
1582
+ base: "border-inverted"
1583
+ }
1584
+ },
1585
+ {
1586
+ size: "xs",
1587
+ layout: "list",
1588
+ class: {
1589
+ fileTrailingButton: "-me-1"
1590
+ }
1591
+ },
1592
+ {
1593
+ size: "sm",
1594
+ layout: "list",
1595
+ class: {
1596
+ fileTrailingButton: "-me-1.5"
1597
+ }
1598
+ },
1599
+ {
1600
+ size: "md",
1601
+ layout: "list",
1602
+ class: {
1603
+ fileTrailingButton: "-me-1.5"
1604
+ }
1605
+ },
1606
+ {
1607
+ size: "lg",
1608
+ layout: "list",
1609
+ class: {
1610
+ fileTrailingButton: "-me-2"
1611
+ }
1612
+ },
1613
+ {
1614
+ size: "xl",
1615
+ layout: "list",
1616
+ class: {
1617
+ fileTrailingButton: "-me-2"
1618
+ }
1619
+ },
1620
+ {
1621
+ variant: "button",
1622
+ size: "xs",
1623
+ class: {
1624
+ base: "p-1"
1625
+ }
1626
+ },
1627
+ {
1628
+ variant: "button",
1629
+ size: "sm",
1630
+ class: {
1631
+ base: "p-1.5"
1632
+ }
1633
+ },
1634
+ {
1635
+ variant: "button",
1636
+ size: "md",
1637
+ class: {
1638
+ base: "p-1.5"
1639
+ }
1640
+ },
1641
+ {
1642
+ variant: "button",
1643
+ size: "lg",
1644
+ class: {
1645
+ base: "p-2"
1646
+ }
1647
+ },
1648
+ {
1649
+ variant: "button",
1650
+ size: "xl",
1651
+ class: {
1652
+ base: "p-2"
1653
+ }
1654
+ },
1655
+ {
1656
+ layout: "grid",
1657
+ multiple: true,
1658
+ class: {
1659
+ files: "grid grid-cols-2 md:grid-cols-3 gap-4 w-full",
1660
+ file: "p-0 aspect-square"
1661
+ }
1662
+ },
1663
+ {
1664
+ layout: "grid",
1665
+ multiple: false,
1666
+ class: {
1667
+ file: "absolute inset-0 p-0"
1668
+ }
1669
+ },
1670
+ {
1671
+ interactive: true,
1672
+ disabled: false,
1673
+ class: {
1674
+ base: "hover:bg-elevated/25"
1675
+ }
1676
+ }
1677
+ ],
1678
+ defaultVariants: {
1679
+ color: "primary",
1680
+ variant: "area",
1681
+ size: "md"
1682
+ }
1683
+ });
1684
+
1461
1685
  const form = ct({
1462
1686
  base: ""
1463
1687
  });
@@ -1466,15 +1690,25 @@ const formField = ct({
1466
1690
  parts: {
1467
1691
  root: "",
1468
1692
  wrapper: "",
1469
- labelWrapper: "flex content-center items-center justify-between",
1693
+ labelWrapper: "flex content-center items-center justify-between gap-1",
1470
1694
  label: "block font-medium text-default",
1471
- container: "mt-1 relative",
1695
+ container: "relative",
1472
1696
  description: "text-muted",
1473
1697
  error: "mt-2 text-error",
1474
1698
  hint: "text-muted",
1475
1699
  help: "mt-2 text-muted"
1476
1700
  },
1477
1701
  variants: {
1702
+ orientation: {
1703
+ vertical: {
1704
+ root: "",
1705
+ container: "mt-1"
1706
+ },
1707
+ horizontal: {
1708
+ root: "flex justify-between place-items-baseline gap-2",
1709
+ container: "flex-grow"
1710
+ }
1711
+ },
1478
1712
  size: {
1479
1713
  xs: { root: "text-xs" },
1480
1714
  sm: { root: "text-xs" },
@@ -1489,7 +1723,8 @@ const formField = ct({
1489
1723
  }
1490
1724
  },
1491
1725
  defaultVariants: {
1492
- size: "md"
1726
+ size: "md",
1727
+ orientation: "vertical"
1493
1728
  }
1494
1729
  });
1495
1730
 
@@ -2921,8 +3156,12 @@ const select = (options) => {
2921
3156
  arrow: "fill-default",
2922
3157
  content: [
2923
3158
  "z-1 max-h-60 w-[--reka-select-trigger-width] bg-default shadow-lg rounded-md ring ring-default overflow-hidden origin-[--reka-select-content-transform-origin] pointer-events-auto flex flex-col",
2924
- "data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in]"
3159
+ "data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in]",
3160
+ "origin-[--reka-combobox-content-transform-origin] w-[--reka-combobox-trigger-width]"
2925
3161
  ],
3162
+ trailingClear: "p-0",
3163
+ input: "border-b border-default",
3164
+ focusScope: "flex flex-col min-h-0",
2926
3165
  viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
2927
3166
  group: "p-1 isolate",
2928
3167
  empty: "text-center text-muted",
@@ -3005,18 +3244,15 @@ const select = (options) => {
3005
3244
  itemTrailingIcon: "size-6",
3006
3245
  empty: "p-2 text-base"
3007
3246
  }
3247
+ },
3248
+ searchInput: {
3249
+ false: {
3250
+ input: "sr-only"
3251
+ }
3008
3252
  }
3009
3253
  },
3010
3254
  compoundVariants: [
3011
- ...input.compoundVariants.map((item) => {
3012
- return {
3013
- ...item,
3014
- class: {
3015
- ...item.class,
3016
- base: typeof item.class.base === "string" ? item.class.base.replace(/focus-visible:/g, "focus:") : item.class.base
3017
- }
3018
- };
3019
- })
3255
+ ...input.compoundVariants
3020
3256
  ],
3021
3257
  defaultVariants: {
3022
3258
  ...input.defaultVariants
@@ -3284,6 +3520,141 @@ const slider = (options) => ct({
3284
3520
  }
3285
3521
  });
3286
3522
 
3523
+ const stepper = (options) => ct({
3524
+ parts: {
3525
+ root: "flex gap-4",
3526
+ header: "flex",
3527
+ item: "group text-center relative w-full",
3528
+ container: "relative",
3529
+ trigger: "rounded-full font-medium text-center align-middle flex items-center justify-center font-semibold group-data-[state=completed]:text-inverted group-data-[state=active]:text-inverted text-muted bg-elevated focus-visible:outline-2 focus-visible:outline-offset-2",
3530
+ indicator: "flex items-center justify-center size-full",
3531
+ icon: "shrink-0",
3532
+ separator: "absolute rounded-full group-data-[disabled]:opacity-75 bg-accented",
3533
+ wrapper: "",
3534
+ title: "font-medium text-default",
3535
+ description: "text-muted text-wrap",
3536
+ content: "size-full"
3537
+ },
3538
+ variants: {
3539
+ orientation: {
3540
+ horizontal: {
3541
+ root: "flex-col",
3542
+ container: "flex justify-center",
3543
+ separator: "top-[calc(50%-2px)] h-0.5",
3544
+ wrapper: "mt-1"
3545
+ },
3546
+ vertical: {
3547
+ header: "flex-col gap-4",
3548
+ item: "flex text-start",
3549
+ separator: "start-[calc(50%-1px)] -bottom-[0.625rem] w-0.5"
3550
+ }
3551
+ },
3552
+ size: {
3553
+ xs: {
3554
+ trigger: "size-6 text-xs",
3555
+ icon: "size-3",
3556
+ title: "text-xs",
3557
+ description: "text-xs",
3558
+ wrapper: "mt-1.5"
3559
+ },
3560
+ sm: {
3561
+ trigger: "size-8 text-sm",
3562
+ icon: "size-4",
3563
+ title: "text-xs",
3564
+ description: "text-xs",
3565
+ wrapper: "mt-2"
3566
+ },
3567
+ md: {
3568
+ trigger: "size-10 text-base",
3569
+ icon: "size-5",
3570
+ title: "text-sm",
3571
+ description: "text-sm",
3572
+ wrapper: "mt-2.5"
3573
+ },
3574
+ lg: {
3575
+ trigger: "size-12 text-lg",
3576
+ icon: "size-6",
3577
+ title: "text-base",
3578
+ description: "text-base",
3579
+ wrapper: "mt-3"
3580
+ },
3581
+ xl: {
3582
+ trigger: "size-14 text-xl",
3583
+ icon: "size-7",
3584
+ title: "text-lg",
3585
+ description: "text-lg",
3586
+ wrapper: "mt-3.5"
3587
+ }
3588
+ },
3589
+ color: {
3590
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
3591
+ trigger: `group-data-[state=completed]:bg-${color} group-data-[state=active]:bg-${color} focus-visible:outline-${color}`,
3592
+ separator: `group-data-[state=completed]:bg-${color}`
3593
+ }])),
3594
+ neutral: {
3595
+ trigger: "group-data-[state=completed]:bg-inverted group-data-[state=active]:bg-inverted focus-visible:outline-inverted",
3596
+ separator: "group-data-[state=completed]:bg-inverted"
3597
+ }
3598
+ }
3599
+ },
3600
+ compoundVariants: [
3601
+ {
3602
+ orientation: "horizontal",
3603
+ size: "xs",
3604
+ class: { separator: "start-[calc(50%+1rem)] end-[calc(-50%+1rem)]" }
3605
+ },
3606
+ {
3607
+ orientation: "horizontal",
3608
+ size: "sm",
3609
+ class: { separator: "start-[calc(50%+1.25rem)] end-[calc(-50%+1.25rem)]" }
3610
+ },
3611
+ {
3612
+ orientation: "horizontal",
3613
+ size: "md",
3614
+ class: { separator: "start-[calc(50%+1.75rem)] end-[calc(-50%+1.75rem)]" }
3615
+ },
3616
+ {
3617
+ orientation: "horizontal",
3618
+ size: "lg",
3619
+ class: { separator: "start-[calc(50%+2rem)] end-[calc(-50%+2rem)]" }
3620
+ },
3621
+ {
3622
+ orientation: "horizontal",
3623
+ size: "xl",
3624
+ class: { separator: "start-[calc(50%+2.25rem)] end-[calc(-50%+2.25rem)]" }
3625
+ },
3626
+ {
3627
+ orientation: "vertical",
3628
+ size: "xs",
3629
+ class: { separator: "top-7.5", item: "gap-1.5" }
3630
+ },
3631
+ {
3632
+ orientation: "vertical",
3633
+ size: "sm",
3634
+ class: { separator: "top-9.5", item: "gap-2" }
3635
+ },
3636
+ {
3637
+ orientation: "vertical",
3638
+ size: "md",
3639
+ class: { separator: "top-11.5", item: "gap-2.5" }
3640
+ },
3641
+ {
3642
+ orientation: "vertical",
3643
+ size: "lg",
3644
+ class: { separator: "top-13.5", item: "gap-3" }
3645
+ },
3646
+ {
3647
+ orientation: "vertical",
3648
+ size: "xl",
3649
+ class: { separator: "top-15.5", item: "gap-3.5" }
3650
+ }
3651
+ ],
3652
+ defaultVariants: {
3653
+ size: "md",
3654
+ color: "primary"
3655
+ }
3656
+ });
3657
+
3287
3658
  const _switch = (options) => ct({
3288
3659
  parts: {
3289
3660
  root: "relative flex items-start",
@@ -4028,6 +4399,102 @@ const tooltip = ct({
4028
4399
  }
4029
4400
  });
4030
4401
 
4402
+ const tree = (options) => ct({
4403
+ parts: {
4404
+ root: "relative isolate",
4405
+ item: "w-full",
4406
+ listWithChildren: "border-s border-default",
4407
+ itemWithChildren: "ps-1.5 -ms-px",
4408
+ link: "relative group w-full flex items-center text-sm select-none before:absolute before:inset-y-px before:inset-x-0 before:-z-1 before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:ring-inset focus-visible:before:ring-2",
4409
+ linkLeadingIcon: "shrink-0 relative",
4410
+ linkLabel: "truncate",
4411
+ linkTrailing: "ms-auto inline-flex gap-1.5 items-center",
4412
+ linkTrailingIcon: "shrink-0 transform transition-transform duration-200 group-data-expanded:rotate-180"
4413
+ },
4414
+ variants: {
4415
+ color: {
4416
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
4417
+ link: `focus-visible:before:ring-${color}`
4418
+ }])),
4419
+ neutral: {
4420
+ link: "focus-visible:before:ring-inverted"
4421
+ }
4422
+ },
4423
+ size: {
4424
+ xs: {
4425
+ listWithChildren: "ms-4",
4426
+ link: "px-2 py-1 text-xs gap-1",
4427
+ linkLeadingIcon: "size-4",
4428
+ linkTrailingIcon: "size-4"
4429
+ },
4430
+ sm: {
4431
+ listWithChildren: "ms-4.5",
4432
+ link: "px-2.5 py-1.5 text-xs gap-1.5",
4433
+ linkLeadingIcon: "size-4",
4434
+ linkTrailingIcon: "size-4"
4435
+ },
4436
+ md: {
4437
+ listWithChildren: "ms-5",
4438
+ link: "px-2.5 py-1.5 text-sm gap-1.5",
4439
+ linkLeadingIcon: "size-5",
4440
+ linkTrailingIcon: "size-5"
4441
+ },
4442
+ lg: {
4443
+ listWithChildren: "ms-5.5",
4444
+ link: "px-3 py-2 text-sm gap-2",
4445
+ linkLeadingIcon: "size-5",
4446
+ linkTrailingIcon: "size-5"
4447
+ },
4448
+ xl: {
4449
+ listWithChildren: "ms-6",
4450
+ link: "px-3 py-2 text-base gap-2",
4451
+ linkLeadingIcon: "size-6",
4452
+ linkTrailingIcon: "size-6"
4453
+ }
4454
+ },
4455
+ selected: {
4456
+ true: {
4457
+ link: "before:bg-elevated"
4458
+ }
4459
+ },
4460
+ disabled: {
4461
+ true: {
4462
+ link: "cursor-not-allowed opacity-75"
4463
+ }
4464
+ }
4465
+ },
4466
+ compoundVariants: [
4467
+ ...(options.theme.colors || []).map((color) => ({
4468
+ color,
4469
+ selected: true,
4470
+ class: {
4471
+ link: `text-${color}`
4472
+ }
4473
+ })),
4474
+ {
4475
+ color: "neutral",
4476
+ selected: true,
4477
+ class: {
4478
+ link: "text-highlighted"
4479
+ }
4480
+ },
4481
+ {
4482
+ selected: false,
4483
+ disabled: false,
4484
+ class: {
4485
+ link: [
4486
+ "hover:text-highlighted hover:before:bg-elevated/50",
4487
+ options.theme.transitions && "transition-colors before:transition-colors"
4488
+ ]
4489
+ }
4490
+ }
4491
+ ],
4492
+ defaultVariants: {
4493
+ color: "primary",
4494
+ size: "md"
4495
+ }
4496
+ });
4497
+
4031
4498
  const theme = {
4032
4499
  __proto__: null,
4033
4500
  accordion: accordion,
@@ -4047,6 +4514,7 @@ const theme = {
4047
4514
  drawer: drawer,
4048
4515
  dropdownMenu: dropdownMenu,
4049
4516
  fieldGroup: fieldGroup,
4517
+ fileUpload: fileUpload,
4050
4518
  form: form,
4051
4519
  formField: formField,
4052
4520
  input: inputTheme,
@@ -4067,6 +4535,7 @@ const theme = {
4067
4535
  separator: separator,
4068
4536
  skeleton: skeleton,
4069
4537
  slider: slider,
4538
+ stepper: stepper,
4070
4539
  switch: _switch,
4071
4540
  table: table,
4072
4541
  tabs: tabs,
@@ -4074,7 +4543,8 @@ const theme = {
4074
4543
  timeline: timeline,
4075
4544
  toast: toast,
4076
4545
  toastProvider: toastProvider,
4077
- tooltip: tooltip
4546
+ tooltip: tooltip,
4547
+ tree: tree
4078
4548
  };
4079
4549
 
4080
4550
  function getTemplates(options, uiConfig, nuxt) {
package/dist/unocss.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { colors } from '@unocss/preset-wind4/colors';
2
2
  import { parseColor } from '@unocss/preset-wind4/utils';
3
- import { r as resolveColors } from './shared/ui.CzIlLITK.mjs';
3
+ import { r as resolveColors } from './shared/ui.DYMXCXO6.mjs';
4
4
  import '../dist/runtime/utils/index.js';
5
5
 
6
6
  function createUnoPreset(options = {}) {
@@ -2,7 +2,7 @@ import 'unplugin';
2
2
  import 'unplugin-auto-import/types';
3
3
  import 'unplugin-vue-components/types';
4
4
  import './shared/ui.IulR-OYx.mjs';
5
- export { U as UIOptions, r as runtimeDir, u as unplugin } from './shared/ui.DpbffTXs.mjs';
5
+ export { U as UIOptions, r as runtimeDir, u as unplugin } from './shared/ui.CGCKYv7g.mjs';
6
6
  import '@nuxt/schema';
7
7
  import '@unocss/preset-wind4/colors';
8
8
  import '../dist/runtime/types/index.js';
package/dist/unplugin.mjs CHANGED
@@ -2,8 +2,8 @@ import { fileURLToPath } from 'node:url';
2
2
  import { defu } from 'defu';
3
3
  import { join, normalize } from 'pathe';
4
4
  import { createUnplugin } from 'unplugin';
5
- import { g as getTemplates, n as name } from './shared/ui.DLOxhmP0.mjs';
6
- import { d as defaultOptions, r as resolveColors, g as getDefaultUIConfig } from './shared/ui.CzIlLITK.mjs';
5
+ import { g as getTemplates, n as name } from './shared/ui.DcEKQd0n.mjs';
6
+ import { d as defaultOptions, r as resolveColors, g as getDefaultUIConfig } from './shared/ui.DYMXCXO6.mjs';
7
7
  import AutoImport from 'unplugin-auto-import';
8
8
  import { globSync } from 'tinyglobby';
9
9
  import AutoImportComponents from 'unplugin-vue-components';
package/dist/vite.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as vite from 'vite';
2
- import { U as UIOptions } from './shared/ui.DpbffTXs.mjs';
2
+ import { U as UIOptions } from './shared/ui.CGCKYv7g.mjs';
3
3
  import 'unplugin';
4
4
  import 'unplugin-auto-import/types';
5
5
  import 'unplugin-vue-components/types';
package/dist/vite.mjs CHANGED
@@ -3,13 +3,13 @@ import 'node:url';
3
3
  import 'defu';
4
4
  import 'pathe';
5
5
  import 'unplugin';
6
- import './shared/ui.DLOxhmP0.mjs';
6
+ import './shared/ui.DcEKQd0n.mjs';
7
7
  import 'node:process';
8
8
  import '@nuxt/kit';
9
9
  import '@unocss/config';
10
10
  import 'knitwork';
11
11
  import 'scule';
12
- import './shared/ui.CzIlLITK.mjs';
12
+ import './shared/ui.DYMXCXO6.mjs';
13
13
  import '../dist/runtime/utils/index.js';
14
14
  import '@byyuurin/ui-kit';
15
15
  import 'unplugin-auto-import';