starwind 3.0.0-beta.3 → 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.3",
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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" }
@@ -2980,7 +3003,7 @@ export const kbdGroup = tv({
2980
3003
  ],
2981
3004
  componentDependencies: [],
2982
3005
  packageRequirements: [
2983
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
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
  ]
@@ -3026,7 +3049,7 @@ export const kbdGroup = tv({
3026
3049
  ],
3027
3050
  componentDependencies: [],
3028
3051
  packageRequirements: [
3029
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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
  ]
@@ -3286,7 +3309,7 @@ export const kbdGroup = tv({
3286
3309
  ],
3287
3310
  componentDependencies: [],
3288
3311
  packageRequirements: [
3289
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
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
  ]
@@ -3316,7 +3339,7 @@ export const kbdGroup = tv({
3316
3339
  ],
3317
3340
  componentDependencies: [],
3318
3341
  packageRequirements: [
3319
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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" }
@@ -5148,7 +5171,7 @@ export const navigationMenuViewport = tv({
5148
5171
  ],
5149
5172
  componentDependencies: [],
5150
5173
  packageRequirements: [
5151
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
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
  ]
@@ -5170,7 +5193,7 @@ export const navigationMenuViewport = tv({
5170
5193
  ],
5171
5194
  componentDependencies: [],
5172
5195
  packageRequirements: [
5173
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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.3" },
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
  ]
@@ -8262,7 +8285,7 @@ export const button = tv({
8262
8285
  ],
8263
8286
  componentDependencies: [],
8264
8287
  packageRequirements: [
8265
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
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" }
@@ -8297,7 +8320,7 @@ export const button = tv({
8297
8320
  ],
8298
8321
  componentDependencies: [],
8299
8322
  packageRequirements: [
8300
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
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.3" },
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.3" },
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" }
@@ -8510,7 +8533,7 @@ export const button = tv({
8510
8533
  ],
8511
8534
  componentDependencies: [],
8512
8535
  packageRequirements: [
8513
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
8536
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
8514
8537
  { name: "@tabler/icons", range: "^3.37.1" },
8515
8538
  { name: "astro", range: ">=5" },
8516
8539
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8597,7 +8620,7 @@ export const button = tv({
8597
8620
  ],
8598
8621
  componentDependencies: [],
8599
8622
  packageRequirements: [
8600
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
8623
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8601
8624
  { name: "@tabler/icons-react", range: "^3.37.1" },
8602
8625
  { name: "react", range: ">=18" },
8603
8626
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8640,7 +8663,7 @@ export const button = tv({
8640
8663
  ],
8641
8664
  componentDependencies: [],
8642
8665
  packageRequirements: [
8643
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
8666
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
8644
8667
  { name: "@tabler/icons", range: "^3.37.1" },
8645
8668
  { name: "astro", range: ">=5" },
8646
8669
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8675,7 +8698,7 @@ export const button = tv({
8675
8698
  ],
8676
8699
  componentDependencies: [],
8677
8700
  packageRequirements: [
8678
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
8701
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8679
8702
  { name: "@tabler/icons-react", range: "^3.37.1" },
8680
8703
  { name: "react", range: ">=18" },
8681
8704
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8766,7 +8789,7 @@ export const button = tv({
8766
8789
  ],
8767
8790
  componentDependencies: [],
8768
8791
  packageRequirements: [
8769
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
8792
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
8770
8793
  { name: "@tabler/icons", range: "^3.37.1" },
8771
8794
  { name: "astro", range: ">=5" },
8772
8795
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8849,7 +8872,7 @@ export const button = tv({
8849
8872
  ],
8850
8873
  componentDependencies: [],
8851
8874
  packageRequirements: [
8852
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
8875
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8853
8876
  { name: "@tabler/icons-react", range: "^3.37.1" },
8854
8877
  { name: "react", range: ">=18" },
8855
8878
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8859,7 +8882,7 @@ export const button = tv({
8859
8882
  },
8860
8883
  {
8861
8884
  name: "sheet",
8862
- version: "2.0.0",
8885
+ version: "2.0.1",
8863
8886
  type: "component",
8864
8887
  dependencies: [],
8865
8888
  targets: {
@@ -8903,12 +8926,12 @@ export const button = tv({
8903
8926
  },
8904
8927
  {
8905
8928
  path: "src/components/starwind/sheet/variants.ts",
8906
- 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'
8907
8930
  }
8908
8931
  ],
8909
8932
  componentDependencies: ["button"],
8910
8933
  packageRequirements: [
8911
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
8934
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
8912
8935
  { name: "@tabler/icons", range: "^3.37.1" },
8913
8936
  { name: "astro", range: ">=5" },
8914
8937
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -8954,12 +8977,12 @@ export const button = tv({
8954
8977
  },
8955
8978
  {
8956
8979
  path: "src/components/starwind/sheet/variants.ts",
8957
- 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'
8958
8981
  }
8959
8982
  ],
8960
8983
  componentDependencies: ["button"],
8961
8984
  packageRequirements: [
8962
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
8985
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
8963
8986
  { name: "@tabler/icons-react", range: "^3.37.1" },
8964
8987
  { name: "react", range: ">=18" },
8965
8988
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -9082,7 +9105,7 @@ export const button = tv({
9082
9105
  ],
9083
9106
  componentDependencies: ["button", "input", "separator", "sheet", "skeleton", "tooltip"],
9084
9107
  packageRequirements: [
9085
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
9108
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
9086
9109
  { name: "@tabler/icons", range: "^3.37.1" },
9087
9110
  { name: "astro", range: ">=5" },
9088
9111
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -9197,7 +9220,7 @@ export const button = tv({
9197
9220
  ],
9198
9221
  componentDependencies: ["button", "input", "separator", "sheet", "skeleton", "tooltip"],
9199
9222
  packageRequirements: [
9200
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
9223
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
9201
9224
  { name: "@tabler/icons-react", range: "^3.37.1" },
9202
9225
  { name: "react", range: ">=18" },
9203
9226
  { name: "tailwind-variants", range: "^3.2.2" }
@@ -9228,7 +9251,7 @@ export const button = tv({
9228
9251
  ],
9229
9252
  componentDependencies: [],
9230
9253
  packageRequirements: [
9231
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
9254
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
9232
9255
  { name: "astro", range: ">=5" },
9233
9256
  { name: "tailwind-variants", range: "^3.2.2" }
9234
9257
  ]
@@ -9262,7 +9285,7 @@ export const button = tv({
9262
9285
  ],
9263
9286
  componentDependencies: [],
9264
9287
  packageRequirements: [
9265
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
9288
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
9266
9289
  { name: "astro", range: ">=5" },
9267
9290
  { name: "tailwind-variants", range: "^3.2.2" }
9268
9291
  ]
@@ -9288,7 +9311,7 @@ export const button = tv({
9288
9311
  ],
9289
9312
  componentDependencies: [],
9290
9313
  packageRequirements: [
9291
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
9314
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
9292
9315
  { name: "react", range: ">=18" },
9293
9316
  { name: "tailwind-variants", range: "^3.2.2" }
9294
9317
  ]
@@ -9366,7 +9389,7 @@ export const button = tv({
9366
9389
  ],
9367
9390
  componentDependencies: ["separator"],
9368
9391
  packageRequirements: [
9369
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
9392
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
9370
9393
  { name: "astro", range: ">=5" },
9371
9394
  { name: "tailwind-variants", range: "^3.2.2" }
9372
9395
  ]
@@ -9436,7 +9459,7 @@ export const button = tv({
9436
9459
  ],
9437
9460
  componentDependencies: ["separator"],
9438
9461
  packageRequirements: [
9439
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
9462
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
9440
9463
  { name: "react", range: ">=18" },
9441
9464
  { name: "tailwind-variants", range: "^3.2.2" }
9442
9465
  ]
@@ -9445,7 +9468,7 @@ export const button = tv({
9445
9468
  },
9446
9469
  {
9447
9470
  name: "popover",
9448
- version: "2.0.0",
9471
+ version: "2.0.1",
9449
9472
  type: "component",
9450
9473
  dependencies: [],
9451
9474
  targets: {
@@ -9457,7 +9480,7 @@ export const button = tv({
9457
9480
  },
9458
9481
  {
9459
9482
  path: "src/components/starwind/popover/PopoverContent.astro",
9460
- 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'
9461
9484
  },
9462
9485
  {
9463
9486
  path: "src/components/starwind/popover/PopoverDescription.astro",
@@ -9486,7 +9509,7 @@ export const button = tv({
9486
9509
  ],
9487
9510
  componentDependencies: [],
9488
9511
  packageRequirements: [
9489
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
9512
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
9490
9513
  { name: "astro", range: ">=5" },
9491
9514
  { name: "tailwind-variants", range: "^3.2.2" }
9492
9515
  ]
@@ -9499,7 +9522,7 @@ export const button = tv({
9499
9522
  },
9500
9523
  {
9501
9524
  path: "src/components/starwind/popover/PopoverContent.tsx",
9502
- 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'
9503
9526
  },
9504
9527
  {
9505
9528
  path: "src/components/starwind/popover/PopoverDescription.tsx",
@@ -9528,7 +9551,7 @@ export const button = tv({
9528
9551
  ],
9529
9552
  componentDependencies: [],
9530
9553
  packageRequirements: [
9531
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
9554
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
9532
9555
  { name: "react", range: ">=18" },
9533
9556
  { name: "tailwind-variants", range: "^3.2.2" }
9534
9557
  ]
@@ -9537,7 +9560,7 @@ export const button = tv({
9537
9560
  },
9538
9561
  {
9539
9562
  name: "alert-dialog",
9540
- version: "2.0.0",
9563
+ version: "2.0.1",
9541
9564
  type: "component",
9542
9565
  dependencies: [],
9543
9566
  targets: {
@@ -9590,6 +9613,7 @@ export const button = tv({
9590
9613
  export const alertDialogBackdrop = tv({
9591
9614
  base: [
9592
9615
  "fixed inset-0 z-50 hidden bg-black/50 duration-200",
9616
+ "data-starting-style:!animate-none data-starting-style:opacity-0",
9593
9617
  "data-[state=open]:animate-in fade-in",
9594
9618
  "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",
9595
9619
  ],
@@ -9599,6 +9623,7 @@ export const alertDialogContent = tv({
9599
9623
  base: [
9600
9624
  "bg-background space-y-4 rounded-lg border p-6 shadow-lg sm:max-w-lg",
9601
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",
9602
9627
  "data-[state=open]:animate-in fade-in zoom-in-95 will-change-transform duration-200",
9603
9628
  "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out zoom-out-95",
9604
9629
  ],
@@ -9704,7 +9729,7 @@ export const alertDialogCancelAsChild = tv({
9704
9729
  ],
9705
9730
  componentDependencies: ["button"],
9706
9731
  packageRequirements: [
9707
- { name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
9732
+ { name: "@starwind-ui/astro", range: "^0.1.0-beta.4" },
9708
9733
  { name: "astro", range: ">=5" },
9709
9734
  { name: "tailwind-variants", range: "^3.2.2" }
9710
9735
  ]
@@ -9758,6 +9783,7 @@ export const alertDialogCancelAsChild = tv({
9758
9783
  export const alertDialogBackdrop = tv({
9759
9784
  base: [
9760
9785
  "fixed inset-0 z-50 hidden bg-black/50 duration-200",
9786
+ "data-starting-style:!animate-none data-starting-style:opacity-0",
9761
9787
  "data-[state=open]:animate-in fade-in",
9762
9788
  "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",
9763
9789
  ],
@@ -9767,6 +9793,7 @@ export const alertDialogContent = tv({
9767
9793
  base: [
9768
9794
  "bg-background space-y-4 rounded-lg border p-6 shadow-lg sm:max-w-lg",
9769
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",
9770
9797
  "data-[state=open]:animate-in fade-in zoom-in-95 will-change-transform duration-200",
9771
9798
  "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out zoom-out-95",
9772
9799
  ],
@@ -9872,7 +9899,7 @@ export const alertDialogCancelAsChild = tv({
9872
9899
  ],
9873
9900
  componentDependencies: ["button"],
9874
9901
  packageRequirements: [
9875
- { name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
9902
+ { name: "@starwind-ui/react", range: "^0.1.0-beta.4" },
9876
9903
  { name: "react", range: ">=18" },
9877
9904
  { name: "tailwind-variants", range: "^3.2.2" }
9878
9905
  ]
@@ -9917,6 +9944,7 @@ function getStyledRegistrySource(config, registryReference) {
9917
9944
  }
9918
9945
  }
9919
9946
  var VALID_TARGETS = /* @__PURE__ */ new Set(["legacy-astro", "astro", "react"]);
9947
+ var VALID_SETUP_TARGETS = /* @__PURE__ */ new Set(["astro", "react"]);
9920
9948
  var REQUIRED_TARGET_PACKAGES = {
9921
9949
  "legacy-astro": [],
9922
9950
  astro: ["@starwind-ui/astro"],
@@ -9957,6 +9985,40 @@ var packageRequirementSchema = z2.object({
9957
9985
  name: registryPackageNameSchema,
9958
9986
  range: semverRangeSchema
9959
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
+ });
9960
10022
  var publicRenameSchema = z2.object({
9961
10023
  from: z2.string().min(1),
9962
10024
  to: z2.string().min(1)
@@ -10054,6 +10116,7 @@ var registryComponentArtifactSchema = z2.object({
10054
10116
  var registryRootSchema = z2.object({
10055
10117
  $schema: z2.string().optional(),
10056
10118
  version: semverVersionSchema,
10119
+ setup: registrySetupSchema.optional(),
10057
10120
  components: z2.array(componentSchema)
10058
10121
  }).strict();
10059
10122
  var defaultRegistrySource = { type: "bundled" };
@@ -10411,7 +10474,7 @@ async function installRuntimeComponents(componentNames, options) {
10411
10474
  packageRequirements.map(formatPackageRequirement)
10412
10475
  );
10413
10476
  if (packagesToInstall.length > 0) {
10414
- await installDependencies(packagesToInstall, options.packageManager ?? "npm");
10477
+ await installDependencies(packagesToInstall, options.packageManager);
10415
10478
  }
10416
10479
  const installedComponents = [];
10417
10480
  const applyOutcomes = /* @__PURE__ */ new Map();
@@ -10623,7 +10686,7 @@ async function updateRuntimeComponents(componentNames, options) {
10623
10686
  }
10624
10687
  }
10625
10688
  if (!skipPackageDependentUpdates) {
10626
- await installDependencies(plan.packagesToInstall, options.packageManager ?? "npm");
10689
+ await installDependencies(plan.packagesToInstall, options.packageManager);
10627
10690
  }
10628
10691
  }
10629
10692
  for (const item of plan.updates) {
@@ -11237,7 +11300,7 @@ async function isValidComponent(component, availableComponents) {
11237
11300
  // src/commands/init.ts
11238
11301
  import path7 from "path";
11239
11302
  import * as p9 from "@clack/prompts";
11240
- import semver7 from "semver";
11303
+ import semver8 from "semver";
11241
11304
 
11242
11305
  // src/templates/starwind.css.ts
11243
11306
  var tailwindConfig = `@import "tailwindcss";
@@ -11693,6 +11756,30 @@ async function setupLayoutCssImport(cssPath) {
11693
11756
  }
11694
11757
  }
11695
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
+
11696
11783
  // src/utils/snippets.ts
11697
11784
  var THEME_TOGGLE_SNIPPET = {
11698
11785
  "Starwind UI Theme Toggle": {
@@ -12551,27 +12638,6 @@ function resolveFrameworkOption(options) {
12551
12638
  }
12552
12639
  return selected[0];
12553
12640
  }
12554
- function getRuntimeSetupPackages(framework, registry) {
12555
- const adapterPackage = framework === "astro" ? "@starwind-ui/astro" : "@starwind-ui/react";
12556
- const adapterRanges = new Set(
12557
- registry.components.flatMap(
12558
- (component) => (component.targets?.[framework]?.packageRequirements ?? []).filter((requirement) => requirement.name === adapterPackage).map((requirement) => requirement.range)
12559
- )
12560
- );
12561
- if (adapterRanges.size !== 1) {
12562
- throw new Error(
12563
- `Bundled registry must declare one consistent ${adapterPackage} package requirement.`
12564
- );
12565
- }
12566
- const adapterRange = [...adapterRanges][0];
12567
- const adapterVersion = semver7.minVersion(adapterRange)?.version;
12568
- if (!adapterVersion) {
12569
- throw new Error(
12570
- `Bundled registry declares an invalid ${adapterPackage} range: ${adapterRange}`
12571
- );
12572
- }
12573
- return [`${adapterPackage}@${adapterVersion}`];
12574
- }
12575
12641
  function getProNextStepsMessage() {
12576
12642
  return `Starwind Pro is now configured! You can install pro components using
12577
12643
  ${highlighter.info("starwind add @starwind-pro/component-name")}
@@ -12929,23 +12995,21 @@ async function init(withinAdd = false, options) {
12929
12995
  }
12930
12996
  }
12931
12997
  const pm = options?.packageManager ?? detectPackageManager().name;
12932
- const runtimeSetupPackages = getRuntimeSetupPackages(
12998
+ const runtimeSetupPlan = getRuntimeSetupPlan(
12933
12999
  configChoices.framework,
12934
13000
  bundledRegistry
12935
13001
  );
12936
- if (runtimeSetupPackages.length > 0) {
12937
- installTasks.push({
12938
- title: "Installing Starwind Runtime packages",
12939
- task: async () => {
12940
- await installDependencies(runtimeSetupPackages, pm);
12941
- return "Installed Starwind Runtime packages successfully";
12942
- }
12943
- });
12944
- }
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
+ });
12945
13009
  if (configChoices.framework === "astro") {
12946
13010
  if (pkg.dependencies?.astro) {
12947
13011
  const astroVersion = pkg.dependencies.astro.replace(/^\^|~/, "");
12948
- if (!semver7.gte(astroVersion, MIN_ASTRO_VERSION)) {
13012
+ if (!semver8.gte(astroVersion, MIN_ASTRO_VERSION)) {
12949
13013
  const shouldUpgrade = options?.defaults ? true : await p9.confirm({
12950
13014
  message: `Starwind requires Astro v${MIN_ASTRO_VERSION} or higher. Would you like to upgrade from v${astroVersion}?`,
12951
13015
  initialValue: true
@@ -12988,7 +13052,7 @@ async function init(withinAdd = false, options) {
12988
13052
  });
12989
13053
  }
12990
13054
  }
12991
- const otherPackages = getOtherPackages();
13055
+ const otherPackages = runtimeSetupPlan.packageRequirements;
12992
13056
  const shouldInstall = options?.defaults ? true : await p9.confirm({
12993
13057
  message: `Install ${highlighter.info(otherPackages.join(", "))} using ${highlighter.info(pm)}?`
12994
13058
  });
@@ -13000,7 +13064,7 @@ async function init(withinAdd = false, options) {
13000
13064
  installTasks.push({
13001
13065
  title: `Installing packages`,
13002
13066
  task: async () => {
13003
- await installDependencies(getOtherPackages(), pm, false, false);
13067
+ await installDependencies(otherPackages, pm, false, false);
13004
13068
  return `${highlighter.info("Packages installed successfully")}`;
13005
13069
  }
13006
13070
  });
@@ -13051,7 +13115,11 @@ async function add(components, options) {
13051
13115
  process.exit(0);
13052
13116
  }
13053
13117
  if (shouldInit) {
13054
- await init(true, { defaults: options?.yes, packageManager });
13118
+ await init(true, {
13119
+ defaults: options?.yes,
13120
+ framework: options?.framework,
13121
+ packageManager
13122
+ });
13055
13123
  } else {
13056
13124
  p10.log.error(
13057
13125
  `Please initialize starwind with ${highlighter.info("starwind init")} before adding components`
@@ -13422,7 +13490,7 @@ import * as p13 from "@clack/prompts";
13422
13490
  import path8 from "path";
13423
13491
  import * as p12 from "@clack/prompts";
13424
13492
  import fs9 from "fs-extra";
13425
- import semver8 from "semver";
13493
+ import semver9 from "semver";
13426
13494
 
13427
13495
  // src/registry/primitive-vendoring-artifacts.json
13428
13496
  var primitive_vendoring_artifacts_default = {
@@ -13519,7 +13587,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13519
13587
  packageRequirements: [
13520
13588
  {
13521
13589
  name: "@starwind-ui/runtime",
13522
- range: "^0.1.0-beta.3"
13590
+ range: "^0.1.0-beta.4"
13523
13591
  },
13524
13592
  {
13525
13593
  name: "astro",
@@ -13584,7 +13652,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13584
13652
  packageRequirements: [
13585
13653
  {
13586
13654
  name: "@starwind-ui/runtime",
13587
- range: "^0.1.0-beta.3"
13655
+ range: "^0.1.0-beta.4"
13588
13656
  },
13589
13657
  {
13590
13658
  name: "astro",
@@ -13619,7 +13687,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13619
13687
  packageRequirements: [
13620
13688
  {
13621
13689
  name: "@starwind-ui/runtime",
13622
- range: "^0.1.0-beta.3"
13690
+ range: "^0.1.0-beta.4"
13623
13691
  },
13624
13692
  {
13625
13693
  name: "astro",
@@ -13690,7 +13758,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13690
13758
  packageRequirements: [
13691
13759
  {
13692
13760
  name: "@starwind-ui/runtime",
13693
- range: "^0.1.0-beta.3"
13761
+ range: "^0.1.0-beta.4"
13694
13762
  },
13695
13763
  {
13696
13764
  name: "astro",
@@ -13731,7 +13799,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13731
13799
  packageRequirements: [
13732
13800
  {
13733
13801
  name: "@starwind-ui/runtime",
13734
- range: "^0.1.0-beta.3"
13802
+ range: "^0.1.0-beta.4"
13735
13803
  },
13736
13804
  {
13737
13805
  name: "astro",
@@ -13742,7 +13810,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13742
13810
  {
13743
13811
  component: "form",
13744
13812
  framework: "astro",
13745
- version: "0.1.0",
13813
+ version: "0.2.0",
13746
13814
  files: [
13747
13815
  {
13748
13816
  path: "src/components/starwind-primitives/form/FormErrorSummary.astro",
@@ -13758,8 +13826,8 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13758
13826
  },
13759
13827
  {
13760
13828
  path: "src/components/starwind-primitives/form/index.ts",
13761
- 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',
13762
- 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",
13763
13831
  sourcePath: "packages/astro/src/form/index.ts"
13764
13832
  },
13765
13833
  {
@@ -13772,7 +13840,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13772
13840
  packageRequirements: [
13773
13841
  {
13774
13842
  name: "@starwind-ui/runtime",
13775
- range: "^0.1.0-beta.3"
13843
+ range: "^0.1.0-beta.4"
13776
13844
  },
13777
13845
  {
13778
13846
  name: "astro",
@@ -13807,7 +13875,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13807
13875
  packageRequirements: [
13808
13876
  {
13809
13877
  name: "@starwind-ui/runtime",
13810
- range: "^0.1.0-beta.3"
13878
+ range: "^0.1.0-beta.4"
13811
13879
  },
13812
13880
  {
13813
13881
  name: "astro",
@@ -13848,7 +13916,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13848
13916
  packageRequirements: [
13849
13917
  {
13850
13918
  name: "@starwind-ui/runtime",
13851
- range: "^0.1.0-beta.3"
13919
+ range: "^0.1.0-beta.4"
13852
13920
  },
13853
13921
  {
13854
13922
  name: "astro",
@@ -13889,7 +13957,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13889
13957
  packageRequirements: [
13890
13958
  {
13891
13959
  name: "@starwind-ui/runtime",
13892
- range: "^0.1.0-beta.3"
13960
+ range: "^0.1.0-beta.4"
13893
13961
  },
13894
13962
  {
13895
13963
  name: "astro",
@@ -13930,7 +13998,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13930
13998
  packageRequirements: [
13931
13999
  {
13932
14000
  name: "@starwind-ui/runtime",
13933
- range: "^0.1.0-beta.3"
14001
+ range: "^0.1.0-beta.4"
13934
14002
  },
13935
14003
  {
13936
14004
  name: "astro",
@@ -13995,7 +14063,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
13995
14063
  packageRequirements: [
13996
14064
  {
13997
14065
  name: "@starwind-ui/runtime",
13998
- range: "^0.1.0-beta.3"
14066
+ range: "^0.1.0-beta.4"
13999
14067
  },
14000
14068
  {
14001
14069
  name: "astro",
@@ -14042,7 +14110,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14042
14110
  packageRequirements: [
14043
14111
  {
14044
14112
  name: "@starwind-ui/runtime",
14045
- range: "^0.1.0-beta.3"
14113
+ range: "^0.1.0-beta.4"
14046
14114
  },
14047
14115
  {
14048
14116
  name: "astro",
@@ -14077,7 +14145,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14077
14145
  packageRequirements: [
14078
14146
  {
14079
14147
  name: "@starwind-ui/runtime",
14080
- range: "^0.1.0-beta.3"
14148
+ range: "^0.1.0-beta.4"
14081
14149
  },
14082
14150
  {
14083
14151
  name: "astro",
@@ -14112,7 +14180,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14112
14180
  packageRequirements: [
14113
14181
  {
14114
14182
  name: "@starwind-ui/runtime",
14115
- range: "^0.1.0-beta.3"
14183
+ range: "^0.1.0-beta.4"
14116
14184
  },
14117
14185
  {
14118
14186
  name: "astro",
@@ -14147,7 +14215,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14147
14215
  packageRequirements: [
14148
14216
  {
14149
14217
  name: "@starwind-ui/runtime",
14150
- range: "^0.1.0-beta.3"
14218
+ range: "^0.1.0-beta.4"
14151
14219
  },
14152
14220
  {
14153
14221
  name: "astro",
@@ -14206,7 +14274,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14206
14274
  packageRequirements: [
14207
14275
  {
14208
14276
  name: "@starwind-ui/runtime",
14209
- range: "^0.1.0-beta.3"
14277
+ range: "^0.1.0-beta.4"
14210
14278
  },
14211
14279
  {
14212
14280
  name: "astro",
@@ -14265,7 +14333,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14265
14333
  packageRequirements: [
14266
14334
  {
14267
14335
  name: "@starwind-ui/runtime",
14268
- range: "^0.1.0-beta.3"
14336
+ range: "^0.1.0-beta.4"
14269
14337
  },
14270
14338
  {
14271
14339
  name: "astro",
@@ -14276,7 +14344,7 @@ const { type = "button", disabled = false, focusableWhenDisabled = false, ...res
14276
14344
  {
14277
14345
  component: "avatar",
14278
14346
  framework: "astro",
14279
- version: "0.1.0",
14347
+ version: "0.1.1",
14280
14348
  files: [
14281
14349
  {
14282
14350
  path: "src/components/starwind-primitives/avatar/AvatarFallback.astro",
@@ -14300,7 +14368,9 @@ type Props = HTMLAttributes<"img"> & {
14300
14368
  src?: string;
14301
14369
  };
14302
14370
 
14303
- 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" };
14304
14374
 
14305
14375
  if (!src && !image) {
14306
14376
  throw new Error("Either 'src' or 'image' is required for an avatar image.");
@@ -14312,11 +14382,11 @@ if (!src && !image) {
14312
14382
  <img
14313
14383
  data-sw-avatar-image
14314
14384
  data-image-loading-status="idle"
14315
- hidden
14316
14385
  src={src}
14317
14386
  alt={alt}
14318
14387
  width={64}
14319
14388
  height={64}
14389
+ style={initialStyle}
14320
14390
  {...rest}
14321
14391
  />
14322
14392
  )
@@ -14326,16 +14396,16 @@ if (!src && !image) {
14326
14396
  <Image
14327
14397
  data-sw-avatar-image
14328
14398
  data-image-loading-status="idle"
14329
- hidden
14330
14399
  src={image}
14331
14400
  alt={alt}
14332
14401
  width={64}
14402
+ style={initialStyle}
14333
14403
  {...rest}
14334
14404
  />
14335
14405
  )
14336
14406
  }
14337
14407
  `,
14338
- sourceHash: "sha256:bb854a69ed69749c6dc0cca7213b76775d75f0b947a2d7c4b0cdc286e0676901",
14408
+ sourceHash: "sha256:d0d22f8e6401101cbe833d851e0abd4602eff8a1e2e888c92f10d6a7f8cc0eb6",
14339
14409
  sourcePath: "packages/astro/src/avatar/AvatarImage.astro"
14340
14410
  },
14341
14411
  {
@@ -14360,7 +14430,7 @@ if (!src && !image) {
14360
14430
  packageRequirements: [
14361
14431
  {
14362
14432
  name: "@starwind-ui/runtime",
14363
- range: "^0.1.0-beta.3"
14433
+ range: "^0.1.0-beta.4"
14364
14434
  },
14365
14435
  {
14366
14436
  name: "astro",
@@ -14419,7 +14489,7 @@ if (!src && !image) {
14419
14489
  packageRequirements: [
14420
14490
  {
14421
14491
  name: "@starwind-ui/runtime",
14422
- range: "^0.1.0-beta.3"
14492
+ range: "^0.1.0-beta.4"
14423
14493
  },
14424
14494
  {
14425
14495
  name: "astro",
@@ -14484,7 +14554,7 @@ if (!src && !image) {
14484
14554
  packageRequirements: [
14485
14555
  {
14486
14556
  name: "@starwind-ui/runtime",
14487
- range: "^0.1.0-beta.3"
14557
+ range: "^0.1.0-beta.4"
14488
14558
  },
14489
14559
  {
14490
14560
  name: "astro",
@@ -14537,7 +14607,7 @@ if (!src && !image) {
14537
14607
  packageRequirements: [
14538
14608
  {
14539
14609
  name: "@starwind-ui/runtime",
14540
- range: "^0.1.0-beta.3"
14610
+ range: "^0.1.0-beta.4"
14541
14611
  },
14542
14612
  {
14543
14613
  name: "astro",
@@ -14602,7 +14672,7 @@ if (!src && !image) {
14602
14672
  packageRequirements: [
14603
14673
  {
14604
14674
  name: "@starwind-ui/runtime",
14605
- range: "^0.1.0-beta.3"
14675
+ range: "^0.1.0-beta.4"
14606
14676
  },
14607
14677
  {
14608
14678
  name: "astro",
@@ -14613,7 +14683,7 @@ if (!src && !image) {
14613
14683
  {
14614
14684
  component: "popover",
14615
14685
  framework: "astro",
14616
- version: "0.1.1",
14686
+ version: "0.1.2",
14617
14687
  files: [
14618
14688
  {
14619
14689
  path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
@@ -14647,8 +14717,8 @@ if (!src && !image) {
14647
14717
  },
14648
14718
  {
14649
14719
  path: "src/components/starwind-primitives/popover/PopoverPopup.astro",
14650
- 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',
14651
- 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",
14652
14722
  sourcePath: "packages/astro/src/popover/PopoverPopup.astro"
14653
14723
  },
14654
14724
  {
@@ -14659,8 +14729,8 @@ if (!src && !image) {
14659
14729
  },
14660
14730
  {
14661
14731
  path: "src/components/starwind-primitives/popover/PopoverPositioner.astro",
14662
- 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',
14663
- 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",
14664
14734
  sourcePath: "packages/astro/src/popover/PopoverPositioner.astro"
14665
14735
  },
14666
14736
  {
@@ -14697,7 +14767,7 @@ if (!src && !image) {
14697
14767
  packageRequirements: [
14698
14768
  {
14699
14769
  name: "@starwind-ui/runtime",
14700
- range: "^0.1.0-beta.3"
14770
+ range: "^0.1.0-beta.4"
14701
14771
  },
14702
14772
  {
14703
14773
  name: "astro",
@@ -14774,7 +14844,7 @@ if (!src && !image) {
14774
14844
  packageRequirements: [
14775
14845
  {
14776
14846
  name: "@starwind-ui/runtime",
14777
- range: "^0.1.0-beta.3"
14847
+ range: "^0.1.0-beta.4"
14778
14848
  },
14779
14849
  {
14780
14850
  name: "astro",
@@ -14845,7 +14915,7 @@ if (!src && !image) {
14845
14915
  packageRequirements: [
14846
14916
  {
14847
14917
  name: "@starwind-ui/runtime",
14848
- range: "^0.1.0-beta.3"
14918
+ range: "^0.1.0-beta.4"
14849
14919
  },
14850
14920
  {
14851
14921
  name: "astro",
@@ -14928,7 +14998,7 @@ if (!src && !image) {
14928
14998
  packageRequirements: [
14929
14999
  {
14930
15000
  name: "@starwind-ui/runtime",
14931
- range: "^0.1.0-beta.3"
15001
+ range: "^0.1.0-beta.4"
14932
15002
  },
14933
15003
  {
14934
15004
  name: "astro",
@@ -15011,7 +15081,7 @@ if (!src && !image) {
15011
15081
  packageRequirements: [
15012
15082
  {
15013
15083
  name: "@starwind-ui/runtime",
15014
- range: "^0.1.0-beta.3"
15084
+ range: "^0.1.0-beta.4"
15015
15085
  },
15016
15086
  {
15017
15087
  name: "astro",
@@ -15070,7 +15140,7 @@ if (!src && !image) {
15070
15140
  packageRequirements: [
15071
15141
  {
15072
15142
  name: "@starwind-ui/runtime",
15073
- range: "^0.1.0-beta.3"
15143
+ range: "^0.1.0-beta.4"
15074
15144
  },
15075
15145
  {
15076
15146
  name: "astro",
@@ -15207,7 +15277,7 @@ if (!src && !image) {
15207
15277
  packageRequirements: [
15208
15278
  {
15209
15279
  name: "@starwind-ui/runtime",
15210
- range: "^0.1.0-beta.3"
15280
+ range: "^0.1.0-beta.4"
15211
15281
  },
15212
15282
  {
15213
15283
  name: "astro",
@@ -15308,7 +15378,7 @@ if (!src && !image) {
15308
15378
  packageRequirements: [
15309
15379
  {
15310
15380
  name: "@starwind-ui/runtime",
15311
- range: "^0.1.0-beta.3"
15381
+ range: "^0.1.0-beta.4"
15312
15382
  },
15313
15383
  {
15314
15384
  name: "astro",
@@ -15463,7 +15533,7 @@ if (!src && !image) {
15463
15533
  packageRequirements: [
15464
15534
  {
15465
15535
  name: "@starwind-ui/runtime",
15466
- range: "^0.1.0-beta.3"
15536
+ range: "^0.1.0-beta.4"
15467
15537
  },
15468
15538
  {
15469
15539
  name: "astro",
@@ -15594,7 +15664,7 @@ if (!src && !image) {
15594
15664
  packageRequirements: [
15595
15665
  {
15596
15666
  name: "@starwind-ui/runtime",
15597
- range: "^0.1.0-beta.3"
15667
+ range: "^0.1.0-beta.4"
15598
15668
  },
15599
15669
  {
15600
15670
  name: "astro",
@@ -15653,7 +15723,7 @@ if (!src && !image) {
15653
15723
  packageRequirements: [
15654
15724
  {
15655
15725
  name: "@starwind-ui/runtime",
15656
- range: "^0.1.0-beta.3"
15726
+ range: "^0.1.0-beta.4"
15657
15727
  },
15658
15728
  {
15659
15729
  name: "astro",
@@ -15796,7 +15866,7 @@ if (!src && !image) {
15796
15866
  packageRequirements: [
15797
15867
  {
15798
15868
  name: "@starwind-ui/runtime",
15799
- range: "^0.1.0-beta.3"
15869
+ range: "^0.1.0-beta.4"
15800
15870
  },
15801
15871
  {
15802
15872
  name: "astro",
@@ -15969,7 +16039,7 @@ if (!src && !image) {
15969
16039
  packageRequirements: [
15970
16040
  {
15971
16041
  name: "@starwind-ui/runtime",
15972
- range: "^0.1.0-beta.3"
16042
+ range: "^0.1.0-beta.4"
15973
16043
  },
15974
16044
  {
15975
16045
  name: "astro",
@@ -16052,7 +16122,7 @@ if (!src && !image) {
16052
16122
  packageRequirements: [
16053
16123
  {
16054
16124
  name: "@starwind-ui/runtime",
16055
- range: "^0.1.0-beta.3"
16125
+ range: "^0.1.0-beta.4"
16056
16126
  },
16057
16127
  {
16058
16128
  name: "astro",
@@ -16093,7 +16163,7 @@ if (!src && !image) {
16093
16163
  packageRequirements: [
16094
16164
  {
16095
16165
  name: "@starwind-ui/runtime",
16096
- range: "^0.1.0-beta.3"
16166
+ range: "^0.1.0-beta.4"
16097
16167
  },
16098
16168
  {
16099
16169
  name: "react",
@@ -16168,7 +16238,7 @@ if (!src && !image) {
16168
16238
  packageRequirements: [
16169
16239
  {
16170
16240
  name: "@starwind-ui/runtime",
16171
- range: "^0.1.0-beta.3"
16241
+ range: "^0.1.0-beta.4"
16172
16242
  },
16173
16243
  {
16174
16244
  name: "react",
@@ -16213,7 +16283,7 @@ if (!src && !image) {
16213
16283
  packageRequirements: [
16214
16284
  {
16215
16285
  name: "@starwind-ui/runtime",
16216
- range: "^0.1.0-beta.3"
16286
+ range: "^0.1.0-beta.4"
16217
16287
  },
16218
16288
  {
16219
16289
  name: "react",
@@ -16300,7 +16370,7 @@ if (!src && !image) {
16300
16370
  packageRequirements: [
16301
16371
  {
16302
16372
  name: "@starwind-ui/runtime",
16303
- range: "^0.1.0-beta.3"
16373
+ range: "^0.1.0-beta.4"
16304
16374
  },
16305
16375
  {
16306
16376
  name: "react",
@@ -16351,7 +16421,7 @@ if (!src && !image) {
16351
16421
  packageRequirements: [
16352
16422
  {
16353
16423
  name: "@starwind-ui/runtime",
16354
- range: "^0.1.0-beta.3"
16424
+ range: "^0.1.0-beta.4"
16355
16425
  },
16356
16426
  {
16357
16427
  name: "react",
@@ -16366,7 +16436,7 @@ if (!src && !image) {
16366
16436
  {
16367
16437
  component: "form",
16368
16438
  framework: "react",
16369
- version: "0.1.0",
16439
+ version: "0.2.0",
16370
16440
  files: [
16371
16441
  {
16372
16442
  path: "src/components/starwind-primitives/form/FormErrorSummary.tsx",
@@ -16382,8 +16452,8 @@ if (!src && !image) {
16382
16452
  },
16383
16453
  {
16384
16454
  path: "src/components/starwind-primitives/form/index.ts",
16385
- 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',
16386
- 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",
16387
16457
  sourcePath: "packages/react/src/form/index.ts"
16388
16458
  },
16389
16459
  {
@@ -16402,7 +16472,7 @@ if (!src && !image) {
16402
16472
  packageRequirements: [
16403
16473
  {
16404
16474
  name: "@starwind-ui/runtime",
16405
- range: "^0.1.0-beta.3"
16475
+ range: "^0.1.0-beta.4"
16406
16476
  },
16407
16477
  {
16408
16478
  name: "react",
@@ -16447,7 +16517,7 @@ if (!src && !image) {
16447
16517
  packageRequirements: [
16448
16518
  {
16449
16519
  name: "@starwind-ui/runtime",
16450
- range: "^0.1.0-beta.3"
16520
+ range: "^0.1.0-beta.4"
16451
16521
  },
16452
16522
  {
16453
16523
  name: "react",
@@ -16498,7 +16568,7 @@ if (!src && !image) {
16498
16568
  packageRequirements: [
16499
16569
  {
16500
16570
  name: "@starwind-ui/runtime",
16501
- range: "^0.1.0-beta.3"
16571
+ range: "^0.1.0-beta.4"
16502
16572
  },
16503
16573
  {
16504
16574
  name: "react",
@@ -16555,7 +16625,7 @@ if (!src && !image) {
16555
16625
  packageRequirements: [
16556
16626
  {
16557
16627
  name: "@starwind-ui/runtime",
16558
- range: "^0.1.0-beta.3"
16628
+ range: "^0.1.0-beta.4"
16559
16629
  },
16560
16630
  {
16561
16631
  name: "react",
@@ -16612,7 +16682,7 @@ if (!src && !image) {
16612
16682
  packageRequirements: [
16613
16683
  {
16614
16684
  name: "@starwind-ui/runtime",
16615
- range: "^0.1.0-beta.3"
16685
+ range: "^0.1.0-beta.4"
16616
16686
  },
16617
16687
  {
16618
16688
  name: "react",
@@ -16687,7 +16757,7 @@ if (!src && !image) {
16687
16757
  packageRequirements: [
16688
16758
  {
16689
16759
  name: "@starwind-ui/runtime",
16690
- range: "^0.1.0-beta.3"
16760
+ range: "^0.1.0-beta.4"
16691
16761
  },
16692
16762
  {
16693
16763
  name: "react",
@@ -16744,7 +16814,7 @@ if (!src && !image) {
16744
16814
  packageRequirements: [
16745
16815
  {
16746
16816
  name: "@starwind-ui/runtime",
16747
- range: "^0.1.0-beta.3"
16817
+ range: "^0.1.0-beta.4"
16748
16818
  },
16749
16819
  {
16750
16820
  name: "react",
@@ -16789,7 +16859,7 @@ if (!src && !image) {
16789
16859
  packageRequirements: [
16790
16860
  {
16791
16861
  name: "@starwind-ui/runtime",
16792
- range: "^0.1.0-beta.3"
16862
+ range: "^0.1.0-beta.4"
16793
16863
  },
16794
16864
  {
16795
16865
  name: "react",
@@ -16840,7 +16910,7 @@ if (!src && !image) {
16840
16910
  packageRequirements: [
16841
16911
  {
16842
16912
  name: "@starwind-ui/runtime",
16843
- range: "^0.1.0-beta.3"
16913
+ range: "^0.1.0-beta.4"
16844
16914
  },
16845
16915
  {
16846
16916
  name: "react",
@@ -16891,7 +16961,7 @@ if (!src && !image) {
16891
16961
  packageRequirements: [
16892
16962
  {
16893
16963
  name: "@starwind-ui/runtime",
16894
- range: "^0.1.0-beta.3"
16964
+ range: "^0.1.0-beta.4"
16895
16965
  },
16896
16966
  {
16897
16967
  name: "react",
@@ -16966,7 +17036,7 @@ if (!src && !image) {
16966
17036
  packageRequirements: [
16967
17037
  {
16968
17038
  name: "@starwind-ui/runtime",
16969
- range: "^0.1.0-beta.3"
17039
+ range: "^0.1.0-beta.4"
16970
17040
  },
16971
17041
  {
16972
17042
  name: "react",
@@ -17035,7 +17105,7 @@ if (!src && !image) {
17035
17105
  packageRequirements: [
17036
17106
  {
17037
17107
  name: "@starwind-ui/runtime",
17038
- range: "^0.1.0-beta.3"
17108
+ range: "^0.1.0-beta.4"
17039
17109
  },
17040
17110
  {
17041
17111
  name: "react",
@@ -17050,7 +17120,7 @@ if (!src && !image) {
17050
17120
  {
17051
17121
  component: "avatar",
17052
17122
  framework: "react",
17053
- version: "0.1.0",
17123
+ version: "0.1.1",
17054
17124
  files: [
17055
17125
  {
17056
17126
  path: "src/components/starwind-primitives/avatar/AvatarFallback.tsx",
@@ -17060,8 +17130,8 @@ if (!src && !image) {
17060
17130
  },
17061
17131
  {
17062
17132
  path: "src/components/starwind-primitives/avatar/AvatarImage.tsx",
17063
- 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',
17064
- 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",
17065
17135
  sourcePath: "packages/react/src/avatar/AvatarImage.tsx"
17066
17136
  },
17067
17137
  {
@@ -17092,7 +17162,7 @@ if (!src && !image) {
17092
17162
  packageRequirements: [
17093
17163
  {
17094
17164
  name: "@starwind-ui/runtime",
17095
- range: "^0.1.0-beta.3"
17165
+ range: "^0.1.0-beta.4"
17096
17166
  },
17097
17167
  {
17098
17168
  name: "react",
@@ -17161,7 +17231,7 @@ if (!src && !image) {
17161
17231
  packageRequirements: [
17162
17232
  {
17163
17233
  name: "@starwind-ui/runtime",
17164
- range: "^0.1.0-beta.3"
17234
+ range: "^0.1.0-beta.4"
17165
17235
  },
17166
17236
  {
17167
17237
  name: "react",
@@ -17236,7 +17306,7 @@ if (!src && !image) {
17236
17306
  packageRequirements: [
17237
17307
  {
17238
17308
  name: "@starwind-ui/runtime",
17239
- range: "^0.1.0-beta.3"
17309
+ range: "^0.1.0-beta.4"
17240
17310
  },
17241
17311
  {
17242
17312
  name: "react",
@@ -17299,7 +17369,7 @@ if (!src && !image) {
17299
17369
  packageRequirements: [
17300
17370
  {
17301
17371
  name: "@starwind-ui/runtime",
17302
- range: "^0.1.0-beta.3"
17372
+ range: "^0.1.0-beta.4"
17303
17373
  },
17304
17374
  {
17305
17375
  name: "react",
@@ -17374,7 +17444,7 @@ if (!src && !image) {
17374
17444
  packageRequirements: [
17375
17445
  {
17376
17446
  name: "@starwind-ui/runtime",
17377
- range: "^0.1.0-beta.3"
17447
+ range: "^0.1.0-beta.4"
17378
17448
  },
17379
17449
  {
17380
17450
  name: "react",
@@ -17389,7 +17459,7 @@ if (!src && !image) {
17389
17459
  {
17390
17460
  component: "popover",
17391
17461
  framework: "react",
17392
- version: "0.1.1",
17462
+ version: "0.1.2",
17393
17463
  files: [
17394
17464
  {
17395
17465
  path: "src/components/starwind-primitives/internal/compose-refs.ts",
@@ -17429,8 +17499,8 @@ if (!src && !image) {
17429
17499
  },
17430
17500
  {
17431
17501
  path: "src/components/starwind-primitives/popover/PopoverPopup.tsx",
17432
- 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',
17433
- 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",
17434
17504
  sourcePath: "packages/react/src/popover/PopoverPopup.tsx"
17435
17505
  },
17436
17506
  {
@@ -17441,8 +17511,8 @@ if (!src && !image) {
17441
17511
  },
17442
17512
  {
17443
17513
  path: "src/components/starwind-primitives/popover/PopoverPositioner.tsx",
17444
- 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',
17445
- 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",
17446
17516
  sourcePath: "packages/react/src/popover/PopoverPositioner.tsx"
17447
17517
  },
17448
17518
  {
@@ -17479,7 +17549,7 @@ if (!src && !image) {
17479
17549
  packageRequirements: [
17480
17550
  {
17481
17551
  name: "@starwind-ui/runtime",
17482
- range: "^0.1.0-beta.3"
17552
+ range: "^0.1.0-beta.4"
17483
17553
  },
17484
17554
  {
17485
17555
  name: "react",
@@ -17566,7 +17636,7 @@ if (!src && !image) {
17566
17636
  packageRequirements: [
17567
17637
  {
17568
17638
  name: "@starwind-ui/runtime",
17569
- range: "^0.1.0-beta.3"
17639
+ range: "^0.1.0-beta.4"
17570
17640
  },
17571
17641
  {
17572
17642
  name: "react",
@@ -17647,7 +17717,7 @@ if (!src && !image) {
17647
17717
  packageRequirements: [
17648
17718
  {
17649
17719
  name: "@starwind-ui/runtime",
17650
- range: "^0.1.0-beta.3"
17720
+ range: "^0.1.0-beta.4"
17651
17721
  },
17652
17722
  {
17653
17723
  name: "react",
@@ -17740,7 +17810,7 @@ if (!src && !image) {
17740
17810
  packageRequirements: [
17741
17811
  {
17742
17812
  name: "@starwind-ui/runtime",
17743
- range: "^0.1.0-beta.3"
17813
+ range: "^0.1.0-beta.4"
17744
17814
  },
17745
17815
  {
17746
17816
  name: "react",
@@ -17833,7 +17903,7 @@ if (!src && !image) {
17833
17903
  packageRequirements: [
17834
17904
  {
17835
17905
  name: "@starwind-ui/runtime",
17836
- range: "^0.1.0-beta.3"
17906
+ range: "^0.1.0-beta.4"
17837
17907
  },
17838
17908
  {
17839
17909
  name: "react",
@@ -17902,7 +17972,7 @@ if (!src && !image) {
17902
17972
  packageRequirements: [
17903
17973
  {
17904
17974
  name: "@starwind-ui/runtime",
17905
- range: "^0.1.0-beta.3"
17975
+ range: "^0.1.0-beta.4"
17906
17976
  },
17907
17977
  {
17908
17978
  name: "react",
@@ -18055,7 +18125,7 @@ if (!src && !image) {
18055
18125
  packageRequirements: [
18056
18126
  {
18057
18127
  name: "@starwind-ui/runtime",
18058
- range: "^0.1.0-beta.3"
18128
+ range: "^0.1.0-beta.4"
18059
18129
  },
18060
18130
  {
18061
18131
  name: "react",
@@ -18166,7 +18236,7 @@ if (!src && !image) {
18166
18236
  packageRequirements: [
18167
18237
  {
18168
18238
  name: "@starwind-ui/runtime",
18169
- range: "^0.1.0-beta.3"
18239
+ range: "^0.1.0-beta.4"
18170
18240
  },
18171
18241
  {
18172
18242
  name: "react",
@@ -18319,7 +18389,7 @@ if (!src && !image) {
18319
18389
  packageRequirements: [
18320
18390
  {
18321
18391
  name: "@starwind-ui/runtime",
18322
- range: "^0.1.0-beta.3"
18392
+ range: "^0.1.0-beta.4"
18323
18393
  },
18324
18394
  {
18325
18395
  name: "react",
@@ -18472,7 +18542,7 @@ if (!src && !image) {
18472
18542
  packageRequirements: [
18473
18543
  {
18474
18544
  name: "@starwind-ui/runtime",
18475
- range: "^0.1.0-beta.3"
18545
+ range: "^0.1.0-beta.4"
18476
18546
  },
18477
18547
  {
18478
18548
  name: "react",
@@ -18547,7 +18617,7 @@ if (!src && !image) {
18547
18617
  packageRequirements: [
18548
18618
  {
18549
18619
  name: "@starwind-ui/runtime",
18550
- range: "^0.1.0-beta.3"
18620
+ range: "^0.1.0-beta.4"
18551
18621
  },
18552
18622
  {
18553
18623
  name: "react",
@@ -18712,7 +18782,7 @@ if (!src && !image) {
18712
18782
  packageRequirements: [
18713
18783
  {
18714
18784
  name: "@starwind-ui/runtime",
18715
- range: "^0.1.0-beta.3"
18785
+ range: "^0.1.0-beta.4"
18716
18786
  },
18717
18787
  {
18718
18788
  name: "react",
@@ -18889,7 +18959,7 @@ if (!src && !image) {
18889
18959
  packageRequirements: [
18890
18960
  {
18891
18961
  name: "@starwind-ui/runtime",
18892
- range: "^0.1.0-beta.3"
18962
+ range: "^0.1.0-beta.4"
18893
18963
  },
18894
18964
  {
18895
18965
  name: "react",
@@ -18982,7 +19052,7 @@ if (!src && !image) {
18982
19052
  packageRequirements: [
18983
19053
  {
18984
19054
  name: "@starwind-ui/runtime",
18985
- range: "^0.1.0-beta.3"
19055
+ range: "^0.1.0-beta.4"
18986
19056
  },
18987
19057
  {
18988
19058
  name: "react",
@@ -19095,10 +19165,10 @@ async function installPrimitiveComponents(componentNames, options) {
19095
19165
  writableArtifacts.flatMap((artifact) => artifact.packageRequirements)
19096
19166
  );
19097
19167
  const packagesToInstall = await filterUninstalledDependencies(
19098
- packageRequirements.map(formatPackageRequirement2)
19168
+ packageRequirements.map(formatPackageRequirement3)
19099
19169
  );
19100
19170
  if (packagesToInstall.length > 0) {
19101
- await installDependencies(packagesToInstall, options.packageManager ?? "npm");
19171
+ await installDependencies(packagesToInstall, options.packageManager);
19102
19172
  }
19103
19173
  for (const artifact of writableArtifacts) {
19104
19174
  const files = plannedFiles.get(artifact);
@@ -19175,7 +19245,7 @@ async function planPrimitiveComponentUpdates(componentNames, options) {
19175
19245
  });
19176
19246
  continue;
19177
19247
  }
19178
- if (!semver8.gt(artifact.version, currentPrimitive.version)) {
19248
+ if (!semver9.gt(artifact.version, currentPrimitive.version)) {
19179
19249
  plan.skipped.push({
19180
19250
  name: componentName,
19181
19251
  status: "skipped",
@@ -19248,7 +19318,7 @@ async function updatePrimitiveComponents(componentNames, options) {
19248
19318
  }
19249
19319
  }
19250
19320
  if (!skipPackageDependentUpdates) {
19251
- await installDependencies(plan.packagesToInstall, options.packageManager ?? "npm");
19321
+ await installDependencies(plan.packagesToInstall, options.packageManager);
19252
19322
  }
19253
19323
  }
19254
19324
  const updatedPrimitives = [...options.config.primitives ?? []];
@@ -19409,11 +19479,11 @@ async function finalizePrimitiveUpdatePackagePlan(plan) {
19409
19479
  plan.updates.flatMap((item) => item.packageRequirements)
19410
19480
  );
19411
19481
  plan.packagesToInstall = await filterUninstalledDependencies(
19412
- plan.packageRequirements.map(formatPackageRequirement2)
19482
+ plan.packageRequirements.map(formatPackageRequirement3)
19413
19483
  );
19414
19484
  const packagesToInstall = new Set(plan.packagesToInstall);
19415
19485
  for (const item of plan.updates) {
19416
- item.packagesToInstall = item.packageRequirements.map(formatPackageRequirement2).filter((requirement) => packagesToInstall.has(requirement));
19486
+ item.packagesToInstall = item.packageRequirements.map(formatPackageRequirement3).filter((requirement) => packagesToInstall.has(requirement));
19417
19487
  }
19418
19488
  }
19419
19489
  function dedupePackageRequirements2(requirements) {
@@ -19432,7 +19502,7 @@ function dedupePackageRequirements2(requirements) {
19432
19502
  }
19433
19503
  return [...deduped.values()];
19434
19504
  }
19435
- function formatPackageRequirement2(requirement) {
19505
+ function formatPackageRequirement3(requirement) {
19436
19506
  return requirement.range === "*" ? requirement.name : `${requirement.name}@${requirement.range}`;
19437
19507
  }
19438
19508
  function toRegistryComponent(artifact) {