@pathscale/ui 0.0.1 → 0.0.2

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 (69) hide show
  1. package/dist/Accordion-nwuRbRRw.d.ts +27 -0
  2. package/dist/Checkbox-BjaweaOH.d.ts +40 -0
  3. package/dist/Pagination-BlrjElGg.d.ts +43 -0
  4. package/dist/Progress-a616LgE0.d.ts +5 -0
  5. package/dist/Select-CP-TUHJv.d.ts +44 -0
  6. package/dist/Switch-3IXS_68H.d.ts +72 -0
  7. package/dist/Tabs-BNR3p92D.d.ts +42 -0
  8. package/dist/Tag-BPrhn-Ne.d.ts +42 -0
  9. package/dist/Tooltip-BfPongoz.d.ts +53 -0
  10. package/dist/Upload-BrFuZ4JA.d.ts +39 -0
  11. package/dist/chunk/3IHANYRN.js +98 -0
  12. package/dist/chunk/4TWLQ3IA.js +103 -0
  13. package/dist/chunk/6SBH3KSM.jsx +96 -0
  14. package/dist/chunk/CJZGTNJZ.js +115 -0
  15. package/dist/chunk/DBQ7IOPU.js +189 -0
  16. package/dist/chunk/DNTGSCVF.jsx +100 -0
  17. package/dist/chunk/ELRAUORW.jsx +179 -0
  18. package/dist/chunk/FPUQ25SO.js +137 -0
  19. package/dist/chunk/GLEAR2TS.jsx +160 -0
  20. package/dist/chunk/KV6LTJHI.jsx +175 -0
  21. package/dist/chunk/LI3HCFL7.jsx +132 -0
  22. package/dist/chunk/MMTAND25.jsx +126 -0
  23. package/dist/chunk/MXG3MBEN.jsx +148 -0
  24. package/dist/chunk/NZKPDBTE.js +118 -0
  25. package/dist/chunk/P2L6LFLS.js +144 -0
  26. package/dist/chunk/QLESLIWS.jsx +110 -0
  27. package/dist/chunk/QNOJ6PCD.js +278 -0
  28. package/dist/chunk/QONDPQ2I.jsx +105 -0
  29. package/dist/chunk/S3ZDSQSV.js +98 -0
  30. package/dist/chunk/V6Y5E7BL.js +133 -0
  31. package/dist/chunk/WCBMW2TP.jsx +203 -0
  32. package/dist/chunk/WOT36Q7O.js +166 -0
  33. package/dist/components/Progress/index.d.ts +2 -3
  34. package/dist/components/Progress/index.js +1 -278
  35. package/dist/components/Progress/index.jsx +7 -194
  36. package/dist/components/accordion/index.d.ts +5 -24
  37. package/dist/components/accordion/index.js +1 -118
  38. package/dist/components/accordion/index.jsx +3 -100
  39. package/dist/components/breadcrumb/index.d.ts +2 -2
  40. package/dist/components/breadcrumb/index.js +1 -133
  41. package/dist/components/breadcrumb/index.jsx +4 -120
  42. package/dist/components/checkbox/index.d.ts +5 -37
  43. package/dist/components/checkbox/index.js +1 -137
  44. package/dist/components/checkbox/index.jsx +3 -143
  45. package/dist/components/pagination/index.d.ts +5 -40
  46. package/dist/components/pagination/index.js +1 -189
  47. package/dist/components/pagination/index.jsx +3 -174
  48. package/dist/components/select/index.d.ts +5 -41
  49. package/dist/components/select/index.js +1 -98
  50. package/dist/components/select/index.jsx +3 -91
  51. package/dist/components/switch/index.d.ts +5 -69
  52. package/dist/components/switch/index.js +1 -144
  53. package/dist/components/switch/index.jsx +3 -155
  54. package/dist/components/tabs/index.d.ts +5 -39
  55. package/dist/components/tabs/index.js +1 -166
  56. package/dist/components/tabs/index.jsx +3 -170
  57. package/dist/components/tag/index.d.ts +5 -39
  58. package/dist/components/tag/index.js +1 -115
  59. package/dist/components/tag/index.jsx +3 -127
  60. package/dist/components/tooltip/index.d.ts +5 -50
  61. package/dist/components/tooltip/index.js +1 -103
  62. package/dist/components/tooltip/index.jsx +3 -95
  63. package/dist/components/upload/index.d.ts +5 -36
  64. package/dist/components/upload/index.js +1 -98
  65. package/dist/components/upload/index.jsx +3 -105
  66. package/dist/index.d.ts +11 -0
  67. package/dist/index.js +12 -1
  68. package/dist/index.jsx +47 -1
  69. package/package.json +1 -1
@@ -0,0 +1,278 @@
1
+ import { cva } from './HKS7ET6T.js';
2
+ import { template, insert, effect, className, createComponent } from 'solid-js/web';
3
+ import { Show } from 'solid-js';
4
+
5
+ // src/components/Progress/ProgressValue.styles.ts
6
+ var progressWrapper = cva("mt-4 w-full max-w-md");
7
+ var progressBar = cva("w-full h-5 relative overflow-hidden rounded-lg bg-gray-200");
8
+ var progressFill = cva("h-full transition-all duration-300", {
9
+ variants: {
10
+ color: {
11
+ danger: "bg-red-500",
12
+ success: "bg-green-500",
13
+ info: "bg-blue-500",
14
+ warning: "bg-yellow-500",
15
+ default: "bg-gray-500"
16
+ }
17
+ },
18
+ defaultVariants: {
19
+ color: "default"
20
+ }
21
+ });
22
+ var progressLabel = cva("mt-2 text-right text-sm text-gray-700");
23
+ var progressVariants = cva(
24
+ [
25
+ "flex items-center justify-center mx-1",
26
+ "font-medium outline-none select-none transition active:transition-none",
27
+ "not-disabled:cursor-pointer",
28
+ "disabled:cursor-not-allowed disabled:opacity-25",
29
+ "aria-busy:cursor-wait"
30
+ ],
31
+ {
32
+ variants: {
33
+ size: {
34
+ sm: "size-8 text-sm",
35
+ md: "size-16 text-base",
36
+ lg: "size-24 text-lg"
37
+ },
38
+ shape: {
39
+ circle: "rounded-full overflow-hidden",
40
+ rounded: "rounded-lg overflow-hidden"
41
+ },
42
+ variant: {
43
+ filled: "text-gray-800",
44
+ outlined: "border-2 border-gray-300 text-gray-800",
45
+ ghost: "text-gray-800"
46
+ }
47
+ },
48
+ defaultVariants: {
49
+ size: "md",
50
+ shape: "rounded",
51
+ variant: "filled"
52
+ }
53
+ }
54
+ );
55
+
56
+ // src/components/Progress/ProgressValue.tsx
57
+ var _tmpl$ = /* @__PURE__ */ template(`<div><div><div></div></div><div>%`);
58
+ var ProgressValue = (props) => {
59
+ return (() => {
60
+ var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$2.nextSibling, _el$5 = _el$4.firstChild;
61
+ insert(_el$4, () => props.value, _el$5);
62
+ effect((_p$) => {
63
+ var _v$ = `${progressWrapper()} ${progressVariants({
64
+ size: props.size,
65
+ shape: props.shape,
66
+ variant: props.variant
67
+ })}`, _v$2 = progressBar(), _v$3 = progressFill(), _v$4 = `${props.value}%`, _v$5 = progressLabel();
68
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
69
+ _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
70
+ _v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
71
+ _v$4 !== _p$.o && ((_p$.o = _v$4) != null ? _el$3.style.setProperty("width", _v$4) : _el$3.style.removeProperty("width"));
72
+ _v$5 !== _p$.i && className(_el$4, _p$.i = _v$5);
73
+ return _p$;
74
+ }, {
75
+ e: void 0,
76
+ t: void 0,
77
+ a: void 0,
78
+ o: void 0,
79
+ i: void 0
80
+ });
81
+ return _el$;
82
+ })();
83
+ };
84
+ var ProgressValue_default = ProgressValue;
85
+ var _tmpl$2 = /* @__PURE__ */ template(`<div><div><div></div></div><div>%`);
86
+ var Progress = ({
87
+ value,
88
+ size = "md",
89
+ shape = "rounded",
90
+ variant = "filled"
91
+ }) => {
92
+ return (() => {
93
+ var _el$ = _tmpl$2(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$2.nextSibling, _el$5 = _el$4.firstChild;
94
+ `${value}%` != null ? _el$3.style.setProperty("width", `${value}%`) : _el$3.style.removeProperty("width");
95
+ insert(_el$4, value, _el$5);
96
+ effect((_p$) => {
97
+ var _v$ = `${progressWrapper()} ${progressVariants({
98
+ size,
99
+ shape,
100
+ variant
101
+ })}`, _v$2 = progressBar(), _v$3 = progressFill(), _v$4 = progressLabel();
102
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
103
+ _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
104
+ _v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
105
+ _v$4 !== _p$.o && className(_el$4, _p$.o = _v$4);
106
+ return _p$;
107
+ }, {
108
+ e: void 0,
109
+ t: void 0,
110
+ a: void 0,
111
+ o: void 0
112
+ });
113
+ return _el$;
114
+ })();
115
+ };
116
+ var ProgressSizes_default = Progress;
117
+ var _tmpl$3 = /* @__PURE__ */ template(`<div><div><div>`);
118
+ var _tmpl$22 = /* @__PURE__ */ template(`<div>`);
119
+ var Progress2 = ({
120
+ value,
121
+ size = "md",
122
+ shape = "rounded",
123
+ variant = "filled",
124
+ showValue = false,
125
+ format = "raw"
126
+ }) => {
127
+ const displayValue = () => {
128
+ return format === "percent" ? `${value}%` : value;
129
+ };
130
+ return (() => {
131
+ var _el$ = _tmpl$3(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
132
+ `${value}%` != null ? _el$3.style.setProperty("width", `${value}%`) : _el$3.style.removeProperty("width");
133
+ insert(_el$, showValue && (() => {
134
+ var _el$4 = _tmpl$22();
135
+ insert(_el$4, displayValue);
136
+ effect(() => className(_el$4, progressLabel()));
137
+ return _el$4;
138
+ })(), null);
139
+ effect((_p$) => {
140
+ var _v$ = `${progressWrapper()} ${progressVariants({
141
+ size,
142
+ shape,
143
+ variant
144
+ })}`, _v$2 = progressBar(), _v$3 = progressFill();
145
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
146
+ _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
147
+ _v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
148
+ return _p$;
149
+ }, {
150
+ e: void 0,
151
+ t: void 0,
152
+ a: void 0
153
+ });
154
+ return _el$;
155
+ })();
156
+ };
157
+ var ProgressPercent_default = Progress2;
158
+ var _tmpl$4 = /* @__PURE__ */ template(`<div>`);
159
+ var _tmpl$23 = /* @__PURE__ */ template(`<div><div>`);
160
+ var Progress3 = ({
161
+ value,
162
+ size = "md",
163
+ shape = "rounded",
164
+ variant = "filled",
165
+ showValue = false,
166
+ format = "raw",
167
+ color = "default"
168
+ }) => {
169
+ const displayValue = () => format === "percent" && value != null ? `${value}%` : value;
170
+ return (() => {
171
+ var _el$ = _tmpl$23(), _el$2 = _el$.firstChild;
172
+ insert(_el$2, createComponent(Show, {
173
+ when: value != null,
174
+ get fallback() {
175
+ return (() => {
176
+ var _el$4 = _tmpl$4();
177
+ _el$4.style.setProperty("width", "100%");
178
+ effect(() => className(_el$4, `${progressFill({
179
+ color
180
+ })} animate-pulse`));
181
+ return _el$4;
182
+ })();
183
+ },
184
+ get children() {
185
+ var _el$3 = _tmpl$4();
186
+ `${value}%` != null ? _el$3.style.setProperty("width", `${value}%`) : _el$3.style.removeProperty("width");
187
+ effect(() => className(_el$3, progressFill({
188
+ color
189
+ })));
190
+ return _el$3;
191
+ }
192
+ }));
193
+ insert(_el$, showValue && value != null && (() => {
194
+ var _el$5 = _tmpl$4();
195
+ insert(_el$5, displayValue);
196
+ effect(() => className(_el$5, progressLabel()));
197
+ return _el$5;
198
+ })(), null);
199
+ effect((_p$) => {
200
+ var _v$ = `${progressWrapper()} ${progressVariants({
201
+ size,
202
+ shape,
203
+ variant
204
+ })}`, _v$2 = progressBar();
205
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
206
+ _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
207
+ return _p$;
208
+ }, {
209
+ e: void 0,
210
+ t: void 0
211
+ });
212
+ return _el$;
213
+ })();
214
+ };
215
+ var ProgressColors_default = Progress3;
216
+
217
+ // src/components/Progress/Progress.tsx
218
+ var _tmpl$5 = /* @__PURE__ */ template(`<section><div class=p-4><h1 class="text-2xl font-semibold mb-4">Progress Component Demo</h1></div><div class="mt-4 flex flex-col gap-4"></div><div class=mt-4></div><div class="mt-4 flex flex-col gap-4">`);
219
+ var Progress4 = () => {
220
+ return (() => {
221
+ var _el$ = _tmpl$5(), _el$2 = _el$.firstChild, _el$4 = _el$2.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling;
222
+ insert(_el$2, createComponent(ProgressValue_default, {
223
+ value: 40,
224
+ size: "sm",
225
+ shape: "circle",
226
+ variant: "filled"
227
+ }), null);
228
+ insert(_el$2, createComponent(ProgressValue_default, {
229
+ value: 70,
230
+ size: "md",
231
+ shape: "rounded",
232
+ variant: "outlined"
233
+ }), null);
234
+ insert(_el$2, createComponent(ProgressValue_default, {
235
+ value: 90,
236
+ size: "lg",
237
+ shape: "circle",
238
+ variant: "ghost"
239
+ }), null);
240
+ insert(_el$4, createComponent(ProgressSizes_default, {
241
+ value: 20,
242
+ size: "sm"
243
+ }), null);
244
+ insert(_el$4, createComponent(ProgressSizes_default, {
245
+ value: 30,
246
+ size: "md"
247
+ }), null);
248
+ insert(_el$4, createComponent(ProgressSizes_default, {
249
+ value: 50,
250
+ size: "lg"
251
+ }), null);
252
+ insert(_el$5, createComponent(ProgressPercent_default, {
253
+ value: 80,
254
+ showValue: true,
255
+ format: "percent"
256
+ }));
257
+ insert(_el$6, createComponent(ProgressColors_default, {
258
+ value: 40,
259
+ color: "danger"
260
+ }), null);
261
+ insert(_el$6, createComponent(ProgressColors_default, {
262
+ value: 60,
263
+ color: "success"
264
+ }), null);
265
+ insert(_el$6, createComponent(ProgressColors_default, {
266
+ value: 80,
267
+ color: "info"
268
+ }), null);
269
+ insert(_el$6, createComponent(ProgressColors_default, {
270
+ value: 100,
271
+ color: "warning"
272
+ }), null);
273
+ return _el$;
274
+ })();
275
+ };
276
+ var Progress_default = Progress4;
277
+
278
+ export { ProgressColors_default, ProgressPercent_default, ProgressSizes_default, ProgressValue_default, Progress_default };
@@ -0,0 +1,105 @@
1
+ import {
2
+ cva
3
+ } from "./P7WPLZNA.jsx";
4
+
5
+ // src/components/accordion/Accordion.tsx
6
+ import {
7
+ createSignal,
8
+ splitProps,
9
+ Show
10
+ } from "solid-js";
11
+
12
+ // src/components/accordion/Accordion.styles.ts
13
+ var accordionContainerVariants = cva(
14
+ ["w-full border rounded transition-colors", "bg-white dark:bg-gray-800"],
15
+ {
16
+ variants: {
17
+ expanded: {
18
+ true: "border-blue-500",
19
+ false: "border-gray-300 dark:border-gray-600"
20
+ },
21
+ disabled: {
22
+ true: "opacity-50 cursor-not-allowed",
23
+ false: ""
24
+ }
25
+ },
26
+ defaultVariants: {
27
+ expanded: false,
28
+ disabled: false
29
+ }
30
+ }
31
+ );
32
+ var accordionHeaderVariants = cva(
33
+ [
34
+ "w-full text-left px-4 py-2 flex items-center justify-between cursor-pointer",
35
+ "transition-colors duration-200"
36
+ ],
37
+ {
38
+ variants: {
39
+ headerIsTrigger: {
40
+ true: "hover:bg-gray-100 dark:hover:bg-gray-700",
41
+ false: ""
42
+ }
43
+ },
44
+ defaultVariants: {
45
+ headerIsTrigger: true
46
+ }
47
+ }
48
+ );
49
+ var accordionContentVariants = cva(
50
+ "px-4 py-2 border-t border-gray-200 dark:border-gray-700"
51
+ );
52
+
53
+ // src/components/accordion/Accordion.tsx
54
+ var Accordion = (props) => {
55
+ const [local, variantProps, otherProps] = splitProps(
56
+ props,
57
+ ["expanded", "disabled", "headerIsTrigger", "header", "content"],
58
+ ["expanded", "disabled"]
59
+ );
60
+ const [isOpen, setIsOpen] = createSignal(local.expanded ?? false);
61
+ const handleToggle = () => {
62
+ if (!local.disabled) setIsOpen((prev) => !prev);
63
+ };
64
+ const handleKeyDown = local.headerIsTrigger ? (e) => {
65
+ if (e.key === "Enter" || e.key === " ") {
66
+ e.preventDefault();
67
+ handleToggle();
68
+ }
69
+ } : void 0;
70
+ return <div
71
+ class={accordionContainerVariants({
72
+ ...variantProps,
73
+ expanded: isOpen(),
74
+ disabled: local.disabled
75
+ })}
76
+ onKeyDown={handleKeyDown}
77
+ role={local.headerIsTrigger ? "button" : void 0}
78
+ tabindex={local.headerIsTrigger ? "0" : void 0}
79
+ aria-expanded={local.headerIsTrigger ? isOpen() : void 0}
80
+ aria-disabled={local.disabled}
81
+ {...otherProps}
82
+ >
83
+ <div
84
+ class={accordionHeaderVariants({
85
+ headerIsTrigger: local.headerIsTrigger
86
+ })}
87
+ onClick={local.headerIsTrigger ? handleToggle : void 0}
88
+ role={local.headerIsTrigger ? "button" : void 0}
89
+ >
90
+ {local.header}
91
+ </div>
92
+
93
+ <Show when={isOpen()}>
94
+ <div class={accordionContentVariants()}>{local.content}</div>
95
+ </Show>
96
+ </div>;
97
+ };
98
+ var Accordion_default = Accordion;
99
+
100
+ // src/components/accordion/index.ts
101
+ var accordion_default = Accordion_default;
102
+
103
+ export {
104
+ accordion_default
105
+ };
@@ -0,0 +1,98 @@
1
+ import { cva, classes } from './HKS7ET6T.js';
2
+ import { template, className, spread, mergeProps, insert, createComponent, effect } from 'solid-js/web';
3
+ import { splitProps, Show } from 'solid-js';
4
+
5
+ // src/components/upload/Upload.styles.ts
6
+ var uploadWrapperVariants = cva("", {
7
+ variants: {
8
+ style: {
9
+ boxed: "flex flex-col items-center justify-center border border-gray-300 rounded-md p-4 bg-white dark:bg-gray-800 text-gray-700 hover:text-gray-900 text-center",
10
+ button: "px-4 py-2 rounded inline-flex items-center gap-2 text-white transition-colors"
11
+ },
12
+ color: {
13
+ primary: "bg-blue-500 hover:bg-blue-600",
14
+ success: "bg-green-500 hover:bg-green-600",
15
+ info: "bg-sky-500 hover:bg-sky-600",
16
+ warning: "bg-yellow-500 hover:bg-yellow-600",
17
+ danger: "bg-red-500 hover:bg-red-600",
18
+ gray: ""
19
+ // usado solo en style="boxed"
20
+ },
21
+ size: {
22
+ sm: "text-sm",
23
+ md: "text-base",
24
+ lg: "text-lg"
25
+ }
26
+ },
27
+ defaultVariants: {
28
+ style: "boxed",
29
+ color: "gray",
30
+ size: "md"
31
+ }
32
+ });
33
+ var fileInputClass = "absolute inset-0 w-full h-full opacity-0 cursor-pointer";
34
+ var fileIconClass = "w-6 h-6";
35
+ var fileLabelClass = "font-medium";
36
+
37
+ // src/components/upload/Upload.tsx
38
+ var _tmpl$ = /* @__PURE__ */ template(`<span>`);
39
+ var _tmpl$2 = /* @__PURE__ */ template(`<div><label class="cursor-pointer relative w-full h-full"><input type=file><div><span>`);
40
+ var Upload = (props) => {
41
+ const [local, variantProps, otherProps] = splitProps(props, ["icon", "label", "multiple", "disabled", "accept", "dragDrop", "name", "onChange"], ["style", "color", "size"]);
42
+ const handleChange = (e) => {
43
+ const files = e.target.files;
44
+ if (!files || files.length === 0) return;
45
+ const result = local.multiple ? Array.from(files) : files[0];
46
+ if (result) {
47
+ local.onChange?.(result);
48
+ }
49
+ };
50
+ return (() => {
51
+ var _el$ = _tmpl$2(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$6 = _el$4.firstChild;
52
+ _el$3.addEventListener("change", handleChange);
53
+ className(_el$3, fileInputClass);
54
+ spread(_el$3, mergeProps({
55
+ get name() {
56
+ return local.name;
57
+ },
58
+ get multiple() {
59
+ return local.multiple;
60
+ },
61
+ get accept() {
62
+ return local.accept;
63
+ },
64
+ get disabled() {
65
+ return local.disabled;
66
+ }
67
+ }, otherProps), false, false);
68
+ insert(_el$4, createComponent(Show, {
69
+ get when() {
70
+ return local.icon;
71
+ },
72
+ get children() {
73
+ var _el$5 = _tmpl$();
74
+ className(_el$5, fileIconClass);
75
+ insert(_el$5, () => local.icon);
76
+ return _el$5;
77
+ }
78
+ }), _el$6);
79
+ className(_el$6, fileLabelClass);
80
+ insert(_el$6, () => local.label);
81
+ effect((_p$) => {
82
+ var _v$ = uploadWrapperVariants(variantProps), _v$2 = classes(variantProps.style === "boxed" ? "flex flex-col items-center justify-center gap-2" : "flex flex-row items-center justify-center gap-2");
83
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
84
+ _v$2 !== _p$.t && className(_el$4, _p$.t = _v$2);
85
+ return _p$;
86
+ }, {
87
+ e: void 0,
88
+ t: void 0
89
+ });
90
+ return _el$;
91
+ })();
92
+ };
93
+ var Upload_default = Upload;
94
+
95
+ // src/components/upload/index.ts
96
+ var upload_default = Upload_default;
97
+
98
+ export { upload_default };
@@ -0,0 +1,133 @@
1
+ import { cva } from './HKS7ET6T.js';
2
+ import { template, insert, effect, setAttribute, spread, mergeProps, memo, className } from 'solid-js/web';
3
+ import { splitProps, children, createMemo, untrack } from 'solid-js';
4
+
5
+ // src/components/breadcrumb/Breadcrumb.styles.ts
6
+ var breadcrumbContainerVariants = cva(
7
+ ["flex", "items-center", "gap-2", "text-sm"],
8
+ {
9
+ variants: {
10
+ alignment: {
11
+ left: "justify-start",
12
+ center: "justify-center",
13
+ right: "justify-end"
14
+ },
15
+ size: {
16
+ sm: "text-xs gap-1",
17
+ md: "text-sm gap-2",
18
+ lg: "text-base gap-3"
19
+ },
20
+ separator: {
21
+ arrow: "breadcrumb-arrow",
22
+ dot: "breadcrumb-dot",
23
+ bullet: "breadcrumb-bullet",
24
+ succeeds: "breadcrumb-succeeds"
25
+ }
26
+ },
27
+ defaultVariants: {
28
+ alignment: "left",
29
+ size: "md"
30
+ }
31
+ }
32
+ );
33
+ var breadcrumbItemVariants = cva(
34
+ ["text-gray-600", "dark:text-gray-300"],
35
+ {
36
+ variants: {
37
+ active: {
38
+ true: "text-blue-600 font-semibold cursor-default",
39
+ false: "hover:underline"
40
+ }
41
+ },
42
+ defaultVariants: {
43
+ active: false
44
+ }
45
+ }
46
+ );
47
+
48
+ // src/components/breadcrumb/Breadcrumb.tsx
49
+ var _tmpl$ = /* @__PURE__ */ template(`<li class="text-gray-400 select-none"aria-hidden=true>`);
50
+ var _tmpl$2 = /* @__PURE__ */ template(`<li><span>`);
51
+ var _tmpl$3 = /* @__PURE__ */ template(`<nav aria-label=Breadcrumb><ol class="flex items-center flex-wrap gap-1">`);
52
+ var separatorMap = {
53
+ arrow: "\u2192",
54
+ dot: "\xB7",
55
+ bullet: "\u2022",
56
+ succeeds: "\xBB"
57
+ };
58
+ var Breadcrumb = (props) => {
59
+ const [local, variantProps, otherProps] = splitProps(props, ["children"], ["alignment", "size", "separator"]);
60
+ const resolvedChildren = children(() => local.children);
61
+ const items = createMemo(() => resolvedChildren.toArray());
62
+ const separator = createMemo(() => untrack(() => {
63
+ const sep = variantProps.separator;
64
+ return sep && separatorMap[sep] ? separatorMap[sep] : "/";
65
+ }));
66
+ const containerClasses = createMemo(() => breadcrumbContainerVariants(variantProps));
67
+ const renderItems = createMemo(() => {
68
+ return items().reduce((acc, item, idx) => {
69
+ if (idx > 0) {
70
+ acc.push((() => {
71
+ var _el$ = _tmpl$();
72
+ insert(_el$, separator);
73
+ return _el$;
74
+ })());
75
+ }
76
+ acc.push((() => {
77
+ var _el$2 = _tmpl$2(), _el$3 = _el$2.firstChild;
78
+ insert(_el$3, item);
79
+ effect(() => setAttribute(_el$3, "aria-current", idx === items().length - 1 ? "page" : void 0));
80
+ return _el$2;
81
+ })());
82
+ return acc;
83
+ }, []);
84
+ });
85
+ return (() => {
86
+ var _el$4 = _tmpl$3(), _el$5 = _el$4.firstChild;
87
+ spread(_el$4, mergeProps({
88
+ get ["class"]() {
89
+ return containerClasses();
90
+ }
91
+ }, otherProps), false, true);
92
+ insert(_el$5, renderItems);
93
+ return _el$4;
94
+ })();
95
+ };
96
+ var Breadcrumb_default = Breadcrumb;
97
+ var _tmpl$4 = /* @__PURE__ */ template(`<li class="flex items-center gap-1">`);
98
+ var _tmpl$22 = /* @__PURE__ */ template(`<a>`);
99
+ var _tmpl$32 = /* @__PURE__ */ template(`<span>`);
100
+ var BreadcrumbItem = (props) => {
101
+ const [local, variantProps] = splitProps(props, ["children", "href", "active"], ["active"]);
102
+ return (() => {
103
+ var _el$ = _tmpl$4();
104
+ insert(_el$, (() => {
105
+ var _c$ = memo(() => !!(local.href && !local.active));
106
+ return () => _c$() ? (() => {
107
+ var _el$2 = _tmpl$22();
108
+ insert(_el$2, () => local.children);
109
+ effect((_p$) => {
110
+ var _v$ = local.href, _v$2 = breadcrumbItemVariants(variantProps);
111
+ _v$ !== _p$.e && setAttribute(_el$2, "href", _p$.e = _v$);
112
+ _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
113
+ return _p$;
114
+ }, {
115
+ e: void 0,
116
+ t: void 0
117
+ });
118
+ return _el$2;
119
+ })() : (() => {
120
+ var _el$3 = _tmpl$32();
121
+ insert(_el$3, () => local.children);
122
+ effect(() => className(_el$3, breadcrumbItemVariants({
123
+ active: true
124
+ })));
125
+ return _el$3;
126
+ })();
127
+ })());
128
+ return _el$;
129
+ })();
130
+ };
131
+ var BreadcrumbItem_default = BreadcrumbItem;
132
+
133
+ export { BreadcrumbItem_default, Breadcrumb_default };