@byyuurin/ui 0.1.0 → 0.2.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 (38) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/module.mjs +1 -1
  3. package/dist/runtime/components/Accordion.vue +2 -2
  4. package/dist/runtime/components/Badge.vue +3 -3
  5. package/dist/runtime/components/Breadcrumb.vue +4 -4
  6. package/dist/runtime/components/Button.vue +3 -3
  7. package/dist/runtime/components/Calendar.vue +6 -8
  8. package/dist/runtime/components/Carousel.vue +19 -0
  9. package/dist/runtime/components/Checkbox.vue +1 -1
  10. package/dist/runtime/components/CheckboxGroup.vue +131 -0
  11. package/dist/runtime/components/CheckboxGroup.vue.d.ts +89 -0
  12. package/dist/runtime/components/DropdownMenuContent.vue +11 -11
  13. package/dist/runtime/components/FormField.vue +1 -1
  14. package/dist/runtime/components/Input.vue +3 -3
  15. package/dist/runtime/components/InputNumber.vue +2 -4
  16. package/dist/runtime/components/InputNumber.vue.d.ts +0 -5
  17. package/dist/runtime/components/InputTags.vue +155 -0
  18. package/dist/runtime/components/InputTags.vue.d.ts +85 -0
  19. package/dist/runtime/components/Marquee.vue +38 -0
  20. package/dist/runtime/components/Marquee.vue.d.ts +54 -0
  21. package/dist/runtime/components/NavigationMenu.vue +46 -37
  22. package/dist/runtime/components/NavigationMenu.vue.d.ts +44 -9
  23. package/dist/runtime/components/RadioGroup.vue.d.ts +2 -2
  24. package/dist/runtime/components/Select.vue +11 -11
  25. package/dist/runtime/components/Slider.vue +1 -1
  26. package/dist/runtime/components/Table.vue +54 -32
  27. package/dist/runtime/components/Table.vue.d.ts +14 -14
  28. package/dist/runtime/components/Tabs.vue +3 -3
  29. package/dist/runtime/components/Textarea.vue +3 -3
  30. package/dist/runtime/components/Timeline.vue +102 -0
  31. package/dist/runtime/components/Timeline.vue.d.ts +74 -0
  32. package/dist/runtime/types/index.d.ts +5 -0
  33. package/dist/runtime/types/index.js +5 -0
  34. package/dist/runtime/types/utils.d.ts +6 -3
  35. package/dist/shared/{ui.DSyJHSTk.mjs → ui.DLOxhmP0.mjs} +523 -68
  36. package/dist/unplugin.mjs +1 -1
  37. package/dist/vite.mjs +1 -1
  38. package/package.json +1 -1
@@ -9,7 +9,7 @@ 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.2.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
  },
@@ -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" },
@@ -1702,6 +1812,71 @@ const inputNumber = (options) => {
1702
1812
  });
1703
1813
  };
1704
1814
 
1815
+ const inputTags = (options) => {
1816
+ const input = inputTheme(options);
1817
+ return ct({
1818
+ ...input,
1819
+ parts: {
1820
+ ...input.parts,
1821
+ root: [input.parts.root, "flex-wrap"],
1822
+ base: [
1823
+ "rounded-md",
1824
+ options.theme.transitions && "transition-colors"
1825
+ ],
1826
+ 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",
1827
+ itemText: "",
1828
+ itemDelete: [
1829
+ "inline-flex items-center rounded-xs text-dimmed hover:text-default hover:bg-accented/75 disabled:pointer-events-none",
1830
+ options.theme.transitions && "transition-colors"
1831
+ ],
1832
+ itemDeleteIcon: "shrink-0",
1833
+ input: "flex-1 border-0 bg-transparent placeholder:text-dimmed focus:outline-none disabled:cursor-not-allowed disabled:opacity-75"
1834
+ },
1835
+ variants: {
1836
+ ...input.variants,
1837
+ size: {
1838
+ xs: {
1839
+ ...input.variants.size.xs,
1840
+ item: "text-2.5/3",
1841
+ itemDeleteIcon: "size-3"
1842
+ },
1843
+ sm: {
1844
+ ...input.variants.size.sm,
1845
+ item: "text-2.5/3",
1846
+ itemDeleteIcon: "size-3"
1847
+ },
1848
+ md: {
1849
+ ...input.variants.size.md,
1850
+ item: "text-3/4",
1851
+ itemDeleteIcon: "size-3.5"
1852
+ },
1853
+ lg: {
1854
+ ...input.variants.size.lg,
1855
+ item: "text-3/4",
1856
+ itemDeleteIcon: "size-3.5"
1857
+ },
1858
+ xl: {
1859
+ ...input.variants.size.xl,
1860
+ item: "text-3.5/5",
1861
+ itemDeleteIcon: "size-4"
1862
+ }
1863
+ },
1864
+ variant: {
1865
+ ...Object.fromEntries(Object.entries(input.variants.variant).map(([key, value]) => [key, { ...value, base: replaceFocus(value.base) }]))
1866
+ }
1867
+ },
1868
+ compoundVariants: [
1869
+ ...input.compoundVariants.map((item) => ({
1870
+ ...item,
1871
+ class: typeof item.class.base === "string" ? { ...item.class, base: replaceFocus(item.class.base) } : item.class
1872
+ }))
1873
+ ]
1874
+ });
1875
+ };
1876
+ function replaceFocus(str) {
1877
+ return str.replace(/focus:/g, "has-focus:").replace(/focus-visible:/g, "has-focus-visible:");
1878
+ }
1879
+
1705
1880
  const kbd = (options) => ct({
1706
1881
  base: "inline-flex items-center justify-center p-1 rounded-sm font-medium font-sans",
1707
1882
  variants: {
@@ -1716,9 +1891,9 @@ const kbd = (options) => ct({
1716
1891
  subtle: ""
1717
1892
  },
1718
1893
  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]"
1894
+ sm: "h-4 min-w-4 text-2",
1895
+ md: "h-5 min-w-5 text-3",
1896
+ lg: "h-6 min-w-6 text-4"
1722
1897
  }
1723
1898
  },
1724
1899
  compoundVariants: [
@@ -1793,6 +1968,68 @@ const link = (options) => ct({
1793
1968
  ]
1794
1969
  });
1795
1970
 
1971
+ const marquee = ct({
1972
+ parts: {
1973
+ root: "group relative flex items-center overflow-hidden gap-[--gap] [--gap:--spacing(16)] [--duration:20s]",
1974
+ content: "flex items-center shrink-0 justify-around gap-[--gap] min-w-max"
1975
+ },
1976
+ variants: {
1977
+ orientation: {
1978
+ horizontal: {
1979
+ content: "w-full"
1980
+ },
1981
+ vertical: {
1982
+ content: "h-full"
1983
+ }
1984
+ },
1985
+ pauseOnHover: {
1986
+ true: {
1987
+ content: "group-hover:[animation-play-state:paused]"
1988
+ }
1989
+ },
1990
+ reverse: {
1991
+ true: {
1992
+ content: "![animation-direction:reverse]"
1993
+ }
1994
+ },
1995
+ overlay: {
1996
+ true: {
1997
+ 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"
1998
+ }
1999
+ }
2000
+ },
2001
+ compoundVariants: [
2002
+ {
2003
+ orientation: "horizontal",
2004
+ class: {
2005
+ root: "flex-row",
2006
+ content: "flex-row animate-[marquee_var(--duration)_linear_infinite] rtl:animate-[marquee-rtl_var(--duration)_linear_infinite] backface-hidden"
2007
+ }
2008
+ },
2009
+ {
2010
+ orientation: "horizontal",
2011
+ overlay: true,
2012
+ class: {
2013
+ 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"
2014
+ }
2015
+ },
2016
+ {
2017
+ orientation: "vertical",
2018
+ class: {
2019
+ root: "flex-col",
2020
+ content: "flex-col animate-[marquee-vertical_var(--duration)_linear_infinite] rtl:animate-[marquee-vertical-rtl_var(--duration)_linear_infinite] h-[fit-content] backface-hidden"
2021
+ }
2022
+ },
2023
+ {
2024
+ orientation: "vertical",
2025
+ overlay: true,
2026
+ class: {
2027
+ 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"
2028
+ }
2029
+ }
2030
+ ]
2031
+ });
2032
+
1796
2033
  const modal = ct({
1797
2034
  parts: {
1798
2035
  overlay: "fixed inset-0 bg-elevated/75",
@@ -1963,6 +2200,8 @@ const navigationMenu = (options) => ct({
1963
2200
  collapsed: true,
1964
2201
  class: {
1965
2202
  link: "px-1.5",
2203
+ linkLabel: "hidden",
2204
+ linkTrailing: "hidden",
1966
2205
  content: "shadow-sm rounded-sm min-h-6 p-1"
1967
2206
  }
1968
2207
  },
@@ -2713,7 +2952,7 @@ const select = (options) => {
2713
2952
  size: {
2714
2953
  xs: {
2715
2954
  ...input.variants.size.xs,
2716
- label: "p-1 text-[0.625rem]/3 gap-1",
2955
+ label: "p-1 text-2.5/3 gap-1",
2717
2956
  item: "p-1 text-xs gap-1",
2718
2957
  itemLeadingIcon: "size-4",
2719
2958
  itemLeadingAvatarSize: "3xs",
@@ -2724,7 +2963,7 @@ const select = (options) => {
2724
2963
  },
2725
2964
  sm: {
2726
2965
  ...input.variants.size.sm,
2727
- label: "p-1.5 text-[0.625rem]/3 gap-1.5",
2966
+ label: "p-1.5 text-2.5/3 gap-1.5",
2728
2967
  item: "p-1.5 text-xs gap-1.5",
2729
2968
  itemLeadingIcon: "size-4",
2730
2969
  itemLeadingAvatarSize: "3xs",
@@ -2735,7 +2974,7 @@ const select = (options) => {
2735
2974
  },
2736
2975
  md: {
2737
2976
  ...input.variants.size.md,
2738
- label: "p-1.5 text-xs gap-1.5",
2977
+ label: "p-1.5 text-3/4 gap-1.5",
2739
2978
  item: "p-1.5 text-sm gap-1.5",
2740
2979
  itemLeadingIcon: "size-5",
2741
2980
  itemLeadingAvatarSize: "2xs",
@@ -2746,7 +2985,7 @@ const select = (options) => {
2746
2985
  },
2747
2986
  lg: {
2748
2987
  ...input.variants.size.lg,
2749
- label: "p-2 text-xs gap-2",
2988
+ label: "p-2 text-3/4 gap-2",
2750
2989
  item: "p-2 text-sm gap-2",
2751
2990
  itemLeadingIcon: "size-5",
2752
2991
  itemLeadingAvatarSize: "2xs",
@@ -2757,7 +2996,7 @@ const select = (options) => {
2757
2996
  },
2758
2997
  xl: {
2759
2998
  ...input.variants.size.xl,
2760
- label: "p-2 text-sm gap-2",
2999
+ label: "p-2 text-3.5/5 gap-2",
2761
3000
  item: "p-2 text-base gap-2",
2762
3001
  itemLeadingIcon: "size-6",
2763
3002
  itemLeadingAvatarSize: "xs",
@@ -2862,22 +3101,22 @@ const separator = (options) => ct({
2862
3101
  {
2863
3102
  orientation: "horizontal",
2864
3103
  size: "sm",
2865
- class: { border: "border-t-[2px]" }
3104
+ class: { border: "border-t-2" }
2866
3105
  },
2867
3106
  {
2868
3107
  orientation: "horizontal",
2869
3108
  size: "md",
2870
- class: { border: "border-t-[3px]" }
3109
+ class: { border: "border-t-3" }
2871
3110
  },
2872
3111
  {
2873
3112
  orientation: "horizontal",
2874
3113
  size: "lg",
2875
- class: { border: "border-t-[4px]" }
3114
+ class: { border: "border-t-4" }
2876
3115
  },
2877
3116
  {
2878
3117
  orientation: "horizontal",
2879
3118
  size: "xl",
2880
- class: { border: "border-t-[5px]" }
3119
+ class: { border: "border-t-5" }
2881
3120
  },
2882
3121
  {
2883
3122
  orientation: "vertical",
@@ -2887,22 +3126,22 @@ const separator = (options) => ct({
2887
3126
  {
2888
3127
  orientation: "vertical",
2889
3128
  size: "sm",
2890
- class: { border: "border-s-[2px]" }
3129
+ class: { border: "border-s-2" }
2891
3130
  },
2892
3131
  {
2893
3132
  orientation: "vertical",
2894
3133
  size: "md",
2895
- class: { border: "border-s-[3px]" }
3134
+ class: { border: "border-s-3" }
2896
3135
  },
2897
3136
  {
2898
3137
  orientation: "vertical",
2899
3138
  size: "lg",
2900
- class: { border: "border-s-[4px]" }
3139
+ class: { border: "border-s-4" }
2901
3140
  },
2902
3141
  {
2903
3142
  orientation: "vertical",
2904
3143
  size: "xl",
2905
- class: { border: "border-s-[5px]" }
3144
+ class: { border: "border-s-5" }
2906
3145
  }
2907
3146
  ],
2908
3147
  defaultVariants: {
@@ -2972,70 +3211,70 @@ const slider = (options) => ct({
2972
3211
  orientation: "horizontal",
2973
3212
  size: "xs",
2974
3213
  class: {
2975
- track: "h-[6px]"
3214
+ track: "h-1.5"
2976
3215
  }
2977
3216
  },
2978
3217
  {
2979
3218
  orientation: "horizontal",
2980
3219
  size: "sm",
2981
3220
  class: {
2982
- track: "h-[7px]"
3221
+ track: "h-1.75"
2983
3222
  }
2984
3223
  },
2985
3224
  {
2986
3225
  orientation: "horizontal",
2987
3226
  size: "md",
2988
3227
  class: {
2989
- track: "h-[8px]"
3228
+ track: "h-2"
2990
3229
  }
2991
3230
  },
2992
3231
  {
2993
3232
  orientation: "horizontal",
2994
3233
  size: "lg",
2995
3234
  class: {
2996
- track: "h-[9px]"
3235
+ track: "h-2.25"
2997
3236
  }
2998
3237
  },
2999
3238
  {
3000
3239
  orientation: "horizontal",
3001
3240
  size: "xl",
3002
3241
  class: {
3003
- track: "h-[10px]"
3242
+ track: "h-2.5"
3004
3243
  }
3005
3244
  },
3006
3245
  {
3007
3246
  orientation: "vertical",
3008
3247
  size: "xs",
3009
3248
  class: {
3010
- track: "w-[6px]"
3249
+ track: "w-1.5"
3011
3250
  }
3012
3251
  },
3013
3252
  {
3014
3253
  orientation: "vertical",
3015
3254
  size: "sm",
3016
3255
  class: {
3017
- track: "w-[7px]"
3256
+ track: "w-1.75"
3018
3257
  }
3019
3258
  },
3020
3259
  {
3021
3260
  orientation: "vertical",
3022
3261
  size: "md",
3023
3262
  class: {
3024
- track: "w-[8px]"
3263
+ track: "w-2"
3025
3264
  }
3026
3265
  },
3027
3266
  {
3028
3267
  orientation: "vertical",
3029
3268
  size: "lg",
3030
3269
  class: {
3031
- track: "w-[9px]"
3270
+ track: "w-2.25"
3032
3271
  }
3033
3272
  },
3034
3273
  {
3035
3274
  orientation: "vertical",
3036
3275
  size: "xl",
3037
3276
  class: {
3038
- track: "w-[10px]"
3277
+ track: "w-2.5"
3039
3278
  }
3040
3279
  }
3041
3280
  ],
@@ -3145,12 +3384,12 @@ const table = (options) => ct({
3145
3384
  base: "min-w-full",
3146
3385
  caption: "sr-only",
3147
3386
  thead: "relative",
3148
- tbody: "[&>tr]:data-[selectable=true]:hover:bg-elevated/50 [&>tr]:data-[selectable=true]:focus-visible:outline-primary",
3387
+ tbody: "isolate [&>tr]:data-[selectable=true]:hover:bg-elevated/50 [&>tr]:data-[selectable=true]:focus-visible:outline-primary",
3149
3388
  tfoot: "relative",
3150
3389
  tr: "data-[selected=true]:bg-elevated/50",
3151
3390
  th: "px-4 py-3.5 text-sm text-highlighted text-left rtl:text-right font-semibold [&:has([role=checkbox])]:pe-0",
3152
3391
  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]",
3392
+ separator: "absolute z-1 left-0 w-full h-px bg-[--ui-border-accented]",
3154
3393
  empty: "py-6 text-center text-sm text-muted",
3155
3394
  loading: "py-6 text-center"
3156
3395
  },
@@ -3163,25 +3402,25 @@ const table = (options) => ct({
3163
3402
  },
3164
3403
  pinned: {
3165
3404
  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"
3405
+ th: "sticky bg-default/75 z-1",
3406
+ td: "sticky bg-default/75 z-1"
3168
3407
  }
3169
3408
  },
3170
3409
  sticky: {
3171
3410
  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"
3411
+ thead: "sticky top-0 inset-x-0 bg-default/75 z-1 backdrop-blur",
3412
+ tfoot: "sticky bottom-0 inset-x-0 bg-default/75 z-1 backdrop-blur"
3174
3413
  },
3175
3414
  header: {
3176
- thead: "sticky top-0 inset-x-0 bg-default/75 z-[1] backdrop-blur"
3415
+ thead: "sticky top-0 inset-x-0 bg-default/75 z-1 backdrop-blur"
3177
3416
  },
3178
3417
  footer: {
3179
- tfoot: "sticky bottom-0 inset-x-0 bg-default/75 z-[1] backdrop-blur"
3418
+ tfoot: "sticky bottom-0 inset-x-0 bg-default/75 z-1 backdrop-blur"
3180
3419
  }
3181
3420
  },
3182
3421
  loading: {
3183
3422
  true: {
3184
- thead: "after:content-empty after:absolute after:z-[1] after:h-px"
3423
+ thead: "after:content-empty after:absolute after:z-1 after:h-px"
3185
3424
  }
3186
3425
  },
3187
3426
  loadingAnimation: {
@@ -3431,6 +3670,218 @@ const textarea = (options) => {
3431
3670
  }, input));
3432
3671
  };
3433
3672
 
3673
+ const timeline = (options) => ct({
3674
+ parts: {
3675
+ root: "flex gap-1.5",
3676
+ item: "group relative flex flex-1 gap-3",
3677
+ container: "relative flex items-center gap-1.5",
3678
+ indicator: "group-data-[state=completed]:text-inverted group-data-[state=active]:text-inverted text-muted",
3679
+ indicatorIcon: "text-inherit",
3680
+ indicatorFallback: "text-inherit",
3681
+ separator: "flex-1 rounded-full bg-elevated",
3682
+ wrapper: "w-full",
3683
+ date: "text-dimmed text-xs/5",
3684
+ title: "font-medium text-highlighted text-sm",
3685
+ description: "text-muted text-wrap text-sm"
3686
+ },
3687
+ variants: {
3688
+ orientation: {
3689
+ horizontal: {
3690
+ root: "flex-row w-full",
3691
+ item: "flex-col",
3692
+ separator: "h-0.5"
3693
+ },
3694
+ vertical: {
3695
+ root: "flex-col",
3696
+ container: "flex-col",
3697
+ separator: "w-0.5"
3698
+ }
3699
+ },
3700
+ color: {
3701
+ ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
3702
+ indicator: `group-data-[state=completed]:bg-${color} group-data-[state=active]:bg-${color}`
3703
+ }])),
3704
+ neutral: {
3705
+ indicator: "group-data-[state=completed]:bg-inverted group-data-[state=active]:bg-inverted"
3706
+ }
3707
+ },
3708
+ size: {
3709
+ "3xs": "",
3710
+ "2xs": "",
3711
+ "xs": "",
3712
+ "sm": "",
3713
+ "md": "",
3714
+ "lg": "",
3715
+ "xl": "",
3716
+ "2xl": "",
3717
+ "3xl": ""
3718
+ },
3719
+ reverse: {
3720
+ true: ""
3721
+ }
3722
+ },
3723
+ compoundVariants: [
3724
+ ...(options.theme.colors || []).map((color) => ({
3725
+ color,
3726
+ reverse: false,
3727
+ class: {
3728
+ separator: `group-data-[state=completed]:bg-${color}`
3729
+ }
3730
+ })),
3731
+ {
3732
+ color: "neutral",
3733
+ reverse: false,
3734
+ class: {
3735
+ separator: "group-data-[state=completed]:bg-inverted"
3736
+ }
3737
+ },
3738
+ ...(options.theme.colors || []).map((color) => ({
3739
+ color,
3740
+ reverse: true,
3741
+ class: {
3742
+ separator: `group-data-[state=active]:bg-${color} group-data-[state=completed]:bg-${color}`
3743
+ }
3744
+ })),
3745
+ {
3746
+ color: "neutral",
3747
+ reverse: true,
3748
+ class: {
3749
+ separator: "group-data-[state=active]:bg-inverted group-data-[state=completed]:bg-inverted"
3750
+ }
3751
+ },
3752
+ {
3753
+ orientation: "horizontal",
3754
+ size: "3xs",
3755
+ class: {
3756
+ wrapper: "pe-4.5"
3757
+ }
3758
+ },
3759
+ {
3760
+ orientation: "horizontal",
3761
+ size: "2xs",
3762
+ class: {
3763
+ wrapper: "pe-5"
3764
+ }
3765
+ },
3766
+ {
3767
+ orientation: "horizontal",
3768
+ size: "xs",
3769
+ class: {
3770
+ wrapper: "pe-5.5"
3771
+ }
3772
+ },
3773
+ {
3774
+ orientation: "horizontal",
3775
+ size: "sm",
3776
+ class: {
3777
+ wrapper: "pe-6"
3778
+ }
3779
+ },
3780
+ {
3781
+ orientation: "horizontal",
3782
+ size: "md",
3783
+ class: {
3784
+ wrapper: "pe-6.5"
3785
+ }
3786
+ },
3787
+ {
3788
+ orientation: "horizontal",
3789
+ size: "lg",
3790
+ class: {
3791
+ wrapper: "pe-7"
3792
+ }
3793
+ },
3794
+ {
3795
+ orientation: "horizontal",
3796
+ size: "xl",
3797
+ class: {
3798
+ wrapper: "pe-7.5"
3799
+ }
3800
+ },
3801
+ {
3802
+ orientation: "horizontal",
3803
+ size: "2xl",
3804
+ class: {
3805
+ wrapper: "pe-8"
3806
+ }
3807
+ },
3808
+ {
3809
+ orientation: "horizontal",
3810
+ size: "3xl",
3811
+ class: {
3812
+ wrapper: "pe-8.5"
3813
+ }
3814
+ },
3815
+ {
3816
+ orientation: "vertical",
3817
+ size: "3xs",
3818
+ class: {
3819
+ wrapper: "-mt-0.5 pb-4.5"
3820
+ }
3821
+ },
3822
+ {
3823
+ orientation: "vertical",
3824
+ size: "2xs",
3825
+ class: {
3826
+ wrapper: "pb-5"
3827
+ }
3828
+ },
3829
+ {
3830
+ orientation: "vertical",
3831
+ size: "xs",
3832
+ class: {
3833
+ wrapper: "mt-0.5 pb-5.5"
3834
+ }
3835
+ },
3836
+ {
3837
+ orientation: "vertical",
3838
+ size: "sm",
3839
+ class: {
3840
+ wrapper: "mt-1 pb-6"
3841
+ }
3842
+ },
3843
+ {
3844
+ orientation: "vertical",
3845
+ size: "md",
3846
+ class: {
3847
+ wrapper: "mt-1.5 pb-6.5"
3848
+ }
3849
+ },
3850
+ {
3851
+ orientation: "vertical",
3852
+ size: "lg",
3853
+ class: {
3854
+ wrapper: "mt-2 pb-7"
3855
+ }
3856
+ },
3857
+ {
3858
+ orientation: "vertical",
3859
+ size: "xl",
3860
+ class: {
3861
+ wrapper: "mt-2.5 pb-7.5"
3862
+ }
3863
+ },
3864
+ {
3865
+ orientation: "vertical",
3866
+ size: "2xl",
3867
+ class: {
3868
+ wrapper: "mt-3 pb-8"
3869
+ }
3870
+ },
3871
+ {
3872
+ orientation: "vertical",
3873
+ size: "3xl",
3874
+ class: {
3875
+ wrapper: "mt-3.5 pb-8.5"
3876
+ }
3877
+ }
3878
+ ],
3879
+ defaultVariants: {
3880
+ size: "md",
3881
+ color: "primary"
3882
+ }
3883
+ });
3884
+
3434
3885
  const toast = (options) => ct({
3435
3886
  parts: {
3436
3887
  root: "relative group overflow-hidden bg-default shadow-lg rounded-lg ring ring-default p-4 flex gap-2.5 focus:outline-none",
@@ -3590,6 +4041,7 @@ const theme = {
3590
4041
  card: card,
3591
4042
  carousel: carousel,
3592
4043
  checkbox: checkbox,
4044
+ checkboxGroup: checkboxGroup,
3593
4045
  chip: chip,
3594
4046
  collapsible: collapsible,
3595
4047
  drawer: drawer,
@@ -3599,8 +4051,10 @@ const theme = {
3599
4051
  formField: formField,
3600
4052
  input: inputTheme,
3601
4053
  inputNumber: inputNumber,
4054
+ inputTags: inputTags,
3602
4055
  kbd: kbd,
3603
4056
  link: link,
4057
+ marquee: marquee,
3604
4058
  modal: modal,
3605
4059
  navigationMenu: navigationMenu,
3606
4060
  pagination: pagination,
@@ -3617,6 +4071,7 @@ const theme = {
3617
4071
  table: table,
3618
4072
  tabs: tabs,
3619
4073
  textarea: textarea,
4074
+ timeline: timeline,
3620
4075
  toast: toast,
3621
4076
  toastProvider: toastProvider,
3622
4077
  tooltip: tooltip