starwind 3.0.0-beta.2 → 3.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import { Command, Option } from "commander";
6
6
  // package.json
7
7
  var package_default = {
8
8
  name: "starwind",
9
- version: "3.0.0-beta.2",
9
+ version: "3.0.0-beta.4",
10
10
  description: "Install and manage Starwind UI components in Astro and React applications",
11
11
  license: "MIT",
12
12
  homepage: "https://starwind.dev/",
@@ -104,18 +104,6 @@ var PATHS = {
104
104
  var ASTRO_PACKAGES = {
105
105
  core: "astro@latest"
106
106
  };
107
- var OTHER_PACKAGES = {
108
- tailwindCore: "tailwindcss@^4",
109
- tailwindVite: "@tailwindcss/vite@^4",
110
- tailwindForms: "@tailwindcss/forms@^0.5",
111
- tailwindAnimate: "tw-animate-css@^1",
112
- tailwindVariants: "tailwind-variants@^3",
113
- tailwindMerge: "tailwind-merge@^3",
114
- tablerIcons: "@tabler/icons@^3"
115
- };
116
- function getOtherPackages() {
117
- return Object.values(OTHER_PACKAGES);
118
- }
119
107
 
120
108
  // src/utils/fs.ts
121
109
  import fs from "fs-extra";
@@ -1065,7 +1053,16 @@ function detectPackageManager(options = {}) {
1065
1053
  };
1066
1054
  }
1067
1055
  async function installDependencies(packages, pm, dev = false, force = false) {
1068
- await execa(pm, buildInstallDependencyArgs(packages, pm, dev, force));
1056
+ const packageManager = pm ?? detectPackageManager().name;
1057
+ const spinner2 = p.spinner();
1058
+ spinner2.start(`Installing dependencies with ${packageManager}...`);
1059
+ try {
1060
+ await execa(packageManager, buildInstallDependencyArgs(packages, packageManager, dev, force));
1061
+ spinner2.stop(`Dependencies installed with ${packageManager}.`);
1062
+ } catch (error) {
1063
+ spinner2.stop(`Failed to install dependencies with ${packageManager}.`, 1);
1064
+ throw error;
1065
+ }
1069
1066
  }
1070
1067
  function buildInstallDependencyArgs(packages, pm, dev = false, force = false) {
1071
1068
  const validatedPackages = packages.map(
@@ -1505,7 +1502,33 @@ import { z as z2 } from "zod";
1505
1502
  // src/registry/bundled-registry.json
1506
1503
  var bundled_registry_default = {
1507
1504
  $schema: "https://starwind.dev/registry-schema.v2.json",
1508
- version: "2.0.0",
1505
+ version: "2.1.0",
1506
+ setup: {
1507
+ astro: {
1508
+ adapterPackage: { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
1509
+ packageRequirements: [
1510
+ { name: "@tabler/icons", range: "^3" },
1511
+ { name: "@tailwindcss/forms", range: "^0.5" },
1512
+ { name: "@tailwindcss/vite", range: "^4" },
1513
+ { name: "tailwind-merge", range: "^3" },
1514
+ { name: "tailwind-variants", range: "^3" },
1515
+ { name: "tailwindcss", range: "^4" },
1516
+ { name: "tw-animate-css", range: "^1" }
1517
+ ]
1518
+ },
1519
+ react: {
1520
+ adapterPackage: { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
1521
+ packageRequirements: [
1522
+ { name: "@tabler/icons-react", range: "^3" },
1523
+ { name: "@tailwindcss/forms", range: "^0.5" },
1524
+ { name: "@tailwindcss/vite", range: "^4" },
1525
+ { name: "tailwind-merge", range: "^3" },
1526
+ { name: "tailwind-variants", range: "^3" },
1527
+ { name: "tailwindcss", range: "^4" },
1528
+ { name: "tw-animate-css", range: "^1" }
1529
+ ]
1530
+ }
1531
+ },
1509
1532
  components: [
1510
1533
  {
1511
1534
  name: "badge",
@@ -2042,7 +2065,7 @@ export const badge = tv({
2042
2065
  ],
2043
2066
  componentDependencies: [],
2044
2067
  packageRequirements: [
2045
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
2068
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
2046
2069
  { name: "astro", range: ">=5" },
2047
2070
  { name: "tailwind-variants", range: "^3.2.2" }
2048
2071
  ]
@@ -2576,7 +2599,7 @@ export const badge = tv({
2576
2599
  ],
2577
2600
  componentDependencies: [],
2578
2601
  packageRequirements: [
2579
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
2602
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
2580
2603
  { name: "react", range: ">=18" },
2581
2604
  { name: "tailwind-variants", range: "^3.2.2" }
2582
2605
  ]
@@ -2606,7 +2629,7 @@ export const badge = tv({
2606
2629
  ],
2607
2630
  componentDependencies: [],
2608
2631
  packageRequirements: [
2609
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
2632
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
2610
2633
  { name: "astro", range: ">=5" },
2611
2634
  { name: "tailwind-variants", range: "^3.2.2" }
2612
2635
  ]
@@ -2628,7 +2651,7 @@ export const badge = tv({
2628
2651
  ],
2629
2652
  componentDependencies: [],
2630
2653
  packageRequirements: [
2631
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
2654
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
2632
2655
  { name: "react", range: ">=18" },
2633
2656
  { name: "tailwind-variants", range: "^3.2.2" }
2634
2657
  ]
@@ -2676,7 +2699,7 @@ export const kbdGroup = tv({
2676
2699
  ],
2677
2700
  componentDependencies: [],
2678
2701
  packageRequirements: [
2679
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
2702
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
2680
2703
  { name: "astro", range: ">=5" },
2681
2704
  { name: "tailwind-variants", range: "^3.2.2" }
2682
2705
  ]
@@ -2716,7 +2739,7 @@ export const kbdGroup = tv({
2716
2739
  ],
2717
2740
  componentDependencies: [],
2718
2741
  packageRequirements: [
2719
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
2742
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
2720
2743
  { name: "react", range: ">=18" },
2721
2744
  { name: "tailwind-variants", range: "^3.2.2" }
2722
2745
  ]
@@ -2746,7 +2769,7 @@ export const kbdGroup = tv({
2746
2769
  ],
2747
2770
  componentDependencies: [],
2748
2771
  packageRequirements: [
2749
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
2772
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
2750
2773
  { name: "astro", range: ">=5" },
2751
2774
  { name: "tailwind-variants", range: "^3.2.2" }
2752
2775
  ]
@@ -2768,7 +2791,7 @@ export const kbdGroup = tv({
2768
2791
  ],
2769
2792
  componentDependencies: [],
2770
2793
  packageRequirements: [
2771
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
2794
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
2772
2795
  { name: "react", range: ">=18" },
2773
2796
  { name: "tailwind-variants", range: "^3.2.2" }
2774
2797
  ]
@@ -2798,7 +2821,7 @@ export const kbdGroup = tv({
2798
2821
  ],
2799
2822
  componentDependencies: [],
2800
2823
  packageRequirements: [
2801
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
2824
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
2802
2825
  { name: "astro", range: ">=5" },
2803
2826
  { name: "tailwind-variants", range: "^3.2.2" }
2804
2827
  ]
@@ -2820,7 +2843,7 @@ export const kbdGroup = tv({
2820
2843
  ],
2821
2844
  componentDependencies: [],
2822
2845
  packageRequirements: [
2823
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
2846
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
2824
2847
  { name: "react", range: ">=18" },
2825
2848
  { name: "tailwind-variants", range: "^3.2.2" }
2826
2849
  ]
@@ -2850,7 +2873,7 @@ export const kbdGroup = tv({
2850
2873
  ],
2851
2874
  componentDependencies: [],
2852
2875
  packageRequirements: [
2853
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
2876
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
2854
2877
  { name: "astro", range: ">=5" },
2855
2878
  { name: "tailwind-variants", range: "^3.2.2" }
2856
2879
  ]
@@ -2872,7 +2895,7 @@ export const kbdGroup = tv({
2872
2895
  ],
2873
2896
  componentDependencies: [],
2874
2897
  packageRequirements: [
2875
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
2898
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
2876
2899
  { name: "react", range: ">=18" },
2877
2900
  { name: "tailwind-variants", range: "^3.2.2" }
2878
2901
  ]
@@ -2902,7 +2925,7 @@ export const kbdGroup = tv({
2902
2925
  ],
2903
2926
  componentDependencies: [],
2904
2927
  packageRequirements: [
2905
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
2928
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
2906
2929
  { name: "@tabler/icons", range: "^3.37.1" },
2907
2930
  { name: "astro", range: ">=5" },
2908
2931
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -2925,7 +2948,7 @@ export const kbdGroup = tv({
2925
2948
  ],
2926
2949
  componentDependencies: [],
2927
2950
  packageRequirements: [
2928
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
2951
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
2929
2952
  { name: "@tabler/icons-react", range: "^3.37.1" },
2930
2953
  { name: "react", range: ">=18" },
2931
2954
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -2935,7 +2958,7 @@ export const kbdGroup = tv({
2935
2958
  },
2936
2959
  {
2937
2960
  name: "card",
2938
- version: "2.1.0",
2961
+ version: "2.2.0",
2939
2962
  type: "component",
2940
2963
  dependencies: [],
2941
2964
  targets: {
@@ -2975,12 +2998,12 @@ export const kbdGroup = tv({
2975
2998
  },
2976
2999
  {
2977
3000
  path: "src/components/starwind/card/variants.ts",
2978
- content: 'import { tv } from "tailwind-variants";\n\nexport const card = tv({\n base: [\n "bg-card text-card-foreground group/card ring-border flex flex-col rounded-xl ring-1",\n "has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0",\n "*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",\n ],\n variants: {\n size: {\n default: "gap-6 py-6",\n sm: "gap-4 py-4 text-sm",\n },\n },\n defaultVariants: {\n size: "default",\n },\n});\n\nexport const cardAction = tv({\n base: "col-start-2 row-span-2 row-start-1 self-start justify-self-end",\n});\n\nexport const cardContent = tv({\n base: "px-6 group-data-[size=sm]/card:px-4",\n});\n\nexport const cardDescription = tv({\n base: "text-muted-foreground text-base group-data-[size=sm]/card:text-sm",\n});\n\nexport const cardFooter = tv({\n base: "bg-muted/50 flex items-center rounded-b-xl border-t p-6 group-data-[size=sm]/card:p-4",\n});\n\nexport const cardHeader = tv({\n base: [\n "@container/card-header grid auto-rows-min items-start gap-1 px-6 group-data-[size=sm]/card:px-4",\n "has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",\n ],\n});\n\nexport const cardTitle = tv({\n base: "font-heading text-xl leading-snug font-medium group-data-[size=sm]/card:text-base",\n});\n'
3001
+ content: 'import { tv } from "tailwind-variants";\n\nexport const card = tv({\n base: [\n "bg-card text-card-foreground group/card ring-border flex flex-col gap-(--card-spacing) rounded-xl py-(--card-spacing) ring-1",\n "has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0",\n "*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",\n ],\n variants: {\n size: {\n default: "[--card-spacing:--spacing(5)]",\n sm: "[--card-spacing:--spacing(4)] text-sm",\n },\n },\n defaultVariants: {\n size: "default",\n },\n});\n\nexport const cardAction = tv({\n base: "col-start-2 row-span-2 row-start-1 self-start justify-self-end",\n});\n\nexport const cardContent = tv({\n base: "px-(--card-spacing)",\n});\n\nexport const cardDescription = tv({\n base: "text-muted-foreground text-base group-data-[size=sm]/card:text-sm",\n});\n\nexport const cardFooter = tv({\n base: "bg-muted/50 flex items-center rounded-b-xl border-t p-(--card-spacing)",\n});\n\nexport const cardHeader = tv({\n base: [\n "@container/card-header grid auto-rows-min items-start gap-1 px-(--card-spacing)",\n "has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",\n ],\n});\n\nexport const cardTitle = tv({\n base: "font-heading text-xl leading-snug font-medium group-data-[size=sm]/card:text-base",\n});\n'
2979
3002
  }
2980
3003
  ],
2981
3004
  componentDependencies: [],
2982
3005
  packageRequirements: [
2983
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
3006
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
2984
3007
  { name: "astro", range: ">=5" },
2985
3008
  { name: "tailwind-variants", range: "^3.2.2" }
2986
3009
  ]
@@ -3021,12 +3044,12 @@ export const kbdGroup = tv({
3021
3044
  },
3022
3045
  {
3023
3046
  path: "src/components/starwind/card/variants.ts",
3024
- content: 'import { tv } from "tailwind-variants";\n\nexport const card = tv({\n base: [\n "bg-card text-card-foreground group/card ring-border flex flex-col rounded-xl ring-1",\n "has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0",\n "*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",\n ],\n variants: {\n size: {\n default: "gap-6 py-6",\n sm: "gap-4 py-4 text-sm",\n },\n },\n defaultVariants: {\n size: "default",\n },\n});\n\nexport const cardAction = tv({\n base: "col-start-2 row-span-2 row-start-1 self-start justify-self-end",\n});\n\nexport const cardContent = tv({\n base: "px-6 group-data-[size=sm]/card:px-4",\n});\n\nexport const cardDescription = tv({\n base: "text-muted-foreground text-base group-data-[size=sm]/card:text-sm",\n});\n\nexport const cardFooter = tv({\n base: "bg-muted/50 flex items-center rounded-b-xl border-t p-6 group-data-[size=sm]/card:p-4",\n});\n\nexport const cardHeader = tv({\n base: [\n "@container/card-header grid auto-rows-min items-start gap-1 px-6 group-data-[size=sm]/card:px-4",\n "has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",\n ],\n});\n\nexport const cardTitle = tv({\n base: "font-heading text-xl leading-snug font-medium group-data-[size=sm]/card:text-base",\n});\n'
3047
+ content: 'import { tv } from "tailwind-variants";\n\nexport const card = tv({\n base: [\n "bg-card text-card-foreground group/card ring-border flex flex-col gap-(--card-spacing) rounded-xl py-(--card-spacing) ring-1",\n "has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0",\n "*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",\n ],\n variants: {\n size: {\n default: "[--card-spacing:--spacing(5)]",\n sm: "[--card-spacing:--spacing(4)] text-sm",\n },\n },\n defaultVariants: {\n size: "default",\n },\n});\n\nexport const cardAction = tv({\n base: "col-start-2 row-span-2 row-start-1 self-start justify-self-end",\n});\n\nexport const cardContent = tv({\n base: "px-(--card-spacing)",\n});\n\nexport const cardDescription = tv({\n base: "text-muted-foreground text-base group-data-[size=sm]/card:text-sm",\n});\n\nexport const cardFooter = tv({\n base: "bg-muted/50 flex items-center rounded-b-xl border-t p-(--card-spacing)",\n});\n\nexport const cardHeader = tv({\n base: [\n "@container/card-header grid auto-rows-min items-start gap-1 px-(--card-spacing)",\n "has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",\n ],\n});\n\nexport const cardTitle = tv({\n base: "font-heading text-xl leading-snug font-medium group-data-[size=sm]/card:text-base",\n});\n'
3025
3048
  }
3026
3049
  ],
3027
3050
  componentDependencies: [],
3028
3051
  packageRequirements: [
3029
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
3052
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
3030
3053
  { name: "react", range: ">=18" },
3031
3054
  { name: "tailwind-variants", range: "^3.2.2" }
3032
3055
  ]
@@ -3080,7 +3103,7 @@ export const kbdGroup = tv({
3080
3103
  ],
3081
3104
  componentDependencies: [],
3082
3105
  packageRequirements: [
3083
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
3106
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
3084
3107
  { name: "@tabler/icons", range: "^3.37.1" },
3085
3108
  { name: "astro", range: ">=5" },
3086
3109
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -3127,7 +3150,7 @@ export const kbdGroup = tv({
3127
3150
  ],
3128
3151
  componentDependencies: [],
3129
3152
  packageRequirements: [
3130
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
3153
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
3131
3154
  { name: "@tabler/icons-react", range: "^3.37.1" },
3132
3155
  { name: "react", range: ">=18" },
3133
3156
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -3166,7 +3189,7 @@ export const kbdGroup = tv({
3166
3189
  ],
3167
3190
  componentDependencies: [],
3168
3191
  packageRequirements: [
3169
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
3192
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
3170
3193
  { name: "astro", range: ">=5" },
3171
3194
  { name: "tailwind-variants", range: "^3.2.2" }
3172
3195
  ]
@@ -3196,7 +3219,7 @@ export const kbdGroup = tv({
3196
3219
  ],
3197
3220
  componentDependencies: [],
3198
3221
  packageRequirements: [
3199
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
3222
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
3200
3223
  { name: "react", range: ">=18" },
3201
3224
  { name: "tailwind-variants", range: "^3.2.2" }
3202
3225
  ]
@@ -3226,7 +3249,7 @@ export const kbdGroup = tv({
3226
3249
  ],
3227
3250
  componentDependencies: [],
3228
3251
  packageRequirements: [
3229
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
3252
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
3230
3253
  { name: "astro", range: ">=5" },
3231
3254
  { name: "tailwind-variants", range: "^3.2.2" }
3232
3255
  ]
@@ -3248,7 +3271,7 @@ export const kbdGroup = tv({
3248
3271
  ],
3249
3272
  componentDependencies: [],
3250
3273
  packageRequirements: [
3251
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
3274
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
3252
3275
  { name: "react", range: ">=18" },
3253
3276
  { name: "tailwind-variants", range: "^3.2.2" }
3254
3277
  ]
@@ -3257,7 +3280,7 @@ export const kbdGroup = tv({
3257
3280
  },
3258
3281
  {
3259
3282
  name: "avatar",
3260
- version: "2.0.0",
3283
+ version: "2.0.1",
3261
3284
  type: "component",
3262
3285
  dependencies: [],
3263
3286
  targets: {
@@ -3281,12 +3304,12 @@ export const kbdGroup = tv({
3281
3304
  },
3282
3305
  {
3283
3306
  path: "src/components/starwind/avatar/variants.ts",
3284
- content: 'import { tv } from "tailwind-variants";\n\nexport const avatar = tv({\n base: "text-foreground bg-muted relative overflow-hidden rounded-full border-2",\n variants: {\n variant: {\n default: "border-border",\n primary: "border-primary",\n secondary: "border-secondary",\n info: "border-info",\n success: "border-success",\n warning: "border-warning",\n error: "border-error",\n },\n size: {\n sm: "h-8 w-8 text-xs",\n md: "h-10 w-10 text-sm",\n lg: "h-12 w-12 text-base",\n },\n },\n defaultVariants: {\n variant: "default",\n size: "md",\n },\n});\n\nexport const avatarFallback = tv({\n base: "absolute inset-0.5 flex items-center justify-center rounded-full font-medium",\n});\n\nexport const avatarImage = tv({\n base: "relative z-1 h-full w-full object-cover",\n});\n'
3307
+ content: 'import { tv } from "tailwind-variants";\n\nexport const avatar = tv({\n base: "text-foreground bg-muted relative inline-flex overflow-hidden rounded-full border-2",\n variants: {\n variant: {\n default: "border-border",\n primary: "border-primary",\n secondary: "border-secondary",\n info: "border-info",\n success: "border-success",\n warning: "border-warning",\n error: "border-error",\n },\n size: {\n sm: "h-8 w-8 text-xs",\n md: "h-10 w-10 text-sm",\n lg: "h-12 w-12 text-base",\n },\n },\n defaultVariants: {\n variant: "default",\n size: "md",\n },\n});\n\nexport const avatarFallback = tv({\n base: "absolute inset-0.5 flex items-center justify-center rounded-full font-medium",\n});\n\nexport const avatarImage = tv({\n base: "relative z-1 h-full w-full object-cover",\n});\n'
3285
3308
  }
3286
3309
  ],
3287
3310
  componentDependencies: [],
3288
3311
  packageRequirements: [
3289
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
3312
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
3290
3313
  { name: "astro", range: ">=5" },
3291
3314
  { name: "tailwind-variants", range: "^3.2.2" }
3292
3315
  ]
@@ -3311,12 +3334,12 @@ export const kbdGroup = tv({
3311
3334
  },
3312
3335
  {
3313
3336
  path: "src/components/starwind/avatar/variants.ts",
3314
- content: 'import { tv } from "tailwind-variants";\n\nexport const avatar = tv({\n base: "text-foreground bg-muted relative overflow-hidden rounded-full border-2",\n variants: {\n variant: {\n default: "border-border",\n primary: "border-primary",\n secondary: "border-secondary",\n info: "border-info",\n success: "border-success",\n warning: "border-warning",\n error: "border-error",\n },\n size: {\n sm: "h-8 w-8 text-xs",\n md: "h-10 w-10 text-sm",\n lg: "h-12 w-12 text-base",\n },\n },\n defaultVariants: {\n variant: "default",\n size: "md",\n },\n});\n\nexport const avatarFallback = tv({\n base: "absolute inset-0.5 flex items-center justify-center rounded-full font-medium",\n});\n\nexport const avatarImage = tv({\n base: "relative z-1 h-full w-full object-cover",\n});\n'
3337
+ content: 'import { tv } from "tailwind-variants";\n\nexport const avatar = tv({\n base: "text-foreground bg-muted relative inline-flex overflow-hidden rounded-full border-2",\n variants: {\n variant: {\n default: "border-border",\n primary: "border-primary",\n secondary: "border-secondary",\n info: "border-info",\n success: "border-success",\n warning: "border-warning",\n error: "border-error",\n },\n size: {\n sm: "h-8 w-8 text-xs",\n md: "h-10 w-10 text-sm",\n lg: "h-12 w-12 text-base",\n },\n },\n defaultVariants: {\n variant: "default",\n size: "md",\n },\n});\n\nexport const avatarFallback = tv({\n base: "absolute inset-0.5 flex items-center justify-center rounded-full font-medium",\n});\n\nexport const avatarImage = tv({\n base: "relative z-1 h-full w-full object-cover",\n});\n'
3315
3338
  }
3316
3339
  ],
3317
3340
  componentDependencies: [],
3318
3341
  packageRequirements: [
3319
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
3342
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
3320
3343
  { name: "react", range: ">=18" },
3321
3344
  { name: "tailwind-variants", range: "^3.2.2" }
3322
3345
  ]
@@ -3350,7 +3373,7 @@ export const kbdGroup = tv({
3350
3373
  ],
3351
3374
  componentDependencies: [],
3352
3375
  packageRequirements: [
3353
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
3376
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
3354
3377
  { name: "@tabler/icons", range: "^3.37.1" },
3355
3378
  { name: "astro", range: ">=5" },
3356
3379
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -3377,7 +3400,7 @@ export const kbdGroup = tv({
3377
3400
  ],
3378
3401
  componentDependencies: [],
3379
3402
  packageRequirements: [
3380
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
3403
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
3381
3404
  { name: "@tabler/icons-react", range: "^3.37.1" },
3382
3405
  { name: "react", range: ">=18" },
3383
3406
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -3408,7 +3431,7 @@ export const kbdGroup = tv({
3408
3431
  ],
3409
3432
  componentDependencies: [],
3410
3433
  packageRequirements: [
3411
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
3434
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
3412
3435
  { name: "astro", range: ">=5" },
3413
3436
  { name: "tailwind-variants", range: "^3.2.2" }
3414
3437
  ]
@@ -3430,7 +3453,7 @@ export const kbdGroup = tv({
3430
3453
  ],
3431
3454
  componentDependencies: [],
3432
3455
  packageRequirements: [
3433
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
3456
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
3434
3457
  { name: "react", range: ">=18" },
3435
3458
  { name: "tailwind-variants", range: "^3.2.2" }
3436
3459
  ]
@@ -3646,7 +3669,7 @@ export const comboboxValue = tv({
3646
3669
  ],
3647
3670
  componentDependencies: ["input-group"],
3648
3671
  packageRequirements: [
3649
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
3672
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
3650
3673
  { name: "@tabler/icons", range: "^3.37.1" },
3651
3674
  { name: "astro", range: ">=5" },
3652
3675
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -3855,7 +3878,7 @@ export const comboboxValue = tv({
3855
3878
  ],
3856
3879
  componentDependencies: ["input-group"],
3857
3880
  packageRequirements: [
3858
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
3881
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
3859
3882
  { name: "@tabler/icons-react", range: "^3.37.1" },
3860
3883
  { name: "react", range: ">=18" },
3861
3884
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -3865,7 +3888,7 @@ export const comboboxValue = tv({
3865
3888
  },
3866
3889
  {
3867
3890
  name: "color-picker",
3868
- version: "0.1.0",
3891
+ version: "1.2.0",
3869
3892
  type: "component",
3870
3893
  dependencies: [],
3871
3894
  targets: {
@@ -3897,7 +3920,7 @@ export const comboboxValue = tv({
3897
3920
  },
3898
3921
  {
3899
3922
  path: "src/components/starwind/color-picker/ColorPickerContent.astro",
3900
- content: '---\nimport ColorPicker from "@tabler/icons/outline/color-picker.svg";\nimport type { ComponentProps } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\n\nimport "./styles.css";\nimport { PopoverContent } from "../popover";\nimport ColorPickerArea from "./ColorPickerArea.astro";\nimport ColorPickerClear from "./ColorPickerClear.astro";\nimport ColorPickerEyeDropper from "./ColorPickerEyeDropper.astro";\nimport ColorPickerInput from "./ColorPickerInput.astro";\nimport ColorPickerSliders from "./ColorPickerSliders.astro";\nimport { colorPickerContent, colorPickerSeparator, colorPickerSliderActionRow, colorPickerValueFormatRow } from "./variants";\n\ntype Props = ComponentProps<typeof PopoverContent> & VariantProps<typeof colorPickerContent> & {\n alpha?: boolean;\n showEyeDropper?: boolean;\n showClear?: boolean;\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerRenderProjection;\n};\n\nconst {\n initial,\n class: className,\n size = "md",\n alpha = true,\n showEyeDropper = true,\n showClear = false,\n side = "bottom",\n align = "start",\n exitMotion = "fade",\n ...rest\n} = Astro.props;\n\nconst inputSize = size === "lg" ? "md" : "sm";\nconst hasSwatches = Astro.slots.has("swatches");\nconst hasSwatchesAttribute = hasSwatches ? "true" : "false";\n---\n\n<PopoverContent\n class={colorPickerContent({ size, class: className })}\n side={side}\n align={align}\n exitMotion={exitMotion}\n {...rest}\n data-slot="color-picker-content"\n>\n <slot>\n <ColorPickerArea initial={initial?.area()} size={size} />\n\n <div class={colorPickerSliderActionRow({ size })} data-slot="color-picker-slider-action-row">\n <ColorPickerSliders initial={initial} alpha={alpha} size={size} class="min-w-0 flex-1" />\n\n {\n showEyeDropper && (\n <ColorPickerEyeDropper\n initial={initial?.eyeDropperTrigger.initial}\n size={size}\n aria-label="Pick a color from the screen"\n >\n <ColorPicker class="size-4" aria-hidden="true" />\n </ColorPickerEyeDropper>\n )\n }\n </div>\n\n <div class={colorPickerValueFormatRow({ size })} data-slot="color-picker-value-format-row">\n <ColorPickerInput initial={initial} size={inputSize} class="min-w-0 flex-1" />\n </div>\n\n <div class="contents" data-has-swatches={hasSwatchesAttribute} data-slot="color-picker-footer">\n {\n (hasSwatches || showClear) && (\n <div\n class={colorPickerSeparator({ size })}\n role="separator"\n aria-hidden="true"\n data-slot="color-picker-separator"\n />\n )\n }\n\n <slot name="swatches" />\n\n {\n showClear && (\n <ColorPickerClear\n initial={initial?.clear.initial}\n size={inputSize}\n aria-label="Clear color"\n >\n Clear\n </ColorPickerClear>\n )\n }\n </div>\n </slot>\n</PopoverContent>\n'
3923
+ content: '---\nimport ColorPicker from "@tabler/icons/outline/color-picker.svg";\nimport type { ComponentProps } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\n\nimport "./styles.css";\nimport { PopoverContent } from "../popover";\nimport ColorPickerArea from "./ColorPickerArea.astro";\nimport ColorPickerClear from "./ColorPickerClear.astro";\nimport ColorPickerEyeDropper from "./ColorPickerEyeDropper.astro";\nimport ColorPickerInput from "./ColorPickerInput.astro";\nimport ColorPickerSliders from "./ColorPickerSliders.astro";\nimport { colorPickerContent, colorPickerSeparator, colorPickerSliderActionRow, colorPickerValueFormatRow } from "./variants";\n\ntype Props = ComponentProps<typeof PopoverContent> & VariantProps<typeof colorPickerContent> & {\n alpha?: boolean;\n showEyeDropper?: boolean;\n showClear?: boolean;\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerRenderProjection;\n};\n\nconst {\n initial,\n class: className,\n size = "md",\n alpha = true,\n showEyeDropper = true,\n showClear = false,\n side = "bottom",\n align = "start",\n exitMotion = "fade",\n ...rest\n} = Astro.props;\n\nconst inputSize = size === "lg" ? "md" : "sm";\nconst hasSwatches = Astro.slots.has("swatches");\nconst hasSwatchesAttribute = hasSwatches ? "true" : "false";\n---\n\n<PopoverContent\n class={colorPickerContent({ size, class: className })}\n side={side}\n align={align}\n collisionStrategy="best-fit"\n exitMotion={exitMotion}\n {...rest}\n data-slot="color-picker-content"\n>\n <slot>\n <ColorPickerArea initial={initial?.area()} size={size} />\n\n <div class={colorPickerSliderActionRow({ size })} data-slot="color-picker-slider-action-row">\n <ColorPickerSliders initial={initial} alpha={alpha} size={size} class="min-w-0 flex-1" />\n\n {\n showEyeDropper && (\n <ColorPickerEyeDropper\n initial={initial?.eyeDropperTrigger.initial}\n size={size}\n aria-label="Pick a color from the screen"\n >\n <ColorPicker class="size-4" aria-hidden="true" />\n </ColorPickerEyeDropper>\n )\n }\n </div>\n\n <div class={colorPickerValueFormatRow({ size })} data-slot="color-picker-value-format-row">\n <ColorPickerInput initial={initial} size={inputSize} class="min-w-0 flex-1" />\n </div>\n\n <div class="contents" data-has-swatches={hasSwatchesAttribute} data-slot="color-picker-footer">\n {\n (hasSwatches || showClear) && (\n <div\n class={colorPickerSeparator({ size })}\n role="separator"\n aria-hidden="true"\n data-slot="color-picker-separator"\n />\n )\n }\n\n <slot name="swatches" />\n\n {\n showClear && (\n <ColorPickerClear\n initial={initial?.clear.initial}\n size={inputSize}\n aria-label="Clear color"\n >\n Clear\n </ColorPickerClear>\n )\n }\n </div>\n </slot>\n</PopoverContent>\n'
3901
3924
  },
3902
3925
  {
3903
3926
  path: "src/components/starwind/color-picker/ColorPickerControl.astro",
@@ -3965,12 +3988,12 @@ export const comboboxValue = tv({
3965
3988
  },
3966
3989
  {
3967
3990
  path: "src/components/starwind/color-picker/variants.ts",
3968
- content: 'import { input as channelInputRecipe } from "../input/variants";\nimport { input as valueInputRecipe } from "../input/variants";\nimport { nativeSelectWrapper as nativeSelectWrapperRecipe } from "../native-select/variants";\nimport { nativeSelect as nativeSelectRecipe } from "../native-select/variants";\nimport { nativeSelectIcon as nativeSelectIconRecipe } from "../native-select/variants";\nimport { tv } from "tailwind-variants";\n\nexport const colorPickerChannelInput = channelInputRecipe;\n\nexport const colorPickerValueInput = valueInputRecipe;\n\nexport const colorPickerNativeFormatSelectWrapper = nativeSelectWrapperRecipe;\n\nexport const colorPickerNativeFormatSelect = nativeSelectRecipe;\n\nexport const colorPickerNativeFormatSelectIcon = nativeSelectIconRecipe;\n\nexport const colorPicker = tv({\n base: "relative flex flex-col gap-3",\n variants: {\n size: {\n sm: "text-sm",\n md: "text-base",\n lg: "text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerLabel = tv({\n base: "font-medium leading-none data-disabled:cursor-not-allowed data-disabled:opacity-50",\n variants: {\n size: {\n sm: "text-xs",\n md: "text-sm",\n lg: "text-base",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerControl = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerTrigger = tv({\n base: "border-input bg-background focus-visible:ring-outline/50 inline-flex items-center rounded-md border shadow-xs outline-none focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50",\n variants: {\n size: {\n sm: "h-9 gap-2 px-2 text-sm",\n md: "h-11 gap-2.5 px-3",\n lg: "h-12 gap-3 px-4 text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerContent = tv({\n base: "flex max-h-[max(10rem,var(--sw-floating-available-height))] w-72 flex-col gap-3 p-3",\n variants: {\n size: {\n sm: "w-64 gap-2 p-2",\n md: "w-72 gap-3 p-3",\n lg: "w-80 gap-4 p-4",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerInput = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerValueInputLayout = tv({\n base: "min-w-0 flex-1 data-invalid:border-error data-invalid:focus-visible:ring-error/40",\n variants: {\n size: {\n sm: "",\n md: "",\n lg: "",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerArea = tv({\n base: "group/color-picker-area border-outline relative w-full touch-none rounded-md border [&>[data-slot=color-picker-area-background]]:inset-0 [&>[data-slot=color-picker-area-background]]:size-full [&>[data-slot=color-picker-area-background]]:rounded-[7px]",\n variants: {\n size: {\n sm: "h-[150px]",\n md: "h-[175px]",\n lg: "h-[200px]",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerAreaThumb = tv({\n base: "group-has-[[data-slot=color-picker-area-input-x]:focus-visible]/color-picker-area:ring-outline/60 pointer-events-none absolute top-[clamp(1px,var(--sw-color-picker-area-y),calc(100%_-_1px))] left-[clamp(1px,var(--sw-color-picker-area-x),calc(100%_-_1px))] z-10 size-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white bg-[var(--sw-color-picker-area-thumb-color)] shadow-md ring-1 ring-black/30 outline-none group-has-[[data-slot=color-picker-area-input-x]:focus-visible]/color-picker-area:ring-3 focus-visible:ring-3 data-disabled:opacity-50 data-dragging:scale-110",\n variants: {\n size: {\n sm: "size-3.5",\n md: "size-4",\n lg: "size-5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSliders = tv({\n base: "flex flex-col gap-3 px-2",\n variants: {\n size: {\n sm: "gap-2",\n md: "gap-3",\n lg: "gap-4",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSliderActionRow = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerValueFormatRow = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSeparator = tv({\n base: "bg-border h-px w-full",\n variants: {\n size: {\n sm: "my-0.5",\n md: "my-1",\n lg: "my-1.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerChannelSlider = tv({\n base: "group/color-picker-channel-slider bg-border relative touch-none rounded-full [&>[data-slot=color-picker-channel-slider-track]]:inset-px [&>[data-slot=color-picker-channel-slider-track]]:size-auto [&>[data-slot=color-picker-transparency-grid]]:inset-px [&>[data-slot=color-picker-transparency-grid]]:size-auto",\n variants: {\n size: {\n sm: "h-2.5 data-[orientation=vertical]:h-40 data-[orientation=vertical]:w-2.5",\n md: "h-3 data-[orientation=vertical]:h-48 data-[orientation=vertical]:w-3",\n lg: "h-4 data-[orientation=vertical]:h-56 data-[orientation=vertical]:w-4",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerChannelSliderThumb = tv({\n base: "group-has-[[data-slot=color-picker-channel-slider-input]:focus-visible]/color-picker-channel-slider:ring-outline/60 pointer-events-none absolute top-1/2 left-[var(--sw-color-picker-channel-position)] z-10 -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-full border-2 border-white shadow-md ring-1 ring-black/30 outline-none group-has-[[data-slot=color-picker-channel-slider-input]:focus-visible]/color-picker-channel-slider:ring-3 group-data-[orientation=vertical]/color-picker-channel-slider:top-[calc(100%-var(--sw-color-picker-channel-position))] group-data-[orientation=vertical]/color-picker-channel-slider:left-1/2 data-disabled:opacity-50 data-dragging:scale-110",\n variants: {\n size: {\n sm: "size-3",\n md: "size-4",\n lg: "size-5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerChannelInputLayout = tv({\n base: "text-center data-invalid:border-error data-invalid:focus-visible:ring-error/40",\n variants: {\n size: {\n sm: "h-9 w-16 text-sm",\n md: "h-11 w-20",\n lg: "h-12 w-24 text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSwatch = tv({\n base: "relative overflow-hidden rounded-md border shadow-xs outline-none focus-visible:ring-3 data-selected:ring-2 data-disabled:opacity-50",\n variants: {\n size: {\n sm: "size-6",\n md: "size-7",\n lg: "size-8",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSwatchGroup = tv({\n base: "flex flex-wrap gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerValueSwatch = tv({\n base: "border-input relative shrink-0 overflow-hidden border",\n variants: {\n size: {\n sm: "size-4 rounded-[4.5px]",\n md: "size-5 rounded-[5.5px]",\n lg: "size-6 rounded-[6.5px]",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerFormatSelectTrigger = tv({\n base: "uppercase",\n variants: {\n size: {\n sm: "min-w-20",\n md: "min-w-24",\n lg: "min-w-24",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerAction = tv({\n base: "border-input bg-background inline-flex items-center justify-center rounded-md border outline-none focus-visible:ring-3 disabled:opacity-50",\n variants: {\n size: {\n sm: "h-9 px-2 text-sm",\n md: "h-11 px-3",\n lg: "h-12 px-4 text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerHiddenInput = tv({\n base: "sr-only",\n variants: {\n size: {\n sm: "",\n md: "",\n lg: "",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n'
3991
+ content: 'import { input as channelInputRecipe } from "../input/variants";\nimport { input as valueInputRecipe } from "../input/variants";\nimport { nativeSelectWrapper as nativeSelectWrapperRecipe } from "../native-select/variants";\nimport { nativeSelect as nativeSelectRecipe } from "../native-select/variants";\nimport { nativeSelectIcon as nativeSelectIconRecipe } from "../native-select/variants";\nimport { tv } from "tailwind-variants";\n\nexport const colorPickerChannelInput = channelInputRecipe;\n\nexport const colorPickerValueInput = valueInputRecipe;\n\nexport const colorPickerNativeFormatSelectWrapper = nativeSelectWrapperRecipe;\n\nexport const colorPickerNativeFormatSelect = nativeSelectRecipe;\n\nexport const colorPickerNativeFormatSelectIcon = nativeSelectIconRecipe;\n\nexport const colorPicker = tv({\n base: "relative flex flex-col gap-3",\n variants: {\n size: {\n sm: "text-sm",\n md: "text-base",\n lg: "text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerLabel = tv({\n base: "font-medium leading-none data-disabled:cursor-not-allowed data-disabled:opacity-50",\n variants: {\n size: {\n sm: "text-xs",\n md: "text-sm",\n lg: "text-base",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerControl = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerTrigger = tv({\n base: "border-input bg-background focus-visible:ring-outline/50 inline-flex items-center rounded-md border shadow-xs outline-none focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50",\n variants: {\n size: {\n sm: "h-9 gap-2 px-2 text-sm",\n md: "h-11 gap-2.5 px-3",\n lg: "h-12 gap-3 px-4 text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerContent = tv({\n base: "flex max-h-[var(--sw-floating-available-height)] w-72 flex-col gap-3 p-3",\n variants: {\n size: {\n sm: "w-64 gap-2 p-2",\n md: "w-72 gap-3 p-3",\n lg: "w-80 gap-4 p-4",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerInput = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerValueInputLayout = tv({\n base: "min-w-0 flex-1 data-invalid:border-error data-invalid:focus-visible:ring-error/40",\n variants: {\n size: {\n sm: "",\n md: "",\n lg: "",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerArea = tv({\n base: "group/color-picker-area border-outline relative min-h-32 w-full shrink-0 touch-none rounded-md border [&>[data-slot=color-picker-area-background]]:inset-0 [&>[data-slot=color-picker-area-background]]:size-full [&>[data-slot=color-picker-area-background]]:rounded-[7px]",\n variants: {\n size: {\n sm: "h-[150px]",\n md: "h-[175px]",\n lg: "h-[200px]",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerAreaThumb = tv({\n base: "group-has-[[data-slot=color-picker-area-input-x]:focus-visible]/color-picker-area:ring-outline/60 pointer-events-none absolute top-[clamp(1px,var(--sw-color-picker-area-y),calc(100%_-_1px))] left-[clamp(1px,var(--sw-color-picker-area-x),calc(100%_-_1px))] z-10 size-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white bg-[var(--sw-color-picker-area-thumb-color)] shadow-md ring-1 ring-black/30 outline-none group-has-[[data-slot=color-picker-area-input-x]:focus-visible]/color-picker-area:ring-3 focus-visible:ring-3 data-disabled:opacity-50 data-dragging:scale-110",\n variants: {\n size: {\n sm: "size-3.5",\n md: "size-4",\n lg: "size-5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSliders = tv({\n base: "flex flex-col gap-3 px-2",\n variants: {\n size: {\n sm: "gap-2",\n md: "gap-3",\n lg: "gap-4",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSliderActionRow = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerValueFormatRow = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSeparator = tv({\n base: "bg-border h-px w-full",\n variants: {\n size: {\n sm: "my-0.5",\n md: "my-1",\n lg: "my-1.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerChannelSlider = tv({\n base: "group/color-picker-channel-slider bg-border relative touch-none rounded-full [&>[data-slot=color-picker-channel-slider-track]]:inset-px [&>[data-slot=color-picker-channel-slider-track]]:size-auto [&>[data-slot=color-picker-transparency-grid]]:inset-px [&>[data-slot=color-picker-transparency-grid]]:size-auto",\n variants: {\n size: {\n sm: "h-2.5 data-[orientation=vertical]:h-40 data-[orientation=vertical]:w-2.5",\n md: "h-3 data-[orientation=vertical]:h-48 data-[orientation=vertical]:w-3",\n lg: "h-4 data-[orientation=vertical]:h-56 data-[orientation=vertical]:w-4",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerChannelSliderThumb = tv({\n base: "group-has-[[data-slot=color-picker-channel-slider-input]:focus-visible]/color-picker-channel-slider:ring-outline/60 pointer-events-none absolute top-1/2 left-[var(--sw-color-picker-channel-position)] z-10 -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-full border-2 border-white shadow-md ring-1 ring-black/30 outline-none group-has-[[data-slot=color-picker-channel-slider-input]:focus-visible]/color-picker-channel-slider:ring-3 group-data-[orientation=vertical]/color-picker-channel-slider:top-[calc(100%-var(--sw-color-picker-channel-position))] group-data-[orientation=vertical]/color-picker-channel-slider:left-1/2 data-disabled:opacity-50 data-dragging:scale-110",\n variants: {\n size: {\n sm: "size-3",\n md: "size-4",\n lg: "size-5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerChannelInputLayout = tv({\n base: "text-center data-invalid:border-error data-invalid:focus-visible:ring-error/40",\n variants: {\n size: {\n sm: "h-9 w-16 text-sm",\n md: "h-11 w-20",\n lg: "h-12 w-24 text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSwatch = tv({\n base: "relative overflow-hidden rounded-md border shadow-xs outline-none focus-visible:ring-3 data-selected:ring-2 data-disabled:opacity-50",\n variants: {\n size: {\n sm: "size-6",\n md: "size-7",\n lg: "size-8",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSwatchGroup = tv({\n base: "flex flex-wrap gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerValueSwatch = tv({\n base: "border-input relative shrink-0 overflow-hidden border",\n variants: {\n size: {\n sm: "size-4 rounded-[4.5px]",\n md: "size-5 rounded-[5.5px]",\n lg: "size-6 rounded-[6.5px]",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerFormatSelectTrigger = tv({\n base: "uppercase",\n variants: {\n size: {\n sm: "min-w-20",\n md: "min-w-24",\n lg: "min-w-24",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerAction = tv({\n base: "border-input bg-background inline-flex items-center justify-center rounded-md border outline-none focus-visible:ring-3 disabled:opacity-50",\n variants: {\n size: {\n sm: "h-9 px-2 text-sm",\n md: "h-11 px-3",\n lg: "h-12 px-4 text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerHiddenInput = tv({\n base: "sr-only",\n variants: {\n size: {\n sm: "",\n md: "",\n lg: "",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n'
3969
3992
  }
3970
3993
  ],
3971
3994
  componentDependencies: ["input", "native-select", "popover", "select"],
3972
3995
  packageRequirements: [
3973
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
3996
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
3974
3997
  { name: "@tabler/icons", range: "^3.37.1" },
3975
3998
  { name: "astro", range: ">=5" },
3976
3999
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -4004,7 +4027,7 @@ export const comboboxValue = tv({
4004
4027
  },
4005
4028
  {
4006
4029
  path: "src/components/starwind/color-picker/ColorPickerContent.tsx",
4007
- content: 'import type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport "./styles.css";\nimport { IconColorPicker as ColorPicker } from "@tabler/icons-react";\nimport { PopoverContent } from "../popover";\nimport ColorPickerArea from "./ColorPickerArea";\nimport ColorPickerClear from "./ColorPickerClear";\nimport ColorPickerEyeDropper from "./ColorPickerEyeDropper";\nimport ColorPickerInput from "./ColorPickerInput";\nimport ColorPickerSliders from "./ColorPickerSliders";\nimport { colorPickerContent, colorPickerSeparator, colorPickerSliderActionRow, colorPickerValueFormatRow } from "./variants";\n\nexport type ColorPickerContentProps = React.ComponentProps<typeof PopoverContent> &\n VariantProps<typeof colorPickerContent> & {\n alpha?: boolean;\n showEyeDropper?: boolean;\n showClear?: boolean;\n swatches?: React.ReactNode;\n };\n\nfunction ColorPickerContent(props: ColorPickerContentProps) {\n const {\n className,\n size = "md",\n alpha = true,\n showEyeDropper = true,\n showClear = false,\n side = "bottom",\n align = "start",\n exitMotion = "fade",\n children,\n swatches,\n ...rest\n } = props;\n\n const inputSize = size === "lg" ? "md" : "sm";\n const hasSwatches = swatches != null;\n const hasSwatchesAttribute = hasSwatches ? "true" : "false";\n\n return (\n <PopoverContent\n className={colorPickerContent({ size, class: className })}\n side={side}\n align={align}\n exitMotion={exitMotion}\n {...rest}\n data-slot="color-picker-content"\n >\n {children ?? (\n <>\n <ColorPickerArea\n size={size}\n />\n\n <div\n className={colorPickerSliderActionRow({ size })}\n data-slot="color-picker-slider-action-row"\n >\n <ColorPickerSliders\n alpha={alpha}\n size={size}\n className="min-w-0 flex-1"\n />\n\n {showEyeDropper && (\n <ColorPickerEyeDropper\n size={size}\n aria-label="Pick a color from the screen"\n >\n <ColorPicker\n className="size-4"\n aria-hidden="true"\n />\n </ColorPickerEyeDropper>\n )}\n </div>\n\n <div\n className={colorPickerValueFormatRow({ size })}\n data-slot="color-picker-value-format-row"\n >\n <ColorPickerInput\n size={inputSize}\n className="min-w-0 flex-1"\n />\n </div>\n\n <div\n className="contents"\n data-has-swatches={hasSwatchesAttribute}\n data-slot="color-picker-footer"\n >\n {(hasSwatches || showClear) && (\n <div\n className={colorPickerSeparator({ size })}\n role="separator"\n aria-hidden="true"\n data-slot="color-picker-separator"\n />\n )}\n\n {swatches}\n\n {showClear && (\n <ColorPickerClear\n size={inputSize}\n aria-label="Clear color"\n >\n Clear\n </ColorPickerClear>\n )}\n </div>\n </>\n )}\n </PopoverContent>\n );\n}\n\nexport default ColorPickerContent;\n'
4030
+ content: 'import type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport "./styles.css";\nimport { IconColorPicker as ColorPicker } from "@tabler/icons-react";\nimport { PopoverContent } from "../popover";\nimport ColorPickerArea from "./ColorPickerArea";\nimport ColorPickerClear from "./ColorPickerClear";\nimport ColorPickerEyeDropper from "./ColorPickerEyeDropper";\nimport ColorPickerInput from "./ColorPickerInput";\nimport ColorPickerSliders from "./ColorPickerSliders";\nimport { colorPickerContent, colorPickerSeparator, colorPickerSliderActionRow, colorPickerValueFormatRow } from "./variants";\n\nexport type ColorPickerContentProps = React.ComponentProps<typeof PopoverContent> &\n VariantProps<typeof colorPickerContent> & {\n alpha?: boolean;\n showEyeDropper?: boolean;\n showClear?: boolean;\n swatches?: React.ReactNode;\n };\n\nfunction ColorPickerContent(props: ColorPickerContentProps) {\n const {\n className,\n size = "md",\n alpha = true,\n showEyeDropper = true,\n showClear = false,\n side = "bottom",\n align = "start",\n exitMotion = "fade",\n children,\n swatches,\n ...rest\n } = props;\n\n const inputSize = size === "lg" ? "md" : "sm";\n const hasSwatches = swatches != null;\n const hasSwatchesAttribute = hasSwatches ? "true" : "false";\n\n return (\n <PopoverContent\n className={colorPickerContent({ size, class: className })}\n side={side}\n align={align}\n collisionStrategy="best-fit"\n exitMotion={exitMotion}\n {...rest}\n data-slot="color-picker-content"\n >\n {children ?? (\n <>\n <ColorPickerArea\n size={size}\n />\n\n <div\n className={colorPickerSliderActionRow({ size })}\n data-slot="color-picker-slider-action-row"\n >\n <ColorPickerSliders\n alpha={alpha}\n size={size}\n className="min-w-0 flex-1"\n />\n\n {showEyeDropper && (\n <ColorPickerEyeDropper\n size={size}\n aria-label="Pick a color from the screen"\n >\n <ColorPicker\n className="size-4"\n aria-hidden="true"\n />\n </ColorPickerEyeDropper>\n )}\n </div>\n\n <div\n className={colorPickerValueFormatRow({ size })}\n data-slot="color-picker-value-format-row"\n >\n <ColorPickerInput\n size={inputSize}\n className="min-w-0 flex-1"\n />\n </div>\n\n <div\n className="contents"\n data-has-swatches={hasSwatchesAttribute}\n data-slot="color-picker-footer"\n >\n {(hasSwatches || showClear) && (\n <div\n className={colorPickerSeparator({ size })}\n role="separator"\n aria-hidden="true"\n data-slot="color-picker-separator"\n />\n )}\n\n {swatches}\n\n {showClear && (\n <ColorPickerClear\n size={inputSize}\n aria-label="Clear color"\n >\n Clear\n </ColorPickerClear>\n )}\n </div>\n </>\n )}\n </PopoverContent>\n );\n}\n\nexport default ColorPickerContent;\n'
4008
4031
  },
4009
4032
  {
4010
4033
  path: "src/components/starwind/color-picker/ColorPickerControl.tsx",
@@ -4072,12 +4095,12 @@ export const comboboxValue = tv({
4072
4095
  },
4073
4096
  {
4074
4097
  path: "src/components/starwind/color-picker/variants.ts",
4075
- content: 'import { tv } from "tailwind-variants";\nimport { input as channelInputRecipe, input as valueInputRecipe } from "../input/variants";\nimport {\n nativeSelectIcon as nativeSelectIconRecipe,\n nativeSelect as nativeSelectRecipe,\n nativeSelectWrapper as nativeSelectWrapperRecipe,\n} from "../native-select/variants";\n\nexport const colorPickerChannelInput = channelInputRecipe;\n\nexport const colorPickerValueInput = valueInputRecipe;\n\nexport const colorPickerNativeFormatSelectWrapper = nativeSelectWrapperRecipe;\n\nexport const colorPickerNativeFormatSelect = nativeSelectRecipe;\n\nexport const colorPickerNativeFormatSelectIcon = nativeSelectIconRecipe;\n\nexport const colorPicker = tv({\n base: "relative flex flex-col gap-3",\n variants: {\n size: {\n sm: "text-sm",\n md: "text-base",\n lg: "text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerLabel = tv({\n base: "font-medium leading-none data-disabled:cursor-not-allowed data-disabled:opacity-50",\n variants: {\n size: {\n sm: "text-xs",\n md: "text-sm",\n lg: "text-base",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerControl = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerTrigger = tv({\n base: "border-input bg-background focus-visible:ring-outline/50 inline-flex items-center rounded-md border shadow-xs outline-none focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50",\n variants: {\n size: {\n sm: "h-9 gap-2 px-2 text-sm",\n md: "h-11 gap-2.5 px-3",\n lg: "h-12 gap-3 px-4 text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerContent = tv({\n base: "flex max-h-[max(10rem,var(--sw-floating-available-height))] w-72 flex-col gap-3 p-3",\n variants: {\n size: {\n sm: "w-64 gap-2 p-2",\n md: "w-72 gap-3 p-3",\n lg: "w-80 gap-4 p-4",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerInput = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerValueInputLayout = tv({\n base: "min-w-0 flex-1 data-invalid:border-error data-invalid:focus-visible:ring-error/40",\n variants: {\n size: {\n sm: "",\n md: "",\n lg: "",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerArea = tv({\n base: "group/color-picker-area border-outline relative w-full touch-none rounded-md border [&>[data-slot=color-picker-area-background]]:inset-0 [&>[data-slot=color-picker-area-background]]:size-full [&>[data-slot=color-picker-area-background]]:rounded-[7px]",\n variants: {\n size: {\n sm: "h-[150px]",\n md: "h-[175px]",\n lg: "h-[200px]",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerAreaThumb = tv({\n base: "group-has-[[data-slot=color-picker-area-input-x]:focus-visible]/color-picker-area:ring-outline/60 pointer-events-none absolute top-[clamp(1px,var(--sw-color-picker-area-y),calc(100%_-_1px))] left-[clamp(1px,var(--sw-color-picker-area-x),calc(100%_-_1px))] z-10 size-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white bg-[var(--sw-color-picker-area-thumb-color)] shadow-md ring-1 ring-black/30 outline-none group-has-[[data-slot=color-picker-area-input-x]:focus-visible]/color-picker-area:ring-3 focus-visible:ring-3 data-disabled:opacity-50 data-dragging:scale-110",\n variants: {\n size: {\n sm: "size-3.5",\n md: "size-4",\n lg: "size-5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSliders = tv({\n base: "flex flex-col gap-3 px-2",\n variants: {\n size: {\n sm: "gap-2",\n md: "gap-3",\n lg: "gap-4",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSliderActionRow = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerValueFormatRow = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSeparator = tv({\n base: "bg-border h-px w-full",\n variants: {\n size: {\n sm: "my-0.5",\n md: "my-1",\n lg: "my-1.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerChannelSlider = tv({\n base: "group/color-picker-channel-slider bg-border relative touch-none rounded-full [&>[data-slot=color-picker-channel-slider-track]]:inset-px [&>[data-slot=color-picker-channel-slider-track]]:size-auto [&>[data-slot=color-picker-transparency-grid]]:inset-px [&>[data-slot=color-picker-transparency-grid]]:size-auto",\n variants: {\n size: {\n sm: "h-2.5 data-[orientation=vertical]:h-40 data-[orientation=vertical]:w-2.5",\n md: "h-3 data-[orientation=vertical]:h-48 data-[orientation=vertical]:w-3",\n lg: "h-4 data-[orientation=vertical]:h-56 data-[orientation=vertical]:w-4",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerChannelSliderThumb = tv({\n base: "group-has-[[data-slot=color-picker-channel-slider-input]:focus-visible]/color-picker-channel-slider:ring-outline/60 pointer-events-none absolute top-1/2 left-[var(--sw-color-picker-channel-position)] z-10 -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-full border-2 border-white shadow-md ring-1 ring-black/30 outline-none group-has-[[data-slot=color-picker-channel-slider-input]:focus-visible]/color-picker-channel-slider:ring-3 group-data-[orientation=vertical]/color-picker-channel-slider:top-[calc(100%-var(--sw-color-picker-channel-position))] group-data-[orientation=vertical]/color-picker-channel-slider:left-1/2 data-disabled:opacity-50 data-dragging:scale-110",\n variants: {\n size: {\n sm: "size-3",\n md: "size-4",\n lg: "size-5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerChannelInputLayout = tv({\n base: "text-center data-invalid:border-error data-invalid:focus-visible:ring-error/40",\n variants: {\n size: {\n sm: "h-9 w-16 text-sm",\n md: "h-11 w-20",\n lg: "h-12 w-24 text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSwatch = tv({\n base: "relative overflow-hidden rounded-md border shadow-xs outline-none focus-visible:ring-3 data-selected:ring-2 data-disabled:opacity-50",\n variants: {\n size: {\n sm: "size-6",\n md: "size-7",\n lg: "size-8",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSwatchGroup = tv({\n base: "flex flex-wrap gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerValueSwatch = tv({\n base: "border-input relative shrink-0 overflow-hidden border",\n variants: {\n size: {\n sm: "size-4 rounded-[4.5px]",\n md: "size-5 rounded-[5.5px]",\n lg: "size-6 rounded-[6.5px]",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerFormatSelectTrigger = tv({\n base: "uppercase",\n variants: {\n size: {\n sm: "min-w-20",\n md: "min-w-24",\n lg: "min-w-24",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerAction = tv({\n base: "border-input bg-background inline-flex items-center justify-center rounded-md border outline-none focus-visible:ring-3 disabled:opacity-50",\n variants: {\n size: {\n sm: "h-9 px-2 text-sm",\n md: "h-11 px-3",\n lg: "h-12 px-4 text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerHiddenInput = tv({\n base: "sr-only",\n variants: {\n size: {\n sm: "",\n md: "",\n lg: "",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n'
4098
+ content: 'import { tv } from "tailwind-variants";\nimport { input as channelInputRecipe, input as valueInputRecipe } from "../input/variants";\nimport {\n nativeSelectIcon as nativeSelectIconRecipe,\n nativeSelect as nativeSelectRecipe,\n nativeSelectWrapper as nativeSelectWrapperRecipe,\n} from "../native-select/variants";\n\nexport const colorPickerChannelInput = channelInputRecipe;\n\nexport const colorPickerValueInput = valueInputRecipe;\n\nexport const colorPickerNativeFormatSelectWrapper = nativeSelectWrapperRecipe;\n\nexport const colorPickerNativeFormatSelect = nativeSelectRecipe;\n\nexport const colorPickerNativeFormatSelectIcon = nativeSelectIconRecipe;\n\nexport const colorPicker = tv({\n base: "relative flex flex-col gap-3",\n variants: {\n size: {\n sm: "text-sm",\n md: "text-base",\n lg: "text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerLabel = tv({\n base: "font-medium leading-none data-disabled:cursor-not-allowed data-disabled:opacity-50",\n variants: {\n size: {\n sm: "text-xs",\n md: "text-sm",\n lg: "text-base",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerControl = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerTrigger = tv({\n base: "border-input bg-background focus-visible:ring-outline/50 inline-flex items-center rounded-md border shadow-xs outline-none focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50",\n variants: {\n size: {\n sm: "h-9 gap-2 px-2 text-sm",\n md: "h-11 gap-2.5 px-3",\n lg: "h-12 gap-3 px-4 text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerContent = tv({\n base: "flex max-h-[var(--sw-floating-available-height)] w-72 flex-col gap-3 p-3",\n variants: {\n size: {\n sm: "w-64 gap-2 p-2",\n md: "w-72 gap-3 p-3",\n lg: "w-80 gap-4 p-4",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerInput = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerValueInputLayout = tv({\n base: "min-w-0 flex-1 data-invalid:border-error data-invalid:focus-visible:ring-error/40",\n variants: {\n size: {\n sm: "",\n md: "",\n lg: "",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerArea = tv({\n base: "group/color-picker-area border-outline relative min-h-32 w-full shrink-0 touch-none rounded-md border [&>[data-slot=color-picker-area-background]]:inset-0 [&>[data-slot=color-picker-area-background]]:size-full [&>[data-slot=color-picker-area-background]]:rounded-[7px]",\n variants: {\n size: {\n sm: "h-[150px]",\n md: "h-[175px]",\n lg: "h-[200px]",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerAreaThumb = tv({\n base: "group-has-[[data-slot=color-picker-area-input-x]:focus-visible]/color-picker-area:ring-outline/60 pointer-events-none absolute top-[clamp(1px,var(--sw-color-picker-area-y),calc(100%_-_1px))] left-[clamp(1px,var(--sw-color-picker-area-x),calc(100%_-_1px))] z-10 size-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white bg-[var(--sw-color-picker-area-thumb-color)] shadow-md ring-1 ring-black/30 outline-none group-has-[[data-slot=color-picker-area-input-x]:focus-visible]/color-picker-area:ring-3 focus-visible:ring-3 data-disabled:opacity-50 data-dragging:scale-110",\n variants: {\n size: {\n sm: "size-3.5",\n md: "size-4",\n lg: "size-5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSliders = tv({\n base: "flex flex-col gap-3 px-2",\n variants: {\n size: {\n sm: "gap-2",\n md: "gap-3",\n lg: "gap-4",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSliderActionRow = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerValueFormatRow = tv({\n base: "flex items-center gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSeparator = tv({\n base: "bg-border h-px w-full",\n variants: {\n size: {\n sm: "my-0.5",\n md: "my-1",\n lg: "my-1.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerChannelSlider = tv({\n base: "group/color-picker-channel-slider bg-border relative touch-none rounded-full [&>[data-slot=color-picker-channel-slider-track]]:inset-px [&>[data-slot=color-picker-channel-slider-track]]:size-auto [&>[data-slot=color-picker-transparency-grid]]:inset-px [&>[data-slot=color-picker-transparency-grid]]:size-auto",\n variants: {\n size: {\n sm: "h-2.5 data-[orientation=vertical]:h-40 data-[orientation=vertical]:w-2.5",\n md: "h-3 data-[orientation=vertical]:h-48 data-[orientation=vertical]:w-3",\n lg: "h-4 data-[orientation=vertical]:h-56 data-[orientation=vertical]:w-4",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerChannelSliderThumb = tv({\n base: "group-has-[[data-slot=color-picker-channel-slider-input]:focus-visible]/color-picker-channel-slider:ring-outline/60 pointer-events-none absolute top-1/2 left-[var(--sw-color-picker-channel-position)] z-10 -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-full border-2 border-white shadow-md ring-1 ring-black/30 outline-none group-has-[[data-slot=color-picker-channel-slider-input]:focus-visible]/color-picker-channel-slider:ring-3 group-data-[orientation=vertical]/color-picker-channel-slider:top-[calc(100%-var(--sw-color-picker-channel-position))] group-data-[orientation=vertical]/color-picker-channel-slider:left-1/2 data-disabled:opacity-50 data-dragging:scale-110",\n variants: {\n size: {\n sm: "size-3",\n md: "size-4",\n lg: "size-5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerChannelInputLayout = tv({\n base: "text-center data-invalid:border-error data-invalid:focus-visible:ring-error/40",\n variants: {\n size: {\n sm: "h-9 w-16 text-sm",\n md: "h-11 w-20",\n lg: "h-12 w-24 text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSwatch = tv({\n base: "relative overflow-hidden rounded-md border shadow-xs outline-none focus-visible:ring-3 data-selected:ring-2 data-disabled:opacity-50",\n variants: {\n size: {\n sm: "size-6",\n md: "size-7",\n lg: "size-8",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerSwatchGroup = tv({\n base: "flex flex-wrap gap-2",\n variants: {\n size: {\n sm: "gap-1.5",\n md: "gap-2",\n lg: "gap-2.5",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerValueSwatch = tv({\n base: "border-input relative shrink-0 overflow-hidden border",\n variants: {\n size: {\n sm: "size-4 rounded-[4.5px]",\n md: "size-5 rounded-[5.5px]",\n lg: "size-6 rounded-[6.5px]",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerFormatSelectTrigger = tv({\n base: "uppercase",\n variants: {\n size: {\n sm: "min-w-20",\n md: "min-w-24",\n lg: "min-w-24",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerAction = tv({\n base: "border-input bg-background inline-flex items-center justify-center rounded-md border outline-none focus-visible:ring-3 disabled:opacity-50",\n variants: {\n size: {\n sm: "h-9 px-2 text-sm",\n md: "h-11 px-3",\n lg: "h-12 px-4 text-lg",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n\nexport const colorPickerHiddenInput = tv({\n base: "sr-only",\n variants: {\n size: {\n sm: "",\n md: "",\n lg: "",\n },\n },\n defaultVariants: {\n size: "md",\n },\n});\n'
4076
4099
  }
4077
4100
  ],
4078
4101
  componentDependencies: ["input", "native-select", "popover", "select"],
4079
4102
  packageRequirements: [
4080
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
4103
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
4081
4104
  { name: "@tabler/icons-react", range: "^3.37.1" },
4082
4105
  { name: "react", range: ">=18" },
4083
4106
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -4108,7 +4131,7 @@ export const comboboxValue = tv({
4108
4131
  ],
4109
4132
  componentDependencies: [],
4110
4133
  packageRequirements: [
4111
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
4134
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
4112
4135
  { name: "astro", range: ">=5" },
4113
4136
  { name: "tailwind-variants", range: "^3.2.2" }
4114
4137
  ]
@@ -4130,7 +4153,7 @@ export const comboboxValue = tv({
4130
4153
  ],
4131
4154
  componentDependencies: [],
4132
4155
  packageRequirements: [
4133
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
4156
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
4134
4157
  { name: "react", range: ">=18" },
4135
4158
  { name: "tailwind-variants", range: "^3.2.2" }
4136
4159
  ]
@@ -4242,7 +4265,7 @@ export const inputGroupTextarea = tv({
4242
4265
  ],
4243
4266
  componentDependencies: ["button", "input", "textarea"],
4244
4267
  packageRequirements: [
4245
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
4268
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
4246
4269
  { name: "astro", range: ">=5" },
4247
4270
  { name: "tailwind-variants", range: "^3.2.2" }
4248
4271
  ]
@@ -4346,7 +4369,7 @@ export const inputGroupTextarea = tv({
4346
4369
  ],
4347
4370
  componentDependencies: ["button", "input", "textarea"],
4348
4371
  packageRequirements: [
4349
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
4372
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
4350
4373
  { name: "react", range: ">=18" },
4351
4374
  { name: "tailwind-variants", range: "^3.2.2" }
4352
4375
  ]
@@ -4388,7 +4411,7 @@ export const inputGroupTextarea = tv({
4388
4411
  ],
4389
4412
  componentDependencies: [],
4390
4413
  packageRequirements: [
4391
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
4414
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
4392
4415
  { name: "@tabler/icons", range: "^3.37.1" },
4393
4416
  { name: "astro", range: ">=5" },
4394
4417
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -4423,7 +4446,7 @@ export const inputGroupTextarea = tv({
4423
4446
  ],
4424
4447
  componentDependencies: [],
4425
4448
  packageRequirements: [
4426
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
4449
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
4427
4450
  { name: "@tabler/icons-react", range: "^3.37.1" },
4428
4451
  { name: "react", range: ">=18" },
4429
4452
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -4566,7 +4589,7 @@ export const itemTitle = tv({
4566
4589
  ],
4567
4590
  componentDependencies: ["separator"],
4568
4591
  packageRequirements: [
4569
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
4592
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
4570
4593
  { name: "astro", range: ">=5" },
4571
4594
  { name: "tailwind-variants", range: "^3.2.2" }
4572
4595
  ]
@@ -4700,7 +4723,7 @@ export const itemTitle = tv({
4700
4723
  ],
4701
4724
  componentDependencies: ["separator"],
4702
4725
  packageRequirements: [
4703
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
4726
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
4704
4727
  { name: "react", range: ">=18" },
4705
4728
  { name: "tailwind-variants", range: "^3.2.2" }
4706
4729
  ]
@@ -4738,7 +4761,7 @@ export const itemTitle = tv({
4738
4761
  ],
4739
4762
  componentDependencies: [],
4740
4763
  packageRequirements: [
4741
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
4764
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
4742
4765
  { name: "@tabler/icons", range: "^3.37.1" },
4743
4766
  { name: "astro", range: ">=5" },
4744
4767
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -4769,7 +4792,7 @@ export const itemTitle = tv({
4769
4792
  ],
4770
4793
  componentDependencies: [],
4771
4794
  packageRequirements: [
4772
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
4795
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
4773
4796
  { name: "@tabler/icons-react", range: "^3.37.1" },
4774
4797
  { name: "react", range: ">=18" },
4775
4798
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -4896,7 +4919,7 @@ export const navigationMenuViewport = tv({
4896
4919
  ],
4897
4920
  componentDependencies: [],
4898
4921
  packageRequirements: [
4899
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
4922
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
4900
4923
  { name: "@tabler/icons", range: "^3.37.1" },
4901
4924
  { name: "astro", range: ">=5" },
4902
4925
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -5015,7 +5038,7 @@ export const navigationMenuViewport = tv({
5015
5038
  ],
5016
5039
  componentDependencies: [],
5017
5040
  packageRequirements: [
5018
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
5041
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
5019
5042
  { name: "@tabler/icons-react", range: "^3.37.1" },
5020
5043
  { name: "react", range: ">=18" },
5021
5044
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -5070,7 +5093,7 @@ export const navigationMenuViewport = tv({
5070
5093
  ],
5071
5094
  componentDependencies: ["button"],
5072
5095
  packageRequirements: [
5073
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
5096
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
5074
5097
  { name: "@tabler/icons", range: "^3.37.1" },
5075
5098
  { name: "astro", range: ">=5" },
5076
5099
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -5117,7 +5140,7 @@ export const navigationMenuViewport = tv({
5117
5140
  ],
5118
5141
  componentDependencies: ["button"],
5119
5142
  packageRequirements: [
5120
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
5143
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
5121
5144
  { name: "@tabler/icons-react", range: "^3.37.1" },
5122
5145
  { name: "react", range: ">=18" },
5123
5146
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -5127,7 +5150,7 @@ export const navigationMenuViewport = tv({
5127
5150
  },
5128
5151
  {
5129
5152
  name: "progress",
5130
- version: "2.0.0",
5153
+ version: "2.0.1",
5131
5154
  type: "component",
5132
5155
  dependencies: [],
5133
5156
  targets: {
@@ -5135,7 +5158,7 @@ export const navigationMenuViewport = tv({
5135
5158
  files: [
5136
5159
  {
5137
5160
  path: "src/components/starwind/progress/Progress.astro",
5138
- content: '---\nimport ProgressPrimitive from "@starwind-ui/astro/progress";\nimport type { HTMLAttributes } from "astro/types";\nimport { progress, progressIndicator, progressTrack } from "./variants";\n\ninterface Props extends Omit<HTMLAttributes<"div">, "value"> {\n label?: string;\n max?: number;\n min?: number;\n value?: number | null;\n variant?: "default" | "primary" | "secondary" | "info" | "success" | "warning" | "error";\n}\n\nconst {\n label,\n value = null,\n max = 100,\n min = 0,\n variant = "default",\n class: className,\n ...rest\n} = Astro.props;\n\nconst ariaLabel = rest["aria-label"] ?? label;\nconst progressValue = value == null || Number.isNaN(Number(value)) ? null : Number(value);\nconst isIndeterminate = progressValue === null;\nconst boundedMin = Number.isFinite(min) ? min : 0;\nconst boundedMax = Number.isFinite(max) ? max : 100;\nconst progressPercent = isIndeterminate ? 0 : boundedMax === boundedMin ? progressValue >= boundedMax ? 100 : 0 : Math.round(Math.min(Math.max(((progressValue - boundedMin) / (boundedMax - boundedMin)) * 100, 0), 100));\nconst indicatorStyle = isIndeterminate ? undefined : { transform: `translateX(-${100 - progressPercent}%)` };\n---\n\n<ProgressPrimitive.Root\n class={progress({ variant: isIndeterminate ? "indeterminate" : undefined, class: className })}\n max={boundedMax}\n min={boundedMin}\n value={progressValue}\n {...rest}\n aria-label={ariaLabel}\n data-slot="progress"\n>\n <ProgressPrimitive.Track class={progressTrack()} data-slot="progress-track">\n <ProgressPrimitive.Indicator\n class={progressIndicator({ variant: isIndeterminate ? "indeterminate" : undefined, color: variant })}\n style={indicatorStyle}\n data-slot="progress-indicator"\n />\n </ProgressPrimitive.Track>\n</ProgressPrimitive.Root>\n'
5161
+ content: '---\nimport ProgressPrimitive from "@starwind-ui/astro/progress";\nimport type { HTMLAttributes } from "astro/types";\nimport { progress, progressIndicator, progressTrack } from "./variants";\n\ninterface Props extends Omit<HTMLAttributes<"div">, "value"> {\n label?: string;\n max?: number;\n min?: number;\n value?: number | null;\n variant?: "default" | "primary" | "secondary" | "info" | "success" | "warning" | "error";\n}\n\nconst {\n label,\n value = null,\n max = 100,\n min = 0,\n variant = "default",\n class: className,\n ...rest\n} = Astro.props;\n\nconst ariaLabel = rest["aria-label"] ?? label;\nconst boundedMin = Number.isFinite(min) ? min : 0;\nconst boundedMax = Number.isFinite(max) ? max : 100;\nconst normalizedMin = Math.min(boundedMin, boundedMax);\nconst normalizedMax = Math.max(boundedMin, boundedMax);\nconst progressValue = value == null || !Number.isFinite(Number(value)) ? null : Math.min(Math.max(Number(value), normalizedMin), normalizedMax);\nconst isIndeterminate = progressValue === null;\nconst progressPercent = isIndeterminate ? 0 : normalizedMax === normalizedMin ? progressValue >= normalizedMax ? 100 : 0 : Math.round(Math.min(Math.max(((progressValue - normalizedMin) / (normalizedMax - normalizedMin)) * 100, 0), 100));\nconst indicatorStyle = isIndeterminate ? undefined : { transform: `translateX(-${100 - progressPercent}%)` };\n---\n\n<ProgressPrimitive.Root\n class={progress({ variant: isIndeterminate ? "indeterminate" : undefined, class: className })}\n max={normalizedMax}\n min={normalizedMin}\n value={progressValue}\n {...rest}\n aria-label={ariaLabel}\n data-slot="progress"\n>\n <ProgressPrimitive.Track class={progressTrack()} data-slot="progress-track">\n <ProgressPrimitive.Indicator\n class={progressIndicator({ variant: isIndeterminate ? "indeterminate" : undefined, color: variant })}\n style={indicatorStyle}\n data-slot="progress-indicator"\n />\n </ProgressPrimitive.Track>\n</ProgressPrimitive.Root>\n'
5139
5162
  },
5140
5163
  {
5141
5164
  path: "src/components/starwind/progress/index.ts",
@@ -5143,12 +5166,12 @@ export const navigationMenuViewport = tv({
5143
5166
  },
5144
5167
  {
5145
5168
  path: "src/components/starwind/progress/variants.ts",
5146
- content: 'import { tv } from "tailwind-variants";\n\nexport const progress = tv({\n base: "bg-muted h-2 w-full overflow-hidden rounded-full",\n variants: {\n variant: {\n indeterminate: "relative",\n },\n },\n});\n\nexport const progressTrack = tv({\n base: "h-full w-full",\n});\n\nexport const progressIndicator = tv({\n base: "h-full w-full flex-1 transition-transform",\n variants: {\n variant: {\n indeterminate: "absolute inset-y-0 start-0 w-3/4",\n },\n color: {\n primary: "bg-primary",\n secondary: "bg-secondary",\n default: "bg-foreground",\n info: "bg-info",\n success: "bg-success",\n warning: "bg-warning",\n error: "bg-error",\n },\n },\n defaultVariants: {\n color: "primary",\n },\n});\n'
5169
+ content: 'import { tv } from "tailwind-variants";\n\nexport const progress = tv({\n base: "bg-muted h-2 w-full overflow-hidden rounded-full",\n variants: {\n variant: {\n indeterminate: "relative",\n },\n },\n});\n\nexport const progressTrack = tv({\n base: "h-full w-full",\n});\n\nexport const progressIndicator = tv({\n base: [\n "h-full w-full flex-1 transition-transform",\n "data-instant:transition-none motion-reduce:transition-none",\n ],\n variants: {\n variant: {\n indeterminate: "absolute inset-y-0 start-0 w-3/4",\n },\n color: {\n primary: "bg-primary",\n secondary: "bg-secondary",\n default: "bg-foreground",\n info: "bg-info",\n success: "bg-success",\n warning: "bg-warning",\n error: "bg-error",\n },\n },\n defaultVariants: {\n color: "primary",\n },\n});\n'
5147
5170
  }
5148
5171
  ],
5149
5172
  componentDependencies: [],
5150
5173
  packageRequirements: [
5151
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
5174
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
5152
5175
  { name: "astro", range: ">=5" },
5153
5176
  { name: "tailwind-variants", range: "^3.2.2" }
5154
5177
  ]
@@ -5157,7 +5180,7 @@ export const navigationMenuViewport = tv({
5157
5180
  files: [
5158
5181
  {
5159
5182
  path: "src/components/starwind/progress/Progress.tsx",
5160
- content: 'import ProgressPrimitive from "@starwind-ui/react/progress";\nimport type * as React from "react";\nimport { progress, progressIndicator, progressTrack } from "./variants";\n\nexport type ProgressProps = Omit<React.ComponentPropsWithoutRef<"div">, "value"> & {\n label?: string;\n max?: number;\n min?: number;\n ref?: React.Ref<HTMLDivElement>;\n value?: number | null;\n variant?: "default" | "primary" | "secondary" | "info" | "success" | "warning" | "error";\n};\n\nfunction Progress(props: ProgressProps) {\n const {\n label,\n value = null,\n max = 100,\n min = 0,\n variant = "default",\n ref,\n className,\n ...rest\n } = props;\n\n const ariaLabel = rest["aria-label"] ?? label;\n const progressValue = value == null || Number.isNaN(Number(value)) ? null : Number(value);\n const isIndeterminate = progressValue === null;\n const boundedMin = Number.isFinite(min) ? min : 0;\n const boundedMax = Number.isFinite(max) ? max : 100;\n const progressPercent = isIndeterminate ? 0 : boundedMax === boundedMin ? progressValue >= boundedMax ? 100 : 0 : Math.round(Math.min(Math.max(((progressValue - boundedMin) / (boundedMax - boundedMin)) * 100, 0), 100));\n const indicatorStyle = isIndeterminate ? undefined : { transform: `translateX(-${100 - progressPercent}%)` };\n\n return (\n <ProgressPrimitive.Root\n className={progress({ variant: isIndeterminate ? "indeterminate" : undefined, class: className })}\n max={boundedMax}\n min={boundedMin}\n ref={ref}\n value={progressValue}\n {...rest}\n aria-label={ariaLabel}\n data-slot="progress"\n >\n <ProgressPrimitive.Track\n className={progressTrack()}\n data-slot="progress-track"\n >\n <ProgressPrimitive.Indicator\n className={progressIndicator({ variant: isIndeterminate ? "indeterminate" : undefined, color: variant })}\n style={indicatorStyle}\n data-slot="progress-indicator"\n />\n </ProgressPrimitive.Track>\n </ProgressPrimitive.Root>\n );\n}\n\nexport default Progress;\n'
5183
+ content: 'import ProgressPrimitive from "@starwind-ui/react/progress";\nimport type * as React from "react";\nimport { progress, progressIndicator, progressTrack } from "./variants";\n\nexport type ProgressProps = Omit<React.ComponentPropsWithoutRef<"div">, "value"> & {\n label?: string;\n max?: number;\n min?: number;\n ref?: React.Ref<HTMLDivElement>;\n value?: number | null;\n variant?: "default" | "primary" | "secondary" | "info" | "success" | "warning" | "error";\n};\n\nfunction Progress(props: ProgressProps) {\n const {\n label,\n value = null,\n max = 100,\n min = 0,\n variant = "default",\n ref,\n className,\n ...rest\n } = props;\n\n const ariaLabel = rest["aria-label"] ?? label;\n const boundedMin = Number.isFinite(min) ? min : 0;\n const boundedMax = Number.isFinite(max) ? max : 100;\n const normalizedMin = Math.min(boundedMin, boundedMax);\n const normalizedMax = Math.max(boundedMin, boundedMax);\n const progressValue = value == null || !Number.isFinite(Number(value)) ? null : Math.min(Math.max(Number(value), normalizedMin), normalizedMax);\n const isIndeterminate = progressValue === null;\n const progressPercent = isIndeterminate ? 0 : normalizedMax === normalizedMin ? progressValue >= normalizedMax ? 100 : 0 : Math.round(Math.min(Math.max(((progressValue - normalizedMin) / (normalizedMax - normalizedMin)) * 100, 0), 100));\n const indicatorStyle = isIndeterminate ? undefined : { transform: `translateX(-${100 - progressPercent}%)` };\n\n return (\n <ProgressPrimitive.Root\n className={progress({ variant: isIndeterminate ? "indeterminate" : undefined, class: className })}\n max={normalizedMax}\n min={normalizedMin}\n ref={ref}\n value={progressValue}\n {...rest}\n aria-label={ariaLabel}\n data-slot="progress"\n >\n <ProgressPrimitive.Track\n className={progressTrack()}\n data-slot="progress-track"\n >\n <ProgressPrimitive.Indicator\n className={progressIndicator({ variant: isIndeterminate ? "indeterminate" : undefined, color: variant })}\n style={indicatorStyle}\n data-slot="progress-indicator"\n />\n </ProgressPrimitive.Track>\n </ProgressPrimitive.Root>\n );\n}\n\nexport default Progress;\n'
5161
5184
  },
5162
5185
  {
5163
5186
  path: "src/components/starwind/progress/index.ts",
@@ -5165,12 +5188,12 @@ export const navigationMenuViewport = tv({
5165
5188
  },
5166
5189
  {
5167
5190
  path: "src/components/starwind/progress/variants.ts",
5168
- content: 'import { tv } from "tailwind-variants";\n\nexport const progress = tv({\n base: "bg-muted h-2 w-full overflow-hidden rounded-full",\n variants: {\n variant: {\n indeterminate: "relative",\n },\n },\n});\n\nexport const progressTrack = tv({\n base: "h-full w-full",\n});\n\nexport const progressIndicator = tv({\n base: "h-full w-full flex-1 transition-transform",\n variants: {\n variant: {\n indeterminate: "absolute inset-y-0 start-0 w-3/4",\n },\n color: {\n primary: "bg-primary",\n secondary: "bg-secondary",\n default: "bg-foreground",\n info: "bg-info",\n success: "bg-success",\n warning: "bg-warning",\n error: "bg-error",\n },\n },\n defaultVariants: {\n color: "primary",\n },\n});\n'
5191
+ content: 'import { tv } from "tailwind-variants";\n\nexport const progress = tv({\n base: "bg-muted h-2 w-full overflow-hidden rounded-full",\n variants: {\n variant: {\n indeterminate: "relative",\n },\n },\n});\n\nexport const progressTrack = tv({\n base: "h-full w-full",\n});\n\nexport const progressIndicator = tv({\n base: [\n "h-full w-full flex-1 transition-transform",\n "data-instant:transition-none motion-reduce:transition-none",\n ],\n variants: {\n variant: {\n indeterminate: "absolute inset-y-0 start-0 w-3/4",\n },\n color: {\n primary: "bg-primary",\n secondary: "bg-secondary",\n default: "bg-foreground",\n info: "bg-info",\n success: "bg-success",\n warning: "bg-warning",\n error: "bg-error",\n },\n },\n defaultVariants: {\n color: "primary",\n },\n});\n'
5169
5192
  }
5170
5193
  ],
5171
5194
  componentDependencies: [],
5172
5195
  packageRequirements: [
5173
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
5196
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
5174
5197
  { name: "react", range: ">=18" },
5175
5198
  { name: "tailwind-variants", range: "^3.2.2" }
5176
5199
  ]
@@ -5804,7 +5827,7 @@ export const navigationMenuViewport = tv({
5804
5827
  ],
5805
5828
  componentDependencies: [],
5806
5829
  packageRequirements: [
5807
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
5830
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
5808
5831
  { name: "astro", range: ">=5" },
5809
5832
  { name: "tailwind-variants", range: "^3.2.2" }
5810
5833
  ]
@@ -6430,7 +6453,7 @@ export const navigationMenuViewport = tv({
6430
6453
  ],
6431
6454
  componentDependencies: [],
6432
6455
  packageRequirements: [
6433
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
6456
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
6434
6457
  { name: "react", range: ">=18" },
6435
6458
  { name: "tailwind-variants", range: "^3.2.2" }
6436
6459
  ]
@@ -6464,7 +6487,7 @@ export const navigationMenuViewport = tv({
6464
6487
  ],
6465
6488
  componentDependencies: [],
6466
6489
  packageRequirements: [
6467
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
6490
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
6468
6491
  { name: "@tabler/icons", range: "^3.37.1" },
6469
6492
  { name: "astro", range: ">=5" },
6470
6493
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -6491,7 +6514,7 @@ export const navigationMenuViewport = tv({
6491
6514
  ],
6492
6515
  componentDependencies: [],
6493
6516
  packageRequirements: [
6494
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
6517
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
6495
6518
  { name: "@tabler/icons-react", range: "^3.37.1" },
6496
6519
  { name: "react", range: ">=18" },
6497
6520
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -6546,7 +6569,7 @@ export const navigationMenuViewport = tv({
6546
6569
  ],
6547
6570
  componentDependencies: [],
6548
6571
  packageRequirements: [
6549
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
6572
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
6550
6573
  { name: "astro", range: ">=5" },
6551
6574
  { name: "tailwind-variants", range: "^3.2.2" }
6552
6575
  ]
@@ -6592,7 +6615,7 @@ export const navigationMenuViewport = tv({
6592
6615
  ],
6593
6616
  componentDependencies: [],
6594
6617
  packageRequirements: [
6595
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
6618
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
6596
6619
  { name: "react", range: ">=18" },
6597
6620
  { name: "tailwind-variants", range: "^3.2.2" }
6598
6621
  ]
@@ -6666,7 +6689,7 @@ export const navigationMenuViewport = tv({
6666
6689
  ],
6667
6690
  componentDependencies: [],
6668
6691
  packageRequirements: [
6669
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
6692
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
6670
6693
  { name: "@tabler/icons", range: "^3.37.1" },
6671
6694
  { name: "astro", range: ">=5" },
6672
6695
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -6733,7 +6756,7 @@ export const navigationMenuViewport = tv({
6733
6756
  ],
6734
6757
  componentDependencies: [],
6735
6758
  packageRequirements: [
6736
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
6759
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
6737
6760
  { name: "@tabler/icons-react", range: "^3.37.1" },
6738
6761
  { name: "react", range: ">=18" },
6739
6762
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -6764,7 +6787,7 @@ export const navigationMenuViewport = tv({
6764
6787
  ],
6765
6788
  componentDependencies: [],
6766
6789
  packageRequirements: [
6767
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
6790
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
6768
6791
  { name: "astro", range: ">=5" },
6769
6792
  { name: "tailwind-variants", range: "^3.2.2" }
6770
6793
  ]
@@ -6786,7 +6809,7 @@ export const navigationMenuViewport = tv({
6786
6809
  ],
6787
6810
  componentDependencies: [],
6788
6811
  packageRequirements: [
6789
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
6812
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
6790
6813
  { name: "react", range: ">=18" },
6791
6814
  { name: "tailwind-variants", range: "^3.2.2" }
6792
6815
  ]
@@ -6816,7 +6839,7 @@ export const navigationMenuViewport = tv({
6816
6839
  ],
6817
6840
  componentDependencies: [],
6818
6841
  packageRequirements: [
6819
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
6842
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
6820
6843
  { name: "astro", range: ">=5" },
6821
6844
  { name: "tailwind-variants", range: "^3.2.2" }
6822
6845
  ]
@@ -6838,7 +6861,7 @@ export const navigationMenuViewport = tv({
6838
6861
  ],
6839
6862
  componentDependencies: [],
6840
6863
  packageRequirements: [
6841
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
6864
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
6842
6865
  { name: "react", range: ">=18" },
6843
6866
  { name: "tailwind-variants", range: "^3.2.2" }
6844
6867
  ]
@@ -6904,7 +6927,7 @@ export const tabsTrigger = tv({
6904
6927
  ],
6905
6928
  componentDependencies: [],
6906
6929
  packageRequirements: [
6907
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
6930
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
6908
6931
  { name: "astro", range: ">=5" },
6909
6932
  { name: "tailwind-variants", range: "^3.2.2" }
6910
6933
  ]
@@ -6962,7 +6985,7 @@ export const tabsTrigger = tv({
6962
6985
  ],
6963
6986
  componentDependencies: [],
6964
6987
  packageRequirements: [
6965
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
6988
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
6966
6989
  { name: "react", range: ">=18" },
6967
6990
  { name: "tailwind-variants", range: "^3.2.2" }
6968
6991
  ]
@@ -7020,7 +7043,7 @@ export const tabsTrigger = tv({
7020
7043
  ],
7021
7044
  componentDependencies: [],
7022
7045
  packageRequirements: [
7023
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
7046
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
7024
7047
  { name: "astro", range: ">=5" },
7025
7048
  { name: "tailwind-variants", range: "^3.2.2" }
7026
7049
  ]
@@ -7070,7 +7093,7 @@ export const tabsTrigger = tv({
7070
7093
  ],
7071
7094
  componentDependencies: [],
7072
7095
  packageRequirements: [
7073
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
7096
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
7074
7097
  { name: "react", range: ">=18" },
7075
7098
  { name: "tailwind-variants", range: "^3.2.2" }
7076
7099
  ]
@@ -7132,7 +7155,7 @@ export const tabsTrigger = tv({
7132
7155
  ],
7133
7156
  componentDependencies: [],
7134
7157
  packageRequirements: [
7135
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
7158
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
7136
7159
  { name: "@tabler/icons", range: "^3.37.1" },
7137
7160
  { name: "astro", range: ">=5" },
7138
7161
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -7187,7 +7210,7 @@ export const tabsTrigger = tv({
7187
7210
  ],
7188
7211
  componentDependencies: [],
7189
7212
  packageRequirements: [
7190
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
7213
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
7191
7214
  { name: "@tabler/icons-react", range: "^3.37.1" },
7192
7215
  { name: "react", range: ">=18" },
7193
7216
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -7226,7 +7249,7 @@ export const tabsTrigger = tv({
7226
7249
  ],
7227
7250
  componentDependencies: [],
7228
7251
  packageRequirements: [
7229
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
7252
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
7230
7253
  { name: "astro", range: ">=5" },
7231
7254
  { name: "tailwind-variants", range: "^3.2.2" }
7232
7255
  ]
@@ -7256,7 +7279,7 @@ export const tabsTrigger = tv({
7256
7279
  ],
7257
7280
  componentDependencies: [],
7258
7281
  packageRequirements: [
7259
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
7282
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
7260
7283
  { name: "react", range: ">=18" },
7261
7284
  { name: "tailwind-variants", range: "^3.2.2" }
7262
7285
  ]
@@ -7294,7 +7317,7 @@ export const tabsTrigger = tv({
7294
7317
  ],
7295
7318
  componentDependencies: [],
7296
7319
  packageRequirements: [
7297
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
7320
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
7298
7321
  { name: "@tabler/icons", range: "^3.37.1" },
7299
7322
  { name: "astro", range: ">=5" },
7300
7323
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -7325,7 +7348,7 @@ export const tabsTrigger = tv({
7325
7348
  ],
7326
7349
  componentDependencies: [],
7327
7350
  packageRequirements: [
7328
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
7351
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
7329
7352
  { name: "@tabler/icons-react", range: "^3.37.1" },
7330
7353
  { name: "react", range: ">=18" },
7331
7354
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -7385,7 +7408,7 @@ export const themeToggle = tv({
7385
7408
  ],
7386
7409
  componentDependencies: [],
7387
7410
  packageRequirements: [
7388
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
7411
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
7389
7412
  { name: "@tabler/icons", range: "^3.37.1" },
7390
7413
  { name: "astro", range: ">=5" },
7391
7414
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -7437,7 +7460,7 @@ export const themeToggle = tv({
7437
7460
  ],
7438
7461
  componentDependencies: [],
7439
7462
  packageRequirements: [
7440
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
7463
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
7441
7464
  { name: "@tabler/icons-react", range: "^3.37.1" },
7442
7465
  { name: "react", range: ">=18" },
7443
7466
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -7496,7 +7519,7 @@ export const toggle = tv({
7496
7519
  ],
7497
7520
  componentDependencies: [],
7498
7521
  packageRequirements: [
7499
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
7522
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
7500
7523
  { name: "astro", range: ">=5" },
7501
7524
  { name: "tailwind-variants", range: "^3.2.2" }
7502
7525
  ]
@@ -7546,7 +7569,7 @@ export const toggle = tv({
7546
7569
  ],
7547
7570
  componentDependencies: [],
7548
7571
  packageRequirements: [
7549
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
7572
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
7550
7573
  { name: "react", range: ">=18" },
7551
7574
  { name: "tailwind-variants", range: "^3.2.2" }
7552
7575
  ]
@@ -7623,7 +7646,7 @@ export const toggleGroupItem = tv({
7623
7646
  ],
7624
7647
  componentDependencies: [],
7625
7648
  packageRequirements: [
7626
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
7649
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
7627
7650
  { name: "astro", range: ">=5" },
7628
7651
  { name: "tailwind-variants", range: "^3.2.2" }
7629
7652
  ]
@@ -7692,7 +7715,7 @@ export const toggleGroupItem = tv({
7692
7715
  ],
7693
7716
  componentDependencies: [],
7694
7717
  packageRequirements: [
7695
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
7718
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
7696
7719
  { name: "react", range: ">=18" },
7697
7720
  { name: "tailwind-variants", range: "^3.2.2" }
7698
7721
  ]
@@ -7722,7 +7745,7 @@ export const toggleGroupItem = tv({
7722
7745
  ],
7723
7746
  componentDependencies: [],
7724
7747
  packageRequirements: [
7725
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
7748
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
7726
7749
  { name: "astro", range: ">=5" },
7727
7750
  { name: "tailwind-variants", range: "^3.2.2" }
7728
7751
  ]
@@ -7744,7 +7767,7 @@ export const toggleGroupItem = tv({
7744
7767
  ],
7745
7768
  componentDependencies: [],
7746
7769
  packageRequirements: [
7747
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
7770
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
7748
7771
  { name: "react", range: ">=18" },
7749
7772
  { name: "tailwind-variants", range: "^3.2.2" }
7750
7773
  ]
@@ -7846,7 +7869,7 @@ export const buttonGroupText = tv({
7846
7869
  ],
7847
7870
  componentDependencies: ["separator"],
7848
7871
  packageRequirements: [
7849
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
7872
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
7850
7873
  { name: "astro", range: ">=5" },
7851
7874
  { name: "tailwind-variants", range: "^3.2.2" }
7852
7875
  ]
@@ -7940,7 +7963,7 @@ export const buttonGroupText = tv({
7940
7963
  ],
7941
7964
  componentDependencies: ["separator"],
7942
7965
  packageRequirements: [
7943
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
7966
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
7944
7967
  { name: "react", range: ">=18" },
7945
7968
  { name: "tailwind-variants", range: "^3.2.2" }
7946
7969
  ]
@@ -7986,7 +8009,7 @@ export const buttonGroupText = tv({
7986
8009
  ],
7987
8010
  componentDependencies: ["button"],
7988
8011
  packageRequirements: [
7989
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
8012
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
7990
8013
  { name: "@tabler/icons", range: "^3.37.1" },
7991
8014
  { name: "astro", range: ">=5" },
7992
8015
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8025,7 +8048,7 @@ export const buttonGroupText = tv({
8025
8048
  ],
8026
8049
  componentDependencies: ["button"],
8027
8050
  packageRequirements: [
8028
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
8051
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8029
8052
  { name: "@tabler/icons-react", range: "^3.37.1" },
8030
8053
  { name: "react", range: ">=18" },
8031
8054
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8093,7 +8116,7 @@ export const button = tv({
8093
8116
  ],
8094
8117
  componentDependencies: [],
8095
8118
  packageRequirements: [
8096
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
8119
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
8097
8120
  { name: "astro", range: ">=5" },
8098
8121
  { name: "tailwind-variants", range: "^3.2.2" }
8099
8122
  ]
@@ -8152,7 +8175,7 @@ export const button = tv({
8152
8175
  ],
8153
8176
  componentDependencies: [],
8154
8177
  packageRequirements: [
8155
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
8178
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8156
8179
  { name: "react", range: ">=18" },
8157
8180
  { name: "tailwind-variants", range: "^3.2.2" }
8158
8181
  ]
@@ -8190,7 +8213,7 @@ export const button = tv({
8190
8213
  ],
8191
8214
  componentDependencies: [],
8192
8215
  packageRequirements: [
8193
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
8216
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
8194
8217
  { name: "astro", range: ">=5" },
8195
8218
  { name: "tailwind-variants", range: "^3.2.2" }
8196
8219
  ]
@@ -8220,7 +8243,7 @@ export const button = tv({
8220
8243
  ],
8221
8244
  componentDependencies: [],
8222
8245
  packageRequirements: [
8223
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
8246
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8224
8247
  { name: "react", range: ">=18" },
8225
8248
  { name: "tailwind-variants", range: "^3.2.2" }
8226
8249
  ]
@@ -8229,7 +8252,7 @@ export const button = tv({
8229
8252
  },
8230
8253
  {
8231
8254
  name: "accordion",
8232
- version: "2.0.1",
8255
+ version: "2.0.2",
8233
8256
  type: "component",
8234
8257
  dependencies: [],
8235
8258
  targets: {
@@ -8257,12 +8280,12 @@ export const button = tv({
8257
8280
  },
8258
8281
  {
8259
8282
  path: "src/components/starwind/accordion/variants.ts",
8260
- content: 'import { tv } from "tailwind-variants";\n\nexport const accordion = tv({\n base: "",\n});\n\nexport const accordionContent = tv({\n base: [\n "transform-gpu overflow-hidden",\n "data-[state=closed]:animate-accordion-up data-[state=closed]:h-0",\n "data-[state=open]:animate-accordion-down",\n ],\n});\n\nexport const accordionItem = tv({\n base: "border-b last:border-b-0",\n});\n\nexport const accordionTrigger = tv({\n base: [\n "flex w-full items-center justify-between gap-4 rounded-md py-4",\n "hover:text-muted-foreground text-left font-medium transition-all",\n "[&[data-state=open]>svg]:rotate-180",\n "focus-visible:border-outline focus-visible:ring-outline/50 outline-none focus-visible:ring-3",\n "disabled:pointer-events-none disabled:opacity-50",\n ],\n});\n'
8283
+ content: 'import { tv } from "tailwind-variants";\n\nexport const accordion = tv({\n base: "",\n});\n\nexport const accordionContent = tv({\n base: [\n "transform-gpu overflow-hidden",\n "data-[state=closed]:animate-accordion-up data-[state=closed]:h-0",\n "data-[state=open]:animate-accordion-down",\n ],\n});\n\nexport const accordionItem = tv({\n base: "not-last:border-b",\n});\n\nexport const accordionTrigger = tv({\n base: [\n "flex w-full items-center justify-between gap-4 rounded-md py-4",\n "hover:text-muted-foreground text-left font-medium transition-all",\n "[&[data-state=open]>svg]:rotate-180",\n "focus-visible:border-outline focus-visible:ring-outline/50 outline-none focus-visible:ring-3",\n "disabled:pointer-events-none disabled:opacity-50",\n ],\n});\n'
8261
8284
  }
8262
8285
  ],
8263
8286
  componentDependencies: [],
8264
8287
  packageRequirements: [
8265
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
8288
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
8266
8289
  { name: "@tabler/icons", range: "^3.37.1" },
8267
8290
  { name: "astro", range: ">=5" },
8268
8291
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8292,12 +8315,12 @@ export const button = tv({
8292
8315
  },
8293
8316
  {
8294
8317
  path: "src/components/starwind/accordion/variants.ts",
8295
- content: 'import { tv } from "tailwind-variants";\n\nexport const accordion = tv({\n base: "",\n});\n\nexport const accordionContent = tv({\n base: [\n "transform-gpu overflow-hidden",\n "data-[state=closed]:animate-accordion-up data-[state=closed]:h-0",\n "data-[state=open]:animate-accordion-down",\n ],\n});\n\nexport const accordionItem = tv({\n base: "border-b last:border-b-0",\n});\n\nexport const accordionTrigger = tv({\n base: [\n "flex w-full items-center justify-between gap-4 rounded-md py-4",\n "hover:text-muted-foreground text-left font-medium transition-all",\n "[&[data-state=open]>svg]:rotate-180",\n "focus-visible:border-outline focus-visible:ring-outline/50 outline-none focus-visible:ring-3",\n "disabled:pointer-events-none disabled:opacity-50",\n ],\n});\n'
8318
+ content: 'import { tv } from "tailwind-variants";\n\nexport const accordion = tv({\n base: "",\n});\n\nexport const accordionContent = tv({\n base: [\n "transform-gpu overflow-hidden",\n "data-[state=closed]:animate-accordion-up data-[state=closed]:h-0",\n "data-[state=open]:animate-accordion-down",\n ],\n});\n\nexport const accordionItem = tv({\n base: "not-last:border-b",\n});\n\nexport const accordionTrigger = tv({\n base: [\n "flex w-full items-center justify-between gap-4 rounded-md py-4",\n "hover:text-muted-foreground text-left font-medium transition-all",\n "[&[data-state=open]>svg]:rotate-180",\n "focus-visible:border-outline focus-visible:ring-outline/50 outline-none focus-visible:ring-3",\n "disabled:pointer-events-none disabled:opacity-50",\n ],\n});\n'
8296
8319
  }
8297
8320
  ],
8298
8321
  componentDependencies: [],
8299
8322
  packageRequirements: [
8300
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
8323
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8301
8324
  { name: "@tabler/icons-react", range: "^3.37.1" },
8302
8325
  { name: "react", range: ">=18" },
8303
8326
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8307,7 +8330,7 @@ export const button = tv({
8307
8330
  },
8308
8331
  {
8309
8332
  name: "dialog",
8310
- version: "2.0.0",
8333
+ version: "2.0.1",
8311
8334
  type: "component",
8312
8335
  dependencies: [],
8313
8336
  targets: {
@@ -8355,12 +8378,12 @@ export const button = tv({
8355
8378
  },
8356
8379
  {
8357
8380
  path: "src/components/starwind/dialog/variants.ts",
8358
- content: 'import { tv } from "tailwind-variants";\n\nexport const dialogBackdrop = tv({\n base: [\n "fixed inset-0 top-0 left-0 z-50 h-screen w-screen bg-black/80 duration-200",\n "data-[state=open]:animate-in fade-in",\n "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",\n ],\n});\n\nexport const dialogContent = tv({\n base: [\n "fixed top-16 left-[50%] z-50 translate-x-[-50%] sm:top-[50%] sm:translate-y-[-50%]",\n "bg-background w-full max-w-md rounded-lg border p-8 shadow-lg",\n "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards transition-[translate,scale,opacity] duration-200",\n "fade-in zoom-in-95 slide-in-from-bottom-2",\n "fade-out zoom-out-95 slide-out-to-bottom-2",\n "data-[state=open]:data-nested-dialog-open:-translate-y-[calc(50%-var(--nested-offset)*var(--nested-dialogs,1))]",\n "data-[state=open]:data-nested-dialog-open:scale-[calc(1-var(--nested-scale)*var(--nested-dialogs,1))]",\n "max-sm:data-[state=open]:data-nested-dialog-open:translate-y-[calc(var(--nested-offset)*var(--nested-dialogs,1))]",\n ],\n});\n\nexport const dialogCloseButton = tv({\n base: [\n "text-muted-foreground",\n "absolute top-5.5 right-5.5 rounded-sm [&>svg]:opacity-70 hover:[&>svg]:opacity-100",\n "focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3",\n ],\n});\n\nexport const dialogDescription = tv({\n base: "text-muted-foreground",\n});\n\nexport const dialogFooter = tv({\n base: "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",\n});\n\nexport const dialogHeader = tv({\n base: "flex flex-col space-y-2 text-center sm:text-left",\n});\n\nexport const dialogTitle = tv({\n base: "font-heading text-xl leading-none font-semibold tracking-tight",\n});\n'
8381
+ content: 'import { tv } from "tailwind-variants";\n\nexport const dialogBackdrop = tv({\n base: [\n "fixed inset-0 top-0 left-0 z-50 h-screen w-screen bg-black/80 duration-200",\n "data-starting-style:!animate-none data-starting-style:opacity-0",\n "data-[state=open]:animate-in fade-in",\n "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",\n ],\n});\n\nexport const dialogContent = tv({\n base: [\n "fixed top-16 left-[50%] z-50 translate-x-[-50%] sm:top-[50%] sm:translate-y-[-50%]",\n "bg-background w-full max-w-md rounded-lg border p-8 shadow-lg",\n "data-starting-style:!animate-none data-starting-style:opacity-0",\n "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards transition-[translate,scale,opacity] duration-200",\n "fade-in zoom-in-95 slide-in-from-bottom-2",\n "fade-out zoom-out-95 slide-out-to-bottom-2",\n "data-[state=open]:data-nested-dialog-open:-translate-y-[calc(50%-var(--nested-offset)*var(--nested-dialogs,1))]",\n "data-[state=open]:data-nested-dialog-open:scale-[calc(1-var(--nested-scale)*var(--nested-dialogs,1))]",\n "max-sm:data-[state=open]:data-nested-dialog-open:translate-y-[calc(var(--nested-offset)*var(--nested-dialogs,1))]",\n ],\n});\n\nexport const dialogCloseButton = tv({\n base: [\n "text-muted-foreground",\n "absolute top-5.5 right-5.5 rounded-sm [&>svg]:opacity-70 hover:[&>svg]:opacity-100",\n "focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3",\n ],\n});\n\nexport const dialogDescription = tv({\n base: "text-muted-foreground",\n});\n\nexport const dialogFooter = tv({\n base: "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",\n});\n\nexport const dialogHeader = tv({\n base: "flex flex-col space-y-2 text-center sm:text-left",\n});\n\nexport const dialogTitle = tv({\n base: "font-heading text-xl leading-none font-semibold tracking-tight",\n});\n'
8359
8382
  }
8360
8383
  ],
8361
8384
  componentDependencies: ["button"],
8362
8385
  packageRequirements: [
8363
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
8386
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
8364
8387
  { name: "@tabler/icons", range: "^3.37.1" },
8365
8388
  { name: "astro", range: ">=5" },
8366
8389
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8410,12 +8433,12 @@ export const button = tv({
8410
8433
  },
8411
8434
  {
8412
8435
  path: "src/components/starwind/dialog/variants.ts",
8413
- content: 'import { tv } from "tailwind-variants";\n\nexport const dialogBackdrop = tv({\n base: [\n "fixed inset-0 top-0 left-0 z-50 h-screen w-screen bg-black/80 duration-200",\n "data-[state=open]:animate-in fade-in",\n "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",\n ],\n});\n\nexport const dialogContent = tv({\n base: [\n "fixed top-16 left-[50%] z-50 translate-x-[-50%] sm:top-[50%] sm:translate-y-[-50%]",\n "bg-background w-full max-w-md rounded-lg border p-8 shadow-lg",\n "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards transition-[translate,scale,opacity] duration-200",\n "fade-in zoom-in-95 slide-in-from-bottom-2",\n "fade-out zoom-out-95 slide-out-to-bottom-2",\n "data-[state=open]:data-nested-dialog-open:-translate-y-[calc(50%-var(--nested-offset)*var(--nested-dialogs,1))]",\n "data-[state=open]:data-nested-dialog-open:scale-[calc(1-var(--nested-scale)*var(--nested-dialogs,1))]",\n "max-sm:data-[state=open]:data-nested-dialog-open:translate-y-[calc(var(--nested-offset)*var(--nested-dialogs,1))]",\n ],\n});\n\nexport const dialogCloseButton = tv({\n base: [\n "text-muted-foreground",\n "absolute top-5.5 right-5.5 rounded-sm [&>svg]:opacity-70 hover:[&>svg]:opacity-100",\n "focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3",\n ],\n});\n\nexport const dialogDescription = tv({\n base: "text-muted-foreground",\n});\n\nexport const dialogFooter = tv({\n base: "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",\n});\n\nexport const dialogHeader = tv({\n base: "flex flex-col space-y-2 text-center sm:text-left",\n});\n\nexport const dialogTitle = tv({\n base: "font-heading text-xl leading-none font-semibold tracking-tight",\n});\n'
8436
+ content: 'import { tv } from "tailwind-variants";\n\nexport const dialogBackdrop = tv({\n base: [\n "fixed inset-0 top-0 left-0 z-50 h-screen w-screen bg-black/80 duration-200",\n "data-starting-style:!animate-none data-starting-style:opacity-0",\n "data-[state=open]:animate-in fade-in",\n "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",\n ],\n});\n\nexport const dialogContent = tv({\n base: [\n "fixed top-16 left-[50%] z-50 translate-x-[-50%] sm:top-[50%] sm:translate-y-[-50%]",\n "bg-background w-full max-w-md rounded-lg border p-8 shadow-lg",\n "data-starting-style:!animate-none data-starting-style:opacity-0",\n "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards transition-[translate,scale,opacity] duration-200",\n "fade-in zoom-in-95 slide-in-from-bottom-2",\n "fade-out zoom-out-95 slide-out-to-bottom-2",\n "data-[state=open]:data-nested-dialog-open:-translate-y-[calc(50%-var(--nested-offset)*var(--nested-dialogs,1))]",\n "data-[state=open]:data-nested-dialog-open:scale-[calc(1-var(--nested-scale)*var(--nested-dialogs,1))]",\n "max-sm:data-[state=open]:data-nested-dialog-open:translate-y-[calc(var(--nested-offset)*var(--nested-dialogs,1))]",\n ],\n});\n\nexport const dialogCloseButton = tv({\n base: [\n "text-muted-foreground",\n "absolute top-5.5 right-5.5 rounded-sm [&>svg]:opacity-70 hover:[&>svg]:opacity-100",\n "focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3",\n ],\n});\n\nexport const dialogDescription = tv({\n base: "text-muted-foreground",\n});\n\nexport const dialogFooter = tv({\n base: "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",\n});\n\nexport const dialogHeader = tv({\n base: "flex flex-col space-y-2 text-center sm:text-left",\n});\n\nexport const dialogTitle = tv({\n base: "font-heading text-xl leading-none font-semibold tracking-tight",\n});\n'
8414
8437
  }
8415
8438
  ],
8416
8439
  componentDependencies: ["button"],
8417
8440
  packageRequirements: [
8418
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
8441
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8419
8442
  { name: "@tabler/icons-react", range: "^3.37.1" },
8420
8443
  { name: "react", range: ">=18" },
8421
8444
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8425,7 +8448,7 @@ export const button = tv({
8425
8448
  },
8426
8449
  {
8427
8450
  name: "dropdown",
8428
- version: "3.0.0",
8451
+ version: "3.1.0",
8429
8452
  type: "component",
8430
8453
  dependencies: [],
8431
8454
  targets: {
@@ -8459,6 +8482,10 @@ export const button = tv({
8459
8482
  path: "src/components/starwind/dropdown/DropdownLabel.astro",
8460
8483
  content: '---\nimport MenuPrimitive from "@starwind-ui/astro/menu";\nimport type { HTMLAttributes } from "astro/types";\nimport { dropdownLabel } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & {\n inset?: boolean;\n};\n\nconst { class: className, inset = false, ...rest } = Astro.props;\n---\n\n<MenuPrimitive.Label\n class={dropdownLabel({ inset, class: className })}\n {...rest}\n data-slot="dropdown-label"\n>\n <slot />\n</MenuPrimitive.Label>\n'
8461
8484
  },
8485
+ {
8486
+ path: "src/components/starwind/dropdown/DropdownLinkItem.astro",
8487
+ content: '---\nimport MenuPrimitive from "@starwind-ui/astro/menu";\nimport type { HTMLAttributes } from "astro/types";\nimport { dropdownItem } from "./variants";\n\ntype Props = HTMLAttributes<"a"> & {\n closeOnClick?: boolean;\n inset?: boolean;\n disabled?: boolean;\n};\n\nconst {\n class: className,\n closeOnClick = false,\n inset = false,\n disabled = false,\n ...rest\n} = Astro.props;\n---\n\n<MenuPrimitive.LinkItem\n class={dropdownItem({ inset, disabled, class: className })}\n closeOnClick={closeOnClick}\n disabled={disabled}\n {...rest}\n data-slot="dropdown-link-item"\n>\n <slot />\n</MenuPrimitive.LinkItem>\n'
8488
+ },
8462
8489
  {
8463
8490
  path: "src/components/starwind/dropdown/DropdownRadioGroup.astro",
8464
8491
  content: '---\nimport MenuPrimitive from "@starwind-ui/astro/menu";\nimport type { HTMLAttributes } from "astro/types";\nimport { dropdownRadioGroup } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & {\n value?: string;\n defaultValue?: string;\n};\n\nconst { class: className, value, defaultValue, ...rest } = Astro.props;\n---\n\n<MenuPrimitive.RadioGroup\n class={dropdownRadioGroup({ class: className })}\n value={value}\n defaultValue={defaultValue}\n {...rest}\n data-slot="dropdown-radio-group"\n>\n <slot />\n</MenuPrimitive.RadioGroup>\n'
@@ -8497,7 +8524,7 @@ export const button = tv({
8497
8524
  },
8498
8525
  {
8499
8526
  path: "src/components/starwind/dropdown/index.ts",
8500
- content: 'import Dropdown from "./Dropdown.astro";\nimport DropdownCheckboxItem from "./DropdownCheckboxItem.astro";\nimport DropdownCheckboxItemIndicator from "./DropdownCheckboxItemIndicator.astro";\nimport DropdownContent from "./DropdownContent.astro";\nimport DropdownGroup from "./DropdownGroup.astro";\nimport DropdownItem from "./DropdownItem.astro";\nimport DropdownLabel from "./DropdownLabel.astro";\nimport DropdownRadioGroup from "./DropdownRadioGroup.astro";\nimport DropdownRadioItem from "./DropdownRadioItem.astro";\nimport DropdownRadioItemIndicator from "./DropdownRadioItemIndicator.astro";\nimport DropdownSeparator from "./DropdownSeparator.astro";\nimport DropdownShortcut from "./DropdownShortcut.astro";\nimport DropdownSub from "./DropdownSub.astro";\nimport DropdownSubContent from "./DropdownSubContent.astro";\nimport DropdownSubTrigger from "./DropdownSubTrigger.astro";\nimport DropdownTrigger from "./DropdownTrigger.astro";\nimport {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n} from "./variants";\n\nconst DropdownVariants = {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n};\n\nexport {\n Dropdown,\n DropdownCheckboxItem,\n DropdownCheckboxItemIndicator,\n DropdownContent,\n DropdownGroup,\n DropdownItem,\n DropdownLabel,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownRadioItemIndicator,\n DropdownSeparator,\n DropdownShortcut,\n DropdownSub,\n DropdownSubContent,\n DropdownSubTrigger,\n DropdownTrigger,\n DropdownVariants,\n};\n\nexport default {\n Root: Dropdown,\n Trigger: DropdownTrigger,\n Content: DropdownContent,\n CheckboxItem: DropdownCheckboxItem,\n CheckboxItemIndicator: DropdownCheckboxItemIndicator,\n RadioGroup: DropdownRadioGroup,\n RadioItem: DropdownRadioItem,\n RadioItemIndicator: DropdownRadioItemIndicator,\n Item: DropdownItem,\n Group: DropdownGroup,\n Label: DropdownLabel,\n Separator: DropdownSeparator,\n Shortcut: DropdownShortcut,\n Sub: DropdownSub,\n SubTrigger: DropdownSubTrigger,\n SubContent: DropdownSubContent,\n};\n'
8527
+ content: 'import Dropdown from "./Dropdown.astro";\nimport DropdownCheckboxItem from "./DropdownCheckboxItem.astro";\nimport DropdownCheckboxItemIndicator from "./DropdownCheckboxItemIndicator.astro";\nimport DropdownContent from "./DropdownContent.astro";\nimport DropdownGroup from "./DropdownGroup.astro";\nimport DropdownItem from "./DropdownItem.astro";\nimport DropdownLabel from "./DropdownLabel.astro";\nimport DropdownLinkItem from "./DropdownLinkItem.astro";\nimport DropdownRadioGroup from "./DropdownRadioGroup.astro";\nimport DropdownRadioItem from "./DropdownRadioItem.astro";\nimport DropdownRadioItemIndicator from "./DropdownRadioItemIndicator.astro";\nimport DropdownSeparator from "./DropdownSeparator.astro";\nimport DropdownShortcut from "./DropdownShortcut.astro";\nimport DropdownSub from "./DropdownSub.astro";\nimport DropdownSubContent from "./DropdownSubContent.astro";\nimport DropdownSubTrigger from "./DropdownSubTrigger.astro";\nimport DropdownTrigger from "./DropdownTrigger.astro";\nimport {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n} from "./variants";\n\nconst DropdownVariants = {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n};\n\nexport {\n Dropdown,\n DropdownCheckboxItem,\n DropdownCheckboxItemIndicator,\n DropdownContent,\n DropdownGroup,\n DropdownItem,\n DropdownLabel,\n DropdownLinkItem,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownRadioItemIndicator,\n DropdownSeparator,\n DropdownShortcut,\n DropdownSub,\n DropdownSubContent,\n DropdownSubTrigger,\n DropdownTrigger,\n DropdownVariants,\n};\n\nexport default {\n Root: Dropdown,\n Trigger: DropdownTrigger,\n Content: DropdownContent,\n CheckboxItem: DropdownCheckboxItem,\n CheckboxItemIndicator: DropdownCheckboxItemIndicator,\n RadioGroup: DropdownRadioGroup,\n RadioItem: DropdownRadioItem,\n RadioItemIndicator: DropdownRadioItemIndicator,\n Item: DropdownItem,\n LinkItem: DropdownLinkItem,\n Group: DropdownGroup,\n Label: DropdownLabel,\n Separator: DropdownSeparator,\n Shortcut: DropdownShortcut,\n Sub: DropdownSub,\n SubTrigger: DropdownSubTrigger,\n SubContent: DropdownSubContent,\n};\n'
8501
8528
  },
8502
8529
  {
8503
8530
  path: "src/components/starwind/dropdown/variants.ts",
@@ -8506,7 +8533,7 @@ export const button = tv({
8506
8533
  ],
8507
8534
  componentDependencies: [],
8508
8535
  packageRequirements: [
8509
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
8536
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
8510
8537
  { name: "@tabler/icons", range: "^3.37.1" },
8511
8538
  { name: "astro", range: ">=5" },
8512
8539
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8542,6 +8569,10 @@ export const button = tv({
8542
8569
  path: "src/components/starwind/dropdown/DropdownLabel.tsx",
8543
8570
  content: 'import MenuPrimitive from "@starwind-ui/react/menu";\nimport type * as React from "react";\nimport { dropdownLabel } from "./variants";\n\nexport type DropdownLabelProps = React.ComponentPropsWithoutRef<"div"> & {\n inset?: boolean;\n};\n\nfunction DropdownLabel(props: DropdownLabelProps) {\n const { className, inset = false, children, ...rest } = props;\n\n return (\n <MenuPrimitive.Label\n className={dropdownLabel({ inset, class: className })}\n {...rest}\n data-slot="dropdown-label"\n >\n {children}\n </MenuPrimitive.Label>\n );\n}\n\nexport default DropdownLabel;\n'
8544
8571
  },
8572
+ {
8573
+ path: "src/components/starwind/dropdown/DropdownLinkItem.tsx",
8574
+ content: 'import MenuPrimitive from "@starwind-ui/react/menu";\nimport type * as React from "react";\nimport { dropdownItem } from "./variants";\n\nexport type DropdownLinkItemProps = React.ComponentPropsWithoutRef<"a"> & {\n closeOnClick?: boolean;\n inset?: boolean;\n disabled?: boolean;\n};\n\nfunction DropdownLinkItem(props: DropdownLinkItemProps) {\n const {\n className,\n closeOnClick = false,\n inset = false,\n disabled = false,\n children,\n ...rest\n } = props;\n\n return (\n <MenuPrimitive.LinkItem\n className={dropdownItem({ inset, disabled, class: className })}\n closeOnClick={closeOnClick}\n disabled={disabled}\n {...rest}\n data-slot="dropdown-link-item"\n >\n {children}\n </MenuPrimitive.LinkItem>\n );\n}\n\nexport default DropdownLinkItem;\n'
8575
+ },
8545
8576
  {
8546
8577
  path: "src/components/starwind/dropdown/DropdownRadioGroup.tsx",
8547
8578
  content: 'import MenuPrimitive from "@starwind-ui/react/menu";\nimport type * as React from "react";\nimport { dropdownRadioGroup } from "./variants";\n\nexport type DropdownRadioGroupProps = React.ComponentPropsWithoutRef<"div"> & {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string, details: import("@starwind-ui/react/menu").MenuValueChangeDetails) => void;\n};\n\nfunction DropdownRadioGroup(props: DropdownRadioGroupProps) {\n const { className, value, defaultValue, onValueChange, children, ...rest } = props;\n\n return (\n <MenuPrimitive.RadioGroup\n className={dropdownRadioGroup({ class: className })}\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange}\n {...rest}\n data-slot="dropdown-radio-group"\n >\n {children}\n </MenuPrimitive.RadioGroup>\n );\n}\n\nexport default DropdownRadioGroup;\n'
@@ -8580,7 +8611,7 @@ export const button = tv({
8580
8611
  },
8581
8612
  {
8582
8613
  path: "src/components/starwind/dropdown/index.ts",
8583
- content: 'import Dropdown from "./Dropdown";\nimport DropdownCheckboxItem from "./DropdownCheckboxItem";\nimport DropdownCheckboxItemIndicator from "./DropdownCheckboxItemIndicator";\nimport DropdownContent from "./DropdownContent";\nimport DropdownGroup from "./DropdownGroup";\nimport DropdownItem from "./DropdownItem";\nimport DropdownLabel from "./DropdownLabel";\nimport DropdownRadioGroup from "./DropdownRadioGroup";\nimport DropdownRadioItem from "./DropdownRadioItem";\nimport DropdownRadioItemIndicator from "./DropdownRadioItemIndicator";\nimport DropdownSeparator from "./DropdownSeparator";\nimport DropdownShortcut from "./DropdownShortcut";\nimport DropdownSub from "./DropdownSub";\nimport DropdownSubContent from "./DropdownSubContent";\nimport DropdownSubTrigger from "./DropdownSubTrigger";\nimport DropdownTrigger from "./DropdownTrigger";\nimport {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n} from "./variants";\n\nconst DropdownVariants = {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n};\n\nexport {\n Dropdown,\n DropdownCheckboxItem,\n DropdownCheckboxItemIndicator,\n DropdownContent,\n DropdownGroup,\n DropdownItem,\n DropdownLabel,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownRadioItemIndicator,\n DropdownSeparator,\n DropdownShortcut,\n DropdownSub,\n DropdownSubContent,\n DropdownSubTrigger,\n DropdownTrigger,\n DropdownVariants,\n};\n\nexport default {\n Root: Dropdown,\n Trigger: DropdownTrigger,\n Content: DropdownContent,\n CheckboxItem: DropdownCheckboxItem,\n CheckboxItemIndicator: DropdownCheckboxItemIndicator,\n RadioGroup: DropdownRadioGroup,\n RadioItem: DropdownRadioItem,\n RadioItemIndicator: DropdownRadioItemIndicator,\n Item: DropdownItem,\n Group: DropdownGroup,\n Label: DropdownLabel,\n Separator: DropdownSeparator,\n Shortcut: DropdownShortcut,\n Sub: DropdownSub,\n SubTrigger: DropdownSubTrigger,\n SubContent: DropdownSubContent,\n};\n'
8614
+ content: 'import Dropdown from "./Dropdown";\nimport DropdownCheckboxItem from "./DropdownCheckboxItem";\nimport DropdownCheckboxItemIndicator from "./DropdownCheckboxItemIndicator";\nimport DropdownContent from "./DropdownContent";\nimport DropdownGroup from "./DropdownGroup";\nimport DropdownItem from "./DropdownItem";\nimport DropdownLabel from "./DropdownLabel";\nimport DropdownLinkItem from "./DropdownLinkItem";\nimport DropdownRadioGroup from "./DropdownRadioGroup";\nimport DropdownRadioItem from "./DropdownRadioItem";\nimport DropdownRadioItemIndicator from "./DropdownRadioItemIndicator";\nimport DropdownSeparator from "./DropdownSeparator";\nimport DropdownShortcut from "./DropdownShortcut";\nimport DropdownSub from "./DropdownSub";\nimport DropdownSubContent from "./DropdownSubContent";\nimport DropdownSubTrigger from "./DropdownSubTrigger";\nimport DropdownTrigger from "./DropdownTrigger";\nimport {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n} from "./variants";\n\nconst DropdownVariants = {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n};\n\nexport {\n Dropdown,\n DropdownCheckboxItem,\n DropdownCheckboxItemIndicator,\n DropdownContent,\n DropdownGroup,\n DropdownItem,\n DropdownLabel,\n DropdownLinkItem,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownRadioItemIndicator,\n DropdownSeparator,\n DropdownShortcut,\n DropdownSub,\n DropdownSubContent,\n DropdownSubTrigger,\n DropdownTrigger,\n DropdownVariants,\n};\n\nexport default {\n Root: Dropdown,\n Trigger: DropdownTrigger,\n Content: DropdownContent,\n CheckboxItem: DropdownCheckboxItem,\n CheckboxItemIndicator: DropdownCheckboxItemIndicator,\n RadioGroup: DropdownRadioGroup,\n RadioItem: DropdownRadioItem,\n RadioItemIndicator: DropdownRadioItemIndicator,\n Item: DropdownItem,\n LinkItem: DropdownLinkItem,\n Group: DropdownGroup,\n Label: DropdownLabel,\n Separator: DropdownSeparator,\n Shortcut: DropdownShortcut,\n Sub: DropdownSub,\n SubTrigger: DropdownSubTrigger,\n SubContent: DropdownSubContent,\n};\n'
8584
8615
  },
8585
8616
  {
8586
8617
  path: "src/components/starwind/dropdown/variants.ts",
@@ -8589,7 +8620,7 @@ export const button = tv({
8589
8620
  ],
8590
8621
  componentDependencies: [],
8591
8622
  packageRequirements: [
8592
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
8623
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8593
8624
  { name: "@tabler/icons-react", range: "^3.37.1" },
8594
8625
  { name: "react", range: ">=18" },
8595
8626
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8632,7 +8663,7 @@ export const button = tv({
8632
8663
  ],
8633
8664
  componentDependencies: [],
8634
8665
  packageRequirements: [
8635
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
8666
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
8636
8667
  { name: "@tabler/icons", range: "^3.37.1" },
8637
8668
  { name: "astro", range: ">=5" },
8638
8669
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8667,7 +8698,7 @@ export const button = tv({
8667
8698
  ],
8668
8699
  componentDependencies: [],
8669
8700
  packageRequirements: [
8670
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
8701
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8671
8702
  { name: "@tabler/icons-react", range: "^3.37.1" },
8672
8703
  { name: "react", range: ">=18" },
8673
8704
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8758,7 +8789,7 @@ export const button = tv({
8758
8789
  ],
8759
8790
  componentDependencies: [],
8760
8791
  packageRequirements: [
8761
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
8792
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
8762
8793
  { name: "@tabler/icons", range: "^3.37.1" },
8763
8794
  { name: "astro", range: ">=5" },
8764
8795
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8841,7 +8872,7 @@ export const button = tv({
8841
8872
  ],
8842
8873
  componentDependencies: [],
8843
8874
  packageRequirements: [
8844
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
8875
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8845
8876
  { name: "@tabler/icons-react", range: "^3.37.1" },
8846
8877
  { name: "react", range: ">=18" },
8847
8878
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8851,7 +8882,7 @@ export const button = tv({
8851
8882
  },
8852
8883
  {
8853
8884
  name: "sheet",
8854
- version: "2.0.0",
8885
+ version: "2.0.1",
8855
8886
  type: "component",
8856
8887
  dependencies: [],
8857
8888
  targets: {
@@ -8895,12 +8926,12 @@ export const button = tv({
8895
8926
  },
8896
8927
  {
8897
8928
  path: "src/components/starwind/sheet/variants.ts",
8898
- content: 'import { tv } from "tailwind-variants";\n\nexport const sheetBackdrop = tv({\n base: [\n "fixed inset-0 top-0 left-0 z-50 hidden h-screen w-screen bg-black/80",\n "data-[state=open]:animate-in fade-in",\n "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",\n "data-[state=closed]:duration-300 data-[state=open]:duration-500",\n ],\n});\n\nexport const sheetContent = tv({\n base: [\n "bg-background fixed z-50 flex-col gap-4 shadow-lg transition ease-in-out open:flex",\n "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards",\n "data-[state=closed]:duration-300 data-[state=open]:duration-500",\n ],\n variants: {\n side: {\n right: [\n "slide-out-to-right slide-in-from-right",\n "inset-y-0 right-0 left-auto h-full max-h-[100dvh] w-3/4 border-l sm:max-w-sm",\n ],\n left: [\n "slide-out-to-left slide-in-from-left",\n "inset-y-0 right-auto left-0 h-full max-h-[100dvh] w-3/4 border-r sm:max-w-sm",\n ],\n top: [\n "slide-out-to-top slide-in-from-top",\n "inset-x-0 top-0 bottom-auto h-auto w-full max-w-screen border-b",\n ],\n bottom: [\n "slide-out-to-bottom slide-in-from-bottom",\n "inset-x-0 top-auto bottom-0 h-auto w-full max-w-screen border-t",\n ],\n },\n },\n defaultVariants: {\n side: "right",\n },\n});\n\nexport const sheetCloseButton = tv({\n base: [\n "absolute top-4 right-4 rounded-xs [&>svg]:opacity-70 hover:[&>svg]:opacity-100",\n "focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3",\n ],\n});\n\nexport const sheetDescription = tv({\n base: [\n "text-muted-foreground text-sm",\n ],\n});\n\nexport const sheetFooter = tv({\n base: [\n "mt-auto flex flex-col gap-2 p-4",\n ],\n});\n\nexport const sheetHeader = tv({\n base: [\n "flex flex-col gap-1.5 p-4",\n ],\n});\n\nexport const sheetTitle = tv({\n base: [\n "text-foreground font-heading font-semibold",\n ],\n});\n'
8929
+ content: 'import { tv } from "tailwind-variants";\n\nexport const sheetBackdrop = tv({\n base: [\n "fixed inset-0 top-0 left-0 z-50 hidden h-screen w-screen bg-black/80",\n "data-starting-style:!animate-none data-starting-style:opacity-0",\n "data-[state=open]:animate-in fade-in",\n "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",\n "data-[state=closed]:duration-300 data-[state=open]:duration-500",\n ],\n});\n\nexport const sheetContent = tv({\n base: [\n "bg-background fixed z-50 flex-col gap-4 shadow-lg transition ease-in-out open:flex",\n "data-starting-style:!animate-none data-starting-style:opacity-0",\n "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards",\n "data-[state=closed]:duration-300 data-[state=open]:duration-500",\n ],\n variants: {\n side: {\n right: [\n "slide-out-to-right slide-in-from-right",\n "inset-y-0 right-0 left-auto h-full max-h-[100dvh] w-3/4 border-l sm:max-w-sm",\n ],\n left: [\n "slide-out-to-left slide-in-from-left",\n "inset-y-0 right-auto left-0 h-full max-h-[100dvh] w-3/4 border-r sm:max-w-sm",\n ],\n top: [\n "slide-out-to-top slide-in-from-top",\n "inset-x-0 top-0 bottom-auto h-auto w-full max-w-screen border-b",\n ],\n bottom: [\n "slide-out-to-bottom slide-in-from-bottom",\n "inset-x-0 top-auto bottom-0 h-auto w-full max-w-screen border-t",\n ],\n },\n },\n defaultVariants: {\n side: "right",\n },\n});\n\nexport const sheetCloseButton = tv({\n base: [\n "absolute top-4 right-4 rounded-xs [&>svg]:opacity-70 hover:[&>svg]:opacity-100",\n "focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3",\n ],\n});\n\nexport const sheetDescription = tv({\n base: [\n "text-muted-foreground text-sm",\n ],\n});\n\nexport const sheetFooter = tv({\n base: [\n "mt-auto flex flex-col gap-2 p-4",\n ],\n});\n\nexport const sheetHeader = tv({\n base: [\n "flex flex-col gap-1.5 p-4",\n ],\n});\n\nexport const sheetTitle = tv({\n base: [\n "text-foreground font-heading font-semibold",\n ],\n});\n'
8899
8930
  }
8900
8931
  ],
8901
8932
  componentDependencies: ["button"],
8902
8933
  packageRequirements: [
8903
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
8934
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
8904
8935
  { name: "@tabler/icons", range: "^3.37.1" },
8905
8936
  { name: "astro", range: ">=5" },
8906
8937
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8946,12 +8977,12 @@ export const button = tv({
8946
8977
  },
8947
8978
  {
8948
8979
  path: "src/components/starwind/sheet/variants.ts",
8949
- content: 'import { tv } from "tailwind-variants";\n\nexport const sheetBackdrop = tv({\n base: [\n "fixed inset-0 top-0 left-0 z-50 hidden h-screen w-screen bg-black/80",\n "data-[state=open]:animate-in fade-in",\n "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",\n "data-[state=closed]:duration-300 data-[state=open]:duration-500",\n ],\n});\n\nexport const sheetContent = tv({\n base: [\n "bg-background fixed z-50 flex-col gap-4 shadow-lg transition ease-in-out open:flex",\n "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards",\n "data-[state=closed]:duration-300 data-[state=open]:duration-500",\n ],\n variants: {\n side: {\n right: [\n "slide-out-to-right slide-in-from-right",\n "inset-y-0 right-0 left-auto h-full max-h-[100dvh] w-3/4 border-l sm:max-w-sm",\n ],\n left: [\n "slide-out-to-left slide-in-from-left",\n "inset-y-0 right-auto left-0 h-full max-h-[100dvh] w-3/4 border-r sm:max-w-sm",\n ],\n top: [\n "slide-out-to-top slide-in-from-top",\n "inset-x-0 top-0 bottom-auto h-auto w-full max-w-screen border-b",\n ],\n bottom: [\n "slide-out-to-bottom slide-in-from-bottom",\n "inset-x-0 top-auto bottom-0 h-auto w-full max-w-screen border-t",\n ],\n },\n },\n defaultVariants: {\n side: "right",\n },\n});\n\nexport const sheetCloseButton = tv({\n base: [\n "absolute top-4 right-4 rounded-xs [&>svg]:opacity-70 hover:[&>svg]:opacity-100",\n "focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3",\n ],\n});\n\nexport const sheetDescription = tv({\n base: [\n "text-muted-foreground text-sm",\n ],\n});\n\nexport const sheetFooter = tv({\n base: [\n "mt-auto flex flex-col gap-2 p-4",\n ],\n});\n\nexport const sheetHeader = tv({\n base: [\n "flex flex-col gap-1.5 p-4",\n ],\n});\n\nexport const sheetTitle = tv({\n base: [\n "text-foreground font-heading font-semibold",\n ],\n});\n'
8980
+ content: 'import { tv } from "tailwind-variants";\n\nexport const sheetBackdrop = tv({\n base: [\n "fixed inset-0 top-0 left-0 z-50 hidden h-screen w-screen bg-black/80",\n "data-starting-style:!animate-none data-starting-style:opacity-0",\n "data-[state=open]:animate-in fade-in",\n "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",\n "data-[state=closed]:duration-300 data-[state=open]:duration-500",\n ],\n});\n\nexport const sheetContent = tv({\n base: [\n "bg-background fixed z-50 flex-col gap-4 shadow-lg transition ease-in-out open:flex",\n "data-starting-style:!animate-none data-starting-style:opacity-0",\n "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards",\n "data-[state=closed]:duration-300 data-[state=open]:duration-500",\n ],\n variants: {\n side: {\n right: [\n "slide-out-to-right slide-in-from-right",\n "inset-y-0 right-0 left-auto h-full max-h-[100dvh] w-3/4 border-l sm:max-w-sm",\n ],\n left: [\n "slide-out-to-left slide-in-from-left",\n "inset-y-0 right-auto left-0 h-full max-h-[100dvh] w-3/4 border-r sm:max-w-sm",\n ],\n top: [\n "slide-out-to-top slide-in-from-top",\n "inset-x-0 top-0 bottom-auto h-auto w-full max-w-screen border-b",\n ],\n bottom: [\n "slide-out-to-bottom slide-in-from-bottom",\n "inset-x-0 top-auto bottom-0 h-auto w-full max-w-screen border-t",\n ],\n },\n },\n defaultVariants: {\n side: "right",\n },\n});\n\nexport const sheetCloseButton = tv({\n base: [\n "absolute top-4 right-4 rounded-xs [&>svg]:opacity-70 hover:[&>svg]:opacity-100",\n "focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3",\n ],\n});\n\nexport const sheetDescription = tv({\n base: [\n "text-muted-foreground text-sm",\n ],\n});\n\nexport const sheetFooter = tv({\n base: [\n "mt-auto flex flex-col gap-2 p-4",\n ],\n});\n\nexport const sheetHeader = tv({\n base: [\n "flex flex-col gap-1.5 p-4",\n ],\n});\n\nexport const sheetTitle = tv({\n base: [\n "text-foreground font-heading font-semibold",\n ],\n});\n'
8950
8981
  }
8951
8982
  ],
8952
8983
  componentDependencies: ["button"],
8953
8984
  packageRequirements: [
8954
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
8985
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8955
8986
  { name: "@tabler/icons-react", range: "^3.37.1" },
8956
8987
  { name: "react", range: ">=18" },
8957
8988
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -9074,7 +9105,7 @@ export const button = tv({
9074
9105
  ],
9075
9106
  componentDependencies: ["button", "input", "separator", "sheet", "skeleton", "tooltip"],
9076
9107
  packageRequirements: [
9077
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
9108
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
9078
9109
  { name: "@tabler/icons", range: "^3.37.1" },
9079
9110
  { name: "astro", range: ">=5" },
9080
9111
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -9189,7 +9220,7 @@ export const button = tv({
9189
9220
  ],
9190
9221
  componentDependencies: ["button", "input", "separator", "sheet", "skeleton", "tooltip"],
9191
9222
  packageRequirements: [
9192
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
9223
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
9193
9224
  { name: "@tabler/icons-react", range: "^3.37.1" },
9194
9225
  { name: "react", range: ">=18" },
9195
9226
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -9220,7 +9251,7 @@ export const button = tv({
9220
9251
  ],
9221
9252
  componentDependencies: [],
9222
9253
  packageRequirements: [
9223
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
9254
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
9224
9255
  { name: "astro", range: ">=5" },
9225
9256
  { name: "tailwind-variants", range: "^3.2.2" }
9226
9257
  ]
@@ -9254,7 +9285,7 @@ export const button = tv({
9254
9285
  ],
9255
9286
  componentDependencies: [],
9256
9287
  packageRequirements: [
9257
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
9288
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
9258
9289
  { name: "astro", range: ">=5" },
9259
9290
  { name: "tailwind-variants", range: "^3.2.2" }
9260
9291
  ]
@@ -9280,7 +9311,7 @@ export const button = tv({
9280
9311
  ],
9281
9312
  componentDependencies: [],
9282
9313
  packageRequirements: [
9283
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
9314
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
9284
9315
  { name: "react", range: ">=18" },
9285
9316
  { name: "tailwind-variants", range: "^3.2.2" }
9286
9317
  ]
@@ -9358,7 +9389,7 @@ export const button = tv({
9358
9389
  ],
9359
9390
  componentDependencies: ["separator"],
9360
9391
  packageRequirements: [
9361
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
9392
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
9362
9393
  { name: "astro", range: ">=5" },
9363
9394
  { name: "tailwind-variants", range: "^3.2.2" }
9364
9395
  ]
@@ -9428,7 +9459,7 @@ export const button = tv({
9428
9459
  ],
9429
9460
  componentDependencies: ["separator"],
9430
9461
  packageRequirements: [
9431
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
9462
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
9432
9463
  { name: "react", range: ">=18" },
9433
9464
  { name: "tailwind-variants", range: "^3.2.2" }
9434
9465
  ]
@@ -9437,7 +9468,7 @@ export const button = tv({
9437
9468
  },
9438
9469
  {
9439
9470
  name: "popover",
9440
- version: "2.0.0",
9471
+ version: "2.0.1",
9441
9472
  type: "component",
9442
9473
  dependencies: [],
9443
9474
  targets: {
@@ -9449,7 +9480,7 @@ export const button = tv({
9449
9480
  },
9450
9481
  {
9451
9482
  path: "src/components/starwind/popover/PopoverContent.astro",
9452
- content: '---\nimport PopoverPrimitive from "@starwind-ui/astro/popover";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { popoverContent } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & VariantProps<typeof popoverContent> & {\n side?: "top" | "right" | "bottom" | "left";\n align?: "start" | "center" | "end";\n sideOffset?: number;\n avoidCollisions?: boolean;\n};\n\nconst {\n class: className,\n side = "bottom",\n align = "center",\n sideOffset = 4,\n avoidCollisions = true,\n exitMotion = "popover",\n ...rest\n} = Astro.props;\n---\n\n<PopoverPrimitive.Portal data-slot="popover-portal">\n <PopoverPrimitive.Popup\n class={popoverContent({ exitMotion, class: className })}\n side={side}\n align={align}\n sideOffset={sideOffset}\n avoidCollisions={avoidCollisions}\n {...rest}\n data-slot="popover-content"\n >\n <slot />\n </PopoverPrimitive.Popup>\n</PopoverPrimitive.Portal>\n'
9483
+ content: '---\nimport PopoverPrimitive from "@starwind-ui/astro/popover";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { popoverContent } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & VariantProps<typeof popoverContent> & {\n side?: "top" | "right" | "bottom" | "left";\n align?: "start" | "center" | "end";\n sideOffset?: number;\n avoidCollisions?: boolean;\n collisionStrategy?: "initial-placement" | "best-fit";\n};\n\nconst {\n class: className,\n side = "bottom",\n align = "center",\n sideOffset = 4,\n avoidCollisions = true,\n collisionStrategy = "initial-placement",\n exitMotion = "popover",\n ...rest\n} = Astro.props;\n---\n\n<PopoverPrimitive.Portal data-slot="popover-portal">\n <PopoverPrimitive.Popup\n class={popoverContent({ exitMotion, class: className })}\n side={side}\n align={align}\n sideOffset={sideOffset}\n avoidCollisions={avoidCollisions}\n collisionStrategy={collisionStrategy}\n {...rest}\n data-slot="popover-content"\n >\n <slot />\n </PopoverPrimitive.Popup>\n</PopoverPrimitive.Portal>\n'
9453
9484
  },
9454
9485
  {
9455
9486
  path: "src/components/starwind/popover/PopoverDescription.astro",
@@ -9478,7 +9509,7 @@ export const button = tv({
9478
9509
  ],
9479
9510
  componentDependencies: [],
9480
9511
  packageRequirements: [
9481
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
9512
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
9482
9513
  { name: "astro", range: ">=5" },
9483
9514
  { name: "tailwind-variants", range: "^3.2.2" }
9484
9515
  ]
@@ -9491,7 +9522,7 @@ export const button = tv({
9491
9522
  },
9492
9523
  {
9493
9524
  path: "src/components/starwind/popover/PopoverContent.tsx",
9494
- content: 'import PopoverPrimitive from "@starwind-ui/react/popover";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { popoverContent } from "./variants";\n\nexport type PopoverContentProps = React.ComponentPropsWithoutRef<"div"> &\n VariantProps<typeof popoverContent> & {\n side?: "top" | "right" | "bottom" | "left";\n align?: "start" | "center" | "end";\n sideOffset?: number;\n avoidCollisions?: boolean;\n };\n\nfunction PopoverContent(props: PopoverContentProps) {\n const {\n className,\n side = "bottom",\n align = "center",\n sideOffset = 4,\n avoidCollisions = true,\n exitMotion = "popover",\n children,\n ...rest\n } = props;\n\n return (\n <PopoverPrimitive.Portal\n data-slot="popover-portal"\n >\n <PopoverPrimitive.Popup\n className={popoverContent({ exitMotion, class: className })}\n side={side}\n align={align}\n sideOffset={sideOffset}\n avoidCollisions={avoidCollisions}\n {...rest}\n data-slot="popover-content"\n >\n {children}\n </PopoverPrimitive.Popup>\n </PopoverPrimitive.Portal>\n );\n}\n\nexport default PopoverContent;\n'
9525
+ content: 'import PopoverPrimitive from "@starwind-ui/react/popover";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { popoverContent } from "./variants";\n\nexport type PopoverContentProps = React.ComponentPropsWithoutRef<"div"> &\n VariantProps<typeof popoverContent> & {\n side?: "top" | "right" | "bottom" | "left";\n align?: "start" | "center" | "end";\n sideOffset?: number;\n avoidCollisions?: boolean;\n collisionStrategy?: "initial-placement" | "best-fit";\n };\n\nfunction PopoverContent(props: PopoverContentProps) {\n const {\n className,\n side = "bottom",\n align = "center",\n sideOffset = 4,\n avoidCollisions = true,\n collisionStrategy = "initial-placement",\n exitMotion = "popover",\n children,\n ...rest\n } = props;\n\n return (\n <PopoverPrimitive.Portal\n data-slot="popover-portal"\n >\n <PopoverPrimitive.Popup\n className={popoverContent({ exitMotion, class: className })}\n side={side}\n align={align}\n sideOffset={sideOffset}\n avoidCollisions={avoidCollisions}\n collisionStrategy={collisionStrategy}\n {...rest}\n data-slot="popover-content"\n >\n {children}\n </PopoverPrimitive.Popup>\n </PopoverPrimitive.Portal>\n );\n}\n\nexport default PopoverContent;\n'
9495
9526
  },
9496
9527
  {
9497
9528
  path: "src/components/starwind/popover/PopoverDescription.tsx",
@@ -9520,7 +9551,7 @@ export const button = tv({
9520
9551
  ],
9521
9552
  componentDependencies: [],
9522
9553
  packageRequirements: [
9523
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
9554
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
9524
9555
  { name: "react", range: ">=18" },
9525
9556
  { name: "tailwind-variants", range: "^3.2.2" }
9526
9557
  ]
@@ -9529,7 +9560,7 @@ export const button = tv({
9529
9560
  },
9530
9561
  {
9531
9562
  name: "alert-dialog",
9532
- version: "2.0.0",
9563
+ version: "2.0.1",
9533
9564
  type: "component",
9534
9565
  dependencies: [],
9535
9566
  targets: {
@@ -9582,6 +9613,7 @@ export const button = tv({
9582
9613
  export const alertDialogBackdrop = tv({
9583
9614
  base: [
9584
9615
  "fixed inset-0 z-50 hidden bg-black/50 duration-200",
9616
+ "data-starting-style:!animate-none data-starting-style:opacity-0",
9585
9617
  "data-[state=open]:animate-in fade-in",
9586
9618
  "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",
9587
9619
  ],
@@ -9591,6 +9623,7 @@ export const alertDialogContent = tv({
9591
9623
  base: [
9592
9624
  "bg-background space-y-4 rounded-lg border p-6 shadow-lg sm:max-w-lg",
9593
9625
  "fixed top-[50%] left-[50%] z-50 w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%]",
9626
+ "data-starting-style:!animate-none data-starting-style:opacity-0",
9594
9627
  "data-[state=open]:animate-in fade-in zoom-in-95 will-change-transform duration-200",
9595
9628
  "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out zoom-out-95",
9596
9629
  ],
@@ -9696,7 +9729,7 @@ export const alertDialogCancelAsChild = tv({
9696
9729
  ],
9697
9730
  componentDependencies: ["button"],
9698
9731
  packageRequirements: [
9699
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.2" },
9732
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
9700
9733
  { name: "astro", range: ">=5" },
9701
9734
  { name: "tailwind-variants", range: "^3.2.2" }
9702
9735
  ]
@@ -9750,6 +9783,7 @@ export const alertDialogCancelAsChild = tv({
9750
9783
  export const alertDialogBackdrop = tv({
9751
9784
  base: [
9752
9785
  "fixed inset-0 z-50 hidden bg-black/50 duration-200",
9786
+ "data-starting-style:!animate-none data-starting-style:opacity-0",
9753
9787
  "data-[state=open]:animate-in fade-in",
9754
9788
  "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",
9755
9789
  ],
@@ -9759,6 +9793,7 @@ export const alertDialogContent = tv({
9759
9793
  base: [
9760
9794
  "bg-background space-y-4 rounded-lg border p-6 shadow-lg sm:max-w-lg",
9761
9795
  "fixed top-[50%] left-[50%] z-50 w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%]",
9796
+ "data-starting-style:!animate-none data-starting-style:opacity-0",
9762
9797
  "data-[state=open]:animate-in fade-in zoom-in-95 will-change-transform duration-200",
9763
9798
  "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out zoom-out-95",
9764
9799
  ],
@@ -9864,7 +9899,7 @@ export const alertDialogCancelAsChild = tv({
9864
9899
  ],
9865
9900
  componentDependencies: ["button"],
9866
9901
  packageRequirements: [
9867
- { name: "@starwind-ui/react", range: "^0.1.0-beta.2" },
9902
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
9868
9903
  { name: "react", range: ">=18" },
9869
9904
  { name: "tailwind-variants", range: "^3.2.2" }
9870
9905
  ]
@@ -9909,6 +9944,7 @@ function getStyledRegistrySource(config, registryReference) {
9909
9944
  }
9910
9945
  }
9911
9946
  var VALID_TARGETS = /* @__PURE__ */ new Set(["legacy-astro", "astro", "react"]);
9947
+ var VALID_SETUP_TARGETS = /* @__PURE__ */ new Set(["astro", "react"]);
9912
9948
  var REQUIRED_TARGET_PACKAGES = {
9913
9949
  "legacy-astro": [],
9914
9950
  astro: ["@starwind-ui/astro"],
@@ -9949,6 +9985,40 @@ var packageRequirementSchema = z2.object({
9949
9985
  name: registryPackageNameSchema,
9950
9986
  range: semverRangeSchema
9951
9987
  }).strict();
9988
+ var registrySetupTargetSchema = z2.object({
9989
+ adapterPackage: packageRequirementSchema,
9990
+ packageRequirements: z2.array(packageRequirementSchema).default([])
9991
+ }).strict().superRefine((setupTarget, ctx) => {
9992
+ const seenPackageNames = /* @__PURE__ */ new Set();
9993
+ for (const [index, requirement] of setupTarget.packageRequirements.entries()) {
9994
+ if (requirement.name === setupTarget.adapterPackage.name) {
9995
+ ctx.addIssue({
9996
+ code: z2.ZodIssueCode.custom,
9997
+ path: ["packageRequirements", index, "name"],
9998
+ message: `Setup package requirements must not repeat adapter package ${requirement.name}`
9999
+ });
10000
+ }
10001
+ if (seenPackageNames.has(requirement.name)) {
10002
+ ctx.addIssue({
10003
+ code: z2.ZodIssueCode.custom,
10004
+ path: ["packageRequirements", index, "name"],
10005
+ message: `Duplicate setup package requirement ${requirement.name}`
10006
+ });
10007
+ }
10008
+ seenPackageNames.add(requirement.name);
10009
+ }
10010
+ });
10011
+ var registrySetupSchema = z2.record(registrySetupTargetSchema).superRefine((setup2, ctx) => {
10012
+ for (const target of Object.keys(setup2)) {
10013
+ if (!VALID_SETUP_TARGETS.has(target)) {
10014
+ ctx.addIssue({
10015
+ code: z2.ZodIssueCode.custom,
10016
+ path: [target],
10017
+ message: `Unsupported registry setup target "${target}"`
10018
+ });
10019
+ }
10020
+ }
10021
+ });
9952
10022
  var publicRenameSchema = z2.object({
9953
10023
  from: z2.string().min(1),
9954
10024
  to: z2.string().min(1)
@@ -10046,6 +10116,7 @@ var registryComponentArtifactSchema = z2.object({
10046
10116
  var registryRootSchema = z2.object({
10047
10117
  $schema: z2.string().optional(),
10048
10118
  version: semverVersionSchema,
10119
+ setup: registrySetupSchema.optional(),
10049
10120
  components: z2.array(componentSchema)
10050
10121
  }).strict();
10051
10122
  var defaultRegistrySource = { type: "bundled" };
@@ -10403,7 +10474,7 @@ async function installRuntimeComponents(componentNames, options) {
10403
10474
  packageRequirements.map(formatPackageRequirement)
10404
10475
  );
10405
10476
  if (packagesToInstall.length > 0) {
10406
- await installDependencies(packagesToInstall, options.packageManager ?? "npm");
10477
+ await installDependencies(packagesToInstall, options.packageManager);
10407
10478
  }
10408
10479
  const installedComponents = [];
10409
10480
  const applyOutcomes = /* @__PURE__ */ new Map();
@@ -10615,7 +10686,7 @@ async function updateRuntimeComponents(componentNames, options) {
10615
10686
  }
10616
10687
  }
10617
10688
  if (!skipPackageDependentUpdates) {
10618
- await installDependencies(plan.packagesToInstall, options.packageManager ?? "npm");
10689
+ await installDependencies(plan.packagesToInstall, options.packageManager);
10619
10690
  }
10620
10691
  }
10621
10692
  for (const item of plan.updates) {
@@ -11229,7 +11300,7 @@ async function isValidComponent(component, availableComponents) {
11229
11300
  // src/commands/init.ts
11230
11301
  import path7 from "path";
11231
11302
  import * as p9 from "@clack/prompts";
11232
- import semver7 from "semver";
11303
+ import semver8 from "semver";
11233
11304
 
11234
11305
  // src/templates/starwind.css.ts
11235
11306
  var tailwindConfig = `@import "tailwindcss";
@@ -11685,6 +11756,30 @@ async function setupLayoutCssImport(cssPath) {
11685
11756
  }
11686
11757
  }
11687
11758
 
11759
+ // src/utils/runtime-setup.ts
11760
+ import semver7 from "semver";
11761
+ function getRuntimeSetupPlan(framework, registry) {
11762
+ const setup2 = registry.setup?.[framework];
11763
+ if (!setup2) {
11764
+ throw new Error(
11765
+ `Bundled registry ${registry.version} is missing setup metadata for framework "${framework}".`
11766
+ );
11767
+ }
11768
+ const adapterVersion = semver7.minVersion(setup2.adapterPackage.range)?.version;
11769
+ if (!adapterVersion) {
11770
+ throw new Error(
11771
+ `Bundled registry declares an invalid ${setup2.adapterPackage.name} adapter range: ${setup2.adapterPackage.range}`
11772
+ );
11773
+ }
11774
+ return {
11775
+ adapterPackage: `${setup2.adapterPackage.name}@${adapterVersion}`,
11776
+ packageRequirements: setup2.packageRequirements.map(formatPackageRequirement2)
11777
+ };
11778
+ }
11779
+ function formatPackageRequirement2(requirement) {
11780
+ return `${requirement.name}@${requirement.range}`;
11781
+ }
11782
+
11688
11783
  // src/utils/snippets.ts
11689
11784
  var THEME_TOGGLE_SNIPPET = {
11690
11785
  "Starwind UI Theme Toggle": {
@@ -12543,27 +12638,6 @@ function resolveFrameworkOption(options) {
12543
12638
  }
12544
12639
  return selected[0];
12545
12640
  }
12546
- function getRuntimeSetupPackages(framework, registry) {
12547
- const adapterPackage = framework === "astro" ? "@starwind-ui/astro" : "@starwind-ui/react";
12548
- const adapterRanges = new Set(
12549
- registry.components.flatMap(
12550
- (component) => (component.targets?.[framework]?.packageRequirements ?? []).filter((requirement) => requirement.name === adapterPackage).map((requirement) => requirement.range)
12551
- )
12552
- );
12553
- if (adapterRanges.size !== 1) {
12554
- throw new Error(
12555
- `Bundled registry must declare one consistent ${adapterPackage} package requirement.`
12556
- );
12557
- }
12558
- const adapterRange = [...adapterRanges][0];
12559
- const adapterVersion = semver7.minVersion(adapterRange)?.version;
12560
- if (!adapterVersion) {
12561
- throw new Error(
12562
- `Bundled registry declares an invalid ${adapterPackage} range: ${adapterRange}`
12563
- );
12564
- }
12565
- return [`${adapterPackage}@${adapterVersion}`];
12566
- }
12567
12641
  function getProNextStepsMessage() {
12568
12642
  return `Starwind Pro is now configured! You can install pro components using
12569
12643
  ${highlighter.info("starwind add @starwind-pro/component-name")}
@@ -12921,23 +12995,21 @@ async function init(withinAdd = false, options) {
12921
12995
  }
12922
12996
  }
12923
12997
  const pm = options?.packageManager ?? detectPackageManager().name;
12924
- const runtimeSetupPackages = getRuntimeSetupPackages(
12998
+ const runtimeSetupPlan = getRuntimeSetupPlan(
12925
12999
  configChoices.framework,
12926
13000
  bundledRegistry
12927
13001
  );
12928
- if (runtimeSetupPackages.length > 0) {
12929
- installTasks.push({
12930
- title: "Installing Starwind Runtime packages",
12931
- task: async () => {
12932
- await installDependencies(runtimeSetupPackages, pm);
12933
- return "Installed Starwind Runtime packages successfully";
12934
- }
12935
- });
12936
- }
13002
+ installTasks.push({
13003
+ title: "Installing Starwind Runtime packages",
13004
+ task: async () => {
13005
+ await installDependencies([runtimeSetupPlan.adapterPackage], pm);
13006
+ return "Installed Starwind Runtime packages successfully";
13007
+ }
13008
+ });
12937
13009
  if (configChoices.framework === "astro") {
12938
13010
  if (pkg.dependencies?.astro) {
12939
13011
  const astroVersion = pkg.dependencies.astro.replace(/^\^|~/, "");
12940
- if (!semver7.gte(astroVersion, MIN_ASTRO_VERSION)) {
13012
+ if (!semver8.gte(astroVersion, MIN_ASTRO_VERSION)) {
12941
13013
  const shouldUpgrade = options?.defaults ? true : await p9.confirm({
12942
13014
  message: `Starwind requires Astro v${MIN_ASTRO_VERSION} or higher. Would you like to upgrade from v${astroVersion}?`,
12943
13015
  initialValue: true
@@ -12980,7 +13052,7 @@ async function init(withinAdd = false, options) {
12980
13052
  });
12981
13053
  }
12982
13054
  }
12983
- const otherPackages = getOtherPackages();
13055
+ const otherPackages = runtimeSetupPlan.packageRequirements;
12984
13056
  const shouldInstall = options?.defaults ? true : await p9.confirm({
12985
13057
  message: `Install ${highlighter.info(otherPackages.join(", "))} using ${highlighter.info(pm)}?`
12986
13058
  });
@@ -12992,7 +13064,7 @@ async function init(withinAdd = false, options) {
12992
13064
  installTasks.push({
12993
13065
  title: `Installing packages`,
12994
13066
  task: async () => {
12995
- await installDependencies(getOtherPackages(), pm, false, false);
13067
+ await installDependencies(otherPackages, pm, false, false);
12996
13068
  return `${highlighter.info("Packages installed successfully")}`;
12997
13069
  }
12998
13070
  });
@@ -13043,7 +13115,11 @@ async function add(components, options) {
13043
13115
  process.exit(0);
13044
13116
  }
13045
13117
  if (shouldInit) {
13046
- await init(true, { defaults: options?.yes, packageManager });
13118
+ await init(true, {
13119
+ defaults: options?.yes,
13120
+ framework: options?.framework,
13121
+ packageManager
13122
+ });
13047
13123
  } else {
13048
13124
  p10.log.error(
13049
13125
  `Please initialize starwind with ${highlighter.info("starwind init")} before adding components`
@@ -13414,7 +13490,7 @@ import * as p13 from "@clack/prompts";
13414
13490
  import path8 from "path";
13415
13491
  import * as p12 from "@clack/prompts";
13416
13492
  import fs9 from "fs-extra";
13417
- import semver8 from "semver";
13493
+ import semver9 from "semver";
13418
13494
 
13419
13495
  // src/registry/primitive-vendoring-artifacts.json
13420
13496
  var primitive_vendoring_artifacts_default = {
@@ -13511,7 +13587,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13511
13587
  packageRequirements: [
13512
13588
  {
13513
13589
  name: "@starwind-ui/runtime",
13514
- range: "^0.1.0-beta.2"
13590
+ range: "^0.1.0-beta.4"
13515
13591
  },
13516
13592
  {
13517
13593
  name: "astro",
@@ -13576,7 +13652,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13576
13652
  packageRequirements: [
13577
13653
  {
13578
13654
  name: "@starwind-ui/runtime",
13579
- range: "^0.1.0-beta.2"
13655
+ range: "^0.1.0-beta.4"
13580
13656
  },
13581
13657
  {
13582
13658
  name: "astro",
@@ -13611,7 +13687,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13611
13687
  packageRequirements: [
13612
13688
  {
13613
13689
  name: "@starwind-ui/runtime",
13614
- range: "^0.1.0-beta.2"
13690
+ range: "^0.1.0-beta.4"
13615
13691
  },
13616
13692
  {
13617
13693
  name: "astro",
@@ -13682,7 +13758,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13682
13758
  packageRequirements: [
13683
13759
  {
13684
13760
  name: "@starwind-ui/runtime",
13685
- range: "^0.1.0-beta.2"
13761
+ range: "^0.1.0-beta.4"
13686
13762
  },
13687
13763
  {
13688
13764
  name: "astro",
@@ -13723,7 +13799,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13723
13799
  packageRequirements: [
13724
13800
  {
13725
13801
  name: "@starwind-ui/runtime",
13726
- range: "^0.1.0-beta.2"
13802
+ range: "^0.1.0-beta.4"
13727
13803
  },
13728
13804
  {
13729
13805
  name: "astro",
@@ -13734,7 +13810,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13734
13810
  {
13735
13811
  component: "form",
13736
13812
  framework: "astro",
13737
- version: "0.1.0",
13813
+ version: "0.2.0",
13738
13814
  files: [
13739
13815
  {
13740
13816
  path: "src/components/starwind-primitives/form/FormErrorSummary.astro",
@@ -13750,8 +13826,8 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13750
13826
  },
13751
13827
  {
13752
13828
  path: "src/components/starwind-primitives/form/index.ts",
13753
- content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport FormErrorSummary from "./FormErrorSummary.astro";\nimport FormRoot from "./FormRoot.astro";\n\nconst Form = {\n ErrorSummary: FormErrorSummary,\n Root: FormRoot,\n};\n\nexport { Form, FormErrorSummary, FormRoot };\n\nexport default Form;\n\nexport type {\n FormExternalErrors,\n FormSchemaResult,\n FormValidationTiming,\n FormValues,\n} from "@starwind-ui/runtime";\nexport {\n createForm,\n createFormSchemaValidator,\n validateFormSchema,\n} from "@starwind-ui/runtime/form";\n',
13754
- sourceHash: "sha256:8d7051bc5a476e4fcb26fae9a61290f2c06fec40e344bd7bcd3c17755e10717e",
13829
+ content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport FormErrorSummary from "./FormErrorSummary.astro";\nimport FormRoot from "./FormRoot.astro";\n\nconst Form = {\n ErrorSummary: FormErrorSummary,\n Root: FormRoot,\n};\n\nexport { Form, FormErrorSummary, FormRoot };\n\nexport default Form;\n\nexport type {\n FormExternalErrorOptions,\n FormExternalErrors,\n FormInstance,\n FormOptions,\n FormResetValidationOptions,\n FormSchemaResult,\n FormValidateOptions,\n FormValidationCause,\n FormValidationOutcome,\n FormValidationTiming,\n FormValues,\n} from "@starwind-ui/runtime";\nexport {\n createForm,\n createFormSchemaValidator,\n validateFormSchema,\n} from "@starwind-ui/runtime/form";\n',
13830
+ sourceHash: "sha256:c245954f1f03556244201a3be457325323f87c66283fd558afb1dcde3c453a57",
13755
13831
  sourcePath: "packages/astro/src/form/index.ts"
13756
13832
  },
13757
13833
  {
@@ -13764,7 +13840,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13764
13840
  packageRequirements: [
13765
13841
  {
13766
13842
  name: "@starwind-ui/runtime",
13767
- range: "^0.1.0-beta.2"
13843
+ range: "^0.1.0-beta.4"
13768
13844
  },
13769
13845
  {
13770
13846
  name: "astro",
@@ -13799,7 +13875,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13799
13875
  packageRequirements: [
13800
13876
  {
13801
13877
  name: "@starwind-ui/runtime",
13802
- range: "^0.1.0-beta.2"
13878
+ range: "^0.1.0-beta.4"
13803
13879
  },
13804
13880
  {
13805
13881
  name: "astro",
@@ -13840,7 +13916,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13840
13916
  packageRequirements: [
13841
13917
  {
13842
13918
  name: "@starwind-ui/runtime",
13843
- range: "^0.1.0-beta.2"
13919
+ range: "^0.1.0-beta.4"
13844
13920
  },
13845
13921
  {
13846
13922
  name: "astro",
@@ -13881,7 +13957,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13881
13957
  packageRequirements: [
13882
13958
  {
13883
13959
  name: "@starwind-ui/runtime",
13884
- range: "^0.1.0-beta.2"
13960
+ range: "^0.1.0-beta.4"
13885
13961
  },
13886
13962
  {
13887
13963
  name: "astro",
@@ -13922,7 +13998,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13922
13998
  packageRequirements: [
13923
13999
  {
13924
14000
  name: "@starwind-ui/runtime",
13925
- range: "^0.1.0-beta.2"
14001
+ range: "^0.1.0-beta.4"
13926
14002
  },
13927
14003
  {
13928
14004
  name: "astro",
@@ -13987,7 +14063,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13987
14063
  packageRequirements: [
13988
14064
  {
13989
14065
  name: "@starwind-ui/runtime",
13990
- range: "^0.1.0-beta.2"
14066
+ range: "^0.1.0-beta.4"
13991
14067
  },
13992
14068
  {
13993
14069
  name: "astro",
@@ -14034,7 +14110,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14034
14110
  packageRequirements: [
14035
14111
  {
14036
14112
  name: "@starwind-ui/runtime",
14037
- range: "^0.1.0-beta.2"
14113
+ range: "^0.1.0-beta.4"
14038
14114
  },
14039
14115
  {
14040
14116
  name: "astro",
@@ -14069,7 +14145,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14069
14145
  packageRequirements: [
14070
14146
  {
14071
14147
  name: "@starwind-ui/runtime",
14072
- range: "^0.1.0-beta.2"
14148
+ range: "^0.1.0-beta.4"
14073
14149
  },
14074
14150
  {
14075
14151
  name: "astro",
@@ -14104,7 +14180,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14104
14180
  packageRequirements: [
14105
14181
  {
14106
14182
  name: "@starwind-ui/runtime",
14107
- range: "^0.1.0-beta.2"
14183
+ range: "^0.1.0-beta.4"
14108
14184
  },
14109
14185
  {
14110
14186
  name: "astro",
@@ -14139,7 +14215,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14139
14215
  packageRequirements: [
14140
14216
  {
14141
14217
  name: "@starwind-ui/runtime",
14142
- range: "^0.1.0-beta.2"
14218
+ range: "^0.1.0-beta.4"
14143
14219
  },
14144
14220
  {
14145
14221
  name: "astro",
@@ -14198,7 +14274,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14198
14274
  packageRequirements: [
14199
14275
  {
14200
14276
  name: "@starwind-ui/runtime",
14201
- range: "^0.1.0-beta.2"
14277
+ range: "^0.1.0-beta.4"
14202
14278
  },
14203
14279
  {
14204
14280
  name: "astro",
@@ -14257,7 +14333,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14257
14333
  packageRequirements: [
14258
14334
  {
14259
14335
  name: "@starwind-ui/runtime",
14260
- range: "^0.1.0-beta.2"
14336
+ range: "^0.1.0-beta.4"
14261
14337
  },
14262
14338
  {
14263
14339
  name: "astro",
@@ -14268,7 +14344,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14268
14344
  {
14269
14345
  component: "avatar",
14270
14346
  framework: "astro",
14271
- version: "0.1.0",
14347
+ version: "0.1.1",
14272
14348
  files: [
14273
14349
  {
14274
14350
  path: "src/components/starwind-primitives/avatar/AvatarFallback.astro",
@@ -14292,7 +14368,9 @@ type Props = HTMLAttributes<"img"> & {
14292
14368
  src?: string;
14293
14369
  };
14294
14370
 
14295
- const { src, image, alt, width, height, ...rest } = Astro.props;
14371
+ const { src, image, alt, width, height, style, ...rest } = Astro.props;
14372
+ const initialStyle =
14373
+ typeof style === "string" ? \`\${style};visibility: hidden\` : { ...style, visibility: "hidden" };
14296
14374
 
14297
14375
  if (!src && !image) {
14298
14376
  throw new Error("Either 'src' or 'image' is required for an avatar image.");
@@ -14304,11 +14382,11 @@ if (!src && !image) {
14304
14382
  <img
14305
14383
  data-sw-avatar-image
14306
14384
  data-image-loading-status="idle"
14307
- hidden
14308
14385
  src={src}
14309
14386
  alt={alt}
14310
14387
  width={64}
14311
14388
  height={64}
14389
+ style={initialStyle}
14312
14390
  {...rest}
14313
14391
  />
14314
14392
  )
@@ -14318,16 +14396,16 @@ if (!src && !image) {
14318
14396
  <Image
14319
14397
  data-sw-avatar-image
14320
14398
  data-image-loading-status="idle"
14321
- hidden
14322
14399
  src={image}
14323
14400
  alt={alt}
14324
14401
  width={64}
14402
+ style={initialStyle}
14325
14403
  {...rest}
14326
14404
  />
14327
14405
  )
14328
14406
  }
14329
14407
  `,
14330
- sourceHash: "sha256:bb854a69ed69749c6dc0cca7213b76775d75f0b947a2d7c4b0cdc286e0676901",
14408
+ sourceHash: "sha256:d0d22f8e6401101cbe833d851e0abd4602eff8a1e2e888c92f10d6a7f8cc0eb6",
14331
14409
  sourcePath: "packages/astro/src/avatar/AvatarImage.astro"
14332
14410
  },
14333
14411
  {
@@ -14352,7 +14430,7 @@ if (!src && !image) {
14352
14430
  packageRequirements: [
14353
14431
  {
14354
14432
  name: "@starwind-ui/runtime",
14355
- range: "^0.1.0-beta.2"
14433
+ range: "^0.1.0-beta.4"
14356
14434
  },
14357
14435
  {
14358
14436
  name: "astro",
@@ -14411,7 +14489,7 @@ if (!src && !image) {
14411
14489
  packageRequirements: [
14412
14490
  {
14413
14491
  name: "@starwind-ui/runtime",
14414
- range: "^0.1.0-beta.2"
14492
+ range: "^0.1.0-beta.4"
14415
14493
  },
14416
14494
  {
14417
14495
  name: "astro",
@@ -14476,7 +14554,7 @@ if (!src && !image) {
14476
14554
  packageRequirements: [
14477
14555
  {
14478
14556
  name: "@starwind-ui/runtime",
14479
- range: "^0.1.0-beta.2"
14557
+ range: "^0.1.0-beta.4"
14480
14558
  },
14481
14559
  {
14482
14560
  name: "astro",
@@ -14529,7 +14607,7 @@ if (!src && !image) {
14529
14607
  packageRequirements: [
14530
14608
  {
14531
14609
  name: "@starwind-ui/runtime",
14532
- range: "^0.1.0-beta.2"
14610
+ range: "^0.1.0-beta.4"
14533
14611
  },
14534
14612
  {
14535
14613
  name: "astro",
@@ -14594,7 +14672,7 @@ if (!src && !image) {
14594
14672
  packageRequirements: [
14595
14673
  {
14596
14674
  name: "@starwind-ui/runtime",
14597
- range: "^0.1.0-beta.2"
14675
+ range: "^0.1.0-beta.4"
14598
14676
  },
14599
14677
  {
14600
14678
  name: "astro",
@@ -14605,7 +14683,7 @@ if (!src && !image) {
14605
14683
  {
14606
14684
  component: "popover",
14607
14685
  framework: "astro",
14608
- version: "0.1.1",
14686
+ version: "0.1.2",
14609
14687
  files: [
14610
14688
  {
14611
14689
  path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
@@ -14639,8 +14717,8 @@ if (!src && !image) {
14639
14717
  },
14640
14718
  {
14641
14719
  path: "src/components/starwind-primitives/popover/PopoverPopup.astro",
14642
- content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\n\ntype Props = HTMLAttributes<"div"> & {\n side?: "top" | "right" | "bottom" | "left";\n align?: "start" | "center" | "end";\n sideOffset?: number;\n avoidCollisions?: boolean;\n};\n\nconst {\n side = "bottom",\n align = "center",\n sideOffset = 4,\n avoidCollisions = true,\n ...rest\n} = Astro.props;\n---\n\n<div\n data-sw-popover-popup\n role="dialog"\n tabindex="-1"\n data-state="closed"\n data-side={side}\n data-align={align}\n data-side-offset={sideOffset}\n data-avoid-collisions={avoidCollisions ? "true" : "false"}\n hidden\n {...rest}\n>\n <slot />\n</div>\n',
14643
- sourceHash: "sha256:c174064dbd2fa5291361d609daf79cdbe988a637b6c13eda8759a24c9859e12d",
14720
+ content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\n\ntype Props = HTMLAttributes<"div"> & {\n side?: "top" | "right" | "bottom" | "left";\n align?: "start" | "center" | "end";\n sideOffset?: number;\n avoidCollisions?: boolean;\n collisionStrategy?: "initial-placement" | "best-fit";\n};\n\nconst {\n side = "bottom",\n align = "center",\n sideOffset = 4,\n avoidCollisions = true,\n collisionStrategy = "initial-placement",\n ...rest\n} = Astro.props;\n---\n\n<div\n data-sw-popover-popup\n role="dialog"\n tabindex="-1"\n data-state="closed"\n data-side={side}\n data-align={align}\n data-side-offset={sideOffset}\n data-avoid-collisions={avoidCollisions ? "true" : "false"}\n data-collision-strategy={collisionStrategy}\n hidden\n {...rest}\n>\n <slot />\n</div>\n',
14721
+ sourceHash: "sha256:625802f465dbc973554be6aae48e887b9c589a9ee5c12deb636f53f8480521dc",
14644
14722
  sourcePath: "packages/astro/src/popover/PopoverPopup.astro"
14645
14723
  },
14646
14724
  {
@@ -14651,8 +14729,8 @@ if (!src && !image) {
14651
14729
  },
14652
14730
  {
14653
14731
  path: "src/components/starwind-primitives/popover/PopoverPositioner.astro",
14654
- content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\n\ntype Props = HTMLAttributes<"div"> & {\n side?: "top" | "right" | "bottom" | "left";\n align?: "start" | "center" | "end";\n sideOffset?: number;\n avoidCollisions?: boolean;\n};\n\nconst {\n side = "bottom",\n align = "center",\n sideOffset = 4,\n avoidCollisions = true,\n ...rest\n} = Astro.props;\n---\n\n<div\n data-sw-popover-positioner\n data-state="closed"\n data-side={side}\n data-align={align}\n data-side-offset={sideOffset}\n data-avoid-collisions={avoidCollisions ? "true" : "false"}\n {...rest}\n>\n <slot />\n</div>\n',
14655
- sourceHash: "sha256:19f24918c76215036156c79434baec93b63a11fad44afaf8bad9633bc042913f",
14732
+ content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\n\ntype Props = HTMLAttributes<"div"> & {\n side?: "top" | "right" | "bottom" | "left";\n align?: "start" | "center" | "end";\n sideOffset?: number;\n avoidCollisions?: boolean;\n collisionStrategy?: "initial-placement" | "best-fit";\n};\n\nconst {\n side = "bottom",\n align = "center",\n sideOffset = 4,\n avoidCollisions = true,\n collisionStrategy = "initial-placement",\n ...rest\n} = Astro.props;\n---\n\n<div\n data-sw-popover-positioner\n data-state="closed"\n data-side={side}\n data-align={align}\n data-side-offset={sideOffset}\n data-avoid-collisions={avoidCollisions ? "true" : "false"}\n data-collision-strategy={collisionStrategy}\n {...rest}\n>\n <slot />\n</div>\n',
14733
+ sourceHash: "sha256:ee7222ac0941894a1f33a9a058cf464f3d6e6550d0ee4e395e6752672f54c87f",
14656
14734
  sourcePath: "packages/astro/src/popover/PopoverPositioner.astro"
14657
14735
  },
14658
14736
  {
@@ -14689,7 +14767,7 @@ if (!src && !image) {
14689
14767
  packageRequirements: [
14690
14768
  {
14691
14769
  name: "@starwind-ui/runtime",
14692
- range: "^0.1.0-beta.2"
14770
+ range: "^0.1.0-beta.4"
14693
14771
  },
14694
14772
  {
14695
14773
  name: "astro",
@@ -14766,7 +14844,7 @@ if (!src && !image) {
14766
14844
  packageRequirements: [
14767
14845
  {
14768
14846
  name: "@starwind-ui/runtime",
14769
- range: "^0.1.0-beta.2"
14847
+ range: "^0.1.0-beta.4"
14770
14848
  },
14771
14849
  {
14772
14850
  name: "astro",
@@ -14837,7 +14915,7 @@ if (!src && !image) {
14837
14915
  packageRequirements: [
14838
14916
  {
14839
14917
  name: "@starwind-ui/runtime",
14840
- range: "^0.1.0-beta.2"
14918
+ range: "^0.1.0-beta.4"
14841
14919
  },
14842
14920
  {
14843
14921
  name: "astro",
@@ -14920,7 +14998,7 @@ if (!src && !image) {
14920
14998
  packageRequirements: [
14921
14999
  {
14922
15000
  name: "@starwind-ui/runtime",
14923
- range: "^0.1.0-beta.2"
15001
+ range: "^0.1.0-beta.4"
14924
15002
  },
14925
15003
  {
14926
15004
  name: "astro",
@@ -15003,7 +15081,7 @@ if (!src && !image) {
15003
15081
  packageRequirements: [
15004
15082
  {
15005
15083
  name: "@starwind-ui/runtime",
15006
- range: "^0.1.0-beta.2"
15084
+ range: "^0.1.0-beta.4"
15007
15085
  },
15008
15086
  {
15009
15087
  name: "astro",
@@ -15062,7 +15140,7 @@ if (!src && !image) {
15062
15140
  packageRequirements: [
15063
15141
  {
15064
15142
  name: "@starwind-ui/runtime",
15065
- range: "^0.1.0-beta.2"
15143
+ range: "^0.1.0-beta.4"
15066
15144
  },
15067
15145
  {
15068
15146
  name: "astro",
@@ -15199,7 +15277,7 @@ if (!src && !image) {
15199
15277
  packageRequirements: [
15200
15278
  {
15201
15279
  name: "@starwind-ui/runtime",
15202
- range: "^0.1.0-beta.2"
15280
+ range: "^0.1.0-beta.4"
15203
15281
  },
15204
15282
  {
15205
15283
  name: "astro",
@@ -15300,7 +15378,7 @@ if (!src && !image) {
15300
15378
  packageRequirements: [
15301
15379
  {
15302
15380
  name: "@starwind-ui/runtime",
15303
- range: "^0.1.0-beta.2"
15381
+ range: "^0.1.0-beta.4"
15304
15382
  },
15305
15383
  {
15306
15384
  name: "astro",
@@ -15455,7 +15533,7 @@ if (!src && !image) {
15455
15533
  packageRequirements: [
15456
15534
  {
15457
15535
  name: "@starwind-ui/runtime",
15458
- range: "^0.1.0-beta.2"
15536
+ range: "^0.1.0-beta.4"
15459
15537
  },
15460
15538
  {
15461
15539
  name: "astro",
@@ -15586,7 +15664,7 @@ if (!src && !image) {
15586
15664
  packageRequirements: [
15587
15665
  {
15588
15666
  name: "@starwind-ui/runtime",
15589
- range: "^0.1.0-beta.2"
15667
+ range: "^0.1.0-beta.4"
15590
15668
  },
15591
15669
  {
15592
15670
  name: "astro",
@@ -15645,7 +15723,7 @@ if (!src && !image) {
15645
15723
  packageRequirements: [
15646
15724
  {
15647
15725
  name: "@starwind-ui/runtime",
15648
- range: "^0.1.0-beta.2"
15726
+ range: "^0.1.0-beta.4"
15649
15727
  },
15650
15728
  {
15651
15729
  name: "astro",
@@ -15788,7 +15866,7 @@ if (!src && !image) {
15788
15866
  packageRequirements: [
15789
15867
  {
15790
15868
  name: "@starwind-ui/runtime",
15791
- range: "^0.1.0-beta.2"
15869
+ range: "^0.1.0-beta.4"
15792
15870
  },
15793
15871
  {
15794
15872
  name: "astro",
@@ -15961,7 +16039,7 @@ if (!src && !image) {
15961
16039
  packageRequirements: [
15962
16040
  {
15963
16041
  name: "@starwind-ui/runtime",
15964
- range: "^0.1.0-beta.2"
16042
+ range: "^0.1.0-beta.4"
15965
16043
  },
15966
16044
  {
15967
16045
  name: "astro",
@@ -16044,7 +16122,7 @@ if (!src && !image) {
16044
16122
  packageRequirements: [
16045
16123
  {
16046
16124
  name: "@starwind-ui/runtime",
16047
- range: "^0.1.0-beta.2"
16125
+ range: "^0.1.0-beta.4"
16048
16126
  },
16049
16127
  {
16050
16128
  name: "astro",
@@ -16085,7 +16163,7 @@ if (!src && !image) {
16085
16163
  packageRequirements: [
16086
16164
  {
16087
16165
  name: "@starwind-ui/runtime",
16088
- range: "^0.1.0-beta.2"
16166
+ range: "^0.1.0-beta.4"
16089
16167
  },
16090
16168
  {
16091
16169
  name: "react",
@@ -16160,7 +16238,7 @@ if (!src && !image) {
16160
16238
  packageRequirements: [
16161
16239
  {
16162
16240
  name: "@starwind-ui/runtime",
16163
- range: "^0.1.0-beta.2"
16241
+ range: "^0.1.0-beta.4"
16164
16242
  },
16165
16243
  {
16166
16244
  name: "react",
@@ -16205,7 +16283,7 @@ if (!src && !image) {
16205
16283
  packageRequirements: [
16206
16284
  {
16207
16285
  name: "@starwind-ui/runtime",
16208
- range: "^0.1.0-beta.2"
16286
+ range: "^0.1.0-beta.4"
16209
16287
  },
16210
16288
  {
16211
16289
  name: "react",
@@ -16292,7 +16370,7 @@ if (!src && !image) {
16292
16370
  packageRequirements: [
16293
16371
  {
16294
16372
  name: "@starwind-ui/runtime",
16295
- range: "^0.1.0-beta.2"
16373
+ range: "^0.1.0-beta.4"
16296
16374
  },
16297
16375
  {
16298
16376
  name: "react",
@@ -16343,7 +16421,7 @@ if (!src && !image) {
16343
16421
  packageRequirements: [
16344
16422
  {
16345
16423
  name: "@starwind-ui/runtime",
16346
- range: "^0.1.0-beta.2"
16424
+ range: "^0.1.0-beta.4"
16347
16425
  },
16348
16426
  {
16349
16427
  name: "react",
@@ -16358,7 +16436,7 @@ if (!src && !image) {
16358
16436
  {
16359
16437
  component: "form",
16360
16438
  framework: "react",
16361
- version: "0.1.0",
16439
+ version: "0.2.0",
16362
16440
  files: [
16363
16441
  {
16364
16442
  path: "src/components/starwind-primitives/form/FormErrorSummary.tsx",
@@ -16374,8 +16452,8 @@ if (!src && !image) {
16374
16452
  },
16375
16453
  {
16376
16454
  path: "src/components/starwind-primitives/form/index.ts",
16377
- content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport FormErrorSummary from "./FormErrorSummary";\nimport FormRoot from "./FormRoot";\n\nconst Form = {\n ErrorSummary: FormErrorSummary,\n Root: FormRoot,\n};\n\nexport { Form, FormErrorSummary, FormRoot };\n\nexport default Form;\n\nexport type {\n FormExternalErrors,\n FormSchemaResult,\n FormValidationTiming,\n FormValues,\n} from "@starwind-ui/runtime";\nexport {\n createForm,\n createFormSchemaValidator,\n validateFormSchema,\n} from "@starwind-ui/runtime/form";\n',
16378
- sourceHash: "sha256:ac18a0f42842cf1eac56b587adb6475c87f184edd8edd3eff7ee5a2469451f18",
16455
+ content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport FormErrorSummary from "./FormErrorSummary";\nimport FormRoot from "./FormRoot";\n\nconst Form = {\n ErrorSummary: FormErrorSummary,\n Root: FormRoot,\n};\n\nexport { Form, FormErrorSummary, FormRoot };\n\nexport default Form;\n\nexport type {\n FormExternalErrorOptions,\n FormExternalErrors,\n FormInstance,\n FormOptions,\n FormResetValidationOptions,\n FormSchemaResult,\n FormValidateOptions,\n FormValidationCause,\n FormValidationOutcome,\n FormValidationTiming,\n FormValues,\n} from "@starwind-ui/runtime";\nexport {\n createForm,\n createFormSchemaValidator,\n validateFormSchema,\n} from "@starwind-ui/runtime/form";\n',
16456
+ sourceHash: "sha256:13da0a8c61fc46e6120dc38de49404424940a899921ffb71c52ca1c3dc84e4d4",
16379
16457
  sourcePath: "packages/react/src/form/index.ts"
16380
16458
  },
16381
16459
  {
@@ -16394,7 +16472,7 @@ if (!src && !image) {
16394
16472
  packageRequirements: [
16395
16473
  {
16396
16474
  name: "@starwind-ui/runtime",
16397
- range: "^0.1.0-beta.2"
16475
+ range: "^0.1.0-beta.4"
16398
16476
  },
16399
16477
  {
16400
16478
  name: "react",
@@ -16439,7 +16517,7 @@ if (!src && !image) {
16439
16517
  packageRequirements: [
16440
16518
  {
16441
16519
  name: "@starwind-ui/runtime",
16442
- range: "^0.1.0-beta.2"
16520
+ range: "^0.1.0-beta.4"
16443
16521
  },
16444
16522
  {
16445
16523
  name: "react",
@@ -16490,7 +16568,7 @@ if (!src && !image) {
16490
16568
  packageRequirements: [
16491
16569
  {
16492
16570
  name: "@starwind-ui/runtime",
16493
- range: "^0.1.0-beta.2"
16571
+ range: "^0.1.0-beta.4"
16494
16572
  },
16495
16573
  {
16496
16574
  name: "react",
@@ -16547,7 +16625,7 @@ if (!src && !image) {
16547
16625
  packageRequirements: [
16548
16626
  {
16549
16627
  name: "@starwind-ui/runtime",
16550
- range: "^0.1.0-beta.2"
16628
+ range: "^0.1.0-beta.4"
16551
16629
  },
16552
16630
  {
16553
16631
  name: "react",
@@ -16604,7 +16682,7 @@ if (!src && !image) {
16604
16682
  packageRequirements: [
16605
16683
  {
16606
16684
  name: "@starwind-ui/runtime",
16607
- range: "^0.1.0-beta.2"
16685
+ range: "^0.1.0-beta.4"
16608
16686
  },
16609
16687
  {
16610
16688
  name: "react",
@@ -16679,7 +16757,7 @@ if (!src && !image) {
16679
16757
  packageRequirements: [
16680
16758
  {
16681
16759
  name: "@starwind-ui/runtime",
16682
- range: "^0.1.0-beta.2"
16760
+ range: "^0.1.0-beta.4"
16683
16761
  },
16684
16762
  {
16685
16763
  name: "react",
@@ -16736,7 +16814,7 @@ if (!src && !image) {
16736
16814
  packageRequirements: [
16737
16815
  {
16738
16816
  name: "@starwind-ui/runtime",
16739
- range: "^0.1.0-beta.2"
16817
+ range: "^0.1.0-beta.4"
16740
16818
  },
16741
16819
  {
16742
16820
  name: "react",
@@ -16781,7 +16859,7 @@ if (!src && !image) {
16781
16859
  packageRequirements: [
16782
16860
  {
16783
16861
  name: "@starwind-ui/runtime",
16784
- range: "^0.1.0-beta.2"
16862
+ range: "^0.1.0-beta.4"
16785
16863
  },
16786
16864
  {
16787
16865
  name: "react",
@@ -16832,7 +16910,7 @@ if (!src && !image) {
16832
16910
  packageRequirements: [
16833
16911
  {
16834
16912
  name: "@starwind-ui/runtime",
16835
- range: "^0.1.0-beta.2"
16913
+ range: "^0.1.0-beta.4"
16836
16914
  },
16837
16915
  {
16838
16916
  name: "react",
@@ -16883,7 +16961,7 @@ if (!src && !image) {
16883
16961
  packageRequirements: [
16884
16962
  {
16885
16963
  name: "@starwind-ui/runtime",
16886
- range: "^0.1.0-beta.2"
16964
+ range: "^0.1.0-beta.4"
16887
16965
  },
16888
16966
  {
16889
16967
  name: "react",
@@ -16958,7 +17036,7 @@ if (!src && !image) {
16958
17036
  packageRequirements: [
16959
17037
  {
16960
17038
  name: "@starwind-ui/runtime",
16961
- range: "^0.1.0-beta.2"
17039
+ range: "^0.1.0-beta.4"
16962
17040
  },
16963
17041
  {
16964
17042
  name: "react",
@@ -17027,7 +17105,7 @@ if (!src && !image) {
17027
17105
  packageRequirements: [
17028
17106
  {
17029
17107
  name: "@starwind-ui/runtime",
17030
- range: "^0.1.0-beta.2"
17108
+ range: "^0.1.0-beta.4"
17031
17109
  },
17032
17110
  {
17033
17111
  name: "react",
@@ -17042,7 +17120,7 @@ if (!src && !image) {
17042
17120
  {
17043
17121
  component: "avatar",
17044
17122
  framework: "react",
17045
- version: "0.1.0",
17123
+ version: "0.1.1",
17046
17124
  files: [
17047
17125
  {
17048
17126
  path: "src/components/starwind-primitives/avatar/AvatarFallback.tsx",
@@ -17052,8 +17130,8 @@ if (!src && !image) {
17052
17130
  },
17053
17131
  {
17054
17132
  path: "src/components/starwind-primitives/avatar/AvatarImage.tsx",
17055
- content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport type {\n AvatarImageLoadingStatus,\n AvatarLoadingStatusChangeDetails,\n} from "@starwind-ui/runtime/avatar";\nimport * as React from "react";\nimport { setRef } from "../internal/compose-refs";\n\nexport type AvatarImageProps = React.ImgHTMLAttributes<HTMLImageElement> & {\n alt: string;\n onLoadingStatusChange?: (\n status: AvatarImageLoadingStatus,\n details: AvatarLoadingStatusChangeDetails,\n ) => void;\n};\n\nconst AvatarImage = React.forwardRef<HTMLImageElement, AvatarImageProps>(function AvatarImage(\n { hidden, onLoadingStatusChange, ...props },\n forwardedRef,\n) {\n const imageRef = React.useRef<HTMLImageElement>(null);\n const onLoadingStatusChangeRef = React.useRef(onLoadingStatusChange);\n const hasLoadingStatusChangeCallback = onLoadingStatusChange !== undefined;\n onLoadingStatusChangeRef.current = onLoadingStatusChange;\n\n const composedRef = React.useCallback(\n (node: HTMLImageElement | null) => {\n imageRef.current = node;\n\n if (node) {\n node.hidden = hidden ?? true;\n }\n\n return setRef(forwardedRef, node);\n },\n [forwardedRef, hidden],\n );\n\n React.useEffect(() => {\n if (!hasLoadingStatusChangeCallback) return;\n\n const root = imageRef.current?.closest<HTMLElement>("[data-sw-avatar]");\n if (!root) return;\n\n const handleLoadingStatusChange = (event: Event) => {\n const details = (event as CustomEvent<AvatarLoadingStatusChangeDetails>).detail;\n onLoadingStatusChangeRef.current?.(details.status, details);\n };\n\n const notifyCurrentLoadingStatus = () => {\n const status = root.getAttribute(\n "data-image-loading-status",\n ) as AvatarImageLoadingStatus | null;\n if (!status || status === "idle") return;\n\n onLoadingStatusChangeRef.current?.(status, { previousStatus: "idle", status });\n };\n\n root.addEventListener("starwind:loading-status-change", handleLoadingStatusChange);\n notifyCurrentLoadingStatus();\n\n return () => {\n root.removeEventListener("starwind:loading-status-change", handleLoadingStatusChange);\n };\n }, [hasLoadingStatusChangeCallback]);\n\n return <img data-sw-avatar-image data-image-loading-status="idle" ref={composedRef} {...props} />;\n});\n\nAvatarImage.displayName = "Avatar.Image";\n\nexport default AvatarImage;\n',
17056
- sourceHash: "sha256:b694e34a46e252a21a8e39f00fa86dc6cd1e7352b3fc4266b0ab2e8f4fa597ed",
17133
+ content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport type {\n AvatarImageLoadingStatus,\n AvatarLoadingStatusChangeDetails,\n} from "@starwind-ui/runtime/avatar";\nimport * as React from "react";\nimport { setRef } from "../internal/compose-refs";\n\nexport type AvatarImageProps = React.ImgHTMLAttributes<HTMLImageElement> & {\n alt: string;\n onLoadingStatusChange?: (\n status: AvatarImageLoadingStatus,\n details: AvatarLoadingStatusChangeDetails,\n ) => void;\n};\n\nconst AvatarImage = React.forwardRef<HTMLImageElement, AvatarImageProps>(function AvatarImage(\n { onLoadingStatusChange, style, ...props },\n forwardedRef,\n) {\n const imageRef = React.useRef<HTMLImageElement>(null);\n const onLoadingStatusChangeRef = React.useRef(onLoadingStatusChange);\n const hasLoadingStatusChangeCallback = onLoadingStatusChange !== undefined;\n onLoadingStatusChangeRef.current = onLoadingStatusChange;\n\n const composedRef = React.useCallback(\n (node: HTMLImageElement | null) => {\n imageRef.current = node;\n return setRef(forwardedRef, node);\n },\n [forwardedRef],\n );\n\n React.useEffect(() => {\n if (!hasLoadingStatusChangeCallback) return;\n\n const root = imageRef.current?.closest<HTMLElement>("[data-sw-avatar]");\n if (!root) return;\n\n const handleLoadingStatusChange = (event: Event) => {\n const details = (event as CustomEvent<AvatarLoadingStatusChangeDetails>).detail;\n onLoadingStatusChangeRef.current?.(details.status, details);\n };\n\n const notifyCurrentLoadingStatus = () => {\n const status = root.getAttribute(\n "data-image-loading-status",\n ) as AvatarImageLoadingStatus | null;\n if (!status || status === "idle") return;\n\n onLoadingStatusChangeRef.current?.(status, { previousStatus: "idle", status });\n };\n\n root.addEventListener("starwind:loading-status-change", handleLoadingStatusChange);\n notifyCurrentLoadingStatus();\n\n return () => {\n root.removeEventListener("starwind:loading-status-change", handleLoadingStatusChange);\n };\n }, [hasLoadingStatusChangeCallback]);\n\n return (\n <img\n data-sw-avatar-image\n data-image-loading-status="idle"\n ref={composedRef}\n style={{ ...style, visibility: "hidden" }}\n {...props}\n hidden={false}\n />\n );\n});\n\nAvatarImage.displayName = "Avatar.Image";\n\nexport default AvatarImage;\n',
17134
+ sourceHash: "sha256:d1d5743b309b91279659433759e594f2f74581525c762a60752c95e277c79255",
17057
17135
  sourcePath: "packages/react/src/avatar/AvatarImage.tsx"
17058
17136
  },
17059
17137
  {
@@ -17084,7 +17162,7 @@ if (!src && !image) {
17084
17162
  packageRequirements: [
17085
17163
  {
17086
17164
  name: "@starwind-ui/runtime",
17087
- range: "^0.1.0-beta.2"
17165
+ range: "^0.1.0-beta.4"
17088
17166
  },
17089
17167
  {
17090
17168
  name: "react",
@@ -17153,7 +17231,7 @@ if (!src && !image) {
17153
17231
  packageRequirements: [
17154
17232
  {
17155
17233
  name: "@starwind-ui/runtime",
17156
- range: "^0.1.0-beta.2"
17234
+ range: "^0.1.0-beta.4"
17157
17235
  },
17158
17236
  {
17159
17237
  name: "react",
@@ -17228,7 +17306,7 @@ if (!src && !image) {
17228
17306
  packageRequirements: [
17229
17307
  {
17230
17308
  name: "@starwind-ui/runtime",
17231
- range: "^0.1.0-beta.2"
17309
+ range: "^0.1.0-beta.4"
17232
17310
  },
17233
17311
  {
17234
17312
  name: "react",
@@ -17291,7 +17369,7 @@ if (!src && !image) {
17291
17369
  packageRequirements: [
17292
17370
  {
17293
17371
  name: "@starwind-ui/runtime",
17294
- range: "^0.1.0-beta.2"
17372
+ range: "^0.1.0-beta.4"
17295
17373
  },
17296
17374
  {
17297
17375
  name: "react",
@@ -17366,7 +17444,7 @@ if (!src && !image) {
17366
17444
  packageRequirements: [
17367
17445
  {
17368
17446
  name: "@starwind-ui/runtime",
17369
- range: "^0.1.0-beta.2"
17447
+ range: "^0.1.0-beta.4"
17370
17448
  },
17371
17449
  {
17372
17450
  name: "react",
@@ -17381,7 +17459,7 @@ if (!src && !image) {
17381
17459
  {
17382
17460
  component: "popover",
17383
17461
  framework: "react",
17384
- version: "0.1.1",
17462
+ version: "0.1.2",
17385
17463
  files: [
17386
17464
  {
17387
17465
  path: "src/components/starwind-primitives/internal/compose-refs.ts",
@@ -17421,8 +17499,8 @@ if (!src && !image) {
17421
17499
  },
17422
17500
  {
17423
17501
  path: "src/components/starwind-primitives/popover/PopoverPopup.tsx",
17424
- content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\n\nexport type PopoverPopupProps = React.HTMLAttributes<HTMLDivElement> & {\n side?: "top" | "right" | "bottom" | "left";\n align?: "start" | "center" | "end";\n sideOffset?: number;\n avoidCollisions?: boolean;\n};\n\nconst PopoverPopup = React.forwardRef<HTMLDivElement, PopoverPopupProps>(function PopoverPopup(\n { side = "bottom", align = "center", sideOffset = 4, avoidCollisions = true, ...props },\n forwardedRef,\n) {\n return (\n <div\n data-sw-popover-popup\n role="dialog"\n tabIndex={-1}\n data-state="closed"\n data-side={side}\n data-align={align}\n data-side-offset={sideOffset}\n data-avoid-collisions={avoidCollisions ? "true" : "false"}\n hidden\n ref={forwardedRef}\n {...props}\n />\n );\n});\n\nPopoverPopup.displayName = "Popover.Popup";\n\nexport default PopoverPopup;\n',
17425
- sourceHash: "sha256:27070b6339b1ce1f10aef196021ac2e118d6b663ba59fd89fc54258b6ccf4e6e",
17502
+ content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\n\nexport type PopoverPopupProps = React.HTMLAttributes<HTMLDivElement> & {\n side?: "top" | "right" | "bottom" | "left";\n align?: "start" | "center" | "end";\n sideOffset?: number;\n avoidCollisions?: boolean;\n collisionStrategy?: "initial-placement" | "best-fit";\n};\n\nconst PopoverPopup = React.forwardRef<HTMLDivElement, PopoverPopupProps>(function PopoverPopup(\n {\n side = "bottom",\n align = "center",\n sideOffset = 4,\n avoidCollisions = true,\n collisionStrategy = "initial-placement",\n ...props\n },\n forwardedRef,\n) {\n return (\n <div\n data-sw-popover-popup\n role="dialog"\n tabIndex={-1}\n data-state="closed"\n data-side={side}\n data-align={align}\n data-side-offset={sideOffset}\n data-avoid-collisions={avoidCollisions ? "true" : "false"}\n data-collision-strategy={collisionStrategy}\n hidden\n ref={forwardedRef}\n {...props}\n />\n );\n});\n\nPopoverPopup.displayName = "Popover.Popup";\n\nexport default PopoverPopup;\n',
17503
+ sourceHash: "sha256:1a973832ba080be6ceaacea1069e230c4c0c0ecf43b2053222196c7202f5fa30",
17426
17504
  sourcePath: "packages/react/src/popover/PopoverPopup.tsx"
17427
17505
  },
17428
17506
  {
@@ -17433,8 +17511,8 @@ if (!src && !image) {
17433
17511
  },
17434
17512
  {
17435
17513
  path: "src/components/starwind-primitives/popover/PopoverPositioner.tsx",
17436
- content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\n\nexport type PopoverPositionerProps = React.HTMLAttributes<HTMLDivElement> & {\n side?: "top" | "right" | "bottom" | "left";\n align?: "start" | "center" | "end";\n sideOffset?: number;\n avoidCollisions?: boolean;\n};\n\nconst PopoverPositioner = React.forwardRef<HTMLDivElement, PopoverPositionerProps>(\n function PopoverPositioner(\n { side = "bottom", align = "center", sideOffset = 4, avoidCollisions = true, ...props },\n forwardedRef,\n ) {\n return (\n <div\n data-sw-popover-positioner\n data-state="closed"\n data-side={side}\n data-align={align}\n data-side-offset={sideOffset}\n data-avoid-collisions={avoidCollisions ? "true" : "false"}\n ref={forwardedRef}\n {...props}\n />\n );\n },\n);\n\nPopoverPositioner.displayName = "Popover.Positioner";\n\nexport default PopoverPositioner;\n',
17437
- sourceHash: "sha256:7fde7beaaa24b5baf2c92f43fe13b9123b107e62e125ec9a79eaf25d682b2b10",
17514
+ content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\n\nexport type PopoverPositionerProps = React.HTMLAttributes<HTMLDivElement> & {\n side?: "top" | "right" | "bottom" | "left";\n align?: "start" | "center" | "end";\n sideOffset?: number;\n avoidCollisions?: boolean;\n collisionStrategy?: "initial-placement" | "best-fit";\n};\n\nconst PopoverPositioner = React.forwardRef<HTMLDivElement, PopoverPositionerProps>(\n function PopoverPositioner(\n {\n side = "bottom",\n align = "center",\n sideOffset = 4,\n avoidCollisions = true,\n collisionStrategy = "initial-placement",\n ...props\n },\n forwardedRef,\n ) {\n return (\n <div\n data-sw-popover-positioner\n data-state="closed"\n data-side={side}\n data-align={align}\n data-side-offset={sideOffset}\n data-avoid-collisions={avoidCollisions ? "true" : "false"}\n data-collision-strategy={collisionStrategy}\n ref={forwardedRef}\n {...props}\n />\n );\n },\n);\n\nPopoverPositioner.displayName = "Popover.Positioner";\n\nexport default PopoverPositioner;\n',
17515
+ sourceHash: "sha256:c97d07a52c7ba868a203dd03e3c3177dbf66f42f5493e021ebf2691549e29795",
17438
17516
  sourcePath: "packages/react/src/popover/PopoverPositioner.tsx"
17439
17517
  },
17440
17518
  {
@@ -17471,7 +17549,7 @@ if (!src && !image) {
17471
17549
  packageRequirements: [
17472
17550
  {
17473
17551
  name: "@starwind-ui/runtime",
17474
- range: "^0.1.0-beta.2"
17552
+ range: "^0.1.0-beta.4"
17475
17553
  },
17476
17554
  {
17477
17555
  name: "react",
@@ -17558,7 +17636,7 @@ if (!src && !image) {
17558
17636
  packageRequirements: [
17559
17637
  {
17560
17638
  name: "@starwind-ui/runtime",
17561
- range: "^0.1.0-beta.2"
17639
+ range: "^0.1.0-beta.4"
17562
17640
  },
17563
17641
  {
17564
17642
  name: "react",
@@ -17639,7 +17717,7 @@ if (!src && !image) {
17639
17717
  packageRequirements: [
17640
17718
  {
17641
17719
  name: "@starwind-ui/runtime",
17642
- range: "^0.1.0-beta.2"
17720
+ range: "^0.1.0-beta.4"
17643
17721
  },
17644
17722
  {
17645
17723
  name: "react",
@@ -17732,7 +17810,7 @@ if (!src && !image) {
17732
17810
  packageRequirements: [
17733
17811
  {
17734
17812
  name: "@starwind-ui/runtime",
17735
- range: "^0.1.0-beta.2"
17813
+ range: "^0.1.0-beta.4"
17736
17814
  },
17737
17815
  {
17738
17816
  name: "react",
@@ -17825,7 +17903,7 @@ if (!src && !image) {
17825
17903
  packageRequirements: [
17826
17904
  {
17827
17905
  name: "@starwind-ui/runtime",
17828
- range: "^0.1.0-beta.2"
17906
+ range: "^0.1.0-beta.4"
17829
17907
  },
17830
17908
  {
17831
17909
  name: "react",
@@ -17894,7 +17972,7 @@ if (!src && !image) {
17894
17972
  packageRequirements: [
17895
17973
  {
17896
17974
  name: "@starwind-ui/runtime",
17897
- range: "^0.1.0-beta.2"
17975
+ range: "^0.1.0-beta.4"
17898
17976
  },
17899
17977
  {
17900
17978
  name: "react",
@@ -18047,7 +18125,7 @@ if (!src && !image) {
18047
18125
  packageRequirements: [
18048
18126
  {
18049
18127
  name: "@starwind-ui/runtime",
18050
- range: "^0.1.0-beta.2"
18128
+ range: "^0.1.0-beta.4"
18051
18129
  },
18052
18130
  {
18053
18131
  name: "react",
@@ -18158,7 +18236,7 @@ if (!src && !image) {
18158
18236
  packageRequirements: [
18159
18237
  {
18160
18238
  name: "@starwind-ui/runtime",
18161
- range: "^0.1.0-beta.2"
18239
+ range: "^0.1.0-beta.4"
18162
18240
  },
18163
18241
  {
18164
18242
  name: "react",
@@ -18311,7 +18389,7 @@ if (!src && !image) {
18311
18389
  packageRequirements: [
18312
18390
  {
18313
18391
  name: "@starwind-ui/runtime",
18314
- range: "^0.1.0-beta.2"
18392
+ range: "^0.1.0-beta.4"
18315
18393
  },
18316
18394
  {
18317
18395
  name: "react",
@@ -18464,7 +18542,7 @@ if (!src && !image) {
18464
18542
  packageRequirements: [
18465
18543
  {
18466
18544
  name: "@starwind-ui/runtime",
18467
- range: "^0.1.0-beta.2"
18545
+ range: "^0.1.0-beta.4"
18468
18546
  },
18469
18547
  {
18470
18548
  name: "react",
@@ -18539,7 +18617,7 @@ if (!src && !image) {
18539
18617
  packageRequirements: [
18540
18618
  {
18541
18619
  name: "@starwind-ui/runtime",
18542
- range: "^0.1.0-beta.2"
18620
+ range: "^0.1.0-beta.4"
18543
18621
  },
18544
18622
  {
18545
18623
  name: "react",
@@ -18704,7 +18782,7 @@ if (!src && !image) {
18704
18782
  packageRequirements: [
18705
18783
  {
18706
18784
  name: "@starwind-ui/runtime",
18707
- range: "^0.1.0-beta.2"
18785
+ range: "^0.1.0-beta.4"
18708
18786
  },
18709
18787
  {
18710
18788
  name: "react",
@@ -18881,7 +18959,7 @@ if (!src && !image) {
18881
18959
  packageRequirements: [
18882
18960
  {
18883
18961
  name: "@starwind-ui/runtime",
18884
- range: "^0.1.0-beta.2"
18962
+ range: "^0.1.0-beta.4"
18885
18963
  },
18886
18964
  {
18887
18965
  name: "react",
@@ -18974,7 +19052,7 @@ if (!src && !image) {
18974
19052
  packageRequirements: [
18975
19053
  {
18976
19054
  name: "@starwind-ui/runtime",
18977
- range: "^0.1.0-beta.2"
19055
+ range: "^0.1.0-beta.4"
18978
19056
  },
18979
19057
  {
18980
19058
  name: "react",
@@ -19087,10 +19165,10 @@ async function installPrimitiveComponents(componentNames, options) {
19087
19165
  writableArtifacts.flatMap((artifact) => artifact.packageRequirements)
19088
19166
  );
19089
19167
  const packagesToInstall = await filterUninstalledDependencies(
19090
- packageRequirements.map(formatPackageRequirement2)
19168
+ packageRequirements.map(formatPackageRequirement3)
19091
19169
  );
19092
19170
  if (packagesToInstall.length > 0) {
19093
- await installDependencies(packagesToInstall, options.packageManager ?? "npm");
19171
+ await installDependencies(packagesToInstall, options.packageManager);
19094
19172
  }
19095
19173
  for (const artifact of writableArtifacts) {
19096
19174
  const files = plannedFiles.get(artifact);
@@ -19167,7 +19245,7 @@ async function planPrimitiveComponentUpdates(componentNames, options) {
19167
19245
  });
19168
19246
  continue;
19169
19247
  }
19170
- if (!semver8.gt(artifact.version, currentPrimitive.version)) {
19248
+ if (!semver9.gt(artifact.version, currentPrimitive.version)) {
19171
19249
  plan.skipped.push({
19172
19250
  name: componentName,
19173
19251
  status: "skipped",
@@ -19240,7 +19318,7 @@ async function updatePrimitiveComponents(componentNames, options) {
19240
19318
  }
19241
19319
  }
19242
19320
  if (!skipPackageDependentUpdates) {
19243
- await installDependencies(plan.packagesToInstall, options.packageManager ?? "npm");
19321
+ await installDependencies(plan.packagesToInstall, options.packageManager);
19244
19322
  }
19245
19323
  }
19246
19324
  const updatedPrimitives = [...options.config.primitives ?? []];
@@ -19401,11 +19479,11 @@ async function finalizePrimitiveUpdatePackagePlan(plan) {
19401
19479
  plan.updates.flatMap((item) => item.packageRequirements)
19402
19480
  );
19403
19481
  plan.packagesToInstall = await filterUninstalledDependencies(
19404
- plan.packageRequirements.map(formatPackageRequirement2)
19482
+ plan.packageRequirements.map(formatPackageRequirement3)
19405
19483
  );
19406
19484
  const packagesToInstall = new Set(plan.packagesToInstall);
19407
19485
  for (const item of plan.updates) {
19408
- item.packagesToInstall = item.packageRequirements.map(formatPackageRequirement2).filter((requirement) => packagesToInstall.has(requirement));
19486
+ item.packagesToInstall = item.packageRequirements.map(formatPackageRequirement3).filter((requirement) => packagesToInstall.has(requirement));
19409
19487
  }
19410
19488
  }
19411
19489
  function dedupePackageRequirements2(requirements) {
@@ -19424,7 +19502,7 @@ function dedupePackageRequirements2(requirements) {
19424
19502
  }
19425
19503
  return [...deduped.values()];
19426
19504
  }
19427
- function formatPackageRequirement2(requirement) {
19505
+ function formatPackageRequirement3(requirement) {
19428
19506
  return requirement.range === "*" ? requirement.name : `${requirement.name}@${requirement.range}`;
19429
19507
  }
19430
19508
  function toRegistryComponent(artifact) {