@pathscale/ui 0.0.1 → 0.0.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.
Files changed (131) hide show
  1. package/dist/Accordion-JZGWxBMK.d.ts +27 -0
  2. package/dist/Autocomplete-gLkjMHrc.d.ts +28 -0
  3. package/dist/Checkbox-BjaweaOH.d.ts +40 -0
  4. package/dist/Field-DfUn85_1.d.ts +49 -0
  5. package/dist/{Input-BQbTzjIO.d.ts → Input-C1bm4HGf.d.ts} +1 -1
  6. package/dist/Pagination-CJtlFMHy.d.ts +43 -0
  7. package/dist/Progress-gN0xqhAF.d.ts +64 -0
  8. package/dist/Select-CWCDBvec.d.ts +44 -0
  9. package/dist/Steps-1miUeyCD.d.ts +34 -0
  10. package/dist/Switch-BiKX7HZ2.d.ts +72 -0
  11. package/dist/Table-CGa6Nop3.d.ts +39 -0
  12. package/dist/Tabs-BEnRV6GG.d.ts +42 -0
  13. package/dist/Tag-BPrhn-Ne.d.ts +42 -0
  14. package/dist/Timeline-Bd4SxHMT.d.ts +14 -0
  15. package/dist/Tooltip-BfPongoz.d.ts +53 -0
  16. package/dist/Upload-BrFuZ4JA.d.ts +39 -0
  17. package/dist/chunk/3IHANYRN.js +98 -0
  18. package/dist/chunk/3VOILEMN.js +187 -0
  19. package/dist/chunk/4TWLQ3IA.js +103 -0
  20. package/dist/chunk/6SBH3KSM.jsx +96 -0
  21. package/dist/chunk/7ROVLN3J.js +175 -0
  22. package/dist/chunk/BBDVIXAH.jsx +194 -0
  23. package/dist/chunk/{4RCWSX7S.jsx → C4745OZS.jsx} +7 -7
  24. package/dist/chunk/C4YO33NN.jsx +179 -0
  25. package/dist/chunk/CJZGTNJZ.js +115 -0
  26. package/dist/chunk/D2BEL4SM.jsx +169 -0
  27. package/dist/chunk/DBQ7IOPU.js +189 -0
  28. package/dist/chunk/DNTGSCVF.jsx +100 -0
  29. package/dist/chunk/DSTUGZW6.jsx +81 -0
  30. package/dist/chunk/ELRAUORW.jsx +179 -0
  31. package/dist/chunk/FKSQPGOD.jsx +170 -0
  32. package/dist/chunk/FPUQ25SO.js +137 -0
  33. package/dist/chunk/GLEAR2TS.jsx +160 -0
  34. package/dist/chunk/GMIXRYN3.js +138 -0
  35. package/dist/chunk/HWAGW5N4.jsx +118 -0
  36. package/dist/chunk/JWRGKHDO.js +172 -0
  37. package/dist/chunk/KV6LTJHI.jsx +175 -0
  38. package/dist/chunk/LAQPAV5I.jsx +187 -0
  39. package/dist/chunk/LI3HCFL7.jsx +132 -0
  40. package/dist/chunk/MAX47D6F.js +99 -0
  41. package/dist/chunk/{2JGZSAW5.js → MI773TMC.js} +6 -6
  42. package/dist/chunk/MMTAND25.jsx +126 -0
  43. package/dist/chunk/MXG3MBEN.jsx +148 -0
  44. package/dist/chunk/MYERRMTM.js +200 -0
  45. package/dist/chunk/NZKPDBTE.js +118 -0
  46. package/dist/chunk/OSJ3P7PI.js +189 -0
  47. package/dist/chunk/P2L6LFLS.js +144 -0
  48. package/dist/chunk/QLESLIWS.jsx +110 -0
  49. package/dist/chunk/QONDPQ2I.jsx +105 -0
  50. package/dist/chunk/QYEMOKUG.js +125 -0
  51. package/dist/chunk/S3ZDSQSV.js +98 -0
  52. package/dist/chunk/SCJSBRV2.jsx +39 -0
  53. package/dist/chunk/STKRVQR6.jsx +130 -0
  54. package/dist/chunk/{NZZRKP74.js → TFLJI242.js} +1 -25
  55. package/dist/chunk/TT2JYGLU.js +218 -0
  56. package/dist/chunk/V6Y5E7BL.js +133 -0
  57. package/dist/chunk/VN5BKHA2.jsx +97 -0
  58. package/dist/chunk/WOT36Q7O.js +166 -0
  59. package/dist/chunk/WUZETUQR.js +92 -0
  60. package/dist/chunk/XD34JKSU.jsx +201 -0
  61. package/dist/chunk/{GA2HCFRS.jsx → YAQK2KFY.jsx} +1 -35
  62. package/dist/chunk/YMO6RPS6.js +26 -0
  63. package/dist/components/Progress/index.d.ts +4 -39
  64. package/dist/components/Progress/index.js +1 -278
  65. package/dist/components/Progress/index.jsx +4 -199
  66. package/dist/components/accordion/index.d.ts +5 -24
  67. package/dist/components/accordion/index.js +1 -118
  68. package/dist/components/accordion/index.jsx +3 -100
  69. package/dist/components/autocomplete/index.d.ts +8 -0
  70. package/dist/components/autocomplete/index.js +1 -0
  71. package/dist/components/autocomplete/index.jsx +7 -0
  72. package/dist/components/avatar/index.js +1 -1
  73. package/dist/components/avatar/index.jsx +3 -3
  74. package/dist/components/breadcrumb/index.d.ts +2 -2
  75. package/dist/components/breadcrumb/index.js +1 -133
  76. package/dist/components/breadcrumb/index.jsx +4 -120
  77. package/dist/components/button/index.js +1 -1
  78. package/dist/components/button/index.jsx +2 -1
  79. package/dist/components/checkbox/index.d.ts +5 -37
  80. package/dist/components/checkbox/index.js +1 -137
  81. package/dist/components/checkbox/index.jsx +3 -143
  82. package/dist/components/dropdown/index.d.ts +43 -0
  83. package/dist/components/dropdown/index.js +1 -0
  84. package/dist/components/dropdown/index.jsx +12 -0
  85. package/dist/components/field/index.d.ts +7 -0
  86. package/dist/components/field/index.js +1 -0
  87. package/dist/components/field/index.jsx +7 -0
  88. package/dist/components/input/index.d.ts +2 -2
  89. package/dist/components/menu/index.d.ts +66 -0
  90. package/dist/components/menu/index.js +1 -0
  91. package/dist/components/menu/index.jsx +11 -0
  92. package/dist/components/navbar/index.d.ts +74 -0
  93. package/dist/components/navbar/index.js +1 -0
  94. package/dist/components/navbar/index.jsx +11 -0
  95. package/dist/components/pagination/index.d.ts +5 -40
  96. package/dist/components/pagination/index.js +1 -189
  97. package/dist/components/pagination/index.jsx +3 -174
  98. package/dist/components/select/index.d.ts +5 -41
  99. package/dist/components/select/index.js +1 -98
  100. package/dist/components/select/index.jsx +3 -91
  101. package/dist/components/steps/index.d.ts +8 -0
  102. package/dist/components/steps/index.js +1 -0
  103. package/dist/components/steps/index.jsx +7 -0
  104. package/dist/components/switch/index.d.ts +5 -69
  105. package/dist/components/switch/index.js +1 -144
  106. package/dist/components/switch/index.jsx +3 -155
  107. package/dist/components/table/index.d.ts +8 -0
  108. package/dist/components/table/index.js +1 -0
  109. package/dist/components/table/index.jsx +7 -0
  110. package/dist/components/tabs/index.d.ts +5 -39
  111. package/dist/components/tabs/index.js +1 -166
  112. package/dist/components/tabs/index.jsx +3 -170
  113. package/dist/components/tag/index.d.ts +5 -39
  114. package/dist/components/tag/index.js +1 -115
  115. package/dist/components/tag/index.jsx +3 -127
  116. package/dist/components/timeline/index.d.ts +7 -0
  117. package/dist/components/timeline/index.js +1 -0
  118. package/dist/components/timeline/index.jsx +7 -0
  119. package/dist/components/toast/index.d.ts +24 -0
  120. package/dist/components/toast/index.js +1 -0
  121. package/dist/components/toast/index.jsx +11 -0
  122. package/dist/components/tooltip/index.d.ts +5 -50
  123. package/dist/components/tooltip/index.js +1 -103
  124. package/dist/components/tooltip/index.jsx +3 -95
  125. package/dist/components/upload/index.d.ts +5 -36
  126. package/dist/components/upload/index.js +1 -98
  127. package/dist/components/upload/index.jsx +3 -105
  128. package/dist/index.d.ts +22 -2
  129. package/dist/index.js +23 -2
  130. package/dist/index.jsx +108 -8
  131. package/package.json +1 -1
@@ -0,0 +1,200 @@
1
+ import { cva } from './HKS7ET6T.js';
2
+ import { delegateEvents, template, className, insert, createComponent, effect, use } from 'solid-js/web';
3
+ import { createSignal, createEffect, onCleanup, Show, For } from 'solid-js';
4
+
5
+ // src/components/autocomplete/Autocomplete.styles.ts
6
+ var autocompleteWrapperClass = "relative w-full";
7
+ var inputBoxClass = cva(
8
+ "w-full rounded-md border border-gray-300 px-4 py-2 text-sm outline-none transition-colors",
9
+ {
10
+ variants: {
11
+ state: {
12
+ default: "bg-white text-gray-800 hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500",
13
+ disabled: "bg-gray-100 text-gray-400 cursor-not-allowed"
14
+ },
15
+ size: {
16
+ sm: "text-sm py-1 px-2",
17
+ md: "text-sm py-2 px-4",
18
+ lg: "text-base py-3 px-4"
19
+ }
20
+ },
21
+ defaultVariants: {
22
+ state: "default",
23
+ size: "md"
24
+ }
25
+ }
26
+ );
27
+ var dropdownMenuClass = cva(
28
+ "absolute left-0 right-0 z-10 mt-1 rounded-md border border-gray-200 bg-white shadow-md max-h-60 overflow-auto text-sm",
29
+ {
30
+ variants: {
31
+ isOpen: {
32
+ true: "block",
33
+ false: "hidden"
34
+ }
35
+ },
36
+ defaultVariants: {
37
+ isOpen: true
38
+ }
39
+ }
40
+ );
41
+ var dropdownItemClass = cva(
42
+ "w-full text-left px-4 py-2 cursor-pointer transition-colors",
43
+ {
44
+ variants: {
45
+ active: {
46
+ true: "bg-blue-500 text-white",
47
+ false: "hover:bg-gray-100 text-gray-800"
48
+ }
49
+ },
50
+ defaultVariants: {
51
+ active: false
52
+ }
53
+ }
54
+ );
55
+ var dropdownEmptyClass = "px-4 py-2 text-sm text-gray-500";
56
+ var labelClass = "block text-sm font-medium text-gray-700 mb-1";
57
+
58
+ // src/components/autocomplete/Autocomplete.tsx
59
+ var _tmpl$ = /* @__PURE__ */ template(`<label>`);
60
+ var _tmpl$2 = /* @__PURE__ */ template(`<div>`);
61
+ var _tmpl$3 = /* @__PURE__ */ template(`<div><input type=text autocomplete=off>`);
62
+ var _tmpl$4 = /* @__PURE__ */ template(`<div>No data available`);
63
+ var Autocomplete = (props) => {
64
+ const [search, setSearch] = createSignal(props.value?.toString() || "");
65
+ const [isOpen, setIsOpen] = createSignal(false);
66
+ const [filtered, setFiltered] = createSignal(props.items);
67
+ const [highlightIndex, setHighlightIndex] = createSignal(-1);
68
+ let wrapperRef;
69
+ const filterItems = (val) => {
70
+ const lower = val.toLowerCase();
71
+ setFiltered(props.items.filter((item) => item.toString().toLowerCase().includes(lower)));
72
+ };
73
+ const handleInput = (e) => {
74
+ const val = e.target.value;
75
+ setSearch(val);
76
+ filterItems(val);
77
+ setIsOpen(true);
78
+ setHighlightIndex(-1);
79
+ };
80
+ const handleKeyDown = (e) => {
81
+ if (!isOpen()) return;
82
+ if (e.key === "ArrowDown") {
83
+ setHighlightIndex((prev) => Math.min(prev + 1, filtered().length - 1));
84
+ e.preventDefault();
85
+ }
86
+ if (e.key === "ArrowUp") {
87
+ setHighlightIndex((prev) => Math.max(prev - 1, 0));
88
+ e.preventDefault();
89
+ }
90
+ if (e.key === "Enter" && filtered()[highlightIndex()]) {
91
+ const selected = filtered()[highlightIndex()];
92
+ setSearch(selected?.toString() ?? "");
93
+ props.onChange?.(selected);
94
+ setIsOpen(false);
95
+ }
96
+ if (e.key === "Escape") {
97
+ setIsOpen(false);
98
+ }
99
+ };
100
+ const handleSelect = (item) => {
101
+ setSearch(item.toString());
102
+ props.onChange?.(item);
103
+ setIsOpen(false);
104
+ };
105
+ const handleClickOutside = (e) => {
106
+ if (!wrapperRef?.contains(e.target)) {
107
+ setIsOpen(false);
108
+ }
109
+ };
110
+ createEffect(() => {
111
+ if (props.value !== void 0) {
112
+ setSearch(props.value.toString());
113
+ }
114
+ });
115
+ createEffect(() => {
116
+ document.addEventListener("click", handleClickOutside);
117
+ onCleanup(() => {
118
+ document.removeEventListener("click", handleClickOutside);
119
+ });
120
+ });
121
+ return (() => {
122
+ var _el$ = _tmpl$3(), _el$3 = _el$.firstChild;
123
+ var _ref$ = wrapperRef;
124
+ typeof _ref$ === "function" ? use(_ref$, _el$) : wrapperRef = _el$;
125
+ className(_el$, autocompleteWrapperClass);
126
+ insert(_el$, createComponent(Show, {
127
+ get when() {
128
+ return props.label;
129
+ },
130
+ get children() {
131
+ var _el$2 = _tmpl$();
132
+ className(_el$2, labelClass);
133
+ insert(_el$2, () => props.label);
134
+ return _el$2;
135
+ }
136
+ }), _el$3);
137
+ _el$3.addEventListener("focus", () => setIsOpen(true));
138
+ _el$3.$$keydown = handleKeyDown;
139
+ _el$3.$$input = handleInput;
140
+ insert(_el$, createComponent(Show, {
141
+ get when() {
142
+ return isOpen();
143
+ },
144
+ get children() {
145
+ var _el$4 = _tmpl$2();
146
+ insert(_el$4, createComponent(Show, {
147
+ get when() {
148
+ return filtered().length > 0;
149
+ },
150
+ get fallback() {
151
+ return (() => {
152
+ var _el$5 = _tmpl$4();
153
+ className(_el$5, dropdownEmptyClass);
154
+ return _el$5;
155
+ })();
156
+ },
157
+ get children() {
158
+ return createComponent(For, {
159
+ get each() {
160
+ return filtered();
161
+ },
162
+ children: (item, i) => (() => {
163
+ var _el$6 = _tmpl$2();
164
+ _el$6.$$mousedown = () => handleSelect(item);
165
+ insert(_el$6, item);
166
+ effect(() => className(_el$6, dropdownItemClass({
167
+ active: i() === highlightIndex()
168
+ })));
169
+ return _el$6;
170
+ })()
171
+ });
172
+ }
173
+ }));
174
+ effect(() => className(_el$4, dropdownMenuClass()));
175
+ return _el$4;
176
+ }
177
+ }), null);
178
+ effect((_p$) => {
179
+ var _v$ = props.disabled, _v$2 = inputBoxClass({
180
+ size: props.size,
181
+ state: props.state ?? (props.disabled ? "disabled" : "default")
182
+ });
183
+ _v$ !== _p$.e && (_el$3.disabled = _p$.e = _v$);
184
+ _v$2 !== _p$.t && className(_el$3, _p$.t = _v$2);
185
+ return _p$;
186
+ }, {
187
+ e: void 0,
188
+ t: void 0
189
+ });
190
+ effect(() => _el$3.value = search());
191
+ return _el$;
192
+ })();
193
+ };
194
+ var Autocomplete_default = Autocomplete;
195
+ delegateEvents(["input", "keydown", "mousedown"]);
196
+
197
+ // src/components/autocomplete/index.ts
198
+ var autocomplete_default = Autocomplete_default;
199
+
200
+ export { autocomplete_default };
@@ -0,0 +1,118 @@
1
+ import { cva } from './HKS7ET6T.js';
2
+ import { delegateEvents, template, addEventListener, spread, mergeProps, memo, insert, createComponent, effect, className, setAttribute } from 'solid-js/web';
3
+ import { splitProps, createSignal, Show } from 'solid-js';
4
+
5
+ // src/components/accordion/Accordion.styles.ts
6
+ var accordionContainerVariants = cva(
7
+ ["w-full border rounded transition-colors", "bg-white dark:bg-gray-800"],
8
+ {
9
+ variants: {
10
+ expanded: {
11
+ true: "border-blue-500",
12
+ false: "border-gray-300 dark:border-gray-600"
13
+ },
14
+ disabled: {
15
+ true: "opacity-50 cursor-not-allowed",
16
+ false: ""
17
+ }
18
+ },
19
+ defaultVariants: {
20
+ expanded: false,
21
+ disabled: false
22
+ }
23
+ }
24
+ );
25
+ var accordionHeaderVariants = cva(
26
+ [
27
+ "w-full text-left px-4 py-2 flex items-center justify-between cursor-pointer",
28
+ "transition-colors duration-200"
29
+ ],
30
+ {
31
+ variants: {
32
+ headerIsTrigger: {
33
+ true: "hover:bg-gray-100 dark:hover:bg-gray-700",
34
+ false: ""
35
+ }
36
+ },
37
+ defaultVariants: {
38
+ headerIsTrigger: true
39
+ }
40
+ }
41
+ );
42
+ var accordionContentVariants = cva(
43
+ "px-4 py-2 border-t border-gray-200 dark:border-gray-700"
44
+ );
45
+
46
+ // src/components/accordion/Accordion.tsx
47
+ var _tmpl$ = /* @__PURE__ */ template(`<div>`);
48
+ var _tmpl$2 = /* @__PURE__ */ template(`<div><div>`);
49
+ var Accordion = (props) => {
50
+ const [local, variantProps, otherProps] = splitProps(props, ["expanded", "disabled", "headerIsTrigger", "header", "content"], ["expanded", "disabled"]);
51
+ const [isOpen, setIsOpen] = createSignal(local.expanded ?? false);
52
+ const handleToggle = () => {
53
+ if (!local.disabled) setIsOpen((prev) => !prev);
54
+ };
55
+ const handleKeyDown = local.headerIsTrigger ? (e) => {
56
+ if (e.key === "Enter" || e.key === " ") {
57
+ e.preventDefault();
58
+ handleToggle();
59
+ }
60
+ } : void 0;
61
+ return (() => {
62
+ var _el$ = _tmpl$2(), _el$2 = _el$.firstChild;
63
+ addEventListener(_el$, "keydown", handleKeyDown, true);
64
+ spread(_el$, mergeProps({
65
+ get ["class"]() {
66
+ return accordionContainerVariants({
67
+ ...variantProps,
68
+ expanded: isOpen(),
69
+ disabled: local.disabled
70
+ });
71
+ },
72
+ get role() {
73
+ return local.headerIsTrigger ? "button" : void 0;
74
+ },
75
+ get tabindex() {
76
+ return local.headerIsTrigger ? "0" : void 0;
77
+ },
78
+ get ["aria-expanded"]() {
79
+ return memo(() => !!local.headerIsTrigger)() ? isOpen() : void 0;
80
+ },
81
+ get ["aria-disabled"]() {
82
+ return local.disabled;
83
+ }
84
+ }, otherProps), false, true);
85
+ addEventListener(_el$2, "click", local.headerIsTrigger ? handleToggle : void 0, true);
86
+ insert(_el$2, () => local.header);
87
+ insert(_el$, createComponent(Show, {
88
+ get when() {
89
+ return isOpen();
90
+ },
91
+ get children() {
92
+ var _el$3 = _tmpl$();
93
+ insert(_el$3, () => local.content);
94
+ effect(() => className(_el$3, accordionContentVariants()));
95
+ return _el$3;
96
+ }
97
+ }), null);
98
+ effect((_p$) => {
99
+ var _v$ = accordionHeaderVariants({
100
+ headerIsTrigger: local.headerIsTrigger
101
+ }), _v$2 = local.headerIsTrigger ? "button" : void 0;
102
+ _v$ !== _p$.e && className(_el$2, _p$.e = _v$);
103
+ _v$2 !== _p$.t && setAttribute(_el$2, "role", _p$.t = _v$2);
104
+ return _p$;
105
+ }, {
106
+ e: void 0,
107
+ t: void 0
108
+ });
109
+ return _el$;
110
+ })();
111
+ };
112
+ var Accordion_default = Accordion;
113
+ delegateEvents(["keydown", "click"]);
114
+
115
+ // src/components/accordion/index.ts
116
+ var accordion_default = Accordion_default;
117
+
118
+ export { accordion_default };
@@ -0,0 +1,189 @@
1
+ import { cva, classes } from './HKS7ET6T.js';
2
+ import { template, spread, mergeProps, insert, createComponent, Dynamic, effect, className } from 'solid-js/web';
3
+ import { splitProps, Show } from 'solid-js';
4
+
5
+ // src/components/navbar/Navbar.styles.ts
6
+ var navbarStyles = cva("flex items-center px-4", {
7
+ variants: {
8
+ color: {
9
+ info: "bg-blue-500 text-white",
10
+ primary: "bg-indigo-600 text-white",
11
+ success: "bg-green-500 text-white",
12
+ light: "bg-white text-gray-800"
13
+ }
14
+ },
15
+ defaultVariants: {
16
+ color: "info"
17
+ }
18
+ });
19
+ var navbarItemStyles = cva(
20
+ "px-3 py-2 rounded transition-colors",
21
+ {
22
+ variants: {
23
+ active: {
24
+ true: "font-semibold border-b-2 border-current",
25
+ false: "hover:bg-gray-200"
26
+ },
27
+ tag: {
28
+ div: "",
29
+ a: ""
30
+ }
31
+ },
32
+ defaultVariants: {
33
+ active: false,
34
+ tag: "div"
35
+ }
36
+ }
37
+ );
38
+ var navbarDropdownStyles = cva("relative", {
39
+ variants: {
40
+ hoverable: {
41
+ true: "group",
42
+ false: ""
43
+ }
44
+ },
45
+ defaultVariants: {
46
+ hoverable: false
47
+ }
48
+ });
49
+ var dropdownMenuStyles = cva(
50
+ "absolute mt-2 bg-white text-gray-800 rounded shadow-lg hidden group-hover:block",
51
+ {
52
+ variants: {
53
+ align: {
54
+ left: "left-0",
55
+ right: "right-0"
56
+ }
57
+ },
58
+ defaultVariants: {
59
+ align: "left"
60
+ }
61
+ }
62
+ );
63
+ cva("", {
64
+ variants: {
65
+ rounded: {
66
+ true: "rounded-full",
67
+ false: ""
68
+ },
69
+ size: {
70
+ sm: "w-6 h-6",
71
+ md: "w-8 h-8",
72
+ lg: "w-12 h-12"
73
+ },
74
+ bordered: {
75
+ true: "border border-gray-200",
76
+ false: ""
77
+ }
78
+ },
79
+ defaultVariants: {
80
+ rounded: false,
81
+ size: "md",
82
+ bordered: false
83
+ }
84
+ });
85
+
86
+ // src/components/navbar/Navbar.tsx
87
+ var _tmpl$ = /* @__PURE__ */ template(`<div class="flex-shrink-0 mr-4">`);
88
+ var _tmpl$2 = /* @__PURE__ */ template(`<div class="flex-1 flex items-center space-x-2">`);
89
+ var _tmpl$3 = /* @__PURE__ */ template(`<div class="flex-1 flex justify-end space-x-2">`);
90
+ var _tmpl$4 = /* @__PURE__ */ template(`<nav>`);
91
+ var Navbar = (props) => {
92
+ const [local, variantProps, other] = splitProps(props, ["class", "className", "brand", "start", "end"], Object.keys(navbarStyles.variantKeys ?? {}));
93
+ return (() => {
94
+ var _el$ = _tmpl$4();
95
+ spread(_el$, mergeProps({
96
+ get ["class"]() {
97
+ return classes(navbarStyles({
98
+ color: variantProps.color
99
+ }), local.class, local.className);
100
+ }
101
+ }, other), false, true);
102
+ insert(_el$, createComponent(Show, {
103
+ get when() {
104
+ return local.brand;
105
+ },
106
+ get children() {
107
+ var _el$2 = _tmpl$();
108
+ insert(_el$2, () => local.brand);
109
+ return _el$2;
110
+ }
111
+ }), null);
112
+ insert(_el$, createComponent(Show, {
113
+ get when() {
114
+ return local.start;
115
+ },
116
+ get children() {
117
+ var _el$3 = _tmpl$2();
118
+ insert(_el$3, () => local.start);
119
+ return _el$3;
120
+ }
121
+ }), null);
122
+ insert(_el$, createComponent(Show, {
123
+ get when() {
124
+ return local.end;
125
+ },
126
+ get children() {
127
+ var _el$4 = _tmpl$3();
128
+ insert(_el$4, () => local.end);
129
+ return _el$4;
130
+ }
131
+ }), null);
132
+ return _el$;
133
+ })();
134
+ };
135
+ var Navbar_default = Navbar;
136
+ var NavbarItem = (props) => {
137
+ const [local, variantProps, other] = splitProps(props, ["class", "className", "active", "href", "tag", "to", "children"], Object.keys(navbarItemStyles.variantKeys ?? {}));
138
+ const Tag = local.tag === "a" || local.href || local.to ? "a" : "div";
139
+ return createComponent(Dynamic, mergeProps({
140
+ component: Tag,
141
+ get ["class"]() {
142
+ return classes(navbarItemStyles({
143
+ active: !!local.active,
144
+ tag: local.tag ?? (Tag === "a" ? "a" : "div")
145
+ }), local.class, local.className);
146
+ },
147
+ get href() {
148
+ return local.href ?? local.to;
149
+ }
150
+ }, other, {
151
+ get children() {
152
+ return local.children;
153
+ }
154
+ }));
155
+ };
156
+ var NavbarItem_default = NavbarItem;
157
+ var _tmpl$5 = /* @__PURE__ */ template(`<div>`);
158
+ var _tmpl$22 = /* @__PURE__ */ template(`<div><div class=cursor-pointer>`);
159
+ var NavbarDropdown = (props) => {
160
+ const [local, variantProps, other] = splitProps(props, ["class", "className", "label", "hoverable", "children"], [...Object.keys(navbarDropdownStyles.variantKeys ?? {}), ...Object.keys(dropdownMenuStyles.variantKeys ?? {})]);
161
+ return (() => {
162
+ var _el$ = _tmpl$22(), _el$2 = _el$.firstChild;
163
+ spread(_el$, mergeProps({
164
+ get ["class"]() {
165
+ return classes(navbarDropdownStyles({
166
+ hoverable: !!local.hoverable
167
+ }), local.class, local.className);
168
+ }
169
+ }, other), false, true);
170
+ insert(_el$2, () => local.label);
171
+ insert(_el$, createComponent(Show, {
172
+ get when() {
173
+ return local.hoverable;
174
+ },
175
+ get children() {
176
+ var _el$3 = _tmpl$5();
177
+ insert(_el$3, () => local.children);
178
+ effect(() => className(_el$3, dropdownMenuStyles({
179
+ align: variantProps.align
180
+ })));
181
+ return _el$3;
182
+ }
183
+ }), null);
184
+ return _el$;
185
+ })();
186
+ };
187
+ var NavbarDropdown_default = NavbarDropdown;
188
+
189
+ export { NavbarDropdown_default, NavbarItem_default, Navbar_default };
@@ -0,0 +1,144 @@
1
+ import { cva } from './HKS7ET6T.js';
2
+ import { template, spread, mergeProps, insert, effect, className, setAttribute } from 'solid-js/web';
3
+ import { splitProps, createSignal, createMemo, untrack } from 'solid-js';
4
+
5
+ // src/components/switch/Switch.styles.ts
6
+ var switchVariants = cva(
7
+ "switch inline-flex items-center gap-2 select-none",
8
+ {
9
+ variants: {
10
+ size: {
11
+ sm: "text-sm",
12
+ md: "text-base",
13
+ lg: "text-lg"
14
+ },
15
+ disabled: {
16
+ true: "opacity-50 cursor-not-allowed",
17
+ false: ""
18
+ },
19
+ rounded: {
20
+ true: "",
21
+ false: ""
22
+ },
23
+ outlined: {
24
+ true: "",
25
+ false: ""
26
+ }
27
+ },
28
+ defaultVariants: {
29
+ size: "md",
30
+ disabled: false,
31
+ rounded: true,
32
+ outlined: false
33
+ }
34
+ }
35
+ );
36
+ var checkVariants = cva(
37
+ [
38
+ "relative transition-colors duration-200",
39
+ "after:content-[''] after:absolute after:bg-white after:transition-transform after:duration-700 after:ease-in-out"
40
+ ].join(" "),
41
+ {
42
+ variants: {
43
+ size: {
44
+ sm: "w-8 h-4 after:w-3 after:h-3 after:left-0.5 after:top-0.5 peer-checked:after:translate-x-4",
45
+ md: "w-10 h-6 after:w-4 after:h-4 after:left-1 after:top-1 peer-checked:after:translate-x-4",
46
+ lg: "w-12 h-7 after:w-5 after:h-5 after:left-1 after:top-1 peer-checked:after:translate-x-5"
47
+ },
48
+ color: {
49
+ blue: "peer-checked:bg-blue-500",
50
+ green: "peer-checked:bg-green-500",
51
+ red: "peer-checked:bg-red-500",
52
+ yellow: "peer-checked:bg-yellow-400",
53
+ gray: "peer-checked:bg-gray-500"
54
+ },
55
+ passiveColor: {
56
+ blue: "bg-blue-200",
57
+ green: "bg-green-200",
58
+ red: "bg-red-200",
59
+ yellow: "bg-yellow-200",
60
+ gray: "bg-gray-300"
61
+ },
62
+ rounded: {
63
+ true: "rounded-full after:rounded-full",
64
+ false: "rounded-md after:rounded-sm"
65
+ },
66
+ outlined: {
67
+ true: "ring-2 ring-inset ring-white",
68
+ false: ""
69
+ }
70
+ },
71
+ defaultVariants: {
72
+ size: "md",
73
+ color: "blue",
74
+ passiveColor: "gray",
75
+ rounded: true,
76
+ outlined: false
77
+ }
78
+ }
79
+ );
80
+
81
+ // src/components/switch/Switch.tsx
82
+ var _tmpl$ = /* @__PURE__ */ template(`<label role=switch><input type=checkbox class="sr-only peer"aria-hidden=true><span></span><span class=control-label>`);
83
+ var Switch = (props) => {
84
+ const [localProps, variantProps, otherProps] = splitProps(props, ["children", "checked", "defaultChecked", "onChange", "name", "required", "disabled", "aria-label", "aria-describedby"], ["size", "rounded", "outlined", "color", "passiveColor"]);
85
+ const isControlled = localProps.checked !== void 0;
86
+ const [internalChecked, setInternalChecked] = createSignal(localProps.defaultChecked ?? false);
87
+ const checkedValue = createMemo(() => untrack(() => isControlled ? localProps.checked : internalChecked()));
88
+ const switchClasses = createMemo(() => switchVariants(variantProps));
89
+ const checkClasses = createMemo(() => checkVariants({
90
+ size: variantProps.size,
91
+ color: variantProps.color,
92
+ passiveColor: variantProps.passiveColor,
93
+ rounded: variantProps.rounded,
94
+ outlined: variantProps.outlined
95
+ }));
96
+ const handleChange = (e) => {
97
+ const next = e.currentTarget.checked;
98
+ untrack(() => {
99
+ if (!isControlled) setInternalChecked(next);
100
+ localProps.onChange?.(next);
101
+ });
102
+ };
103
+ return (() => {
104
+ var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling;
105
+ _el$2.addEventListener("change", handleChange);
106
+ spread(_el$2, mergeProps({
107
+ get checked() {
108
+ return checkedValue();
109
+ },
110
+ get name() {
111
+ return localProps.name;
112
+ },
113
+ get required() {
114
+ return localProps.required;
115
+ },
116
+ get disabled() {
117
+ return localProps.disabled;
118
+ }
119
+ }, otherProps), false, false);
120
+ insert(_el$4, () => localProps.children);
121
+ effect((_p$) => {
122
+ var _v$ = switchClasses(), _v$2 = checkedValue(), _v$3 = localProps["aria-label"], _v$4 = localProps["aria-describedby"], _v$5 = checkClasses();
123
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
124
+ _v$2 !== _p$.t && setAttribute(_el$, "aria-checked", _p$.t = _v$2);
125
+ _v$3 !== _p$.a && setAttribute(_el$, "aria-label", _p$.a = _v$3);
126
+ _v$4 !== _p$.o && setAttribute(_el$, "aria-describedby", _p$.o = _v$4);
127
+ _v$5 !== _p$.i && className(_el$3, _p$.i = _v$5);
128
+ return _p$;
129
+ }, {
130
+ e: void 0,
131
+ t: void 0,
132
+ a: void 0,
133
+ o: void 0,
134
+ i: void 0
135
+ });
136
+ return _el$;
137
+ })();
138
+ };
139
+ var Switch_default = Switch;
140
+
141
+ // src/components/switch/index.ts
142
+ var switch_default = Switch_default;
143
+
144
+ export { switch_default };