@luminescent/ui 0.10.0-4 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { componentQrl, inlinedQrl, _jsxQ, _fnSignal, _restProps, _jsxS, _jsxC, Slot, _wrapSignal, useStore, useLexicalScope, _IMMUTABLE, _wrapProp, useOn, _jsxBranch, useSignal, useStylesQrl } from "@builder.io/qwik";
1
+ import { componentQrl, inlinedQrl, _jsxQ, _fnSignal, _restProps, _jsxS, _jsxC, Slot, _jsxBranch, _wrapSignal, _IMMUTABLE, useStore, useLexicalScope, _wrapProp, useOn, useStylesQrl, useSignal } from "@builder.io/qwik";
2
2
  import { Fragment } from "@builder.io/qwik/jsx-runtime";
3
3
  const Anchor = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => /* @__PURE__ */ _jsxQ("span", null, {
4
4
  class: "block h-32 -mt-32",
@@ -6,6 +6,121 @@ const Anchor = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) =
6
6
  props
7
7
  ], "p0.id")
8
8
  }, null, 3, "Oa_0"), "Anchor_component_O7y4zyaazA0"));
9
+ const blobColorClasses = {
10
+ pink: [
11
+ "bg-pink-400",
12
+ "bg-pink-500",
13
+ "bg-pink-600"
14
+ ],
15
+ red: [
16
+ "bg-red-400",
17
+ "bg-red-500",
18
+ "bg-red-600"
19
+ ],
20
+ orange: [
21
+ "bg-orange-400",
22
+ "bg-orange-500",
23
+ "bg-orange-600"
24
+ ],
25
+ yellow: [
26
+ "bg-yellow-400",
27
+ "bg-yellow-500",
28
+ "bg-yellow-600"
29
+ ],
30
+ green: [
31
+ "bg-green-400",
32
+ "bg-green-500",
33
+ "bg-green-600"
34
+ ],
35
+ blue: [
36
+ "bg-blue-400",
37
+ "bg-blue-500",
38
+ "bg-blue-600"
39
+ ],
40
+ purple: [
41
+ "bg-purple-400",
42
+ "bg-purple-500",
43
+ "bg-purple-600"
44
+ ],
45
+ gray: [
46
+ "bg-gray-400",
47
+ "bg-gray-500",
48
+ "bg-gray-600"
49
+ ],
50
+ darkgray: [
51
+ "bg-gray-500",
52
+ "bg-gray-600",
53
+ "bg-gray-700"
54
+ ],
55
+ darkergray: [
56
+ "bg-gray-600",
57
+ "bg-gray-700",
58
+ "bg-gray-800"
59
+ ]
60
+ };
61
+ const blobClasses = [
62
+ "animate-blob",
63
+ "animate-blob1",
64
+ "animate-blob2",
65
+ "animate-blob3",
66
+ "animate-blob4",
67
+ "animate-blob5",
68
+ "animate-blob6"
69
+ ];
70
+ const Blobs = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
71
+ const props1 = _restProps(props, [
72
+ "color",
73
+ "blur"
74
+ ]);
75
+ const blob = Math.round(Math.random() * 6);
76
+ const colorClass = typeof (props.color ?? "darkgray") == "string" ? blobColorClasses[props.color ?? "darkgray"] : props.color ?? "darkgray";
77
+ return /* @__PURE__ */ _jsxQ("div", {
78
+ class: {
79
+ "motion-reduce:hidden absolute -z-10 inset-0 transition-all animate-in fade-in anim-duration-[2s]": true,
80
+ ...props1.class
81
+ }
82
+ }, {
83
+ style: {
84
+ containerType: "size"
85
+ }
86
+ }, [
87
+ /* @__PURE__ */ _jsxQ("div", {
88
+ class: {
89
+ "absolute top-0 w-[30cqw] h-[30cqw] rounded-full opacity-20 ease-in-out": true,
90
+ "blur-sm": (props.blur ?? "xl") === "sm",
91
+ "blur-md": (props.blur ?? "xl") === "md",
92
+ "blur-lg": (props.blur ?? "xl") === "lg",
93
+ "blur-xl": (props.blur ?? "xl") === "xl",
94
+ [blobClasses[blob]]: true,
95
+ [colorClass[0]]: true
96
+ }
97
+ }, null, null, 3, null),
98
+ /* @__PURE__ */ _jsxQ("div", {
99
+ class: {
100
+ "absolute top-0 w-[30cqw] h-[30cqw] rounded-full opacity-20 ease-in-out": true,
101
+ "blur-sm": (props.blur ?? "xl") === "sm",
102
+ "blur-md": (props.blur ?? "xl") === "md",
103
+ "blur-lg": (props.blur ?? "xl") === "lg",
104
+ "blur-xl": (props.blur ?? "xl") === "xl",
105
+ "anim-delay-[-5s]": true,
106
+ [blobClasses[blob]]: true,
107
+ [colorClass[1]]: true
108
+ }
109
+ }, null, null, 3, null),
110
+ /* @__PURE__ */ _jsxQ("div", {
111
+ class: {
112
+ "absolute top-0 w-[30cqw] h-[30cqw] rounded-full opacity-20 ease-in-out": true,
113
+ "blur-sm": (props.blur ?? "xl") === "sm",
114
+ "blur-md": (props.blur ?? "xl") === "md",
115
+ "blur-lg": (props.blur ?? "xl") === "lg",
116
+ "blur-xl": (props.blur ?? "xl") === "xl",
117
+ "anim-delay-[-10s]": true,
118
+ [blobClasses[blob]]: true,
119
+ [colorClass[2]]: true
120
+ }
121
+ }, null, null, 3, null)
122
+ ], 1, "OL_0");
123
+ }, "Blobs_component_246Oa50YM60"));
9
124
  const buttonColorClasses = {
10
125
  blue: "bg-blue-600/90 border-blue-500 hover:bg-blue-500 active:bg-blue-400 focus:border-blue-400",
11
126
  purple: "bg-purple-600/90 border-purple-500 hover:bg-purple-500 active:bg-purple-400 focus:border-purple-400",
@@ -85,12 +200,7 @@ const cardColorClasses = {
85
200
  bg: "bg-pink-400/60 border-pink-400",
86
201
  hover: "hover:bg-pink-400/20",
87
202
  click: "active:bg-pink-300/20"
88
- },
89
- blobs: [
90
- "bg-pink-400",
91
- "bg-pink-500",
92
- "bg-pink-600"
93
- ]
203
+ }
94
204
  },
95
205
  red: {
96
206
  card: {
@@ -98,12 +208,7 @@ const cardColorClasses = {
98
208
  bg: "bg-red-400/60 border-red-400",
99
209
  hover: "hover:bg-red-400/20",
100
210
  click: "active:bg-red-300/20"
101
- },
102
- blobs: [
103
- "bg-red-400",
104
- "bg-red-500",
105
- "bg-red-600"
106
- ]
211
+ }
107
212
  },
108
213
  orange: {
109
214
  card: {
@@ -111,12 +216,7 @@ const cardColorClasses = {
111
216
  bg: "bg-orange-400/60 border-orange-400",
112
217
  hover: "hover:bg-orange-400/20",
113
218
  click: "active:bg-orange-300/20"
114
- },
115
- blobs: [
116
- "bg-orange-400",
117
- "bg-orange-500",
118
- "bg-orange-600"
119
- ]
219
+ }
120
220
  },
121
221
  yellow: {
122
222
  card: {
@@ -124,12 +224,7 @@ const cardColorClasses = {
124
224
  bg: "bg-yellow-400/60 border-yellow-400",
125
225
  hover: "hover:bg-yellow-400/20",
126
226
  click: "active:bg-yellow-300/20"
127
- },
128
- blobs: [
129
- "bg-yellow-400",
130
- "bg-yellow-500",
131
- "bg-yellow-600"
132
- ]
227
+ }
133
228
  },
134
229
  green: {
135
230
  card: {
@@ -137,12 +232,7 @@ const cardColorClasses = {
137
232
  bg: "bg-green-400/60 border-green-400",
138
233
  hover: "hover:bg-green-400/20",
139
234
  click: "active:bg-green-300/20"
140
- },
141
- blobs: [
142
- "bg-green-400",
143
- "bg-green-500",
144
- "bg-green-600"
145
- ]
235
+ }
146
236
  },
147
237
  blue: {
148
238
  card: {
@@ -150,12 +240,7 @@ const cardColorClasses = {
150
240
  bg: "bg-blue-400/60 border-blue-400",
151
241
  hover: "hover:bg-blue-400/20",
152
242
  click: "active:bg-blue-300/20"
153
- },
154
- blobs: [
155
- "bg-blue-400",
156
- "bg-blue-500",
157
- "bg-blue-600"
158
- ]
243
+ }
159
244
  },
160
245
  purple: {
161
246
  card: {
@@ -163,12 +248,7 @@ const cardColorClasses = {
163
248
  bg: "bg-purple-400/60 border-purple-400",
164
249
  hover: "hover:bg-purple-400/20",
165
250
  click: "active:bg-purple-300/20"
166
- },
167
- blobs: [
168
- "bg-purple-400",
169
- "bg-purple-500",
170
- "bg-purple-600"
171
- ]
251
+ }
172
252
  },
173
253
  gray: {
174
254
  card: {
@@ -176,12 +256,7 @@ const cardColorClasses = {
176
256
  bg: "bg-gray-400/60 border-gray-400",
177
257
  hover: "hover:bg-gray-400/20",
178
258
  click: "active:bg-gray-300/20"
179
- },
180
- blobs: [
181
- "bg-gray-400",
182
- "bg-gray-500",
183
- "bg-gray-600"
184
- ]
259
+ }
185
260
  },
186
261
  darkgray: {
187
262
  card: {
@@ -189,12 +264,7 @@ const cardColorClasses = {
189
264
  bg: "bg-gray-800/60 border-gray-800",
190
265
  hover: "hover:bg-gray-800/40",
191
266
  click: "active:bg-gray-700/40"
192
- },
193
- blobs: [
194
- "bg-gray-500",
195
- "bg-gray-600",
196
- "bg-gray-700"
197
- ]
267
+ }
198
268
  },
199
269
  darkergray: {
200
270
  card: {
@@ -202,31 +272,17 @@ const cardColorClasses = {
202
272
  bg: "bg-gray-900/60 border-gray-900",
203
273
  hover: "hover:bg-gray-900/50",
204
274
  click: "active:bg-gray-800/50"
205
- },
206
- blobs: [
207
- "bg-gray-600",
208
- "bg-gray-700",
209
- "bg-gray-800"
210
- ]
275
+ }
211
276
  }
212
277
  };
213
- const blobClasses = [
214
- "animate-blob",
215
- "animate-blob1",
216
- "animate-blob2",
217
- "animate-blob3",
218
- "animate-blob4",
219
- "animate-blob5",
220
- "animate-blob6"
221
- ];
222
278
  const Card = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
279
+ _jsxBranch();
223
280
  const props1 = _restProps(props, [
224
281
  "color",
225
282
  "hover",
226
283
  "row",
227
284
  "blobs"
228
285
  ]);
229
- const blob = Math.round(Math.random() * 6);
230
286
  return /* @__PURE__ */ _jsxS("div", {
231
287
  ...props1,
232
288
  children: [
@@ -244,36 +300,20 @@ const Card = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) =>
244
300
  }, {
245
301
  class: "absolute inset-0"
246
302
  }, null, 3, "OW_1"),
247
- props.blobs && /* @__PURE__ */ _jsxQ("div", null, {
248
- class: "motion-reduce:hidden absolute -z-10 inset-0 transition-all overflow-clip animate-in fade-in anim-duration-[2s]",
249
- style: {
250
- containerType: "size"
303
+ props.blobs && /* @__PURE__ */ _jsxC(Blobs, {
304
+ get color() {
305
+ return props.color ?? "darkgray";
306
+ },
307
+ class: {
308
+ "overflow-clip": true
309
+ },
310
+ [_IMMUTABLE]: {
311
+ class: _IMMUTABLE,
312
+ color: _fnSignal((p0) => p0.color ?? "darkgray", [
313
+ props
314
+ ], 'p0.color??"darkgray"')
251
315
  }
252
- }, [
253
- /* @__PURE__ */ _jsxQ("div", {
254
- class: {
255
- "absolute top-0 w-[30cqw] h-[30cqw] rounded-full opacity-20 ease-in-out blur-xl": true,
256
- [blobClasses[blob]]: true,
257
- [cardColorClasses[props.color ?? "darkgray"].blobs[0]]: true
258
- }
259
- }, null, null, 3, null),
260
- /* @__PURE__ */ _jsxQ("div", {
261
- class: {
262
- "absolute top-0 w-[30cqw] h-[30cqw] rounded-full opacity-20 ease-in-out blur-xl": true,
263
- "anim-delay-[-5s]": true,
264
- [blobClasses[blob]]: true,
265
- [cardColorClasses[props.color ?? "darkgray"].blobs[1]]: true
266
- }
267
- }, null, null, 3, null),
268
- /* @__PURE__ */ _jsxQ("div", {
269
- class: {
270
- "absolute top-0 w-[30cqw] h-[30cqw] rounded-full opacity-20 ease-in-out blur-xl": true,
271
- "anim-delay-[-10s]": true,
272
- [blobClasses[blob]]: true,
273
- [cardColorClasses[props.color ?? "darkgray"].blobs[2]]: true
274
- }
275
- }, null, null, 3, null)
276
- ], 1, "OW_2")
316
+ }, 3, "OW_2")
277
317
  ],
278
318
  class: {
279
319
  "relative p-8 border rounded-lg motion-safe:transition-all": true,
@@ -784,6 +824,204 @@ const ColorPickerRaw = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((
784
824
  }), 1, null)
785
825
  ], 1, "0s_4");
786
826
  }, "ColorPickerRaw_component_CWQPPcezhyA"));
827
+ const ChevronDown = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
828
+ return /* @__PURE__ */ _jsxS("svg", {
829
+ ...props,
830
+ children: /* @__PURE__ */ _jsxQ("path", null, {
831
+ d: "M112 184l144 144 144-144",
832
+ fill: "none",
833
+ stroke: "currentColor",
834
+ "stroke-linecap": "round",
835
+ "stroke-linejoin": "round",
836
+ "stroke-width": "48"
837
+ }, null, 3, null)
838
+ }, {
839
+ height: _fnSignal((p0) => p0.width, [
840
+ props
841
+ ], "p0.width"),
842
+ viewBox: "0 0 512 512",
843
+ xmlns: "http://www.w3.org/2000/svg"
844
+ }, 0, "rN_0");
845
+ }, "ChevronDown_component_V0linof0cMQ"));
846
+ const Dropdown = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
847
+ return /* @__PURE__ */ _jsxQ("div", null, {
848
+ class: "flex flex-col"
849
+ }, [
850
+ /* @__PURE__ */ _jsxQ("label", null, {
851
+ class: "text-gray-300 pb-1 select-none",
852
+ for: _fnSignal((p0) => p0.id, [
853
+ props
854
+ ], "p0.id")
855
+ }, /* @__PURE__ */ _jsxC(Slot, null, 3, "Zz_0"), 1, null),
856
+ /* @__PURE__ */ _jsxC(DropdownRaw, {
857
+ ...props
858
+ }, 0, "Zz_1")
859
+ ], 1, "Zz_2");
860
+ }, "Dropdown_component_B5UM3uiu2TE"));
861
+ const DropdownRaw = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
862
+ const props1 = _restProps(props, [
863
+ "id",
864
+ "values",
865
+ "class",
866
+ "display",
867
+ "color",
868
+ "size"
869
+ ]);
870
+ const store = useStore({
871
+ opened: false,
872
+ value: props1.value
873
+ });
874
+ useStylesQrl(/* @__PURE__ */ inlinedQrl(`
875
+ .lui-scroll {
876
+ scroll-behavior: smooth;
877
+ }
878
+ .lui-scroll::-webkit-scrollbar {
879
+ appearance: none;
880
+ -webkit-appearance: none;
881
+ width: 8px;
882
+ height: 8px;
883
+ }
884
+ .lui-scroll::-webkit-scrollbar-track {
885
+ background-color: transparent;
886
+ }
887
+ .lui-scroll::-webkit-scrollbar-thumb {
888
+ background-color: #ffffff20;
889
+ border: 1px solid #ffffff20;
890
+ border-radius: 3px;
891
+ }
892
+ .lui-scroll::-webkit-scrollbar-corner {
893
+ background-color: transparent;
894
+ }
895
+ `, "DropdownRaw_component_useStyles_UFDvrln9Bfk"));
896
+ return /* @__PURE__ */ _jsxQ("div", null, {
897
+ class: "relative touch-manipulation"
898
+ }, [
899
+ props.values && /* @__PURE__ */ _jsxS("select", {
900
+ ...props1,
901
+ children: props.values.map((value, i) => {
902
+ return /* @__PURE__ */ _jsxQ("option", {
903
+ value: _wrapSignal(value, "value")
904
+ }, null, `${value.value}`, 1, i);
905
+ })
906
+ }, {
907
+ class: {
908
+ "hidden": true
909
+ },
910
+ id: _fnSignal((p0) => p0.id, [
911
+ props
912
+ ], "p0.id")
913
+ }, 0, "Zz_3"),
914
+ /* @__PURE__ */ _jsxC(Button, {
915
+ get color() {
916
+ return props.color;
917
+ },
918
+ get size() {
919
+ return props.size ?? "sm";
920
+ },
921
+ get class() {
922
+ return {
923
+ "flex": true,
924
+ ...props.class
925
+ };
926
+ },
927
+ children: [
928
+ _fnSignal((p0) => p0.display, [
929
+ props
930
+ ], "p0.display"),
931
+ !props.display && /* @__PURE__ */ _jsxQ("span", null, {
932
+ class: "flex-1 text-left",
933
+ id: _fnSignal((p0) => `lui-${p0.id}-name`, [
934
+ props
935
+ ], "`lui-${p0.id}-name`")
936
+ }, props.values.find((value) => value.value.toString() === store.value)?.name ?? props.values[0].name, 1, "Zz_4"),
937
+ /* @__PURE__ */ _jsxC(ChevronDown, {
938
+ width: 16,
939
+ get class() {
940
+ return {
941
+ "motion-safe:transition-all duration-200": true,
942
+ "transform rotate-180": store.opened
943
+ };
944
+ },
945
+ [_IMMUTABLE]: {
946
+ class: _fnSignal((p0) => ({
947
+ "motion-safe:transition-all duration-200": true,
948
+ "transform rotate-180": p0.opened
949
+ }), [
950
+ store
951
+ ], '{"motion-safe:transition-all duration-200":true,"transform rotate-180":p0.opened}'),
952
+ width: _IMMUTABLE
953
+ }
954
+ }, 3, "Zz_5")
955
+ ],
956
+ onClick$: /* @__PURE__ */ inlinedQrl(() => {
957
+ const [store2] = useLexicalScope();
958
+ store2.opened = !store2.opened;
959
+ }, "DropdownRaw_component_div_Button_onClick_d8M33E0JtyQ", [
960
+ store
961
+ ]),
962
+ [_IMMUTABLE]: {
963
+ class: _fnSignal((p0) => ({
964
+ "flex": true,
965
+ ...p0.class
966
+ }), [
967
+ props
968
+ ], '{"flex":true,...p0.class}'),
969
+ color: _fnSignal((p0) => p0.color, [
970
+ props
971
+ ], "p0.color"),
972
+ onClick$: _IMMUTABLE,
973
+ size: _fnSignal((p0) => p0.size ?? "sm", [
974
+ props
975
+ ], 'p0.size??"sm"')
976
+ }
977
+ }, 1, "Zz_6"),
978
+ /* @__PURE__ */ _jsxQ("div", {
979
+ class: {
980
+ "motion-safe:transition-all absolute top-full left-0 p-1 mt-2 gap-1 bg-gray-800/50 backdrop-blur-xl flex flex-col rounded-lg border border-gray-700 z-[1000] max-h-72 lui-scroll overflow-auto select-none": true,
981
+ "pointer-events-none opacity-0 scale-95": !store.opened
982
+ }
983
+ }, {
984
+ id: _fnSignal((p0) => `lui-${p0.id}-opts`, [
985
+ props
986
+ ], "`lui-${p0.id}-opts`")
987
+ }, [
988
+ props.values.map(({ name, value, color = "transparent" }, i) => {
989
+ return /* @__PURE__ */ _jsxC(Button, {
990
+ color,
991
+ get size() {
992
+ return props.size ?? "sm";
993
+ },
994
+ children: name,
995
+ onClick$: /* @__PURE__ */ inlinedQrl(() => {
996
+ const [props2, store2, value2] = useLexicalScope();
997
+ store2.opened = false;
998
+ const select = document.getElementById(props2.id);
999
+ if (select) {
1000
+ select.value = value2.toString();
1001
+ select.dispatchEvent(new Event("change"));
1002
+ }
1003
+ store2.value = value2.toString();
1004
+ }, "DropdownRaw_component_div_div_Button_onClick_FOKnkeI0cno", [
1005
+ props,
1006
+ store,
1007
+ value
1008
+ ]),
1009
+ [_IMMUTABLE]: {
1010
+ size: _fnSignal((p0) => p0.size ?? "sm", [
1011
+ props
1012
+ ], 'p0.size??"sm"')
1013
+ }
1014
+ }, 1, i);
1015
+ }),
1016
+ /* @__PURE__ */ _jsxC(Slot, {
1017
+ name: "extra-buttons",
1018
+ [_IMMUTABLE]: {
1019
+ name: _IMMUTABLE
1020
+ }
1021
+ }, 3, "Zz_7")
1022
+ ], 1, null)
1023
+ ], 1, "Zz_8");
1024
+ }, "DropdownRaw_component_Hj5Qd2ULo0U"));
787
1025
  const LoadingIcon = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
788
1026
  const props1 = _restProps(props, [
789
1027
  "width",
@@ -869,17 +1107,15 @@ const Nav = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
869
1107
  props
870
1108
  ], '{"motion-safe:transition-all duration-200 flex flex-col top-0 left-0 w-full z-50":true,"fixed":p0.fixed,"absolute":!p0.fixed}')
871
1109
  }, [
872
- /* @__PURE__ */ _jsxQ("div", null, {
873
- class: _fnSignal((p0) => ({
1110
+ /* @__PURE__ */ _jsxQ("div", {
1111
+ class: {
874
1112
  "sm:hidden motion-safe:transition-all flex flex-col px-2 items-center absolute w-full": true,
875
- "top-full mt-2": p0.value,
876
- "opacity-0 top-0": !p0.value
877
- }), [
878
- menu
879
- ], '{"sm:hidden motion-safe:transition-all flex flex-col px-2 items-center absolute w-full":true,"top-full mt-2":p0.value,"opacity-0 top-0":!p0.value}')
880
- }, /* @__PURE__ */ _jsxQ("div", null, {
1113
+ "top-full mt-2": menu.value,
1114
+ "opacity-0 top-0 scale-95": !menu.value
1115
+ }
1116
+ }, null, /* @__PURE__ */ _jsxQ("div", null, {
881
1117
  class: {
882
- "flex flex-col motion-safe:transition-all max-w-7xl w-full p-2 bg-gray-800/50 border border-gray-700/50 backdrop-blur-lg drop-shadow-xl rounded-lg": true
1118
+ "flex flex-col gap-2 motion-safe:transition-all max-w-7xl w-full p-2 bg-gray-800/50 border border-gray-700/50 backdrop-blur-lg drop-shadow-xl rounded-lg": true
883
1119
  }
884
1120
  }, /* @__PURE__ */ _jsxC(Slot, {
885
1121
  name: "mobile",
@@ -887,21 +1123,21 @@ const Nav = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
887
1123
  name: _IMMUTABLE
888
1124
  }
889
1125
  }, 3, "8r_0"), 1, null), 1, null),
890
- /* @__PURE__ */ _jsxQ("div", null, {
891
- class: _fnSignal((p0) => ({
892
- "bg-gray-800/50 border-b border-gray-700/50 backdrop-blur-lg drop-shadow-xl": !p0.floating,
893
- "p-2 pb-0": p0.floating
894
- }), [
895
- props
896
- ], '{"bg-gray-800/50 border-b border-gray-700/50 backdrop-blur-lg drop-shadow-xl":!p0.floating,"p-2 pb-0":p0.floating}')
897
- }, /* @__PURE__ */ _jsxQ("div", {
1126
+ /* @__PURE__ */ _jsxQ("div", {
1127
+ class: {
1128
+ "bg-gray-800/50 border-b border-gray-700/50": !props.floating,
1129
+ 'before:absolute before:content-[""] before:w-full before:h-full before:backdrop-blur-lg before:drop-shadow-xl before:-z-10': !props.floating,
1130
+ "relative mt-2 mx-2": props.floating
1131
+ }
1132
+ }, null, /* @__PURE__ */ _jsxQ("div", {
898
1133
  class: {
899
- "flex justify-evenly w-full mx-auto px-4 py-2 max-w-7xl": true,
900
- "bg-gray-800/50 border border-gray-700/50 backdrop-blur-lg drop-shadow-xl rounded-lg": props.floating
1134
+ "flex justify-evenly w-full mx-auto px-2 max-w-7xl": true,
1135
+ "bg-gray-800/50 border border-gray-700/50 rounded-lg": props.floating,
1136
+ 'before:absolute before:content-[""] before:w-full before:h-full before:backdrop-blur-lg before:drop-shadow-xl before:-z-10': props.floating
901
1137
  }
902
1138
  }, null, [
903
1139
  /* @__PURE__ */ _jsxQ("div", null, {
904
- class: "flex items-center flex-1 gap-2 justify-start"
1140
+ class: "flex items-center flex-1 gap-2 py-2 justify-start"
905
1141
  }, /* @__PURE__ */ _jsxC(Slot, {
906
1142
  name: "start",
907
1143
  [_IMMUTABLE]: {
@@ -909,7 +1145,7 @@ const Nav = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
909
1145
  }
910
1146
  }, 3, "8r_1"), 1, null),
911
1147
  /* @__PURE__ */ _jsxQ("div", null, {
912
- class: "flex items-center flex-1 gap-2 justify-center"
1148
+ class: "flex items-center flex-1 gap-2 py-2 justify-center"
913
1149
  }, /* @__PURE__ */ _jsxC(Slot, {
914
1150
  name: "center",
915
1151
  [_IMMUTABLE]: {
@@ -917,7 +1153,7 @@ const Nav = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
917
1153
  }
918
1154
  }, 3, "8r_2"), 1, null),
919
1155
  /* @__PURE__ */ _jsxQ("div", null, {
920
- class: "flex items-center flex-1 gap-2 justify-end"
1156
+ class: "flex items-center flex-1 gap-2 py-2 justify-end"
921
1157
  }, [
922
1158
  /* @__PURE__ */ _jsxC(Slot, {
923
1159
  name: "end",
@@ -1144,200 +1380,6 @@ const NumberInputRaw = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((
1144
1380
  }, 0, "gk_7")
1145
1381
  ], 1, "gk_8");
1146
1382
  }, "NumberInputRaw_component_8sGf0eS1rvo"));
1147
- const ChevronDown = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
1148
- return /* @__PURE__ */ _jsxS("svg", {
1149
- ...props,
1150
- children: /* @__PURE__ */ _jsxQ("path", null, {
1151
- d: "M112 184l144 144 144-144",
1152
- fill: "none",
1153
- stroke: "currentColor",
1154
- "stroke-linecap": "round",
1155
- "stroke-linejoin": "round",
1156
- "stroke-width": "48"
1157
- }, null, 3, null)
1158
- }, {
1159
- height: _fnSignal((p0) => p0.width, [
1160
- props
1161
- ], "p0.width"),
1162
- viewBox: "0 0 512 512",
1163
- xmlns: "http://www.w3.org/2000/svg"
1164
- }, 0, "rN_0");
1165
- }, "ChevronDown_component_V0linof0cMQ"));
1166
- const SelectInput = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
1167
- return /* @__PURE__ */ _jsxQ("div", null, {
1168
- class: "flex flex-col"
1169
- }, [
1170
- /* @__PURE__ */ _jsxQ("label", null, {
1171
- class: "text-gray-300 pb-1 select-none",
1172
- for: _fnSignal((p0) => p0.id, [
1173
- props
1174
- ], "p0.id")
1175
- }, /* @__PURE__ */ _jsxC(Slot, null, 3, "cA_0"), 1, null),
1176
- /* @__PURE__ */ _jsxC(SelectInputRaw, {
1177
- ...props
1178
- }, 0, "cA_1")
1179
- ], 1, "cA_2");
1180
- }, "SelectInput_component_m80ag1KuJSk"));
1181
- const SelectInputRaw = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
1182
- const props1 = _restProps(props, [
1183
- "id",
1184
- "values",
1185
- "class",
1186
- "display",
1187
- "color",
1188
- "size"
1189
- ]);
1190
- const store = useStore({
1191
- opened: false
1192
- });
1193
- useStylesQrl(/* @__PURE__ */ inlinedQrl(`
1194
- .lui-scroll {
1195
- scroll-behavior: smooth;
1196
- }
1197
- .lui-scroll::-webkit-scrollbar {
1198
- appearance: none;
1199
- -webkit-appearance: none;
1200
- width: 8px;
1201
- height: 8px;
1202
- }
1203
- .lui-scroll::-webkit-scrollbar-track {
1204
- background-color: transparent;
1205
- }
1206
- .lui-scroll::-webkit-scrollbar-thumb {
1207
- background-color: #ffffff20;
1208
- border: 1px solid #ffffff20;
1209
- border-radius: 3px;
1210
- }
1211
- .lui-scroll::-webkit-scrollbar-corner {
1212
- background-color: transparent;
1213
- }
1214
- `, "SelectInputRaw_component_useStyles_Zc40Za0ngqc"));
1215
- return /* @__PURE__ */ _jsxQ("div", null, {
1216
- class: "relative touch-manipulation"
1217
- }, [
1218
- /* @__PURE__ */ _jsxS("select", {
1219
- ...props1,
1220
- children: props.values.map((value, i) => {
1221
- return /* @__PURE__ */ _jsxQ("option", {
1222
- value: _wrapSignal(value, "value")
1223
- }, null, value.name, 1, i);
1224
- })
1225
- }, {
1226
- class: {
1227
- "hidden": true
1228
- },
1229
- id: _fnSignal((p0) => p0.id, [
1230
- props
1231
- ], "p0.id")
1232
- }, 0, null),
1233
- /* @__PURE__ */ _jsxC(Button, {
1234
- get color() {
1235
- return props.color;
1236
- },
1237
- get size() {
1238
- return props.size ?? "sm";
1239
- },
1240
- get class() {
1241
- return {
1242
- "flex": true,
1243
- ...props.class
1244
- };
1245
- },
1246
- children: [
1247
- _fnSignal((p0) => p0.display, [
1248
- props
1249
- ], "p0.display"),
1250
- !props.display && /* @__PURE__ */ _jsxQ("span", null, {
1251
- class: "flex-1 text-left",
1252
- id: _fnSignal((p0) => `lui-${p0.id}-name`, [
1253
- props
1254
- ], "`lui-${p0.id}-name`")
1255
- }, props.values.find((value) => value.value.toString() === props1.value)?.name ?? props.values[0].name, 1, "cA_3"),
1256
- /* @__PURE__ */ _jsxC(ChevronDown, {
1257
- width: 16,
1258
- get class() {
1259
- return {
1260
- "motion-safe:transition-all duration-200": true,
1261
- "transform rotate-180": store.opened
1262
- };
1263
- },
1264
- [_IMMUTABLE]: {
1265
- class: _fnSignal((p0) => ({
1266
- "motion-safe:transition-all duration-200": true,
1267
- "transform rotate-180": p0.opened
1268
- }), [
1269
- store
1270
- ], '{"motion-safe:transition-all duration-200":true,"transform rotate-180":p0.opened}'),
1271
- width: _IMMUTABLE
1272
- }
1273
- }, 3, "cA_4")
1274
- ],
1275
- onClick$: /* @__PURE__ */ inlinedQrl(() => {
1276
- const [store2] = useLexicalScope();
1277
- store2.opened = !store2.opened;
1278
- }, "SelectInputRaw_component_div_Button_onClick_9Gkbglaqsdw", [
1279
- store
1280
- ]),
1281
- [_IMMUTABLE]: {
1282
- class: _fnSignal((p0) => ({
1283
- "flex": true,
1284
- ...p0.class
1285
- }), [
1286
- props
1287
- ], '{"flex":true,...p0.class}'),
1288
- color: _fnSignal((p0) => p0.color, [
1289
- props
1290
- ], "p0.color"),
1291
- onClick$: _IMMUTABLE,
1292
- size: _fnSignal((p0) => p0.size ?? "sm", [
1293
- props
1294
- ], 'p0.size??"sm"')
1295
- }
1296
- }, 1, "cA_5"),
1297
- /* @__PURE__ */ _jsxQ("div", {
1298
- class: {
1299
- "motion-safe:transition-all absolute top-full left-0 p-1 mt-2 gap-1 bg-gray-800/50 backdrop-blur-xl flex flex-col rounded-lg border border-gray-700 z-[1000] max-h-72 lui-scroll overflow-auto select-none": true,
1300
- "pointer-events-none opacity-0 scale-95": !store.opened
1301
- }
1302
- }, {
1303
- id: _fnSignal((p0) => `lui-${p0.id}-opts`, [
1304
- props
1305
- ], "`lui-${p0.id}-opts`")
1306
- }, props.values.map((value, i) => {
1307
- return /* @__PURE__ */ _jsxC(Button, {
1308
- color: "transparent",
1309
- onClick$: /* @__PURE__ */ inlinedQrl(() => {
1310
- const [props2, store2, value2] = useLexicalScope();
1311
- store2.opened = false;
1312
- const select = document.getElementById(props2.id);
1313
- select.value = value2.value.toString();
1314
- const name = document.getElementById(`lui-${props2.id}-name`);
1315
- if (name)
1316
- name.textContent = value2.name;
1317
- select.dispatchEvent(new Event("change"));
1318
- }, "SelectInputRaw_component_div_div_Button_onClick_mLa0FdeKCLw", [
1319
- props,
1320
- store,
1321
- value
1322
- ]),
1323
- get class() {
1324
- return {
1325
- "opacity-0": !store.opened
1326
- };
1327
- },
1328
- children: _wrapSignal(value, "name"),
1329
- [_IMMUTABLE]: {
1330
- class: _fnSignal((p0) => ({
1331
- "opacity-0": !p0.opened
1332
- }), [
1333
- store
1334
- ], '{"opacity-0":!p0.opened}'),
1335
- color: _IMMUTABLE
1336
- }
1337
- }, 1, i);
1338
- }), 1, null)
1339
- ], 1, "cA_6");
1340
- }, "SelectInputRaw_component_Itdx5yPeQd4"));
1341
1383
  const TextArea = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
1342
1384
  return /* @__PURE__ */ _jsxQ("div", null, {
1343
1385
  class: "flex flex-col"
@@ -1363,7 +1405,7 @@ const TextAreaRaw = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((pro
1363
1405
  class: {
1364
1406
  [InputClasses]: true,
1365
1407
  "h-32": true,
1366
- "cursor-pointer active:bg-gray-600": props.output,
1408
+ "cursor-pointer active:bg-gray-600 select-none": props.output,
1367
1409
  ...props1.class
1368
1410
  },
1369
1411
  onClick$: props.output ? /* @__PURE__ */ inlinedQrl((event, element) => {
@@ -1865,11 +1907,14 @@ const LogoWaterfall = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((p
1865
1907
  }, "LogoWaterfall_component_1hFl8GlECLI"));
1866
1908
  export {
1867
1909
  Anchor,
1910
+ Blobs,
1868
1911
  Button,
1869
1912
  ButtonAnchor,
1870
1913
  Card,
1871
1914
  ColorInput,
1872
1915
  ColorPickerRaw,
1916
+ Dropdown,
1917
+ DropdownRaw,
1873
1918
  Header,
1874
1919
  InputClasses,
1875
1920
  LoadingIcon,
@@ -1887,8 +1932,6 @@ export {
1887
1932
  Nav,
1888
1933
  NumberInput,
1889
1934
  NumberInputRaw,
1890
- SelectInput,
1891
- SelectInputRaw,
1892
1935
  TextArea,
1893
1936
  TextAreaRaw,
1894
1937
  TextInput,
@@ -1896,6 +1939,7 @@ export {
1896
1939
  Toggle,
1897
1940
  blobClasses as _auto_blobClasses,
1898
1941
  buttonClass as _auto_buttonClass,
1942
+ blobColorClasses,
1899
1943
  buttonColorClasses,
1900
1944
  cardColorClasses,
1901
1945
  sizeClasses