@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,218 @@
1
+ import { cva, classes } from './HKS7ET6T.js';
2
+ import { delegateEvents, template, spread, mergeProps, insert, createComponent, effect, className } from 'solid-js/web';
3
+ import { splitProps, createSignal, createMemo, For, Show } from 'solid-js';
4
+
5
+ // src/components/steps/Steps.styles.ts
6
+ var stepsContainer = cva("flex flex-col", {
7
+ variants: {
8
+ animated: {
9
+ true: "transition-all duration-300 ease-in-out",
10
+ false: ""
11
+ }
12
+ },
13
+ defaultVariants: { animated: false }
14
+ });
15
+ var navBar = cva("flex items-center justify-between mb-6");
16
+ var navItem = cva(
17
+ "relative flex-1 flex flex-col items-center",
18
+ {
19
+ variants: {
20
+ clickable: {
21
+ true: "cursor-pointer",
22
+ false: "pointer-events-none"
23
+ },
24
+ disabled: {
25
+ true: "opacity-50 pointer-events-none",
26
+ false: ""
27
+ }
28
+ },
29
+ defaultVariants: { clickable: false, disabled: false }
30
+ }
31
+ );
32
+ var marker = cva(
33
+ "w-8 h-8 flex items-center justify-center rounded-full border-2",
34
+ {
35
+ variants: {
36
+ active: {
37
+ true: "bg-blue-500 border-blue-500 text-white",
38
+ false: "bg-white border-gray-300 text-gray-600"
39
+ }
40
+ },
41
+ defaultVariants: { active: false }
42
+ }
43
+ );
44
+ var line = cva("absolute top-1/2 left-full w-full h-0.5", {
45
+ variants: {
46
+ active: {
47
+ true: "bg-blue-500",
48
+ false: "bg-gray-300"
49
+ }
50
+ },
51
+ defaultVariants: { active: false }
52
+ });
53
+ var title = cva("mt-2 text-sm", {
54
+ variants: {
55
+ active: {
56
+ true: "text-blue-600 font-medium",
57
+ false: "text-gray-600"
58
+ }
59
+ },
60
+ defaultVariants: { active: false }
61
+ });
62
+ var subtitle = cva("text-xs mt-1", {
63
+ variants: {
64
+ color: {
65
+ default: "text-blue-500",
66
+ muted: "text-gray-500",
67
+ accent: "text-green-500"
68
+ }
69
+ },
70
+ defaultVariants: { color: "default" }
71
+ });
72
+ var buttonSteps = cva("px-4 py-2 bg-blue-600 text-white rounded");
73
+
74
+ // src/components/steps/Steps.tsx
75
+ var _tmpl$ = /* @__PURE__ */ template(`<div><nav></nav><div>`);
76
+ var _tmpl$2 = /* @__PURE__ */ template(`<div>`);
77
+ var _tmpl$3 = /* @__PURE__ */ template(`<div><div></div><div>`);
78
+ var _tmpl$4 = /* @__PURE__ */ template(`<button type=button class="px-4 py-2 border rounded">Back`);
79
+ var _tmpl$5 = /* @__PURE__ */ template(`<button type=button>Next`);
80
+ var _tmpl$6 = /* @__PURE__ */ template(`<button type=button class="px-4 py-2 bg-green-600 text-white rounded">Restart`);
81
+ var _tmpl$7 = /* @__PURE__ */ template(`<div><div class="flex justify-end gap-2 mt-6">`);
82
+ var Steps = (props) => {
83
+ const [local, variantProps, otherProps] = splitProps(props, ["steps", "animated", "initial", "value", "onStepChange", "className"], ["animated"]);
84
+ const isControlled = () => local.value !== void 0;
85
+ const [internalIndex, setInternalIndex] = createSignal(local.initial ?? 0);
86
+ const activeIndex = createMemo(() => isControlled() ? local.value : internalIndex());
87
+ const clamp = (i) => Math.max(0, Math.min(i, local.steps.length - 1));
88
+ const changeIndex = (i) => {
89
+ const idx = clamp(i);
90
+ if (isControlled()) local.onStepChange?.(idx);
91
+ else setInternalIndex(idx);
92
+ };
93
+ const next = () => changeIndex(activeIndex() + 1);
94
+ const back = () => changeIndex(activeIndex() - 1);
95
+ const isActive = (i) => i === activeIndex();
96
+ const isPast = (i) => i < activeIndex();
97
+ return (() => {
98
+ var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
99
+ spread(_el$, mergeProps({
100
+ get ["class"]() {
101
+ return classes(stepsContainer({
102
+ animated: local.animated
103
+ }), local.className);
104
+ }
105
+ }, otherProps), false, true);
106
+ insert(_el$2, createComponent(For, {
107
+ get each() {
108
+ return local.steps;
109
+ },
110
+ children: (step, idx) => {
111
+ const i = idx();
112
+ return (() => {
113
+ var _el$4 = _tmpl$3(), _el$5 = _el$4.firstChild, _el$7 = _el$5.nextSibling;
114
+ _el$4.$$click = () => step.clickable && changeIndex(i);
115
+ insert(_el$5, () => step.marker ?? String(i + 1));
116
+ insert(_el$4, createComponent(Show, {
117
+ get when() {
118
+ return i < local.steps.length - 1;
119
+ },
120
+ get children() {
121
+ var _el$6 = _tmpl$2();
122
+ effect(() => className(_el$6, line({
123
+ active: isPast(i)
124
+ })));
125
+ return _el$6;
126
+ }
127
+ }), _el$7);
128
+ insert(_el$7, () => step.title);
129
+ insert(_el$4, createComponent(Show, {
130
+ get when() {
131
+ return step.subtitle;
132
+ },
133
+ get children() {
134
+ var _el$8 = _tmpl$2();
135
+ insert(_el$8, () => step.subtitle);
136
+ effect(() => className(_el$8, subtitle()));
137
+ return _el$8;
138
+ }
139
+ }), null);
140
+ effect((_p$) => {
141
+ var _v$ = navItem({
142
+ clickable: !!step.clickable
143
+ }), _v$2 = marker({
144
+ active: isActive(i) || isPast(i)
145
+ }), _v$3 = title({
146
+ active: isActive(i) || isPast(i)
147
+ });
148
+ _v$ !== _p$.e && className(_el$4, _p$.e = _v$);
149
+ _v$2 !== _p$.t && className(_el$5, _p$.t = _v$2);
150
+ _v$3 !== _p$.a && className(_el$7, _p$.a = _v$3);
151
+ return _p$;
152
+ }, {
153
+ e: void 0,
154
+ t: void 0,
155
+ a: void 0
156
+ });
157
+ return _el$4;
158
+ })();
159
+ }
160
+ }));
161
+ insert(_el$3, createComponent(For, {
162
+ get each() {
163
+ return local.steps;
164
+ },
165
+ children: (step, idx) => {
166
+ const i = idx();
167
+ return createComponent(Show, {
168
+ get when() {
169
+ return isActive(i);
170
+ },
171
+ get children() {
172
+ var _el$9 = _tmpl$7(), _el$0 = _el$9.firstChild;
173
+ insert(_el$9, () => step.content, _el$0);
174
+ insert(_el$0, createComponent(Show, {
175
+ when: i > 0,
176
+ get children() {
177
+ var _el$1 = _tmpl$4();
178
+ _el$1.$$click = back;
179
+ return _el$1;
180
+ }
181
+ }), null);
182
+ insert(_el$0, createComponent(Show, {
183
+ get when() {
184
+ return i < local.steps.length - 1;
185
+ },
186
+ get children() {
187
+ var _el$10 = _tmpl$5();
188
+ _el$10.$$click = next;
189
+ effect(() => className(_el$10, buttonSteps()));
190
+ return _el$10;
191
+ }
192
+ }), null);
193
+ insert(_el$0, createComponent(Show, {
194
+ get when() {
195
+ return i === local.steps.length - 1;
196
+ },
197
+ get children() {
198
+ var _el$11 = _tmpl$6();
199
+ _el$11.$$click = () => changeIndex(0);
200
+ return _el$11;
201
+ }
202
+ }), null);
203
+ return _el$9;
204
+ }
205
+ });
206
+ }
207
+ }));
208
+ effect(() => className(_el$2, navBar()));
209
+ return _el$;
210
+ })();
211
+ };
212
+ var Steps_default = Steps;
213
+ delegateEvents(["click"]);
214
+
215
+ // src/components/steps/index.ts
216
+ var steps_default = Steps_default;
217
+
218
+ export { steps_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 };
@@ -0,0 +1,97 @@
1
+ import {
2
+ classes,
3
+ cva
4
+ } from "./P7WPLZNA.jsx";
5
+
6
+ // src/components/field/Field.tsx
7
+ import {
8
+ splitProps
9
+ } from "solid-js";
10
+
11
+ // src/components/field/Field.styles.ts
12
+ var fieldWrapper = cva(
13
+ "flex flex-col space-y-1",
14
+ {
15
+ variants: {
16
+ horizontal: {
17
+ true: "flex-row items-center space-x-2 space-y-0",
18
+ false: "flex-col"
19
+ },
20
+ size: {
21
+ sm: "text-sm",
22
+ md: "text-base",
23
+ lg: "text-lg"
24
+ },
25
+ type: {
26
+ default: "",
27
+ danger: "text-red-600"
28
+ },
29
+ grouped: {
30
+ true: "flex flex-wrap gap-2",
31
+ false: ""
32
+ },
33
+ groupMultiline: {
34
+ true: "flex-col",
35
+ false: "flex-row"
36
+ }
37
+ },
38
+ compoundVariants: [
39
+ { horizontal: true, grouped: true, class: "items-start" }
40
+ ],
41
+ defaultVariants: {
42
+ horizontal: false,
43
+ size: "md",
44
+ type: "default",
45
+ grouped: false,
46
+ groupMultiline: false
47
+ }
48
+ }
49
+ );
50
+ var labelStyles = cva("font-medium", {
51
+ variants: {
52
+ size: { sm: "text-sm", md: "text-base", lg: "text-lg" },
53
+ type: { default: "text-gray-800", danger: "text-red-600" }
54
+ },
55
+ defaultVariants: { size: "md", type: "default" }
56
+ });
57
+ var messageStyles = cva("mt-1 text-sm", {
58
+ variants: {
59
+ type: { default: "text-gray-600", danger: "text-red-600" }
60
+ },
61
+ defaultVariants: { type: "default" }
62
+ });
63
+
64
+ // src/components/field/Field.tsx
65
+ var Field = (props) => {
66
+ const [local, variantProps, rest] = splitProps(
67
+ props,
68
+ ["label", "message", "className", "children"],
69
+ ["horizontal", "size", "type", "grouped", "groupMultiline"]
70
+ );
71
+ return <div class={classes(fieldWrapper(variantProps), local.className)} {...rest}>
72
+ {local.label && <label class={labelStyles(variantProps)}>
73
+ {local.label}
74
+ </label>}
75
+
76
+ {
77
+ /* CONTENT SLOT: now flex when horizontal */
78
+ }
79
+ <div class={classes(
80
+ variantProps.horizontal ? "flex items-center gap-2" : ""
81
+ )}>
82
+ {local.children}
83
+ </div>
84
+
85
+ {local.message && <span class={messageStyles(variantProps)}>
86
+ {local.message}
87
+ </span>}
88
+ </div>;
89
+ };
90
+ var Field_default = Field;
91
+
92
+ // src/components/field/index.ts
93
+ var field_default = Field_default;
94
+
95
+ export {
96
+ field_default
97
+ };
@@ -0,0 +1,166 @@
1
+ import { cva } from './HKS7ET6T.js';
2
+ import { delegateEvents, template, spread, insert, createComponent, effect, className } from 'solid-js/web';
3
+ import { splitProps, createSignal, createMemo, For, Show } from 'solid-js';
4
+
5
+ // src/components/tabs/Tabs.styles.ts
6
+ var tabsNavVariants = cva(
7
+ "flex text-sm font-medium text-gray-600 dark:text-gray-300",
8
+ {
9
+ variants: {
10
+ type: {
11
+ basic: "",
12
+ boxed: "flex gap-2",
13
+ toggle: "inline-flex rounded-md p-1",
14
+ "toggle-rounded": "inline-flex rounded-full p-1"
15
+ },
16
+ size: {
17
+ sm: "text-xs gap-1",
18
+ md: "text-sm gap-2",
19
+ lg: "text-base gap-3"
20
+ },
21
+ alignment: {
22
+ left: "justify-start",
23
+ center: "justify-center",
24
+ right: "justify-end"
25
+ },
26
+ expanded: {
27
+ true: "w-full",
28
+ false: ""
29
+ }
30
+ },
31
+ defaultVariants: {
32
+ type: "basic",
33
+ size: "md",
34
+ alignment: "left",
35
+ expanded: false
36
+ }
37
+ }
38
+ );
39
+ var tabTriggerVariants = cva(
40
+ "inline-flex items-center justify-center whitespace-nowrap font-medium text-sm transition-colors",
41
+ {
42
+ variants: {
43
+ size: {
44
+ sm: "text-xs px-2 py-1",
45
+ md: "text-sm px-3 py-2",
46
+ lg: "text-base px-4 py-3"
47
+ },
48
+ type: {
49
+ basic: "border-b-2 transition-colors hover:text-blue-600",
50
+ boxed: "rounded-t px-4 py-2 hover:text-blue-600",
51
+ toggle: "border -ml-px px-4 py-2 transition-colors first:ml-0 first:rounded-l-md last:rounded-r-md",
52
+ "toggle-rounded": "border -ml-px first:ml-0 first:rounded-l-full last:rounded-r-full transition-colors"
53
+ },
54
+ active: {
55
+ true: "",
56
+ false: ""
57
+ },
58
+ disabled: {
59
+ true: "opacity-50 cursor-not-allowed pointer-events-none",
60
+ false: ""
61
+ }
62
+ },
63
+ compoundVariants: [
64
+ {
65
+ type: "basic",
66
+ active: true,
67
+ class: "border-blue-600 text-blue-600"
68
+ },
69
+ {
70
+ type: "basic",
71
+ active: false,
72
+ class: "border-transparent text-gray-500 dark:text-gray-400"
73
+ },
74
+ {
75
+ type: "boxed",
76
+ active: true,
77
+ class: "border-x border-t border-b-0 border-gray-400 dark:border-gray-600 text-blue-600"
78
+ },
79
+ {
80
+ type: "boxed",
81
+ active: false,
82
+ class: "border-b border-transparent text-gray-500 dark:text-gray-400 hover:text-blue-600"
83
+ },
84
+ {
85
+ type: "toggle",
86
+ active: true,
87
+ class: "bg-blue-600 text-white border-blue-600"
88
+ },
89
+ {
90
+ type: "toggle",
91
+ active: false,
92
+ class: "bg-transparent text-gray-600 dark:text-gray-300 border-gray-300 dark:border-gray-600"
93
+ },
94
+ {
95
+ type: "toggle-rounded",
96
+ active: true,
97
+ class: "bg-blue-600 text-white border-blue-600"
98
+ },
99
+ {
100
+ type: "toggle-rounded",
101
+ active: false,
102
+ class: "bg-transparent text-gray-600 dark:text-gray-300 border-gray-300 dark:border-gray-600"
103
+ }
104
+ ],
105
+ defaultVariants: {
106
+ active: false,
107
+ disabled: false
108
+ }
109
+ }
110
+ );
111
+
112
+ // src/components/tabs/Tabs.tsx
113
+ var _tmpl$ = /* @__PURE__ */ template(`<div><nav><ul class="flex gap-0"></ul></nav><div class=pt-4>`);
114
+ var _tmpl$2 = /* @__PURE__ */ template(`<li><button>`);
115
+ var Tabs = (props) => {
116
+ const [local, variantProps, otherProps] = splitProps(props, ["items", "value", "onChange"], ["size", "type", "alignment", "expanded"]);
117
+ const [internalActive, setInternalActive] = createSignal(local.value ?? 0);
118
+ const isControlled = () => local.value !== void 0;
119
+ const active = createMemo(() => isControlled() ? local.value : internalActive());
120
+ const handleChange = (i) => {
121
+ const item = local.items[i];
122
+ if (!item || item.disabled) return;
123
+ if (!isControlled()) {
124
+ setInternalActive(i);
125
+ }
126
+ local.onChange?.(i);
127
+ };
128
+ return (() => {
129
+ var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$2.nextSibling;
130
+ spread(_el$, otherProps, false, true);
131
+ insert(_el$3, createComponent(For, {
132
+ get each() {
133
+ return local.items;
134
+ },
135
+ children: (tab, i) => (() => {
136
+ var _el$5 = _tmpl$2(), _el$6 = _el$5.firstChild;
137
+ _el$6.$$click = () => handleChange(i());
138
+ insert(_el$6, () => tab.label);
139
+ effect(() => className(_el$6, tabTriggerVariants({
140
+ type: variantProps.type ?? "basic",
141
+ size: variantProps.size ?? "md",
142
+ active: i() === active(),
143
+ disabled: tab.disabled
144
+ })));
145
+ return _el$5;
146
+ })()
147
+ }));
148
+ insert(_el$4, createComponent(Show, {
149
+ get when() {
150
+ return local.items[active()];
151
+ },
152
+ get children() {
153
+ return local.items[active()]?.content;
154
+ }
155
+ }));
156
+ effect(() => className(_el$2, tabsNavVariants(variantProps)));
157
+ return _el$;
158
+ })();
159
+ };
160
+ var Tabs_default = Tabs;
161
+ delegateEvents(["click"]);
162
+
163
+ // src/components/tabs/index.ts
164
+ var tabs_default = Tabs_default;
165
+
166
+ export { tabs_default };
@@ -0,0 +1,92 @@
1
+ import { cva, classes } from './HKS7ET6T.js';
2
+ import { template, className, insert, createComponent, memo, effect } from 'solid-js/web';
3
+ import { For } from 'solid-js';
4
+
5
+ // src/components/timeline/Timeline.styles.ts
6
+ var timelineWrapperClass = "relative";
7
+ var timelineItemClass = cva(
8
+ "relative flex items-center gap-3 min-h-[48px]",
9
+ {
10
+ variants: {
11
+ state: {
12
+ default: "text-gray-500",
13
+ active: "text-green-500 font-medium",
14
+ error: "text-red-500 font-medium"
15
+ }
16
+ },
17
+ defaultVariants: {
18
+ state: "default"
19
+ }
20
+ }
21
+ );
22
+ var timelineMarkerWrapperClass = "relative w-6 min-h-[48px] flex items-center justify-center";
23
+ var timelineLineClass = "absolute top-0 bottom-0 left-1/2 -translate-x-1/2 w-px bg-gray-300 dark:bg-gray-600";
24
+ var timelineMarkerClass = "absolute w-3 h-3 rounded-full border-2 border-white bg-gray-400 z-10";
25
+ var timelineNumberClass = cva(
26
+ "absolute -left-4 top-1/2 -translate-y-1/2 text-xs font-semibold",
27
+ {
28
+ variants: {
29
+ state: {
30
+ default: "text-gray-500",
31
+ active: "text-green-500",
32
+ error: "text-red-500"
33
+ }
34
+ },
35
+ defaultVariants: {
36
+ state: "default"
37
+ }
38
+ }
39
+ );
40
+ var timelineContentClass = "pt-0.5 text-sm";
41
+
42
+ // src/components/timeline/Timeline.tsx
43
+ var _tmpl$ = /* @__PURE__ */ template(`<ol>`);
44
+ var _tmpl$2 = /* @__PURE__ */ template(`<li><div><div></div><span></span><span>.</span></div><div>`);
45
+ var Timeline = (props) => {
46
+ return (() => {
47
+ var _el$ = _tmpl$();
48
+ className(_el$, timelineWrapperClass);
49
+ insert(_el$, createComponent(For, {
50
+ get each() {
51
+ return props.stages;
52
+ },
53
+ children: (stage, index) => {
54
+ const state = stage.error === true ? "error" : stage.active === true ? "active" : "default";
55
+ return (() => {
56
+ var _el$2 = _tmpl$2(), _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling, _el$7 = _el$6.firstChild, _el$8 = _el$3.nextSibling;
57
+ className(_el$3, timelineMarkerWrapperClass);
58
+ className(_el$4, timelineLineClass);
59
+ insert(_el$6, () => index() + 1, _el$7);
60
+ className(_el$8, timelineContentClass);
61
+ insert(_el$8, (() => {
62
+ var _c$ = memo(() => !!props.renderStage);
63
+ return () => _c$() ? props.renderStage(stage, index()) : stage.title;
64
+ })());
65
+ effect((_p$) => {
66
+ var _v$ = timelineItemClass({
67
+ state
68
+ }), _v$2 = classes(timelineMarkerClass, state === "active" && "bg-green-500", state === "error" && "bg-red-500"), _v$3 = timelineNumberClass({
69
+ state
70
+ });
71
+ _v$ !== _p$.e && className(_el$2, _p$.e = _v$);
72
+ _v$2 !== _p$.t && className(_el$5, _p$.t = _v$2);
73
+ _v$3 !== _p$.a && className(_el$6, _p$.a = _v$3);
74
+ return _p$;
75
+ }, {
76
+ e: void 0,
77
+ t: void 0,
78
+ a: void 0
79
+ });
80
+ return _el$2;
81
+ })();
82
+ }
83
+ }));
84
+ return _el$;
85
+ })();
86
+ };
87
+ var Timeline_default = Timeline;
88
+
89
+ // src/components/timeline/index.ts
90
+ var timeline_default = Timeline_default;
91
+
92
+ export { timeline_default };