starwind 3.0.0-beta.1 → 3.0.0-beta.3
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/README.md +69 -23
- package/dist/index.js +1189 -285
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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.
|
|
9
|
+
version: "3.0.0-beta.3",
|
|
10
10
|
description: "Install and manage Starwind UI components in Astro and React applications",
|
|
11
11
|
license: "MIT",
|
|
12
12
|
homepage: "https://starwind.dev/",
|
|
@@ -2042,7 +2042,7 @@ export const badge = tv({
|
|
|
2042
2042
|
],
|
|
2043
2043
|
componentDependencies: [],
|
|
2044
2044
|
packageRequirements: [
|
|
2045
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
2045
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
2046
2046
|
{ name: "astro", range: ">=5" },
|
|
2047
2047
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2048
2048
|
]
|
|
@@ -2576,7 +2576,7 @@ export const badge = tv({
|
|
|
2576
2576
|
],
|
|
2577
2577
|
componentDependencies: [],
|
|
2578
2578
|
packageRequirements: [
|
|
2579
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
2579
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
2580
2580
|
{ name: "react", range: ">=18" },
|
|
2581
2581
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2582
2582
|
]
|
|
@@ -2606,7 +2606,7 @@ export const badge = tv({
|
|
|
2606
2606
|
],
|
|
2607
2607
|
componentDependencies: [],
|
|
2608
2608
|
packageRequirements: [
|
|
2609
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
2609
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
2610
2610
|
{ name: "astro", range: ">=5" },
|
|
2611
2611
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2612
2612
|
]
|
|
@@ -2628,7 +2628,7 @@ export const badge = tv({
|
|
|
2628
2628
|
],
|
|
2629
2629
|
componentDependencies: [],
|
|
2630
2630
|
packageRequirements: [
|
|
2631
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
2631
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
2632
2632
|
{ name: "react", range: ">=18" },
|
|
2633
2633
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2634
2634
|
]
|
|
@@ -2676,7 +2676,7 @@ export const kbdGroup = tv({
|
|
|
2676
2676
|
],
|
|
2677
2677
|
componentDependencies: [],
|
|
2678
2678
|
packageRequirements: [
|
|
2679
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
2679
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
2680
2680
|
{ name: "astro", range: ">=5" },
|
|
2681
2681
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2682
2682
|
]
|
|
@@ -2716,7 +2716,7 @@ export const kbdGroup = tv({
|
|
|
2716
2716
|
],
|
|
2717
2717
|
componentDependencies: [],
|
|
2718
2718
|
packageRequirements: [
|
|
2719
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
2719
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
2720
2720
|
{ name: "react", range: ">=18" },
|
|
2721
2721
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2722
2722
|
]
|
|
@@ -2746,7 +2746,7 @@ export const kbdGroup = tv({
|
|
|
2746
2746
|
],
|
|
2747
2747
|
componentDependencies: [],
|
|
2748
2748
|
packageRequirements: [
|
|
2749
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
2749
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
2750
2750
|
{ name: "astro", range: ">=5" },
|
|
2751
2751
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2752
2752
|
]
|
|
@@ -2768,7 +2768,7 @@ export const kbdGroup = tv({
|
|
|
2768
2768
|
],
|
|
2769
2769
|
componentDependencies: [],
|
|
2770
2770
|
packageRequirements: [
|
|
2771
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
2771
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
2772
2772
|
{ name: "react", range: ">=18" },
|
|
2773
2773
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2774
2774
|
]
|
|
@@ -2798,7 +2798,7 @@ export const kbdGroup = tv({
|
|
|
2798
2798
|
],
|
|
2799
2799
|
componentDependencies: [],
|
|
2800
2800
|
packageRequirements: [
|
|
2801
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
2801
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
2802
2802
|
{ name: "astro", range: ">=5" },
|
|
2803
2803
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2804
2804
|
]
|
|
@@ -2820,7 +2820,7 @@ export const kbdGroup = tv({
|
|
|
2820
2820
|
],
|
|
2821
2821
|
componentDependencies: [],
|
|
2822
2822
|
packageRequirements: [
|
|
2823
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
2823
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
2824
2824
|
{ name: "react", range: ">=18" },
|
|
2825
2825
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2826
2826
|
]
|
|
@@ -2850,7 +2850,7 @@ export const kbdGroup = tv({
|
|
|
2850
2850
|
],
|
|
2851
2851
|
componentDependencies: [],
|
|
2852
2852
|
packageRequirements: [
|
|
2853
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
2853
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
2854
2854
|
{ name: "astro", range: ">=5" },
|
|
2855
2855
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2856
2856
|
]
|
|
@@ -2872,7 +2872,7 @@ export const kbdGroup = tv({
|
|
|
2872
2872
|
],
|
|
2873
2873
|
componentDependencies: [],
|
|
2874
2874
|
packageRequirements: [
|
|
2875
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
2875
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
2876
2876
|
{ name: "react", range: ">=18" },
|
|
2877
2877
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2878
2878
|
]
|
|
@@ -2902,7 +2902,7 @@ export const kbdGroup = tv({
|
|
|
2902
2902
|
],
|
|
2903
2903
|
componentDependencies: [],
|
|
2904
2904
|
packageRequirements: [
|
|
2905
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
2905
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
2906
2906
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
2907
2907
|
{ name: "astro", range: ">=5" },
|
|
2908
2908
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -2925,7 +2925,7 @@ export const kbdGroup = tv({
|
|
|
2925
2925
|
],
|
|
2926
2926
|
componentDependencies: [],
|
|
2927
2927
|
packageRequirements: [
|
|
2928
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
2928
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
2929
2929
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
2930
2930
|
{ name: "react", range: ">=18" },
|
|
2931
2931
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -2935,7 +2935,7 @@ export const kbdGroup = tv({
|
|
|
2935
2935
|
},
|
|
2936
2936
|
{
|
|
2937
2937
|
name: "card",
|
|
2938
|
-
version: "2.
|
|
2938
|
+
version: "2.2.0",
|
|
2939
2939
|
type: "component",
|
|
2940
2940
|
dependencies: [],
|
|
2941
2941
|
targets: {
|
|
@@ -2975,12 +2975,12 @@ export const kbdGroup = tv({
|
|
|
2975
2975
|
},
|
|
2976
2976
|
{
|
|
2977
2977
|
path: "src/components/starwind/card/variants.ts",
|
|
2978
|
-
content: 'import { tv } from "tailwind-variants";\n\nexport const card = tv({\n base: [\n "bg-card text-card-foreground group/card ring-border flex flex-col rounded-xl ring-1",\n "has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0",\n "*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",\n ],\n variants: {\n size: {\n default: "
|
|
2978
|
+
content: 'import { tv } from "tailwind-variants";\n\nexport const card = tv({\n base: [\n "bg-card text-card-foreground group/card ring-border flex flex-col gap-(--card-spacing) rounded-xl py-(--card-spacing) ring-1",\n "has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0",\n "*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",\n ],\n variants: {\n size: {\n default: "[--card-spacing:--spacing(5)]",\n sm: "[--card-spacing:--spacing(4)] text-sm",\n },\n },\n defaultVariants: {\n size: "default",\n },\n});\n\nexport const cardAction = tv({\n base: "col-start-2 row-span-2 row-start-1 self-start justify-self-end",\n});\n\nexport const cardContent = tv({\n base: "px-(--card-spacing)",\n});\n\nexport const cardDescription = tv({\n base: "text-muted-foreground text-base group-data-[size=sm]/card:text-sm",\n});\n\nexport const cardFooter = tv({\n base: "bg-muted/50 flex items-center rounded-b-xl border-t p-(--card-spacing)",\n});\n\nexport const cardHeader = tv({\n base: [\n "@container/card-header grid auto-rows-min items-start gap-1 px-(--card-spacing)",\n "has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",\n ],\n});\n\nexport const cardTitle = tv({\n base: "font-heading text-xl leading-snug font-medium group-data-[size=sm]/card:text-base",\n});\n'
|
|
2979
2979
|
}
|
|
2980
2980
|
],
|
|
2981
2981
|
componentDependencies: [],
|
|
2982
2982
|
packageRequirements: [
|
|
2983
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
2983
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
2984
2984
|
{ name: "astro", range: ">=5" },
|
|
2985
2985
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
2986
2986
|
]
|
|
@@ -3021,12 +3021,12 @@ export const kbdGroup = tv({
|
|
|
3021
3021
|
},
|
|
3022
3022
|
{
|
|
3023
3023
|
path: "src/components/starwind/card/variants.ts",
|
|
3024
|
-
content: 'import { tv } from "tailwind-variants";\n\nexport const card = tv({\n base: [\n "bg-card text-card-foreground group/card ring-border flex flex-col rounded-xl ring-1",\n "has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0",\n "*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",\n ],\n variants: {\n size: {\n default: "
|
|
3024
|
+
content: 'import { tv } from "tailwind-variants";\n\nexport const card = tv({\n base: [\n "bg-card text-card-foreground group/card ring-border flex flex-col gap-(--card-spacing) rounded-xl py-(--card-spacing) ring-1",\n "has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0",\n "*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",\n ],\n variants: {\n size: {\n default: "[--card-spacing:--spacing(5)]",\n sm: "[--card-spacing:--spacing(4)] text-sm",\n },\n },\n defaultVariants: {\n size: "default",\n },\n});\n\nexport const cardAction = tv({\n base: "col-start-2 row-span-2 row-start-1 self-start justify-self-end",\n});\n\nexport const cardContent = tv({\n base: "px-(--card-spacing)",\n});\n\nexport const cardDescription = tv({\n base: "text-muted-foreground text-base group-data-[size=sm]/card:text-sm",\n});\n\nexport const cardFooter = tv({\n base: "bg-muted/50 flex items-center rounded-b-xl border-t p-(--card-spacing)",\n});\n\nexport const cardHeader = tv({\n base: [\n "@container/card-header grid auto-rows-min items-start gap-1 px-(--card-spacing)",\n "has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",\n ],\n});\n\nexport const cardTitle = tv({\n base: "font-heading text-xl leading-snug font-medium group-data-[size=sm]/card:text-base",\n});\n'
|
|
3025
3025
|
}
|
|
3026
3026
|
],
|
|
3027
3027
|
componentDependencies: [],
|
|
3028
3028
|
packageRequirements: [
|
|
3029
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
3029
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
3030
3030
|
{ name: "react", range: ">=18" },
|
|
3031
3031
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3032
3032
|
]
|
|
@@ -3080,7 +3080,7 @@ export const kbdGroup = tv({
|
|
|
3080
3080
|
],
|
|
3081
3081
|
componentDependencies: [],
|
|
3082
3082
|
packageRequirements: [
|
|
3083
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
3083
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
3084
3084
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
3085
3085
|
{ name: "astro", range: ">=5" },
|
|
3086
3086
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -3127,7 +3127,7 @@ export const kbdGroup = tv({
|
|
|
3127
3127
|
],
|
|
3128
3128
|
componentDependencies: [],
|
|
3129
3129
|
packageRequirements: [
|
|
3130
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
3130
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
3131
3131
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
3132
3132
|
{ name: "react", range: ">=18" },
|
|
3133
3133
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -3166,7 +3166,7 @@ export const kbdGroup = tv({
|
|
|
3166
3166
|
],
|
|
3167
3167
|
componentDependencies: [],
|
|
3168
3168
|
packageRequirements: [
|
|
3169
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
3169
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
3170
3170
|
{ name: "astro", range: ">=5" },
|
|
3171
3171
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3172
3172
|
]
|
|
@@ -3196,7 +3196,7 @@ export const kbdGroup = tv({
|
|
|
3196
3196
|
],
|
|
3197
3197
|
componentDependencies: [],
|
|
3198
3198
|
packageRequirements: [
|
|
3199
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
3199
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
3200
3200
|
{ name: "react", range: ">=18" },
|
|
3201
3201
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3202
3202
|
]
|
|
@@ -3226,7 +3226,7 @@ export const kbdGroup = tv({
|
|
|
3226
3226
|
],
|
|
3227
3227
|
componentDependencies: [],
|
|
3228
3228
|
packageRequirements: [
|
|
3229
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
3229
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
3230
3230
|
{ name: "astro", range: ">=5" },
|
|
3231
3231
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3232
3232
|
]
|
|
@@ -3248,7 +3248,7 @@ export const kbdGroup = tv({
|
|
|
3248
3248
|
],
|
|
3249
3249
|
componentDependencies: [],
|
|
3250
3250
|
packageRequirements: [
|
|
3251
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
3251
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
3252
3252
|
{ name: "react", range: ">=18" },
|
|
3253
3253
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3254
3254
|
]
|
|
@@ -3257,7 +3257,7 @@ export const kbdGroup = tv({
|
|
|
3257
3257
|
},
|
|
3258
3258
|
{
|
|
3259
3259
|
name: "avatar",
|
|
3260
|
-
version: "2.0.
|
|
3260
|
+
version: "2.0.1",
|
|
3261
3261
|
type: "component",
|
|
3262
3262
|
dependencies: [],
|
|
3263
3263
|
targets: {
|
|
@@ -3281,12 +3281,12 @@ export const kbdGroup = tv({
|
|
|
3281
3281
|
},
|
|
3282
3282
|
{
|
|
3283
3283
|
path: "src/components/starwind/avatar/variants.ts",
|
|
3284
|
-
content: 'import { tv } from "tailwind-variants";\n\nexport const avatar = tv({\n base: "text-foreground bg-muted relative overflow-hidden rounded-full border-2",\n variants: {\n variant: {\n default: "border-border",\n primary: "border-primary",\n secondary: "border-secondary",\n info: "border-info",\n success: "border-success",\n warning: "border-warning",\n error: "border-error",\n },\n size: {\n sm: "h-8 w-8 text-xs",\n md: "h-10 w-10 text-sm",\n lg: "h-12 w-12 text-base",\n },\n },\n defaultVariants: {\n variant: "default",\n size: "md",\n },\n});\n\nexport const avatarFallback = tv({\n base: "absolute inset-0.5 flex items-center justify-center rounded-full font-medium",\n});\n\nexport const avatarImage = tv({\n base: "relative z-1 h-full w-full object-cover",\n});\n'
|
|
3284
|
+
content: 'import { tv } from "tailwind-variants";\n\nexport const avatar = tv({\n base: "text-foreground bg-muted relative inline-flex overflow-hidden rounded-full border-2",\n variants: {\n variant: {\n default: "border-border",\n primary: "border-primary",\n secondary: "border-secondary",\n info: "border-info",\n success: "border-success",\n warning: "border-warning",\n error: "border-error",\n },\n size: {\n sm: "h-8 w-8 text-xs",\n md: "h-10 w-10 text-sm",\n lg: "h-12 w-12 text-base",\n },\n },\n defaultVariants: {\n variant: "default",\n size: "md",\n },\n});\n\nexport const avatarFallback = tv({\n base: "absolute inset-0.5 flex items-center justify-center rounded-full font-medium",\n});\n\nexport const avatarImage = tv({\n base: "relative z-1 h-full w-full object-cover",\n});\n'
|
|
3285
3285
|
}
|
|
3286
3286
|
],
|
|
3287
3287
|
componentDependencies: [],
|
|
3288
3288
|
packageRequirements: [
|
|
3289
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
3289
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
3290
3290
|
{ name: "astro", range: ">=5" },
|
|
3291
3291
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3292
3292
|
]
|
|
@@ -3311,12 +3311,12 @@ export const kbdGroup = tv({
|
|
|
3311
3311
|
},
|
|
3312
3312
|
{
|
|
3313
3313
|
path: "src/components/starwind/avatar/variants.ts",
|
|
3314
|
-
content: 'import { tv } from "tailwind-variants";\n\nexport const avatar = tv({\n base: "text-foreground bg-muted relative overflow-hidden rounded-full border-2",\n variants: {\n variant: {\n default: "border-border",\n primary: "border-primary",\n secondary: "border-secondary",\n info: "border-info",\n success: "border-success",\n warning: "border-warning",\n error: "border-error",\n },\n size: {\n sm: "h-8 w-8 text-xs",\n md: "h-10 w-10 text-sm",\n lg: "h-12 w-12 text-base",\n },\n },\n defaultVariants: {\n variant: "default",\n size: "md",\n },\n});\n\nexport const avatarFallback = tv({\n base: "absolute inset-0.5 flex items-center justify-center rounded-full font-medium",\n});\n\nexport const avatarImage = tv({\n base: "relative z-1 h-full w-full object-cover",\n});\n'
|
|
3314
|
+
content: 'import { tv } from "tailwind-variants";\n\nexport const avatar = tv({\n base: "text-foreground bg-muted relative inline-flex overflow-hidden rounded-full border-2",\n variants: {\n variant: {\n default: "border-border",\n primary: "border-primary",\n secondary: "border-secondary",\n info: "border-info",\n success: "border-success",\n warning: "border-warning",\n error: "border-error",\n },\n size: {\n sm: "h-8 w-8 text-xs",\n md: "h-10 w-10 text-sm",\n lg: "h-12 w-12 text-base",\n },\n },\n defaultVariants: {\n variant: "default",\n size: "md",\n },\n});\n\nexport const avatarFallback = tv({\n base: "absolute inset-0.5 flex items-center justify-center rounded-full font-medium",\n});\n\nexport const avatarImage = tv({\n base: "relative z-1 h-full w-full object-cover",\n});\n'
|
|
3315
3315
|
}
|
|
3316
3316
|
],
|
|
3317
3317
|
componentDependencies: [],
|
|
3318
3318
|
packageRequirements: [
|
|
3319
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
3319
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
3320
3320
|
{ name: "react", range: ">=18" },
|
|
3321
3321
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3322
3322
|
]
|
|
@@ -3350,7 +3350,7 @@ export const kbdGroup = tv({
|
|
|
3350
3350
|
],
|
|
3351
3351
|
componentDependencies: [],
|
|
3352
3352
|
packageRequirements: [
|
|
3353
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
3353
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
3354
3354
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
3355
3355
|
{ name: "astro", range: ">=5" },
|
|
3356
3356
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -3377,7 +3377,7 @@ export const kbdGroup = tv({
|
|
|
3377
3377
|
],
|
|
3378
3378
|
componentDependencies: [],
|
|
3379
3379
|
packageRequirements: [
|
|
3380
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
3380
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
3381
3381
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
3382
3382
|
{ name: "react", range: ">=18" },
|
|
3383
3383
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -3408,7 +3408,7 @@ export const kbdGroup = tv({
|
|
|
3408
3408
|
],
|
|
3409
3409
|
componentDependencies: [],
|
|
3410
3410
|
packageRequirements: [
|
|
3411
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
3411
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
3412
3412
|
{ name: "astro", range: ">=5" },
|
|
3413
3413
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3414
3414
|
]
|
|
@@ -3430,7 +3430,7 @@ export const kbdGroup = tv({
|
|
|
3430
3430
|
],
|
|
3431
3431
|
componentDependencies: [],
|
|
3432
3432
|
packageRequirements: [
|
|
3433
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
3433
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
3434
3434
|
{ name: "react", range: ">=18" },
|
|
3435
3435
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3436
3436
|
]
|
|
@@ -3646,7 +3646,7 @@ export const comboboxValue = tv({
|
|
|
3646
3646
|
],
|
|
3647
3647
|
componentDependencies: ["input-group"],
|
|
3648
3648
|
packageRequirements: [
|
|
3649
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
3649
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
3650
3650
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
3651
3651
|
{ name: "astro", range: ">=5" },
|
|
3652
3652
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -3855,7 +3855,229 @@ export const comboboxValue = tv({
|
|
|
3855
3855
|
],
|
|
3856
3856
|
componentDependencies: ["input-group"],
|
|
3857
3857
|
packageRequirements: [
|
|
3858
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
3858
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
3859
|
+
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
3860
|
+
{ name: "react", range: ">=18" },
|
|
3861
|
+
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3862
|
+
]
|
|
3863
|
+
}
|
|
3864
|
+
}
|
|
3865
|
+
},
|
|
3866
|
+
{
|
|
3867
|
+
name: "color-picker",
|
|
3868
|
+
version: "0.1.0",
|
|
3869
|
+
type: "component",
|
|
3870
|
+
dependencies: [],
|
|
3871
|
+
targets: {
|
|
3872
|
+
astro: {
|
|
3873
|
+
files: [
|
|
3874
|
+
{
|
|
3875
|
+
path: "src/components/starwind/color-picker/ColorPicker.astro",
|
|
3876
|
+
content: '---\nimport type { ComponentProps } from "astro/types";\n\nimport { Popover } from "../popover";\nimport ColorPickerRoot from "./ColorPickerRoot.astro";\n\ntype Props = ComponentProps<typeof ColorPickerRoot> & {\n defaultOpen?: boolean;\n closeOnEscape?: boolean;\n closeOnOutsideInteract?: boolean;\n modal?: boolean;\n openOnHover?: boolean;\n closeDelay?: number;\n};\n\nconst {\n defaultOpen = false,\n closeOnEscape = true,\n closeOnOutsideInteract = true,\n modal = false,\n openOnHover = false,\n closeDelay = 200,\n defaultValue = "#000000",\n format = "hex",\n alpha = true,\n allowEmpty = false,\n disabled = false,\n readOnly = false,\n name,\n form,\n required = false,\n locale,\n dir,\n class: className,\n size = "md",\n ...rest\n} = Astro.props;\n---\n\n<Popover\n defaultOpen={defaultOpen}\n closeOnEscape={closeOnEscape}\n closeOnOutsideInteract={closeOnOutsideInteract}\n modal={modal}\n openOnHover={openOnHover}\n closeDelay={closeDelay}\n>\n <ColorPickerRoot\n defaultValue={defaultValue}\n format={format}\n alpha={alpha}\n allowEmpty={allowEmpty}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n form={form}\n required={required}\n locale={locale}\n dir={dir}\n {...rest}\n data-floating-root={true}\n class={className}\n size={size}\n >\n {async (initial: import("@starwind-ui/astro/color-picker").ColorPickerRenderProjection) => (\n <Fragment set:html={await Astro.slots.render("default", [initial])} />\n )}\n </ColorPickerRoot>\n</Popover>\n'
|
|
3877
|
+
},
|
|
3878
|
+
{
|
|
3879
|
+
path: "src/components/starwind/color-picker/ColorPickerArea.astro",
|
|
3880
|
+
content: '---\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\n\nimport "./styles.css";\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport ColorPickerAreaThumb from "./ColorPickerAreaThumb.astro";\nimport { colorPickerArea } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & VariantProps<typeof colorPickerArea> & {\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerAreaProjection;\n};\n\nconst { initial, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.Area\n initial={initial?.root.initial}\n class={colorPickerArea({ size, class: className })}\n {...rest}\n data-slot="color-picker-area"\n>\n <ColorPickerPrimitive.AreaBackground\n initial={initial?.background.initial}\n class="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-area-background"\n />\n\n <ColorPickerAreaThumb initial={initial?.thumb.initial} size={size} />\n\n <ColorPickerPrimitive.AreaInput\n initial={initial?.input({ axis: "x" }).initial}\n axis="x"\n class="absolute inset-0 size-full cursor-crosshair opacity-0"\n data-slot="color-picker-area-input-x"\n />\n\n <ColorPickerPrimitive.AreaInput\n initial={initial?.input({ axis: "y" }).initial}\n axis="y"\n class="absolute inset-0 size-full cursor-crosshair opacity-0"\n data-slot="color-picker-area-input-y"\n />\n</ColorPickerPrimitive.Area>\n'
|
|
3881
|
+
},
|
|
3882
|
+
{
|
|
3883
|
+
path: "src/components/starwind/color-picker/ColorPickerAreaThumb.astro",
|
|
3884
|
+
content: '---\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerAreaThumb } from "./variants";\n\ntype Props = HTMLAttributes<"span"> & VariantProps<typeof colorPickerAreaThumb> & {\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerInitialPartProjection;\n};\n\nconst { initial, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.AreaThumb\n initial={initial}\n class={colorPickerAreaThumb({ size, class: className })}\n {...rest}\n data-slot="color-picker-area-thumb"\n>\n <slot />\n</ColorPickerPrimitive.AreaThumb>\n'
|
|
3885
|
+
},
|
|
3886
|
+
{
|
|
3887
|
+
path: "src/components/starwind/color-picker/ColorPickerChannelInput.astro",
|
|
3888
|
+
content: '---\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerChannelInput, colorPickerChannelInputLayout } from "./variants";\n\ntype Props = HTMLAttributes<"input"> & VariantProps<typeof colorPickerChannelInput> & {\n channel: import("@starwind-ui/astro/color-picker").ColorPickerChannel;\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerInitialPartProjection;\n};\n\nconst { initial, channel, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.ChannelInput\n initial={initial}\n class={[colorPickerChannelInput({ size }), colorPickerChannelInputLayout({ size }), className].filter(Boolean).join(" ")}\n channel={channel}\n {...rest}\n data-slot="color-picker-channel-input"\n/>\n'
|
|
3889
|
+
},
|
|
3890
|
+
{
|
|
3891
|
+
path: "src/components/starwind/color-picker/ColorPickerChannelSlider.astro",
|
|
3892
|
+
content: '---\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\n\nimport "./styles.css";\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport { colorPickerChannelSlider, colorPickerChannelSliderThumb } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & VariantProps<typeof colorPickerChannelSlider> & {\n channel: import("@starwind-ui/astro/color-picker").ColorPickerChannel;\n orientation?: "horizontal" | "vertical";\n step?: number;\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerRenderProjection;\n};\n\nconst {\n initial,\n step,\n channel,\n orientation = "horizontal",\n class: className,\n size = "md",\n ...rest\n} = Astro.props;\n---\n\n<ColorPickerPrimitive.ChannelSlider\n initial={initial?.channelSlider({ channel, orientation, step }).root.initial}\n channel={channel}\n orientation={orientation}\n class={colorPickerChannelSlider({ size, class: className })}\n {...rest}\n data-slot="color-picker-channel-slider"\n>\n <ColorPickerPrimitive.TransparencyGrid\n initial={initial?.transparencyGrid.initial}\n class="pointer-events-none absolute inset-0 size-full rounded-[inherit]"\n data-slot="color-picker-transparency-grid"\n />\n\n <ColorPickerPrimitive.ChannelSliderTrack\n initial={initial?.channelSlider({ channel, orientation, step }).track.initial}\n class="pointer-events-none absolute inset-0 size-full rounded-[inherit]"\n data-slot="color-picker-channel-slider-track"\n />\n\n <ColorPickerPrimitive.ChannelSliderThumb\n initial={initial?.channelSlider({ channel, orientation, step }).thumb.initial}\n class={colorPickerChannelSliderThumb({ size })}\n data-slot="color-picker-channel-slider-thumb"\n >\n <span\n class="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-transparency-grid"\n />\n\n <span\n class="pointer-events-none absolute inset-0 size-full bg-[var(--sw-color-picker-channel-thumb-color)]"\n data-slot="color-picker-channel-thumb-color-layer"\n />\n </ColorPickerPrimitive.ChannelSliderThumb>\n\n <ColorPickerPrimitive.ChannelSliderInput\n initial={initial?.channelSlider({ channel, orientation, step }).input().initial}\n class="absolute inset-0 size-full cursor-pointer opacity-0"\n data-slot="color-picker-channel-slider-input"\n />\n</ColorPickerPrimitive.ChannelSlider>\n'
|
|
3893
|
+
},
|
|
3894
|
+
{
|
|
3895
|
+
path: "src/components/starwind/color-picker/ColorPickerClear.astro",
|
|
3896
|
+
content: '---\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerAction } from "./variants";\n\ntype Props = HTMLAttributes<"button"> & VariantProps<typeof colorPickerAction> & {\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerInitialPartProjection;\n};\n\nconst { initial, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.Clear\n initial={initial}\n class={colorPickerAction({ size, class: className })}\n {...rest}\n data-slot="color-picker-clear"\n>\n <slot />\n</ColorPickerPrimitive.Clear>\n'
|
|
3897
|
+
},
|
|
3898
|
+
{
|
|
3899
|
+
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'
|
|
3901
|
+
},
|
|
3902
|
+
{
|
|
3903
|
+
path: "src/components/starwind/color-picker/ColorPickerControl.astro",
|
|
3904
|
+
content: '---\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerControl } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & VariantProps<typeof colorPickerControl> & {\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerInitialPartProjection;\n};\n\nconst { initial, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.Control\n initial={initial}\n class={colorPickerControl({ size, class: className })}\n {...rest}\n data-slot="color-picker-control"\n>\n <slot />\n</ColorPickerPrimitive.Control>\n'
|
|
3905
|
+
},
|
|
3906
|
+
{
|
|
3907
|
+
path: "src/components/starwind/color-picker/ColorPickerEyeDropper.astro",
|
|
3908
|
+
content: '---\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerAction } from "./variants";\n\ntype Props = HTMLAttributes<"button"> & VariantProps<typeof colorPickerAction> & {\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerInitialPartProjection;\n};\n\nconst { initial, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.EyeDropperTrigger\n initial={initial}\n class={colorPickerAction({ size, class: className })}\n {...rest}\n data-slot="color-picker-eye-dropper"\n>\n <slot />\n</ColorPickerPrimitive.EyeDropperTrigger>\n'
|
|
3909
|
+
},
|
|
3910
|
+
{
|
|
3911
|
+
path: "src/components/starwind/color-picker/ColorPickerFormatSelect.astro",
|
|
3912
|
+
content: '---\nimport type { HTMLAttributes } from "astro/types";\n\nimport "./styles.css";\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport { Select, SelectContent, SelectItem, SelectTrigger } from "../select";\nimport { colorPickerFormatSelectTrigger } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & {\n size?: "sm" | "md" | "lg";\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerInitialPartProjection;\n};\n\nconst { initial, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.FormatControl\n initial={initial}\n class={["shrink-0", className].filter(Boolean).join(" ")}\n {...rest}\n data-slot="color-picker-format-control"\n>\n <Select>\n <SelectTrigger\n size={size}\n aria-label="Color format"\n class={colorPickerFormatSelectTrigger({ size })}\n />\n\n <SelectContent size={size} data-sw-color-picker-format-options="">\n <SelectItem value="hex">HEX</SelectItem>\n\n <SelectItem value="rgb">RGB</SelectItem>\n\n <SelectItem value="hsl">HSL</SelectItem>\n\n <SelectItem value="hsb">HSB</SelectItem>\n </SelectContent>\n </Select>\n</ColorPickerPrimitive.FormatControl>\n'
|
|
3913
|
+
},
|
|
3914
|
+
{
|
|
3915
|
+
path: "src/components/starwind/color-picker/ColorPickerHiddenInput.astro",
|
|
3916
|
+
content: '---\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerHiddenInput } from "./variants";\n\ntype Props = HTMLAttributes<"input"> & VariantProps<typeof colorPickerHiddenInput> & {\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerInitialPartProjection;\n};\n\nconst { initial, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.HiddenInput\n initial={initial}\n class={colorPickerHiddenInput({ size, class: className })}\n {...rest}\n data-slot="color-picker-hidden-input"\n/>\n'
|
|
3917
|
+
},
|
|
3918
|
+
{
|
|
3919
|
+
path: "src/components/starwind/color-picker/ColorPickerInput.astro",
|
|
3920
|
+
content: '---\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\n\nimport ColorPickerFormatSelect from "./ColorPickerFormatSelect.astro";\nimport ColorPickerNativeFormatSelect from "./ColorPickerNativeFormatSelect.astro";\nimport ColorPickerValueInput from "./ColorPickerValueInput.astro";\nimport { colorPickerInput } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & VariantProps<typeof colorPickerInput> & {\n formatControl?: "select" | "native";\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerRenderProjection;\n};\n\nconst { initial, formatControl = "select", class: className, size = "md", ...rest } = Astro.props;\n---\n\n<div class={colorPickerInput({ size, class: className })} {...rest} data-slot="color-picker-input">\n <ColorPickerValueInput initial={initial?.valueInput.initial} size={size} />\n\n {\n formatControl === "native" ? (\n <ColorPickerNativeFormatSelect initial={initial?.formatSelect.initial} size={size} />\n ) : (\n <ColorPickerFormatSelect initial={initial?.formatControl.initial} size={size} />\n )\n }\n</div>\n'
|
|
3921
|
+
},
|
|
3922
|
+
{
|
|
3923
|
+
path: "src/components/starwind/color-picker/ColorPickerLabel.astro",
|
|
3924
|
+
content: '---\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerLabel } from "./variants";\n\ntype Props = HTMLAttributes<"label"> & VariantProps<typeof colorPickerLabel> & {\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerInitialPartProjection;\n};\n\nconst { initial, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.Label\n initial={initial}\n class={colorPickerLabel({ size, class: className })}\n {...rest}\n data-slot="color-picker-label"\n>\n <slot />\n</ColorPickerPrimitive.Label>\n'
|
|
3925
|
+
},
|
|
3926
|
+
{
|
|
3927
|
+
path: "src/components/starwind/color-picker/ColorPickerNativeFormatSelect.astro",
|
|
3928
|
+
content: '---\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport ChevronDown from "@tabler/icons/outline/chevron-down.svg";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { NativeSelectOption } from "../native-select";\nimport { colorPickerNativeFormatSelect, colorPickerNativeFormatSelectIcon, colorPickerNativeFormatSelectWrapper } from "./variants";\n\ntype Props = Omit<HTMLAttributes<"select">, "size"> & VariantProps<typeof colorPickerNativeFormatSelect> & {\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerInitialPartProjection;\n};\n\nconst { initial, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<div\n class={colorPickerNativeFormatSelectWrapper()}\n data-slot="color-picker-native-format-select-wrapper"\n>\n <ColorPickerPrimitive.FormatSelect\n initial={initial}\n class={colorPickerNativeFormatSelect({ size, class: className })}\n aria-label="Color format"\n {...rest}\n data-slot="color-picker-native-format-select"\n >\n <NativeSelectOption value="hex" selected={(initial?.properties.value ?? rest.value) === "hex"}>\n HEX\n </NativeSelectOption>\n\n <NativeSelectOption value="rgb" selected={(initial?.properties.value ?? rest.value) === "rgb"}>\n RGB\n </NativeSelectOption>\n\n <NativeSelectOption value="hsl" selected={(initial?.properties.value ?? rest.value) === "hsl"}>\n HSL\n </NativeSelectOption>\n\n <NativeSelectOption value="hsb" selected={(initial?.properties.value ?? rest.value) === "hsb"}>\n HSB\n </NativeSelectOption>\n </ColorPickerPrimitive.FormatSelect>\n\n <ChevronDown\n class={colorPickerNativeFormatSelectIcon({ size })}\n aria-hidden="true"\n data-slot="color-picker-native-format-select-icon"\n />\n</div>\n'
|
|
3929
|
+
},
|
|
3930
|
+
{
|
|
3931
|
+
path: "src/components/starwind/color-picker/ColorPickerRoot.astro",
|
|
3932
|
+
content: '---\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPicker } from "./variants";\n\ntype Props = Omit<HTMLAttributes<"div">, "value" | "defaultValue" | "onChange" | "dir"> & VariantProps<typeof colorPicker> & {\n defaultValue?: import("@starwind-ui/astro/color-picker").ColorPickerValue;\n format?: import("@starwind-ui/astro/color-picker").ColorPickerFormat;\n alpha?: boolean;\n allowEmpty?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n name?: string;\n form?: string;\n required?: boolean;\n locale?: string;\n dir?: import("@starwind-ui/astro/color-picker").ColorPickerDirection;\n};\n\nconst {\n defaultValue = "#000000",\n format = "hex",\n alpha = true,\n allowEmpty = false,\n disabled = false,\n readOnly = false,\n name,\n form,\n required = false,\n locale,\n dir,\n class: className,\n size = "md",\n ...rest\n} = Astro.props;\n---\n\n<ColorPickerPrimitive.Root\n class={colorPicker({ size, class: className })}\n defaultValue={defaultValue}\n format={format}\n alpha={alpha}\n allowEmpty={allowEmpty}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n form={form}\n required={required}\n locale={locale}\n dir={dir}\n {...rest}\n data-slot="color-picker"\n>\n {async (initial: import("@starwind-ui/astro/color-picker").ColorPickerRenderProjection) => (\n <Fragment set:html={await Astro.slots.render("default", [initial])} />\n )}\n</ColorPickerPrimitive.Root>\n'
|
|
3933
|
+
},
|
|
3934
|
+
{
|
|
3935
|
+
path: "src/components/starwind/color-picker/ColorPickerSliders.astro",
|
|
3936
|
+
content: '---\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\n\nimport ColorPickerChannelSlider from "./ColorPickerChannelSlider.astro";\nimport { colorPickerSliders } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & VariantProps<typeof colorPickerSliders> & {\n alpha?: boolean;\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerRenderProjection;\n};\n\nconst { initial, alpha = true, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<div\n class={colorPickerSliders({ size, class: className })}\n {...rest}\n data-slot="color-picker-sliders"\n>\n <ColorPickerChannelSlider initial={initial} channel="hue" size={size} />\n\n {\n alpha && (\n <ColorPickerChannelSlider initial={initial} channel="alpha" size={size} />\n )\n }\n</div>\n'
|
|
3937
|
+
},
|
|
3938
|
+
{
|
|
3939
|
+
path: "src/components/starwind/color-picker/ColorPickerSwatch.astro",
|
|
3940
|
+
content: '---\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\n\nimport "./styles.css";\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport { colorPickerSwatch } from "./variants";\n\ntype Props = HTMLAttributes<"button"> & VariantProps<typeof colorPickerSwatch> & {\n value: import("@starwind-ui/astro/color-picker").ColorPickerValue;\n disabled?: boolean;\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerRenderProjection;\n};\n\nconst { initial, value, disabled = false, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.Swatch\n initial={initial?.swatch({ value, disabled }).initial}\n swatchValue={value}\n swatchDisabled={disabled}\n class={colorPickerSwatch({ size, class: className })}\n {...rest}\n data-slot="color-picker-swatch"\n>\n <ColorPickerPrimitive.TransparencyGrid\n initial={initial?.transparencyGrid.initial}\n class="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-transparency-grid"\n />\n\n <span\n class="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-swatch-color"\n />\n\n <slot />\n</ColorPickerPrimitive.Swatch>\n'
|
|
3941
|
+
},
|
|
3942
|
+
{
|
|
3943
|
+
path: "src/components/starwind/color-picker/ColorPickerSwatchGroup.astro",
|
|
3944
|
+
content: '---\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerSwatchGroup } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & VariantProps<typeof colorPickerSwatchGroup> & {\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerInitialPartProjection;\n};\n\nconst { initial, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.SwatchGroup\n initial={initial}\n class={colorPickerSwatchGroup({ size, class: className })}\n {...rest}\n data-slot="color-picker-swatch-group"\n>\n <slot />\n</ColorPickerPrimitive.SwatchGroup>\n'
|
|
3945
|
+
},
|
|
3946
|
+
{
|
|
3947
|
+
path: "src/components/starwind/color-picker/ColorPickerTrigger.astro",
|
|
3948
|
+
content: '---\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport type { ComponentProps } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { PopoverTrigger } from "../popover";\nimport { colorPickerTrigger, colorPickerValueSwatch } from "./variants";\n\ntype Props = ComponentProps<typeof PopoverTrigger> & VariantProps<typeof colorPickerTrigger> & {\n showValueText?: boolean;\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerRenderProjection;\n};\n\nconst { initial, class: className, size = "md", showValueText = true, ...rest } = Astro.props;\n---\n\n<PopoverTrigger\n class={colorPickerTrigger({ size, class: className })}\n {...rest}\n data-slot="color-picker-trigger"\n>\n <slot />\n\n <ColorPickerPrimitive.ValueSwatch\n initial={initial?.valueSwatch.initial}\n class={colorPickerValueSwatch({ size })}\n data-slot="color-picker-value-swatch"\n >\n <ColorPickerPrimitive.TransparencyGrid\n initial={initial?.transparencyGrid.initial}\n class="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-transparency-grid"\n />\n\n <span\n class="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-value-swatch-color"\n />\n </ColorPickerPrimitive.ValueSwatch>\n\n {\n showValueText && (\n <ColorPickerPrimitive.ValueText\n initial={initial?.valueText.initial}\n data-slot="color-picker-value-text"\n />\n )\n }\n</PopoverTrigger>\n'
|
|
3949
|
+
},
|
|
3950
|
+
{
|
|
3951
|
+
path: "src/components/starwind/color-picker/ColorPickerValueInput.astro",
|
|
3952
|
+
content: '---\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerValueInput, colorPickerValueInputLayout } from "./variants";\n\ntype Props = Omit<HTMLAttributes<"input">, "size"> & VariantProps<typeof colorPickerValueInput> & {\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerInitialPartProjection;\n};\n\nconst { initial, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.ValueInput\n initial={initial}\n class={[colorPickerValueInput({ size }), colorPickerValueInputLayout({ size }), className].filter(Boolean).join(" ")}\n {...rest}\n data-slot="color-picker-value-input"\n/>\n'
|
|
3953
|
+
},
|
|
3954
|
+
{
|
|
3955
|
+
path: "src/components/starwind/color-picker/ColorPickerValueSwatch.astro",
|
|
3956
|
+
content: '---\nimport type { HTMLAttributes } from "astro/types";\nimport type { VariantProps } from "tailwind-variants";\n\nimport "./styles.css";\nimport ColorPickerPrimitive from "@starwind-ui/astro/color-picker";\nimport { colorPickerValueSwatch } from "./variants";\n\ntype Props = HTMLAttributes<"span"> & VariantProps<typeof colorPickerValueSwatch> & {\n initial?: import("@starwind-ui/astro/color-picker").ColorPickerRenderProjection;\n};\n\nconst { initial, class: className, size = "md", ...rest } = Astro.props;\n---\n\n<ColorPickerPrimitive.ValueSwatch\n initial={initial?.valueSwatch.initial}\n class={colorPickerValueSwatch({ size, class: className })}\n {...rest}\n data-slot="color-picker-value-swatch"\n>\n <ColorPickerPrimitive.TransparencyGrid\n initial={initial?.transparencyGrid.initial}\n class="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-transparency-grid"\n />\n\n <span\n class="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-value-swatch-color"\n />\n</ColorPickerPrimitive.ValueSwatch>\n'
|
|
3957
|
+
},
|
|
3958
|
+
{
|
|
3959
|
+
path: "src/components/starwind/color-picker/index.ts",
|
|
3960
|
+
content: 'import ColorPicker from "./ColorPicker.astro";\nimport ColorPickerArea from "./ColorPickerArea.astro";\nimport ColorPickerAreaThumb from "./ColorPickerAreaThumb.astro";\nimport ColorPickerChannelInput from "./ColorPickerChannelInput.astro";\nimport ColorPickerChannelSlider from "./ColorPickerChannelSlider.astro";\nimport ColorPickerClear from "./ColorPickerClear.astro";\nimport ColorPickerContent from "./ColorPickerContent.astro";\nimport ColorPickerControl from "./ColorPickerControl.astro";\nimport ColorPickerEyeDropper from "./ColorPickerEyeDropper.astro";\nimport ColorPickerFormatSelect from "./ColorPickerFormatSelect.astro";\nimport ColorPickerHiddenInput from "./ColorPickerHiddenInput.astro";\nimport ColorPickerInput from "./ColorPickerInput.astro";\nimport ColorPickerLabel from "./ColorPickerLabel.astro";\nimport ColorPickerNativeFormatSelect from "./ColorPickerNativeFormatSelect.astro";\nimport ColorPickerRoot from "./ColorPickerRoot.astro";\nimport ColorPickerSliders from "./ColorPickerSliders.astro";\nimport ColorPickerSwatch from "./ColorPickerSwatch.astro";\nimport ColorPickerSwatchGroup from "./ColorPickerSwatchGroup.astro";\nimport ColorPickerTrigger from "./ColorPickerTrigger.astro";\nimport ColorPickerValueInput from "./ColorPickerValueInput.astro";\nimport ColorPickerValueSwatch from "./ColorPickerValueSwatch.astro";\nimport {\n colorPicker,\n colorPickerAction,\n colorPickerArea,\n colorPickerAreaThumb,\n colorPickerChannelInput,\n colorPickerChannelInputLayout,\n colorPickerChannelSlider,\n colorPickerChannelSliderThumb,\n colorPickerContent,\n colorPickerControl,\n colorPickerFormatSelectTrigger,\n colorPickerHiddenInput,\n colorPickerInput,\n colorPickerLabel,\n colorPickerNativeFormatSelect,\n colorPickerNativeFormatSelectIcon,\n colorPickerNativeFormatSelectWrapper,\n colorPickerSeparator,\n colorPickerSliderActionRow,\n colorPickerSliders,\n colorPickerSwatch,\n colorPickerSwatchGroup,\n colorPickerTrigger,\n colorPickerValueFormatRow,\n colorPickerValueInput,\n colorPickerValueInputLayout,\n colorPickerValueSwatch,\n} from "./variants";\n\nconst ColorPickerVariants = {\n colorPicker,\n colorPickerAction,\n colorPickerArea,\n colorPickerAreaThumb,\n colorPickerChannelInput,\n colorPickerChannelInputLayout,\n colorPickerChannelSlider,\n colorPickerChannelSliderThumb,\n colorPickerContent,\n colorPickerControl,\n colorPickerFormatSelectTrigger,\n colorPickerHiddenInput,\n colorPickerInput,\n colorPickerLabel,\n colorPickerNativeFormatSelect,\n colorPickerNativeFormatSelectIcon,\n colorPickerNativeFormatSelectWrapper,\n colorPickerSeparator,\n colorPickerSliderActionRow,\n colorPickerSliders,\n colorPickerSwatch,\n colorPickerSwatchGroup,\n colorPickerTrigger,\n colorPickerValueFormatRow,\n colorPickerValueInput,\n colorPickerValueInputLayout,\n colorPickerValueSwatch,\n};\n\nexport {\n ColorPicker,\n ColorPickerArea,\n ColorPickerAreaThumb,\n ColorPickerChannelInput,\n ColorPickerChannelSlider,\n ColorPickerClear,\n ColorPickerContent,\n ColorPickerControl,\n ColorPickerEyeDropper,\n ColorPickerFormatSelect,\n ColorPickerHiddenInput,\n ColorPickerInput,\n ColorPickerLabel,\n ColorPickerNativeFormatSelect,\n ColorPickerRoot,\n ColorPickerSliders,\n ColorPickerSwatch,\n ColorPickerSwatchGroup,\n ColorPickerTrigger,\n ColorPickerValueInput,\n ColorPickerValueSwatch,\n ColorPickerVariants,\n};\n\nexport default {\n Root: ColorPicker,\n InlineRoot: ColorPickerRoot,\n Label: ColorPickerLabel,\n Control: ColorPickerControl,\n Input: ColorPickerInput,\n Trigger: ColorPickerTrigger,\n Content: ColorPickerContent,\n Area: ColorPickerArea,\n AreaThumb: ColorPickerAreaThumb,\n Sliders: ColorPickerSliders,\n ChannelSlider: ColorPickerChannelSlider,\n ChannelInput: ColorPickerChannelInput,\n ValueInput: ColorPickerValueInput,\n NativeFormatSelect: ColorPickerNativeFormatSelect,\n FormatSelect: ColorPickerFormatSelect,\n ValueSwatch: ColorPickerValueSwatch,\n SwatchGroup: ColorPickerSwatchGroup,\n Swatch: ColorPickerSwatch,\n EyeDropper: ColorPickerEyeDropper,\n Clear: ColorPickerClear,\n HiddenInput: ColorPickerHiddenInput,\n};\n'
|
|
3961
|
+
},
|
|
3962
|
+
{
|
|
3963
|
+
path: "src/components/starwind/color-picker/styles.css",
|
|
3964
|
+
content: '[data-slot="color-picker-area-background"] { background: var(--sw-color-picker-area-background-overlay, linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, transparent)), var(--sw-color-picker-area-background, hsl(var(--sw-color-picker-hue) 100% 50%)); }\n[data-slot="color-picker-channel-slider"] { --sw-color-picker-channel-gradient-direction: to right; --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), transparent, var(--sw-color-picker-color, #000)); }\n[data-slot="color-picker-channel-slider"][data-orientation="vertical"] { --sw-color-picker-channel-gradient-direction: to top; }\n[data-slot="color-picker-channel-slider"][data-channel="hue"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), #f00 0%, #ff0 16.67%, #0f0 33.33%, #0ff 50%, #00f 66.67%, #f0f 83.33%, #f00 100%); }\n[data-slot="color-picker-channel-slider"][data-channel="alpha"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), rgb(from var(--sw-color-picker-color, #000) r g b / 0), rgb(from var(--sw-color-picker-color, #000) r g b / 1)); }\n[data-slot="color-picker-channel-slider"][data-channel="saturation"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), hsl(var(--sw-color-picker-hue, 0) 0% 50%), hsl(var(--sw-color-picker-hue, 0) 100% 50%)); }\n[data-slot="color-picker-channel-slider"][data-channel="brightness"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), #000, hsl(var(--sw-color-picker-hue, 0) 100% 50%)); }\n[data-slot="color-picker-channel-slider"][data-channel="lightness"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), #000, hsl(var(--sw-color-picker-hue, 0) 100% 50%), #fff); }\n[data-slot="color-picker-channel-slider"][data-channel="red"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), rgb(from var(--sw-color-picker-color, #000) 0 g b), rgb(from var(--sw-color-picker-color, #000) 255 g b)); }\n[data-slot="color-picker-channel-slider"][data-channel="green"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), rgb(from var(--sw-color-picker-color, #000) r 0 b), rgb(from var(--sw-color-picker-color, #000) r 255 b)); }\n[data-slot="color-picker-channel-slider"][data-channel="blue"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), rgb(from var(--sw-color-picker-color, #000) r g 0), rgb(from var(--sw-color-picker-color, #000) r g 255)); }\n[data-slot="color-picker-channel-slider-track"] { background: var(--sw-color-picker-channel-gradient); }\n[data-slot="color-picker-transparency-grid"] { background-color: #fff; background-image: linear-gradient(45deg, #d4d4d8 25%, transparent 25%), linear-gradient(-45deg, #d4d4d8 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #d4d4d8 75%), linear-gradient(-45deg, transparent 75%, #d4d4d8 75%); background-position: 0 0, 0 4px, 4px -4px, -4px 0; background-size: 8px 8px; }\n[data-slot="color-picker-value-swatch-color"], [data-slot="color-picker-swatch-color"] { background: var(--sw-color-picker-swatch-color); }\n[data-slot="color-picker-value-swatch"] { background-color: #fff; background-image: linear-gradient(var(--sw-color-picker-swatch-color, transparent), var(--sw-color-picker-swatch-color, transparent)), linear-gradient(45deg, #d4d4d8 25%, transparent 25%), linear-gradient(-45deg, #d4d4d8 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #d4d4d8 75%), linear-gradient(-45deg, transparent 75%, #d4d4d8 75%); background-position: 0 0, 0 0, 0 4px, 4px -4px, -4px 0; background-size: 100% 100%, 8px 8px, 8px 8px, 8px 8px, 8px 8px; }\n[data-slot="color-picker-value-swatch"] > [data-slot="color-picker-transparency-grid"], [data-slot="color-picker-value-swatch"] > [data-slot="color-picker-value-swatch-color"] { display: none; }\n[data-slot="color-picker-footer"][data-has-swatches="false"]:not(:has([data-slot="color-picker-clear"]:not([hidden]))) > [data-slot="color-picker-separator"] { display: none; }\n[data-sw-color-picker][data-floating-root] > [data-slot="select-positioner"]:has(> [data-sw-color-picker-format-options]) { z-index: 60; }\n'
|
|
3965
|
+
},
|
|
3966
|
+
{
|
|
3967
|
+
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'
|
|
3969
|
+
}
|
|
3970
|
+
],
|
|
3971
|
+
componentDependencies: ["input", "native-select", "popover", "select"],
|
|
3972
|
+
packageRequirements: [
|
|
3973
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
3974
|
+
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
3975
|
+
{ name: "astro", range: ">=5" },
|
|
3976
|
+
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3977
|
+
]
|
|
3978
|
+
},
|
|
3979
|
+
react: {
|
|
3980
|
+
files: [
|
|
3981
|
+
{
|
|
3982
|
+
path: "src/components/starwind/color-picker/ColorPicker.tsx",
|
|
3983
|
+
content: 'import * as React from "react";\nimport { Popover } from "../popover";\nimport ColorPickerRoot from "./ColorPickerRoot";\n\nexport type ColorPickerProps = React.ComponentProps<typeof ColorPickerRoot> & {\n defaultOpen?: boolean;\n open?: boolean;\n closeOnEscape?: boolean;\n closeOnOutsideInteract?: boolean;\n modal?: boolean;\n openOnHover?: boolean;\n closeDelay?: number;\n onOpenChange?: React.ComponentProps<typeof Popover>["onOpenChange"];\n onCloseComplete?: React.ComponentProps<typeof Popover>["onCloseComplete"];\n};\n\nconst ColorPicker = React.forwardRef<HTMLDivElement, ColorPickerProps>(\n function ColorPicker(props, forwardedRef) {\n const {\n defaultOpen = false,\n open,\n closeOnEscape = true,\n closeOnOutsideInteract = true,\n modal = false,\n openOnHover = false,\n closeDelay = 200,\n onOpenChange,\n onCloseComplete,\n value,\n defaultValue = "#000000",\n format,\n alpha = true,\n allowEmpty = false,\n disabled = false,\n readOnly = false,\n name,\n form,\n required = false,\n locale,\n dir,\n onValueChange,\n onValueCommitted,\n onFormatChange,\n className,\n size = "md",\n children,\n ...rest\n } = props;\n\n return (\n <Popover\n defaultOpen={defaultOpen}\n open={open}\n closeOnEscape={closeOnEscape}\n closeOnOutsideInteract={closeOnOutsideInteract}\n modal={modal}\n openOnHover={openOnHover}\n closeDelay={closeDelay}\n onOpenChange={onOpenChange}\n onCloseComplete={onCloseComplete}\n >\n <ColorPickerRoot\n value={value}\n defaultValue={defaultValue}\n format={format}\n alpha={alpha}\n allowEmpty={allowEmpty}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n form={form}\n required={required}\n locale={locale}\n dir={dir}\n {...rest}\n data-floating-root={true}\n onValueChange={onValueChange}\n onValueCommitted={onValueCommitted}\n onFormatChange={onFormatChange}\n ref={forwardedRef}\n className={className}\n size={size}\n >\n {children}\n </ColorPickerRoot>\n </Popover>\n );\n },\n);\n\nColorPicker.displayName = "ColorPicker";\n\nexport default ColorPicker;\n'
|
|
3984
|
+
},
|
|
3985
|
+
{
|
|
3986
|
+
path: "src/components/starwind/color-picker/ColorPickerArea.tsx",
|
|
3987
|
+
content: 'import type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport "./styles.css";\nimport ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport ColorPickerAreaThumb from "./ColorPickerAreaThumb";\nimport { colorPickerArea } from "./variants";\n\nexport type ColorPickerAreaProps =\n React.ComponentPropsWithoutRef<"div"> &\n VariantProps<typeof colorPickerArea>;\n\nfunction ColorPickerArea(props: ColorPickerAreaProps) {\n const { className, size = "md", ...rest } = props;\n\n return (\n <ColorPickerPrimitive.Area\n className={colorPickerArea({ size, class: className })}\n {...rest}\n data-slot="color-picker-area"\n >\n <ColorPickerPrimitive.AreaBackground\n className="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-area-background"\n />\n\n <ColorPickerAreaThumb\n size={size}\n />\n\n <ColorPickerPrimitive.AreaInput\n axis="x"\n className="absolute inset-0 size-full cursor-crosshair opacity-0"\n data-slot="color-picker-area-input-x"\n />\n\n <ColorPickerPrimitive.AreaInput\n axis="y"\n className="absolute inset-0 size-full cursor-crosshair opacity-0"\n data-slot="color-picker-area-input-y"\n />\n </ColorPickerPrimitive.Area>\n );\n}\n\nexport default ColorPickerArea;\n'
|
|
3988
|
+
},
|
|
3989
|
+
{
|
|
3990
|
+
path: "src/components/starwind/color-picker/ColorPickerAreaThumb.tsx",
|
|
3991
|
+
content: 'import ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerAreaThumb } from "./variants";\n\nexport type ColorPickerAreaThumbProps =\n React.ComponentPropsWithoutRef<"span"> &\n VariantProps<typeof colorPickerAreaThumb>;\n\nfunction ColorPickerAreaThumb(props: ColorPickerAreaThumbProps) {\n const { className, size = "md", children, ...rest } = props;\n\n return (\n <ColorPickerPrimitive.AreaThumb\n className={colorPickerAreaThumb({ size, class: className })}\n {...rest}\n data-slot="color-picker-area-thumb"\n >\n {children}\n </ColorPickerPrimitive.AreaThumb>\n );\n}\n\nexport default ColorPickerAreaThumb;\n'
|
|
3992
|
+
},
|
|
3993
|
+
{
|
|
3994
|
+
path: "src/components/starwind/color-picker/ColorPickerChannelInput.tsx",
|
|
3995
|
+
content: 'import ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerChannelInput, colorPickerChannelInputLayout } from "./variants";\n\nexport type ColorPickerChannelInputProps = React.ComponentPropsWithoutRef<"input"> &\n VariantProps<typeof colorPickerChannelInput> & {\n channel: import("@starwind-ui/react/color-picker").ColorPickerChannel;\n };\n\nfunction ColorPickerChannelInput(props: ColorPickerChannelInputProps) {\n const { channel, className, size = "md", ...rest } = props;\n\n return (\n <ColorPickerPrimitive.ChannelInput\n className={[colorPickerChannelInput({ size }), colorPickerChannelInputLayout({ size }), className].filter(Boolean).join(" ")}\n channel={channel}\n {...rest}\n data-slot="color-picker-channel-input"\n />\n );\n}\n\nexport default ColorPickerChannelInput;\n'
|
|
3996
|
+
},
|
|
3997
|
+
{
|
|
3998
|
+
path: "src/components/starwind/color-picker/ColorPickerChannelSlider.tsx",
|
|
3999
|
+
content: 'import type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport "./styles.css";\nimport ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport { colorPickerChannelSlider, colorPickerChannelSliderThumb } from "./variants";\n\nexport type ColorPickerChannelSliderProps = React.ComponentPropsWithoutRef<"div"> &\n VariantProps<typeof colorPickerChannelSlider> & {\n channel: import("@starwind-ui/react/color-picker").ColorPickerChannel;\n orientation?: "horizontal" | "vertical";\n };\n\nfunction ColorPickerChannelSlider(props: ColorPickerChannelSliderProps) {\n const { channel, orientation = "horizontal", className, size = "md", ...rest } = props;\n\n return (\n <ColorPickerPrimitive.ChannelSlider\n channel={channel}\n orientation={orientation}\n className={colorPickerChannelSlider({ size, class: className })}\n {...rest}\n data-slot="color-picker-channel-slider"\n >\n <ColorPickerPrimitive.TransparencyGrid\n className="pointer-events-none absolute inset-0 size-full rounded-[inherit]"\n data-slot="color-picker-transparency-grid"\n />\n\n <ColorPickerPrimitive.ChannelSliderTrack\n className="pointer-events-none absolute inset-0 size-full rounded-[inherit]"\n data-slot="color-picker-channel-slider-track"\n />\n\n <ColorPickerPrimitive.ChannelSliderThumb\n className={colorPickerChannelSliderThumb({ size })}\n data-slot="color-picker-channel-slider-thumb"\n >\n <span\n className="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-transparency-grid"\n />\n\n <span\n className="pointer-events-none absolute inset-0 size-full bg-[var(--sw-color-picker-channel-thumb-color)]"\n data-slot="color-picker-channel-thumb-color-layer"\n />\n </ColorPickerPrimitive.ChannelSliderThumb>\n\n <ColorPickerPrimitive.ChannelSliderInput\n className="absolute inset-0 size-full cursor-pointer opacity-0"\n data-slot="color-picker-channel-slider-input"\n />\n </ColorPickerPrimitive.ChannelSlider>\n );\n}\n\nexport default ColorPickerChannelSlider;\n'
|
|
4000
|
+
},
|
|
4001
|
+
{
|
|
4002
|
+
path: "src/components/starwind/color-picker/ColorPickerClear.tsx",
|
|
4003
|
+
content: 'import ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerAction } from "./variants";\n\nexport type ColorPickerClearProps =\n React.ComponentPropsWithoutRef<"button"> &\n VariantProps<typeof colorPickerAction>;\n\nfunction ColorPickerClear(props: ColorPickerClearProps) {\n const { className, size = "md", children, ...rest } = props;\n\n return (\n <ColorPickerPrimitive.Clear\n className={colorPickerAction({ size, class: className })}\n {...rest}\n data-slot="color-picker-clear"\n >\n {children}\n </ColorPickerPrimitive.Clear>\n );\n}\n\nexport default ColorPickerClear;\n'
|
|
4004
|
+
},
|
|
4005
|
+
{
|
|
4006
|
+
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'
|
|
4008
|
+
},
|
|
4009
|
+
{
|
|
4010
|
+
path: "src/components/starwind/color-picker/ColorPickerControl.tsx",
|
|
4011
|
+
content: 'import ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerControl } from "./variants";\n\nexport type ColorPickerControlProps =\n React.ComponentPropsWithoutRef<"div"> &\n VariantProps<typeof colorPickerControl>;\n\nfunction ColorPickerControl(props: ColorPickerControlProps) {\n const { className, size = "md", children, ...rest } = props;\n\n return (\n <ColorPickerPrimitive.Control\n className={colorPickerControl({ size, class: className })}\n {...rest}\n data-slot="color-picker-control"\n >\n {children}\n </ColorPickerPrimitive.Control>\n );\n}\n\nexport default ColorPickerControl;\n'
|
|
4012
|
+
},
|
|
4013
|
+
{
|
|
4014
|
+
path: "src/components/starwind/color-picker/ColorPickerEyeDropper.tsx",
|
|
4015
|
+
content: 'import ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerAction } from "./variants";\n\nexport type ColorPickerEyeDropperProps =\n React.ComponentPropsWithoutRef<"button"> &\n VariantProps<typeof colorPickerAction>;\n\nfunction ColorPickerEyeDropper(props: ColorPickerEyeDropperProps) {\n const { className, size = "md", children, ...rest } = props;\n\n return (\n <ColorPickerPrimitive.EyeDropperTrigger\n className={colorPickerAction({ size, class: className })}\n {...rest}\n data-slot="color-picker-eye-dropper"\n >\n {children}\n </ColorPickerPrimitive.EyeDropperTrigger>\n );\n}\n\nexport default ColorPickerEyeDropper;\n'
|
|
4016
|
+
},
|
|
4017
|
+
{
|
|
4018
|
+
path: "src/components/starwind/color-picker/ColorPickerFormatSelect.tsx",
|
|
4019
|
+
content: 'import type * as React from "react";\nimport "./styles.css";\nimport ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport { Select, SelectContent, SelectItem, SelectTrigger } from "../select";\nimport { colorPickerFormatSelectTrigger } from "./variants";\n\nexport type ColorPickerFormatSelectProps = React.ComponentPropsWithoutRef<"div"> & {\n size?: "sm" | "md" | "lg";\n};\n\nfunction ColorPickerFormatSelect(props: ColorPickerFormatSelectProps) {\n const { className, size = "md", ...rest } = props;\n\n return (\n <ColorPickerPrimitive.FormatControl\n className={["shrink-0", className].filter(Boolean).join(" ")}\n {...rest}\n data-slot="color-picker-format-control"\n >\n <Select>\n <SelectTrigger\n size={size}\n aria-label="Color format"\n className={colorPickerFormatSelectTrigger({ size })}\n />\n\n <SelectContent\n size={size}\n data-sw-color-picker-format-options=""\n >\n <SelectItem value="hex">HEX</SelectItem>\n\n <SelectItem value="rgb">RGB</SelectItem>\n\n <SelectItem value="hsl">HSL</SelectItem>\n\n <SelectItem value="hsb">HSB</SelectItem>\n </SelectContent>\n </Select>\n </ColorPickerPrimitive.FormatControl>\n );\n}\n\nexport default ColorPickerFormatSelect;\n'
|
|
4020
|
+
},
|
|
4021
|
+
{
|
|
4022
|
+
path: "src/components/starwind/color-picker/ColorPickerHiddenInput.tsx",
|
|
4023
|
+
content: 'import ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerHiddenInput } from "./variants";\n\nexport type ColorPickerHiddenInputProps =\n React.ComponentPropsWithoutRef<"input"> &\n VariantProps<typeof colorPickerHiddenInput>;\n\nfunction ColorPickerHiddenInput(props: ColorPickerHiddenInputProps) {\n const { className, size = "md", ...rest } = props;\n\n return (\n <ColorPickerPrimitive.HiddenInput\n className={colorPickerHiddenInput({ size, class: className })}\n {...rest}\n data-slot="color-picker-hidden-input"\n />\n );\n}\n\nexport default ColorPickerHiddenInput;\n'
|
|
4024
|
+
},
|
|
4025
|
+
{
|
|
4026
|
+
path: "src/components/starwind/color-picker/ColorPickerInput.tsx",
|
|
4027
|
+
content: 'import type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport ColorPickerFormatSelect from "./ColorPickerFormatSelect";\nimport ColorPickerNativeFormatSelect from "./ColorPickerNativeFormatSelect";\nimport ColorPickerValueInput from "./ColorPickerValueInput";\nimport { colorPickerInput } from "./variants";\n\nexport type ColorPickerInputProps = React.ComponentPropsWithoutRef<"div"> &\n VariantProps<typeof colorPickerInput> & {\n formatControl?: "select" | "native";\n };\n\nfunction ColorPickerInput(props: ColorPickerInputProps) {\n const { formatControl = "select", className, size = "md", ...rest } = props;\n\n return (\n <div\n className={colorPickerInput({ size, class: className })}\n {...rest}\n data-slot="color-picker-input"\n >\n <ColorPickerValueInput\n size={size}\n />\n\n {formatControl === "native" ? (\n <ColorPickerNativeFormatSelect\n size={size}\n />\n ) : (\n <ColorPickerFormatSelect\n size={size}\n />\n )}\n </div>\n );\n}\n\nexport default ColorPickerInput;\n'
|
|
4028
|
+
},
|
|
4029
|
+
{
|
|
4030
|
+
path: "src/components/starwind/color-picker/ColorPickerLabel.tsx",
|
|
4031
|
+
content: 'import ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerLabel } from "./variants";\n\nexport type ColorPickerLabelProps =\n React.ComponentPropsWithoutRef<"label"> &\n VariantProps<typeof colorPickerLabel>;\n\nfunction ColorPickerLabel(props: ColorPickerLabelProps) {\n const { className, size = "md", children, ...rest } = props;\n\n return (\n <ColorPickerPrimitive.Label\n className={colorPickerLabel({ size, class: className })}\n {...rest}\n data-slot="color-picker-label"\n >\n {children}\n </ColorPickerPrimitive.Label>\n );\n}\n\nexport default ColorPickerLabel;\n'
|
|
4032
|
+
},
|
|
4033
|
+
{
|
|
4034
|
+
path: "src/components/starwind/color-picker/ColorPickerNativeFormatSelect.tsx",
|
|
4035
|
+
content: 'import ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport { IconChevronDown as ChevronDown } from "@tabler/icons-react";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { NativeSelectOption } from "../native-select";\nimport { colorPickerNativeFormatSelect, colorPickerNativeFormatSelectIcon, colorPickerNativeFormatSelectWrapper } from "./variants";\n\nexport type ColorPickerNativeFormatSelectProps =\n Omit<React.ComponentPropsWithoutRef<"select">, "size"> &\n VariantProps<typeof colorPickerNativeFormatSelect>;\n\nfunction ColorPickerNativeFormatSelect(props: ColorPickerNativeFormatSelectProps) {\n const { className, size = "md", ...rest } = props;\n\n return (\n <div\n className={colorPickerNativeFormatSelectWrapper()}\n data-slot="color-picker-native-format-select-wrapper"\n >\n <ColorPickerPrimitive.FormatSelect\n className={colorPickerNativeFormatSelect({ size, class: className })}\n aria-label="Color format"\n {...rest}\n data-slot="color-picker-native-format-select"\n >\n <NativeSelectOption value="hex">HEX</NativeSelectOption>\n\n <NativeSelectOption value="rgb">RGB</NativeSelectOption>\n\n <NativeSelectOption value="hsl">HSL</NativeSelectOption>\n\n <NativeSelectOption value="hsb">HSB</NativeSelectOption>\n </ColorPickerPrimitive.FormatSelect>\n\n <ChevronDown\n className={colorPickerNativeFormatSelectIcon({ size })}\n aria-hidden="true"\n data-slot="color-picker-native-format-select-icon"\n />\n </div>\n );\n}\n\nexport default ColorPickerNativeFormatSelect;\n'
|
|
4036
|
+
},
|
|
4037
|
+
{
|
|
4038
|
+
path: "src/components/starwind/color-picker/ColorPickerRoot.tsx",
|
|
4039
|
+
content: 'import ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPicker } from "./variants";\n\nexport type ColorPickerRootProps = Omit<React.ComponentPropsWithoutRef<"div">, "value" | "defaultValue" | "onChange" | "dir"> &\n VariantProps<typeof colorPicker> & {\n value?: import("@starwind-ui/react/color-picker").ColorPickerValue;\n defaultValue?: import("@starwind-ui/react/color-picker").ColorPickerValue;\n format?: import("@starwind-ui/react/color-picker").ColorPickerFormat;\n alpha?: boolean;\n allowEmpty?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n name?: string;\n form?: string;\n required?: boolean;\n locale?: string;\n dir?: import("@starwind-ui/react/color-picker").ColorPickerDirection;\n onValueChange?: (value: import("@starwind-ui/react/color-picker").ColorPickerColor | null, details: import("@starwind-ui/react/color-picker").ColorPickerValueChangeDetails) => void;\n onValueCommitted?: (value: import("@starwind-ui/react/color-picker").ColorPickerColor | null, details: import("@starwind-ui/react/color-picker").ColorPickerValueCommitDetails) => void;\n onFormatChange?: (format: import("@starwind-ui/react/color-picker").ColorPickerFormat, details: import("@starwind-ui/react/color-picker").ColorPickerFormatChangeDetails) => void;\n ref?: React.Ref<HTMLDivElement>;\n };\n\nconst ColorPickerRoot = React.forwardRef<HTMLDivElement, ColorPickerRootProps>(\n function ColorPickerRoot(props, forwardedRef) {\n const {\n value,\n defaultValue = "#000000",\n format,\n alpha = true,\n allowEmpty = false,\n disabled = false,\n readOnly = false,\n name,\n form,\n required = false,\n locale,\n dir,\n onValueChange,\n onValueCommitted,\n onFormatChange,\n className,\n size = "md",\n children,\n ...rest\n } = props;\n\n return (\n <ColorPickerPrimitive.Root\n className={colorPicker({ size, class: className })}\n value={value}\n defaultValue={defaultValue}\n format={format}\n alpha={alpha}\n allowEmpty={allowEmpty}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n form={form}\n required={required}\n locale={locale}\n dir={dir}\n onValueChange={onValueChange}\n onValueCommitted={onValueCommitted}\n onFormatChange={onFormatChange}\n {...rest}\n ref={forwardedRef}\n data-slot="color-picker"\n >\n {children}\n </ColorPickerPrimitive.Root>\n );\n },\n);\n\nColorPickerRoot.displayName = "ColorPickerRoot";\n\nexport default ColorPickerRoot;\n'
|
|
4040
|
+
},
|
|
4041
|
+
{
|
|
4042
|
+
path: "src/components/starwind/color-picker/ColorPickerSliders.tsx",
|
|
4043
|
+
content: 'import type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport ColorPickerChannelSlider from "./ColorPickerChannelSlider";\nimport { colorPickerSliders } from "./variants";\n\nexport type ColorPickerSlidersProps = React.ComponentPropsWithoutRef<"div"> &\n VariantProps<typeof colorPickerSliders> & {\n alpha?: boolean;\n };\n\nfunction ColorPickerSliders(props: ColorPickerSlidersProps) {\n const { alpha = true, className, size = "md", ...rest } = props;\n\n return (\n <div\n className={colorPickerSliders({ size, class: className })}\n {...rest}\n data-slot="color-picker-sliders"\n >\n <ColorPickerChannelSlider\n channel="hue"\n size={size}\n />\n\n {alpha && (\n <ColorPickerChannelSlider\n channel="alpha"\n size={size}\n />\n )}\n </div>\n );\n}\n\nexport default ColorPickerSliders;\n'
|
|
4044
|
+
},
|
|
4045
|
+
{
|
|
4046
|
+
path: "src/components/starwind/color-picker/ColorPickerSwatch.tsx",
|
|
4047
|
+
content: 'import type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport "./styles.css";\nimport ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport { colorPickerSwatch } from "./variants";\n\nexport type ColorPickerSwatchProps = React.ComponentPropsWithoutRef<"button"> &\n VariantProps<typeof colorPickerSwatch> & {\n value: import("@starwind-ui/react/color-picker").ColorPickerValue;\n disabled?: boolean;\n };\n\nfunction ColorPickerSwatch(props: ColorPickerSwatchProps) {\n const { value, disabled = false, className, size = "md", children, ...rest } = props;\n\n return (\n <ColorPickerPrimitive.Swatch\n swatchValue={value}\n swatchDisabled={disabled}\n className={colorPickerSwatch({ size, class: className })}\n {...rest}\n data-slot="color-picker-swatch"\n >\n <ColorPickerPrimitive.TransparencyGrid\n className="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-transparency-grid"\n />\n\n <span\n className="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-swatch-color"\n />\n\n {children}\n </ColorPickerPrimitive.Swatch>\n );\n}\n\nexport default ColorPickerSwatch;\n'
|
|
4048
|
+
},
|
|
4049
|
+
{
|
|
4050
|
+
path: "src/components/starwind/color-picker/ColorPickerSwatchGroup.tsx",
|
|
4051
|
+
content: 'import ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerSwatchGroup } from "./variants";\n\nexport type ColorPickerSwatchGroupProps =\n React.ComponentPropsWithoutRef<"div"> &\n VariantProps<typeof colorPickerSwatchGroup>;\n\nfunction ColorPickerSwatchGroup(props: ColorPickerSwatchGroupProps) {\n const { className, size = "md", children, ...rest } = props;\n\n return (\n <ColorPickerPrimitive.SwatchGroup\n className={colorPickerSwatchGroup({ size, class: className })}\n {...rest}\n data-slot="color-picker-swatch-group"\n >\n {children}\n </ColorPickerPrimitive.SwatchGroup>\n );\n}\n\nexport default ColorPickerSwatchGroup;\n'
|
|
4052
|
+
},
|
|
4053
|
+
{
|
|
4054
|
+
path: "src/components/starwind/color-picker/ColorPickerTrigger.tsx",
|
|
4055
|
+
content: 'import ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { PopoverTrigger } from "../popover";\nimport { colorPickerTrigger, colorPickerValueSwatch } from "./variants";\n\nexport type ColorPickerTriggerProps = React.ComponentProps<typeof PopoverTrigger> &\n VariantProps<typeof colorPickerTrigger> & {\n showValueText?: boolean;\n };\n\nfunction ColorPickerTrigger(props: ColorPickerTriggerProps) {\n const { className, size = "md", showValueText = true, children, ...rest } = props;\n\n return (\n <PopoverTrigger\n className={colorPickerTrigger({ size, class: className })}\n {...rest}\n data-slot="color-picker-trigger"\n >\n {children}\n\n <ColorPickerPrimitive.ValueSwatch\n className={colorPickerValueSwatch({ size })}\n data-slot="color-picker-value-swatch"\n >\n <ColorPickerPrimitive.TransparencyGrid\n className="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-transparency-grid"\n />\n\n <span\n className="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-value-swatch-color"\n />\n </ColorPickerPrimitive.ValueSwatch>\n\n {showValueText && (\n <ColorPickerPrimitive.ValueText\n data-slot="color-picker-value-text"\n />\n )}\n </PopoverTrigger>\n );\n}\n\nexport default ColorPickerTrigger;\n'
|
|
4056
|
+
},
|
|
4057
|
+
{
|
|
4058
|
+
path: "src/components/starwind/color-picker/ColorPickerValueInput.tsx",
|
|
4059
|
+
content: 'import ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport { colorPickerValueInput, colorPickerValueInputLayout } from "./variants";\n\nexport type ColorPickerValueInputProps =\n Omit<React.ComponentPropsWithoutRef<"input">, "size"> &\n VariantProps<typeof colorPickerValueInput>;\n\nfunction ColorPickerValueInput(props: ColorPickerValueInputProps) {\n const { className, size = "md", ...rest } = props;\n\n return (\n <ColorPickerPrimitive.ValueInput\n className={[colorPickerValueInput({ size }), colorPickerValueInputLayout({ size }), className].filter(Boolean).join(" ")}\n {...rest}\n data-slot="color-picker-value-input"\n />\n );\n}\n\nexport default ColorPickerValueInput;\n'
|
|
4060
|
+
},
|
|
4061
|
+
{
|
|
4062
|
+
path: "src/components/starwind/color-picker/ColorPickerValueSwatch.tsx",
|
|
4063
|
+
content: 'import type * as React from "react";\nimport type { VariantProps } from "tailwind-variants";\nimport "./styles.css";\nimport ColorPickerPrimitive from "@starwind-ui/react/color-picker";\nimport { colorPickerValueSwatch } from "./variants";\n\nexport type ColorPickerValueSwatchProps =\n React.ComponentPropsWithoutRef<"span"> &\n VariantProps<typeof colorPickerValueSwatch>;\n\nfunction ColorPickerValueSwatch(props: ColorPickerValueSwatchProps) {\n const { className, size = "md", ...rest } = props;\n\n return (\n <ColorPickerPrimitive.ValueSwatch\n className={colorPickerValueSwatch({ size, class: className })}\n {...rest}\n data-slot="color-picker-value-swatch"\n >\n <ColorPickerPrimitive.TransparencyGrid\n className="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-transparency-grid"\n />\n\n <span\n className="pointer-events-none absolute inset-0 size-full"\n data-slot="color-picker-value-swatch-color"\n />\n </ColorPickerPrimitive.ValueSwatch>\n );\n}\n\nexport default ColorPickerValueSwatch;\n'
|
|
4064
|
+
},
|
|
4065
|
+
{
|
|
4066
|
+
path: "src/components/starwind/color-picker/index.ts",
|
|
4067
|
+
content: 'import ColorPicker from "./ColorPicker";\nimport ColorPickerArea from "./ColorPickerArea";\nimport ColorPickerAreaThumb from "./ColorPickerAreaThumb";\nimport ColorPickerChannelInput from "./ColorPickerChannelInput";\nimport ColorPickerChannelSlider from "./ColorPickerChannelSlider";\nimport ColorPickerClear from "./ColorPickerClear";\nimport ColorPickerContent from "./ColorPickerContent";\nimport ColorPickerControl from "./ColorPickerControl";\nimport ColorPickerEyeDropper from "./ColorPickerEyeDropper";\nimport ColorPickerFormatSelect from "./ColorPickerFormatSelect";\nimport ColorPickerHiddenInput from "./ColorPickerHiddenInput";\nimport ColorPickerInput from "./ColorPickerInput";\nimport ColorPickerLabel from "./ColorPickerLabel";\nimport ColorPickerNativeFormatSelect from "./ColorPickerNativeFormatSelect";\nimport ColorPickerRoot from "./ColorPickerRoot";\nimport ColorPickerSliders from "./ColorPickerSliders";\nimport ColorPickerSwatch from "./ColorPickerSwatch";\nimport ColorPickerSwatchGroup from "./ColorPickerSwatchGroup";\nimport ColorPickerTrigger from "./ColorPickerTrigger";\nimport ColorPickerValueInput from "./ColorPickerValueInput";\nimport ColorPickerValueSwatch from "./ColorPickerValueSwatch";\nimport {\n colorPicker,\n colorPickerAction,\n colorPickerArea,\n colorPickerAreaThumb,\n colorPickerChannelInput,\n colorPickerChannelInputLayout,\n colorPickerChannelSlider,\n colorPickerChannelSliderThumb,\n colorPickerContent,\n colorPickerControl,\n colorPickerFormatSelectTrigger,\n colorPickerHiddenInput,\n colorPickerInput,\n colorPickerLabel,\n colorPickerNativeFormatSelect,\n colorPickerNativeFormatSelectIcon,\n colorPickerNativeFormatSelectWrapper,\n colorPickerSeparator,\n colorPickerSliderActionRow,\n colorPickerSliders,\n colorPickerSwatch,\n colorPickerSwatchGroup,\n colorPickerTrigger,\n colorPickerValueFormatRow,\n colorPickerValueInput,\n colorPickerValueInputLayout,\n colorPickerValueSwatch,\n} from "./variants";\n\nconst ColorPickerVariants = {\n colorPicker,\n colorPickerAction,\n colorPickerArea,\n colorPickerAreaThumb,\n colorPickerChannelInput,\n colorPickerChannelInputLayout,\n colorPickerChannelSlider,\n colorPickerChannelSliderThumb,\n colorPickerContent,\n colorPickerControl,\n colorPickerFormatSelectTrigger,\n colorPickerHiddenInput,\n colorPickerInput,\n colorPickerLabel,\n colorPickerNativeFormatSelect,\n colorPickerNativeFormatSelectIcon,\n colorPickerNativeFormatSelectWrapper,\n colorPickerSeparator,\n colorPickerSliderActionRow,\n colorPickerSliders,\n colorPickerSwatch,\n colorPickerSwatchGroup,\n colorPickerTrigger,\n colorPickerValueFormatRow,\n colorPickerValueInput,\n colorPickerValueInputLayout,\n colorPickerValueSwatch,\n};\n\nexport {\n ColorPicker,\n ColorPickerArea,\n ColorPickerAreaThumb,\n ColorPickerChannelInput,\n ColorPickerChannelSlider,\n ColorPickerClear,\n ColorPickerContent,\n ColorPickerControl,\n ColorPickerEyeDropper,\n ColorPickerFormatSelect,\n ColorPickerHiddenInput,\n ColorPickerInput,\n ColorPickerLabel,\n ColorPickerNativeFormatSelect,\n ColorPickerRoot,\n ColorPickerSliders,\n ColorPickerSwatch,\n ColorPickerSwatchGroup,\n ColorPickerTrigger,\n ColorPickerValueInput,\n ColorPickerValueSwatch,\n ColorPickerVariants,\n};\n\nexport default {\n Root: ColorPicker,\n InlineRoot: ColorPickerRoot,\n Label: ColorPickerLabel,\n Control: ColorPickerControl,\n Input: ColorPickerInput,\n Trigger: ColorPickerTrigger,\n Content: ColorPickerContent,\n Area: ColorPickerArea,\n AreaThumb: ColorPickerAreaThumb,\n Sliders: ColorPickerSliders,\n ChannelSlider: ColorPickerChannelSlider,\n ChannelInput: ColorPickerChannelInput,\n ValueInput: ColorPickerValueInput,\n NativeFormatSelect: ColorPickerNativeFormatSelect,\n FormatSelect: ColorPickerFormatSelect,\n ValueSwatch: ColorPickerValueSwatch,\n SwatchGroup: ColorPickerSwatchGroup,\n Swatch: ColorPickerSwatch,\n EyeDropper: ColorPickerEyeDropper,\n Clear: ColorPickerClear,\n HiddenInput: ColorPickerHiddenInput,\n};\n'
|
|
4068
|
+
},
|
|
4069
|
+
{
|
|
4070
|
+
path: "src/components/starwind/color-picker/styles.css",
|
|
4071
|
+
content: '[data-slot="color-picker-area-background"] { background: var(--sw-color-picker-area-background-overlay, linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, transparent)), var(--sw-color-picker-area-background, hsl(var(--sw-color-picker-hue) 100% 50%)); }\n[data-slot="color-picker-channel-slider"] { --sw-color-picker-channel-gradient-direction: to right; --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), transparent, var(--sw-color-picker-color, #000)); }\n[data-slot="color-picker-channel-slider"][data-orientation="vertical"] { --sw-color-picker-channel-gradient-direction: to top; }\n[data-slot="color-picker-channel-slider"][data-channel="hue"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), #f00 0%, #ff0 16.67%, #0f0 33.33%, #0ff 50%, #00f 66.67%, #f0f 83.33%, #f00 100%); }\n[data-slot="color-picker-channel-slider"][data-channel="alpha"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), rgb(from var(--sw-color-picker-color, #000) r g b / 0), rgb(from var(--sw-color-picker-color, #000) r g b / 1)); }\n[data-slot="color-picker-channel-slider"][data-channel="saturation"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), hsl(var(--sw-color-picker-hue, 0) 0% 50%), hsl(var(--sw-color-picker-hue, 0) 100% 50%)); }\n[data-slot="color-picker-channel-slider"][data-channel="brightness"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), #000, hsl(var(--sw-color-picker-hue, 0) 100% 50%)); }\n[data-slot="color-picker-channel-slider"][data-channel="lightness"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), #000, hsl(var(--sw-color-picker-hue, 0) 100% 50%), #fff); }\n[data-slot="color-picker-channel-slider"][data-channel="red"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), rgb(from var(--sw-color-picker-color, #000) 0 g b), rgb(from var(--sw-color-picker-color, #000) 255 g b)); }\n[data-slot="color-picker-channel-slider"][data-channel="green"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), rgb(from var(--sw-color-picker-color, #000) r 0 b), rgb(from var(--sw-color-picker-color, #000) r 255 b)); }\n[data-slot="color-picker-channel-slider"][data-channel="blue"] { --sw-color-picker-channel-gradient: linear-gradient(var(--sw-color-picker-channel-gradient-direction), rgb(from var(--sw-color-picker-color, #000) r g 0), rgb(from var(--sw-color-picker-color, #000) r g 255)); }\n[data-slot="color-picker-channel-slider-track"] { background: var(--sw-color-picker-channel-gradient); }\n[data-slot="color-picker-transparency-grid"] { background-color: #fff; background-image: linear-gradient(45deg, #d4d4d8 25%, transparent 25%), linear-gradient(-45deg, #d4d4d8 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #d4d4d8 75%), linear-gradient(-45deg, transparent 75%, #d4d4d8 75%); background-position: 0 0, 0 4px, 4px -4px, -4px 0; background-size: 8px 8px; }\n[data-slot="color-picker-value-swatch-color"], [data-slot="color-picker-swatch-color"] { background: var(--sw-color-picker-swatch-color); }\n[data-slot="color-picker-value-swatch"] { background-color: #fff; background-image: linear-gradient(var(--sw-color-picker-swatch-color, transparent), var(--sw-color-picker-swatch-color, transparent)), linear-gradient(45deg, #d4d4d8 25%, transparent 25%), linear-gradient(-45deg, #d4d4d8 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #d4d4d8 75%), linear-gradient(-45deg, transparent 75%, #d4d4d8 75%); background-position: 0 0, 0 0, 0 4px, 4px -4px, -4px 0; background-size: 100% 100%, 8px 8px, 8px 8px, 8px 8px, 8px 8px; }\n[data-slot="color-picker-value-swatch"] > [data-slot="color-picker-transparency-grid"], [data-slot="color-picker-value-swatch"] > [data-slot="color-picker-value-swatch-color"] { display: none; }\n[data-slot="color-picker-footer"][data-has-swatches="false"]:not(:has([data-slot="color-picker-clear"]:not([hidden]))) > [data-slot="color-picker-separator"] { display: none; }\n[data-sw-color-picker][data-floating-root] > [data-slot="select-positioner"]:has(> [data-sw-color-picker-format-options]) { z-index: 60; }\n'
|
|
4072
|
+
},
|
|
4073
|
+
{
|
|
4074
|
+
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'
|
|
4076
|
+
}
|
|
4077
|
+
],
|
|
4078
|
+
componentDependencies: ["input", "native-select", "popover", "select"],
|
|
4079
|
+
packageRequirements: [
|
|
4080
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
3859
4081
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
3860
4082
|
{ name: "react", range: ">=18" },
|
|
3861
4083
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -3886,7 +4108,7 @@ export const comboboxValue = tv({
|
|
|
3886
4108
|
],
|
|
3887
4109
|
componentDependencies: [],
|
|
3888
4110
|
packageRequirements: [
|
|
3889
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
4111
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
3890
4112
|
{ name: "astro", range: ">=5" },
|
|
3891
4113
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3892
4114
|
]
|
|
@@ -3908,7 +4130,7 @@ export const comboboxValue = tv({
|
|
|
3908
4130
|
],
|
|
3909
4131
|
componentDependencies: [],
|
|
3910
4132
|
packageRequirements: [
|
|
3911
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
4133
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
3912
4134
|
{ name: "react", range: ">=18" },
|
|
3913
4135
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
3914
4136
|
]
|
|
@@ -4020,7 +4242,7 @@ export const inputGroupTextarea = tv({
|
|
|
4020
4242
|
],
|
|
4021
4243
|
componentDependencies: ["button", "input", "textarea"],
|
|
4022
4244
|
packageRequirements: [
|
|
4023
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
4245
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
4024
4246
|
{ name: "astro", range: ">=5" },
|
|
4025
4247
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
4026
4248
|
]
|
|
@@ -4124,7 +4346,7 @@ export const inputGroupTextarea = tv({
|
|
|
4124
4346
|
],
|
|
4125
4347
|
componentDependencies: ["button", "input", "textarea"],
|
|
4126
4348
|
packageRequirements: [
|
|
4127
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
4349
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
4128
4350
|
{ name: "react", range: ">=18" },
|
|
4129
4351
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
4130
4352
|
]
|
|
@@ -4166,7 +4388,7 @@ export const inputGroupTextarea = tv({
|
|
|
4166
4388
|
],
|
|
4167
4389
|
componentDependencies: [],
|
|
4168
4390
|
packageRequirements: [
|
|
4169
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
4391
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
4170
4392
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
4171
4393
|
{ name: "astro", range: ">=5" },
|
|
4172
4394
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -4201,7 +4423,7 @@ export const inputGroupTextarea = tv({
|
|
|
4201
4423
|
],
|
|
4202
4424
|
componentDependencies: [],
|
|
4203
4425
|
packageRequirements: [
|
|
4204
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
4426
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
4205
4427
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
4206
4428
|
{ name: "react", range: ">=18" },
|
|
4207
4429
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -4344,7 +4566,7 @@ export const itemTitle = tv({
|
|
|
4344
4566
|
],
|
|
4345
4567
|
componentDependencies: ["separator"],
|
|
4346
4568
|
packageRequirements: [
|
|
4347
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
4569
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
4348
4570
|
{ name: "astro", range: ">=5" },
|
|
4349
4571
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
4350
4572
|
]
|
|
@@ -4478,7 +4700,7 @@ export const itemTitle = tv({
|
|
|
4478
4700
|
],
|
|
4479
4701
|
componentDependencies: ["separator"],
|
|
4480
4702
|
packageRequirements: [
|
|
4481
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
4703
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
4482
4704
|
{ name: "react", range: ">=18" },
|
|
4483
4705
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
4484
4706
|
]
|
|
@@ -4516,7 +4738,7 @@ export const itemTitle = tv({
|
|
|
4516
4738
|
],
|
|
4517
4739
|
componentDependencies: [],
|
|
4518
4740
|
packageRequirements: [
|
|
4519
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
4741
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
4520
4742
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
4521
4743
|
{ name: "astro", range: ">=5" },
|
|
4522
4744
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -4547,7 +4769,7 @@ export const itemTitle = tv({
|
|
|
4547
4769
|
],
|
|
4548
4770
|
componentDependencies: [],
|
|
4549
4771
|
packageRequirements: [
|
|
4550
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
4772
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
4551
4773
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
4552
4774
|
{ name: "react", range: ">=18" },
|
|
4553
4775
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -4674,7 +4896,7 @@ export const navigationMenuViewport = tv({
|
|
|
4674
4896
|
],
|
|
4675
4897
|
componentDependencies: [],
|
|
4676
4898
|
packageRequirements: [
|
|
4677
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
4899
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
4678
4900
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
4679
4901
|
{ name: "astro", range: ">=5" },
|
|
4680
4902
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -4793,7 +5015,7 @@ export const navigationMenuViewport = tv({
|
|
|
4793
5015
|
],
|
|
4794
5016
|
componentDependencies: [],
|
|
4795
5017
|
packageRequirements: [
|
|
4796
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
5018
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
4797
5019
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
4798
5020
|
{ name: "react", range: ">=18" },
|
|
4799
5021
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -4848,7 +5070,7 @@ export const navigationMenuViewport = tv({
|
|
|
4848
5070
|
],
|
|
4849
5071
|
componentDependencies: ["button"],
|
|
4850
5072
|
packageRequirements: [
|
|
4851
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
5073
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
4852
5074
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
4853
5075
|
{ name: "astro", range: ">=5" },
|
|
4854
5076
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -4895,7 +5117,7 @@ export const navigationMenuViewport = tv({
|
|
|
4895
5117
|
],
|
|
4896
5118
|
componentDependencies: ["button"],
|
|
4897
5119
|
packageRequirements: [
|
|
4898
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
5120
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
4899
5121
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
4900
5122
|
{ name: "react", range: ">=18" },
|
|
4901
5123
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -4905,7 +5127,7 @@ export const navigationMenuViewport = tv({
|
|
|
4905
5127
|
},
|
|
4906
5128
|
{
|
|
4907
5129
|
name: "progress",
|
|
4908
|
-
version: "2.0.
|
|
5130
|
+
version: "2.0.1",
|
|
4909
5131
|
type: "component",
|
|
4910
5132
|
dependencies: [],
|
|
4911
5133
|
targets: {
|
|
@@ -4913,7 +5135,7 @@ export const navigationMenuViewport = tv({
|
|
|
4913
5135
|
files: [
|
|
4914
5136
|
{
|
|
4915
5137
|
path: "src/components/starwind/progress/Progress.astro",
|
|
4916
|
-
content: '---\nimport ProgressPrimitive from "@starwind-ui/astro/progress";\nimport type { HTMLAttributes } from "astro/types";\nimport { progress, progressIndicator, progressTrack } from "./variants";\n\ninterface Props extends Omit<HTMLAttributes<"div">, "value"> {\n label?: string;\n max?: number;\n min?: number;\n value?: number | null;\n variant?: "default" | "primary" | "secondary" | "info" | "success" | "warning" | "error";\n}\n\nconst {\n label,\n value = null,\n max = 100,\n min = 0,\n variant = "default",\n class: className,\n ...rest\n} = Astro.props;\n\nconst ariaLabel = rest["aria-label"] ?? label;\nconst
|
|
5138
|
+
content: '---\nimport ProgressPrimitive from "@starwind-ui/astro/progress";\nimport type { HTMLAttributes } from "astro/types";\nimport { progress, progressIndicator, progressTrack } from "./variants";\n\ninterface Props extends Omit<HTMLAttributes<"div">, "value"> {\n label?: string;\n max?: number;\n min?: number;\n value?: number | null;\n variant?: "default" | "primary" | "secondary" | "info" | "success" | "warning" | "error";\n}\n\nconst {\n label,\n value = null,\n max = 100,\n min = 0,\n variant = "default",\n class: className,\n ...rest\n} = Astro.props;\n\nconst ariaLabel = rest["aria-label"] ?? label;\nconst boundedMin = Number.isFinite(min) ? min : 0;\nconst boundedMax = Number.isFinite(max) ? max : 100;\nconst normalizedMin = Math.min(boundedMin, boundedMax);\nconst normalizedMax = Math.max(boundedMin, boundedMax);\nconst progressValue = value == null || !Number.isFinite(Number(value)) ? null : Math.min(Math.max(Number(value), normalizedMin), normalizedMax);\nconst isIndeterminate = progressValue === null;\nconst progressPercent = isIndeterminate ? 0 : normalizedMax === normalizedMin ? progressValue >= normalizedMax ? 100 : 0 : Math.round(Math.min(Math.max(((progressValue - normalizedMin) / (normalizedMax - normalizedMin)) * 100, 0), 100));\nconst indicatorStyle = isIndeterminate ? undefined : { transform: `translateX(-${100 - progressPercent}%)` };\n---\n\n<ProgressPrimitive.Root\n class={progress({ variant: isIndeterminate ? "indeterminate" : undefined, class: className })}\n max={normalizedMax}\n min={normalizedMin}\n value={progressValue}\n {...rest}\n aria-label={ariaLabel}\n data-slot="progress"\n>\n <ProgressPrimitive.Track class={progressTrack()} data-slot="progress-track">\n <ProgressPrimitive.Indicator\n class={progressIndicator({ variant: isIndeterminate ? "indeterminate" : undefined, color: variant })}\n style={indicatorStyle}\n data-slot="progress-indicator"\n />\n </ProgressPrimitive.Track>\n</ProgressPrimitive.Root>\n'
|
|
4917
5139
|
},
|
|
4918
5140
|
{
|
|
4919
5141
|
path: "src/components/starwind/progress/index.ts",
|
|
@@ -4921,12 +5143,12 @@ export const navigationMenuViewport = tv({
|
|
|
4921
5143
|
},
|
|
4922
5144
|
{
|
|
4923
5145
|
path: "src/components/starwind/progress/variants.ts",
|
|
4924
|
-
content: 'import { tv } from "tailwind-variants";\n\nexport const progress = tv({\n base: "bg-muted h-2 w-full overflow-hidden rounded-full",\n variants: {\n variant: {\n indeterminate: "relative",\n },\n },\n});\n\nexport const progressTrack = tv({\n base: "h-full w-full",\n});\n\nexport const progressIndicator = tv({\n base: "h-full w-full flex-1 transition-transform",\n variants: {\n variant: {\n indeterminate: "absolute inset-y-0 start-0 w-3/4",\n },\n color: {\n primary: "bg-primary",\n secondary: "bg-secondary",\n default: "bg-foreground",\n info: "bg-info",\n success: "bg-success",\n warning: "bg-warning",\n error: "bg-error",\n },\n },\n defaultVariants: {\n color: "primary",\n },\n});\n'
|
|
5146
|
+
content: 'import { tv } from "tailwind-variants";\n\nexport const progress = tv({\n base: "bg-muted h-2 w-full overflow-hidden rounded-full",\n variants: {\n variant: {\n indeterminate: "relative",\n },\n },\n});\n\nexport const progressTrack = tv({\n base: "h-full w-full",\n});\n\nexport const progressIndicator = tv({\n base: [\n "h-full w-full flex-1 transition-transform",\n "data-instant:transition-none motion-reduce:transition-none",\n ],\n variants: {\n variant: {\n indeterminate: "absolute inset-y-0 start-0 w-3/4",\n },\n color: {\n primary: "bg-primary",\n secondary: "bg-secondary",\n default: "bg-foreground",\n info: "bg-info",\n success: "bg-success",\n warning: "bg-warning",\n error: "bg-error",\n },\n },\n defaultVariants: {\n color: "primary",\n },\n});\n'
|
|
4925
5147
|
}
|
|
4926
5148
|
],
|
|
4927
5149
|
componentDependencies: [],
|
|
4928
5150
|
packageRequirements: [
|
|
4929
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
5151
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
4930
5152
|
{ name: "astro", range: ">=5" },
|
|
4931
5153
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
4932
5154
|
]
|
|
@@ -4935,7 +5157,7 @@ export const navigationMenuViewport = tv({
|
|
|
4935
5157
|
files: [
|
|
4936
5158
|
{
|
|
4937
5159
|
path: "src/components/starwind/progress/Progress.tsx",
|
|
4938
|
-
content: 'import ProgressPrimitive from "@starwind-ui/react/progress";\nimport type * as React from "react";\nimport { progress, progressIndicator, progressTrack } from "./variants";\n\nexport type ProgressProps = Omit<React.ComponentPropsWithoutRef<"div">, "value"> & {\n label?: string;\n max?: number;\n min?: number;\n ref?: React.Ref<HTMLDivElement>;\n value?: number | null;\n variant?: "default" | "primary" | "secondary" | "info" | "success" | "warning" | "error";\n};\n\nfunction Progress(props: ProgressProps) {\n const {\n label,\n value = null,\n max = 100,\n min = 0,\n variant = "default",\n ref,\n className,\n ...rest\n } = props;\n\n const ariaLabel = rest["aria-label"] ?? label;\n const
|
|
5160
|
+
content: 'import ProgressPrimitive from "@starwind-ui/react/progress";\nimport type * as React from "react";\nimport { progress, progressIndicator, progressTrack } from "./variants";\n\nexport type ProgressProps = Omit<React.ComponentPropsWithoutRef<"div">, "value"> & {\n label?: string;\n max?: number;\n min?: number;\n ref?: React.Ref<HTMLDivElement>;\n value?: number | null;\n variant?: "default" | "primary" | "secondary" | "info" | "success" | "warning" | "error";\n};\n\nfunction Progress(props: ProgressProps) {\n const {\n label,\n value = null,\n max = 100,\n min = 0,\n variant = "default",\n ref,\n className,\n ...rest\n } = props;\n\n const ariaLabel = rest["aria-label"] ?? label;\n const boundedMin = Number.isFinite(min) ? min : 0;\n const boundedMax = Number.isFinite(max) ? max : 100;\n const normalizedMin = Math.min(boundedMin, boundedMax);\n const normalizedMax = Math.max(boundedMin, boundedMax);\n const progressValue = value == null || !Number.isFinite(Number(value)) ? null : Math.min(Math.max(Number(value), normalizedMin), normalizedMax);\n const isIndeterminate = progressValue === null;\n const progressPercent = isIndeterminate ? 0 : normalizedMax === normalizedMin ? progressValue >= normalizedMax ? 100 : 0 : Math.round(Math.min(Math.max(((progressValue - normalizedMin) / (normalizedMax - normalizedMin)) * 100, 0), 100));\n const indicatorStyle = isIndeterminate ? undefined : { transform: `translateX(-${100 - progressPercent}%)` };\n\n return (\n <ProgressPrimitive.Root\n className={progress({ variant: isIndeterminate ? "indeterminate" : undefined, class: className })}\n max={normalizedMax}\n min={normalizedMin}\n ref={ref}\n value={progressValue}\n {...rest}\n aria-label={ariaLabel}\n data-slot="progress"\n >\n <ProgressPrimitive.Track\n className={progressTrack()}\n data-slot="progress-track"\n >\n <ProgressPrimitive.Indicator\n className={progressIndicator({ variant: isIndeterminate ? "indeterminate" : undefined, color: variant })}\n style={indicatorStyle}\n data-slot="progress-indicator"\n />\n </ProgressPrimitive.Track>\n </ProgressPrimitive.Root>\n );\n}\n\nexport default Progress;\n'
|
|
4939
5161
|
},
|
|
4940
5162
|
{
|
|
4941
5163
|
path: "src/components/starwind/progress/index.ts",
|
|
@@ -4943,12 +5165,12 @@ export const navigationMenuViewport = tv({
|
|
|
4943
5165
|
},
|
|
4944
5166
|
{
|
|
4945
5167
|
path: "src/components/starwind/progress/variants.ts",
|
|
4946
|
-
content: 'import { tv } from "tailwind-variants";\n\nexport const progress = tv({\n base: "bg-muted h-2 w-full overflow-hidden rounded-full",\n variants: {\n variant: {\n indeterminate: "relative",\n },\n },\n});\n\nexport const progressTrack = tv({\n base: "h-full w-full",\n});\n\nexport const progressIndicator = tv({\n base: "h-full w-full flex-1 transition-transform",\n variants: {\n variant: {\n indeterminate: "absolute inset-y-0 start-0 w-3/4",\n },\n color: {\n primary: "bg-primary",\n secondary: "bg-secondary",\n default: "bg-foreground",\n info: "bg-info",\n success: "bg-success",\n warning: "bg-warning",\n error: "bg-error",\n },\n },\n defaultVariants: {\n color: "primary",\n },\n});\n'
|
|
5168
|
+
content: 'import { tv } from "tailwind-variants";\n\nexport const progress = tv({\n base: "bg-muted h-2 w-full overflow-hidden rounded-full",\n variants: {\n variant: {\n indeterminate: "relative",\n },\n },\n});\n\nexport const progressTrack = tv({\n base: "h-full w-full",\n});\n\nexport const progressIndicator = tv({\n base: [\n "h-full w-full flex-1 transition-transform",\n "data-instant:transition-none motion-reduce:transition-none",\n ],\n variants: {\n variant: {\n indeterminate: "absolute inset-y-0 start-0 w-3/4",\n },\n color: {\n primary: "bg-primary",\n secondary: "bg-secondary",\n default: "bg-foreground",\n info: "bg-info",\n success: "bg-success",\n warning: "bg-warning",\n error: "bg-error",\n },\n },\n defaultVariants: {\n color: "primary",\n },\n});\n'
|
|
4947
5169
|
}
|
|
4948
5170
|
],
|
|
4949
5171
|
componentDependencies: [],
|
|
4950
5172
|
packageRequirements: [
|
|
4951
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
5173
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
4952
5174
|
{ name: "react", range: ">=18" },
|
|
4953
5175
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
4954
5176
|
]
|
|
@@ -5582,7 +5804,7 @@ export const navigationMenuViewport = tv({
|
|
|
5582
5804
|
],
|
|
5583
5805
|
componentDependencies: [],
|
|
5584
5806
|
packageRequirements: [
|
|
5585
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
5807
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
5586
5808
|
{ name: "astro", range: ">=5" },
|
|
5587
5809
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
5588
5810
|
]
|
|
@@ -6208,7 +6430,7 @@ export const navigationMenuViewport = tv({
|
|
|
6208
6430
|
],
|
|
6209
6431
|
componentDependencies: [],
|
|
6210
6432
|
packageRequirements: [
|
|
6211
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
6433
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
6212
6434
|
{ name: "react", range: ">=18" },
|
|
6213
6435
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
6214
6436
|
]
|
|
@@ -6242,7 +6464,7 @@ export const navigationMenuViewport = tv({
|
|
|
6242
6464
|
],
|
|
6243
6465
|
componentDependencies: [],
|
|
6244
6466
|
packageRequirements: [
|
|
6245
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
6467
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
6246
6468
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
6247
6469
|
{ name: "astro", range: ">=5" },
|
|
6248
6470
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -6269,7 +6491,7 @@ export const navigationMenuViewport = tv({
|
|
|
6269
6491
|
],
|
|
6270
6492
|
componentDependencies: [],
|
|
6271
6493
|
packageRequirements: [
|
|
6272
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
6494
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
6273
6495
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
6274
6496
|
{ name: "react", range: ">=18" },
|
|
6275
6497
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -6324,7 +6546,7 @@ export const navigationMenuViewport = tv({
|
|
|
6324
6546
|
],
|
|
6325
6547
|
componentDependencies: [],
|
|
6326
6548
|
packageRequirements: [
|
|
6327
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
6549
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
6328
6550
|
{ name: "astro", range: ">=5" },
|
|
6329
6551
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
6330
6552
|
]
|
|
@@ -6370,7 +6592,7 @@ export const navigationMenuViewport = tv({
|
|
|
6370
6592
|
],
|
|
6371
6593
|
componentDependencies: [],
|
|
6372
6594
|
packageRequirements: [
|
|
6373
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
6595
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
6374
6596
|
{ name: "react", range: ">=18" },
|
|
6375
6597
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
6376
6598
|
]
|
|
@@ -6444,7 +6666,7 @@ export const navigationMenuViewport = tv({
|
|
|
6444
6666
|
],
|
|
6445
6667
|
componentDependencies: [],
|
|
6446
6668
|
packageRequirements: [
|
|
6447
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
6669
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
6448
6670
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
6449
6671
|
{ name: "astro", range: ">=5" },
|
|
6450
6672
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -6511,7 +6733,7 @@ export const navigationMenuViewport = tv({
|
|
|
6511
6733
|
],
|
|
6512
6734
|
componentDependencies: [],
|
|
6513
6735
|
packageRequirements: [
|
|
6514
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
6736
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
6515
6737
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
6516
6738
|
{ name: "react", range: ">=18" },
|
|
6517
6739
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -6542,7 +6764,7 @@ export const navigationMenuViewport = tv({
|
|
|
6542
6764
|
],
|
|
6543
6765
|
componentDependencies: [],
|
|
6544
6766
|
packageRequirements: [
|
|
6545
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
6767
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
6546
6768
|
{ name: "astro", range: ">=5" },
|
|
6547
6769
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
6548
6770
|
]
|
|
@@ -6564,7 +6786,7 @@ export const navigationMenuViewport = tv({
|
|
|
6564
6786
|
],
|
|
6565
6787
|
componentDependencies: [],
|
|
6566
6788
|
packageRequirements: [
|
|
6567
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
6789
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
6568
6790
|
{ name: "react", range: ">=18" },
|
|
6569
6791
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
6570
6792
|
]
|
|
@@ -6594,7 +6816,7 @@ export const navigationMenuViewport = tv({
|
|
|
6594
6816
|
],
|
|
6595
6817
|
componentDependencies: [],
|
|
6596
6818
|
packageRequirements: [
|
|
6597
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
6819
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
6598
6820
|
{ name: "astro", range: ">=5" },
|
|
6599
6821
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
6600
6822
|
]
|
|
@@ -6616,7 +6838,7 @@ export const navigationMenuViewport = tv({
|
|
|
6616
6838
|
],
|
|
6617
6839
|
componentDependencies: [],
|
|
6618
6840
|
packageRequirements: [
|
|
6619
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
6841
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
6620
6842
|
{ name: "react", range: ">=18" },
|
|
6621
6843
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
6622
6844
|
]
|
|
@@ -6682,7 +6904,7 @@ export const tabsTrigger = tv({
|
|
|
6682
6904
|
],
|
|
6683
6905
|
componentDependencies: [],
|
|
6684
6906
|
packageRequirements: [
|
|
6685
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
6907
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
6686
6908
|
{ name: "astro", range: ">=5" },
|
|
6687
6909
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
6688
6910
|
]
|
|
@@ -6740,7 +6962,7 @@ export const tabsTrigger = tv({
|
|
|
6740
6962
|
],
|
|
6741
6963
|
componentDependencies: [],
|
|
6742
6964
|
packageRequirements: [
|
|
6743
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
6965
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
6744
6966
|
{ name: "react", range: ">=18" },
|
|
6745
6967
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
6746
6968
|
]
|
|
@@ -6798,7 +7020,7 @@ export const tabsTrigger = tv({
|
|
|
6798
7020
|
],
|
|
6799
7021
|
componentDependencies: [],
|
|
6800
7022
|
packageRequirements: [
|
|
6801
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
7023
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
6802
7024
|
{ name: "astro", range: ">=5" },
|
|
6803
7025
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
6804
7026
|
]
|
|
@@ -6848,7 +7070,7 @@ export const tabsTrigger = tv({
|
|
|
6848
7070
|
],
|
|
6849
7071
|
componentDependencies: [],
|
|
6850
7072
|
packageRequirements: [
|
|
6851
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
7073
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
6852
7074
|
{ name: "react", range: ">=18" },
|
|
6853
7075
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
6854
7076
|
]
|
|
@@ -6910,7 +7132,7 @@ export const tabsTrigger = tv({
|
|
|
6910
7132
|
],
|
|
6911
7133
|
componentDependencies: [],
|
|
6912
7134
|
packageRequirements: [
|
|
6913
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
7135
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
6914
7136
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
6915
7137
|
{ name: "astro", range: ">=5" },
|
|
6916
7138
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -6965,7 +7187,7 @@ export const tabsTrigger = tv({
|
|
|
6965
7187
|
],
|
|
6966
7188
|
componentDependencies: [],
|
|
6967
7189
|
packageRequirements: [
|
|
6968
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
7190
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
6969
7191
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
6970
7192
|
{ name: "react", range: ">=18" },
|
|
6971
7193
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -7004,7 +7226,7 @@ export const tabsTrigger = tv({
|
|
|
7004
7226
|
],
|
|
7005
7227
|
componentDependencies: [],
|
|
7006
7228
|
packageRequirements: [
|
|
7007
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
7229
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
7008
7230
|
{ name: "astro", range: ">=5" },
|
|
7009
7231
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7010
7232
|
]
|
|
@@ -7034,7 +7256,7 @@ export const tabsTrigger = tv({
|
|
|
7034
7256
|
],
|
|
7035
7257
|
componentDependencies: [],
|
|
7036
7258
|
packageRequirements: [
|
|
7037
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
7259
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
7038
7260
|
{ name: "react", range: ">=18" },
|
|
7039
7261
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7040
7262
|
]
|
|
@@ -7072,7 +7294,7 @@ export const tabsTrigger = tv({
|
|
|
7072
7294
|
],
|
|
7073
7295
|
componentDependencies: [],
|
|
7074
7296
|
packageRequirements: [
|
|
7075
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
7297
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
7076
7298
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
7077
7299
|
{ name: "astro", range: ">=5" },
|
|
7078
7300
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -7103,7 +7325,7 @@ export const tabsTrigger = tv({
|
|
|
7103
7325
|
],
|
|
7104
7326
|
componentDependencies: [],
|
|
7105
7327
|
packageRequirements: [
|
|
7106
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
7328
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
7107
7329
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
7108
7330
|
{ name: "react", range: ">=18" },
|
|
7109
7331
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -7163,7 +7385,7 @@ export const themeToggle = tv({
|
|
|
7163
7385
|
],
|
|
7164
7386
|
componentDependencies: [],
|
|
7165
7387
|
packageRequirements: [
|
|
7166
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
7388
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
7167
7389
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
7168
7390
|
{ name: "astro", range: ">=5" },
|
|
7169
7391
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -7215,7 +7437,7 @@ export const themeToggle = tv({
|
|
|
7215
7437
|
],
|
|
7216
7438
|
componentDependencies: [],
|
|
7217
7439
|
packageRequirements: [
|
|
7218
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
7440
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
7219
7441
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
7220
7442
|
{ name: "react", range: ">=18" },
|
|
7221
7443
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -7274,7 +7496,7 @@ export const toggle = tv({
|
|
|
7274
7496
|
],
|
|
7275
7497
|
componentDependencies: [],
|
|
7276
7498
|
packageRequirements: [
|
|
7277
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
7499
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
7278
7500
|
{ name: "astro", range: ">=5" },
|
|
7279
7501
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7280
7502
|
]
|
|
@@ -7324,7 +7546,7 @@ export const toggle = tv({
|
|
|
7324
7546
|
],
|
|
7325
7547
|
componentDependencies: [],
|
|
7326
7548
|
packageRequirements: [
|
|
7327
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
7549
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
7328
7550
|
{ name: "react", range: ">=18" },
|
|
7329
7551
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7330
7552
|
]
|
|
@@ -7401,7 +7623,7 @@ export const toggleGroupItem = tv({
|
|
|
7401
7623
|
],
|
|
7402
7624
|
componentDependencies: [],
|
|
7403
7625
|
packageRequirements: [
|
|
7404
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
7626
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
7405
7627
|
{ name: "astro", range: ">=5" },
|
|
7406
7628
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7407
7629
|
]
|
|
@@ -7470,7 +7692,7 @@ export const toggleGroupItem = tv({
|
|
|
7470
7692
|
],
|
|
7471
7693
|
componentDependencies: [],
|
|
7472
7694
|
packageRequirements: [
|
|
7473
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
7695
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
7474
7696
|
{ name: "react", range: ">=18" },
|
|
7475
7697
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7476
7698
|
]
|
|
@@ -7500,7 +7722,7 @@ export const toggleGroupItem = tv({
|
|
|
7500
7722
|
],
|
|
7501
7723
|
componentDependencies: [],
|
|
7502
7724
|
packageRequirements: [
|
|
7503
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
7725
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
7504
7726
|
{ name: "astro", range: ">=5" },
|
|
7505
7727
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7506
7728
|
]
|
|
@@ -7522,7 +7744,7 @@ export const toggleGroupItem = tv({
|
|
|
7522
7744
|
],
|
|
7523
7745
|
componentDependencies: [],
|
|
7524
7746
|
packageRequirements: [
|
|
7525
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
7747
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
7526
7748
|
{ name: "react", range: ">=18" },
|
|
7527
7749
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7528
7750
|
]
|
|
@@ -7624,7 +7846,7 @@ export const buttonGroupText = tv({
|
|
|
7624
7846
|
],
|
|
7625
7847
|
componentDependencies: ["separator"],
|
|
7626
7848
|
packageRequirements: [
|
|
7627
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
7849
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
7628
7850
|
{ name: "astro", range: ">=5" },
|
|
7629
7851
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7630
7852
|
]
|
|
@@ -7718,7 +7940,7 @@ export const buttonGroupText = tv({
|
|
|
7718
7940
|
],
|
|
7719
7941
|
componentDependencies: ["separator"],
|
|
7720
7942
|
packageRequirements: [
|
|
7721
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
7943
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
7722
7944
|
{ name: "react", range: ">=18" },
|
|
7723
7945
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7724
7946
|
]
|
|
@@ -7764,7 +7986,7 @@ export const buttonGroupText = tv({
|
|
|
7764
7986
|
],
|
|
7765
7987
|
componentDependencies: ["button"],
|
|
7766
7988
|
packageRequirements: [
|
|
7767
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
7989
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
7768
7990
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
7769
7991
|
{ name: "astro", range: ">=5" },
|
|
7770
7992
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -7798,12 +8020,12 @@ export const buttonGroupText = tv({
|
|
|
7798
8020
|
},
|
|
7799
8021
|
{
|
|
7800
8022
|
path: "src/components/starwind/carousel/variants.ts",
|
|
7801
|
-
content: 'import {
|
|
8023
|
+
content: 'import { tv } from "tailwind-variants";\nimport { button as buttonVariants } from "../button/variants";\n\nexport const carouselControl = tv({\n extend: buttonVariants,\n defaultVariants: {\n variant: "outline",\n size: "icon",\n },\n});\n\nexport const carousel = tv({\n base: "group/carousel relative",\n});\n\nexport const carouselContent = tv({\n base: "overflow-hidden",\n});\n\nexport const carouselContainer = tv({\n base: [\n "flex group-data-[axis=y]/carousel:flex-col",\n "group-data-[axis=x]/carousel:-ml-4",\n "group-data-[axis=y]/carousel:-mt-4",\n ],\n});\n\nexport const carouselItem = tv({\n base: [\n "min-w-0 shrink-0 grow-0 basis-full",\n "group-data-[axis=x]/carousel:pl-4",\n "group-data-[axis=y]/carousel:pt-4",\n ],\n});\n\nexport const carouselNext = tv({\n base: [\n "absolute size-8 rounded-full",\n "group-data-[axis=x]/carousel:top-1/2 group-data-[axis=x]/carousel:-right-12 group-data-[axis=x]/carousel:-translate-y-1/2",\n "group-data-[axis=y]/carousel:-bottom-12 group-data-[axis=y]/carousel:left-1/2 group-data-[axis=y]/carousel:-translate-x-1/2 group-data-[axis=y]/carousel:rotate-90",\n ],\n});\n\nexport const carouselPrevious = tv({\n base: [\n "absolute size-8 rounded-full",\n "group-data-[axis=x]/carousel:top-1/2 group-data-[axis=x]/carousel:-left-12 group-data-[axis=x]/carousel:-translate-y-1/2",\n "group-data-[axis=y]/carousel:-top-12 group-data-[axis=y]/carousel:left-1/2 group-data-[axis=y]/carousel:-translate-x-1/2 group-data-[axis=y]/carousel:rotate-90",\n ],\n});\n'
|
|
7802
8024
|
}
|
|
7803
8025
|
],
|
|
7804
8026
|
componentDependencies: ["button"],
|
|
7805
8027
|
packageRequirements: [
|
|
7806
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
8028
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
7807
8029
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
7808
8030
|
{ name: "react", range: ">=18" },
|
|
7809
8031
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -7844,7 +8066,7 @@ export const button = tv({
|
|
|
7844
8066
|
variant: {
|
|
7845
8067
|
default: "bg-foreground text-background hover:bg-foreground/90 focus-visible:ring-outline/50",
|
|
7846
8068
|
primary: "bg-primary text-primary-foreground hover:bg-primary/90 focus-visible:ring-primary/50",
|
|
7847
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary
|
|
8069
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] focus-visible:ring-secondary/50",
|
|
7848
8070
|
outline: "dark:border-input focus-visible:ring-outline/50 bg-background dark:bg-input/30 focus-visible:border-outline hover:bg-muted dark:hover:bg-input/50 hover:text-foreground border shadow-xs",
|
|
7849
8071
|
ghost: "hover:bg-muted hover:text-foreground focus-visible:ring-outline/50",
|
|
7850
8072
|
info: "bg-info text-info-foreground hover:bg-info/90 focus-visible:ring-info/50",
|
|
@@ -7871,7 +8093,7 @@ export const button = tv({
|
|
|
7871
8093
|
],
|
|
7872
8094
|
componentDependencies: [],
|
|
7873
8095
|
packageRequirements: [
|
|
7874
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
8096
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
7875
8097
|
{ name: "astro", range: ">=5" },
|
|
7876
8098
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7877
8099
|
]
|
|
@@ -7903,7 +8125,7 @@ export const button = tv({
|
|
|
7903
8125
|
variant: {
|
|
7904
8126
|
default: "bg-foreground text-background hover:bg-foreground/90 focus-visible:ring-outline/50",
|
|
7905
8127
|
primary: "bg-primary text-primary-foreground hover:bg-primary/90 focus-visible:ring-primary/50",
|
|
7906
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary
|
|
8128
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] focus-visible:ring-secondary/50",
|
|
7907
8129
|
outline: "dark:border-input focus-visible:ring-outline/50 bg-background dark:bg-input/30 focus-visible:border-outline hover:bg-muted dark:hover:bg-input/50 hover:text-foreground border shadow-xs",
|
|
7908
8130
|
ghost: "hover:bg-muted hover:text-foreground focus-visible:ring-outline/50",
|
|
7909
8131
|
info: "bg-info text-info-foreground hover:bg-info/90 focus-visible:ring-info/50",
|
|
@@ -7930,7 +8152,7 @@ export const button = tv({
|
|
|
7930
8152
|
],
|
|
7931
8153
|
componentDependencies: [],
|
|
7932
8154
|
packageRequirements: [
|
|
7933
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
8155
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
7934
8156
|
{ name: "react", range: ">=18" },
|
|
7935
8157
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7936
8158
|
]
|
|
@@ -7968,7 +8190,7 @@ export const button = tv({
|
|
|
7968
8190
|
],
|
|
7969
8191
|
componentDependencies: [],
|
|
7970
8192
|
packageRequirements: [
|
|
7971
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
8193
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
7972
8194
|
{ name: "astro", range: ">=5" },
|
|
7973
8195
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
7974
8196
|
]
|
|
@@ -7998,7 +8220,7 @@ export const button = tv({
|
|
|
7998
8220
|
],
|
|
7999
8221
|
componentDependencies: [],
|
|
8000
8222
|
packageRequirements: [
|
|
8001
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
8223
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
8002
8224
|
{ name: "react", range: ">=18" },
|
|
8003
8225
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
8004
8226
|
]
|
|
@@ -8007,7 +8229,7 @@ export const button = tv({
|
|
|
8007
8229
|
},
|
|
8008
8230
|
{
|
|
8009
8231
|
name: "accordion",
|
|
8010
|
-
version: "2.0.
|
|
8232
|
+
version: "2.0.2",
|
|
8011
8233
|
type: "component",
|
|
8012
8234
|
dependencies: [],
|
|
8013
8235
|
targets: {
|
|
@@ -8015,7 +8237,7 @@ export const button = tv({
|
|
|
8015
8237
|
files: [
|
|
8016
8238
|
{
|
|
8017
8239
|
path: "src/components/starwind/accordion/Accordion.astro",
|
|
8018
|
-
content: '---\nimport AccordionPrimitive from "@starwind-ui/astro/accordion";\nimport type { HTMLAttributes } from "astro/types";\nimport { accordion } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & {\n type?: "single" | "multiple";\n defaultValue?: string | string[];\n collapsible?: boolean;\n};\n\nconst {\n type = "single",\n defaultValue,\n collapsible =
|
|
8240
|
+
content: '---\nimport AccordionPrimitive from "@starwind-ui/astro/accordion";\nimport type { HTMLAttributes } from "astro/types";\nimport { accordion } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & {\n type?: "single" | "multiple";\n defaultValue?: string | string[];\n collapsible?: boolean;\n};\n\nconst {\n type = "single",\n defaultValue,\n collapsible = true,\n class: className,\n ...rest\n} = Astro.props;\n---\n\n<AccordionPrimitive.Root\n class={accordion({ class: className })}\n type={type}\n defaultValue={defaultValue}\n collapsible={collapsible}\n {...rest}\n data-slot="accordion"\n>\n <slot />\n</AccordionPrimitive.Root>\n'
|
|
8019
8241
|
},
|
|
8020
8242
|
{
|
|
8021
8243
|
path: "src/components/starwind/accordion/AccordionContent.astro",
|
|
@@ -8035,12 +8257,12 @@ export const button = tv({
|
|
|
8035
8257
|
},
|
|
8036
8258
|
{
|
|
8037
8259
|
path: "src/components/starwind/accordion/variants.ts",
|
|
8038
|
-
content: 'import { tv } from "tailwind-variants";\n\nexport const accordion = tv({\n base: "",\n});\n\nexport const accordionContent = tv({\n base: [\n "transform-gpu overflow-hidden",\n "data-[state=closed]:animate-accordion-up data-[state=closed]:h-0",\n "data-[state=open]:animate-accordion-down",\n ],\n});\n\nexport const accordionItem = tv({\n base: "
|
|
8260
|
+
content: 'import { tv } from "tailwind-variants";\n\nexport const accordion = tv({\n base: "",\n});\n\nexport const accordionContent = tv({\n base: [\n "transform-gpu overflow-hidden",\n "data-[state=closed]:animate-accordion-up data-[state=closed]:h-0",\n "data-[state=open]:animate-accordion-down",\n ],\n});\n\nexport const accordionItem = tv({\n base: "not-last:border-b",\n});\n\nexport const accordionTrigger = tv({\n base: [\n "flex w-full items-center justify-between gap-4 rounded-md py-4",\n "hover:text-muted-foreground text-left font-medium transition-all",\n "[&[data-state=open]>svg]:rotate-180",\n "focus-visible:border-outline focus-visible:ring-outline/50 outline-none focus-visible:ring-3",\n "disabled:pointer-events-none disabled:opacity-50",\n ],\n});\n'
|
|
8039
8261
|
}
|
|
8040
8262
|
],
|
|
8041
8263
|
componentDependencies: [],
|
|
8042
8264
|
packageRequirements: [
|
|
8043
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
8265
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
8044
8266
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
8045
8267
|
{ name: "astro", range: ">=5" },
|
|
8046
8268
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8050,7 +8272,7 @@ export const button = tv({
|
|
|
8050
8272
|
files: [
|
|
8051
8273
|
{
|
|
8052
8274
|
path: "src/components/starwind/accordion/Accordion.tsx",
|
|
8053
|
-
content: 'import AccordionPrimitive from "@starwind-ui/react/accordion";\nimport type * as React from "react";\nimport { accordion } from "./variants";\n\nexport type AccordionProps = React.ComponentPropsWithoutRef<"div"> & {\n type?: "single" | "multiple";\n defaultValue?: string | string[];\n value?: import("@starwind-ui/react/accordion").AccordionValue;\n collapsible?: boolean;\n onValueChange?: (details: import("@starwind-ui/react/accordion").AccordionValueChangeDetails) => void;\n};\n\nfunction Accordion(props: AccordionProps) {\n const {\n type = "single",\n defaultValue,\n value,\n collapsible =
|
|
8275
|
+
content: 'import AccordionPrimitive from "@starwind-ui/react/accordion";\nimport type * as React from "react";\nimport { accordion } from "./variants";\n\nexport type AccordionProps = React.ComponentPropsWithoutRef<"div"> & {\n type?: "single" | "multiple";\n defaultValue?: string | string[];\n value?: import("@starwind-ui/react/accordion").AccordionValue;\n collapsible?: boolean;\n onValueChange?: (details: import("@starwind-ui/react/accordion").AccordionValueChangeDetails) => void;\n};\n\nfunction Accordion(props: AccordionProps) {\n const {\n type = "single",\n defaultValue,\n value,\n collapsible = true,\n onValueChange,\n className,\n children,\n ...rest\n } = props;\n\n return (\n <AccordionPrimitive.Root\n className={accordion({ class: className })}\n type={type}\n defaultValue={defaultValue}\n value={value}\n collapsible={collapsible}\n onValueChange={onValueChange}\n {...rest}\n data-slot="accordion"\n >\n {children}\n </AccordionPrimitive.Root>\n );\n}\n\nexport default Accordion;\n'
|
|
8054
8276
|
},
|
|
8055
8277
|
{
|
|
8056
8278
|
path: "src/components/starwind/accordion/AccordionContent.tsx",
|
|
@@ -8070,12 +8292,12 @@ export const button = tv({
|
|
|
8070
8292
|
},
|
|
8071
8293
|
{
|
|
8072
8294
|
path: "src/components/starwind/accordion/variants.ts",
|
|
8073
|
-
content: 'import { tv } from "tailwind-variants";\n\nexport const accordion = tv({\n base: "",\n});\n\nexport const accordionContent = tv({\n base: [\n "transform-gpu overflow-hidden",\n "data-[state=closed]:animate-accordion-up data-[state=closed]:h-0",\n "data-[state=open]:animate-accordion-down",\n ],\n});\n\nexport const accordionItem = tv({\n base: "
|
|
8295
|
+
content: 'import { tv } from "tailwind-variants";\n\nexport const accordion = tv({\n base: "",\n});\n\nexport const accordionContent = tv({\n base: [\n "transform-gpu overflow-hidden",\n "data-[state=closed]:animate-accordion-up data-[state=closed]:h-0",\n "data-[state=open]:animate-accordion-down",\n ],\n});\n\nexport const accordionItem = tv({\n base: "not-last:border-b",\n});\n\nexport const accordionTrigger = tv({\n base: [\n "flex w-full items-center justify-between gap-4 rounded-md py-4",\n "hover:text-muted-foreground text-left font-medium transition-all",\n "[&[data-state=open]>svg]:rotate-180",\n "focus-visible:border-outline focus-visible:ring-outline/50 outline-none focus-visible:ring-3",\n "disabled:pointer-events-none disabled:opacity-50",\n ],\n});\n'
|
|
8074
8296
|
}
|
|
8075
8297
|
],
|
|
8076
8298
|
componentDependencies: [],
|
|
8077
8299
|
packageRequirements: [
|
|
8078
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
8300
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
8079
8301
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
8080
8302
|
{ name: "react", range: ">=18" },
|
|
8081
8303
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8138,7 +8360,7 @@ export const button = tv({
|
|
|
8138
8360
|
],
|
|
8139
8361
|
componentDependencies: ["button"],
|
|
8140
8362
|
packageRequirements: [
|
|
8141
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
8363
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
8142
8364
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
8143
8365
|
{ name: "astro", range: ">=5" },
|
|
8144
8366
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8193,7 +8415,7 @@ export const button = tv({
|
|
|
8193
8415
|
],
|
|
8194
8416
|
componentDependencies: ["button"],
|
|
8195
8417
|
packageRequirements: [
|
|
8196
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
8418
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
8197
8419
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
8198
8420
|
{ name: "react", range: ">=18" },
|
|
8199
8421
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8203,7 +8425,7 @@ export const button = tv({
|
|
|
8203
8425
|
},
|
|
8204
8426
|
{
|
|
8205
8427
|
name: "dropdown",
|
|
8206
|
-
version: "3.
|
|
8428
|
+
version: "3.1.0",
|
|
8207
8429
|
type: "component",
|
|
8208
8430
|
dependencies: [],
|
|
8209
8431
|
targets: {
|
|
@@ -8237,6 +8459,10 @@ export const button = tv({
|
|
|
8237
8459
|
path: "src/components/starwind/dropdown/DropdownLabel.astro",
|
|
8238
8460
|
content: '---\nimport MenuPrimitive from "@starwind-ui/astro/menu";\nimport type { HTMLAttributes } from "astro/types";\nimport { dropdownLabel } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & {\n inset?: boolean;\n};\n\nconst { class: className, inset = false, ...rest } = Astro.props;\n---\n\n<MenuPrimitive.Label\n class={dropdownLabel({ inset, class: className })}\n {...rest}\n data-slot="dropdown-label"\n>\n <slot />\n</MenuPrimitive.Label>\n'
|
|
8239
8461
|
},
|
|
8462
|
+
{
|
|
8463
|
+
path: "src/components/starwind/dropdown/DropdownLinkItem.astro",
|
|
8464
|
+
content: '---\nimport MenuPrimitive from "@starwind-ui/astro/menu";\nimport type { HTMLAttributes } from "astro/types";\nimport { dropdownItem } from "./variants";\n\ntype Props = HTMLAttributes<"a"> & {\n closeOnClick?: boolean;\n inset?: boolean;\n disabled?: boolean;\n};\n\nconst {\n class: className,\n closeOnClick = false,\n inset = false,\n disabled = false,\n ...rest\n} = Astro.props;\n---\n\n<MenuPrimitive.LinkItem\n class={dropdownItem({ inset, disabled, class: className })}\n closeOnClick={closeOnClick}\n disabled={disabled}\n {...rest}\n data-slot="dropdown-link-item"\n>\n <slot />\n</MenuPrimitive.LinkItem>\n'
|
|
8465
|
+
},
|
|
8240
8466
|
{
|
|
8241
8467
|
path: "src/components/starwind/dropdown/DropdownRadioGroup.astro",
|
|
8242
8468
|
content: '---\nimport MenuPrimitive from "@starwind-ui/astro/menu";\nimport type { HTMLAttributes } from "astro/types";\nimport { dropdownRadioGroup } from "./variants";\n\ntype Props = HTMLAttributes<"div"> & {\n value?: string;\n defaultValue?: string;\n};\n\nconst { class: className, value, defaultValue, ...rest } = Astro.props;\n---\n\n<MenuPrimitive.RadioGroup\n class={dropdownRadioGroup({ class: className })}\n value={value}\n defaultValue={defaultValue}\n {...rest}\n data-slot="dropdown-radio-group"\n>\n <slot />\n</MenuPrimitive.RadioGroup>\n'
|
|
@@ -8275,7 +8501,7 @@ export const button = tv({
|
|
|
8275
8501
|
},
|
|
8276
8502
|
{
|
|
8277
8503
|
path: "src/components/starwind/dropdown/index.ts",
|
|
8278
|
-
content: 'import Dropdown from "./Dropdown.astro";\nimport DropdownCheckboxItem from "./DropdownCheckboxItem.astro";\nimport DropdownCheckboxItemIndicator from "./DropdownCheckboxItemIndicator.astro";\nimport DropdownContent from "./DropdownContent.astro";\nimport DropdownGroup from "./DropdownGroup.astro";\nimport DropdownItem from "./DropdownItem.astro";\nimport DropdownLabel from "./DropdownLabel.astro";\nimport DropdownRadioGroup from "./DropdownRadioGroup.astro";\nimport DropdownRadioItem from "./DropdownRadioItem.astro";\nimport DropdownRadioItemIndicator from "./DropdownRadioItemIndicator.astro";\nimport DropdownSeparator from "./DropdownSeparator.astro";\nimport DropdownShortcut from "./DropdownShortcut.astro";\nimport DropdownSub from "./DropdownSub.astro";\nimport DropdownSubContent from "./DropdownSubContent.astro";\nimport DropdownSubTrigger from "./DropdownSubTrigger.astro";\nimport DropdownTrigger from "./DropdownTrigger.astro";\nimport {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n} from "./variants";\n\nconst DropdownVariants = {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n};\n\nexport {\n Dropdown,\n DropdownCheckboxItem,\n DropdownCheckboxItemIndicator,\n DropdownContent,\n DropdownGroup,\n DropdownItem,\n DropdownLabel,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownRadioItemIndicator,\n DropdownSeparator,\n DropdownShortcut,\n DropdownSub,\n DropdownSubContent,\n DropdownSubTrigger,\n DropdownTrigger,\n DropdownVariants,\n};\n\nexport default {\n Root: Dropdown,\n Trigger: DropdownTrigger,\n Content: DropdownContent,\n CheckboxItem: DropdownCheckboxItem,\n CheckboxItemIndicator: DropdownCheckboxItemIndicator,\n RadioGroup: DropdownRadioGroup,\n RadioItem: DropdownRadioItem,\n RadioItemIndicator: DropdownRadioItemIndicator,\n Item: DropdownItem,\n Group: DropdownGroup,\n Label: DropdownLabel,\n Separator: DropdownSeparator,\n Shortcut: DropdownShortcut,\n Sub: DropdownSub,\n SubTrigger: DropdownSubTrigger,\n SubContent: DropdownSubContent,\n};\n'
|
|
8504
|
+
content: 'import Dropdown from "./Dropdown.astro";\nimport DropdownCheckboxItem from "./DropdownCheckboxItem.astro";\nimport DropdownCheckboxItemIndicator from "./DropdownCheckboxItemIndicator.astro";\nimport DropdownContent from "./DropdownContent.astro";\nimport DropdownGroup from "./DropdownGroup.astro";\nimport DropdownItem from "./DropdownItem.astro";\nimport DropdownLabel from "./DropdownLabel.astro";\nimport DropdownLinkItem from "./DropdownLinkItem.astro";\nimport DropdownRadioGroup from "./DropdownRadioGroup.astro";\nimport DropdownRadioItem from "./DropdownRadioItem.astro";\nimport DropdownRadioItemIndicator from "./DropdownRadioItemIndicator.astro";\nimport DropdownSeparator from "./DropdownSeparator.astro";\nimport DropdownShortcut from "./DropdownShortcut.astro";\nimport DropdownSub from "./DropdownSub.astro";\nimport DropdownSubContent from "./DropdownSubContent.astro";\nimport DropdownSubTrigger from "./DropdownSubTrigger.astro";\nimport DropdownTrigger from "./DropdownTrigger.astro";\nimport {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n} from "./variants";\n\nconst DropdownVariants = {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n};\n\nexport {\n Dropdown,\n DropdownCheckboxItem,\n DropdownCheckboxItemIndicator,\n DropdownContent,\n DropdownGroup,\n DropdownItem,\n DropdownLabel,\n DropdownLinkItem,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownRadioItemIndicator,\n DropdownSeparator,\n DropdownShortcut,\n DropdownSub,\n DropdownSubContent,\n DropdownSubTrigger,\n DropdownTrigger,\n DropdownVariants,\n};\n\nexport default {\n Root: Dropdown,\n Trigger: DropdownTrigger,\n Content: DropdownContent,\n CheckboxItem: DropdownCheckboxItem,\n CheckboxItemIndicator: DropdownCheckboxItemIndicator,\n RadioGroup: DropdownRadioGroup,\n RadioItem: DropdownRadioItem,\n RadioItemIndicator: DropdownRadioItemIndicator,\n Item: DropdownItem,\n LinkItem: DropdownLinkItem,\n Group: DropdownGroup,\n Label: DropdownLabel,\n Separator: DropdownSeparator,\n Shortcut: DropdownShortcut,\n Sub: DropdownSub,\n SubTrigger: DropdownSubTrigger,\n SubContent: DropdownSubContent,\n};\n'
|
|
8279
8505
|
},
|
|
8280
8506
|
{
|
|
8281
8507
|
path: "src/components/starwind/dropdown/variants.ts",
|
|
@@ -8284,7 +8510,7 @@ export const button = tv({
|
|
|
8284
8510
|
],
|
|
8285
8511
|
componentDependencies: [],
|
|
8286
8512
|
packageRequirements: [
|
|
8287
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
8513
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
8288
8514
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
8289
8515
|
{ name: "astro", range: ">=5" },
|
|
8290
8516
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8320,6 +8546,10 @@ export const button = tv({
|
|
|
8320
8546
|
path: "src/components/starwind/dropdown/DropdownLabel.tsx",
|
|
8321
8547
|
content: 'import MenuPrimitive from "@starwind-ui/react/menu";\nimport type * as React from "react";\nimport { dropdownLabel } from "./variants";\n\nexport type DropdownLabelProps = React.ComponentPropsWithoutRef<"div"> & {\n inset?: boolean;\n};\n\nfunction DropdownLabel(props: DropdownLabelProps) {\n const { className, inset = false, children, ...rest } = props;\n\n return (\n <MenuPrimitive.Label\n className={dropdownLabel({ inset, class: className })}\n {...rest}\n data-slot="dropdown-label"\n >\n {children}\n </MenuPrimitive.Label>\n );\n}\n\nexport default DropdownLabel;\n'
|
|
8322
8548
|
},
|
|
8549
|
+
{
|
|
8550
|
+
path: "src/components/starwind/dropdown/DropdownLinkItem.tsx",
|
|
8551
|
+
content: 'import MenuPrimitive from "@starwind-ui/react/menu";\nimport type * as React from "react";\nimport { dropdownItem } from "./variants";\n\nexport type DropdownLinkItemProps = React.ComponentPropsWithoutRef<"a"> & {\n closeOnClick?: boolean;\n inset?: boolean;\n disabled?: boolean;\n};\n\nfunction DropdownLinkItem(props: DropdownLinkItemProps) {\n const {\n className,\n closeOnClick = false,\n inset = false,\n disabled = false,\n children,\n ...rest\n } = props;\n\n return (\n <MenuPrimitive.LinkItem\n className={dropdownItem({ inset, disabled, class: className })}\n closeOnClick={closeOnClick}\n disabled={disabled}\n {...rest}\n data-slot="dropdown-link-item"\n >\n {children}\n </MenuPrimitive.LinkItem>\n );\n}\n\nexport default DropdownLinkItem;\n'
|
|
8552
|
+
},
|
|
8323
8553
|
{
|
|
8324
8554
|
path: "src/components/starwind/dropdown/DropdownRadioGroup.tsx",
|
|
8325
8555
|
content: 'import MenuPrimitive from "@starwind-ui/react/menu";\nimport type * as React from "react";\nimport { dropdownRadioGroup } from "./variants";\n\nexport type DropdownRadioGroupProps = React.ComponentPropsWithoutRef<"div"> & {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string, details: import("@starwind-ui/react/menu").MenuValueChangeDetails) => void;\n};\n\nfunction DropdownRadioGroup(props: DropdownRadioGroupProps) {\n const { className, value, defaultValue, onValueChange, children, ...rest } = props;\n\n return (\n <MenuPrimitive.RadioGroup\n className={dropdownRadioGroup({ class: className })}\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange}\n {...rest}\n data-slot="dropdown-radio-group"\n >\n {children}\n </MenuPrimitive.RadioGroup>\n );\n}\n\nexport default DropdownRadioGroup;\n'
|
|
@@ -8358,7 +8588,7 @@ export const button = tv({
|
|
|
8358
8588
|
},
|
|
8359
8589
|
{
|
|
8360
8590
|
path: "src/components/starwind/dropdown/index.ts",
|
|
8361
|
-
content: 'import Dropdown from "./Dropdown";\nimport DropdownCheckboxItem from "./DropdownCheckboxItem";\nimport DropdownCheckboxItemIndicator from "./DropdownCheckboxItemIndicator";\nimport DropdownContent from "./DropdownContent";\nimport DropdownGroup from "./DropdownGroup";\nimport DropdownItem from "./DropdownItem";\nimport DropdownLabel from "./DropdownLabel";\nimport DropdownRadioGroup from "./DropdownRadioGroup";\nimport DropdownRadioItem from "./DropdownRadioItem";\nimport DropdownRadioItemIndicator from "./DropdownRadioItemIndicator";\nimport DropdownSeparator from "./DropdownSeparator";\nimport DropdownShortcut from "./DropdownShortcut";\nimport DropdownSub from "./DropdownSub";\nimport DropdownSubContent from "./DropdownSubContent";\nimport DropdownSubTrigger from "./DropdownSubTrigger";\nimport DropdownTrigger from "./DropdownTrigger";\nimport {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n} from "./variants";\n\nconst DropdownVariants = {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n};\n\nexport {\n Dropdown,\n DropdownCheckboxItem,\n DropdownCheckboxItemIndicator,\n DropdownContent,\n DropdownGroup,\n DropdownItem,\n DropdownLabel,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownRadioItemIndicator,\n DropdownSeparator,\n DropdownShortcut,\n DropdownSub,\n DropdownSubContent,\n DropdownSubTrigger,\n DropdownTrigger,\n DropdownVariants,\n};\n\nexport default {\n Root: Dropdown,\n Trigger: DropdownTrigger,\n Content: DropdownContent,\n CheckboxItem: DropdownCheckboxItem,\n CheckboxItemIndicator: DropdownCheckboxItemIndicator,\n RadioGroup: DropdownRadioGroup,\n RadioItem: DropdownRadioItem,\n RadioItemIndicator: DropdownRadioItemIndicator,\n Item: DropdownItem,\n Group: DropdownGroup,\n Label: DropdownLabel,\n Separator: DropdownSeparator,\n Shortcut: DropdownShortcut,\n Sub: DropdownSub,\n SubTrigger: DropdownSubTrigger,\n SubContent: DropdownSubContent,\n};\n'
|
|
8591
|
+
content: 'import Dropdown from "./Dropdown";\nimport DropdownCheckboxItem from "./DropdownCheckboxItem";\nimport DropdownCheckboxItemIndicator from "./DropdownCheckboxItemIndicator";\nimport DropdownContent from "./DropdownContent";\nimport DropdownGroup from "./DropdownGroup";\nimport DropdownItem from "./DropdownItem";\nimport DropdownLabel from "./DropdownLabel";\nimport DropdownLinkItem from "./DropdownLinkItem";\nimport DropdownRadioGroup from "./DropdownRadioGroup";\nimport DropdownRadioItem from "./DropdownRadioItem";\nimport DropdownRadioItemIndicator from "./DropdownRadioItemIndicator";\nimport DropdownSeparator from "./DropdownSeparator";\nimport DropdownShortcut from "./DropdownShortcut";\nimport DropdownSub from "./DropdownSub";\nimport DropdownSubContent from "./DropdownSubContent";\nimport DropdownSubTrigger from "./DropdownSubTrigger";\nimport DropdownTrigger from "./DropdownTrigger";\nimport {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n} from "./variants";\n\nconst DropdownVariants = {\n dropdown,\n dropdownCheckboxItem,\n dropdownCheckboxItemIndicator,\n dropdownContent,\n dropdownItem,\n dropdownLabel,\n dropdownRadioGroup,\n dropdownRadioItem,\n dropdownRadioItemIndicator,\n dropdownSeparator,\n dropdownShortcut,\n dropdownTrigger,\n};\n\nexport {\n Dropdown,\n DropdownCheckboxItem,\n DropdownCheckboxItemIndicator,\n DropdownContent,\n DropdownGroup,\n DropdownItem,\n DropdownLabel,\n DropdownLinkItem,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownRadioItemIndicator,\n DropdownSeparator,\n DropdownShortcut,\n DropdownSub,\n DropdownSubContent,\n DropdownSubTrigger,\n DropdownTrigger,\n DropdownVariants,\n};\n\nexport default {\n Root: Dropdown,\n Trigger: DropdownTrigger,\n Content: DropdownContent,\n CheckboxItem: DropdownCheckboxItem,\n CheckboxItemIndicator: DropdownCheckboxItemIndicator,\n RadioGroup: DropdownRadioGroup,\n RadioItem: DropdownRadioItem,\n RadioItemIndicator: DropdownRadioItemIndicator,\n Item: DropdownItem,\n LinkItem: DropdownLinkItem,\n Group: DropdownGroup,\n Label: DropdownLabel,\n Separator: DropdownSeparator,\n Shortcut: DropdownShortcut,\n Sub: DropdownSub,\n SubTrigger: DropdownSubTrigger,\n SubContent: DropdownSubContent,\n};\n'
|
|
8362
8592
|
},
|
|
8363
8593
|
{
|
|
8364
8594
|
path: "src/components/starwind/dropdown/variants.ts",
|
|
@@ -8367,7 +8597,7 @@ export const button = tv({
|
|
|
8367
8597
|
],
|
|
8368
8598
|
componentDependencies: [],
|
|
8369
8599
|
packageRequirements: [
|
|
8370
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
8600
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
8371
8601
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
8372
8602
|
{ name: "react", range: ">=18" },
|
|
8373
8603
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8410,7 +8640,7 @@ export const button = tv({
|
|
|
8410
8640
|
],
|
|
8411
8641
|
componentDependencies: [],
|
|
8412
8642
|
packageRequirements: [
|
|
8413
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
8643
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
8414
8644
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
8415
8645
|
{ name: "astro", range: ">=5" },
|
|
8416
8646
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8445,7 +8675,7 @@ export const button = tv({
|
|
|
8445
8675
|
],
|
|
8446
8676
|
componentDependencies: [],
|
|
8447
8677
|
packageRequirements: [
|
|
8448
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
8678
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
8449
8679
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
8450
8680
|
{ name: "react", range: ">=18" },
|
|
8451
8681
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8536,7 +8766,7 @@ export const button = tv({
|
|
|
8536
8766
|
],
|
|
8537
8767
|
componentDependencies: [],
|
|
8538
8768
|
packageRequirements: [
|
|
8539
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
8769
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
8540
8770
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
8541
8771
|
{ name: "astro", range: ">=5" },
|
|
8542
8772
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8619,7 +8849,7 @@ export const button = tv({
|
|
|
8619
8849
|
],
|
|
8620
8850
|
componentDependencies: [],
|
|
8621
8851
|
packageRequirements: [
|
|
8622
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
8852
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
8623
8853
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
8624
8854
|
{ name: "react", range: ">=18" },
|
|
8625
8855
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8678,7 +8908,7 @@ export const button = tv({
|
|
|
8678
8908
|
],
|
|
8679
8909
|
componentDependencies: ["button"],
|
|
8680
8910
|
packageRequirements: [
|
|
8681
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
8911
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
8682
8912
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
8683
8913
|
{ name: "astro", range: ">=5" },
|
|
8684
8914
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8729,7 +8959,7 @@ export const button = tv({
|
|
|
8729
8959
|
],
|
|
8730
8960
|
componentDependencies: ["button"],
|
|
8731
8961
|
packageRequirements: [
|
|
8732
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
8962
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
8733
8963
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
8734
8964
|
{ name: "react", range: ">=18" },
|
|
8735
8965
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8852,7 +9082,7 @@ export const button = tv({
|
|
|
8852
9082
|
],
|
|
8853
9083
|
componentDependencies: ["button", "input", "separator", "sheet", "skeleton", "tooltip"],
|
|
8854
9084
|
packageRequirements: [
|
|
8855
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
9085
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
8856
9086
|
{ name: "@tabler/icons", range: "^3.37.1" },
|
|
8857
9087
|
{ name: "astro", range: ">=5" },
|
|
8858
9088
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8967,7 +9197,7 @@ export const button = tv({
|
|
|
8967
9197
|
],
|
|
8968
9198
|
componentDependencies: ["button", "input", "separator", "sheet", "skeleton", "tooltip"],
|
|
8969
9199
|
packageRequirements: [
|
|
8970
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
9200
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
8971
9201
|
{ name: "@tabler/icons-react", range: "^3.37.1" },
|
|
8972
9202
|
{ name: "react", range: ">=18" },
|
|
8973
9203
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
@@ -8998,7 +9228,7 @@ export const button = tv({
|
|
|
8998
9228
|
],
|
|
8999
9229
|
componentDependencies: [],
|
|
9000
9230
|
packageRequirements: [
|
|
9001
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
9231
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
9002
9232
|
{ name: "astro", range: ">=5" },
|
|
9003
9233
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
9004
9234
|
]
|
|
@@ -9032,7 +9262,7 @@ export const button = tv({
|
|
|
9032
9262
|
],
|
|
9033
9263
|
componentDependencies: [],
|
|
9034
9264
|
packageRequirements: [
|
|
9035
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
9265
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
9036
9266
|
{ name: "astro", range: ">=5" },
|
|
9037
9267
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
9038
9268
|
]
|
|
@@ -9058,7 +9288,7 @@ export const button = tv({
|
|
|
9058
9288
|
],
|
|
9059
9289
|
componentDependencies: [],
|
|
9060
9290
|
packageRequirements: [
|
|
9061
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
9291
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
9062
9292
|
{ name: "react", range: ">=18" },
|
|
9063
9293
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
9064
9294
|
]
|
|
@@ -9136,7 +9366,7 @@ export const button = tv({
|
|
|
9136
9366
|
],
|
|
9137
9367
|
componentDependencies: ["separator"],
|
|
9138
9368
|
packageRequirements: [
|
|
9139
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
9369
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
9140
9370
|
{ name: "astro", range: ">=5" },
|
|
9141
9371
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
9142
9372
|
]
|
|
@@ -9206,7 +9436,7 @@ export const button = tv({
|
|
|
9206
9436
|
],
|
|
9207
9437
|
componentDependencies: ["separator"],
|
|
9208
9438
|
packageRequirements: [
|
|
9209
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
9439
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
9210
9440
|
{ name: "react", range: ">=18" },
|
|
9211
9441
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
9212
9442
|
]
|
|
@@ -9227,7 +9457,7 @@ export const button = tv({
|
|
|
9227
9457
|
},
|
|
9228
9458
|
{
|
|
9229
9459
|
path: "src/components/starwind/popover/PopoverContent.astro",
|
|
9230
|
-
content: '---\nimport PopoverPrimitive from "@starwind-ui/astro/popover";\nimport type { HTMLAttributes } from "astro/types";\nimport { popoverContent } from "./variants";\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 class: className,\n side = "bottom",\n align = "center",\n sideOffset = 4,\n avoidCollisions = true,\n ...rest\n} = Astro.props;\n---\n\n<PopoverPrimitive.Portal data-slot="popover-portal">\n <PopoverPrimitive.Popup\n class={popoverContent({ 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'
|
|
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'
|
|
9231
9461
|
},
|
|
9232
9462
|
{
|
|
9233
9463
|
path: "src/components/starwind/popover/PopoverDescription.astro",
|
|
@@ -9251,12 +9481,12 @@ export const button = tv({
|
|
|
9251
9481
|
},
|
|
9252
9482
|
{
|
|
9253
9483
|
path: "src/components/starwind/popover/variants.ts",
|
|
9254
|
-
content: 'import { tv } from "tailwind-variants";\n\nexport const popover = tv({\n base: "",\n});\n\nexport const popoverContent = tv({\n base: [\n "bg-popover text-popover-foreground z-50 flex w-72 flex-col gap-2.5 overflow-x-hidden overflow-y-auto rounded-lg border p-2.5 shadow-md",\n "data-[state=open]:animate-in fade-in zoom-in-95 outline-none",\n "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out
|
|
9484
|
+
content: 'import { tv } from "tailwind-variants";\n\nexport const popover = tv({\n base: "",\n});\n\nexport const popoverContent = tv({\n base: [\n "bg-popover text-popover-foreground z-50 flex w-72 flex-col gap-2.5 overflow-x-hidden overflow-y-auto rounded-lg border p-2.5 shadow-md",\n "data-[state=open]:animate-in fade-in zoom-in-95 outline-none",\n "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",\n "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",\n "data-[side=right]:slide-in-from-left-2 data-[side=left]:slide-in-from-right-2",\n "origin-(--transform-origin) pointer-events-auto fixed isolate will-change-transform",\n ],\n variants: {\n exitMotion: {\n popover: [\n "zoom-out-95",\n "data-[side=bottom]:slide-out-to-top-2 data-[side=top]:slide-out-to-bottom-2",\n "data-[side=right]:slide-out-to-left-2 data-[side=left]:slide-out-to-right-2",\n ],\n fade: "",\n },\n },\n defaultVariants: {\n exitMotion: "popover",\n },\n});\n\nexport const popoverDescription = tv({\n base: "text-muted-foreground",\n});\n\nexport const popoverHeader = tv({\n base: "flex flex-col gap-1",\n});\n\nexport const popoverTitle = tv({\n base: "font-medium",\n});\n\nexport const popoverTrigger = tv({\n base: [\n "inline-flex items-center justify-center",\n "focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3",\n "disabled:pointer-events-none",\n ],\n});\n'
|
|
9255
9485
|
}
|
|
9256
9486
|
],
|
|
9257
9487
|
componentDependencies: [],
|
|
9258
9488
|
packageRequirements: [
|
|
9259
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
9489
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
9260
9490
|
{ name: "astro", range: ">=5" },
|
|
9261
9491
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
9262
9492
|
]
|
|
@@ -9269,7 +9499,7 @@ export const button = tv({
|
|
|
9269
9499
|
},
|
|
9270
9500
|
{
|
|
9271
9501
|
path: "src/components/starwind/popover/PopoverContent.tsx",
|
|
9272
|
-
content: 'import PopoverPrimitive from "@starwind-ui/react/popover";\nimport type * as React from "react";\nimport { popoverContent } from "./variants";\n\nexport type PopoverContentProps = React.ComponentPropsWithoutRef<"div"> & {\n
|
|
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'
|
|
9273
9503
|
},
|
|
9274
9504
|
{
|
|
9275
9505
|
path: "src/components/starwind/popover/PopoverDescription.tsx",
|
|
@@ -9293,12 +9523,12 @@ export const button = tv({
|
|
|
9293
9523
|
},
|
|
9294
9524
|
{
|
|
9295
9525
|
path: "src/components/starwind/popover/variants.ts",
|
|
9296
|
-
content: 'import { tv } from "tailwind-variants";\n\nexport const popover = tv({\n base: "",\n});\n\nexport const popoverContent = tv({\n base: [\n "bg-popover text-popover-foreground z-50 flex w-72 flex-col gap-2.5 overflow-x-hidden overflow-y-auto rounded-lg border p-2.5 shadow-md",\n "data-[state=open]:animate-in fade-in zoom-in-95 outline-none",\n "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out
|
|
9526
|
+
content: 'import { tv } from "tailwind-variants";\n\nexport const popover = tv({\n base: "",\n});\n\nexport const popoverContent = tv({\n base: [\n "bg-popover text-popover-foreground z-50 flex w-72 flex-col gap-2.5 overflow-x-hidden overflow-y-auto rounded-lg border p-2.5 shadow-md",\n "data-[state=open]:animate-in fade-in zoom-in-95 outline-none",\n "data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-out",\n "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",\n "data-[side=right]:slide-in-from-left-2 data-[side=left]:slide-in-from-right-2",\n "origin-(--transform-origin) pointer-events-auto fixed isolate will-change-transform",\n ],\n variants: {\n exitMotion: {\n popover: [\n "zoom-out-95",\n "data-[side=bottom]:slide-out-to-top-2 data-[side=top]:slide-out-to-bottom-2",\n "data-[side=right]:slide-out-to-left-2 data-[side=left]:slide-out-to-right-2",\n ],\n fade: "",\n },\n },\n defaultVariants: {\n exitMotion: "popover",\n },\n});\n\nexport const popoverDescription = tv({\n base: "text-muted-foreground",\n});\n\nexport const popoverHeader = tv({\n base: "flex flex-col gap-1",\n});\n\nexport const popoverTitle = tv({\n base: "font-medium",\n});\n\nexport const popoverTrigger = tv({\n base: [\n "inline-flex items-center justify-center",\n "focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3",\n "disabled:pointer-events-none",\n ],\n});\n'
|
|
9297
9527
|
}
|
|
9298
9528
|
],
|
|
9299
9529
|
componentDependencies: [],
|
|
9300
9530
|
packageRequirements: [
|
|
9301
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
9531
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
9302
9532
|
{ name: "react", range: ">=18" },
|
|
9303
9533
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
9304
9534
|
]
|
|
@@ -9407,7 +9637,7 @@ export const alertDialogActionAsChild = tv({
|
|
|
9407
9637
|
variant: {
|
|
9408
9638
|
default: "bg-foreground text-background hover:bg-foreground/90 focus-visible:ring-outline/50",
|
|
9409
9639
|
primary: "bg-primary text-primary-foreground hover:bg-primary/90 focus-visible:ring-primary/50",
|
|
9410
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary
|
|
9640
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] focus-visible:ring-secondary/50",
|
|
9411
9641
|
outline: "dark:border-input focus-visible:ring-outline/50 bg-background dark:bg-input/30 focus-visible:border-outline hover:bg-muted dark:hover:bg-input/50 hover:text-foreground border shadow-xs",
|
|
9412
9642
|
ghost: "hover:bg-muted hover:text-foreground focus-visible:ring-outline/50",
|
|
9413
9643
|
info: "bg-info text-info-foreground hover:bg-info/90 focus-visible:ring-info/50",
|
|
@@ -9447,7 +9677,7 @@ export const alertDialogCancelAsChild = tv({
|
|
|
9447
9677
|
variant: {
|
|
9448
9678
|
default: "bg-foreground text-background hover:bg-foreground/90 focus-visible:ring-outline/50",
|
|
9449
9679
|
primary: "bg-primary text-primary-foreground hover:bg-primary/90 focus-visible:ring-primary/50",
|
|
9450
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary
|
|
9680
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] focus-visible:ring-secondary/50",
|
|
9451
9681
|
outline: "dark:border-input focus-visible:ring-outline/50 bg-background dark:bg-input/30 focus-visible:border-outline hover:bg-muted dark:hover:bg-input/50 hover:text-foreground border shadow-xs",
|
|
9452
9682
|
ghost: "hover:bg-muted hover:text-foreground focus-visible:ring-outline/50",
|
|
9453
9683
|
info: "bg-info text-info-foreground hover:bg-info/90 focus-visible:ring-info/50",
|
|
@@ -9474,7 +9704,7 @@ export const alertDialogCancelAsChild = tv({
|
|
|
9474
9704
|
],
|
|
9475
9705
|
componentDependencies: ["button"],
|
|
9476
9706
|
packageRequirements: [
|
|
9477
|
-
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.
|
|
9707
|
+
{ name: "@starwind-ui/astro", range: "^0.1.0-beta.3" },
|
|
9478
9708
|
{ name: "astro", range: ">=5" },
|
|
9479
9709
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
9480
9710
|
]
|
|
@@ -9575,7 +9805,7 @@ export const alertDialogActionAsChild = tv({
|
|
|
9575
9805
|
variant: {
|
|
9576
9806
|
default: "bg-foreground text-background hover:bg-foreground/90 focus-visible:ring-outline/50",
|
|
9577
9807
|
primary: "bg-primary text-primary-foreground hover:bg-primary/90 focus-visible:ring-primary/50",
|
|
9578
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary
|
|
9808
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] focus-visible:ring-secondary/50",
|
|
9579
9809
|
outline: "dark:border-input focus-visible:ring-outline/50 bg-background dark:bg-input/30 focus-visible:border-outline hover:bg-muted dark:hover:bg-input/50 hover:text-foreground border shadow-xs",
|
|
9580
9810
|
ghost: "hover:bg-muted hover:text-foreground focus-visible:ring-outline/50",
|
|
9581
9811
|
info: "bg-info text-info-foreground hover:bg-info/90 focus-visible:ring-info/50",
|
|
@@ -9615,7 +9845,7 @@ export const alertDialogCancelAsChild = tv({
|
|
|
9615
9845
|
variant: {
|
|
9616
9846
|
default: "bg-foreground text-background hover:bg-foreground/90 focus-visible:ring-outline/50",
|
|
9617
9847
|
primary: "bg-primary text-primary-foreground hover:bg-primary/90 focus-visible:ring-primary/50",
|
|
9618
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary
|
|
9848
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] focus-visible:ring-secondary/50",
|
|
9619
9849
|
outline: "dark:border-input focus-visible:ring-outline/50 bg-background dark:bg-input/30 focus-visible:border-outline hover:bg-muted dark:hover:bg-input/50 hover:text-foreground border shadow-xs",
|
|
9620
9850
|
ghost: "hover:bg-muted hover:text-foreground focus-visible:ring-outline/50",
|
|
9621
9851
|
info: "bg-info text-info-foreground hover:bg-info/90 focus-visible:ring-info/50",
|
|
@@ -9642,7 +9872,7 @@ export const alertDialogCancelAsChild = tv({
|
|
|
9642
9872
|
],
|
|
9643
9873
|
componentDependencies: ["button"],
|
|
9644
9874
|
packageRequirements: [
|
|
9645
|
-
{ name: "@starwind-ui/react", range: "^0.1.0-beta.
|
|
9875
|
+
{ name: "@starwind-ui/react", range: "^0.1.0-beta.3" },
|
|
9646
9876
|
{ name: "react", range: ">=18" },
|
|
9647
9877
|
{ name: "tailwind-variants", range: "^3.2.2" }
|
|
9648
9878
|
]
|
|
@@ -11784,8 +12014,7 @@ async function migrate(options) {
|
|
|
11784
12014
|
applied: [],
|
|
11785
12015
|
skipped: [],
|
|
11786
12016
|
unavailable: []
|
|
11787
|
-
}
|
|
11788
|
-
compatibility: []
|
|
12017
|
+
}
|
|
11789
12018
|
};
|
|
11790
12019
|
const existingFolders = await listDirectories(componentDir);
|
|
11791
12020
|
const legacyComponentNames = new Set(
|
|
@@ -11834,28 +12063,9 @@ async function migrate(options) {
|
|
|
11834
12063
|
legacyComponents.set(component.name, toLegacyComponent(component));
|
|
11835
12064
|
}
|
|
11836
12065
|
}
|
|
11837
|
-
const hasLegacyColorPicker = legacyConfig.components.some(
|
|
11838
|
-
(component) => component.name === "color-picker"
|
|
11839
|
-
);
|
|
11840
|
-
const canBridgeLegacyColorPicker = hasLegacyColorPicker ? await canApplyLegacyColorPickerSelectBridge(componentDir) : false;
|
|
11841
|
-
const keepLegacySelect = hasLegacyColorPicker && !canBridgeLegacyColorPicker;
|
|
11842
|
-
if (keepLegacySelect) {
|
|
11843
|
-
report.compatibility.push(
|
|
11844
|
-
"Color Picker is customized, so Select remains legacy to preserve compatibility; unrelated components will continue migrating."
|
|
11845
|
-
);
|
|
11846
|
-
}
|
|
11847
12066
|
const componentsToMigrate = [];
|
|
11848
12067
|
const conflicts = [];
|
|
11849
12068
|
for (const item of migrationPlan.values()) {
|
|
11850
|
-
if (item.component.name === "select" && keepLegacySelect) {
|
|
11851
|
-
const legacySelect = item.legacyComponent ?? legacyConfig.components.find((component) => component.name === "select") ?? {
|
|
11852
|
-
name: "select",
|
|
11853
|
-
version: "0.0.0"
|
|
11854
|
-
};
|
|
11855
|
-
report.legacy.push("select");
|
|
11856
|
-
legacyComponents.set("select", toLegacyComponent(legacySelect));
|
|
11857
|
-
continue;
|
|
11858
|
-
}
|
|
11859
12069
|
const componentPath = path6.join(componentDir, item.component.name);
|
|
11860
12070
|
const hasExistingFolder = await fs8.pathExists(componentPath);
|
|
11861
12071
|
if (!hasExistingFolder) {
|
|
@@ -11962,12 +12172,6 @@ async function migrate(options) {
|
|
|
11962
12172
|
});
|
|
11963
12173
|
report.codemods[codemodResult].push(formatRenameCodemodLabel(item.rename));
|
|
11964
12174
|
}
|
|
11965
|
-
if (hasLegacyColorPicker && installedNames.has("select")) {
|
|
11966
|
-
const bridgeResult = await applyLegacyColorPickerSelectBridge(componentDir);
|
|
11967
|
-
report.compatibility.push(
|
|
11968
|
-
bridgeResult === "applied" ? "Color Picker remains legacy Astro-only; added its Runtime Select event bridge." : bridgeResult === "already-applied" ? "Color Picker remains legacy Astro-only; its Runtime Select event bridge was already present." : "Color Picker remains legacy Astro-only and customized; verify its Select integration manually."
|
|
11969
|
-
);
|
|
11970
|
-
}
|
|
11971
12175
|
}
|
|
11972
12176
|
await p8.tasks([
|
|
11973
12177
|
{
|
|
@@ -12187,44 +12391,6 @@ ${formatIndentedList(report.codemods.unavailable)}`
|
|
|
12187
12391
|
${formatIndentedList(report.custom)}`
|
|
12188
12392
|
);
|
|
12189
12393
|
}
|
|
12190
|
-
report.compatibility.forEach((message) => p8.log.warn(highlighter.warn(message)));
|
|
12191
|
-
}
|
|
12192
|
-
async function canApplyLegacyColorPickerSelectBridge(componentDir) {
|
|
12193
|
-
const relativePath = path6.posix.join(
|
|
12194
|
-
componentDir.replace(/\\/g, "/"),
|
|
12195
|
-
"color-picker/ColorPicker.astro"
|
|
12196
|
-
);
|
|
12197
|
-
if (!await fs8.pathExists(relativePath)) return false;
|
|
12198
|
-
const content = await fs8.readFile(relativePath, "utf8");
|
|
12199
|
-
return content.includes('"starwind:value-change", handleColorFormatChange') || /colorFormatSelect\.addEventListener\(\s*"starwind-select:change",\s*\(event: Event\) => \{([\s\S]*?)\},\s*\{ signal: abortController\.signal \},\s*\);/.test(
|
|
12200
|
-
content
|
|
12201
|
-
);
|
|
12202
|
-
}
|
|
12203
|
-
async function applyLegacyColorPickerSelectBridge(componentDir) {
|
|
12204
|
-
const relativePath = path6.posix.join(
|
|
12205
|
-
componentDir.replace(/\\/g, "/"),
|
|
12206
|
-
"color-picker/ColorPicker.astro"
|
|
12207
|
-
);
|
|
12208
|
-
if (!await fs8.pathExists(relativePath)) return "unavailable";
|
|
12209
|
-
const content = await fs8.readFile(relativePath, "utf8");
|
|
12210
|
-
if (content.includes('"starwind:value-change", handleColorFormatChange')) {
|
|
12211
|
-
return "already-applied";
|
|
12212
|
-
}
|
|
12213
|
-
const listenerPattern = /colorFormatSelect\.addEventListener\(\s*"starwind-select:change",\s*\(event: Event\) => \{([\s\S]*?)\},\s*\{ signal: abortController\.signal \},\s*\);/;
|
|
12214
|
-
const match = content.match(listenerPattern);
|
|
12215
|
-
if (!match) return "unavailable";
|
|
12216
|
-
const body = match[1];
|
|
12217
|
-
const replacement = `const handleColorFormatChange = (event: Event) => {${body}};
|
|
12218
|
-
|
|
12219
|
-
colorFormatSelect.addEventListener("starwind-select:change", handleColorFormatChange, {
|
|
12220
|
-
signal: abortController.signal,
|
|
12221
|
-
});
|
|
12222
|
-
colorFormatSelect.addEventListener("starwind:value-change", handleColorFormatChange, {
|
|
12223
|
-
signal: abortController.signal,
|
|
12224
|
-
});`;
|
|
12225
|
-
const destination = await resolveProjectMutationPath(relativePath);
|
|
12226
|
-
await fs8.writeFile(destination, content.replace(listenerPattern, replacement), "utf8");
|
|
12227
|
-
return "applied";
|
|
12228
12394
|
}
|
|
12229
12395
|
function formatIndentedList(items) {
|
|
12230
12396
|
return items.map((item) => ` ${item}`).join("\n");
|
|
@@ -13265,12 +13431,76 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13265
13431
|
{
|
|
13266
13432
|
component: "button",
|
|
13267
13433
|
framework: "astro",
|
|
13268
|
-
version: "0.1.
|
|
13434
|
+
version: "0.1.1",
|
|
13269
13435
|
files: [
|
|
13270
13436
|
{
|
|
13271
13437
|
path: "src/components/starwind-primitives/button/ButtonRoot.astro",
|
|
13272
|
-
content:
|
|
13273
|
-
|
|
13438
|
+
content: `---
|
|
13439
|
+
/**
|
|
13440
|
+
* Vendored by the Starwind CLI.
|
|
13441
|
+
* You own this file in your project.
|
|
13442
|
+
*/
|
|
13443
|
+
import type { HTMLAttributes } from "astro/types";
|
|
13444
|
+
|
|
13445
|
+
interface Props extends HTMLAttributes<"button"> {
|
|
13446
|
+
focusableWhenDisabled?: boolean;
|
|
13447
|
+
}
|
|
13448
|
+
|
|
13449
|
+
const { type = "button", disabled = false, focusableWhenDisabled = false, ...rest } = Astro.props;
|
|
13450
|
+
---
|
|
13451
|
+
|
|
13452
|
+
<button
|
|
13453
|
+
data-focusable-when-disabled={focusableWhenDisabled ? "true" : undefined}
|
|
13454
|
+
data-disabled={disabled ? "" : undefined}
|
|
13455
|
+
aria-disabled={disabled && focusableWhenDisabled ? "true" : undefined}
|
|
13456
|
+
disabled={disabled && !focusableWhenDisabled}
|
|
13457
|
+
type={type}
|
|
13458
|
+
{...rest}
|
|
13459
|
+
data-sw-button
|
|
13460
|
+
>
|
|
13461
|
+
<slot />
|
|
13462
|
+
</button>
|
|
13463
|
+
|
|
13464
|
+
<script>
|
|
13465
|
+
import { createButton } from "@starwind-ui/runtime/button";
|
|
13466
|
+
import {
|
|
13467
|
+
registerAstroControllerLifecycle,
|
|
13468
|
+
trackAstroController,
|
|
13469
|
+
} from "../internal/controller-lifecycle";
|
|
13470
|
+
|
|
13471
|
+
const getInitCandidates = (event: Event | undefined, selector: string): HTMLButtonElement[] => {
|
|
13472
|
+
const initRoot =
|
|
13473
|
+
event?.type === "starwind:init" && event instanceof CustomEvent
|
|
13474
|
+
? event.detail?.root
|
|
13475
|
+
: undefined;
|
|
13476
|
+
const scopedRoot: Document | DocumentFragment | Element = isQueryableRoot(initRoot)
|
|
13477
|
+
? initRoot
|
|
13478
|
+
: document;
|
|
13479
|
+
const candidates = Array.from(scopedRoot.querySelectorAll<HTMLButtonElement>(selector));
|
|
13480
|
+
|
|
13481
|
+
if (scopedRoot instanceof HTMLButtonElement && scopedRoot.matches(selector)) {
|
|
13482
|
+
candidates.unshift(scopedRoot);
|
|
13483
|
+
}
|
|
13484
|
+
|
|
13485
|
+
return candidates;
|
|
13486
|
+
};
|
|
13487
|
+
|
|
13488
|
+
const isQueryableRoot = (value: unknown): value is Document | DocumentFragment | Element =>
|
|
13489
|
+
value instanceof Document || value instanceof DocumentFragment || value instanceof Element;
|
|
13490
|
+
|
|
13491
|
+
const setupButtons = (event?: Event) => {
|
|
13492
|
+
getInitCandidates(event, '[data-sw-button][data-focusable-when-disabled="true"]').forEach(
|
|
13493
|
+
(button) =>
|
|
13494
|
+
trackAstroController("ButtonRoot", button, createButton(button)).setDisabled(
|
|
13495
|
+
button.hasAttribute("data-disabled"),
|
|
13496
|
+
),
|
|
13497
|
+
);
|
|
13498
|
+
};
|
|
13499
|
+
|
|
13500
|
+
registerAstroControllerLifecycle("ButtonRoot", setupButtons);
|
|
13501
|
+
</script>
|
|
13502
|
+
`,
|
|
13503
|
+
sourceHash: "sha256:f3cc206f66110e8ff7f02953684ff83143a5bf5f9a34ab89c569048390f6b53f",
|
|
13274
13504
|
sourcePath: "packages/astro/src/button/ButtonRoot.astro"
|
|
13275
13505
|
},
|
|
13276
13506
|
{
|
|
@@ -13278,12 +13508,18 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13278
13508
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport ButtonRoot from "./ButtonRoot.astro";\n\nconst Button = {\n Root: ButtonRoot,\n};\n\nexport { Button, ButtonRoot };\n\nexport default Button;\n',
|
|
13279
13509
|
sourceHash: "sha256:bc7160d21174ec75768e367d49b12c166a1f02b78a7b703db252bf7c9cbcdb0e",
|
|
13280
13510
|
sourcePath: "packages/astro/src/button/index.ts"
|
|
13511
|
+
},
|
|
13512
|
+
{
|
|
13513
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
13514
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
13515
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
13516
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13281
13517
|
}
|
|
13282
13518
|
],
|
|
13283
13519
|
packageRequirements: [
|
|
13284
13520
|
{
|
|
13285
13521
|
name: "@starwind-ui/runtime",
|
|
13286
|
-
range: "^0.1.0-beta.
|
|
13522
|
+
range: "^0.1.0-beta.3"
|
|
13287
13523
|
},
|
|
13288
13524
|
{
|
|
13289
13525
|
name: "astro",
|
|
@@ -13337,12 +13573,18 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13337
13573
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport CarouselContainer from "./CarouselContainer.astro";\nimport CarouselItem from "./CarouselItem.astro";\nimport CarouselNext from "./CarouselNext.astro";\nimport CarouselPrevious from "./CarouselPrevious.astro";\nimport CarouselRoot from "./CarouselRoot.astro";\nimport CarouselViewport from "./CarouselViewport.astro";\n\nconst Carousel = {\n Root: CarouselRoot,\n Viewport: CarouselViewport,\n Container: CarouselContainer,\n Item: CarouselItem,\n Previous: CarouselPrevious,\n Next: CarouselNext,\n};\n\nexport {\n Carousel,\n CarouselContainer,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n CarouselRoot,\n CarouselViewport,\n};\n\nexport default Carousel;\n\nexport type { CarouselInstance, CarouselOptions } from "@starwind-ui/runtime";\nexport { createCarousel } from "@starwind-ui/runtime/carousel";\n',
|
|
13338
13574
|
sourceHash: "sha256:afaa6695bd5fde0254c8a31b32a9c35575dce09dfc8aea7f0b6a56c2c20ac2d4",
|
|
13339
13575
|
sourcePath: "packages/astro/src/carousel/index.ts"
|
|
13576
|
+
},
|
|
13577
|
+
{
|
|
13578
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
13579
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
13580
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
13581
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13340
13582
|
}
|
|
13341
13583
|
],
|
|
13342
13584
|
packageRequirements: [
|
|
13343
13585
|
{
|
|
13344
13586
|
name: "@starwind-ui/runtime",
|
|
13345
|
-
range: "^0.1.0-beta.
|
|
13587
|
+
range: "^0.1.0-beta.3"
|
|
13346
13588
|
},
|
|
13347
13589
|
{
|
|
13348
13590
|
name: "astro",
|
|
@@ -13355,6 +13597,12 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13355
13597
|
framework: "astro",
|
|
13356
13598
|
version: "0.1.1",
|
|
13357
13599
|
files: [
|
|
13600
|
+
{
|
|
13601
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
13602
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
13603
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
13604
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13605
|
+
},
|
|
13358
13606
|
{
|
|
13359
13607
|
path: "src/components/starwind-primitives/toggle/ToggleRoot.astro",
|
|
13360
13608
|
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\n\ninterface Props extends Omit<\n HTMLAttributes<"button">,\n "aria-pressed" | "defaultPressed" | "disabled" | "onChange" | "type" | "value"\n> {\n defaultPressed?: boolean;\n disabled?: boolean;\n nativeButton?: boolean;\n pressed?: boolean;\n syncGroup?: string;\n value?: string;\n}\n\nconst {\n defaultPressed = false,\n disabled = false,\n nativeButton = true,\n pressed,\n syncGroup,\n value,\n ...rest\n} = Astro.props;\n\nconst Tag = nativeButton ? "button" : "span";\nconst initialPressed = pressed ?? defaultPressed;\nconst defaultPressedAttribute = pressed === undefined && defaultPressed ? "true" : undefined;\n---\n\n<Tag\n {...rest}\n data-sw-toggle\n data-default-pressed={defaultPressedAttribute}\n data-native={!nativeButton ? "false" : undefined}\n data-sync-group={syncGroup}\n data-value={value}\n aria-disabled={!nativeButton && disabled ? "true" : undefined}\n aria-pressed={initialPressed ? "true" : "false"}\n data-disabled={disabled ? "" : undefined}\n data-pressed={initialPressed ? "" : undefined}\n data-state={initialPressed ? "on" : "off"}\n data-unpressed={!initialPressed ? "" : undefined}\n disabled={nativeButton && disabled ? true : undefined}\n role={!nativeButton ? "button" : undefined}\n tabindex={!nativeButton ? (disabled ? -1 : 0) : undefined}\n type={nativeButton ? "button" : undefined}\n value={nativeButton ? value : undefined}\n>\n <slot />\n</Tag>\n\n<script>\n import { createToggle } from "@starwind-ui/runtime/toggle";\n import { registerAstroControllerLifecycle } from "../internal/controller-lifecycle";\n\n const toggleInstances = new Set<ReturnType<typeof createToggle>>();\n\n const getInitCandidates = (event: Event | undefined, selector: string): HTMLElement[] => {\n const initRoot =\n event?.type === "starwind:init" && event instanceof CustomEvent\n ? event.detail?.root\n : undefined;\n const scopedRoot: Document | DocumentFragment | Element = isQueryableRoot(initRoot)\n ? initRoot\n : document;\n const candidates = Array.from(scopedRoot.querySelectorAll<HTMLElement>(selector));\n\n if (scopedRoot instanceof Element && scopedRoot.matches(selector)) {\n candidates.unshift(scopedRoot as HTMLElement);\n }\n\n return candidates;\n };\n\n const isQueryableRoot = (value: unknown): value is Document | DocumentFragment | Element =>\n value instanceof Document || value instanceof DocumentFragment || value instanceof Element;\n\n const setupToggles = (event?: Event) => {\n getInitCandidates(event, "[data-sw-toggle]").forEach((root) => {\n if (root.hasAttribute("data-sw-theme-toggle")) return;\n\n toggleInstances.add(createToggle(root));\n });\n };\n\n const destroyToggles = () => {\n toggleInstances.forEach((instance) => instance.destroy());\n toggleInstances.clear();\n };\n\n registerAstroControllerLifecycle("ToggleRoot", setupToggles, destroyToggles);\n</script>\n',
|
|
@@ -13371,7 +13619,7 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13371
13619
|
packageRequirements: [
|
|
13372
13620
|
{
|
|
13373
13621
|
name: "@starwind-ui/runtime",
|
|
13374
|
-
range: "^0.1.0-beta.
|
|
13622
|
+
range: "^0.1.0-beta.3"
|
|
13375
13623
|
},
|
|
13376
13624
|
{
|
|
13377
13625
|
name: "astro",
|
|
@@ -13431,12 +13679,18 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13431
13679
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport FieldControl from "./FieldControl.astro";\nimport FieldDescription from "./FieldDescription.astro";\nimport FieldError from "./FieldError.astro";\nimport FieldItem from "./FieldItem.astro";\nimport FieldLabel from "./FieldLabel.astro";\nimport FieldRoot from "./FieldRoot.astro";\nimport FieldValidity from "./FieldValidity.astro";\n\nconst Field = {\n Control: FieldControl,\n Description: FieldDescription,\n Error: FieldError,\n Item: FieldItem,\n Label: FieldLabel,\n Root: FieldRoot,\n Validity: FieldValidity,\n};\n\nexport {\n Field,\n FieldControl,\n FieldDescription,\n FieldError,\n FieldItem,\n FieldLabel,\n FieldRoot,\n FieldValidity,\n};\n\nexport default Field;\n\nexport type { InputValue, InputValueChangeDetails } from "@starwind-ui/runtime";\n',
|
|
13432
13680
|
sourceHash: "sha256:2526f8a5d6301a727d46b6babf9b38cab3469c005156aab70ff28a78a2b3dc08",
|
|
13433
13681
|
sourcePath: "packages/astro/src/field/index.ts"
|
|
13682
|
+
},
|
|
13683
|
+
{
|
|
13684
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
13685
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
13686
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
13687
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13434
13688
|
}
|
|
13435
13689
|
],
|
|
13436
13690
|
packageRequirements: [
|
|
13437
13691
|
{
|
|
13438
13692
|
name: "@starwind-ui/runtime",
|
|
13439
|
-
range: "^0.1.0-beta.
|
|
13693
|
+
range: "^0.1.0-beta.3"
|
|
13440
13694
|
},
|
|
13441
13695
|
{
|
|
13442
13696
|
name: "astro",
|
|
@@ -13466,12 +13720,18 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13466
13720
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport FieldsetLegend from "./FieldsetLegend.astro";\nimport FieldsetRoot from "./FieldsetRoot.astro";\n\nconst Fieldset = {\n Legend: FieldsetLegend,\n Root: FieldsetRoot,\n};\n\nexport { Fieldset, FieldsetLegend, FieldsetRoot };\n\nexport default Fieldset;\n',
|
|
13467
13721
|
sourceHash: "sha256:2e73a115dd3e3bd7a607c72c227b313ca1629ed6c0122cd1a85118aa5d3f538a",
|
|
13468
13722
|
sourcePath: "packages/astro/src/fieldset/index.ts"
|
|
13723
|
+
},
|
|
13724
|
+
{
|
|
13725
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
13726
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
13727
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
13728
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13469
13729
|
}
|
|
13470
13730
|
],
|
|
13471
13731
|
packageRequirements: [
|
|
13472
13732
|
{
|
|
13473
13733
|
name: "@starwind-ui/runtime",
|
|
13474
|
-
range: "^0.1.0-beta.
|
|
13734
|
+
range: "^0.1.0-beta.3"
|
|
13475
13735
|
},
|
|
13476
13736
|
{
|
|
13477
13737
|
name: "astro",
|
|
@@ -13501,12 +13761,18 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13501
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',
|
|
13502
13762
|
sourceHash: "sha256:8d7051bc5a476e4fcb26fae9a61290f2c06fec40e344bd7bcd3c17755e10717e",
|
|
13503
13763
|
sourcePath: "packages/astro/src/form/index.ts"
|
|
13764
|
+
},
|
|
13765
|
+
{
|
|
13766
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
13767
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
13768
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
13769
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13504
13770
|
}
|
|
13505
13771
|
],
|
|
13506
13772
|
packageRequirements: [
|
|
13507
13773
|
{
|
|
13508
13774
|
name: "@starwind-ui/runtime",
|
|
13509
|
-
range: "^0.1.0-beta.
|
|
13775
|
+
range: "^0.1.0-beta.3"
|
|
13510
13776
|
},
|
|
13511
13777
|
{
|
|
13512
13778
|
name: "astro",
|
|
@@ -13530,12 +13796,18 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13530
13796
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport InputRoot from "./InputRoot.astro";\n\nconst Input = {\n Root: InputRoot,\n};\n\nexport { Input, InputRoot };\n\nexport default Input;\n\nexport type { InputValue, InputValueChangeDetails } from "@starwind-ui/runtime";\n',
|
|
13531
13797
|
sourceHash: "sha256:88484b8c131f4138737eef5081ac9dcfe532860ef9f8a584147c6ecdc1d36c48",
|
|
13532
13798
|
sourcePath: "packages/astro/src/input/index.ts"
|
|
13799
|
+
},
|
|
13800
|
+
{
|
|
13801
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
13802
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
13803
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
13804
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13533
13805
|
}
|
|
13534
13806
|
],
|
|
13535
13807
|
packageRequirements: [
|
|
13536
13808
|
{
|
|
13537
13809
|
name: "@starwind-ui/runtime",
|
|
13538
|
-
range: "^0.1.0-beta.
|
|
13810
|
+
range: "^0.1.0-beta.3"
|
|
13539
13811
|
},
|
|
13540
13812
|
{
|
|
13541
13813
|
name: "astro",
|
|
@@ -13548,6 +13820,12 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13548
13820
|
framework: "astro",
|
|
13549
13821
|
version: "0.1.0",
|
|
13550
13822
|
files: [
|
|
13823
|
+
{
|
|
13824
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
13825
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
13826
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
13827
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13828
|
+
},
|
|
13551
13829
|
{
|
|
13552
13830
|
path: "src/components/starwind-primitives/switch/SwitchRoot.astro",
|
|
13553
13831
|
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\n\ninterface Props extends Omit<HTMLAttributes<"span">, "aria-checked" | "onChange"> {\n checked?: boolean;\n defaultChecked?: boolean;\n disabled?: boolean;\n form?: string;\n id?: string;\n name?: string;\n nativeButton?: boolean;\n readOnly?: boolean;\n required?: boolean;\n uncheckedValue?: string;\n value?: string;\n}\n\nconst {\n checked,\n defaultChecked = false,\n disabled = false,\n form,\n id,\n name,\n nativeButton = false,\n readOnly = false,\n required = false,\n uncheckedValue,\n value,\n ...rest\n} = Astro.props;\n\nconst Tag = nativeButton ? "button" : "span";\nconst initialChecked = checked ?? defaultChecked;\nconst inputId = id && nativeButton ? `${id}-input` : id;\nconst rootId = nativeButton ? id : undefined;\n---\n\n<Tag\n {...rest}\n data-sw-switch\n data-default-checked={initialChecked ? "true" : undefined}\n data-form={form}\n data-id={id}\n data-name={name}\n data-unchecked-value={uncheckedValue}\n data-value={value}\n aria-checked={initialChecked ? "true" : "false"}\n aria-readonly={readOnly ? "true" : undefined}\n aria-required={required ? "true" : undefined}\n data-checked={initialChecked ? "" : undefined}\n data-disabled={disabled ? "" : undefined}\n data-filled={initialChecked ? "" : undefined}\n data-readonly={readOnly ? "" : undefined}\n data-required={required ? "" : undefined}\n data-unchecked={!initialChecked ? "" : undefined}\n disabled={nativeButton && disabled ? true : undefined}\n id={rootId}\n role="switch"\n tabindex={disabled ? -1 : 0}\n type={nativeButton ? "button" : undefined}\n>\n <slot />\n</Tag>\n<input data-sw-switch-input id={inputId} hidden />\n\n<script>\n import { createSwitch } from "@starwind-ui/runtime/switch";\n import {\n registerAstroControllerLifecycle,\n trackAstroController,\n } from "../internal/controller-lifecycle";\n\n const getInitCandidates = (event: Event | undefined, selector: string): HTMLElement[] => {\n const initRoot =\n event?.type === "starwind:init" && event instanceof CustomEvent\n ? event.detail?.root\n : undefined;\n const scopedRoot: Document | DocumentFragment | Element = isQueryableRoot(initRoot)\n ? initRoot\n : document;\n const candidates = Array.from(scopedRoot.querySelectorAll<HTMLElement>(selector));\n\n if (scopedRoot instanceof Element && scopedRoot.matches(selector)) {\n candidates.unshift(scopedRoot as HTMLElement);\n }\n\n return candidates;\n };\n\n const isQueryableRoot = (value: unknown): value is Document | DocumentFragment | Element =>\n value instanceof Document || value instanceof DocumentFragment || value instanceof Element;\n\n const setupSwitches = (event?: Event) => {\n getInitCandidates(event, "[data-sw-switch]").forEach((root) =>\n trackAstroController("SwitchRoot", root, createSwitch(root)),\n );\n };\n\n registerAstroControllerLifecycle("SwitchRoot", setupSwitches);\n</script>\n',
|
|
@@ -13570,7 +13848,7 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13570
13848
|
packageRequirements: [
|
|
13571
13849
|
{
|
|
13572
13850
|
name: "@starwind-ui/runtime",
|
|
13573
|
-
range: "^0.1.0-beta.
|
|
13851
|
+
range: "^0.1.0-beta.3"
|
|
13574
13852
|
},
|
|
13575
13853
|
{
|
|
13576
13854
|
name: "astro",
|
|
@@ -13600,12 +13878,18 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13600
13878
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport CheckboxIndicator from "./CheckboxIndicator.astro";\nimport CheckboxRoot from "./CheckboxRoot.astro";\n\nconst Checkbox = {\n Root: CheckboxRoot,\n Indicator: CheckboxIndicator,\n};\n\nexport { Checkbox, CheckboxIndicator, CheckboxRoot };\n\nexport default Checkbox;\n\nexport type { CheckboxCheckedChangeDetails } from "@starwind-ui/runtime";\n',
|
|
13601
13879
|
sourceHash: "sha256:1d0d754e19e791004aeb9530d7af51444b818313b80c71c8ef4da8144b06e50f",
|
|
13602
13880
|
sourcePath: "packages/astro/src/checkbox/index.ts"
|
|
13881
|
+
},
|
|
13882
|
+
{
|
|
13883
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
13884
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
13885
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
13886
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13603
13887
|
}
|
|
13604
13888
|
],
|
|
13605
13889
|
packageRequirements: [
|
|
13606
13890
|
{
|
|
13607
13891
|
name: "@starwind-ui/runtime",
|
|
13608
|
-
range: "^0.1.0-beta.
|
|
13892
|
+
range: "^0.1.0-beta.3"
|
|
13609
13893
|
},
|
|
13610
13894
|
{
|
|
13611
13895
|
name: "astro",
|
|
@@ -13618,6 +13902,12 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13618
13902
|
framework: "astro",
|
|
13619
13903
|
version: "0.1.0",
|
|
13620
13904
|
files: [
|
|
13905
|
+
{
|
|
13906
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
13907
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
13908
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
13909
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13910
|
+
},
|
|
13621
13911
|
{
|
|
13622
13912
|
path: "src/components/starwind-primitives/radio/RadioIndicator.astro",
|
|
13623
13913
|
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<"span"> & {\n keepMounted?: boolean;\n};\n\nconst { keepMounted = false, ...rest } = Astro.props;\n---\n\n<span\n data-sw-radio-indicator\n data-keep-mounted={keepMounted ? "true" : undefined}\n data-unchecked\n hidden={!keepMounted}\n {...rest}\n>\n <slot />\n</span>\n',
|
|
@@ -13640,7 +13930,7 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13640
13930
|
packageRequirements: [
|
|
13641
13931
|
{
|
|
13642
13932
|
name: "@starwind-ui/runtime",
|
|
13643
|
-
range: "^0.1.0-beta.
|
|
13933
|
+
range: "^0.1.0-beta.3"
|
|
13644
13934
|
},
|
|
13645
13935
|
{
|
|
13646
13936
|
name: "astro",
|
|
@@ -13653,6 +13943,12 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13653
13943
|
framework: "astro",
|
|
13654
13944
|
version: "0.1.0",
|
|
13655
13945
|
files: [
|
|
13946
|
+
{
|
|
13947
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
13948
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
13949
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
13950
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13951
|
+
},
|
|
13656
13952
|
{
|
|
13657
13953
|
path: "src/components/starwind-primitives/slider/SliderControl.astro",
|
|
13658
13954
|
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\nconst { ...rest } = Astro.props;\n---\n\n<div data-sw-slider-control {...rest}>\n <slot />\n</div>\n',
|
|
@@ -13699,7 +13995,7 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13699
13995
|
packageRequirements: [
|
|
13700
13996
|
{
|
|
13701
13997
|
name: "@starwind-ui/runtime",
|
|
13702
|
-
range: "^0.1.0-beta.
|
|
13998
|
+
range: "^0.1.0-beta.3"
|
|
13703
13999
|
},
|
|
13704
14000
|
{
|
|
13705
14001
|
name: "astro",
|
|
@@ -13735,12 +14031,18 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13735
14031
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport CollapsiblePanel from "./CollapsiblePanel.astro";\nimport CollapsibleRoot from "./CollapsibleRoot.astro";\nimport CollapsibleTrigger from "./CollapsibleTrigger.astro";\n\nconst Collapsible = {\n Root: CollapsibleRoot,\n Trigger: CollapsibleTrigger,\n Panel: CollapsiblePanel,\n};\n\nexport { Collapsible, CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger };\n\nexport default Collapsible;\n\nexport type { CollapsibleOpenChangeDetails } from "@starwind-ui/runtime";\n',
|
|
13736
14032
|
sourceHash: "sha256:8337084a35e7a4a5b7c8d8bae8eaf0f68b1ce1547a15700a0c51ea2c904aff55",
|
|
13737
14033
|
sourcePath: "packages/astro/src/collapsible/index.ts"
|
|
14034
|
+
},
|
|
14035
|
+
{
|
|
14036
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14037
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14038
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14039
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13738
14040
|
}
|
|
13739
14041
|
],
|
|
13740
14042
|
packageRequirements: [
|
|
13741
14043
|
{
|
|
13742
14044
|
name: "@starwind-ui/runtime",
|
|
13743
|
-
range: "^0.1.0-beta.
|
|
14045
|
+
range: "^0.1.0-beta.3"
|
|
13744
14046
|
},
|
|
13745
14047
|
{
|
|
13746
14048
|
name: "astro",
|
|
@@ -13753,6 +14055,12 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13753
14055
|
framework: "astro",
|
|
13754
14056
|
version: "0.1.0",
|
|
13755
14057
|
files: [
|
|
14058
|
+
{
|
|
14059
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14060
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14061
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14062
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14063
|
+
},
|
|
13756
14064
|
{
|
|
13757
14065
|
path: "src/components/starwind-primitives/toggle-group/ToggleGroupRoot.astro",
|
|
13758
14066
|
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 = Omit<HTMLAttributes<"div">, "defaultValue" | "onChange"> & {\n defaultValue?: string[];\n disabled?: boolean;\n loopFocus?: boolean;\n multiple?: boolean;\n orientation?: "horizontal" | "vertical";\n};\n\nconst {\n defaultValue,\n disabled = false,\n loopFocus = true,\n multiple = false,\n orientation = "horizontal",\n ...rest\n} = Astro.props;\nconst defaultValueAttribute = defaultValue ? JSON.stringify(defaultValue) : undefined;\nconst valueAttribute = JSON.stringify(defaultValue ?? []);\n---\n\n<div\n data-sw-toggle-group\n data-default-value={defaultValueAttribute}\n data-disabled={disabled ? "" : undefined}\n data-loop-focus={!loopFocus ? "false" : undefined}\n data-multiple={multiple ? "" : undefined}\n data-orientation={orientation}\n data-value={valueAttribute}\n role="group"\n {...rest}\n>\n <slot />\n</div>\n\n<script>\n import { createToggleGroup } from "@starwind-ui/runtime/toggle-group";\n import {\n registerAstroControllerLifecycle,\n trackAstroController,\n } from "../internal/controller-lifecycle";\n\n const getInitCandidates = (event: Event | undefined, selector: string): HTMLElement[] => {\n const initRoot =\n event?.type === "starwind:init" && event instanceof CustomEvent\n ? event.detail?.root\n : undefined;\n const scopedRoot: Document | DocumentFragment | Element = isQueryableRoot(initRoot)\n ? initRoot\n : document;\n const candidates = Array.from(scopedRoot.querySelectorAll<HTMLElement>(selector));\n\n if (scopedRoot instanceof Element && scopedRoot.matches(selector)) {\n candidates.unshift(scopedRoot as HTMLElement);\n }\n\n return candidates;\n };\n\n const isQueryableRoot = (value: unknown): value is Document | DocumentFragment | Element =>\n value instanceof Document || value instanceof DocumentFragment || value instanceof Element;\n\n const setupToggleGroups = (event?: Event) => {\n getInitCandidates(event, "[data-sw-toggle-group]").forEach((root) =>\n trackAstroController("ToggleGroupRoot", root, createToggleGroup(root)),\n );\n };\n\n registerAstroControllerLifecycle("ToggleGroupRoot", setupToggleGroups);\n</script>\n',
|
|
@@ -13769,7 +14077,7 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13769
14077
|
packageRequirements: [
|
|
13770
14078
|
{
|
|
13771
14079
|
name: "@starwind-ui/runtime",
|
|
13772
|
-
range: "^0.1.0-beta.
|
|
14080
|
+
range: "^0.1.0-beta.3"
|
|
13773
14081
|
},
|
|
13774
14082
|
{
|
|
13775
14083
|
name: "astro",
|
|
@@ -13782,6 +14090,12 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13782
14090
|
framework: "astro",
|
|
13783
14091
|
version: "0.1.0",
|
|
13784
14092
|
files: [
|
|
14093
|
+
{
|
|
14094
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14095
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14096
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14097
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14098
|
+
},
|
|
13785
14099
|
{
|
|
13786
14100
|
path: "src/components/starwind-primitives/radio-group/RadioGroupRoot.astro",
|
|
13787
14101
|
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 = Omit<HTMLAttributes<"div">, "defaultValue"> & {\n defaultValue?: string;\n disabled?: boolean;\n form?: string;\n name?: string;\n orientation?: "horizontal" | "vertical";\n readOnly?: boolean;\n required?: boolean;\n value?: string;\n};\n\nconst {\n defaultValue,\n disabled = false,\n form,\n name,\n orientation = "vertical",\n readOnly = false,\n required = false,\n value,\n ...rest\n} = Astro.props;\n\nconst renderedValue = value ?? defaultValue;\n---\n\n<div\n data-sw-radio-group\n data-default-value={defaultValue}\n data-form={form}\n data-name={name}\n data-orientation={orientation}\n data-value={renderedValue}\n aria-disabled={disabled ? "true" : undefined}\n aria-orientation={orientation}\n aria-readonly={readOnly ? "true" : undefined}\n aria-required={required ? "true" : undefined}\n data-disabled={disabled ? "" : undefined}\n data-readonly={readOnly ? "" : undefined}\n data-required={required ? "" : undefined}\n role="radiogroup"\n {...rest}\n>\n <slot />\n</div>\n\n<script>\n import { createRadioGroup } from "@starwind-ui/runtime/radio-group";\n import {\n registerAstroControllerLifecycle,\n trackAstroController,\n } from "../internal/controller-lifecycle";\n\n const getInitCandidates = (event: Event | undefined, selector: string): HTMLElement[] => {\n const initRoot =\n event?.type === "starwind:init" && event instanceof CustomEvent\n ? event.detail?.root\n : undefined;\n const scopedRoot: Document | DocumentFragment | Element = isQueryableRoot(initRoot)\n ? initRoot\n : document;\n const candidates = Array.from(scopedRoot.querySelectorAll<HTMLElement>(selector));\n\n if (scopedRoot instanceof Element && scopedRoot.matches(selector)) {\n candidates.unshift(scopedRoot as HTMLElement);\n }\n\n return candidates;\n };\n\n const isQueryableRoot = (value: unknown): value is Document | DocumentFragment | Element =>\n value instanceof Document || value instanceof DocumentFragment || value instanceof Element;\n\n const setupRadioGroups = (event?: Event) => {\n getInitCandidates(event, "[data-sw-radio-group]").forEach((root) =>\n trackAstroController("RadioGroupRoot", root, createRadioGroup(root)),\n );\n };\n\n registerAstroControllerLifecycle("RadioGroupRoot", setupRadioGroups);\n</script>\n',
|
|
@@ -13798,7 +14112,7 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13798
14112
|
packageRequirements: [
|
|
13799
14113
|
{
|
|
13800
14114
|
name: "@starwind-ui/runtime",
|
|
13801
|
-
range: "^0.1.0-beta.
|
|
14115
|
+
range: "^0.1.0-beta.3"
|
|
13802
14116
|
},
|
|
13803
14117
|
{
|
|
13804
14118
|
name: "astro",
|
|
@@ -13822,12 +14136,18 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13822
14136
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport CheckboxGroupRoot from "./CheckboxGroupRoot.astro";\n\nconst CheckboxGroup = {\n Root: CheckboxGroupRoot,\n};\n\nexport { CheckboxGroup, CheckboxGroupRoot };\n\nexport default CheckboxGroup;\n\nexport type { CheckboxGroupValue, CheckboxGroupValueChangeDetails } from "@starwind-ui/runtime";\n',
|
|
13823
14137
|
sourceHash: "sha256:6bcc86c29237de480a87ddca3931e21dd70fb544e2a3748a7fa513f812d5b9fc",
|
|
13824
14138
|
sourcePath: "packages/astro/src/checkbox-group/index.ts"
|
|
14139
|
+
},
|
|
14140
|
+
{
|
|
14141
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14142
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14143
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14144
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13825
14145
|
}
|
|
13826
14146
|
],
|
|
13827
14147
|
packageRequirements: [
|
|
13828
14148
|
{
|
|
13829
14149
|
name: "@starwind-ui/runtime",
|
|
13830
|
-
range: "^0.1.0-beta.
|
|
14150
|
+
range: "^0.1.0-beta.3"
|
|
13831
14151
|
},
|
|
13832
14152
|
{
|
|
13833
14153
|
name: "astro",
|
|
@@ -13840,6 +14160,12 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13840
14160
|
framework: "astro",
|
|
13841
14161
|
version: "0.1.0",
|
|
13842
14162
|
files: [
|
|
14163
|
+
{
|
|
14164
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14165
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14166
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14167
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14168
|
+
},
|
|
13843
14169
|
{
|
|
13844
14170
|
path: "src/components/starwind-primitives/tabs/TabsIndicator.astro",
|
|
13845
14171
|
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<"span">;\n\nconst { ...rest } = Astro.props;\n---\n\n<span data-sw-tabs-indicator {...rest}>\n <slot />\n</span>\n',
|
|
@@ -13880,7 +14206,7 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13880
14206
|
packageRequirements: [
|
|
13881
14207
|
{
|
|
13882
14208
|
name: "@starwind-ui/runtime",
|
|
13883
|
-
range: "^0.1.0-beta.
|
|
14209
|
+
range: "^0.1.0-beta.3"
|
|
13884
14210
|
},
|
|
13885
14211
|
{
|
|
13886
14212
|
name: "astro",
|
|
@@ -13891,7 +14217,7 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13891
14217
|
{
|
|
13892
14218
|
component: "accordion",
|
|
13893
14219
|
framework: "astro",
|
|
13894
|
-
version: "0.1.
|
|
14220
|
+
version: "0.1.1",
|
|
13895
14221
|
files: [
|
|
13896
14222
|
{
|
|
13897
14223
|
path: "src/components/starwind-primitives/accordion/AccordionHeader.astro",
|
|
@@ -13913,8 +14239,8 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13913
14239
|
},
|
|
13914
14240
|
{
|
|
13915
14241
|
path: "src/components/starwind-primitives/accordion/AccordionRoot.astro",
|
|
13916
|
-
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 type?: "single" | "multiple";\n defaultValue?: string | string[];\n collapsible?: boolean;\n};\n\nconst { type = "single", defaultValue, collapsible =
|
|
13917
|
-
sourceHash: "sha256:
|
|
14242
|
+
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 type?: "single" | "multiple";\n defaultValue?: string | string[];\n collapsible?: boolean;\n};\n\nconst { type = "single", defaultValue, collapsible = true, ...rest } = Astro.props;\n\nconst defaultValueAttribute = Array.isArray(defaultValue)\n ? JSON.stringify(defaultValue)\n : defaultValue;\n---\n\n<div\n data-sw-accordion\n data-type={type}\n data-default-value={defaultValueAttribute}\n data-collapsible={String(collapsible)}\n data-state="closed"\n {...rest}\n>\n <slot />\n</div>\n\n<script>\n import { createAccordion } from "@starwind-ui/runtime/accordion";\n import {\n registerAstroControllerLifecycle,\n trackAstroController,\n } from "../internal/controller-lifecycle";\n\n const getInitCandidates = (event: Event | undefined, selector: string): HTMLElement[] => {\n const initRoot =\n event?.type === "starwind:init" && event instanceof CustomEvent\n ? event.detail?.root\n : undefined;\n const scopedRoot: Document | DocumentFragment | Element = isQueryableRoot(initRoot)\n ? initRoot\n : document;\n const candidates = Array.from(scopedRoot.querySelectorAll<HTMLElement>(selector));\n\n if (scopedRoot instanceof Element && scopedRoot.matches(selector)) {\n candidates.unshift(scopedRoot as HTMLElement);\n }\n\n return candidates;\n };\n\n const isQueryableRoot = (value: unknown): value is Document | DocumentFragment | Element =>\n value instanceof Document || value instanceof DocumentFragment || value instanceof Element;\n\n const setupAccordions = (event?: Event) => {\n getInitCandidates(event, "[data-sw-accordion]").forEach((root) =>\n trackAstroController("AccordionRoot", root, createAccordion(root)),\n );\n };\n\n registerAstroControllerLifecycle("AccordionRoot", setupAccordions);\n</script>\n',
|
|
14243
|
+
sourceHash: "sha256:614dacad3ff8e0463511e08a29e91593232f319741481c3cea2e43b5fd8e0c7f",
|
|
13918
14244
|
sourcePath: "packages/astro/src/accordion/AccordionRoot.astro"
|
|
13919
14245
|
},
|
|
13920
14246
|
{
|
|
@@ -13928,12 +14254,18 @@ var primitive_vendoring_artifacts_default = {
|
|
|
13928
14254
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport AccordionHeader from "./AccordionHeader.astro";\nimport AccordionItem from "./AccordionItem.astro";\nimport AccordionPanel from "./AccordionPanel.astro";\nimport AccordionRoot from "./AccordionRoot.astro";\nimport AccordionTrigger from "./AccordionTrigger.astro";\n\nconst Accordion = {\n Root: AccordionRoot,\n Item: AccordionItem,\n Header: AccordionHeader,\n Trigger: AccordionTrigger,\n Panel: AccordionPanel,\n};\n\nexport {\n Accordion,\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n AccordionRoot,\n AccordionTrigger,\n};\n\nexport default Accordion;\n\nexport type { AccordionValue, AccordionValueChangeDetails } from "@starwind-ui/runtime";\n',
|
|
13929
14255
|
sourceHash: "sha256:67db87ed4f9d962b4e872e159591905770066932f0d3e0c11c17ca17cc9a7aa1",
|
|
13930
14256
|
sourcePath: "packages/astro/src/accordion/index.ts"
|
|
14257
|
+
},
|
|
14258
|
+
{
|
|
14259
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14260
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14261
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14262
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
13931
14263
|
}
|
|
13932
14264
|
],
|
|
13933
14265
|
packageRequirements: [
|
|
13934
14266
|
{
|
|
13935
14267
|
name: "@starwind-ui/runtime",
|
|
13936
|
-
range: "^0.1.0-beta.
|
|
14268
|
+
range: "^0.1.0-beta.3"
|
|
13937
14269
|
},
|
|
13938
14270
|
{
|
|
13939
14271
|
name: "astro",
|
|
@@ -14017,12 +14349,18 @@ if (!src && !image) {
|
|
|
14017
14349
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport AvatarFallback from "./AvatarFallback.astro";\nimport AvatarImage from "./AvatarImage.astro";\nimport AvatarRoot from "./AvatarRoot.astro";\n\nconst Avatar = {\n Root: AvatarRoot,\n Image: AvatarImage,\n Fallback: AvatarFallback,\n};\n\nexport { Avatar, AvatarFallback, AvatarImage, AvatarRoot };\n\nexport default Avatar;\n\nexport type {\n AvatarImageLoadingStatus,\n AvatarLoadingStatusChangeDetails,\n} from "@starwind-ui/runtime";\n',
|
|
14018
14350
|
sourceHash: "sha256:8dcb08224b0de18309d76b157c1bcba8ce21d61284400cbcbc43289938646bbb",
|
|
14019
14351
|
sourcePath: "packages/astro/src/avatar/index.ts"
|
|
14352
|
+
},
|
|
14353
|
+
{
|
|
14354
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14355
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14356
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14357
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14020
14358
|
}
|
|
14021
14359
|
],
|
|
14022
14360
|
packageRequirements: [
|
|
14023
14361
|
{
|
|
14024
14362
|
name: "@starwind-ui/runtime",
|
|
14025
|
-
range: "^0.1.0-beta.
|
|
14363
|
+
range: "^0.1.0-beta.3"
|
|
14026
14364
|
},
|
|
14027
14365
|
{
|
|
14028
14366
|
name: "astro",
|
|
@@ -14035,6 +14373,12 @@ if (!src && !image) {
|
|
|
14035
14373
|
framework: "astro",
|
|
14036
14374
|
version: "0.1.0",
|
|
14037
14375
|
files: [
|
|
14376
|
+
{
|
|
14377
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14378
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14379
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14380
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14381
|
+
},
|
|
14038
14382
|
{
|
|
14039
14383
|
path: "src/components/starwind-primitives/progress/ProgressIndicator.astro",
|
|
14040
14384
|
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\nconst { ...rest } = Astro.props;\n---\n\n<div data-sw-progress-indicator {...rest}>\n <slot />\n</div>\n',
|
|
@@ -14075,7 +14419,7 @@ if (!src && !image) {
|
|
|
14075
14419
|
packageRequirements: [
|
|
14076
14420
|
{
|
|
14077
14421
|
name: "@starwind-ui/runtime",
|
|
14078
|
-
range: "^0.1.0-beta.
|
|
14422
|
+
range: "^0.1.0-beta.3"
|
|
14079
14423
|
},
|
|
14080
14424
|
{
|
|
14081
14425
|
name: "astro",
|
|
@@ -14088,6 +14432,12 @@ if (!src && !image) {
|
|
|
14088
14432
|
framework: "astro",
|
|
14089
14433
|
version: "0.1.0",
|
|
14090
14434
|
files: [
|
|
14435
|
+
{
|
|
14436
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14437
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14438
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14439
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14440
|
+
},
|
|
14091
14441
|
{
|
|
14092
14442
|
path: "src/components/starwind-primitives/scroll-area/ScrollAreaContent.astro",
|
|
14093
14443
|
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\nconst { ...rest } = Astro.props;\n---\n\n<div data-sw-scroll-area-content role="presentation" {...rest}>\n <slot />\n</div>\n',
|
|
@@ -14134,7 +14484,7 @@ if (!src && !image) {
|
|
|
14134
14484
|
packageRequirements: [
|
|
14135
14485
|
{
|
|
14136
14486
|
name: "@starwind-ui/runtime",
|
|
14137
|
-
range: "^0.1.0-beta.
|
|
14487
|
+
range: "^0.1.0-beta.3"
|
|
14138
14488
|
},
|
|
14139
14489
|
{
|
|
14140
14490
|
name: "astro",
|
|
@@ -14176,12 +14526,18 @@ if (!src && !image) {
|
|
|
14176
14526
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport InputOtpGroup from "./InputOtpGroup.astro";\nimport InputOtpRoot from "./InputOtpRoot.astro";\nimport InputOtpSeparator from "./InputOtpSeparator.astro";\nimport InputOtpSlot from "./InputOtpSlot.astro";\n\nconst InputOtp = {\n Root: InputOtpRoot,\n Group: InputOtpGroup,\n Separator: InputOtpSeparator,\n Slot: InputOtpSlot,\n};\n\nexport { InputOtp, InputOtpGroup, InputOtpRoot, InputOtpSeparator, InputOtpSlot };\n\nexport default InputOtp;\n\nexport type { InputOtpValueChangeDetails } from "@starwind-ui/runtime";\n',
|
|
14177
14527
|
sourceHash: "sha256:c9f96f451bfb14ccbd2ac3dfeb050185a43eaf0d7cef5717e12a87feb5a9d719",
|
|
14178
14528
|
sourcePath: "packages/astro/src/input-otp/index.ts"
|
|
14529
|
+
},
|
|
14530
|
+
{
|
|
14531
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14532
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14533
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14534
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14179
14535
|
}
|
|
14180
14536
|
],
|
|
14181
14537
|
packageRequirements: [
|
|
14182
14538
|
{
|
|
14183
14539
|
name: "@starwind-ui/runtime",
|
|
14184
|
-
range: "^0.1.0-beta.
|
|
14540
|
+
range: "^0.1.0-beta.3"
|
|
14185
14541
|
},
|
|
14186
14542
|
{
|
|
14187
14543
|
name: "astro",
|
|
@@ -14194,6 +14550,12 @@ if (!src && !image) {
|
|
|
14194
14550
|
framework: "astro",
|
|
14195
14551
|
version: "0.1.0",
|
|
14196
14552
|
files: [
|
|
14553
|
+
{
|
|
14554
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14555
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14556
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14557
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14558
|
+
},
|
|
14197
14559
|
{
|
|
14198
14560
|
path: "src/components/starwind-primitives/tooltip/TooltipArrow.astro",
|
|
14199
14561
|
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\nconst { ...rest } = Astro.props;\n---\n\n<div data-sw-tooltip-arrow data-state="closed" {...rest}>\n <slot />\n</div>\n',
|
|
@@ -14240,7 +14602,7 @@ if (!src && !image) {
|
|
|
14240
14602
|
packageRequirements: [
|
|
14241
14603
|
{
|
|
14242
14604
|
name: "@starwind-ui/runtime",
|
|
14243
|
-
range: "^0.1.0-beta.
|
|
14605
|
+
range: "^0.1.0-beta.3"
|
|
14244
14606
|
},
|
|
14245
14607
|
{
|
|
14246
14608
|
name: "astro",
|
|
@@ -14253,6 +14615,12 @@ if (!src && !image) {
|
|
|
14253
14615
|
framework: "astro",
|
|
14254
14616
|
version: "0.1.1",
|
|
14255
14617
|
files: [
|
|
14618
|
+
{
|
|
14619
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14620
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14621
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14622
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14623
|
+
},
|
|
14256
14624
|
{
|
|
14257
14625
|
path: "src/components/starwind-primitives/popover/PopoverArrow.astro",
|
|
14258
14626
|
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\nconst { ...rest } = Astro.props;\n---\n\n<div data-sw-popover-arrow {...rest}>\n <slot />\n</div>\n',
|
|
@@ -14329,7 +14697,7 @@ if (!src && !image) {
|
|
|
14329
14697
|
packageRequirements: [
|
|
14330
14698
|
{
|
|
14331
14699
|
name: "@starwind-ui/runtime",
|
|
14332
|
-
range: "^0.1.0-beta.
|
|
14700
|
+
range: "^0.1.0-beta.3"
|
|
14333
14701
|
},
|
|
14334
14702
|
{
|
|
14335
14703
|
name: "astro",
|
|
@@ -14342,6 +14710,12 @@ if (!src && !image) {
|
|
|
14342
14710
|
framework: "astro",
|
|
14343
14711
|
version: "0.1.0",
|
|
14344
14712
|
files: [
|
|
14713
|
+
{
|
|
14714
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14715
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14716
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14717
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14718
|
+
},
|
|
14345
14719
|
{
|
|
14346
14720
|
path: "src/components/starwind-primitives/preview-card/PreviewCardArrow.astro",
|
|
14347
14721
|
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\nconst { ...rest } = Astro.props;\n---\n\n<div data-sw-preview-card-arrow data-state="closed" {...rest}>\n <slot />\n</div>\n',
|
|
@@ -14400,7 +14774,7 @@ if (!src && !image) {
|
|
|
14400
14774
|
packageRequirements: [
|
|
14401
14775
|
{
|
|
14402
14776
|
name: "@starwind-ui/runtime",
|
|
14403
|
-
range: "^0.1.0-beta.
|
|
14777
|
+
range: "^0.1.0-beta.3"
|
|
14404
14778
|
},
|
|
14405
14779
|
{
|
|
14406
14780
|
name: "astro",
|
|
@@ -14460,12 +14834,18 @@ if (!src && !image) {
|
|
|
14460
14834
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport DialogBackdrop from "./DialogBackdrop.astro";\nimport DialogClose from "./DialogClose.astro";\nimport DialogDescription from "./DialogDescription.astro";\nimport DialogPopup from "./DialogPopup.astro";\nimport DialogRoot from "./DialogRoot.astro";\nimport DialogTitle from "./DialogTitle.astro";\nimport DialogTrigger from "./DialogTrigger.astro";\n\nconst Dialog = {\n Root: DialogRoot,\n Trigger: DialogTrigger,\n Backdrop: DialogBackdrop,\n Popup: DialogPopup,\n Title: DialogTitle,\n Description: DialogDescription,\n Close: DialogClose,\n};\n\nexport {\n Dialog,\n DialogBackdrop,\n DialogClose,\n DialogDescription,\n DialogPopup,\n DialogRoot,\n DialogTitle,\n DialogTrigger,\n};\n\nexport default Dialog;\n\nexport type { DialogCloseCompleteDetails, DialogOpenChangeDetails } from "@starwind-ui/runtime";\n',
|
|
14461
14835
|
sourceHash: "sha256:5a60646e7a79c48f9f3202a637a5f1acd04e69246575529ce47afeef2e38b674",
|
|
14462
14836
|
sourcePath: "packages/astro/src/dialog/index.ts"
|
|
14837
|
+
},
|
|
14838
|
+
{
|
|
14839
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14840
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14841
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14842
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14463
14843
|
}
|
|
14464
14844
|
],
|
|
14465
14845
|
packageRequirements: [
|
|
14466
14846
|
{
|
|
14467
14847
|
name: "@starwind-ui/runtime",
|
|
14468
|
-
range: "^0.1.0-beta.
|
|
14848
|
+
range: "^0.1.0-beta.3"
|
|
14469
14849
|
},
|
|
14470
14850
|
{
|
|
14471
14851
|
name: "astro",
|
|
@@ -14537,12 +14917,18 @@ if (!src && !image) {
|
|
|
14537
14917
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport AlertDialogBackdrop from "./AlertDialogBackdrop.astro";\nimport AlertDialogClose from "./AlertDialogClose.astro";\nimport AlertDialogDescription from "./AlertDialogDescription.astro";\nimport AlertDialogPopup from "./AlertDialogPopup.astro";\nimport AlertDialogPortal from "./AlertDialogPortal.astro";\nimport AlertDialogRoot from "./AlertDialogRoot.astro";\nimport AlertDialogTitle from "./AlertDialogTitle.astro";\nimport AlertDialogTrigger from "./AlertDialogTrigger.astro";\nimport AlertDialogViewport from "./AlertDialogViewport.astro";\n\nconst AlertDialog = {\n Root: AlertDialogRoot,\n Trigger: AlertDialogTrigger,\n Portal: AlertDialogPortal,\n Backdrop: AlertDialogBackdrop,\n Viewport: AlertDialogViewport,\n Popup: AlertDialogPopup,\n Title: AlertDialogTitle,\n Description: AlertDialogDescription,\n Close: AlertDialogClose,\n};\n\nexport {\n AlertDialog,\n AlertDialogBackdrop,\n AlertDialogClose,\n AlertDialogDescription,\n AlertDialogPopup,\n AlertDialogPortal,\n AlertDialogRoot,\n AlertDialogTitle,\n AlertDialogTrigger,\n AlertDialogViewport,\n};\n\nexport default AlertDialog;\n\nexport type {\n AlertDialogCloseCompleteDetails,\n AlertDialogOpenChangeDetails,\n} from "@starwind-ui/runtime";\n',
|
|
14538
14918
|
sourceHash: "sha256:101b8d725dc28883ea06f4668b81cbffa11ee7c2edba98ea9c3002b70461aa0c",
|
|
14539
14919
|
sourcePath: "packages/astro/src/alert-dialog/index.ts"
|
|
14920
|
+
},
|
|
14921
|
+
{
|
|
14922
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
14923
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
14924
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
14925
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14540
14926
|
}
|
|
14541
14927
|
],
|
|
14542
14928
|
packageRequirements: [
|
|
14543
14929
|
{
|
|
14544
14930
|
name: "@starwind-ui/runtime",
|
|
14545
|
-
range: "^0.1.0-beta.
|
|
14931
|
+
range: "^0.1.0-beta.3"
|
|
14546
14932
|
},
|
|
14547
14933
|
{
|
|
14548
14934
|
name: "astro",
|
|
@@ -14614,12 +15000,18 @@ if (!src && !image) {
|
|
|
14614
15000
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport DrawerBackdrop from "./DrawerBackdrop.astro";\nimport DrawerClose from "./DrawerClose.astro";\nimport DrawerDescription from "./DrawerDescription.astro";\nimport DrawerPopup from "./DrawerPopup.astro";\nimport DrawerPortal from "./DrawerPortal.astro";\nimport DrawerRoot from "./DrawerRoot.astro";\nimport DrawerTitle from "./DrawerTitle.astro";\nimport DrawerTrigger from "./DrawerTrigger.astro";\nimport DrawerViewport from "./DrawerViewport.astro";\n\nconst Drawer = {\n Root: DrawerRoot,\n Trigger: DrawerTrigger,\n Portal: DrawerPortal,\n Backdrop: DrawerBackdrop,\n Viewport: DrawerViewport,\n Popup: DrawerPopup,\n Title: DrawerTitle,\n Description: DrawerDescription,\n Close: DrawerClose,\n};\n\nexport {\n Drawer,\n DrawerBackdrop,\n DrawerClose,\n DrawerDescription,\n DrawerPopup,\n DrawerPortal,\n DrawerRoot,\n DrawerTitle,\n DrawerTrigger,\n DrawerViewport,\n};\n\nexport default Drawer;\n\nexport type { DrawerCloseCompleteDetails, DrawerOpenChangeDetails } from "@starwind-ui/runtime";\n',
|
|
14615
15001
|
sourceHash: "sha256:64ca75adbaf283938be9ed5ebd472e4919f66ce0a6e5c9e5f0436ca633b18536",
|
|
14616
15002
|
sourcePath: "packages/astro/src/drawer/index.ts"
|
|
15003
|
+
},
|
|
15004
|
+
{
|
|
15005
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
15006
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
15007
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
15008
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14617
15009
|
}
|
|
14618
15010
|
],
|
|
14619
15011
|
packageRequirements: [
|
|
14620
15012
|
{
|
|
14621
15013
|
name: "@starwind-ui/runtime",
|
|
14622
|
-
range: "^0.1.0-beta.
|
|
15014
|
+
range: "^0.1.0-beta.3"
|
|
14623
15015
|
},
|
|
14624
15016
|
{
|
|
14625
15017
|
name: "astro",
|
|
@@ -14667,12 +15059,18 @@ if (!src && !image) {
|
|
|
14667
15059
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport DropzoneFilesList from "./DropzoneFilesList.astro";\nimport DropzoneInput from "./DropzoneInput.astro";\nimport DropzoneLoadingIndicator from "./DropzoneLoadingIndicator.astro";\nimport DropzoneRoot from "./DropzoneRoot.astro";\nimport DropzoneUploadIndicator from "./DropzoneUploadIndicator.astro";\n\nconst Dropzone = {\n Root: DropzoneRoot,\n Input: DropzoneInput,\n UploadIndicator: DropzoneUploadIndicator,\n LoadingIndicator: DropzoneLoadingIndicator,\n FilesList: DropzoneFilesList,\n};\n\nexport {\n Dropzone,\n DropzoneFilesList,\n DropzoneInput,\n DropzoneLoadingIndicator,\n DropzoneRoot,\n DropzoneUploadIndicator,\n};\n\nexport default Dropzone;\n\nexport type { DropzoneFilesChangeDetails } from "@starwind-ui/runtime";\n',
|
|
14668
15060
|
sourceHash: "sha256:4b71b12551996c34612324b85deb989dd30e1d3278e9c6acef8e7e0fa78dbe39",
|
|
14669
15061
|
sourcePath: "packages/astro/src/dropzone/index.ts"
|
|
15062
|
+
},
|
|
15063
|
+
{
|
|
15064
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
15065
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
15066
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
15067
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
14670
15068
|
}
|
|
14671
15069
|
],
|
|
14672
15070
|
packageRequirements: [
|
|
14673
15071
|
{
|
|
14674
15072
|
name: "@starwind-ui/runtime",
|
|
14675
|
-
range: "^0.1.0-beta.
|
|
15073
|
+
range: "^0.1.0-beta.3"
|
|
14676
15074
|
},
|
|
14677
15075
|
{
|
|
14678
15076
|
name: "astro",
|
|
@@ -14685,6 +15083,12 @@ if (!src && !image) {
|
|
|
14685
15083
|
framework: "astro",
|
|
14686
15084
|
version: "0.1.1",
|
|
14687
15085
|
files: [
|
|
15086
|
+
{
|
|
15087
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
15088
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
15089
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
15090
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
15091
|
+
},
|
|
14688
15092
|
{
|
|
14689
15093
|
path: "src/components/starwind-primitives/menu/MenuCheckboxItem.astro",
|
|
14690
15094
|
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 = Omit<HTMLAttributes<"div">, "aria-checked" | "role"> & {\n checked?: boolean;\n defaultChecked?: boolean;\n closeOnClick?: boolean;\n disabled?: boolean;\n};\n\nconst {\n checked,\n defaultChecked = false,\n closeOnClick = false,\n disabled = false,\n ...rest\n} = Astro.props;\n\nconst initialChecked = checked ?? defaultChecked;\n---\n\n<div\n data-sw-menu-checkbox-item\n data-default-checked={initialChecked ? "true" : undefined}\n data-close-on-click={closeOnClick ? "true" : undefined}\n role="menuitemcheckbox"\n aria-checked={initialChecked ? "true" : "false"}\n aria-disabled={disabled ? "true" : undefined}\n data-checked={initialChecked ? "" : undefined}\n data-disabled={disabled ? "" : undefined}\n data-unchecked={!initialChecked ? "" : undefined}\n tabindex="0"\n {...rest}\n>\n <slot />\n</div>\n',
|
|
@@ -14803,7 +15207,7 @@ if (!src && !image) {
|
|
|
14803
15207
|
packageRequirements: [
|
|
14804
15208
|
{
|
|
14805
15209
|
name: "@starwind-ui/runtime",
|
|
14806
|
-
range: "^0.1.0-beta.
|
|
15210
|
+
range: "^0.1.0-beta.3"
|
|
14807
15211
|
},
|
|
14808
15212
|
{
|
|
14809
15213
|
name: "astro",
|
|
@@ -14816,6 +15220,12 @@ if (!src && !image) {
|
|
|
14816
15220
|
framework: "astro",
|
|
14817
15221
|
version: "0.1.0",
|
|
14818
15222
|
files: [
|
|
15223
|
+
{
|
|
15224
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
15225
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
15226
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
15227
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
15228
|
+
},
|
|
14819
15229
|
{
|
|
14820
15230
|
path: "src/components/starwind-primitives/navigation-menu/NavigationMenuArrow.astro",
|
|
14821
15231
|
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\nconst { ...rest } = Astro.props;\n---\n\n<div data-sw-nav-menu-arrow aria-hidden="true" {...rest}>\n <slot />\n</div>\n',
|
|
@@ -14898,7 +15308,7 @@ if (!src && !image) {
|
|
|
14898
15308
|
packageRequirements: [
|
|
14899
15309
|
{
|
|
14900
15310
|
name: "@starwind-ui/runtime",
|
|
14901
|
-
range: "^0.1.0-beta.
|
|
15311
|
+
range: "^0.1.0-beta.3"
|
|
14902
15312
|
},
|
|
14903
15313
|
{
|
|
14904
15314
|
name: "astro",
|
|
@@ -14928,12 +15338,132 @@ if (!src && !image) {
|
|
|
14928
15338
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport {\n MenuCheckboxItem as ContextMenuCheckboxItem,\n MenuCheckboxItemIndicator as ContextMenuCheckboxItemIndicator,\n MenuGroup as ContextMenuGroup,\n MenuItem as ContextMenuItem,\n MenuLabel as ContextMenuLabel,\n MenuLinkItem as ContextMenuLinkItem,\n MenuPopup as ContextMenuPopup,\n MenuPortal as ContextMenuPortal,\n MenuPositioner as ContextMenuPositioner,\n MenuRadioGroup as ContextMenuRadioGroup,\n MenuRadioItem as ContextMenuRadioItem,\n MenuRadioItemIndicator as ContextMenuRadioItemIndicator,\n MenuSeparator as ContextMenuSeparator,\n MenuShortcut as ContextMenuShortcut,\n MenuSubmenuRoot as ContextMenuSubmenuRoot,\n MenuSubmenuTrigger as ContextMenuSubmenuTrigger,\n} from "../menu";\nimport ContextMenuRoot from "./ContextMenuRoot.astro";\nimport ContextMenuTrigger from "./ContextMenuTrigger.astro";\n\nconst ContextMenu = {\n Root: ContextMenuRoot,\n Trigger: ContextMenuTrigger,\n Portal: ContextMenuPortal,\n Positioner: ContextMenuPositioner,\n Popup: ContextMenuPopup,\n Item: ContextMenuItem,\n LinkItem: ContextMenuLinkItem,\n CheckboxItem: ContextMenuCheckboxItem,\n CheckboxItemIndicator: ContextMenuCheckboxItemIndicator,\n RadioGroup: ContextMenuRadioGroup,\n RadioItem: ContextMenuRadioItem,\n RadioItemIndicator: ContextMenuRadioItemIndicator,\n Group: ContextMenuGroup,\n Label: ContextMenuLabel,\n Separator: ContextMenuSeparator,\n Shortcut: ContextMenuShortcut,\n SubmenuRoot: ContextMenuSubmenuRoot,\n SubmenuTrigger: ContextMenuSubmenuTrigger,\n};\n\nexport {\n ContextMenu,\n ContextMenuCheckboxItem,\n ContextMenuCheckboxItemIndicator,\n ContextMenuGroup,\n ContextMenuItem,\n ContextMenuLabel,\n ContextMenuLinkItem,\n ContextMenuPopup,\n ContextMenuPortal,\n ContextMenuPositioner,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuRadioItemIndicator,\n ContextMenuRoot,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSubmenuRoot,\n ContextMenuSubmenuTrigger,\n ContextMenuTrigger,\n};\n\nexport default ContextMenu;\n\nexport type {\n ContextMenuCloseCompleteDetails,\n ContextMenuOpenChangeDetails,\n MenuCheckedChangeDetails,\n MenuValueChangeDetails,\n} from "@starwind-ui/runtime";\n',
|
|
14929
15339
|
sourceHash: "sha256:7c52c85ac79ef648e1c48d2f8def0a266175a1deff39e09fadfc429dd043d475",
|
|
14930
15340
|
sourcePath: "packages/astro/src/context-menu/index.ts"
|
|
15341
|
+
},
|
|
15342
|
+
{
|
|
15343
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
15344
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
15345
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
15346
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
15347
|
+
},
|
|
15348
|
+
{
|
|
15349
|
+
path: "src/components/starwind-primitives/menu/MenuCheckboxItem.astro",
|
|
15350
|
+
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 = Omit<HTMLAttributes<"div">, "aria-checked" | "role"> & {\n checked?: boolean;\n defaultChecked?: boolean;\n closeOnClick?: boolean;\n disabled?: boolean;\n};\n\nconst {\n checked,\n defaultChecked = false,\n closeOnClick = false,\n disabled = false,\n ...rest\n} = Astro.props;\n\nconst initialChecked = checked ?? defaultChecked;\n---\n\n<div\n data-sw-menu-checkbox-item\n data-default-checked={initialChecked ? "true" : undefined}\n data-close-on-click={closeOnClick ? "true" : undefined}\n role="menuitemcheckbox"\n aria-checked={initialChecked ? "true" : "false"}\n aria-disabled={disabled ? "true" : undefined}\n data-checked={initialChecked ? "" : undefined}\n data-disabled={disabled ? "" : undefined}\n data-unchecked={!initialChecked ? "" : undefined}\n tabindex="0"\n {...rest}\n>\n <slot />\n</div>\n',
|
|
15351
|
+
sourceHash: "sha256:30ca05dd5a90dadeb2d685d9fc335a169279e1f328498c61eb4c1f61dcd76b93",
|
|
15352
|
+
sourcePath: "packages/astro/src/menu/MenuCheckboxItem.astro"
|
|
15353
|
+
},
|
|
15354
|
+
{
|
|
15355
|
+
path: "src/components/starwind-primitives/menu/MenuCheckboxItemIndicator.astro",
|
|
15356
|
+
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<"span">;\n\nconst { ...rest } = Astro.props;\n---\n\n<span data-sw-menu-checkbox-item-indicator aria-hidden="true" data-state="unchecked" {...rest}>\n <slot />\n</span>\n',
|
|
15357
|
+
sourceHash: "sha256:5e0b73cf71ae58dbc7022557eab93783b84cde4b7d33a30a9ab0550332b25a08",
|
|
15358
|
+
sourcePath: "packages/astro/src/menu/MenuCheckboxItemIndicator.astro"
|
|
15359
|
+
},
|
|
15360
|
+
{
|
|
15361
|
+
path: "src/components/starwind-primitives/menu/MenuGroup.astro",
|
|
15362
|
+
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\nconst { ...rest } = Astro.props;\n---\n\n<div data-sw-menu-group role="group" {...rest}>\n <slot />\n</div>\n',
|
|
15363
|
+
sourceHash: "sha256:a270601b56cb066189bb20c903c7b22e0412864d9bb5d5e20ac4e6bf817a04dd",
|
|
15364
|
+
sourcePath: "packages/astro/src/menu/MenuGroup.astro"
|
|
15365
|
+
},
|
|
15366
|
+
{
|
|
15367
|
+
path: "src/components/starwind-primitives/menu/MenuItem.astro",
|
|
15368
|
+
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 disabled?: boolean;\n closeOnClick?: boolean;\n};\n\nconst { disabled = false, closeOnClick = true, ...rest } = Astro.props;\n---\n\n<div\n data-sw-menu-item\n role="menuitem"\n tabindex="0"\n data-close-on-click={closeOnClick ? undefined : "false"}\n aria-disabled={disabled ? "true" : undefined}\n data-disabled={disabled ? "" : undefined}\n {...rest}\n>\n <slot />\n</div>\n',
|
|
15369
|
+
sourceHash: "sha256:33c160ce05e58e0a57af1a0121dd2ac4fc966fbccbed5090eb8e1b1459931b8e",
|
|
15370
|
+
sourcePath: "packages/astro/src/menu/MenuItem.astro"
|
|
15371
|
+
},
|
|
15372
|
+
{
|
|
15373
|
+
path: "src/components/starwind-primitives/menu/MenuLabel.astro",
|
|
15374
|
+
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\nconst { ...rest } = Astro.props;\n---\n\n<div data-sw-menu-label {...rest}>\n <slot />\n</div>\n',
|
|
15375
|
+
sourceHash: "sha256:25b00d1bcf98a79790b4828b22233377bcae69ca8ebb8ba4475cea5be109adbe",
|
|
15376
|
+
sourcePath: "packages/astro/src/menu/MenuLabel.astro"
|
|
15377
|
+
},
|
|
15378
|
+
{
|
|
15379
|
+
path: "src/components/starwind-primitives/menu/MenuLinkItem.astro",
|
|
15380
|
+
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<"a"> & {\n disabled?: boolean;\n closeOnClick?: boolean;\n};\n\nconst { disabled = false, href, closeOnClick = false, ...rest } = Astro.props;\n---\n\n<a\n data-sw-menu-link-item\n href={disabled ? undefined : href}\n role="menuitem"\n tabindex="0"\n data-close-on-click={closeOnClick ? "true" : undefined}\n aria-disabled={disabled ? "true" : undefined}\n data-disabled={disabled ? "" : undefined}\n {...rest}\n>\n <slot />\n</a>\n',
|
|
15381
|
+
sourceHash: "sha256:3e4fafccc2403ca58e90da059c2351ee6863c6b11d37d3ad32220b9564ef9ab7",
|
|
15382
|
+
sourcePath: "packages/astro/src/menu/MenuLinkItem.astro"
|
|
15383
|
+
},
|
|
15384
|
+
{
|
|
15385
|
+
path: "src/components/starwind-primitives/menu/MenuPopup.astro",
|
|
15386
|
+
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 = "start",\n sideOffset = 4,\n avoidCollisions = true,\n ...rest\n} = Astro.props;\n---\n\n<div\n data-sw-menu-popup\n role="menu"\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',
|
|
15387
|
+
sourceHash: "sha256:a9bc1f222c8d75b76e565038ea8d1128a03fbee99c829da27afa14a7a9ed63b8",
|
|
15388
|
+
sourcePath: "packages/astro/src/menu/MenuPopup.astro"
|
|
15389
|
+
},
|
|
15390
|
+
{
|
|
15391
|
+
path: "src/components/starwind-primitives/menu/MenuPortal.astro",
|
|
15392
|
+
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\nconst { ...rest } = Astro.props;\n---\n\n<div data-sw-menu-portal {...rest}>\n <slot />\n</div>\n',
|
|
15393
|
+
sourceHash: "sha256:a1cc6da5aa2d9111610ef0537ccc860928dc3c214f78e4a961b5356469dab6ff",
|
|
15394
|
+
sourcePath: "packages/astro/src/menu/MenuPortal.astro"
|
|
15395
|
+
},
|
|
15396
|
+
{
|
|
15397
|
+
path: "src/components/starwind-primitives/menu/MenuPositioner.astro",
|
|
15398
|
+
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 = "start",\n sideOffset = 4,\n avoidCollisions = true,\n ...rest\n} = Astro.props;\n---\n\n<div\n data-sw-menu-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',
|
|
15399
|
+
sourceHash: "sha256:d2493a65d790abf56257b042a51be22945379731d9be9572b9e0cc8a6e96f4ca",
|
|
15400
|
+
sourcePath: "packages/astro/src/menu/MenuPositioner.astro"
|
|
15401
|
+
},
|
|
15402
|
+
{
|
|
15403
|
+
path: "src/components/starwind-primitives/menu/MenuRadioGroup.astro",
|
|
15404
|
+
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 value?: string;\n defaultValue?: string;\n};\n\nconst { value, defaultValue, ...rest } = Astro.props;\n\nconst initialValue = value ?? defaultValue;\n---\n\n<div data-sw-menu-radio-group role="group" data-value={initialValue} {...rest}>\n <slot />\n</div>\n',
|
|
15405
|
+
sourceHash: "sha256:e5e250c32af68a5953253dc6aaebb5891d2596e560e80d1d1c298933fbb878d7",
|
|
15406
|
+
sourcePath: "packages/astro/src/menu/MenuRadioGroup.astro"
|
|
15407
|
+
},
|
|
15408
|
+
{
|
|
15409
|
+
path: "src/components/starwind-primitives/menu/MenuRadioItem.astro",
|
|
15410
|
+
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 = Omit<HTMLAttributes<"div">, "aria-checked" | "role"> & {\n value: string;\n checked?: boolean;\n defaultChecked?: boolean;\n closeOnClick?: boolean;\n disabled?: boolean;\n};\n\nconst {\n value,\n checked,\n defaultChecked = false,\n closeOnClick = false,\n disabled = false,\n ...rest\n} = Astro.props;\n\nconst initialChecked = checked ?? defaultChecked;\n---\n\n<div\n data-sw-menu-radio-item\n data-value={value}\n data-default-checked={initialChecked ? "true" : undefined}\n data-close-on-click={closeOnClick ? "true" : undefined}\n role="menuitemradio"\n aria-checked={initialChecked ? "true" : "false"}\n aria-disabled={disabled ? "true" : undefined}\n data-checked={initialChecked ? "" : undefined}\n data-disabled={disabled ? "" : undefined}\n data-unchecked={!initialChecked ? "" : undefined}\n tabindex="0"\n {...rest}\n>\n <slot />\n</div>\n',
|
|
15411
|
+
sourceHash: "sha256:aaccb5255f05622b7704d6b43aa8eb3e384a62e9db599c7afc3ecc6d28916338",
|
|
15412
|
+
sourcePath: "packages/astro/src/menu/MenuRadioItem.astro"
|
|
15413
|
+
},
|
|
15414
|
+
{
|
|
15415
|
+
path: "src/components/starwind-primitives/menu/MenuRadioItemIndicator.astro",
|
|
15416
|
+
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<"span">;\n\nconst { ...rest } = Astro.props;\n---\n\n<span data-sw-menu-radio-item-indicator aria-hidden="true" data-state="unchecked" {...rest}>\n <slot />\n</span>\n',
|
|
15417
|
+
sourceHash: "sha256:cde94696f33cb86eb78bec8ea34519c134eb32a054b7bcac4432dc23f4fc6808",
|
|
15418
|
+
sourcePath: "packages/astro/src/menu/MenuRadioItemIndicator.astro"
|
|
15419
|
+
},
|
|
15420
|
+
{
|
|
15421
|
+
path: "src/components/starwind-primitives/menu/MenuRoot.astro",
|
|
15422
|
+
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 defaultOpen?: boolean;\n disabled?: boolean;\n modal?: boolean;\n openOnHover?: boolean;\n closeDelay?: number;\n};\n\nconst {\n defaultOpen = false,\n disabled = false,\n modal = false,\n openOnHover = false,\n closeDelay = 200,\n ...rest\n} = Astro.props;\n---\n\n<div\n data-sw-menu\n data-default-open={defaultOpen ? "true" : undefined}\n data-disabled={disabled ? "" : undefined}\n data-modal={modal ? "true" : "false"}\n data-open-on-hover={openOnHover ? "true" : undefined}\n data-close-delay={closeDelay}\n data-state={defaultOpen ? "open" : "closed"}\n {...rest}\n>\n <slot />\n</div>\n\n<script>\n import { createMenu } from "@starwind-ui/runtime/menu";\n import { registerAstroControllerLifecycle } from "../internal/controller-lifecycle";\n\n const menuInstances = new Set<ReturnType<typeof createMenu>>();\n\n const getInitCandidates = (event: Event | undefined, selector: string): HTMLElement[] => {\n const initRoot =\n event?.type === "starwind:init" && event instanceof CustomEvent\n ? event.detail?.root\n : undefined;\n const scopedRoot: Document | DocumentFragment | Element = isQueryableRoot(initRoot)\n ? initRoot\n : document;\n const candidates = Array.from(scopedRoot.querySelectorAll<HTMLElement>(selector));\n\n if (scopedRoot instanceof Element && scopedRoot.matches(selector)) {\n candidates.unshift(scopedRoot as HTMLElement);\n }\n\n return candidates;\n };\n\n const isQueryableRoot = (value: unknown): value is Document | DocumentFragment | Element =>\n value instanceof Document || value instanceof DocumentFragment || value instanceof Element;\n\n const setupMenus = (event?: Event) => {\n getInitCandidates(event, "[data-sw-menu]").forEach((root) => {\n if (root.hasAttribute("data-sw-context-menu")) return;\n menuInstances.add(createMenu(root));\n });\n };\n\n const destroyMenus = () => {\n menuInstances.forEach((instance) => instance.destroy());\n menuInstances.clear();\n };\n\n registerAstroControllerLifecycle("MenuRoot", setupMenus, destroyMenus);\n</script>\n',
|
|
15423
|
+
sourceHash: "sha256:b1ec247194d07ec7f6641a35c0b8a9c743bad56f35302fba83b1d2e228df4f18",
|
|
15424
|
+
sourcePath: "packages/astro/src/menu/MenuRoot.astro"
|
|
15425
|
+
},
|
|
15426
|
+
{
|
|
15427
|
+
path: "src/components/starwind-primitives/menu/MenuSeparator.astro",
|
|
15428
|
+
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\nconst { ...rest } = Astro.props;\n---\n\n<div data-sw-menu-separator role="separator" aria-orientation="horizontal" {...rest}></div>\n',
|
|
15429
|
+
sourceHash: "sha256:18944c79760d054e696447845984a8be7c17ba03ac12ed932e60ea857e549421",
|
|
15430
|
+
sourcePath: "packages/astro/src/menu/MenuSeparator.astro"
|
|
15431
|
+
},
|
|
15432
|
+
{
|
|
15433
|
+
path: "src/components/starwind-primitives/menu/MenuShortcut.astro",
|
|
15434
|
+
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<"span">;\n\nconst { ...rest } = Astro.props;\n---\n\n<span data-sw-menu-shortcut {...rest}>\n <slot />\n</span>\n',
|
|
15435
|
+
sourceHash: "sha256:001f18975506096dbd6e228bf08e327c4bd67b8f1d6bec41b0bc7e397cdf67c4",
|
|
15436
|
+
sourcePath: "packages/astro/src/menu/MenuShortcut.astro"
|
|
15437
|
+
},
|
|
15438
|
+
{
|
|
15439
|
+
path: "src/components/starwind-primitives/menu/MenuSubmenuRoot.astro",
|
|
15440
|
+
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 closeDelay?: number;\n};\n\nconst { closeDelay = 200, ...rest } = Astro.props;\n---\n\n<div data-sw-menu-submenu-root data-close-delay={closeDelay} data-state="closed" {...rest}>\n <slot />\n</div>\n',
|
|
15441
|
+
sourceHash: "sha256:86c1c6d3b86372ea4af059960d1348c8cd75ac972dbb2e7d0c31eb3c322006b3",
|
|
15442
|
+
sourcePath: "packages/astro/src/menu/MenuSubmenuRoot.astro"
|
|
15443
|
+
},
|
|
15444
|
+
{
|
|
15445
|
+
path: "src/components/starwind-primitives/menu/MenuSubmenuTrigger.astro",
|
|
15446
|
+
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 disabled?: boolean;\n};\n\nconst { disabled = false, ...rest } = Astro.props;\n---\n\n<div\n data-sw-menu-submenu-trigger\n role="menuitem"\n aria-haspopup="menu"\n aria-expanded="false"\n aria-disabled={disabled ? "true" : undefined}\n data-disabled={disabled ? "" : undefined}\n data-state="closed"\n tabindex="0"\n {...rest}\n>\n <slot />\n</div>\n',
|
|
15447
|
+
sourceHash: "sha256:180bfca69a1e4c1f886630f43c0b4fc8a2e31c7137843a0490f07ce87b02a224",
|
|
15448
|
+
sourcePath: "packages/astro/src/menu/MenuSubmenuTrigger.astro"
|
|
15449
|
+
},
|
|
15450
|
+
{
|
|
15451
|
+
path: "src/components/starwind-primitives/menu/MenuTrigger.astro",
|
|
15452
|
+
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<"button"> & {\n asChild?: boolean;\n};\n\nconst { asChild = false, ...rest } = Astro.props;\n---\n\n{\n asChild ? (\n <div\n data-sw-menu-trigger\n data-as-child\n aria-haspopup="menu"\n aria-expanded="false"\n data-state="closed"\n {...rest}\n >\n <slot />\n </div>\n ) : (\n <button\n type="button"\n data-sw-menu-trigger\n aria-haspopup="menu"\n aria-expanded="false"\n data-state="closed"\n {...rest}\n >\n <slot />\n </button>\n )\n}\n',
|
|
15453
|
+
sourceHash: "sha256:99a66fd89b74a56107096bd920bb7d3033ea5970726d09d72011a7124da54a8d",
|
|
15454
|
+
sourcePath: "packages/astro/src/menu/MenuTrigger.astro"
|
|
15455
|
+
},
|
|
15456
|
+
{
|
|
15457
|
+
path: "src/components/starwind-primitives/menu/index.ts",
|
|
15458
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport MenuCheckboxItem from "./MenuCheckboxItem.astro";\nimport MenuCheckboxItemIndicator from "./MenuCheckboxItemIndicator.astro";\nimport MenuGroup from "./MenuGroup.astro";\nimport MenuItem from "./MenuItem.astro";\nimport MenuLabel from "./MenuLabel.astro";\nimport MenuLinkItem from "./MenuLinkItem.astro";\nimport MenuPopup from "./MenuPopup.astro";\nimport MenuPortal from "./MenuPortal.astro";\nimport MenuPositioner from "./MenuPositioner.astro";\nimport MenuRadioGroup from "./MenuRadioGroup.astro";\nimport MenuRadioItem from "./MenuRadioItem.astro";\nimport MenuRadioItemIndicator from "./MenuRadioItemIndicator.astro";\nimport MenuRoot from "./MenuRoot.astro";\nimport MenuSeparator from "./MenuSeparator.astro";\nimport MenuShortcut from "./MenuShortcut.astro";\nimport MenuSubmenuRoot from "./MenuSubmenuRoot.astro";\nimport MenuSubmenuTrigger from "./MenuSubmenuTrigger.astro";\nimport MenuTrigger from "./MenuTrigger.astro";\n\nconst Menu = {\n Root: MenuRoot,\n Trigger: MenuTrigger,\n Portal: MenuPortal,\n Positioner: MenuPositioner,\n Popup: MenuPopup,\n Item: MenuItem,\n LinkItem: MenuLinkItem,\n CheckboxItem: MenuCheckboxItem,\n CheckboxItemIndicator: MenuCheckboxItemIndicator,\n RadioGroup: MenuRadioGroup,\n RadioItem: MenuRadioItem,\n RadioItemIndicator: MenuRadioItemIndicator,\n Group: MenuGroup,\n Label: MenuLabel,\n Separator: MenuSeparator,\n Shortcut: MenuShortcut,\n SubmenuRoot: MenuSubmenuRoot,\n SubmenuTrigger: MenuSubmenuTrigger,\n};\n\nexport {\n Menu,\n MenuCheckboxItem,\n MenuCheckboxItemIndicator,\n MenuGroup,\n MenuItem,\n MenuLabel,\n MenuLinkItem,\n MenuPopup,\n MenuPortal,\n MenuPositioner,\n MenuRadioGroup,\n MenuRadioItem,\n MenuRadioItemIndicator,\n MenuRoot,\n MenuSeparator,\n MenuShortcut,\n MenuSubmenuRoot,\n MenuSubmenuTrigger,\n MenuTrigger,\n};\n\nexport default Menu;\n\nexport type {\n MenuCheckedChangeDetails,\n MenuCloseCompleteDetails,\n MenuOpenChangeDetails,\n MenuValueChangeDetails,\n} from "@starwind-ui/runtime";\n',
|
|
15459
|
+
sourceHash: "sha256:29ca5909db26a42783ba3ae919b41b623561a49ebf0c967c0aee75f4627e23bb",
|
|
15460
|
+
sourcePath: "packages/astro/src/menu/index.ts"
|
|
14931
15461
|
}
|
|
14932
15462
|
],
|
|
14933
15463
|
packageRequirements: [
|
|
14934
15464
|
{
|
|
14935
15465
|
name: "@starwind-ui/runtime",
|
|
14936
|
-
range: "^0.1.0-beta.
|
|
15466
|
+
range: "^0.1.0-beta.3"
|
|
14937
15467
|
},
|
|
14938
15468
|
{
|
|
14939
15469
|
name: "astro",
|
|
@@ -14946,6 +15476,12 @@ if (!src && !image) {
|
|
|
14946
15476
|
framework: "astro",
|
|
14947
15477
|
version: "0.1.2",
|
|
14948
15478
|
files: [
|
|
15479
|
+
{
|
|
15480
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
15481
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
15482
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
15483
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
15484
|
+
},
|
|
14949
15485
|
{
|
|
14950
15486
|
path: "src/components/starwind-primitives/select/SelectGroup.astro",
|
|
14951
15487
|
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\nconst { ...rest } = Astro.props;\n---\n\n<div data-sw-select-group role="group" {...rest}>\n <slot />\n</div>\n',
|
|
@@ -15058,7 +15594,7 @@ if (!src && !image) {
|
|
|
15058
15594
|
packageRequirements: [
|
|
15059
15595
|
{
|
|
15060
15596
|
name: "@starwind-ui/runtime",
|
|
15061
|
-
range: "^0.1.0-beta.
|
|
15597
|
+
range: "^0.1.0-beta.3"
|
|
15062
15598
|
},
|
|
15063
15599
|
{
|
|
15064
15600
|
name: "astro",
|
|
@@ -15071,6 +15607,12 @@ if (!src && !image) {
|
|
|
15071
15607
|
framework: "astro",
|
|
15072
15608
|
version: "0.1.0",
|
|
15073
15609
|
files: [
|
|
15610
|
+
{
|
|
15611
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
15612
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
15613
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
15614
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
15615
|
+
},
|
|
15074
15616
|
{
|
|
15075
15617
|
path: "src/components/starwind-primitives/sidebar/Sidebar.astro",
|
|
15076
15618
|
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?: "left" | "right";\n variant?: "sidebar" | "floating" | "inset";\n collapsible?: "offcanvas" | "icon";\n};\n\nconst { side = "left", variant = "sidebar", collapsible = "offcanvas", ...rest } = Astro.props;\n---\n\n<div\n data-sw-sidebar\n data-state="expanded"\n data-collapsible=""\n data-collapsible-mode={collapsible}\n data-variant={variant}\n data-side={side}\n {...rest}\n>\n <slot />\n</div>\n',
|
|
@@ -15111,7 +15653,7 @@ if (!src && !image) {
|
|
|
15111
15653
|
packageRequirements: [
|
|
15112
15654
|
{
|
|
15113
15655
|
name: "@starwind-ui/runtime",
|
|
15114
|
-
range: "^0.1.0-beta.
|
|
15656
|
+
range: "^0.1.0-beta.3"
|
|
15115
15657
|
},
|
|
15116
15658
|
{
|
|
15117
15659
|
name: "astro",
|
|
@@ -15243,12 +15785,191 @@ if (!src && !image) {
|
|
|
15243
15785
|
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport ComboboxClear from "./ComboboxClear.astro";\nimport ComboboxEmpty from "./ComboboxEmpty.astro";\nimport ComboboxGroup from "./ComboboxGroup.astro";\nimport ComboboxGroupLabel from "./ComboboxGroupLabel.astro";\nimport ComboboxIcon from "./ComboboxIcon.astro";\nimport ComboboxInput from "./ComboboxInput.astro";\nimport ComboboxInputGroup from "./ComboboxInputGroup.astro";\nimport ComboboxItem from "./ComboboxItem.astro";\nimport ComboboxItemIndicator from "./ComboboxItemIndicator.astro";\nimport ComboboxItemText from "./ComboboxItemText.astro";\nimport ComboboxLabel from "./ComboboxLabel.astro";\nimport ComboboxList from "./ComboboxList.astro";\nimport ComboboxPopup from "./ComboboxPopup.astro";\nimport ComboboxPortal from "./ComboboxPortal.astro";\nimport ComboboxPositioner from "./ComboboxPositioner.astro";\nimport ComboboxRoot from "./ComboboxRoot.astro";\nimport ComboboxSeparator from "./ComboboxSeparator.astro";\nimport ComboboxTrigger from "./ComboboxTrigger.astro";\nimport ComboboxValue from "./ComboboxValue.astro";\n\nconst Combobox = {\n Root: ComboboxRoot,\n Label: ComboboxLabel,\n InputGroup: ComboboxInputGroup,\n Input: ComboboxInput,\n Trigger: ComboboxTrigger,\n Icon: ComboboxIcon,\n Clear: ComboboxClear,\n Value: ComboboxValue,\n Portal: ComboboxPortal,\n Positioner: ComboboxPositioner,\n Popup: ComboboxPopup,\n Empty: ComboboxEmpty,\n List: ComboboxList,\n Group: ComboboxGroup,\n GroupLabel: ComboboxGroupLabel,\n Item: ComboboxItem,\n ItemText: ComboboxItemText,\n ItemIndicator: ComboboxItemIndicator,\n Separator: ComboboxSeparator,\n};\n\nexport {\n Combobox,\n ComboboxClear,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxGroupLabel,\n ComboboxIcon,\n ComboboxInput,\n ComboboxInputGroup,\n ComboboxItem,\n ComboboxItemIndicator,\n ComboboxItemText,\n ComboboxLabel,\n ComboboxList,\n ComboboxPopup,\n ComboboxPortal,\n ComboboxPositioner,\n ComboboxRoot,\n ComboboxSeparator,\n ComboboxTrigger,\n ComboboxValue,\n};\n\nexport default Combobox;\n\nexport type {\n ComboboxInputValueChangeDetails,\n ComboboxOpenChangeDetails,\n ComboboxValueChangeDetails,\n} from "@starwind-ui/runtime";\n',
|
|
15244
15786
|
sourceHash: "sha256:9f9ec2714d78f1b53774bf33cd41b7b917c4492d9eae76669a430e49e88587ad",
|
|
15245
15787
|
sourcePath: "packages/astro/src/combobox/index.ts"
|
|
15788
|
+
},
|
|
15789
|
+
{
|
|
15790
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
15791
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
15792
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
15793
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
15246
15794
|
}
|
|
15247
15795
|
],
|
|
15248
15796
|
packageRequirements: [
|
|
15249
15797
|
{
|
|
15250
15798
|
name: "@starwind-ui/runtime",
|
|
15251
|
-
range: "^0.1.0-beta.
|
|
15799
|
+
range: "^0.1.0-beta.3"
|
|
15800
|
+
},
|
|
15801
|
+
{
|
|
15802
|
+
name: "astro",
|
|
15803
|
+
range: ">=5"
|
|
15804
|
+
}
|
|
15805
|
+
]
|
|
15806
|
+
},
|
|
15807
|
+
{
|
|
15808
|
+
component: "color-picker",
|
|
15809
|
+
framework: "astro",
|
|
15810
|
+
version: "0.1.0",
|
|
15811
|
+
files: [
|
|
15812
|
+
{
|
|
15813
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerArea.astro",
|
|
15814
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type {\n ColorPickerChannel,\n ColorPickerInitialPartProjection,\n} from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"div"> {\n initial?: ColorPickerInitialPartProjection;\n xChannel?: ColorPickerChannel;\n yChannel?: ColorPickerChannel;\n}\nconst {\n initial: suppliedInitial,\n xChannel = "saturation",\n yChannel = "brightness",\n style,\n ...rest\n} = Astro.props;\nconst initial = assertColorPickerInitialPart("area", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<div\n {...rest}\n data-x-channel={initial ? undefined : xChannel}\n data-y-channel={initial ? undefined : yChannel}\n {...initial?.attributes}\n style={mergedStyle}\n data-sw-color-picker-area\n>\n <slot />\n</div>\n',
|
|
15815
|
+
sourceHash: "sha256:94ce56fea56c0e1b4a4e8fba210498d6feb976992529285973a05a2f57c25dab",
|
|
15816
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerArea.astro"
|
|
15817
|
+
},
|
|
15818
|
+
{
|
|
15819
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerAreaBackground.astro",
|
|
15820
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"div"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("areaBackground", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<div {...rest} {...initial?.attributes} style={mergedStyle} data-sw-color-picker-area-background>\n <slot />\n</div>\n',
|
|
15821
|
+
sourceHash: "sha256:17962d959c43c547aa0e900847ff7cb1acf169e2ac397cc43d5e543f5a225af2",
|
|
15822
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerAreaBackground.astro"
|
|
15823
|
+
},
|
|
15824
|
+
{
|
|
15825
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerAreaInput.astro",
|
|
15826
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"input"> {\n initial?: ColorPickerInitialPartProjection;\n axis?: "x" | "y";\n step?: number;\n readOnly?: boolean;\n}\nconst {\n initial: suppliedInitial,\n axis = "x",\n step,\n style,\n value,\n disabled,\n readOnly,\n hidden,\n ...rest\n} = Astro.props;\nconst initial = assertColorPickerInitialPart("areaInput", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<input\n {...rest}\n type={initial ? undefined : "range"}\n data-axis={initial ? undefined : axis}\n data-step={initial ? undefined : step}\n {...initial?.attributes}\n value={initial?.properties.value ?? value}\n disabled={initial?.properties.disabled ?? disabled}\n readonly={initial?.properties.readOnly ?? readOnly}\n hidden={initial?.properties.hidden ?? hidden ?? false}\n style={mergedStyle}\n data-sw-color-picker-area-input\n/>\n',
|
|
15827
|
+
sourceHash: "sha256:780da163c54de72760458b13732c70149191bfdacaea4409750be11ff5b8cffe",
|
|
15828
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerAreaInput.astro"
|
|
15829
|
+
},
|
|
15830
|
+
{
|
|
15831
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerAreaThumb.astro",
|
|
15832
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"span"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("areaThumb", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<span {...rest} {...initial?.attributes} style={mergedStyle} data-sw-color-picker-area-thumb>\n <slot />\n</span>\n',
|
|
15833
|
+
sourceHash: "sha256:1a581203b8c08499cd3b833b26e542002333af9c5176aea846412046238dcac0",
|
|
15834
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerAreaThumb.astro"
|
|
15835
|
+
},
|
|
15836
|
+
{
|
|
15837
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerChannelInput.astro",
|
|
15838
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type {\n ColorPickerInitialPartProjection,\n ColorPickerChannel,\n} from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"input"> {\n initial?: ColorPickerInitialPartProjection;\n channel: ColorPickerChannel;\n readOnly?: boolean;\n}\nconst {\n initial: suppliedInitial,\n channel,\n style,\n value,\n disabled,\n readOnly,\n hidden,\n ...rest\n} = Astro.props;\nconst initial = assertColorPickerInitialPart("channelInput", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<input\n {...rest}\n data-channel={initial ? undefined : channel}\n {...initial?.attributes}\n value={initial?.properties.value ?? value}\n disabled={initial?.properties.disabled ?? disabled}\n readonly={initial?.properties.readOnly ?? readOnly}\n hidden={initial?.properties.hidden ?? hidden ?? false}\n style={mergedStyle}\n data-sw-color-picker-channel-field\n/>\n',
|
|
15839
|
+
sourceHash: "sha256:1244793a021d22325de8a52df5ea5c67fa2321a2bfb5626cc227fefb3f62b309",
|
|
15840
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerChannelInput.astro"
|
|
15841
|
+
},
|
|
15842
|
+
{
|
|
15843
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerChannelSlider.astro",
|
|
15844
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type {\n ColorPickerChannel,\n ColorPickerInitialPartProjection,\n} from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"div"> {\n initial?: ColorPickerInitialPartProjection;\n channel: ColorPickerChannel;\n orientation?: "horizontal" | "vertical";\n}\nconst {\n initial: suppliedInitial,\n channel,\n orientation = "horizontal",\n style,\n hidden,\n ...rest\n} = Astro.props;\nconst initial = assertColorPickerInitialPart("channelSlider", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<div\n {...rest}\n data-channel={initial ? undefined : channel}\n data-orientation={initial ? undefined : orientation}\n {...initial?.attributes}\n hidden={initial?.properties.hidden ?? hidden}\n style={mergedStyle}\n data-sw-color-picker-channel-slider\n>\n <slot />\n</div>\n',
|
|
15845
|
+
sourceHash: "sha256:0cf7c0b5d7bdc34c609f2afcd9166fdae15e4181f8782a824abd5e3de07257d0",
|
|
15846
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerChannelSlider.astro"
|
|
15847
|
+
},
|
|
15848
|
+
{
|
|
15849
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerChannelSliderInput.astro",
|
|
15850
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"input"> {\n initial?: ColorPickerInitialPartProjection;\n step?: number;\n readOnly?: boolean;\n}\nconst {\n initial: suppliedInitial,\n step,\n style,\n value,\n disabled,\n readOnly,\n hidden,\n ...rest\n} = Astro.props;\nconst initial = assertColorPickerInitialPart("channelSliderInput", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<input\n {...rest}\n type={initial ? undefined : "range"}\n data-step={initial ? undefined : step}\n {...initial?.attributes}\n value={initial?.properties.value ?? value}\n disabled={initial?.properties.disabled ?? disabled}\n readonly={initial?.properties.readOnly ?? readOnly}\n hidden={initial?.properties.hidden ?? hidden ?? false}\n style={mergedStyle}\n data-sw-color-picker-channel-input\n/>\n',
|
|
15851
|
+
sourceHash: "sha256:b9339c1f8ea06a66a01c58f720f8221e99b94d2cfdaf025c65cf0c0fab6bcb78",
|
|
15852
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerChannelSliderInput.astro"
|
|
15853
|
+
},
|
|
15854
|
+
{
|
|
15855
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerChannelSliderThumb.astro",
|
|
15856
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"span"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("channelSliderThumb", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<span\n {...rest}\n {...initial?.attributes}\n style={mergedStyle}\n data-sw-color-picker-channel-slider-thumb\n>\n <slot />\n</span>\n',
|
|
15857
|
+
sourceHash: "sha256:e6f3dc49bcb882e3ca7758d4a121c47391f22bf55ae4a81752cf73359c1bdf24",
|
|
15858
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerChannelSliderThumb.astro"
|
|
15859
|
+
},
|
|
15860
|
+
{
|
|
15861
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerChannelSliderTrack.astro",
|
|
15862
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"div"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("channelSliderTrack", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<div\n {...rest}\n {...initial?.attributes}\n style={mergedStyle}\n data-sw-color-picker-channel-slider-track\n>\n <slot />\n</div>\n',
|
|
15863
|
+
sourceHash: "sha256:58530cbf82d7ab5d8f55baf55c3b23344a46501d43c5910212e8878d4147d746",
|
|
15864
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerChannelSliderTrack.astro"
|
|
15865
|
+
},
|
|
15866
|
+
{
|
|
15867
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerClear.astro",
|
|
15868
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"button"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, disabled, hidden, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("clear", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<button\n {...rest}\n type={initial ? undefined : "button"}\n {...initial?.attributes}\n disabled={initial?.properties.disabled ?? disabled}\n hidden={initial?.properties.hidden ?? hidden}\n style={mergedStyle}\n data-sw-color-picker-clear\n>\n <slot />\n</button>\n',
|
|
15869
|
+
sourceHash: "sha256:4ca62fe300ea02c7c82b8e61bbc861f70a9f08c85163c14ae262c9d00db708f3",
|
|
15870
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerClear.astro"
|
|
15871
|
+
},
|
|
15872
|
+
{
|
|
15873
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerControl.astro",
|
|
15874
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"div"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("control", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<div {...rest} {...initial?.attributes} style={mergedStyle} data-sw-color-picker-control>\n <slot />\n</div>\n',
|
|
15875
|
+
sourceHash: "sha256:7e524a03d24a6f1ee7b43f9dad74cc7bbda87b48a97eb2cebe567062bd6a9261",
|
|
15876
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerControl.astro"
|
|
15877
|
+
},
|
|
15878
|
+
{
|
|
15879
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerEyeDropperTrigger.astro",
|
|
15880
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"button"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, disabled, hidden, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("eyeDropperTrigger", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<button\n {...rest}\n type={initial ? undefined : "button"}\n {...initial?.attributes}\n disabled={initial?.properties.disabled ?? disabled}\n hidden={initial?.properties.hidden ?? hidden}\n style={mergedStyle}\n data-sw-color-picker-eye-dropper\n>\n <slot />\n</button>\n',
|
|
15881
|
+
sourceHash: "sha256:30b9dda00db500079458036945f069400b8e3e7b6058627cf170c1573e0c1099",
|
|
15882
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerEyeDropperTrigger.astro"
|
|
15883
|
+
},
|
|
15884
|
+
{
|
|
15885
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerFormatControl.astro",
|
|
15886
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"div"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("formatControl", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<div {...rest} {...initial?.attributes} style={mergedStyle} data-sw-color-picker-format-control>\n <slot />\n</div>\n',
|
|
15887
|
+
sourceHash: "sha256:c3e4a4be9b66611502e8cd8160ee4136f9f6f357f5739401c3f37f6535057c0f",
|
|
15888
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerFormatControl.astro"
|
|
15889
|
+
},
|
|
15890
|
+
{
|
|
15891
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerFormatSelect.astro",
|
|
15892
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"select"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, value, disabled, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("formatSelect", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<select\n {...rest}\n {...initial?.attributes}\n value={initial?.properties.value ?? value}\n disabled={initial?.properties.disabled ?? disabled}\n style={mergedStyle}\n data-sw-color-picker-format-select\n>\n <slot>\n <option value="hex" selected={(initial?.properties.value ?? value) === "hex"}>HEX</option>\n <option value="rgb" selected={(initial?.properties.value ?? value) === "rgb"}>RGB</option>\n <option value="hsl" selected={(initial?.properties.value ?? value) === "hsl"}>HSL</option>\n <option value="hsb" selected={(initial?.properties.value ?? value) === "hsb"}>HSB</option>\n </slot>\n</select>\n',
|
|
15893
|
+
sourceHash: "sha256:6e3f100f98e32ddd71587f145807332b2a96998480d5f97407e7a326852ea715",
|
|
15894
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerFormatSelect.astro"
|
|
15895
|
+
},
|
|
15896
|
+
{
|
|
15897
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerHiddenInput.astro",
|
|
15898
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"input"> {\n initial?: ColorPickerInitialPartProjection;\n\n readOnly?: boolean;\n}\nconst { initial: suppliedInitial, style, value, disabled, readOnly, hidden, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("hiddenInput", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<input\n {...rest}\n type={initial ? undefined : "text"}\n {...initial?.attributes}\n value={initial?.properties.value ?? value}\n disabled={initial?.properties.disabled ?? disabled}\n readonly={initial?.properties.readOnly ?? readOnly}\n hidden={initial?.properties.hidden ?? hidden ?? false}\n style={mergedStyle}\n data-sw-color-picker-hidden-input\n/>\n',
|
|
15899
|
+
sourceHash: "sha256:0a4958d74feea4bdf30d92f45adae6682ba29798265b2ea9ea3b9dce27c0b893",
|
|
15900
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerHiddenInput.astro"
|
|
15901
|
+
},
|
|
15902
|
+
{
|
|
15903
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerLabel.astro",
|
|
15904
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"span"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("label", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<span {...rest} {...initial?.attributes} style={mergedStyle} data-sw-color-picker-label>\n <slot />\n</span>\n',
|
|
15905
|
+
sourceHash: "sha256:b3db102151f79cb734cc52cbfe8a3f346db9f7c9c41a78907da1fa8b7e2eadcb",
|
|
15906
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerLabel.astro"
|
|
15907
|
+
},
|
|
15908
|
+
{
|
|
15909
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerRenderProjection.ts",
|
|
15910
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport type { HTMLAttributes } from "astro/types";\nimport {\n projectColorPickerInitialPart,\n type ColorPickerInitialAxis,\n type ColorPickerInitialChannel,\n type ColorPickerInitialOrientation,\n type ColorPickerInitialPartName,\n type ColorPickerInitialPartProjection,\n type ColorPickerInitialState,\n type ColorPickerInitialValue,\n} from "@starwind-ui/runtime/color-picker";\n\nexport type ColorPickerInitialProps = Readonly<{\n initial: ColorPickerInitialPartProjection;\n}>;\n\nexport type ColorPickerAreaProjection = Readonly<{\n root: ColorPickerInitialProps;\n background: ColorPickerInitialProps;\n thumb: ColorPickerInitialProps;\n input(options: {\n axis: ColorPickerInitialAxis;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaRoleDescription?: string;\n }): ColorPickerInitialProps;\n}>;\n\nexport type ColorPickerChannelSliderProjection = Readonly<{\n root: ColorPickerInitialProps;\n track: ColorPickerInitialProps;\n thumb: ColorPickerInitialProps;\n input(options?: { ariaLabel?: string }): ColorPickerInitialProps;\n}>;\n\nexport type ColorPickerRenderProjection = Readonly<{\n root: ColorPickerInitialProps;\n label: ColorPickerInitialProps;\n control: ColorPickerInitialProps;\n valueInput: ColorPickerInitialProps;\n valueSwatch: ColorPickerInitialProps;\n valueText: ColorPickerInitialProps;\n area(options?: {\n xChannel?: ColorPickerInitialChannel;\n yChannel?: ColorPickerInitialChannel;\n xStep?: number;\n yStep?: number;\n }): ColorPickerAreaProjection;\n channelSlider(options: {\n channel: ColorPickerInitialChannel;\n orientation?: ColorPickerInitialOrientation;\n step?: number;\n }): ColorPickerChannelSliderProjection;\n channelInput(options: { channel: ColorPickerInitialChannel }): ColorPickerInitialProps;\n formatSelect: ColorPickerInitialProps;\n formatControl: ColorPickerInitialProps;\n transparencyGrid: ColorPickerInitialProps;\n swatchGroup: ColorPickerInitialProps;\n swatch(options: { value: ColorPickerInitialValue; disabled?: boolean }): ColorPickerInitialProps;\n eyeDropperTrigger: ColorPickerInitialProps;\n clear: ColorPickerInitialProps;\n hiddenInput: ColorPickerInitialProps;\n}>;\n\nexport function createColorPickerRenderProjection(\n state: ColorPickerInitialState,\n): ColorPickerRenderProjection {\n const part = (\n request: Parameters<typeof projectColorPickerInitialPart>[1],\n ): ColorPickerInitialProps =>\n Object.freeze({ initial: projectColorPickerInitialPart(state, request) });\n const simple = (name: ColorPickerInitialPartName) => part({ part: name } as never);\n\n return Object.freeze({\n root: simple("root"),\n label: simple("label"),\n control: simple("control"),\n valueInput: simple("valueInput"),\n valueSwatch: simple("valueSwatch"),\n valueText: simple("valueText"),\n area(options = {}) {\n const context = Object.freeze({ ...options });\n return Object.freeze({\n root: part({ part: "area", ...context }),\n background: part({ part: "areaBackground", ...context }),\n thumb: part({ part: "areaThumb", ...context }),\n input(inputOptions) {\n return part({ part: "areaInput", ...context, ...inputOptions });\n },\n });\n },\n channelSlider(options) {\n const context = Object.freeze({ ...options });\n return Object.freeze({\n root: part({ part: "channelSlider", ...context }),\n track: part({ part: "channelSliderTrack", ...context }),\n thumb: part({ part: "channelSliderThumb", ...context }),\n input(inputOptions = {}) {\n return part({ part: "channelSliderInput", ...context, ...inputOptions });\n },\n });\n },\n channelInput: (options) => part({ part: "channelInput", ...options }),\n formatSelect: simple("formatSelect"),\n formatControl: simple("formatControl"),\n transparencyGrid: simple("transparencyGrid"),\n swatchGroup: simple("swatchGroup"),\n swatch: (options) => part({ part: "swatch", ...options }),\n eyeDropperTrigger: simple("eyeDropperTrigger"),\n clear: simple("clear"),\n hiddenInput: simple("hiddenInput"),\n });\n}\n\nexport function assertColorPickerInitialPart(\n expected: ColorPickerInitialPartName,\n initial: ColorPickerInitialPartProjection | undefined,\n): ColorPickerInitialPartProjection | undefined {\n if (initial && initial.part !== expected) {\n throw new Error(\n `Color Picker ${expected} received the initial projection for ${initial.part}.`,\n );\n }\n return initial;\n}\n\nexport function mergeColorPickerInitialStyles(\n style: HTMLAttributes<"div">["style"],\n initial: ColorPickerInitialPartProjection | undefined,\n): HTMLAttributes<"div">["style"] {\n const projected = Object.fromEntries(\n Object.entries(initial?.styles ?? {}).filter(\n (entry): entry is [string, string] => entry[1] !== undefined,\n ),\n );\n if (Object.keys(projected).length === 0) return style;\n if (typeof style === "string") {\n const suffix = Object.entries(projected)\n .map(([name, value]) => `${name}: ${value}`)\n .join("; ");\n return style.length > 0 ? `${style}; ${suffix}` : suffix;\n }\n return { ...(typeof style === "object" && style !== null ? style : {}), ...projected };\n}\n',
|
|
15911
|
+
sourceHash: "sha256:cac62787f69847cda171861e603c15fda0e9c8c1b49a4da32bf4db6b5a7c6ea5",
|
|
15912
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerRenderProjection.ts"
|
|
15913
|
+
},
|
|
15914
|
+
{
|
|
15915
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerRoot.astro",
|
|
15916
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport {\n createColorPickerInitialState,\n projectColorPickerInitialPart,\n} from "@starwind-ui/runtime/color-picker";\nimport type {\n ColorPickerDirection,\n ColorPickerFormat,\n ColorPickerOptions,\n ColorPickerValue,\n} from "@starwind-ui/runtime/color-picker";\nimport {\n createColorPickerRenderProjection,\n mergeColorPickerInitialStyles,\n type ColorPickerRenderProjection,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends Omit<HTMLAttributes<"div">, "defaultValue" | "dir"> {\n value?: ColorPickerValue;\n defaultValue?: ColorPickerValue;\n format?: ColorPickerFormat;\n alpha?: boolean;\n allowEmpty?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n name?: string;\n form?: string;\n locale?: string;\n dir?: ColorPickerDirection;\n getAriaValueText?: ColorPickerOptions["getAriaValueText"];\n getAreaRoleDescription?: ColorPickerOptions["getAreaRoleDescription"];\n getColorDescription?: ColorPickerOptions["getColorDescription"];\n children?: (initial: ColorPickerRenderProjection) => unknown;\n}\n\nconst {\n value,\n defaultValue = "#000000",\n format = "hex",\n alpha = true,\n allowEmpty = false,\n disabled = false,\n readOnly = false,\n required = false,\n name,\n form,\n locale,\n dir,\n getAriaValueText,\n getAreaRoleDescription,\n getColorDescription,\n style,\n ...rest\n} = Astro.props;\nconst initialState = createColorPickerInitialState({\n ...(value === undefined ? {} : { value }),\n defaultValue,\n format,\n alpha,\n allowEmpty,\n disabled,\n readOnly,\n required,\n name,\n form,\n locale,\n dir,\n getAriaValueText,\n getAreaRoleDescription,\n getColorDescription,\n});\nconst rootInitial = projectColorPickerInitialPart(initialState, { part: "root" });\nconst initial = createColorPickerRenderProjection(initialState);\nconst content = Astro.slots.has("default") ? await Astro.slots.render("default", [initial]) : "";\nconst mergedStyle = mergeColorPickerInitialStyles(style, rootInitial);\n---\n\n<div {...rest} {...rootInitial.attributes} style={mergedStyle} data-sw-color-picker>\n <Fragment set:html={content} />\n</div>\n\n<script>\n import { createColorPicker } from "@starwind-ui/runtime/color-picker";\n import {\n registerAstroControllerLifecycle,\n trackAstroController,\n } from "../internal/controller-lifecycle";\n\n const getInitCandidates = (event: Event | undefined, selector: string): HTMLElement[] => {\n const initRoot =\n event?.type === "starwind:init" && event instanceof CustomEvent\n ? event.detail?.root\n : undefined;\n const scopedRoot: Document | DocumentFragment | Element = isQueryableRoot(initRoot)\n ? initRoot\n : document;\n const candidates = Array.from(scopedRoot.querySelectorAll<HTMLElement>(selector));\n\n if (scopedRoot instanceof Element && scopedRoot.matches(selector)) {\n candidates.unshift(scopedRoot as HTMLElement);\n }\n\n return candidates;\n };\n\n const isQueryableRoot = (value: unknown): value is Document | DocumentFragment | Element =>\n value instanceof Document || value instanceof DocumentFragment || value instanceof Element;\n\n const setupColorPickers = (event?: Event) => {\n getInitCandidates(event, "[data-sw-color-picker]").forEach((root) =>\n trackAstroController("ColorPickerRoot", root, createColorPicker(root)),\n );\n };\n\n registerAstroControllerLifecycle("ColorPickerRoot", setupColorPickers);\n</script>\n',
|
|
15917
|
+
sourceHash: "sha256:96107e83f5d82695413028f1a403fb3325ff91f87e2bdda272c6a2fb56a8aba7",
|
|
15918
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerRoot.astro"
|
|
15919
|
+
},
|
|
15920
|
+
{
|
|
15921
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerSwatch.astro",
|
|
15922
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type {\n ColorPickerInitialPartProjection,\n ColorPickerValue,\n} from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"button"> {\n initial?: ColorPickerInitialPartProjection;\n swatchValue: ColorPickerValue;\n swatchDisabled?: boolean;\n}\nconst {\n initial: suppliedInitial,\n swatchValue,\n swatchDisabled = false,\n style,\n disabled,\n ...rest\n} = Astro.props;\nconst initial = assertColorPickerInitialPart("swatch", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<button\n {...rest}\n type={initial ? undefined : "button"}\n data-value={initial ? undefined : swatchValue === null ? undefined : String(swatchValue)}\n data-disabled={initial ? undefined : swatchDisabled ? "" : undefined}\n {...initial?.attributes}\n disabled={initial?.properties.disabled ?? disabled ?? swatchDisabled}\n style={mergedStyle}\n data-sw-color-picker-swatch\n>\n <slot />\n</button>\n',
|
|
15923
|
+
sourceHash: "sha256:cb59f549a12f0bda237d267a84d578e21364daef519b68f44f260fef1f8d6efb",
|
|
15924
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerSwatch.astro"
|
|
15925
|
+
},
|
|
15926
|
+
{
|
|
15927
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerSwatchGroup.astro",
|
|
15928
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"div"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("swatchGroup", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<div {...rest} {...initial?.attributes} style={mergedStyle} data-sw-color-picker-swatch-group>\n <slot />\n</div>\n',
|
|
15929
|
+
sourceHash: "sha256:5e4361fbf4bd5101d1980bf4d1f256eb2698c0cb00259dfc6f3d03241c3ecbbd",
|
|
15930
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerSwatchGroup.astro"
|
|
15931
|
+
},
|
|
15932
|
+
{
|
|
15933
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerTransparencyGrid.astro",
|
|
15934
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"span"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("transparencyGrid", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<span {...rest} {...initial?.attributes} style={mergedStyle} data-sw-color-picker-transparency-grid>\n <slot />\n</span>\n',
|
|
15935
|
+
sourceHash: "sha256:728ed52e2856935c9237ecf49ea6d25ac08b487478f71580b0fbb60972b16e1c",
|
|
15936
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerTransparencyGrid.astro"
|
|
15937
|
+
},
|
|
15938
|
+
{
|
|
15939
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerValueInput.astro",
|
|
15940
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"input"> {\n initial?: ColorPickerInitialPartProjection;\n\n readOnly?: boolean;\n}\nconst { initial: suppliedInitial, style, value, disabled, readOnly, hidden, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("valueInput", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<input\n {...rest}\n {...initial?.attributes}\n value={initial?.properties.value ?? value}\n disabled={initial?.properties.disabled ?? disabled}\n readonly={initial?.properties.readOnly ?? readOnly}\n hidden={initial?.properties.hidden ?? hidden ?? false}\n style={mergedStyle}\n data-sw-color-picker-value-input\n/>\n',
|
|
15941
|
+
sourceHash: "sha256:15c6a27d4cedcb4575764b93c2be10d3c5748d22a6359efff0b11d8b164cfec7",
|
|
15942
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerValueInput.astro"
|
|
15943
|
+
},
|
|
15944
|
+
{
|
|
15945
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerValueSwatch.astro",
|
|
15946
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"span"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("valueSwatch", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<span {...rest} {...initial?.attributes} style={mergedStyle} data-sw-color-picker-value-swatch>\n <slot />\n</span>\n',
|
|
15947
|
+
sourceHash: "sha256:5b662c0aa87703f6ce2adb97e363b7d8a990ef0830f80d896944eb75d750fe64",
|
|
15948
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerValueSwatch.astro"
|
|
15949
|
+
},
|
|
15950
|
+
{
|
|
15951
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerValueText.astro",
|
|
15952
|
+
content: '---\n/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\nimport type { HTMLAttributes } from "astro/types";\nimport type { ColorPickerInitialPartProjection } from "@starwind-ui/runtime/color-picker";\nimport {\n assertColorPickerInitialPart,\n mergeColorPickerInitialStyles,\n} from "./ColorPickerRenderProjection";\n\ninterface Props extends HTMLAttributes<"span"> {\n initial?: ColorPickerInitialPartProjection;\n}\nconst { initial: suppliedInitial, style, ...rest } = Astro.props;\nconst initial = assertColorPickerInitialPart("valueText", suppliedInitial);\nconst mergedStyle = mergeColorPickerInitialStyles(style, initial);\n---\n\n<span {...rest} {...initial?.attributes} style={mergedStyle} data-sw-color-picker-value-text>\n <slot>{initial?.text}</slot>\n</span>\n',
|
|
15953
|
+
sourceHash: "sha256:7ad0e80be15f1041071d4b827ef694e72333f9ba09a292c2bd54d1d9482c8ac5",
|
|
15954
|
+
sourcePath: "packages/astro/src/color-picker/ColorPickerValueText.astro"
|
|
15955
|
+
},
|
|
15956
|
+
{
|
|
15957
|
+
path: "src/components/starwind-primitives/color-picker/index.ts",
|
|
15958
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport ColorPickerRoot from "./ColorPickerRoot.astro";\nimport ColorPickerLabel from "./ColorPickerLabel.astro";\nimport ColorPickerControl from "./ColorPickerControl.astro";\nimport ColorPickerValueInput from "./ColorPickerValueInput.astro";\nimport ColorPickerValueSwatch from "./ColorPickerValueSwatch.astro";\nimport ColorPickerValueText from "./ColorPickerValueText.astro";\nimport ColorPickerArea from "./ColorPickerArea.astro";\nimport ColorPickerAreaBackground from "./ColorPickerAreaBackground.astro";\nimport ColorPickerAreaThumb from "./ColorPickerAreaThumb.astro";\nimport ColorPickerAreaInput from "./ColorPickerAreaInput.astro";\nimport ColorPickerChannelSlider from "./ColorPickerChannelSlider.astro";\nimport ColorPickerChannelSliderTrack from "./ColorPickerChannelSliderTrack.astro";\nimport ColorPickerChannelSliderThumb from "./ColorPickerChannelSliderThumb.astro";\nimport ColorPickerChannelSliderInput from "./ColorPickerChannelSliderInput.astro";\nimport ColorPickerChannelInput from "./ColorPickerChannelInput.astro";\nimport ColorPickerFormatSelect from "./ColorPickerFormatSelect.astro";\nimport ColorPickerFormatControl from "./ColorPickerFormatControl.astro";\nimport ColorPickerTransparencyGrid from "./ColorPickerTransparencyGrid.astro";\nimport ColorPickerSwatchGroup from "./ColorPickerSwatchGroup.astro";\nimport ColorPickerSwatch from "./ColorPickerSwatch.astro";\nimport ColorPickerEyeDropperTrigger from "./ColorPickerEyeDropperTrigger.astro";\nimport ColorPickerClear from "./ColorPickerClear.astro";\nimport ColorPickerHiddenInput from "./ColorPickerHiddenInput.astro";\n\nconst ColorPicker = {\n Root: ColorPickerRoot,\n Label: ColorPickerLabel,\n Control: ColorPickerControl,\n ValueInput: ColorPickerValueInput,\n ValueSwatch: ColorPickerValueSwatch,\n ValueText: ColorPickerValueText,\n Area: ColorPickerArea,\n AreaBackground: ColorPickerAreaBackground,\n AreaThumb: ColorPickerAreaThumb,\n AreaInput: ColorPickerAreaInput,\n ChannelSlider: ColorPickerChannelSlider,\n ChannelSliderTrack: ColorPickerChannelSliderTrack,\n ChannelSliderThumb: ColorPickerChannelSliderThumb,\n ChannelSliderInput: ColorPickerChannelSliderInput,\n ChannelInput: ColorPickerChannelInput,\n FormatSelect: ColorPickerFormatSelect,\n FormatControl: ColorPickerFormatControl,\n TransparencyGrid: ColorPickerTransparencyGrid,\n SwatchGroup: ColorPickerSwatchGroup,\n Swatch: ColorPickerSwatch,\n EyeDropperTrigger: ColorPickerEyeDropperTrigger,\n Clear: ColorPickerClear,\n HiddenInput: ColorPickerHiddenInput,\n};\n\nexport {\n ColorPicker,\n ColorPickerRoot,\n ColorPickerLabel,\n ColorPickerControl,\n ColorPickerValueInput,\n ColorPickerValueSwatch,\n ColorPickerValueText,\n ColorPickerArea,\n ColorPickerAreaBackground,\n ColorPickerAreaThumb,\n ColorPickerAreaInput,\n ColorPickerChannelSlider,\n ColorPickerChannelSliderTrack,\n ColorPickerChannelSliderThumb,\n ColorPickerChannelSliderInput,\n ColorPickerChannelInput,\n ColorPickerFormatSelect,\n ColorPickerFormatControl,\n ColorPickerTransparencyGrid,\n ColorPickerSwatchGroup,\n ColorPickerSwatch,\n ColorPickerEyeDropperTrigger,\n ColorPickerClear,\n ColorPickerHiddenInput,\n};\n\nexport default ColorPicker;\n\nexport type {\n ColorPickerAreaProjection,\n ColorPickerChannelSliderProjection,\n ColorPickerInitialProps,\n ColorPickerRenderProjection,\n} from "./ColorPickerRenderProjection";\nexport {\n createColorPickerInitialState,\n parseColor,\n projectColorPickerInitialPart,\n} from "@starwind-ui/runtime/color-picker";\nexport type {\n ColorPickerChannel,\n ColorPickerColor,\n ColorPickerDirection,\n ColorPickerFormat,\n ColorPickerFormatChangeDetails,\n ColorPickerHsbChannelUpdates,\n ColorPickerHsbChannels,\n ColorPickerHslChannelUpdates,\n ColorPickerHslChannels,\n ColorPickerInstance,\n ColorPickerInitialAxis,\n ColorPickerInitialChannel,\n ColorPickerInitialDirection,\n ColorPickerInitialOrientation,\n ColorPickerInitialPartName,\n ColorPickerInitialPartProjection,\n ColorPickerInitialPartRequest,\n ColorPickerInitialState,\n ColorPickerInitialStateOptions,\n ColorPickerInitialValue,\n ColorPickerOptions,\n ColorPickerRgbChannelUpdates,\n ColorPickerRgbChannels,\n ColorPickerSetOptions,\n ColorPickerSetValueOptions,\n ColorPickerStringFormat,\n ColorPickerValue,\n ColorPickerValueChangeDetails,\n ColorPickerValueChangeReason,\n ColorPickerValueCommitDetails,\n} from "@starwind-ui/runtime/color-picker";\n',
|
|
15959
|
+
sourceHash: "sha256:76e9681916afa443711e9e42c685658a483816d11dd205c80a550781cce1b8c8",
|
|
15960
|
+
sourcePath: "packages/astro/src/color-picker/index.ts"
|
|
15961
|
+
},
|
|
15962
|
+
{
|
|
15963
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
15964
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
15965
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
15966
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
15967
|
+
}
|
|
15968
|
+
],
|
|
15969
|
+
packageRequirements: [
|
|
15970
|
+
{
|
|
15971
|
+
name: "@starwind-ui/runtime",
|
|
15972
|
+
range: "^0.1.0-beta.3"
|
|
15252
15973
|
},
|
|
15253
15974
|
{
|
|
15254
15975
|
name: "astro",
|
|
@@ -15261,6 +15982,12 @@ if (!src && !image) {
|
|
|
15261
15982
|
framework: "astro",
|
|
15262
15983
|
version: "0.1.0",
|
|
15263
15984
|
files: [
|
|
15985
|
+
{
|
|
15986
|
+
path: "src/components/starwind-primitives/internal/controller-lifecycle.ts",
|
|
15987
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\ntype AstroController = {\n destroy(): void;\n};\n\ntype AstroControllerSetup = (event?: Event) => void;\n\ntype AstroControllerLifecycle = {\n controllers: WeakMap<HTMLElement, AstroController>;\n destroy?: () => void;\n registered: boolean;\n roots: Set<HTMLElement>;\n setup: AstroControllerSetup;\n};\n\nconst lifecycles = new Map<string, AstroControllerLifecycle>();\n\nexport function registerAstroControllerLifecycle(\n key: string,\n setup: AstroControllerSetup,\n destroy?: () => void,\n): void {\n const lifecycle = getLifecycle(key);\n lifecycle.setup = setup;\n lifecycle.destroy = destroy;\n\n if (!lifecycle.registered) {\n lifecycle.registered = true;\n document.addEventListener("astro:after-swap", () => lifecycle.setup());\n document.addEventListener("starwind:init", (event) => lifecycle.setup(event));\n document.addEventListener("astro:before-swap", () => destroyLifecycle(lifecycle));\n }\n\n lifecycle.setup();\n}\n\nexport function trackAstroController<T extends AstroController>(\n key: string,\n root: HTMLElement,\n controller: T,\n): T {\n const lifecycle = getLifecycle(key);\n const previous = lifecycle.controllers.get(root);\n\n if (previous && previous !== controller) {\n previous.destroy();\n }\n\n lifecycle.controllers.set(root, controller);\n lifecycle.roots.add(root);\n return controller;\n}\n\nfunction getLifecycle(key: string): AstroControllerLifecycle {\n const existing = lifecycles.get(key);\n if (existing) return existing;\n\n const lifecycle: AstroControllerLifecycle = {\n controllers: new WeakMap(),\n registered: false,\n roots: new Set(),\n setup: () => {},\n };\n lifecycles.set(key, lifecycle);\n return lifecycle;\n}\n\nfunction destroyLifecycle(lifecycle: AstroControllerLifecycle): void {\n if (lifecycle.destroy) {\n lifecycle.destroy();\n }\n\n lifecycle.roots.forEach((root) => {\n lifecycle.controllers.get(root)?.destroy();\n lifecycle.controllers.delete(root);\n });\n lifecycle.roots.clear();\n}\n',
|
|
15988
|
+
sourceHash: "sha256:690d4aa4512228d3d6bb9a0a5357a90c63e6fe9471849494335d45b6236f9f1b",
|
|
15989
|
+
sourcePath: "packages/astro/src/internal/controller-lifecycle.ts"
|
|
15990
|
+
},
|
|
15264
15991
|
{
|
|
15265
15992
|
path: "src/components/starwind-primitives/toast/ToastAction.astro",
|
|
15266
15993
|
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<"button">;\n\nconst { ...rest } = Astro.props;\n---\n\n<button type="button" data-sw-toast-action {...rest}>\n <slot />\n</button>\n',
|
|
@@ -15325,7 +16052,7 @@ if (!src && !image) {
|
|
|
15325
16052
|
packageRequirements: [
|
|
15326
16053
|
{
|
|
15327
16054
|
name: "@starwind-ui/runtime",
|
|
15328
|
-
range: "^0.1.0-beta.
|
|
16055
|
+
range: "^0.1.0-beta.3"
|
|
15329
16056
|
},
|
|
15330
16057
|
{
|
|
15331
16058
|
name: "astro",
|
|
@@ -15336,12 +16063,12 @@ if (!src && !image) {
|
|
|
15336
16063
|
{
|
|
15337
16064
|
component: "button",
|
|
15338
16065
|
framework: "react",
|
|
15339
|
-
version: "0.1.
|
|
16066
|
+
version: "0.1.1",
|
|
15340
16067
|
files: [
|
|
15341
16068
|
{
|
|
15342
16069
|
path: "src/components/starwind-primitives/button/ButtonRoot.tsx",
|
|
15343
|
-
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport { createButton } from "@starwind-ui/runtime/button";\nimport * as React from "react";\nimport { setRef } from "../internal/compose-refs";\nimport { useIsomorphicLayoutEffect } from "../internal/use-isomorphic-layout-effect";\n\nexport type ButtonRootProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n disabled?: boolean;\n focusableWhenDisabled?: boolean;\n type?: React.ButtonHTMLAttributes<HTMLButtonElement>["type"];\n};\n\nconst ButtonRoot = React.forwardRef<HTMLButtonElement, ButtonRootProps>(function ButtonRoot(\n { disabled = false, focusableWhenDisabled = false, type, ...props },\n forwardedRef,\n) {\n const rootRef = React.useRef<HTMLButtonElement>(null);\n\n const composedRef = React.useCallback(\n (node: HTMLButtonElement | null) => {\n rootRef.current = node;\n return setRef(forwardedRef, node);\n },\n [forwardedRef],\n );\n\n useIsomorphicLayoutEffect(() => {\n const root = rootRef.current;\n if (!root) return;\n\n const instance = createButton(root, {\n disabled,\n
|
|
15344
|
-
sourceHash: "sha256:
|
|
16070
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport { createButton } from "@starwind-ui/runtime/button";\nimport * as React from "react";\nimport { setRef } from "../internal/compose-refs";\nimport { useIsomorphicLayoutEffect } from "../internal/use-isomorphic-layout-effect";\n\nexport type ButtonRootProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n disabled?: boolean;\n focusableWhenDisabled?: boolean;\n type?: React.ButtonHTMLAttributes<HTMLButtonElement>["type"];\n};\n\nconst ButtonRoot = React.forwardRef<HTMLButtonElement, ButtonRootProps>(function ButtonRoot(\n { disabled = false, focusableWhenDisabled = false, type, ...props },\n forwardedRef,\n) {\n const rootRef = React.useRef<HTMLButtonElement>(null);\n const instanceRef = React.useRef<ReturnType<typeof createButton> | null>(null);\n const disabledRef = React.useRef(disabled);\n disabledRef.current = disabled;\n\n const composedRef = React.useCallback(\n (node: HTMLButtonElement | null) => {\n rootRef.current = node;\n return setRef(forwardedRef, node);\n },\n [forwardedRef],\n );\n\n useIsomorphicLayoutEffect(() => {\n if (!focusableWhenDisabled) {\n instanceRef.current?.destroy();\n instanceRef.current = null;\n return;\n }\n\n const root = rootRef.current;\n if (!root) return;\n\n const instance = createButton(root, {\n disabled: disabledRef.current,\n });\n instanceRef.current = instance;\n\n return () => {\n if (instanceRef.current === instance) {\n instanceRef.current = null;\n }\n instance.destroy();\n };\n }, [focusableWhenDisabled]);\n\n useIsomorphicLayoutEffect(() => {\n instanceRef.current?.setDisabled(disabled);\n }, [disabled]);\n\n return (\n <button\n data-focusable-when-disabled={focusableWhenDisabled ? "true" : undefined}\n aria-disabled={disabled && focusableWhenDisabled ? "true" : undefined}\n data-disabled={disabled ? "" : undefined}\n disabled={disabled && !focusableWhenDisabled}\n ref={composedRef}\n type={type ?? "button"}\n {...props}\n data-sw-button\n />\n );\n});\n\nButtonRoot.displayName = "Button.Root";\n\nexport default ButtonRoot;\n',
|
|
16071
|
+
sourceHash: "sha256:59d410043fac11cbdacbd52b844bb4bd5bbaf5bfc9174b21c9ff67fa6daa14da",
|
|
15345
16072
|
sourcePath: "packages/react/src/button/ButtonRoot.tsx"
|
|
15346
16073
|
},
|
|
15347
16074
|
{
|
|
@@ -15366,7 +16093,7 @@ if (!src && !image) {
|
|
|
15366
16093
|
packageRequirements: [
|
|
15367
16094
|
{
|
|
15368
16095
|
name: "@starwind-ui/runtime",
|
|
15369
|
-
range: "^0.1.0-beta.
|
|
16096
|
+
range: "^0.1.0-beta.3"
|
|
15370
16097
|
},
|
|
15371
16098
|
{
|
|
15372
16099
|
name: "react",
|
|
@@ -15441,7 +16168,7 @@ if (!src && !image) {
|
|
|
15441
16168
|
packageRequirements: [
|
|
15442
16169
|
{
|
|
15443
16170
|
name: "@starwind-ui/runtime",
|
|
15444
|
-
range: "^0.1.0-beta.
|
|
16171
|
+
range: "^0.1.0-beta.3"
|
|
15445
16172
|
},
|
|
15446
16173
|
{
|
|
15447
16174
|
name: "react",
|
|
@@ -15486,7 +16213,7 @@ if (!src && !image) {
|
|
|
15486
16213
|
packageRequirements: [
|
|
15487
16214
|
{
|
|
15488
16215
|
name: "@starwind-ui/runtime",
|
|
15489
|
-
range: "^0.1.0-beta.
|
|
16216
|
+
range: "^0.1.0-beta.3"
|
|
15490
16217
|
},
|
|
15491
16218
|
{
|
|
15492
16219
|
name: "react",
|
|
@@ -15573,7 +16300,7 @@ if (!src && !image) {
|
|
|
15573
16300
|
packageRequirements: [
|
|
15574
16301
|
{
|
|
15575
16302
|
name: "@starwind-ui/runtime",
|
|
15576
|
-
range: "^0.1.0-beta.
|
|
16303
|
+
range: "^0.1.0-beta.3"
|
|
15577
16304
|
},
|
|
15578
16305
|
{
|
|
15579
16306
|
name: "react",
|
|
@@ -15624,7 +16351,7 @@ if (!src && !image) {
|
|
|
15624
16351
|
packageRequirements: [
|
|
15625
16352
|
{
|
|
15626
16353
|
name: "@starwind-ui/runtime",
|
|
15627
|
-
range: "^0.1.0-beta.
|
|
16354
|
+
range: "^0.1.0-beta.3"
|
|
15628
16355
|
},
|
|
15629
16356
|
{
|
|
15630
16357
|
name: "react",
|
|
@@ -15675,7 +16402,7 @@ if (!src && !image) {
|
|
|
15675
16402
|
packageRequirements: [
|
|
15676
16403
|
{
|
|
15677
16404
|
name: "@starwind-ui/runtime",
|
|
15678
|
-
range: "^0.1.0-beta.
|
|
16405
|
+
range: "^0.1.0-beta.3"
|
|
15679
16406
|
},
|
|
15680
16407
|
{
|
|
15681
16408
|
name: "react",
|
|
@@ -15720,7 +16447,7 @@ if (!src && !image) {
|
|
|
15720
16447
|
packageRequirements: [
|
|
15721
16448
|
{
|
|
15722
16449
|
name: "@starwind-ui/runtime",
|
|
15723
|
-
range: "^0.1.0-beta.
|
|
16450
|
+
range: "^0.1.0-beta.3"
|
|
15724
16451
|
},
|
|
15725
16452
|
{
|
|
15726
16453
|
name: "react",
|
|
@@ -15771,7 +16498,7 @@ if (!src && !image) {
|
|
|
15771
16498
|
packageRequirements: [
|
|
15772
16499
|
{
|
|
15773
16500
|
name: "@starwind-ui/runtime",
|
|
15774
|
-
range: "^0.1.0-beta.
|
|
16501
|
+
range: "^0.1.0-beta.3"
|
|
15775
16502
|
},
|
|
15776
16503
|
{
|
|
15777
16504
|
name: "react",
|
|
@@ -15828,7 +16555,7 @@ if (!src && !image) {
|
|
|
15828
16555
|
packageRequirements: [
|
|
15829
16556
|
{
|
|
15830
16557
|
name: "@starwind-ui/runtime",
|
|
15831
|
-
range: "^0.1.0-beta.
|
|
16558
|
+
range: "^0.1.0-beta.3"
|
|
15832
16559
|
},
|
|
15833
16560
|
{
|
|
15834
16561
|
name: "react",
|
|
@@ -15885,7 +16612,7 @@ if (!src && !image) {
|
|
|
15885
16612
|
packageRequirements: [
|
|
15886
16613
|
{
|
|
15887
16614
|
name: "@starwind-ui/runtime",
|
|
15888
|
-
range: "^0.1.0-beta.
|
|
16615
|
+
range: "^0.1.0-beta.3"
|
|
15889
16616
|
},
|
|
15890
16617
|
{
|
|
15891
16618
|
name: "react",
|
|
@@ -15960,7 +16687,7 @@ if (!src && !image) {
|
|
|
15960
16687
|
packageRequirements: [
|
|
15961
16688
|
{
|
|
15962
16689
|
name: "@starwind-ui/runtime",
|
|
15963
|
-
range: "^0.1.0-beta.
|
|
16690
|
+
range: "^0.1.0-beta.3"
|
|
15964
16691
|
},
|
|
15965
16692
|
{
|
|
15966
16693
|
name: "react",
|
|
@@ -16017,7 +16744,7 @@ if (!src && !image) {
|
|
|
16017
16744
|
packageRequirements: [
|
|
16018
16745
|
{
|
|
16019
16746
|
name: "@starwind-ui/runtime",
|
|
16020
|
-
range: "^0.1.0-beta.
|
|
16747
|
+
range: "^0.1.0-beta.3"
|
|
16021
16748
|
},
|
|
16022
16749
|
{
|
|
16023
16750
|
name: "react",
|
|
@@ -16062,7 +16789,7 @@ if (!src && !image) {
|
|
|
16062
16789
|
packageRequirements: [
|
|
16063
16790
|
{
|
|
16064
16791
|
name: "@starwind-ui/runtime",
|
|
16065
|
-
range: "^0.1.0-beta.
|
|
16792
|
+
range: "^0.1.0-beta.3"
|
|
16066
16793
|
},
|
|
16067
16794
|
{
|
|
16068
16795
|
name: "react",
|
|
@@ -16113,7 +16840,7 @@ if (!src && !image) {
|
|
|
16113
16840
|
packageRequirements: [
|
|
16114
16841
|
{
|
|
16115
16842
|
name: "@starwind-ui/runtime",
|
|
16116
|
-
range: "^0.1.0-beta.
|
|
16843
|
+
range: "^0.1.0-beta.3"
|
|
16117
16844
|
},
|
|
16118
16845
|
{
|
|
16119
16846
|
name: "react",
|
|
@@ -16164,7 +16891,7 @@ if (!src && !image) {
|
|
|
16164
16891
|
packageRequirements: [
|
|
16165
16892
|
{
|
|
16166
16893
|
name: "@starwind-ui/runtime",
|
|
16167
|
-
range: "^0.1.0-beta.
|
|
16894
|
+
range: "^0.1.0-beta.3"
|
|
16168
16895
|
},
|
|
16169
16896
|
{
|
|
16170
16897
|
name: "react",
|
|
@@ -16239,7 +16966,7 @@ if (!src && !image) {
|
|
|
16239
16966
|
packageRequirements: [
|
|
16240
16967
|
{
|
|
16241
16968
|
name: "@starwind-ui/runtime",
|
|
16242
|
-
range: "^0.1.0-beta.
|
|
16969
|
+
range: "^0.1.0-beta.3"
|
|
16243
16970
|
},
|
|
16244
16971
|
{
|
|
16245
16972
|
name: "react",
|
|
@@ -16254,7 +16981,7 @@ if (!src && !image) {
|
|
|
16254
16981
|
{
|
|
16255
16982
|
component: "accordion",
|
|
16256
16983
|
framework: "react",
|
|
16257
|
-
version: "0.1.
|
|
16984
|
+
version: "0.1.1",
|
|
16258
16985
|
files: [
|
|
16259
16986
|
{
|
|
16260
16987
|
path: "src/components/starwind-primitives/accordion/AccordionHeader.tsx",
|
|
@@ -16276,8 +17003,8 @@ if (!src && !image) {
|
|
|
16276
17003
|
},
|
|
16277
17004
|
{
|
|
16278
17005
|
path: "src/components/starwind-primitives/accordion/AccordionRoot.tsx",
|
|
16279
|
-
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport {\n type AccordionValue,\n type AccordionValueChangeDetails,\n createAccordion,\n} from "@starwind-ui/runtime/accordion";\nimport * as React from "react";\nimport { setRef } from "../internal/compose-refs";\nimport { useIsomorphicLayoutEffect } from "../internal/use-isomorphic-layout-effect";\n\nexport type AccordionRootProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n "defaultValue" | "onChange"\n> & {\n type?: "single" | "multiple";\n defaultValue?: AccordionValue;\n value?: AccordionValue;\n collapsible?: boolean;\n onValueChange?: (details: AccordionValueChangeDetails) => void;\n};\n\nconst AccordionRoot = React.forwardRef<HTMLDivElement, AccordionRootProps>(function AccordionRoot(\n { type = "single", defaultValue, value, collapsible =
|
|
16280
|
-
sourceHash: "sha256:
|
|
17006
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport {\n type AccordionValue,\n type AccordionValueChangeDetails,\n createAccordion,\n} from "@starwind-ui/runtime/accordion";\nimport * as React from "react";\nimport { setRef } from "../internal/compose-refs";\nimport { useIsomorphicLayoutEffect } from "../internal/use-isomorphic-layout-effect";\n\nexport type AccordionRootProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n "defaultValue" | "onChange"\n> & {\n type?: "single" | "multiple";\n defaultValue?: AccordionValue;\n value?: AccordionValue;\n collapsible?: boolean;\n onValueChange?: (details: AccordionValueChangeDetails) => void;\n};\n\nconst AccordionRoot = React.forwardRef<HTMLDivElement, AccordionRootProps>(function AccordionRoot(\n { type = "single", defaultValue, value, collapsible = true, onValueChange, ...props },\n forwardedRef,\n) {\n const rootRef = React.useRef<HTMLDivElement>(null);\n const instanceRef = React.useRef<ReturnType<typeof createAccordion> | undefined>(undefined);\n const onValueChangeRef = React.useRef(onValueChange);\n const valueRef = React.useRef(value);\n const defaultValueRef = React.useRef(defaultValue);\n const uncontrolledValueRef = React.useRef<AccordionValue | undefined>(defaultValueRef.current);\n\n useIsomorphicLayoutEffect(() => {\n onValueChangeRef.current = onValueChange;\n }, [onValueChange]);\n\n useIsomorphicLayoutEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n const composedRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n rootRef.current = node;\n return setRef(forwardedRef, node);\n },\n [forwardedRef],\n );\n\n useIsomorphicLayoutEffect(() => {\n const root = rootRef.current;\n if (!root) return;\n\n const instance = createAccordion(root, {\n type,\n defaultValue: uncontrolledValueRef.current,\n collapsible,\n ...(valueRef.current !== undefined ? { value: valueRef.current } : {}),\n });\n instanceRef.current = instance;\n const unsubscribe = instance.subscribe("valueChange", (details) => {\n onValueChangeRef.current?.(details);\n if (valueRef.current === undefined) {\n uncontrolledValueRef.current = details.value;\n }\n });\n\n return () => {\n unsubscribe();\n instance.destroy();\n if (instanceRef.current === instance) {\n instanceRef.current = undefined;\n }\n };\n }, [type, collapsible]);\n\n useIsomorphicLayoutEffect(() => {\n if (value === undefined) return;\n const instance = instanceRef.current;\n if (!instance) return;\n if (isAccordionValueEqual(instance.getValue(), value)) return;\n\n instance.setValue(value, { emit: false });\n }, [value]);\n\n const defaultValueAttribute = Array.isArray(defaultValueRef.current)\n ? JSON.stringify(defaultValueRef.current)\n : defaultValueRef.current;\n\n return (\n <div\n data-sw-accordion\n data-type={type}\n data-default-value={defaultValueAttribute}\n data-collapsible={String(collapsible)}\n data-state="closed"\n ref={composedRef}\n {...props}\n />\n );\n});\n\nAccordionRoot.displayName = "Accordion.Root";\n\nexport default AccordionRoot;\n\nfunction isAccordionValueEqual(left: AccordionValue, right: AccordionValue): boolean {\n if (Array.isArray(left) || Array.isArray(right)) {\n return JSON.stringify(left) === JSON.stringify(right);\n }\n\n return left === right;\n}\n',
|
|
17007
|
+
sourceHash: "sha256:17a4321eac074ca45aa0de4b98439ba1080634fe9623bad7032c52d540ffcadf",
|
|
16281
17008
|
sourcePath: "packages/react/src/accordion/AccordionRoot.tsx"
|
|
16282
17009
|
},
|
|
16283
17010
|
{
|
|
@@ -16308,7 +17035,7 @@ if (!src && !image) {
|
|
|
16308
17035
|
packageRequirements: [
|
|
16309
17036
|
{
|
|
16310
17037
|
name: "@starwind-ui/runtime",
|
|
16311
|
-
range: "^0.1.0-beta.
|
|
17038
|
+
range: "^0.1.0-beta.3"
|
|
16312
17039
|
},
|
|
16313
17040
|
{
|
|
16314
17041
|
name: "react",
|
|
@@ -16365,7 +17092,7 @@ if (!src && !image) {
|
|
|
16365
17092
|
packageRequirements: [
|
|
16366
17093
|
{
|
|
16367
17094
|
name: "@starwind-ui/runtime",
|
|
16368
|
-
range: "^0.1.0-beta.
|
|
17095
|
+
range: "^0.1.0-beta.3"
|
|
16369
17096
|
},
|
|
16370
17097
|
{
|
|
16371
17098
|
name: "react",
|
|
@@ -16434,7 +17161,7 @@ if (!src && !image) {
|
|
|
16434
17161
|
packageRequirements: [
|
|
16435
17162
|
{
|
|
16436
17163
|
name: "@starwind-ui/runtime",
|
|
16437
|
-
range: "^0.1.0-beta.
|
|
17164
|
+
range: "^0.1.0-beta.3"
|
|
16438
17165
|
},
|
|
16439
17166
|
{
|
|
16440
17167
|
name: "react",
|
|
@@ -16509,7 +17236,7 @@ if (!src && !image) {
|
|
|
16509
17236
|
packageRequirements: [
|
|
16510
17237
|
{
|
|
16511
17238
|
name: "@starwind-ui/runtime",
|
|
16512
|
-
range: "^0.1.0-beta.
|
|
17239
|
+
range: "^0.1.0-beta.3"
|
|
16513
17240
|
},
|
|
16514
17241
|
{
|
|
16515
17242
|
name: "react",
|
|
@@ -16572,7 +17299,7 @@ if (!src && !image) {
|
|
|
16572
17299
|
packageRequirements: [
|
|
16573
17300
|
{
|
|
16574
17301
|
name: "@starwind-ui/runtime",
|
|
16575
|
-
range: "^0.1.0-beta.
|
|
17302
|
+
range: "^0.1.0-beta.3"
|
|
16576
17303
|
},
|
|
16577
17304
|
{
|
|
16578
17305
|
name: "react",
|
|
@@ -16647,7 +17374,7 @@ if (!src && !image) {
|
|
|
16647
17374
|
packageRequirements: [
|
|
16648
17375
|
{
|
|
16649
17376
|
name: "@starwind-ui/runtime",
|
|
16650
|
-
range: "^0.1.0-beta.
|
|
17377
|
+
range: "^0.1.0-beta.3"
|
|
16651
17378
|
},
|
|
16652
17379
|
{
|
|
16653
17380
|
name: "react",
|
|
@@ -16752,7 +17479,7 @@ if (!src && !image) {
|
|
|
16752
17479
|
packageRequirements: [
|
|
16753
17480
|
{
|
|
16754
17481
|
name: "@starwind-ui/runtime",
|
|
16755
|
-
range: "^0.1.0-beta.
|
|
17482
|
+
range: "^0.1.0-beta.3"
|
|
16756
17483
|
},
|
|
16757
17484
|
{
|
|
16758
17485
|
name: "react",
|
|
@@ -16839,7 +17566,7 @@ if (!src && !image) {
|
|
|
16839
17566
|
packageRequirements: [
|
|
16840
17567
|
{
|
|
16841
17568
|
name: "@starwind-ui/runtime",
|
|
16842
|
-
range: "^0.1.0-beta.
|
|
17569
|
+
range: "^0.1.0-beta.3"
|
|
16843
17570
|
},
|
|
16844
17571
|
{
|
|
16845
17572
|
name: "react",
|
|
@@ -16920,7 +17647,7 @@ if (!src && !image) {
|
|
|
16920
17647
|
packageRequirements: [
|
|
16921
17648
|
{
|
|
16922
17649
|
name: "@starwind-ui/runtime",
|
|
16923
|
-
range: "^0.1.0-beta.
|
|
17650
|
+
range: "^0.1.0-beta.3"
|
|
16924
17651
|
},
|
|
16925
17652
|
{
|
|
16926
17653
|
name: "react",
|
|
@@ -17013,7 +17740,7 @@ if (!src && !image) {
|
|
|
17013
17740
|
packageRequirements: [
|
|
17014
17741
|
{
|
|
17015
17742
|
name: "@starwind-ui/runtime",
|
|
17016
|
-
range: "^0.1.0-beta.
|
|
17743
|
+
range: "^0.1.0-beta.3"
|
|
17017
17744
|
},
|
|
17018
17745
|
{
|
|
17019
17746
|
name: "react",
|
|
@@ -17106,7 +17833,7 @@ if (!src && !image) {
|
|
|
17106
17833
|
packageRequirements: [
|
|
17107
17834
|
{
|
|
17108
17835
|
name: "@starwind-ui/runtime",
|
|
17109
|
-
range: "^0.1.0-beta.
|
|
17836
|
+
range: "^0.1.0-beta.3"
|
|
17110
17837
|
},
|
|
17111
17838
|
{
|
|
17112
17839
|
name: "react",
|
|
@@ -17175,7 +17902,7 @@ if (!src && !image) {
|
|
|
17175
17902
|
packageRequirements: [
|
|
17176
17903
|
{
|
|
17177
17904
|
name: "@starwind-ui/runtime",
|
|
17178
|
-
range: "^0.1.0-beta.
|
|
17905
|
+
range: "^0.1.0-beta.3"
|
|
17179
17906
|
},
|
|
17180
17907
|
{
|
|
17181
17908
|
name: "react",
|
|
@@ -17328,7 +18055,7 @@ if (!src && !image) {
|
|
|
17328
18055
|
packageRequirements: [
|
|
17329
18056
|
{
|
|
17330
18057
|
name: "@starwind-ui/runtime",
|
|
17331
|
-
range: "^0.1.0-beta.
|
|
18058
|
+
range: "^0.1.0-beta.3"
|
|
17332
18059
|
},
|
|
17333
18060
|
{
|
|
17334
18061
|
name: "react",
|
|
@@ -17439,7 +18166,7 @@ if (!src && !image) {
|
|
|
17439
18166
|
packageRequirements: [
|
|
17440
18167
|
{
|
|
17441
18168
|
name: "@starwind-ui/runtime",
|
|
17442
|
-
range: "^0.1.0-beta.
|
|
18169
|
+
range: "^0.1.0-beta.3"
|
|
17443
18170
|
},
|
|
17444
18171
|
{
|
|
17445
18172
|
name: "react",
|
|
@@ -17592,7 +18319,7 @@ if (!src && !image) {
|
|
|
17592
18319
|
packageRequirements: [
|
|
17593
18320
|
{
|
|
17594
18321
|
name: "@starwind-ui/runtime",
|
|
17595
|
-
range: "^0.1.0-beta.
|
|
18322
|
+
range: "^0.1.0-beta.3"
|
|
17596
18323
|
},
|
|
17597
18324
|
{
|
|
17598
18325
|
name: "react",
|
|
@@ -17745,7 +18472,7 @@ if (!src && !image) {
|
|
|
17745
18472
|
packageRequirements: [
|
|
17746
18473
|
{
|
|
17747
18474
|
name: "@starwind-ui/runtime",
|
|
17748
|
-
range: "^0.1.0-beta.
|
|
18475
|
+
range: "^0.1.0-beta.3"
|
|
17749
18476
|
},
|
|
17750
18477
|
{
|
|
17751
18478
|
name: "react",
|
|
@@ -17820,7 +18547,7 @@ if (!src && !image) {
|
|
|
17820
18547
|
packageRequirements: [
|
|
17821
18548
|
{
|
|
17822
18549
|
name: "@starwind-ui/runtime",
|
|
17823
|
-
range: "^0.1.0-beta.
|
|
18550
|
+
range: "^0.1.0-beta.3"
|
|
17824
18551
|
},
|
|
17825
18552
|
{
|
|
17826
18553
|
name: "react",
|
|
@@ -17985,7 +18712,184 @@ if (!src && !image) {
|
|
|
17985
18712
|
packageRequirements: [
|
|
17986
18713
|
{
|
|
17987
18714
|
name: "@starwind-ui/runtime",
|
|
17988
|
-
range: "^0.1.0-beta.
|
|
18715
|
+
range: "^0.1.0-beta.3"
|
|
18716
|
+
},
|
|
18717
|
+
{
|
|
18718
|
+
name: "react",
|
|
18719
|
+
range: ">=18"
|
|
18720
|
+
},
|
|
18721
|
+
{
|
|
18722
|
+
name: "react-dom",
|
|
18723
|
+
range: ">=18"
|
|
18724
|
+
}
|
|
18725
|
+
]
|
|
18726
|
+
},
|
|
18727
|
+
{
|
|
18728
|
+
component: "color-picker",
|
|
18729
|
+
framework: "react",
|
|
18730
|
+
version: "0.1.0",
|
|
18731
|
+
files: [
|
|
18732
|
+
{
|
|
18733
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerArea.tsx",
|
|
18734
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection, ColorPickerAreaContext } from "./ColorPickerRoot";\nimport type { ColorPickerInitialChannel } from "@starwind-ui/runtime/color-picker";\n\nexport type ColorPickerAreaProps = React.ComponentPropsWithoutRef<"div"> & {\n children?: React.ReactNode;\n xChannel?: ColorPickerInitialChannel;\n yChannel?: ColorPickerInitialChannel;\n xStep?: number;\n yStep?: number;\n};\n\nconst ColorPickerArea = React.forwardRef<HTMLDivElement, ColorPickerAreaProps>(\n function ColorPickerArea(\n { children, xChannel = "saturation", yChannel = "brightness", xStep, yStep, ...props },\n forwardedRef,\n ) {\n const areaContextValue = React.useMemo(\n () => ({ xChannel, yChannel, xStep, yStep }),\n [xChannel, yChannel, xStep, yStep],\n );\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "area", ...areaContextValue },\n {\n ...props,\n "data-sw-color-picker-area": "",\n "data-x-channel": xChannel,\n "data-y-channel": yChannel,\n },\n );\n return (\n <ColorPickerAreaContext.Provider value={areaContextValue}>\n <div {...projectedProps} ref={forwardedRef}>\n {children}\n </div>\n </ColorPickerAreaContext.Provider>\n );\n },\n);\n\nColorPickerArea.displayName = "ColorPicker.Area";\n\nexport default ColorPickerArea;\n',
|
|
18735
|
+
sourceHash: "sha256:280923c4f3381ddc20aa1683220f06c234dd2c350b89b82f98e335bdd172c896",
|
|
18736
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerArea.tsx"
|
|
18737
|
+
},
|
|
18738
|
+
{
|
|
18739
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerAreaBackground.tsx",
|
|
18740
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection, useColorPickerAreaContext } from "./ColorPickerRoot";\n\nexport type ColorPickerAreaBackgroundProps = React.ComponentPropsWithoutRef<"div"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerAreaBackground = React.forwardRef<HTMLDivElement, ColorPickerAreaBackgroundProps>(\n function ColorPickerAreaBackground({ children, ...props }, forwardedRef) {\n const areaContext = useColorPickerAreaContext();\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "areaBackground", ...areaContext },\n { ...props, "data-sw-color-picker-area-background": "" },\n );\n return (\n <div {...projectedProps} ref={forwardedRef}>\n {children}\n </div>\n );\n },\n);\n\nColorPickerAreaBackground.displayName = "ColorPicker.AreaBackground";\n\nexport default ColorPickerAreaBackground;\n',
|
|
18741
|
+
sourceHash: "sha256:4d181ea31cffeacd9964355859bf949ed54aaea6f51cfc4dd1f011e5e77b886c",
|
|
18742
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerAreaBackground.tsx"
|
|
18743
|
+
},
|
|
18744
|
+
{
|
|
18745
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerAreaInput.tsx",
|
|
18746
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection, useColorPickerAreaContext } from "./ColorPickerRoot";\n\nexport type ColorPickerAreaInputProps = React.ComponentPropsWithoutRef<"input"> & {\n axis?: "x" | "y";\n step?: number;\n};\n\nconst ColorPickerAreaInput = React.forwardRef<HTMLInputElement, ColorPickerAreaInputProps>(\n function ColorPickerAreaInput({ axis = "x", step, ...props }, forwardedRef) {\n const areaContext = useColorPickerAreaContext();\n const { props: projectedProps } = useColorPickerPartProjection(\n {\n part: "areaInput",\n ...areaContext,\n axis,\n ...(axis === "x"\n ? { xStep: step ?? areaContext.xStep }\n : { yStep: step ?? areaContext.yStep }),\n },\n {\n ...props,\n "data-sw-color-picker-area-input": "",\n "data-axis": axis,\n "data-step": step ?? (axis === "x" ? areaContext.xStep : areaContext.yStep),\n },\n );\n return <input {...projectedProps} ref={forwardedRef} />;\n },\n);\n\nColorPickerAreaInput.displayName = "ColorPicker.AreaInput";\n\nexport default ColorPickerAreaInput;\n',
|
|
18747
|
+
sourceHash: "sha256:73a6f6a4def2a4b7156edec1a37b1b33d0ccd9bceff98ee7d9e803990cd5ba79",
|
|
18748
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerAreaInput.tsx"
|
|
18749
|
+
},
|
|
18750
|
+
{
|
|
18751
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerAreaThumb.tsx",
|
|
18752
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection, useColorPickerAreaContext } from "./ColorPickerRoot";\n\nexport type ColorPickerAreaThumbProps = React.ComponentPropsWithoutRef<"span"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerAreaThumb = React.forwardRef<HTMLSpanElement, ColorPickerAreaThumbProps>(\n function ColorPickerAreaThumb({ children, ...props }, forwardedRef) {\n const areaContext = useColorPickerAreaContext();\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "areaThumb", ...areaContext },\n { ...props, "data-sw-color-picker-area-thumb": "" },\n );\n return (\n <span {...projectedProps} ref={forwardedRef}>\n {children}\n </span>\n );\n },\n);\n\nColorPickerAreaThumb.displayName = "ColorPicker.AreaThumb";\n\nexport default ColorPickerAreaThumb;\n',
|
|
18753
|
+
sourceHash: "sha256:d6577229f89a7ae04df9d5d7cac40cc40c594871de12edba882219f59e853f4b",
|
|
18754
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerAreaThumb.tsx"
|
|
18755
|
+
},
|
|
18756
|
+
{
|
|
18757
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerChannelInput.tsx",
|
|
18758
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\nimport type { ColorPickerInitialChannel } from "@starwind-ui/runtime/color-picker";\n\nexport type ColorPickerChannelInputProps = React.ComponentPropsWithoutRef<"input"> & {\n channel?: ColorPickerInitialChannel;\n};\n\nconst ColorPickerChannelInput = React.forwardRef<HTMLInputElement, ColorPickerChannelInputProps>(\n function ColorPickerChannelInput({ channel = "hue", ...props }, forwardedRef) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "channelInput", channel },\n { ...props, "data-sw-color-picker-channel-field": "", "data-channel": channel },\n );\n return <input {...projectedProps} ref={forwardedRef} />;\n },\n);\n\nColorPickerChannelInput.displayName = "ColorPicker.ChannelInput";\n\nexport default ColorPickerChannelInput;\n',
|
|
18759
|
+
sourceHash: "sha256:c94a3d1ee2499a09f282493370b5a12df8c86fbba8a35390b0a36aa0b55e50b6",
|
|
18760
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerChannelInput.tsx"
|
|
18761
|
+
},
|
|
18762
|
+
{
|
|
18763
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerChannelSlider.tsx",
|
|
18764
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection, ColorPickerChannelSliderContext } from "./ColorPickerRoot";\nimport type { ColorPickerInitialChannel } from "@starwind-ui/runtime/color-picker";\n\nexport type ColorPickerChannelSliderProps = React.ComponentPropsWithoutRef<"div"> & {\n children?: React.ReactNode;\n channel?: ColorPickerInitialChannel;\n orientation?: "horizontal" | "vertical";\n step?: number;\n};\n\nconst ColorPickerChannelSlider = React.forwardRef<HTMLDivElement, ColorPickerChannelSliderProps>(\n function ColorPickerChannelSlider(\n { children, channel = "hue", orientation = "horizontal", step, ...props },\n forwardedRef,\n ) {\n const sliderContextValue = React.useMemo(\n () => ({ channel, orientation, step }),\n [channel, orientation, step],\n );\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "channelSlider", ...sliderContextValue },\n {\n ...props,\n "data-sw-color-picker-channel-slider": "",\n "data-channel": channel,\n "data-orientation": orientation,\n },\n );\n return (\n <ColorPickerChannelSliderContext.Provider value={sliderContextValue}>\n <div {...projectedProps} ref={forwardedRef}>\n {children}\n </div>\n </ColorPickerChannelSliderContext.Provider>\n );\n },\n);\n\nColorPickerChannelSlider.displayName = "ColorPicker.ChannelSlider";\n\nexport default ColorPickerChannelSlider;\n',
|
|
18765
|
+
sourceHash: "sha256:ed42cb23f5d23e5a82c45681348acd0387308f7b84302dcd11958e465188f744",
|
|
18766
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerChannelSlider.tsx"
|
|
18767
|
+
},
|
|
18768
|
+
{
|
|
18769
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerChannelSliderInput.tsx",
|
|
18770
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport {\n useColorPickerPartProjection,\n useColorPickerChannelSliderContext,\n} from "./ColorPickerRoot";\n\nexport type ColorPickerChannelSliderInputProps = React.ComponentPropsWithoutRef<"input"> & {\n step?: number;\n};\n\nconst ColorPickerChannelSliderInput = React.forwardRef<\n HTMLInputElement,\n ColorPickerChannelSliderInputProps\n>(function ColorPickerChannelSliderInput({ step, ...props }, forwardedRef) {\n const sliderContext = useColorPickerChannelSliderContext();\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "channelSliderInput", ...sliderContext, step: step ?? sliderContext.step },\n { ...props, "data-sw-color-picker-channel-input": "", "data-step": step ?? sliderContext.step },\n );\n return <input {...projectedProps} ref={forwardedRef} />;\n});\n\nColorPickerChannelSliderInput.displayName = "ColorPicker.ChannelSliderInput";\n\nexport default ColorPickerChannelSliderInput;\n',
|
|
18771
|
+
sourceHash: "sha256:ee381ccff2019aa383a1cdc373cb7a3609d02e2a3023642f2a08f4f2f1ce7e3a",
|
|
18772
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerChannelSliderInput.tsx"
|
|
18773
|
+
},
|
|
18774
|
+
{
|
|
18775
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerChannelSliderThumb.tsx",
|
|
18776
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport {\n useColorPickerPartProjection,\n useColorPickerChannelSliderContext,\n} from "./ColorPickerRoot";\n\nexport type ColorPickerChannelSliderThumbProps = React.ComponentPropsWithoutRef<"span"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerChannelSliderThumb = React.forwardRef<\n HTMLSpanElement,\n ColorPickerChannelSliderThumbProps\n>(function ColorPickerChannelSliderThumb({ children, ...props }, forwardedRef) {\n const sliderContext = useColorPickerChannelSliderContext();\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "channelSliderThumb", ...sliderContext },\n { ...props, "data-sw-color-picker-channel-slider-thumb": "" },\n );\n return (\n <span {...projectedProps} ref={forwardedRef}>\n {children}\n </span>\n );\n});\n\nColorPickerChannelSliderThumb.displayName = "ColorPicker.ChannelSliderThumb";\n\nexport default ColorPickerChannelSliderThumb;\n',
|
|
18777
|
+
sourceHash: "sha256:b06c1e7ba62188190be023e1fc9784376ceec17a8a13d6edbd037e96362ce52c",
|
|
18778
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerChannelSliderThumb.tsx"
|
|
18779
|
+
},
|
|
18780
|
+
{
|
|
18781
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerChannelSliderTrack.tsx",
|
|
18782
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport {\n useColorPickerPartProjection,\n useColorPickerChannelSliderContext,\n} from "./ColorPickerRoot";\n\nexport type ColorPickerChannelSliderTrackProps = React.ComponentPropsWithoutRef<"div"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerChannelSliderTrack = React.forwardRef<\n HTMLDivElement,\n ColorPickerChannelSliderTrackProps\n>(function ColorPickerChannelSliderTrack({ children, ...props }, forwardedRef) {\n const sliderContext = useColorPickerChannelSliderContext();\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "channelSliderTrack", ...sliderContext },\n { ...props, "data-sw-color-picker-channel-slider-track": "" },\n );\n return (\n <div {...projectedProps} ref={forwardedRef}>\n {children}\n </div>\n );\n});\n\nColorPickerChannelSliderTrack.displayName = "ColorPicker.ChannelSliderTrack";\n\nexport default ColorPickerChannelSliderTrack;\n',
|
|
18783
|
+
sourceHash: "sha256:8d7d2c7f1f10726df06315a1cc2b28e0bf3c6566da8b950ad9be7f725fe80de4",
|
|
18784
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerChannelSliderTrack.tsx"
|
|
18785
|
+
},
|
|
18786
|
+
{
|
|
18787
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerClear.tsx",
|
|
18788
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\n\nexport type ColorPickerClearProps = React.ComponentPropsWithoutRef<"button"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerClear = React.forwardRef<HTMLButtonElement, ColorPickerClearProps>(\n function ColorPickerClear({ children, ...props }, forwardedRef) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "clear" },\n { ...props, "data-sw-color-picker-clear": "" },\n );\n return (\n <button {...projectedProps} ref={forwardedRef}>\n {children}\n </button>\n );\n },\n);\n\nColorPickerClear.displayName = "ColorPicker.Clear";\n\nexport default ColorPickerClear;\n',
|
|
18789
|
+
sourceHash: "sha256:73b8ad9d0ecb6a6bd291984d64e2d4c14987337ccfb9a13c16ffbb1d163fcedb",
|
|
18790
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerClear.tsx"
|
|
18791
|
+
},
|
|
18792
|
+
{
|
|
18793
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerControl.tsx",
|
|
18794
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\n\nexport type ColorPickerControlProps = React.ComponentPropsWithoutRef<"div"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerControl = React.forwardRef<HTMLDivElement, ColorPickerControlProps>(\n function ColorPickerControl({ children, ...props }, forwardedRef) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "control" },\n { ...props, "data-sw-color-picker-control": "" },\n );\n return (\n <div {...projectedProps} ref={forwardedRef}>\n {children}\n </div>\n );\n },\n);\n\nColorPickerControl.displayName = "ColorPicker.Control";\n\nexport default ColorPickerControl;\n',
|
|
18795
|
+
sourceHash: "sha256:4b32b16fedd23716cb348f1eb495aebec6755e730e99b0effd0a2b1778e05cc4",
|
|
18796
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerControl.tsx"
|
|
18797
|
+
},
|
|
18798
|
+
{
|
|
18799
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerEyeDropperTrigger.tsx",
|
|
18800
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\n\nexport type ColorPickerEyeDropperTriggerProps = React.ComponentPropsWithoutRef<"button"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerEyeDropperTrigger = React.forwardRef<\n HTMLButtonElement,\n ColorPickerEyeDropperTriggerProps\n>(function ColorPickerEyeDropperTrigger({ children, ...props }, forwardedRef) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "eyeDropperTrigger" },\n { ...props, "data-sw-color-picker-eye-dropper": "" },\n );\n return (\n <button {...projectedProps} ref={forwardedRef}>\n {children}\n </button>\n );\n});\n\nColorPickerEyeDropperTrigger.displayName = "ColorPicker.EyeDropperTrigger";\n\nexport default ColorPickerEyeDropperTrigger;\n',
|
|
18801
|
+
sourceHash: "sha256:bd480e33d628676cb465026dd951a87df0b03dd9562cab40f2eef0f264505182",
|
|
18802
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerEyeDropperTrigger.tsx"
|
|
18803
|
+
},
|
|
18804
|
+
{
|
|
18805
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerFormatControl.tsx",
|
|
18806
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\n\nexport type ColorPickerFormatControlProps = React.ComponentPropsWithoutRef<"div"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerFormatControl = React.forwardRef<HTMLDivElement, ColorPickerFormatControlProps>(\n function ColorPickerFormatControl({ children, ...props }, forwardedRef) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "formatControl" },\n { ...props, "data-sw-color-picker-format-control": "" },\n );\n return (\n <div {...projectedProps} ref={forwardedRef}>\n {children}\n </div>\n );\n },\n);\n\nColorPickerFormatControl.displayName = "ColorPicker.FormatControl";\n\nexport default ColorPickerFormatControl;\n',
|
|
18807
|
+
sourceHash: "sha256:bac4d5effcfa6386e160f008abec383dc9e6e90542c50cd68c71a9e5f18d07b1",
|
|
18808
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerFormatControl.tsx"
|
|
18809
|
+
},
|
|
18810
|
+
{
|
|
18811
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerFormatSelect.tsx",
|
|
18812
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\n\nexport type ColorPickerFormatSelectProps = React.ComponentPropsWithoutRef<"select"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerFormatSelect = React.forwardRef<HTMLSelectElement, ColorPickerFormatSelectProps>(\n function ColorPickerFormatSelect({ children, ...props }, forwardedRef) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "formatSelect" },\n { ...props, "data-sw-color-picker-format-select": "" },\n );\n return (\n <select {...projectedProps} ref={forwardedRef}>\n {children}\n </select>\n );\n },\n);\n\nColorPickerFormatSelect.displayName = "ColorPicker.FormatSelect";\n\nexport default ColorPickerFormatSelect;\n',
|
|
18813
|
+
sourceHash: "sha256:50f73ee0ff7c0f2621d603880c9f3bb32cbd8b66a97fa85a2c97085acc84e342",
|
|
18814
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerFormatSelect.tsx"
|
|
18815
|
+
},
|
|
18816
|
+
{
|
|
18817
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerHiddenInput.tsx",
|
|
18818
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\n\nexport type ColorPickerHiddenInputProps = React.ComponentPropsWithoutRef<"input"> & {};\n\nconst ColorPickerHiddenInput = React.forwardRef<HTMLInputElement, ColorPickerHiddenInputProps>(\n function ColorPickerHiddenInput({ ...props }, forwardedRef) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "hiddenInput" },\n { ...props, "data-sw-color-picker-hidden-input": "" },\n );\n return <input {...projectedProps} ref={forwardedRef} />;\n },\n);\n\nColorPickerHiddenInput.displayName = "ColorPicker.HiddenInput";\n\nexport default ColorPickerHiddenInput;\n',
|
|
18819
|
+
sourceHash: "sha256:8ec4ca5ea3b1a160270fbd20678ec4938695d913552df7125c303a3370b254db",
|
|
18820
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerHiddenInput.tsx"
|
|
18821
|
+
},
|
|
18822
|
+
{
|
|
18823
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerLabel.tsx",
|
|
18824
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\n\nexport type ColorPickerLabelProps = React.ComponentPropsWithoutRef<"span"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerLabel = React.forwardRef<HTMLSpanElement, ColorPickerLabelProps>(\n function ColorPickerLabel({ children, ...props }, forwardedRef) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "label" },\n { ...props, "data-sw-color-picker-label": "" },\n );\n return (\n <span {...projectedProps} ref={forwardedRef}>\n {children}\n </span>\n );\n },\n);\n\nColorPickerLabel.displayName = "ColorPicker.Label";\n\nexport default ColorPickerLabel;\n',
|
|
18825
|
+
sourceHash: "sha256:cea7f36e0fd53809ba3ef1453a99c33ff6407a93cae2baa76ff62cb0b71def2c",
|
|
18826
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerLabel.tsx"
|
|
18827
|
+
},
|
|
18828
|
+
{
|
|
18829
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerRoot.tsx",
|
|
18830
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport {\n createColorPicker,\n createColorPickerInitialState,\n projectColorPickerInitialPart,\n type ColorPickerColor,\n type ColorPickerDirection,\n type ColorPickerFormat,\n type ColorPickerFormatChangeDetails,\n type ColorPickerInitialChannel,\n type ColorPickerInitialPartProjection,\n type ColorPickerInitialPartRequest,\n type ColorPickerInitialState,\n type ColorPickerOptions,\n type ColorPickerValue,\n type ColorPickerValueChangeDetails,\n type ColorPickerValueCommitDetails,\n} from "@starwind-ui/runtime/color-picker";\nimport { setRef } from "../internal/compose-refs";\nimport { useIsomorphicLayoutEffect } from "../internal/use-isomorphic-layout-effect";\n\ntype ColorPickerRootContextValue = {\n initialState: ColorPickerInitialState;\n};\n\nexport type ColorPickerAreaContextValue = {\n xChannel: ColorPickerInitialChannel;\n yChannel: ColorPickerInitialChannel;\n xStep?: number;\n yStep?: number;\n};\n\nexport type ColorPickerChannelSliderContextValue = {\n channel: ColorPickerInitialChannel;\n orientation: "horizontal" | "vertical";\n step?: number;\n};\n\nconst ColorPickerRootContext = React.createContext<ColorPickerRootContextValue | null>(null);\nexport const ColorPickerAreaContext = React.createContext<ColorPickerAreaContextValue | null>(null);\nexport const ColorPickerChannelSliderContext =\n React.createContext<ColorPickerChannelSliderContextValue | null>(null);\n\nconst COLOR_PICKER_PART_SELECTOR =\n "[data-sw-color-picker], [data-sw-color-picker-label], [data-sw-color-picker-control], [data-sw-color-picker-value-input], [data-sw-color-picker-value-swatch], [data-sw-color-picker-value-text], [data-sw-color-picker-area], [data-sw-color-picker-area-background], [data-sw-color-picker-area-thumb], [data-sw-color-picker-area-input], [data-sw-color-picker-channel-slider], [data-sw-color-picker-channel-slider-track], [data-sw-color-picker-channel-slider-thumb], [data-sw-color-picker-channel-input], [data-sw-color-picker-channel-field], [data-sw-color-picker-format-select], [data-sw-color-picker-format-control], [data-sw-color-picker-transparency-grid], [data-sw-color-picker-swatch-group], [data-sw-color-picker-swatch], [data-sw-color-picker-eye-dropper], [data-sw-color-picker-clear], [data-sw-color-picker-hidden-input]";\nconst COLOR_PICKER_CONFIGURATION_ATTRIBUTES = [\n "data-axis",\n "data-channel",\n "data-disabled",\n "data-orientation",\n "data-step",\n "data-value",\n "data-x-channel",\n "data-y-channel",\n "aria-label",\n "aria-labelledby",\n "aria-roledescription",\n] as const;\nconst COLOR_PICKER_AUTHORED_ARIA_ATTRIBUTES = [\n "aria-label",\n "aria-labelledby",\n "aria-roledescription",\n] as const;\n\nexport type ColorPickerProjectedProps = Record<string, unknown> & {\n children?: React.ReactNode;\n style?: React.CSSProperties;\n};\n\nexport function useColorPickerPartProjection(\n request: ColorPickerInitialPartRequest,\n authoredProps: ColorPickerProjectedProps,\n): { props: ColorPickerProjectedProps; text?: string } {\n const context = React.useContext(ColorPickerRootContext);\n if (!context) {\n throw new Error("Color Picker parts must be rendered inside ColorPicker.Root.");\n }\n const initialProjectionRef = React.useRef<ColorPickerInitialPartProjection | undefined>(\n undefined,\n );\n initialProjectionRef.current ??= projectColorPickerInitialPart(context.initialState, request);\n const ownershipPendingRef = React.useRef(true);\n const authoredAriaHistoryRef = React.useRef(new Set<string>());\n const projection = initialProjectionRef.current;\n const initialValueRef = React.useRef(projection.properties.value);\n const dynamicAuthoredProps = { ...authoredProps };\n for (const name of COLOR_PICKER_AUTHORED_ARIA_ATTRIBUTES) {\n if (authoredProps[name] === undefined) {\n delete dynamicAuthoredProps[name];\n if (authoredAriaHistoryRef.current.has(name)) dynamicAuthoredProps[name] = undefined;\n }\n }\n useIsomorphicLayoutEffect(() => {\n ownershipPendingRef.current = false;\n for (const name of COLOR_PICKER_AUTHORED_ARIA_ATTRIBUTES) {\n if (authoredProps[name] !== undefined) authoredAriaHistoryRef.current.add(name);\n }\n });\n const stableProjection =\n projection.properties.value === undefined\n ? projection\n : {\n ...projection,\n properties: { ...projection.properties, value: initialValueRef.current },\n };\n return {\n props: translateColorPickerProjection(\n stableProjection,\n dynamicAuthoredProps,\n ownershipPendingRef.current,\n ),\n ...(projection.text === undefined ? {} : { text: projection.text }),\n };\n}\n\nexport function useColorPickerAreaContext(): ColorPickerAreaContextValue {\n return (\n React.useContext(ColorPickerAreaContext) ?? {\n xChannel: "saturation",\n yChannel: "brightness",\n }\n );\n}\n\nexport function useColorPickerChannelSliderContext(): ColorPickerChannelSliderContextValue {\n return (\n React.useContext(ColorPickerChannelSliderContext) ?? {\n channel: "hue",\n orientation: "horizontal",\n }\n );\n}\n\nexport type ColorPickerRootProps = Omit<\n React.ComponentPropsWithoutRef<"div">,\n "value" | "defaultValue" | "dir"\n> & {\n value?: ColorPickerValue;\n defaultValue?: ColorPickerValue;\n format?: ColorPickerFormat;\n alpha?: boolean;\n allowEmpty?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n name?: string;\n form?: string;\n required?: boolean;\n locale?: string;\n dir?: ColorPickerDirection;\n getAriaValueText?: ColorPickerOptions["getAriaValueText"];\n getAreaRoleDescription?: ColorPickerOptions["getAreaRoleDescription"];\n getColorDescription?: ColorPickerOptions["getColorDescription"];\n onValueChange?: (value: ColorPickerColor | null, details: ColorPickerValueChangeDetails) => void;\n onValueCommitted?: (\n value: ColorPickerColor | null,\n details: ColorPickerValueCommitDetails,\n ) => void;\n onFormatChange?: (format: ColorPickerFormat, details: ColorPickerFormatChangeDetails) => void;\n};\n\nconst ColorPickerRoot = React.forwardRef<React.ElementRef<"div">, ColorPickerRootProps>(\n function ColorPickerRoot(\n {\n value,\n defaultValue = "#000000",\n format,\n alpha = true,\n allowEmpty = false,\n disabled = false,\n readOnly = false,\n name,\n form,\n required = false,\n locale,\n dir,\n getAriaValueText,\n getAreaRoleDescription,\n getColorDescription,\n onValueChange,\n onValueCommitted,\n onFormatChange,\n children,\n ...props\n },\n forwardedRef,\n ) {\n const rootRef = React.useRef<HTMLDivElement>(null);\n const instanceRef = React.useRef<ReturnType<typeof createColorPicker> | undefined>(undefined);\n const ownershipSeedsRef = React.useRef(new Map<Element, string>());\n const structuralFingerprintRef = React.useRef("");\n const structuralElementIdsRef = React.useRef(new WeakMap<Element, number>());\n const nextStructuralElementIdRef = React.useRef(1);\n const rootOwnershipPendingRef = React.useRef(true);\n const isValueControlledRef = React.useRef(value !== undefined);\n const isFormatControlledRef = React.useRef(format !== undefined);\n const valueRef = React.useRef(value);\n const formatRef = React.useRef(format);\n const defaultValueRef = React.useRef(defaultValue);\n const onValueChangeRef = React.useRef(onValueChange);\n const onValueCommittedRef = React.useRef(onValueCommitted);\n const onFormatChangeRef = React.useRef(onFormatChange);\n const initialUncontrolledStateRef = React.useRef(\n createColorPickerInitialState({\n defaultValue: defaultValueRef.current,\n format: formatRef.current,\n alpha,\n allowEmpty,\n }),\n );\n const [uncontrolledValue, setUncontrolledValue] = React.useState<ColorPickerColor | null>(\n initialUncontrolledStateRef.current.value,\n );\n const [uncontrolledFormat, setUncontrolledFormat] = React.useState<ColorPickerFormat>(\n initialUncontrolledStateRef.current.format,\n );\n\n if (isValueControlledRef.current && value !== undefined) valueRef.current = value;\n if (isFormatControlledRef.current && format !== undefined) formatRef.current = format;\n onValueChangeRef.current = onValueChange;\n onValueCommittedRef.current = onValueCommitted;\n onFormatChangeRef.current = onFormatChange;\n\n const renderedValue = isValueControlledRef.current ? valueRef.current : uncontrolledValue;\n const renderedFormat = isFormatControlledRef.current\n ? (formatRef.current ?? uncontrolledFormat)\n : uncontrolledFormat;\n const initialState = React.useMemo(\n () =>\n createColorPickerInitialState({\n value: renderedValue,\n format: renderedFormat,\n alpha,\n allowEmpty,\n disabled,\n readOnly,\n required,\n name,\n form,\n locale,\n dir,\n getAriaValueText,\n getAreaRoleDescription,\n getColorDescription,\n }),\n [\n renderedValue,\n renderedFormat,\n alpha,\n allowEmpty,\n disabled,\n readOnly,\n required,\n name,\n form,\n locale,\n dir,\n getAriaValueText,\n getAreaRoleDescription,\n getColorDescription,\n ],\n );\n const contextValue = React.useMemo(() => ({ initialState }), [initialState]);\n\n const composedRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n rootRef.current = node;\n return setRef(forwardedRef, node);\n },\n [forwardedRef],\n );\n\n useIsomorphicLayoutEffect(() => {\n const root = rootRef.current;\n if (!root) return;\n\n replayColorPickerOwnership(root, ownershipSeedsRef.current);\n captureColorPickerOwnership(root, ownershipSeedsRef.current);\n const instance = createColorPicker(root, {\n ...(isValueControlledRef.current\n ? { value: valueRef.current }\n : { defaultValue: defaultValueRef.current }),\n format: formatRef.current ?? uncontrolledFormat,\n alpha,\n allowEmpty,\n disabled,\n readOnly,\n name,\n form,\n required,\n locale,\n dir,\n getAriaValueText,\n getAreaRoleDescription,\n getColorDescription,\n onValueChange: (nextValue, details) => {\n onValueChangeRef.current?.(nextValue, details);\n if (!details.isCanceled && !isValueControlledRef.current) {\n setUncontrolledValue(() => nextValue);\n }\n },\n onValueCommitted: (nextValue, details) => {\n onValueCommittedRef.current?.(nextValue, details);\n },\n onFormatChange: (nextFormat, details) => {\n onFormatChangeRef.current?.(nextFormat, details);\n if (isFormatControlledRef.current) {\n const controlledFormat = formatRef.current;\n if (controlledFormat !== undefined && controlledFormat !== nextFormat) {\n instanceRef.current?.setFormat(controlledFormat, { emit: false });\n }\n return;\n }\n setUncontrolledFormat(() => nextFormat);\n },\n });\n instanceRef.current = instance;\n rootOwnershipPendingRef.current = false;\n instance.refresh();\n structuralFingerprintRef.current = colorPickerStructuralFingerprint(\n root,\n structuralElementIdsRef.current,\n nextStructuralElementIdRef,\n );\n\n return () => {\n instance.destroy();\n if (instanceRef.current === instance) instanceRef.current = undefined;\n };\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n const root = rootRef.current;\n if (!root || typeof MutationObserver === "undefined") return;\n let refreshScheduled = false;\n let disposed = false;\n const refreshStructure = () => {\n refreshScheduled = false;\n if (disposed) return;\n const nextFingerprint = colorPickerStructuralFingerprint(\n root,\n structuralElementIdsRef.current,\n nextStructuralElementIdRef,\n );\n if (nextFingerprint === structuralFingerprintRef.current) return;\n structuralFingerprintRef.current = nextFingerprint;\n captureColorPickerOwnership(root, ownershipSeedsRef.current);\n instanceRef.current?.refresh({ preserveState: true });\n structuralFingerprintRef.current = colorPickerStructuralFingerprint(\n root,\n structuralElementIdsRef.current,\n nextStructuralElementIdRef,\n );\n };\n const observer = new MutationObserver((records) => {\n if (!records.some((record) => isColorPickerConfigurationMutation(root, record))) return;\n if (refreshScheduled) return;\n refreshScheduled = true;\n Promise.resolve().then(refreshStructure);\n });\n observer.observe(root, {\n attributes: true,\n attributeFilter: [...COLOR_PICKER_CONFIGURATION_ATTRIBUTES],\n childList: true,\n subtree: true,\n });\n return () => {\n disposed = true;\n observer.disconnect();\n };\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (!isValueControlledRef.current || value === undefined) return;\n instanceRef.current?.setValue(value, { emit: false });\n }, [value]);\n\n useIsomorphicLayoutEffect(() => {\n if (!isFormatControlledRef.current || format === undefined) return;\n instanceRef.current?.setFormat(format, { emit: false });\n }, [format]);\n\n useIsomorphicLayoutEffect(() => {\n const instance = instanceRef.current;\n if (!instance) return;\n instance.setDisabled(disabled);\n instance.setReadOnly(readOnly);\n instance.setName(name ?? null);\n instance.setOptions({\n alpha,\n allowEmpty,\n dir: dir ?? null,\n form: form ?? null,\n getAreaRoleDescription,\n getAriaValueText,\n getColorDescription,\n locale: locale ?? null,\n required,\n });\n }, [\n alpha,\n allowEmpty,\n dir,\n disabled,\n form,\n getAreaRoleDescription,\n getAriaValueText,\n getColorDescription,\n locale,\n name,\n readOnly,\n required,\n ]);\n\n const initialRootProjectionRef = React.useRef<ColorPickerInitialPartProjection | undefined>(\n undefined,\n );\n initialRootProjectionRef.current ??= projectColorPickerInitialPart(initialState, {\n part: "root",\n });\n const rootProps = translateColorPickerProjection(\n initialRootProjectionRef.current,\n { ...props, "data-sw-color-picker": "" },\n rootOwnershipPendingRef.current,\n );\n\n return (\n <ColorPickerRootContext.Provider value={contextValue}>\n <div {...rootProps} ref={composedRef}>\n {children}\n </div>\n </ColorPickerRootContext.Provider>\n );\n },\n);\n\nColorPickerRoot.displayName = "ColorPicker.Root";\n\nexport default ColorPickerRoot;\n\nfunction translateColorPickerProjection(\n projection: ColorPickerInitialPartProjection,\n authoredProps: ColorPickerProjectedProps,\n includeOwnership: boolean,\n): ColorPickerProjectedProps {\n const projected: ColorPickerProjectedProps = {};\n for (const [name, value] of Object.entries(projection.attributes)) {\n if (name === "data-sw-color-picker-initial-owned" || value === undefined || value === false)\n continue;\n projected[toReactPropName(name)] = name.startsWith("data-") && value === true ? "" : value;\n }\n for (const [name, value] of Object.entries(projection.properties)) {\n if (value === undefined || name === "defaultValue") continue;\n projected[name === "value" ? "defaultValue" : name] = value;\n }\n if (Object.keys(projection.styles).length > 0) {\n projected.style = Object.fromEntries(\n Object.entries(projection.styles).map(([name, value]) => [toReactStyleName(name), value]),\n ) as React.CSSProperties;\n }\n\n const result = { ...projected, ...authoredProps };\n if (projected.style || authoredProps.style) {\n result.style = { ...projected.style, ...authoredProps.style };\n }\n if (includeOwnership) {\n const tokens = [\n ...projection.ownership.attributes\n .filter((name) => !Object.hasOwn(authoredProps, toReactPropName(name)))\n .map((name) => `a:${name}`),\n ...projection.ownership.properties\n .filter(\n (name) =>\n !Object.hasOwn(authoredProps, name) &&\n !(name === "value" && Object.hasOwn(authoredProps, "defaultValue")),\n )\n .map((name) => `p:${name}`),\n ];\n if (tokens.length > 0) result["data-sw-color-picker-initial-owned"] = tokens.join(",");\n }\n return result;\n}\n\nfunction toReactPropName(name: string): string {\n if (name === "class") return "className";\n if (name === "for") return "htmlFor";\n if (name === "readonly") return "readOnly";\n if (name === "tabindex") return "tabIndex";\n return name;\n}\n\nfunction toReactStyleName(name: string): string {\n return name.startsWith("--")\n ? name\n : name.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n\nfunction ownedColorPickerParts(root: HTMLElement): Element[] {\n return [root, ...root.querySelectorAll(COLOR_PICKER_PART_SELECTOR)].filter(\n (element) => element.closest("[data-sw-color-picker]") === root,\n );\n}\n\nfunction captureColorPickerOwnership(root: HTMLElement, seeds: Map<Element, string>): void {\n for (const element of ownedColorPickerParts(root)) {\n const marker = element.getAttribute("data-sw-color-picker-initial-owned");\n if (marker) seeds.set(element, marker);\n }\n}\n\nfunction replayColorPickerOwnership(root: HTMLElement, seeds: Map<Element, string>): void {\n for (const [element, marker] of seeds) {\n if (!element.isConnected || element.closest("[data-sw-color-picker]") !== root) {\n seeds.delete(element);\n continue;\n }\n element.setAttribute("data-sw-color-picker-initial-owned", marker);\n }\n}\n\nfunction isColorPickerConfigurationMutation(root: HTMLElement, record: MutationRecord): boolean {\n const target = record.target instanceof Element ? record.target : null;\n if (!target || target.closest("[data-sw-color-picker]") !== root) return false;\n if (record.type === "childList") return true;\n if (record.type !== "attributes" || !record.attributeName) return false;\n if (record.attributeName === "data-value" || record.attributeName === "data-disabled") {\n return target.hasAttribute("data-sw-color-picker-swatch");\n }\n return true;\n}\n\nfunction colorPickerStructuralFingerprint(\n root: HTMLElement,\n ids: WeakMap<Element, number>,\n nextIdRef: React.MutableRefObject<number>,\n): string {\n return ownedColorPickerParts(root)\n .map((element) => {\n let id = ids.get(element);\n if (id === undefined) {\n id = nextIdRef.current;\n nextIdRef.current += 1;\n ids.set(element, id);\n }\n const attributes = colorPickerConfigurationAttributes(element)\n .map((name) => `${name}=${element.getAttribute(name) ?? ""}`)\n .join(";");\n return `${id}:${element.tagName}:${attributes}`;\n })\n .join("|");\n}\n\nfunction colorPickerConfigurationAttributes(element: Element): readonly string[] {\n if (element.hasAttribute("data-sw-color-picker-area")) {\n return ["data-x-channel", "data-y-channel"];\n }\n if (element.hasAttribute("data-sw-color-picker-area-input")) {\n return ["data-axis", "data-step", "aria-label", "aria-labelledby", "aria-roledescription"];\n }\n if (element.hasAttribute("data-sw-color-picker-channel-slider")) {\n return ["data-channel", "data-orientation"];\n }\n if (element.hasAttribute("data-sw-color-picker-channel-input")) return ["data-step"];\n if (element.hasAttribute("data-sw-color-picker-channel-field")) return ["data-channel"];\n if (element.hasAttribute("data-sw-color-picker-swatch")) {\n return ["data-value", "data-disabled"];\n }\n return [];\n}\n',
|
|
18831
|
+
sourceHash: "sha256:480ff7c550bead133ba08b1fd49cb465dc8583fe3d0531a59bd481d19b6088b1",
|
|
18832
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerRoot.tsx"
|
|
18833
|
+
},
|
|
18834
|
+
{
|
|
18835
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerSwatch.tsx",
|
|
18836
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\nimport type { ColorPickerValue } from "@starwind-ui/runtime/color-picker";\n\nexport type ColorPickerSwatchProps = React.ComponentPropsWithoutRef<"button"> & {\n children?: React.ReactNode;\n swatchValue: ColorPickerValue;\n swatchDisabled?: boolean;\n};\n\nconst ColorPickerSwatch = React.forwardRef<HTMLButtonElement, ColorPickerSwatchProps>(\n function ColorPickerSwatch(\n { children, swatchValue, swatchDisabled = false, ...props },\n forwardedRef,\n ) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "swatch", value: swatchValue, disabled: swatchDisabled },\n {\n ...props,\n "data-sw-color-picker-swatch": "",\n "data-value":\n typeof swatchValue === "string" ? swatchValue : (swatchValue?.toString() ?? undefined),\n "data-disabled": swatchDisabled ? "" : undefined,\n },\n );\n return (\n <button {...projectedProps} ref={forwardedRef}>\n {children}\n </button>\n );\n },\n);\n\nColorPickerSwatch.displayName = "ColorPicker.Swatch";\n\nexport default ColorPickerSwatch;\n',
|
|
18837
|
+
sourceHash: "sha256:c37d425d00ff5092dedd1bc21e73ebbd0547d3c46d51ea6b7bf94e83613d0e79",
|
|
18838
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerSwatch.tsx"
|
|
18839
|
+
},
|
|
18840
|
+
{
|
|
18841
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerSwatchGroup.tsx",
|
|
18842
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\n\nexport type ColorPickerSwatchGroupProps = React.ComponentPropsWithoutRef<"div"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerSwatchGroup = React.forwardRef<HTMLDivElement, ColorPickerSwatchGroupProps>(\n function ColorPickerSwatchGroup({ children, ...props }, forwardedRef) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "swatchGroup" },\n { ...props, "data-sw-color-picker-swatch-group": "" },\n );\n return (\n <div {...projectedProps} ref={forwardedRef}>\n {children}\n </div>\n );\n },\n);\n\nColorPickerSwatchGroup.displayName = "ColorPicker.SwatchGroup";\n\nexport default ColorPickerSwatchGroup;\n',
|
|
18843
|
+
sourceHash: "sha256:807e23e652288da912158ef42305a4b5ba836e70e584a5cc2772b1bae377a83a",
|
|
18844
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerSwatchGroup.tsx"
|
|
18845
|
+
},
|
|
18846
|
+
{
|
|
18847
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerTransparencyGrid.tsx",
|
|
18848
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\n\nexport type ColorPickerTransparencyGridProps = React.ComponentPropsWithoutRef<"span"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerTransparencyGrid = React.forwardRef<\n HTMLSpanElement,\n ColorPickerTransparencyGridProps\n>(function ColorPickerTransparencyGrid({ children, ...props }, forwardedRef) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "transparencyGrid" },\n { ...props, "data-sw-color-picker-transparency-grid": "" },\n );\n return (\n <span {...projectedProps} ref={forwardedRef}>\n {children}\n </span>\n );\n});\n\nColorPickerTransparencyGrid.displayName = "ColorPicker.TransparencyGrid";\n\nexport default ColorPickerTransparencyGrid;\n',
|
|
18849
|
+
sourceHash: "sha256:2766d826fc8ad9ef2ec9873b037e8d0893c2a768768824dc297a1e70cf7091ce",
|
|
18850
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerTransparencyGrid.tsx"
|
|
18851
|
+
},
|
|
18852
|
+
{
|
|
18853
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerValueInput.tsx",
|
|
18854
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\n\nexport type ColorPickerValueInputProps = React.ComponentPropsWithoutRef<"input"> & {};\n\nconst ColorPickerValueInput = React.forwardRef<HTMLInputElement, ColorPickerValueInputProps>(\n function ColorPickerValueInput({ ...props }, forwardedRef) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "valueInput" },\n { ...props, "data-sw-color-picker-value-input": "" },\n );\n return <input {...projectedProps} ref={forwardedRef} />;\n },\n);\n\nColorPickerValueInput.displayName = "ColorPicker.ValueInput";\n\nexport default ColorPickerValueInput;\n',
|
|
18855
|
+
sourceHash: "sha256:94d572adaa1a5798bd3affa6a7906aa4ddb6c34a13ae97b4f50dc718cf263d7b",
|
|
18856
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerValueInput.tsx"
|
|
18857
|
+
},
|
|
18858
|
+
{
|
|
18859
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerValueSwatch.tsx",
|
|
18860
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\n\nexport type ColorPickerValueSwatchProps = React.ComponentPropsWithoutRef<"span"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerValueSwatch = React.forwardRef<HTMLSpanElement, ColorPickerValueSwatchProps>(\n function ColorPickerValueSwatch({ children, ...props }, forwardedRef) {\n const { props: projectedProps } = useColorPickerPartProjection(\n { part: "valueSwatch" },\n { ...props, "data-sw-color-picker-value-swatch": "" },\n );\n return (\n <span {...projectedProps} ref={forwardedRef}>\n {children}\n </span>\n );\n },\n);\n\nColorPickerValueSwatch.displayName = "ColorPicker.ValueSwatch";\n\nexport default ColorPickerValueSwatch;\n',
|
|
18861
|
+
sourceHash: "sha256:575d0c6327853fa9c5c307d2af2e19cb3decc5da4e8454e097e42d15b449ff3e",
|
|
18862
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerValueSwatch.tsx"
|
|
18863
|
+
},
|
|
18864
|
+
{
|
|
18865
|
+
path: "src/components/starwind-primitives/color-picker/ColorPickerValueText.tsx",
|
|
18866
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\nimport { useColorPickerPartProjection } from "./ColorPickerRoot";\n\nexport type ColorPickerValueTextProps = React.ComponentPropsWithoutRef<"span"> & {\n children?: React.ReactNode;\n};\n\nconst ColorPickerValueText = React.forwardRef<HTMLSpanElement, ColorPickerValueTextProps>(\n function ColorPickerValueText({ children, ...props }, forwardedRef) {\n const { props: projectedProps, text } = useColorPickerPartProjection(\n { part: "valueText" },\n { ...props, "data-sw-color-picker-value-text": "" },\n );\n return (\n <span {...projectedProps} ref={forwardedRef}>\n {children ?? text}\n </span>\n );\n },\n);\n\nColorPickerValueText.displayName = "ColorPicker.ValueText";\n\nexport default ColorPickerValueText;\n',
|
|
18867
|
+
sourceHash: "sha256:9d679c36de91b1b24003f6ab368ae1f134a8d5cae8edc49c81c33166a8838271",
|
|
18868
|
+
sourcePath: "packages/react/src/color-picker/ColorPickerValueText.tsx"
|
|
18869
|
+
},
|
|
18870
|
+
{
|
|
18871
|
+
path: "src/components/starwind-primitives/color-picker/index.ts",
|
|
18872
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport ColorPickerRoot from "./ColorPickerRoot";\nimport ColorPickerLabel from "./ColorPickerLabel";\nimport ColorPickerControl from "./ColorPickerControl";\nimport ColorPickerValueInput from "./ColorPickerValueInput";\nimport ColorPickerValueSwatch from "./ColorPickerValueSwatch";\nimport ColorPickerValueText from "./ColorPickerValueText";\nimport ColorPickerArea from "./ColorPickerArea";\nimport ColorPickerAreaBackground from "./ColorPickerAreaBackground";\nimport ColorPickerAreaThumb from "./ColorPickerAreaThumb";\nimport ColorPickerAreaInput from "./ColorPickerAreaInput";\nimport ColorPickerChannelSlider from "./ColorPickerChannelSlider";\nimport ColorPickerChannelSliderTrack from "./ColorPickerChannelSliderTrack";\nimport ColorPickerChannelSliderThumb from "./ColorPickerChannelSliderThumb";\nimport ColorPickerChannelSliderInput from "./ColorPickerChannelSliderInput";\nimport ColorPickerChannelInput from "./ColorPickerChannelInput";\nimport ColorPickerFormatSelect from "./ColorPickerFormatSelect";\nimport ColorPickerFormatControl from "./ColorPickerFormatControl";\nimport ColorPickerTransparencyGrid from "./ColorPickerTransparencyGrid";\nimport ColorPickerSwatchGroup from "./ColorPickerSwatchGroup";\nimport ColorPickerSwatch from "./ColorPickerSwatch";\nimport ColorPickerEyeDropperTrigger from "./ColorPickerEyeDropperTrigger";\nimport ColorPickerClear from "./ColorPickerClear";\nimport ColorPickerHiddenInput from "./ColorPickerHiddenInput";\n\nconst ColorPicker = {\n Root: ColorPickerRoot,\n Label: ColorPickerLabel,\n Control: ColorPickerControl,\n ValueInput: ColorPickerValueInput,\n ValueSwatch: ColorPickerValueSwatch,\n ValueText: ColorPickerValueText,\n Area: ColorPickerArea,\n AreaBackground: ColorPickerAreaBackground,\n AreaThumb: ColorPickerAreaThumb,\n AreaInput: ColorPickerAreaInput,\n ChannelSlider: ColorPickerChannelSlider,\n ChannelSliderTrack: ColorPickerChannelSliderTrack,\n ChannelSliderThumb: ColorPickerChannelSliderThumb,\n ChannelSliderInput: ColorPickerChannelSliderInput,\n ChannelInput: ColorPickerChannelInput,\n FormatSelect: ColorPickerFormatSelect,\n FormatControl: ColorPickerFormatControl,\n TransparencyGrid: ColorPickerTransparencyGrid,\n SwatchGroup: ColorPickerSwatchGroup,\n Swatch: ColorPickerSwatch,\n EyeDropperTrigger: ColorPickerEyeDropperTrigger,\n Clear: ColorPickerClear,\n HiddenInput: ColorPickerHiddenInput,\n};\n\nexport {\n ColorPicker,\n ColorPickerRoot,\n ColorPickerLabel,\n ColorPickerControl,\n ColorPickerValueInput,\n ColorPickerValueSwatch,\n ColorPickerValueText,\n ColorPickerArea,\n ColorPickerAreaBackground,\n ColorPickerAreaThumb,\n ColorPickerAreaInput,\n ColorPickerChannelSlider,\n ColorPickerChannelSliderTrack,\n ColorPickerChannelSliderThumb,\n ColorPickerChannelSliderInput,\n ColorPickerChannelInput,\n ColorPickerFormatSelect,\n ColorPickerFormatControl,\n ColorPickerTransparencyGrid,\n ColorPickerSwatchGroup,\n ColorPickerSwatch,\n ColorPickerEyeDropperTrigger,\n ColorPickerClear,\n ColorPickerHiddenInput,\n};\n\nexport default ColorPicker;\n\nexport type {\n ColorPickerChannel,\n ColorPickerColor,\n ColorPickerDirection,\n ColorPickerFormat,\n ColorPickerFormatChangeDetails,\n ColorPickerHsbChannelUpdates,\n ColorPickerHsbChannels,\n ColorPickerHslChannelUpdates,\n ColorPickerHslChannels,\n ColorPickerInstance,\n ColorPickerInitialAxis,\n ColorPickerInitialChannel,\n ColorPickerInitialDirection,\n ColorPickerInitialOrientation,\n ColorPickerInitialPartName,\n ColorPickerInitialPartProjection,\n ColorPickerInitialPartRequest,\n ColorPickerInitialState,\n ColorPickerInitialStateOptions,\n ColorPickerInitialValue,\n ColorPickerOptions,\n ColorPickerRgbChannelUpdates,\n ColorPickerRgbChannels,\n ColorPickerSetOptions,\n ColorPickerSetValueOptions,\n ColorPickerStringFormat,\n ColorPickerValue,\n ColorPickerValueChangeDetails,\n ColorPickerValueChangeReason,\n ColorPickerValueCommitDetails,\n} from "@starwind-ui/runtime/color-picker";\nexport {\n createColorPickerInitialState,\n parseColor,\n projectColorPickerInitialPart,\n} from "@starwind-ui/runtime/color-picker";\n',
|
|
18873
|
+
sourceHash: "sha256:58de9d7ceefb8eafc92e5fb3a2fae300af3eced02affd58602a9daa90d9258b0",
|
|
18874
|
+
sourcePath: "packages/react/src/color-picker/index.ts"
|
|
18875
|
+
},
|
|
18876
|
+
{
|
|
18877
|
+
path: "src/components/starwind-primitives/internal/compose-refs.ts",
|
|
18878
|
+
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 AsChildProps = React.HTMLAttributes<HTMLElement> &\n React.RefAttributes<HTMLElement> &\n Record<string, unknown>;\n\nexport type RefCapableElementProps = AsChildProps & {\n href?: string;\n};\n\nexport type AsChildMergeOptions = {\n eventOrder?: "child-first" | "parent-first";\n protectedProps?: AsChildProps;\n};\n\nexport function getElementRef(\n element: React.ReactElement<RefCapableElementProps>,\n): React.Ref<HTMLElement> | undefined {\n if (Number.parseInt(React.version, 10) >= 19) {\n return element.props.ref;\n }\n\n return (element as React.ReactElement<RefCapableElementProps> & { ref?: React.Ref<HTMLElement> })\n .ref;\n}\n\nexport function getAsChildElement(\n children: React.ReactNode,\n): React.ReactElement<RefCapableElementProps> | null {\n const childArray = React.Children.toArray(children);\n if (childArray.length !== 1) return null;\n\n const child = childArray[0];\n return React.isValidElement<RefCapableElementProps>(child) ? child : null;\n}\n\nexport function mergeAsChildProps(\n parentProps: AsChildProps,\n childProps: AsChildProps,\n options: AsChildMergeOptions = {},\n): AsChildProps {\n const { eventOrder = "child-first", protectedProps } = options;\n const mergedProps: AsChildProps = { ...parentProps, ...childProps };\n const className = mergeAsChildClassName(parentProps.className, childProps.className);\n const style = mergeAsChildStyle(parentProps.style, childProps.style);\n\n if (className) {\n mergedProps.className = className;\n } else {\n delete mergedProps.className;\n }\n\n if (style) {\n mergedProps.style = style;\n } else {\n delete mergedProps.style;\n }\n\n Object.keys(parentProps).forEach((propName) => {\n if (!isAsChildEventHandler(propName)) return;\n\n const parentHandler = getAsChildEventHandler(parentProps[propName]);\n const childHandler = getAsChildEventHandler(childProps[propName]);\n if (!parentHandler || !childHandler) return;\n\n mergedProps[propName] = composeAsChildEventHandlers(parentHandler, childHandler, eventOrder);\n });\n\n if (protectedProps) {\n Object.assign(mergedProps, protectedProps);\n }\n\n return mergedProps;\n}\n\nexport function useComposedRefs<T>(\n outerRef: React.Ref<T> | undefined,\n innerRef: React.Ref<T> | undefined,\n): React.RefCallback<T> {\n return React.useCallback(\n (value) => {\n const cleanups = [setRef(outerRef, value), setRef(innerRef, value)].filter(\n (cleanup): cleanup is RefCleanup => typeof cleanup === "function",\n );\n\n return () => {\n cleanups.reverse().forEach((cleanup) => cleanup());\n };\n },\n [outerRef, innerRef],\n );\n}\n\nfunction mergeAsChildClassName(\n parentClassName: string | undefined,\n childClassName: string | undefined,\n): string | undefined {\n return [parentClassName, childClassName].filter(Boolean).join(" ") || undefined;\n}\n\nfunction mergeAsChildStyle(\n parentStyle: React.CSSProperties | undefined,\n childStyle: React.CSSProperties | undefined,\n): React.CSSProperties | undefined {\n if (parentStyle && childStyle) return { ...parentStyle, ...childStyle };\n return childStyle ?? parentStyle;\n}\n\nfunction isAsChildEventHandler(propName: string): boolean {\n return /^on[A-Z]/.test(propName);\n}\n\nfunction getAsChildEventHandler(value: unknown): ((...args: unknown[]) => unknown) | undefined {\n return typeof value === "function" ? (value as (...args: unknown[]) => unknown) : undefined;\n}\n\nfunction composeAsChildEventHandlers(\n parentHandler: (...args: unknown[]) => unknown,\n childHandler: (...args: unknown[]) => unknown,\n eventOrder: NonNullable<AsChildMergeOptions["eventOrder"]>,\n): (...args: unknown[]) => void {\n return (...args) => {\n if (eventOrder === "parent-first") {\n parentHandler(...args);\n if (!isDefaultPrevented(args[0])) {\n childHandler(...args);\n }\n return;\n }\n\n childHandler(...args);\n if (!isDefaultPrevented(args[0])) {\n parentHandler(...args);\n }\n };\n}\n\nfunction isDefaultPrevented(value: unknown): boolean {\n if (typeof value !== "object" || value === null) return false;\n const event = value as { defaultPrevented?: boolean };\n return event.defaultPrevented === true;\n}\n\ntype RefCleanup = () => void;\n\nexport function setRef<T>(ref: React.Ref<T> | undefined, value: T | null): RefCleanup | undefined {\n if (!ref) return undefined;\n\n if (typeof ref === "function") {\n const cleanup = ref(value);\n return typeof cleanup === "function" ? cleanup : () => ref(null);\n }\n\n ref.current = value;\n return () => {\n ref.current = null;\n };\n}\n',
|
|
18879
|
+
sourceHash: "sha256:599814a3efff84ec03259a7fc7817f919aed593b5446c572ac0f7a7f4b9334d1",
|
|
18880
|
+
sourcePath: "packages/react/src/internal/compose-refs.ts"
|
|
18881
|
+
},
|
|
18882
|
+
{
|
|
18883
|
+
path: "src/components/starwind-primitives/internal/use-isomorphic-layout-effect.ts",
|
|
18884
|
+
content: '/**\n * Vendored by the Starwind CLI.\n * You own this file in your project.\n */\n\nimport * as React from "react";\n\nexport const useIsomorphicLayoutEffect =\n typeof window === "undefined" ? React.useEffect : React.useLayoutEffect;\n',
|
|
18885
|
+
sourceHash: "sha256:277183522889c375f2fd0e140ae643bec81b941da1d9f31fa49bd291a2ee84d9",
|
|
18886
|
+
sourcePath: "packages/react/src/internal/use-isomorphic-layout-effect.ts"
|
|
18887
|
+
}
|
|
18888
|
+
],
|
|
18889
|
+
packageRequirements: [
|
|
18890
|
+
{
|
|
18891
|
+
name: "@starwind-ui/runtime",
|
|
18892
|
+
range: "^0.1.0-beta.3"
|
|
17989
18893
|
},
|
|
17990
18894
|
{
|
|
17991
18895
|
name: "react",
|
|
@@ -18078,7 +18982,7 @@ if (!src && !image) {
|
|
|
18078
18982
|
packageRequirements: [
|
|
18079
18983
|
{
|
|
18080
18984
|
name: "@starwind-ui/runtime",
|
|
18081
|
-
range: "^0.1.0-beta.
|
|
18985
|
+
range: "^0.1.0-beta.3"
|
|
18082
18986
|
},
|
|
18083
18987
|
{
|
|
18084
18988
|
name: "react",
|