@byyuurin/ui 0.1.0 → 0.3.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 (140) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +5 -3
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +2 -2
  5. package/dist/runtime/components/Accordion.vue +41 -41
  6. package/dist/runtime/components/Accordion.vue.d.ts +11 -7
  7. package/dist/runtime/components/Alert.vue +63 -63
  8. package/dist/runtime/components/Alert.vue.d.ts +4 -4
  9. package/dist/runtime/components/App.vue +11 -10
  10. package/dist/runtime/components/App.vue.d.ts +11 -7
  11. package/dist/runtime/components/Avatar.vue +29 -29
  12. package/dist/runtime/components/Avatar.vue.d.ts +4 -3
  13. package/dist/runtime/components/AvatarGroup.vue +4 -4
  14. package/dist/runtime/components/AvatarGroup.vue.d.ts +1 -1
  15. package/dist/runtime/components/Badge.vue +32 -32
  16. package/dist/runtime/components/Badge.vue.d.ts +2 -2
  17. package/dist/runtime/components/Breadcrumb.vue +49 -49
  18. package/dist/runtime/components/Breadcrumb.vue.d.ts +10 -6
  19. package/dist/runtime/components/Button.vue +52 -51
  20. package/dist/runtime/components/Button.vue.d.ts +1 -1
  21. package/dist/runtime/components/Calendar.vue +75 -77
  22. package/dist/runtime/components/Calendar.vue.d.ts +16 -12
  23. package/dist/runtime/components/Card.vue +41 -41
  24. package/dist/runtime/components/Card.vue.d.ts +1 -1
  25. package/dist/runtime/components/Carousel.vue +85 -66
  26. package/dist/runtime/components/Carousel.vue.d.ts +14 -10
  27. package/dist/runtime/components/Checkbox.vue +46 -46
  28. package/dist/runtime/components/Checkbox.vue.d.ts +4 -3
  29. package/dist/runtime/components/CheckboxGroup.vue +131 -0
  30. package/dist/runtime/components/CheckboxGroup.vue.d.ts +93 -0
  31. package/dist/runtime/components/Chip.vue +15 -15
  32. package/dist/runtime/components/Chip.vue.d.ts +2 -2
  33. package/dist/runtime/components/Collapsible.vue +14 -14
  34. package/dist/runtime/components/Collapsible.vue.d.ts +2 -2
  35. package/dist/runtime/components/Drawer.vue +76 -76
  36. package/dist/runtime/components/Drawer.vue.d.ts +6 -6
  37. package/dist/runtime/components/DropdownMenu.vue +28 -28
  38. package/dist/runtime/components/DropdownMenu.vue.d.ts +17 -9
  39. package/dist/runtime/components/DropdownMenuContent.vue +152 -153
  40. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +11 -7
  41. package/dist/runtime/components/FieldGroup.vue +3 -3
  42. package/dist/runtime/components/FieldGroup.vue.d.ts +2 -2
  43. package/dist/runtime/components/Form.vue +9 -9
  44. package/dist/runtime/components/Form.vue.d.ts +13 -8
  45. package/dist/runtime/components/FormField.vue +39 -38
  46. package/dist/runtime/components/FormField.vue.d.ts +7 -2
  47. package/dist/runtime/components/Icon.vue +2 -2
  48. package/dist/runtime/components/Icon.vue.d.ts +1 -1
  49. package/dist/runtime/components/Input.vue +48 -48
  50. package/dist/runtime/components/Input.vue.d.ts +16 -12
  51. package/dist/runtime/components/InputNumber.vue +48 -50
  52. package/dist/runtime/components/InputNumber.vue.d.ts +128 -129
  53. package/dist/runtime/components/InputTags.vue +156 -0
  54. package/dist/runtime/components/InputTags.vue.d.ts +90 -0
  55. package/dist/runtime/components/Kbd.vue +3 -3
  56. package/dist/runtime/components/Kbd.vue.d.ts +2 -2
  57. package/dist/runtime/components/Link.vue +26 -25
  58. package/dist/runtime/components/Link.vue.d.ts +16 -6
  59. package/dist/runtime/components/LinkBase.vue +3 -3
  60. package/dist/runtime/components/LinkBase.vue.d.ts +2 -2
  61. package/dist/runtime/components/Marquee.vue +38 -0
  62. package/dist/runtime/components/Marquee.vue.d.ts +54 -0
  63. package/dist/runtime/components/Modal.vue +74 -74
  64. package/dist/runtime/components/Modal.vue.d.ts +6 -6
  65. package/dist/runtime/components/NavigationMenu.vue +243 -234
  66. package/dist/runtime/components/NavigationMenu.vue.d.ts +53 -14
  67. package/dist/runtime/components/OverlayProvider.vue +9 -9
  68. package/dist/runtime/components/Pagination.vue +47 -47
  69. package/dist/runtime/components/Pagination.vue.d.ts +4 -4
  70. package/dist/runtime/components/PinInput.vue +23 -23
  71. package/dist/runtime/components/PinInput.vue.d.ts +14 -10
  72. package/dist/runtime/components/Popover.vue +22 -22
  73. package/dist/runtime/components/Popover.vue.d.ts +11 -7
  74. package/dist/runtime/components/Progress.vue +25 -25
  75. package/dist/runtime/components/Progress.vue.d.ts +2 -2
  76. package/dist/runtime/components/RadioGroup.vue +50 -50
  77. package/dist/runtime/components/RadioGroup.vue.d.ts +13 -9
  78. package/dist/runtime/components/ScrollArea.vue +32 -32
  79. package/dist/runtime/components/ScrollArea.vue.d.ts +2 -2
  80. package/dist/runtime/components/Select.vue +299 -148
  81. package/dist/runtime/components/Select.vue.d.ts +103 -123
  82. package/dist/runtime/components/Separator.vue +30 -30
  83. package/dist/runtime/components/Separator.vue.d.ts +2 -2
  84. package/dist/runtime/components/Skeleton.vue +11 -11
  85. package/dist/runtime/components/Skeleton.vue.d.ts +2 -2
  86. package/dist/runtime/components/Slider.vue +25 -25
  87. package/dist/runtime/components/Slider.vue.d.ts +11 -7
  88. package/dist/runtime/components/Stepper.vue +116 -0
  89. package/dist/runtime/components/Stepper.vue.d.ts +83 -0
  90. package/dist/runtime/components/Switch.vue +30 -30
  91. package/dist/runtime/components/Switch.vue.d.ts +4 -3
  92. package/dist/runtime/components/Table.vue +188 -166
  93. package/dist/runtime/components/Table.vue.d.ts +27 -22
  94. package/dist/runtime/components/Tabs.vue +74 -74
  95. package/dist/runtime/components/Tabs.vue.d.ts +12 -8
  96. package/dist/runtime/components/Textarea.vue +47 -47
  97. package/dist/runtime/components/Textarea.vue.d.ts +16 -11
  98. package/dist/runtime/components/Timeline.vue +102 -0
  99. package/dist/runtime/components/Timeline.vue.d.ts +78 -0
  100. package/dist/runtime/components/Toast.vue +93 -93
  101. package/dist/runtime/components/Toast.vue.d.ts +5 -5
  102. package/dist/runtime/components/ToastProvider.vue +29 -29
  103. package/dist/runtime/components/ToastProvider.vue.d.ts +3 -3
  104. package/dist/runtime/components/Tooltip.vue +24 -25
  105. package/dist/runtime/components/Tooltip.vue.d.ts +2 -2
  106. package/dist/runtime/components/Tree.vue +241 -0
  107. package/dist/runtime/components/Tree.vue.d.ts +121 -0
  108. package/dist/runtime/composables/defineShortcuts.d.ts +1 -0
  109. package/dist/runtime/composables/defineShortcuts.js +44 -8
  110. package/dist/runtime/composables/useLocale.d.ts +12 -0
  111. package/dist/runtime/locale/en.d.ts +6 -0
  112. package/dist/runtime/locale/en.js +6 -0
  113. package/dist/runtime/locale/zh_tw.d.ts +6 -0
  114. package/dist/runtime/locale/zh_tw.js +6 -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 +7 -0
  118. package/dist/runtime/types/index.js +7 -0
  119. package/dist/runtime/types/input.d.ts +5 -5
  120. package/dist/runtime/types/locale.d.ts +6 -0
  121. package/dist/runtime/types/unocss.d.ts +4 -4
  122. package/dist/runtime/types/utils.d.ts +9 -6
  123. package/dist/runtime/utils/index.d.ts +3 -3
  124. package/dist/runtime/utils/link.d.ts +2 -1
  125. package/dist/runtime/utils/link.js +40 -29
  126. package/dist/runtime/vue/components/Icon.vue +2 -2
  127. package/dist/runtime/vue/components/Icon.vue.d.ts +1 -1
  128. package/dist/runtime/vue/components/Link.vue +7 -12
  129. package/dist/runtime/vue/components/Link.vue.d.ts +11 -40
  130. package/dist/setup.d.mts +1 -1
  131. package/dist/shared/{ui.CzIlLITK.mjs → ui.9kQouwss.mjs} +5 -3
  132. package/dist/shared/{ui.DpbffTXs.d.mts → ui.D8Bg1HWt.d.mts} +2 -0
  133. package/dist/shared/{ui.DSyJHSTk.mjs → ui.DpkP12cX.mjs} +784 -84
  134. package/dist/unocss.mjs +1 -1
  135. package/dist/unplugin.d.mts +1 -1
  136. package/dist/unplugin.mjs +2 -2
  137. package/dist/vite.d.mts +1 -1
  138. package/dist/vite.mjs +2 -2
  139. package/package.json +29 -29
  140. package/vue-plugin.d.ts +5 -5
@@ -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.9kQouwss.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.1.0";
12
+ const version = "0.3.0";
13
13
 
14
14
  const accordion = ct({
15
15
  parts: {
@@ -149,31 +149,31 @@ const avatar = ct({
149
149
  variants: {
150
150
  size: {
151
151
  "3xs": {
152
- root: "size-4 text-[0.5rem]"
152
+ root: "size-4 text-2"
153
153
  },
154
154
  "2xs": {
155
- root: "size-5 text-[0.625rem]"
155
+ root: "size-5 text-2.5"
156
156
  },
157
157
  "xs": {
158
- root: "size-6 text-xs"
158
+ root: "size-6 text-3"
159
159
  },
160
160
  "sm": {
161
- root: "size-7 text-sm"
161
+ root: "size-7 text-3.5"
162
162
  },
163
163
  "md": {
164
- root: "size-8 text-base"
164
+ root: "size-8 text-4"
165
165
  },
166
166
  "lg": {
167
- root: "size-9 text-lg"
167
+ root: "size-9 text-4.5"
168
168
  },
169
169
  "xl": {
170
- root: "size-10 text-xl"
170
+ root: "size-10 text-5"
171
171
  },
172
172
  "2xl": {
173
- root: "size-11 text-[1.375rem]"
173
+ root: "size-11 text-5.5"
174
174
  },
175
175
  "3xl": {
176
- root: "size-12 text-2xl"
176
+ root: "size-12 text-6"
177
177
  }
178
178
  }
179
179
  },
@@ -288,31 +288,31 @@ const badge = (options) => ct({
288
288
  },
289
289
  size: {
290
290
  xs: {
291
- base: "text-[0.5rem]/3 px-1 py-0.5 gap-1 rounded-sm",
291
+ base: "text-2/3 px-1 py-0.5 gap-1 rounded-sm",
292
292
  leadingIcon: "size-3",
293
293
  leadingAvatarSize: "3xs",
294
294
  trailingIcon: "size-3"
295
295
  },
296
296
  sm: {
297
- base: "text-[0.625rem]/3 px-1.5 py-1 gap-1 rounded-sm",
297
+ base: "text-2.5/3 px-1.5 py-1 gap-1 rounded-sm",
298
298
  leadingIcon: "size-3",
299
299
  leadingAvatarSize: "3xs",
300
300
  trailingIcon: "size-3"
301
301
  },
302
302
  md: {
303
- base: "text-xs px-2 py-1 gap-1 rounded-md",
303
+ base: "text-3/4 px-2 py-1 gap-1 rounded-md",
304
304
  leadingIcon: "size-4",
305
305
  leadingAvatarSize: "3xs",
306
306
  trailingIcon: "size-4"
307
307
  },
308
308
  lg: {
309
- base: "text-sm px-2 py-1 gap-1.5 rounded-md",
309
+ base: "text-3.5/5 px-2 py-1 gap-1.5 rounded-md",
310
310
  leadingIcon: "size-5",
311
311
  leadingAvatarSize: "2xs",
312
312
  trailingIcon: "size-5"
313
313
  },
314
314
  xl: {
315
- base: "text-base px-2.5 py-1 gap-1.5 rounded-md",
315
+ base: "text-4/6 px-2.5 py-1 gap-1.5 rounded-md",
316
316
  leadingIcon: "size-6",
317
317
  leadingAvatarSize: "2xs",
318
318
  trailingIcon: "size-6"
@@ -703,30 +703,30 @@ const calendar = (options) => ct({
703
703
  xs: {
704
704
  heading: "text-xs",
705
705
  cell: "text-xs",
706
- headCell: "text-[0.625rem]",
706
+ headCell: "text-2.5",
707
707
  cellTrigger: "size-7",
708
708
  body: "space-y-2 pt-2"
709
709
  },
710
710
  sm: {
711
711
  heading: "text-xs",
712
- headCell: "text-xs",
712
+ headCell: "text-3",
713
713
  cell: "text-xs",
714
714
  cellTrigger: "size-7"
715
715
  },
716
716
  md: {
717
717
  heading: "text-sm",
718
- headCell: "text-xs",
718
+ headCell: "text-3",
719
719
  cell: "text-sm",
720
720
  cellTrigger: "size-8"
721
721
  },
722
722
  lg: {
723
723
  heading: "text-base",
724
- headCell: "text-base",
724
+ headCell: "text-4",
725
725
  cellTrigger: "size-9 text-base"
726
726
  },
727
727
  xl: {
728
728
  heading: "text-lg",
729
- headCell: "text-lg",
729
+ headCell: "text-4.5",
730
730
  cellTrigger: "size-10 text-lg"
731
731
  }
732
732
  },
@@ -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
  },
@@ -914,7 +914,7 @@ const checkbox = (options) => ct({
914
914
  root: ""
915
915
  },
916
916
  card: {
917
- root: "border border-muted rounded-lg"
917
+ root: "border border-muted rounded-lg cursor-pointer"
918
918
  }
919
919
  },
920
920
  indicator: {
@@ -965,9 +965,10 @@ const checkbox = (options) => ct({
965
965
  },
966
966
  disabled: {
967
967
  true: {
968
- base: "cursor-not-allowed opacity-75",
969
- label: "cursor-not-allowed opacity-75",
970
- description: "cursor-not-allowed opacity-75"
968
+ root: "cursor-not-allowed opacity-75",
969
+ base: "cursor-not-allowed",
970
+ label: "cursor-not-allowed",
971
+ description: "cursor-not-allowed"
971
972
  }
972
973
  },
973
974
  checked: {
@@ -1010,6 +1011,115 @@ const checkbox = (options) => ct({
1010
1011
  }
1011
1012
  });
1012
1013
 
1014
+ const checkboxGroup = (options) => ct({
1015
+ parts: {
1016
+ root: "relative",
1017
+ fieldset: "flex gap-x-2",
1018
+ legend: "mb-1 block font-medium text-default",
1019
+ item: ""
1020
+ },
1021
+ variants: {
1022
+ orientation: {
1023
+ horizontal: {
1024
+ fieldset: "flex-row"
1025
+ },
1026
+ vertical: {
1027
+ fieldset: "flex-col"
1028
+ }
1029
+ },
1030
+ color: {
1031
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
1032
+ neutral: ""
1033
+ },
1034
+ variant: {
1035
+ list: "",
1036
+ card: "",
1037
+ table: {
1038
+ item: "border border-muted"
1039
+ }
1040
+ },
1041
+ size: {
1042
+ xs: {
1043
+ fieldset: "gap-y-0.5",
1044
+ legend: "text-xs"
1045
+ },
1046
+ sm: {
1047
+ fieldset: "gap-y-0.5",
1048
+ legend: "text-xs"
1049
+ },
1050
+ md: {
1051
+ fieldset: "gap-y-1",
1052
+ legend: "text-sm"
1053
+ },
1054
+ lg: {
1055
+ fieldset: "gap-y-1",
1056
+ legend: "text-sm"
1057
+ },
1058
+ xl: {
1059
+ fieldset: "gap-y-1.5",
1060
+ legend: "text-base"
1061
+ }
1062
+ },
1063
+ disabled: {
1064
+ true: ""
1065
+ },
1066
+ required: {
1067
+ true: {
1068
+ legend: `after:content-['*'] after:ms-0.5 after:text-error`
1069
+ }
1070
+ }
1071
+ },
1072
+ compoundVariants: [
1073
+ { size: "xs", variant: "table", class: { item: "p-2.5" } },
1074
+ { size: "sm", variant: "table", class: { item: "p-3" } },
1075
+ { size: "md", variant: "table", class: { item: "p-3.5" } },
1076
+ { size: "lg", variant: "table", class: { item: "p-4" } },
1077
+ { size: "xl", variant: "table", class: { item: "p-4.5" } },
1078
+ {
1079
+ orientation: "horizontal",
1080
+ variant: "table",
1081
+ class: {
1082
+ item: "first-of-type:rounded-s-lg last-of-type:rounded-e-lg",
1083
+ fieldset: "gap-0 -space-x-px"
1084
+ }
1085
+ },
1086
+ {
1087
+ orientation: "vertical",
1088
+ variant: "table",
1089
+ class: {
1090
+ item: "first-of-type:rounded-t-lg last-of-type:rounded-b-lg",
1091
+ fieldset: "gap-0 -space-y-px"
1092
+ }
1093
+ },
1094
+ ...(options.theme.colors || []).map((color) => ({
1095
+ color,
1096
+ variant: "table",
1097
+ class: {
1098
+ item: `has-data-[state=checked]:bg-${color}/10 has-data-[state=checked]:border-${color}/50 has-data-[state=checked]:z-[1]`
1099
+ }
1100
+ })),
1101
+ {
1102
+ color: "neutral",
1103
+ variant: "table",
1104
+ class: {
1105
+ item: "has-data-[state=checked]:bg-elevated has-data-[state=checked]:border-inverted/50 has-data-[state=checked]:z-[1]"
1106
+ }
1107
+ },
1108
+ {
1109
+ variant: "table",
1110
+ disabled: false,
1111
+ class: {
1112
+ item: "cursor-pointer"
1113
+ }
1114
+ }
1115
+ ],
1116
+ defaultVariants: {
1117
+ size: "md",
1118
+ variant: "list",
1119
+ color: "primary"
1120
+ }
1121
+ });
1122
+
1013
1123
  const chip = (options) => ct({
1014
1124
  parts: {
1015
1125
  root: "relative inline-flex items-center justify-center shrink-0",
@@ -1021,15 +1131,15 @@ const chip = (options) => ct({
1021
1131
  neutral: { base: "bg-inverted" }
1022
1132
  },
1023
1133
  size: {
1024
- "3xs": { base: "h-[4px] min-w-[4px] text-[4px]" },
1025
- "2xs": { base: "h-[5px] min-w-[5px] text-[5px]" },
1026
- "xs": { base: "h-[6px] min-w-[6px] text-[6px]" },
1027
- "sm": { base: "h-[7px] min-w-[7px] text-[7px]" },
1028
- "md": { base: "h-[8px] min-w-[8px] text-[8px]" },
1029
- "lg": { base: "h-[9px] min-w-[9px] text-[9px]" },
1030
- "xl": { base: "h-[10px] min-w-[10px] text-[10px]" },
1031
- "2xl": { base: "h-[11px] min-w-[11px] text-[11px]" },
1032
- "3xl": { base: "h-[12px] min-w-[12px] text-[12px]" }
1134
+ "3xs": { base: "h-1 min-w-1 text-1" },
1135
+ "2xs": { base: "h-1.25 min-w-1.25 text-1.25" },
1136
+ "xs": { base: "h-1.5 min-w-1.5 text-1.5" },
1137
+ "sm": { base: "h-1.75 min-w-1.75 text-1.75" },
1138
+ "md": { base: "h-2 min-w-2 text-2" },
1139
+ "lg": { base: "h-2.25 min-w-2.25 text-2.25" },
1140
+ "xl": { base: "h-2.5 min-w-2.5 text-2.5" },
1141
+ "2xl": { base: "h-2.75 min-w-2.75 text-2.75" },
1142
+ "3xl": { base: "h-3 min-w-3 text-3" }
1033
1143
  },
1034
1144
  position: {
1035
1145
  "top-right": { base: "top-0 right-0" },
@@ -1356,15 +1466,25 @@ const formField = ct({
1356
1466
  parts: {
1357
1467
  root: "",
1358
1468
  wrapper: "",
1359
- labelWrapper: "flex content-center items-center justify-between",
1469
+ labelWrapper: "flex content-center items-center justify-between gap-1",
1360
1470
  label: "block font-medium text-default",
1361
- container: "mt-1 relative",
1471
+ container: "relative",
1362
1472
  description: "text-muted",
1363
1473
  error: "mt-2 text-error",
1364
1474
  hint: "text-muted",
1365
1475
  help: "mt-2 text-muted"
1366
1476
  },
1367
1477
  variants: {
1478
+ orientation: {
1479
+ vertical: {
1480
+ root: "",
1481
+ container: "mt-1"
1482
+ },
1483
+ horizontal: {
1484
+ root: "flex justify-between place-items-baseline gap-2",
1485
+ container: "flex-grow"
1486
+ }
1487
+ },
1368
1488
  size: {
1369
1489
  xs: { root: "text-xs" },
1370
1490
  sm: { root: "text-xs" },
@@ -1379,7 +1499,8 @@ const formField = ct({
1379
1499
  }
1380
1500
  },
1381
1501
  defaultVariants: {
1382
- size: "md"
1502
+ size: "md",
1503
+ orientation: "vertical"
1383
1504
  }
1384
1505
  });
1385
1506
 
@@ -1702,6 +1823,71 @@ const inputNumber = (options) => {
1702
1823
  });
1703
1824
  };
1704
1825
 
1826
+ const inputTags = (options) => {
1827
+ const input = inputTheme(options);
1828
+ return ct({
1829
+ ...input,
1830
+ parts: {
1831
+ ...input.parts,
1832
+ root: [input.parts.root, "flex-wrap"],
1833
+ base: [
1834
+ "rounded-md",
1835
+ options.theme.transitions && "transition-colors"
1836
+ ],
1837
+ item: "px-1.5 py-0.5 rounded-sm font-medium inline-flex items-center gap-0.5 ring ring-inset ring-accented bg-elevated text-default data-[disabled]:cursor-not-allowed data-[disabled]:opacity-75 wrap-anywhere data-[state=active]:bg-accented",
1838
+ itemText: "",
1839
+ itemDelete: [
1840
+ "inline-flex items-center rounded-xs text-dimmed hover:text-default hover:bg-accented/75 disabled:pointer-events-none",
1841
+ options.theme.transitions && "transition-colors"
1842
+ ],
1843
+ itemDeleteIcon: "shrink-0",
1844
+ input: "flex-1 border-0 bg-transparent placeholder:text-dimmed focus:outline-none disabled:cursor-not-allowed disabled:opacity-75"
1845
+ },
1846
+ variants: {
1847
+ ...input.variants,
1848
+ size: {
1849
+ xs: {
1850
+ ...input.variants.size.xs,
1851
+ item: "text-2.5/3",
1852
+ itemDeleteIcon: "size-3"
1853
+ },
1854
+ sm: {
1855
+ ...input.variants.size.sm,
1856
+ item: "text-2.5/3",
1857
+ itemDeleteIcon: "size-3"
1858
+ },
1859
+ md: {
1860
+ ...input.variants.size.md,
1861
+ item: "text-3/4",
1862
+ itemDeleteIcon: "size-3.5"
1863
+ },
1864
+ lg: {
1865
+ ...input.variants.size.lg,
1866
+ item: "text-3/4",
1867
+ itemDeleteIcon: "size-3.5"
1868
+ },
1869
+ xl: {
1870
+ ...input.variants.size.xl,
1871
+ item: "text-3.5/5",
1872
+ itemDeleteIcon: "size-4"
1873
+ }
1874
+ },
1875
+ variant: {
1876
+ ...Object.fromEntries(Object.entries(input.variants.variant).map(([key, value]) => [key, { ...value, base: replaceFocus(value.base) }]))
1877
+ }
1878
+ },
1879
+ compoundVariants: [
1880
+ ...input.compoundVariants.map((item) => ({
1881
+ ...item,
1882
+ class: typeof item.class.base === "string" ? { ...item.class, base: replaceFocus(item.class.base) } : item.class
1883
+ }))
1884
+ ]
1885
+ });
1886
+ };
1887
+ function replaceFocus(str) {
1888
+ return str.replace(/focus:/g, "has-focus:").replace(/focus-visible:/g, "has-focus-visible:");
1889
+ }
1890
+
1705
1891
  const kbd = (options) => ct({
1706
1892
  base: "inline-flex items-center justify-center p-1 rounded-sm font-medium font-sans",
1707
1893
  variants: {
@@ -1716,9 +1902,9 @@ const kbd = (options) => ct({
1716
1902
  subtle: ""
1717
1903
  },
1718
1904
  size: {
1719
- sm: "h-4 min-w-4 text-[0.5rem]",
1720
- md: "h-5 min-w-5 text-[0.75rem]",
1721
- lg: "h-6 min-w-6 text-[1rem]"
1905
+ sm: "h-4 min-w-4 text-2",
1906
+ md: "h-5 min-w-5 text-3",
1907
+ lg: "h-6 min-w-6 text-4"
1722
1908
  }
1723
1909
  },
1724
1910
  compoundVariants: [
@@ -1793,6 +1979,68 @@ const link = (options) => ct({
1793
1979
  ]
1794
1980
  });
1795
1981
 
1982
+ const marquee = ct({
1983
+ parts: {
1984
+ root: "group relative flex items-center overflow-hidden gap-[--gap] [--gap:--spacing(16)] [--duration:20s]",
1985
+ content: "flex items-center shrink-0 justify-around gap-[--gap] min-w-max"
1986
+ },
1987
+ variants: {
1988
+ orientation: {
1989
+ horizontal: {
1990
+ content: "w-full"
1991
+ },
1992
+ vertical: {
1993
+ content: "h-full"
1994
+ }
1995
+ },
1996
+ pauseOnHover: {
1997
+ true: {
1998
+ content: "group-hover:[animation-play-state:paused]"
1999
+ }
2000
+ },
2001
+ reverse: {
2002
+ true: {
2003
+ content: "![animation-direction:reverse]"
2004
+ }
2005
+ },
2006
+ overlay: {
2007
+ true: {
2008
+ root: "before:absolute before:pointer-events-none before:content-empty before:z-2 before:from-[--ui-bg] before:to-transparent after:absolute after:pointer-events-none after:content-empty after:z-2 after:from-[--ui-bg] after:to-transparent"
2009
+ }
2010
+ }
2011
+ },
2012
+ compoundVariants: [
2013
+ {
2014
+ orientation: "horizontal",
2015
+ class: {
2016
+ root: "flex-row",
2017
+ content: "flex-row animate-[marquee_var(--duration)_linear_infinite] rtl:animate-[marquee-rtl_var(--duration)_linear_infinite] backface-hidden"
2018
+ }
2019
+ },
2020
+ {
2021
+ orientation: "horizontal",
2022
+ overlay: true,
2023
+ class: {
2024
+ root: "before:inset-y-0 before:left-0 before:h-full before:w-1/3 before:bg-gradient-to-r after:inset-y-0 after:right-0 after:h-full after:w-1/3 after:bg-gradient-to-l backface-hidden"
2025
+ }
2026
+ },
2027
+ {
2028
+ orientation: "vertical",
2029
+ class: {
2030
+ root: "flex-col",
2031
+ content: "flex-col animate-[marquee-vertical_var(--duration)_linear_infinite] rtl:animate-[marquee-vertical-rtl_var(--duration)_linear_infinite] h-[fit-content] backface-hidden"
2032
+ }
2033
+ },
2034
+ {
2035
+ orientation: "vertical",
2036
+ overlay: true,
2037
+ class: {
2038
+ root: "before:inset-x-0 before:top-0 before:w-full before:h-1/3 before:bg-gradient-to-b after:inset-x-0 after:bottom-0 after:w-full after:h-1/3 after:bg-gradient-to-t backface-hidden"
2039
+ }
2040
+ }
2041
+ ]
2042
+ });
2043
+
1796
2044
  const modal = ct({
1797
2045
  parts: {
1798
2046
  overlay: "fixed inset-0 bg-elevated/75",
@@ -1963,6 +2211,8 @@ const navigationMenu = (options) => ct({
1963
2211
  collapsed: true,
1964
2212
  class: {
1965
2213
  link: "px-1.5",
2214
+ linkLabel: "hidden",
2215
+ linkTrailing: "hidden",
1966
2216
  content: "shadow-sm rounded-sm min-h-6 p-1"
1967
2217
  }
1968
2218
  },
@@ -2682,8 +2932,12 @@ const select = (options) => {
2682
2932
  arrow: "fill-default",
2683
2933
  content: [
2684
2934
  "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",
2685
- "data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in]"
2935
+ "data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in]",
2936
+ "origin-[--reka-combobox-content-transform-origin] w-[--reka-combobox-trigger-width]"
2686
2937
  ],
2938
+ trailingClear: "p-0",
2939
+ input: "border-b border-default",
2940
+ focusScope: "flex flex-col min-h-0",
2687
2941
  viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
2688
2942
  group: "p-1 isolate",
2689
2943
  empty: "text-center text-muted",
@@ -2713,7 +2967,7 @@ const select = (options) => {
2713
2967
  size: {
2714
2968
  xs: {
2715
2969
  ...input.variants.size.xs,
2716
- label: "p-1 text-[0.625rem]/3 gap-1",
2970
+ label: "p-1 text-2.5/3 gap-1",
2717
2971
  item: "p-1 text-xs gap-1",
2718
2972
  itemLeadingIcon: "size-4",
2719
2973
  itemLeadingAvatarSize: "3xs",
@@ -2724,7 +2978,7 @@ const select = (options) => {
2724
2978
  },
2725
2979
  sm: {
2726
2980
  ...input.variants.size.sm,
2727
- label: "p-1.5 text-[0.625rem]/3 gap-1.5",
2981
+ label: "p-1.5 text-2.5/3 gap-1.5",
2728
2982
  item: "p-1.5 text-xs gap-1.5",
2729
2983
  itemLeadingIcon: "size-4",
2730
2984
  itemLeadingAvatarSize: "3xs",
@@ -2735,7 +2989,7 @@ const select = (options) => {
2735
2989
  },
2736
2990
  md: {
2737
2991
  ...input.variants.size.md,
2738
- label: "p-1.5 text-xs gap-1.5",
2992
+ label: "p-1.5 text-3/4 gap-1.5",
2739
2993
  item: "p-1.5 text-sm gap-1.5",
2740
2994
  itemLeadingIcon: "size-5",
2741
2995
  itemLeadingAvatarSize: "2xs",
@@ -2746,7 +3000,7 @@ const select = (options) => {
2746
3000
  },
2747
3001
  lg: {
2748
3002
  ...input.variants.size.lg,
2749
- label: "p-2 text-xs gap-2",
3003
+ label: "p-2 text-3/4 gap-2",
2750
3004
  item: "p-2 text-sm gap-2",
2751
3005
  itemLeadingIcon: "size-5",
2752
3006
  itemLeadingAvatarSize: "2xs",
@@ -2757,7 +3011,7 @@ const select = (options) => {
2757
3011
  },
2758
3012
  xl: {
2759
3013
  ...input.variants.size.xl,
2760
- label: "p-2 text-sm gap-2",
3014
+ label: "p-2 text-3.5/5 gap-2",
2761
3015
  item: "p-2 text-base gap-2",
2762
3016
  itemLeadingIcon: "size-6",
2763
3017
  itemLeadingAvatarSize: "xs",
@@ -2766,18 +3020,15 @@ const select = (options) => {
2766
3020
  itemTrailingIcon: "size-6",
2767
3021
  empty: "p-2 text-base"
2768
3022
  }
3023
+ },
3024
+ searchInput: {
3025
+ false: {
3026
+ input: "sr-only"
3027
+ }
2769
3028
  }
2770
3029
  },
2771
3030
  compoundVariants: [
2772
- ...input.compoundVariants.map((item) => {
2773
- return {
2774
- ...item,
2775
- class: {
2776
- ...item.class,
2777
- base: typeof item.class.base === "string" ? item.class.base.replace(/focus-visible:/g, "focus:") : item.class.base
2778
- }
2779
- };
2780
- })
3031
+ ...input.compoundVariants
2781
3032
  ],
2782
3033
  defaultVariants: {
2783
3034
  ...input.defaultVariants
@@ -2862,22 +3113,22 @@ const separator = (options) => ct({
2862
3113
  {
2863
3114
  orientation: "horizontal",
2864
3115
  size: "sm",
2865
- class: { border: "border-t-[2px]" }
3116
+ class: { border: "border-t-2" }
2866
3117
  },
2867
3118
  {
2868
3119
  orientation: "horizontal",
2869
3120
  size: "md",
2870
- class: { border: "border-t-[3px]" }
3121
+ class: { border: "border-t-3" }
2871
3122
  },
2872
3123
  {
2873
3124
  orientation: "horizontal",
2874
3125
  size: "lg",
2875
- class: { border: "border-t-[4px]" }
3126
+ class: { border: "border-t-4" }
2876
3127
  },
2877
3128
  {
2878
3129
  orientation: "horizontal",
2879
3130
  size: "xl",
2880
- class: { border: "border-t-[5px]" }
3131
+ class: { border: "border-t-5" }
2881
3132
  },
2882
3133
  {
2883
3134
  orientation: "vertical",
@@ -2887,22 +3138,22 @@ const separator = (options) => ct({
2887
3138
  {
2888
3139
  orientation: "vertical",
2889
3140
  size: "sm",
2890
- class: { border: "border-s-[2px]" }
3141
+ class: { border: "border-s-2" }
2891
3142
  },
2892
3143
  {
2893
3144
  orientation: "vertical",
2894
3145
  size: "md",
2895
- class: { border: "border-s-[3px]" }
3146
+ class: { border: "border-s-3" }
2896
3147
  },
2897
3148
  {
2898
3149
  orientation: "vertical",
2899
3150
  size: "lg",
2900
- class: { border: "border-s-[4px]" }
3151
+ class: { border: "border-s-4" }
2901
3152
  },
2902
3153
  {
2903
3154
  orientation: "vertical",
2904
3155
  size: "xl",
2905
- class: { border: "border-s-[5px]" }
3156
+ class: { border: "border-s-5" }
2906
3157
  }
2907
3158
  ],
2908
3159
  defaultVariants: {
@@ -2972,72 +3223,207 @@ const slider = (options) => ct({
2972
3223
  orientation: "horizontal",
2973
3224
  size: "xs",
2974
3225
  class: {
2975
- track: "h-[6px]"
3226
+ track: "h-1.5"
2976
3227
  }
2977
3228
  },
2978
3229
  {
2979
3230
  orientation: "horizontal",
2980
3231
  size: "sm",
2981
3232
  class: {
2982
- track: "h-[7px]"
3233
+ track: "h-1.75"
2983
3234
  }
2984
3235
  },
2985
3236
  {
2986
3237
  orientation: "horizontal",
2987
3238
  size: "md",
2988
3239
  class: {
2989
- track: "h-[8px]"
3240
+ track: "h-2"
2990
3241
  }
2991
3242
  },
2992
3243
  {
2993
3244
  orientation: "horizontal",
2994
3245
  size: "lg",
2995
3246
  class: {
2996
- track: "h-[9px]"
3247
+ track: "h-2.25"
2997
3248
  }
2998
3249
  },
2999
3250
  {
3000
3251
  orientation: "horizontal",
3001
3252
  size: "xl",
3002
3253
  class: {
3003
- track: "h-[10px]"
3254
+ track: "h-2.5"
3004
3255
  }
3005
3256
  },
3006
3257
  {
3007
3258
  orientation: "vertical",
3008
3259
  size: "xs",
3009
3260
  class: {
3010
- track: "w-[6px]"
3261
+ track: "w-1.5"
3011
3262
  }
3012
3263
  },
3013
3264
  {
3014
3265
  orientation: "vertical",
3015
3266
  size: "sm",
3016
3267
  class: {
3017
- track: "w-[7px]"
3268
+ track: "w-1.75"
3018
3269
  }
3019
3270
  },
3020
3271
  {
3021
3272
  orientation: "vertical",
3022
3273
  size: "md",
3023
3274
  class: {
3024
- track: "w-[8px]"
3275
+ track: "w-2"
3025
3276
  }
3026
3277
  },
3027
3278
  {
3028
3279
  orientation: "vertical",
3029
3280
  size: "lg",
3030
3281
  class: {
3031
- track: "w-[9px]"
3282
+ track: "w-2.25"
3032
3283
  }
3033
3284
  },
3034
3285
  {
3035
3286
  orientation: "vertical",
3036
3287
  size: "xl",
3037
3288
  class: {
3038
- track: "w-[10px]"
3289
+ track: "w-2.5"
3290
+ }
3291
+ }
3292
+ ],
3293
+ defaultVariants: {
3294
+ size: "md",
3295
+ color: "primary"
3296
+ }
3297
+ });
3298
+
3299
+ const stepper = (options) => ct({
3300
+ parts: {
3301
+ root: "flex gap-4",
3302
+ header: "flex",
3303
+ item: "group text-center relative w-full",
3304
+ container: "relative",
3305
+ 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",
3306
+ indicator: "flex items-center justify-center size-full",
3307
+ icon: "shrink-0",
3308
+ separator: "absolute rounded-full group-data-[disabled]:opacity-75 bg-accented",
3309
+ wrapper: "",
3310
+ title: "font-medium text-default",
3311
+ description: "text-muted text-wrap",
3312
+ content: "size-full"
3313
+ },
3314
+ variants: {
3315
+ orientation: {
3316
+ horizontal: {
3317
+ root: "flex-col",
3318
+ container: "flex justify-center",
3319
+ separator: "top-[calc(50%-2px)] h-0.5",
3320
+ wrapper: "mt-1"
3321
+ },
3322
+ vertical: {
3323
+ header: "flex-col gap-4",
3324
+ item: "flex text-start",
3325
+ separator: "start-[calc(50%-1px)] -bottom-[0.625rem] w-0.5"
3326
+ }
3327
+ },
3328
+ size: {
3329
+ xs: {
3330
+ trigger: "size-6 text-xs",
3331
+ icon: "size-3",
3332
+ title: "text-xs",
3333
+ description: "text-xs",
3334
+ wrapper: "mt-1.5"
3335
+ },
3336
+ sm: {
3337
+ trigger: "size-8 text-sm",
3338
+ icon: "size-4",
3339
+ title: "text-xs",
3340
+ description: "text-xs",
3341
+ wrapper: "mt-2"
3342
+ },
3343
+ md: {
3344
+ trigger: "size-10 text-base",
3345
+ icon: "size-5",
3346
+ title: "text-sm",
3347
+ description: "text-sm",
3348
+ wrapper: "mt-2.5"
3349
+ },
3350
+ lg: {
3351
+ trigger: "size-12 text-lg",
3352
+ icon: "size-6",
3353
+ title: "text-base",
3354
+ description: "text-base",
3355
+ wrapper: "mt-3"
3356
+ },
3357
+ xl: {
3358
+ trigger: "size-14 text-xl",
3359
+ icon: "size-7",
3360
+ title: "text-lg",
3361
+ description: "text-lg",
3362
+ wrapper: "mt-3.5"
3363
+ }
3364
+ },
3365
+ color: {
3366
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
3367
+ trigger: `group-data-[state=completed]:bg-${color} group-data-[state=active]:bg-${color} focus-visible:outline-${color}`,
3368
+ separator: `group-data-[state=completed]:bg-${color}`
3369
+ }])),
3370
+ neutral: {
3371
+ trigger: "group-data-[state=completed]:bg-inverted group-data-[state=active]:bg-inverted focus-visible:outline-inverted",
3372
+ separator: "group-data-[state=completed]:bg-inverted"
3039
3373
  }
3040
3374
  }
3375
+ },
3376
+ compoundVariants: [
3377
+ {
3378
+ orientation: "horizontal",
3379
+ size: "xs",
3380
+ class: { separator: "start-[calc(50%+1rem)] end-[calc(-50%+1rem)]" }
3381
+ },
3382
+ {
3383
+ orientation: "horizontal",
3384
+ size: "sm",
3385
+ class: { separator: "start-[calc(50%+1.25rem)] end-[calc(-50%+1.25rem)]" }
3386
+ },
3387
+ {
3388
+ orientation: "horizontal",
3389
+ size: "md",
3390
+ class: { separator: "start-[calc(50%+1.75rem)] end-[calc(-50%+1.75rem)]" }
3391
+ },
3392
+ {
3393
+ orientation: "horizontal",
3394
+ size: "lg",
3395
+ class: { separator: "start-[calc(50%+2rem)] end-[calc(-50%+2rem)]" }
3396
+ },
3397
+ {
3398
+ orientation: "horizontal",
3399
+ size: "xl",
3400
+ class: { separator: "start-[calc(50%+2.25rem)] end-[calc(-50%+2.25rem)]" }
3401
+ },
3402
+ {
3403
+ orientation: "vertical",
3404
+ size: "xs",
3405
+ class: { separator: "top-7.5", item: "gap-1.5" }
3406
+ },
3407
+ {
3408
+ orientation: "vertical",
3409
+ size: "sm",
3410
+ class: { separator: "top-9.5", item: "gap-2" }
3411
+ },
3412
+ {
3413
+ orientation: "vertical",
3414
+ size: "md",
3415
+ class: { separator: "top-11.5", item: "gap-2.5" }
3416
+ },
3417
+ {
3418
+ orientation: "vertical",
3419
+ size: "lg",
3420
+ class: { separator: "top-13.5", item: "gap-3" }
3421
+ },
3422
+ {
3423
+ orientation: "vertical",
3424
+ size: "xl",
3425
+ class: { separator: "top-15.5", item: "gap-3.5" }
3426
+ }
3041
3427
  ],
3042
3428
  defaultVariants: {
3043
3429
  size: "md",
@@ -3145,12 +3531,12 @@ const table = (options) => ct({
3145
3531
  base: "min-w-full",
3146
3532
  caption: "sr-only",
3147
3533
  thead: "relative",
3148
- tbody: "[&>tr]:data-[selectable=true]:hover:bg-elevated/50 [&>tr]:data-[selectable=true]:focus-visible:outline-primary",
3534
+ tbody: "isolate [&>tr]:data-[selectable=true]:hover:bg-elevated/50 [&>tr]:data-[selectable=true]:focus-visible:outline-primary",
3149
3535
  tfoot: "relative",
3150
3536
  tr: "data-[selected=true]:bg-elevated/50",
3151
3537
  th: "px-4 py-3.5 text-sm text-highlighted text-left rtl:text-right font-semibold [&:has([role=checkbox])]:pe-0",
3152
3538
  td: "p-4 text-sm text-muted whitespace-nowrap [&:has([role=checkbox])]:pe-0",
3153
- separator: "absolute z-[1] left-0 w-full h-px bg-[--ui-border-accented]",
3539
+ separator: "absolute z-1 left-0 w-full h-px bg-[--ui-border-accented]",
3154
3540
  empty: "py-6 text-center text-sm text-muted",
3155
3541
  loading: "py-6 text-center"
3156
3542
  },
@@ -3163,25 +3549,25 @@ const table = (options) => ct({
3163
3549
  },
3164
3550
  pinned: {
3165
3551
  true: {
3166
- th: "sticky bg-default/75 data-[pinned=left]:left-0 data-[pinned=right]:right-0",
3167
- td: "sticky bg-default/75 data-[pinned=left]:left-0 data-[pinned=right]:right-0"
3552
+ th: "sticky bg-default/75 z-1",
3553
+ td: "sticky bg-default/75 z-1"
3168
3554
  }
3169
3555
  },
3170
3556
  sticky: {
3171
3557
  true: {
3172
- thead: "sticky top-0 inset-x-0 bg-default/75 z-[1] backdrop-blur",
3173
- tfoot: "sticky bottom-0 inset-x-0 bg-default/75 z-[1] backdrop-blur"
3558
+ thead: "sticky top-0 inset-x-0 bg-default/75 z-1 backdrop-blur",
3559
+ tfoot: "sticky bottom-0 inset-x-0 bg-default/75 z-1 backdrop-blur"
3174
3560
  },
3175
3561
  header: {
3176
- thead: "sticky top-0 inset-x-0 bg-default/75 z-[1] backdrop-blur"
3562
+ thead: "sticky top-0 inset-x-0 bg-default/75 z-1 backdrop-blur"
3177
3563
  },
3178
3564
  footer: {
3179
- tfoot: "sticky bottom-0 inset-x-0 bg-default/75 z-[1] backdrop-blur"
3565
+ tfoot: "sticky bottom-0 inset-x-0 bg-default/75 z-1 backdrop-blur"
3180
3566
  }
3181
3567
  },
3182
3568
  loading: {
3183
3569
  true: {
3184
- thead: "after:content-empty after:absolute after:z-[1] after:h-px"
3570
+ thead: "after:content-empty after:absolute after:z-1 after:h-px"
3185
3571
  }
3186
3572
  },
3187
3573
  loadingAnimation: {
@@ -3431,6 +3817,218 @@ const textarea = (options) => {
3431
3817
  }, input));
3432
3818
  };
3433
3819
 
3820
+ const timeline = (options) => ct({
3821
+ parts: {
3822
+ root: "flex gap-1.5",
3823
+ item: "group relative flex flex-1 gap-3",
3824
+ container: "relative flex items-center gap-1.5",
3825
+ indicator: "group-data-[state=completed]:text-inverted group-data-[state=active]:text-inverted text-muted",
3826
+ indicatorIcon: "text-inherit",
3827
+ indicatorFallback: "text-inherit",
3828
+ separator: "flex-1 rounded-full bg-elevated",
3829
+ wrapper: "w-full",
3830
+ date: "text-dimmed text-xs/5",
3831
+ title: "font-medium text-highlighted text-sm",
3832
+ description: "text-muted text-wrap text-sm"
3833
+ },
3834
+ variants: {
3835
+ orientation: {
3836
+ horizontal: {
3837
+ root: "flex-row w-full",
3838
+ item: "flex-col",
3839
+ separator: "h-0.5"
3840
+ },
3841
+ vertical: {
3842
+ root: "flex-col",
3843
+ container: "flex-col",
3844
+ separator: "w-0.5"
3845
+ }
3846
+ },
3847
+ color: {
3848
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
3849
+ indicator: `group-data-[state=completed]:bg-${color} group-data-[state=active]:bg-${color}`
3850
+ }])),
3851
+ neutral: {
3852
+ indicator: "group-data-[state=completed]:bg-inverted group-data-[state=active]:bg-inverted"
3853
+ }
3854
+ },
3855
+ size: {
3856
+ "3xs": "",
3857
+ "2xs": "",
3858
+ "xs": "",
3859
+ "sm": "",
3860
+ "md": "",
3861
+ "lg": "",
3862
+ "xl": "",
3863
+ "2xl": "",
3864
+ "3xl": ""
3865
+ },
3866
+ reverse: {
3867
+ true: ""
3868
+ }
3869
+ },
3870
+ compoundVariants: [
3871
+ ...(options.theme.colors || []).map((color) => ({
3872
+ color,
3873
+ reverse: false,
3874
+ class: {
3875
+ separator: `group-data-[state=completed]:bg-${color}`
3876
+ }
3877
+ })),
3878
+ {
3879
+ color: "neutral",
3880
+ reverse: false,
3881
+ class: {
3882
+ separator: "group-data-[state=completed]:bg-inverted"
3883
+ }
3884
+ },
3885
+ ...(options.theme.colors || []).map((color) => ({
3886
+ color,
3887
+ reverse: true,
3888
+ class: {
3889
+ separator: `group-data-[state=active]:bg-${color} group-data-[state=completed]:bg-${color}`
3890
+ }
3891
+ })),
3892
+ {
3893
+ color: "neutral",
3894
+ reverse: true,
3895
+ class: {
3896
+ separator: "group-data-[state=active]:bg-inverted group-data-[state=completed]:bg-inverted"
3897
+ }
3898
+ },
3899
+ {
3900
+ orientation: "horizontal",
3901
+ size: "3xs",
3902
+ class: {
3903
+ wrapper: "pe-4.5"
3904
+ }
3905
+ },
3906
+ {
3907
+ orientation: "horizontal",
3908
+ size: "2xs",
3909
+ class: {
3910
+ wrapper: "pe-5"
3911
+ }
3912
+ },
3913
+ {
3914
+ orientation: "horizontal",
3915
+ size: "xs",
3916
+ class: {
3917
+ wrapper: "pe-5.5"
3918
+ }
3919
+ },
3920
+ {
3921
+ orientation: "horizontal",
3922
+ size: "sm",
3923
+ class: {
3924
+ wrapper: "pe-6"
3925
+ }
3926
+ },
3927
+ {
3928
+ orientation: "horizontal",
3929
+ size: "md",
3930
+ class: {
3931
+ wrapper: "pe-6.5"
3932
+ }
3933
+ },
3934
+ {
3935
+ orientation: "horizontal",
3936
+ size: "lg",
3937
+ class: {
3938
+ wrapper: "pe-7"
3939
+ }
3940
+ },
3941
+ {
3942
+ orientation: "horizontal",
3943
+ size: "xl",
3944
+ class: {
3945
+ wrapper: "pe-7.5"
3946
+ }
3947
+ },
3948
+ {
3949
+ orientation: "horizontal",
3950
+ size: "2xl",
3951
+ class: {
3952
+ wrapper: "pe-8"
3953
+ }
3954
+ },
3955
+ {
3956
+ orientation: "horizontal",
3957
+ size: "3xl",
3958
+ class: {
3959
+ wrapper: "pe-8.5"
3960
+ }
3961
+ },
3962
+ {
3963
+ orientation: "vertical",
3964
+ size: "3xs",
3965
+ class: {
3966
+ wrapper: "-mt-0.5 pb-4.5"
3967
+ }
3968
+ },
3969
+ {
3970
+ orientation: "vertical",
3971
+ size: "2xs",
3972
+ class: {
3973
+ wrapper: "pb-5"
3974
+ }
3975
+ },
3976
+ {
3977
+ orientation: "vertical",
3978
+ size: "xs",
3979
+ class: {
3980
+ wrapper: "mt-0.5 pb-5.5"
3981
+ }
3982
+ },
3983
+ {
3984
+ orientation: "vertical",
3985
+ size: "sm",
3986
+ class: {
3987
+ wrapper: "mt-1 pb-6"
3988
+ }
3989
+ },
3990
+ {
3991
+ orientation: "vertical",
3992
+ size: "md",
3993
+ class: {
3994
+ wrapper: "mt-1.5 pb-6.5"
3995
+ }
3996
+ },
3997
+ {
3998
+ orientation: "vertical",
3999
+ size: "lg",
4000
+ class: {
4001
+ wrapper: "mt-2 pb-7"
4002
+ }
4003
+ },
4004
+ {
4005
+ orientation: "vertical",
4006
+ size: "xl",
4007
+ class: {
4008
+ wrapper: "mt-2.5 pb-7.5"
4009
+ }
4010
+ },
4011
+ {
4012
+ orientation: "vertical",
4013
+ size: "2xl",
4014
+ class: {
4015
+ wrapper: "mt-3 pb-8"
4016
+ }
4017
+ },
4018
+ {
4019
+ orientation: "vertical",
4020
+ size: "3xl",
4021
+ class: {
4022
+ wrapper: "mt-3.5 pb-8.5"
4023
+ }
4024
+ }
4025
+ ],
4026
+ defaultVariants: {
4027
+ size: "md",
4028
+ color: "primary"
4029
+ }
4030
+ });
4031
+
3434
4032
  const toast = (options) => ct({
3435
4033
  parts: {
3436
4034
  root: "relative group overflow-hidden bg-default shadow-lg rounded-lg ring ring-default p-4 flex gap-2.5 focus:outline-none",
@@ -3577,6 +4175,102 @@ const tooltip = ct({
3577
4175
  }
3578
4176
  });
3579
4177
 
4178
+ const tree = (options) => ct({
4179
+ parts: {
4180
+ root: "relative isolate",
4181
+ item: "w-full",
4182
+ listWithChildren: "border-s border-default",
4183
+ itemWithChildren: "ps-1.5 -ms-px",
4184
+ 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",
4185
+ linkLeadingIcon: "shrink-0 relative",
4186
+ linkLabel: "truncate",
4187
+ linkTrailing: "ms-auto inline-flex gap-1.5 items-center",
4188
+ linkTrailingIcon: "shrink-0 transform transition-transform duration-200 group-data-expanded:rotate-180"
4189
+ },
4190
+ variants: {
4191
+ color: {
4192
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
4193
+ link: `focus-visible:before:ring-${color}`
4194
+ }])),
4195
+ neutral: {
4196
+ link: "focus-visible:before:ring-inverted"
4197
+ }
4198
+ },
4199
+ size: {
4200
+ xs: {
4201
+ listWithChildren: "ms-4",
4202
+ link: "px-2 py-1 text-xs gap-1",
4203
+ linkLeadingIcon: "size-4",
4204
+ linkTrailingIcon: "size-4"
4205
+ },
4206
+ sm: {
4207
+ listWithChildren: "ms-4.5",
4208
+ link: "px-2.5 py-1.5 text-xs gap-1.5",
4209
+ linkLeadingIcon: "size-4",
4210
+ linkTrailingIcon: "size-4"
4211
+ },
4212
+ md: {
4213
+ listWithChildren: "ms-5",
4214
+ link: "px-2.5 py-1.5 text-sm gap-1.5",
4215
+ linkLeadingIcon: "size-5",
4216
+ linkTrailingIcon: "size-5"
4217
+ },
4218
+ lg: {
4219
+ listWithChildren: "ms-5.5",
4220
+ link: "px-3 py-2 text-sm gap-2",
4221
+ linkLeadingIcon: "size-5",
4222
+ linkTrailingIcon: "size-5"
4223
+ },
4224
+ xl: {
4225
+ listWithChildren: "ms-6",
4226
+ link: "px-3 py-2 text-base gap-2",
4227
+ linkLeadingIcon: "size-6",
4228
+ linkTrailingIcon: "size-6"
4229
+ }
4230
+ },
4231
+ selected: {
4232
+ true: {
4233
+ link: "before:bg-elevated"
4234
+ }
4235
+ },
4236
+ disabled: {
4237
+ true: {
4238
+ link: "cursor-not-allowed opacity-75"
4239
+ }
4240
+ }
4241
+ },
4242
+ compoundVariants: [
4243
+ ...(options.theme.colors || []).map((color) => ({
4244
+ color,
4245
+ selected: true,
4246
+ class: {
4247
+ link: `text-${color}`
4248
+ }
4249
+ })),
4250
+ {
4251
+ color: "neutral",
4252
+ selected: true,
4253
+ class: {
4254
+ link: "text-highlighted"
4255
+ }
4256
+ },
4257
+ {
4258
+ selected: false,
4259
+ disabled: false,
4260
+ class: {
4261
+ link: [
4262
+ "hover:text-highlighted hover:before:bg-elevated/50",
4263
+ options.theme.transitions && "transition-colors before:transition-colors"
4264
+ ]
4265
+ }
4266
+ }
4267
+ ],
4268
+ defaultVariants: {
4269
+ color: "primary",
4270
+ size: "md"
4271
+ }
4272
+ });
4273
+
3580
4274
  const theme = {
3581
4275
  __proto__: null,
3582
4276
  accordion: accordion,
@@ -3590,6 +4284,7 @@ const theme = {
3590
4284
  card: card,
3591
4285
  carousel: carousel,
3592
4286
  checkbox: checkbox,
4287
+ checkboxGroup: checkboxGroup,
3593
4288
  chip: chip,
3594
4289
  collapsible: collapsible,
3595
4290
  drawer: drawer,
@@ -3599,8 +4294,10 @@ const theme = {
3599
4294
  formField: formField,
3600
4295
  input: inputTheme,
3601
4296
  inputNumber: inputNumber,
4297
+ inputTags: inputTags,
3602
4298
  kbd: kbd,
3603
4299
  link: link,
4300
+ marquee: marquee,
3604
4301
  modal: modal,
3605
4302
  navigationMenu: navigationMenu,
3606
4303
  pagination: pagination,
@@ -3613,13 +4310,16 @@ const theme = {
3613
4310
  separator: separator,
3614
4311
  skeleton: skeleton,
3615
4312
  slider: slider,
4313
+ stepper: stepper,
3616
4314
  switch: _switch,
3617
4315
  table: table,
3618
4316
  tabs: tabs,
3619
4317
  textarea: textarea,
4318
+ timeline: timeline,
3620
4319
  toast: toast,
3621
4320
  toastProvider: toastProvider,
3622
- tooltip: tooltip
4321
+ tooltip: tooltip,
4322
+ tree: tree
3623
4323
  };
3624
4324
 
3625
4325
  function getTemplates(options, uiConfig, nuxt) {