@bookklik/senangstart-css 0.2.9 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/skills/add-utility/SKILL.md +65 -0
- package/.agent/workflows/add-utility.md +2 -0
- package/.agent/workflows/build.md +2 -0
- package/.agent/workflows/dev.md +2 -0
- package/AGENTS.md +30 -0
- package/dist/senangstart-css.js +607 -180
- package/dist/senangstart-css.min.js +234 -195
- package/dist/senangstart-tw.js +274 -8
- package/dist/senangstart-tw.min.js +1 -1
- package/docs/SYNTAX-REFERENCE.md +1731 -1590
- package/docs/guide/preflight.md +20 -1
- package/docs/ms/guide/preflight.md +19 -0
- package/docs/ms/reference/breakpoints.md +14 -0
- package/docs/ms/reference/visual/border-radius.md +50 -10
- package/docs/ms/reference/visual/contain.md +57 -0
- package/docs/ms/reference/visual/content-visibility.md +53 -0
- package/docs/ms/reference/visual/placeholder-color.md +92 -0
- package/docs/ms/reference/visual/ring-color.md +2 -2
- package/docs/ms/reference/visual/ring-offset.md +3 -3
- package/docs/ms/reference/visual/ring.md +5 -5
- package/docs/ms/reference/visual/writing-mode.md +53 -0
- package/docs/ms/reference/visual.md +6 -0
- package/docs/public/assets/senangstart-css.min.js +234 -195
- package/docs/public/llms.txt +45 -12
- package/docs/reference/breakpoints.md +14 -0
- package/docs/reference/visual/border-radius.md +50 -10
- package/docs/reference/visual/contain.md +57 -0
- package/docs/reference/visual/content-visibility.md +53 -0
- package/docs/reference/visual/placeholder-color.md +92 -0
- package/docs/reference/visual/ring-color.md +2 -2
- package/docs/reference/visual/ring-offset.md +3 -3
- package/docs/reference/visual/ring.md +5 -5
- package/docs/reference/visual/writing-mode.md +53 -0
- package/docs/reference/visual.md +7 -0
- package/docs/syntax-reference.json +2185 -2009
- package/package.json +1 -1
- package/scripts/convert-tailwind.js +300 -26
- package/scripts/generate-docs.js +403 -403
- package/src/cdn/senangstart-engine.js +5 -5
- package/src/cdn/tw-conversion-engine.js +305 -8
- package/src/cli/commands/build.js +51 -13
- package/src/cli/commands/dev.js +157 -93
- package/src/compiler/generators/css.js +467 -208
- package/src/compiler/generators/preflight.js +26 -13
- package/src/compiler/generators/typescript.js +3 -1
- package/src/compiler/index.js +27 -3
- package/src/compiler/parser.js +13 -6
- package/src/compiler/tokenizer.js +25 -23
- package/src/config/defaults.js +3 -0
- package/src/core/tokenizer-core.js +46 -19
- package/src/definitions/index.js +4 -1
- package/src/definitions/visual-borders.js +10 -10
- package/src/definitions/visual-performance.js +126 -0
- package/src/definitions/visual.js +25 -9
- package/src/utils/common.js +456 -27
- package/src/utils/node-io.js +82 -0
- package/tests/integration/dev-recovery.test.js +231 -0
- package/tests/unit/cli/memory-limits.test.js +169 -0
- package/tests/unit/compiler/css-generation-error-handling.test.js +204 -0
- package/tests/unit/compiler/generators/css-errors.test.js +102 -0
- package/tests/unit/compiler/generators/css.test.js +102 -5
- package/tests/unit/convert-tailwind.test.js +518 -431
- package/tests/unit/utils/common.test.js +376 -26
- package/tests/unit/utils/file-timeout.test.js +154 -0
- package/tests/unit/utils/theme-validation.test.js +181 -0
- package/tests/unit/compiler/generators/css.coverage.test.js +0 -833
- package/tests/unit/convert-tailwind.cli.test.js +0 -95
- package/tests/unit/security.test.js +0 -206
- /package/tests/unit/{convert-tailwind.coverage.test.js → convert-tailwind-edgecases.test.js} +0 -0
package/dist/senangstart-tw.js
CHANGED
|
@@ -142,6 +142,60 @@
|
|
|
142
142
|
"9xl": "hero"
|
|
143
143
|
// 8rem → hero
|
|
144
144
|
};
|
|
145
|
+
var lineHeightScale = {
|
|
146
|
+
none: "none",
|
|
147
|
+
// line-height: 1
|
|
148
|
+
tight: "tight",
|
|
149
|
+
// line-height: 1.25
|
|
150
|
+
snug: "snug",
|
|
151
|
+
// line-height: 1.375
|
|
152
|
+
normal: "normal",
|
|
153
|
+
// line-height: 1.5
|
|
154
|
+
relaxed: "relaxed",
|
|
155
|
+
// line-height: 1.625
|
|
156
|
+
loose: "loose"
|
|
157
|
+
// line-height: 2
|
|
158
|
+
};
|
|
159
|
+
var letterSpacingScale = {
|
|
160
|
+
tighter: "tighter",
|
|
161
|
+
// letter-spacing: -0.05em
|
|
162
|
+
tight: "tight",
|
|
163
|
+
// letter-spacing: -0.025em
|
|
164
|
+
normal: "normal",
|
|
165
|
+
// letter-spacing: 0
|
|
166
|
+
wide: "wide",
|
|
167
|
+
// letter-spacing: 0.025em
|
|
168
|
+
wider: "wider",
|
|
169
|
+
// letter-spacing: 0.05em
|
|
170
|
+
widest: "widest"
|
|
171
|
+
// letter-spacing: 0.1em
|
|
172
|
+
};
|
|
173
|
+
var zIndexScale = {
|
|
174
|
+
0: "base",
|
|
175
|
+
// z-index: 0
|
|
176
|
+
10: "low",
|
|
177
|
+
// z-index: 10
|
|
178
|
+
20: "low",
|
|
179
|
+
// z-index: 20
|
|
180
|
+
30: "low",
|
|
181
|
+
// z-index: 30
|
|
182
|
+
40: "low",
|
|
183
|
+
// z-index: 40
|
|
184
|
+
50: "mid",
|
|
185
|
+
// z-index: 50
|
|
186
|
+
60: "high",
|
|
187
|
+
// z-index: 60
|
|
188
|
+
70: "high",
|
|
189
|
+
// z-index: 70
|
|
190
|
+
80: "high",
|
|
191
|
+
// z-index: 80
|
|
192
|
+
90: "high",
|
|
193
|
+
// z-index: 90
|
|
194
|
+
100: "high",
|
|
195
|
+
// z-index: 100
|
|
196
|
+
auto: "auto"
|
|
197
|
+
// z-index: auto
|
|
198
|
+
};
|
|
145
199
|
var fractionScale = {
|
|
146
200
|
"1/2": "half",
|
|
147
201
|
// 50%
|
|
@@ -218,26 +272,96 @@
|
|
|
218
272
|
"object-scale-down": "object:scale-down"
|
|
219
273
|
};
|
|
220
274
|
var visualKeywords = {
|
|
275
|
+
// Font style
|
|
221
276
|
italic: "italic",
|
|
222
277
|
"not-italic": "not-italic",
|
|
278
|
+
// Font smoothing
|
|
223
279
|
antialiased: "antialiased",
|
|
280
|
+
"subpixel-antialiased": "subpixel-antialiased",
|
|
281
|
+
// Text transform
|
|
224
282
|
uppercase: "uppercase",
|
|
225
283
|
lowercase: "lowercase",
|
|
226
284
|
capitalize: "capitalize",
|
|
227
285
|
"normal-case": "normal-case",
|
|
286
|
+
// Text decoration
|
|
228
287
|
underline: "underline",
|
|
288
|
+
overline: "overline",
|
|
229
289
|
"line-through": "line-through",
|
|
230
290
|
"no-underline": "no-underline",
|
|
291
|
+
// Text decoration style
|
|
292
|
+
"decoration-solid": "decoration-solid",
|
|
293
|
+
"decoration-double": "decoration-double",
|
|
294
|
+
"decoration-dotted": "decoration-dotted",
|
|
295
|
+
"decoration-dashed": "decoration-dashed",
|
|
296
|
+
"decoration-wavy": "decoration-wavy",
|
|
297
|
+
// Text overflow
|
|
231
298
|
truncate: "truncate",
|
|
232
|
-
"
|
|
299
|
+
"text-ellipsis": "text-ellipsis",
|
|
300
|
+
"text-clip": "text-clip",
|
|
301
|
+
// Text wrap
|
|
302
|
+
"text-wrap": "text-wrap",
|
|
303
|
+
"text-nowrap": "text-nowrap",
|
|
304
|
+
"text-balance": "text-balance",
|
|
305
|
+
"text-pretty": "text-pretty",
|
|
306
|
+
// Whitespace
|
|
307
|
+
"whitespace-normal": "whitespace-normal",
|
|
308
|
+
"whitespace-nowrap": "whitespace-nowrap",
|
|
309
|
+
"whitespace-pre": "whitespace-pre",
|
|
310
|
+
"whitespace-pre-line": "whitespace-pre-line",
|
|
311
|
+
"whitespace-pre-wrap": "whitespace-pre-wrap",
|
|
312
|
+
"whitespace-break-spaces": "whitespace-break-spaces",
|
|
313
|
+
// Word break
|
|
314
|
+
"break-normal": "break-normal",
|
|
315
|
+
"break-words": "break-words",
|
|
316
|
+
"break-all": "break-all",
|
|
317
|
+
"break-keep": "break-keep",
|
|
318
|
+
// Hyphens
|
|
319
|
+
"hyphens-none": "hyphens-none",
|
|
320
|
+
"hyphens-manual": "hyphens-manual",
|
|
321
|
+
"hyphens-auto": "hyphens-auto",
|
|
322
|
+
// List style
|
|
323
|
+
"list-none": "list-none",
|
|
324
|
+
"list-disc": "list-disc",
|
|
325
|
+
"list-decimal": "list-decimal",
|
|
326
|
+
"list-inside": "list-inside",
|
|
327
|
+
"list-outside": "list-outside",
|
|
328
|
+
// Cursor
|
|
329
|
+
"cursor-auto": "cursor:auto",
|
|
233
330
|
"cursor-default": "cursor:default",
|
|
331
|
+
"cursor-pointer": "cursor:pointer",
|
|
332
|
+
"cursor-wait": "cursor:wait",
|
|
333
|
+
"cursor-text": "cursor:text",
|
|
334
|
+
"cursor-move": "cursor:move",
|
|
234
335
|
"cursor-not-allowed": "cursor:not-allowed",
|
|
336
|
+
"cursor-grab": "cursor:grab",
|
|
337
|
+
"cursor-grabbing": "cursor:grabbing",
|
|
338
|
+
// User select
|
|
235
339
|
"select-none": "select:none",
|
|
236
340
|
"select-text": "select:text",
|
|
237
|
-
"select-all": "select:all"
|
|
341
|
+
"select-all": "select:all",
|
|
342
|
+
"select-auto": "select:auto",
|
|
343
|
+
// Pointer events
|
|
344
|
+
"pointer-events-none": "pointer-events:none",
|
|
345
|
+
"pointer-events-auto": "pointer-events:auto",
|
|
346
|
+
// Appearance
|
|
347
|
+
"appearance-none": "appearance:none",
|
|
348
|
+
"appearance-auto": "appearance:auto",
|
|
349
|
+
// 3D Transforms
|
|
350
|
+
perspective: "perspective",
|
|
351
|
+
"perspective-origin": "perspective-origin",
|
|
352
|
+
"transform-style": "transform-style",
|
|
353
|
+
"backface-visibility": "backface",
|
|
354
|
+
mask: "mask",
|
|
355
|
+
"mask-image": "mask-image",
|
|
356
|
+
"mask-mode": "mask-mode",
|
|
357
|
+
"mask-origin": "mask-origin",
|
|
358
|
+
"mask-position": "mask-position",
|
|
359
|
+
"mask-repeat": "mask-repeat",
|
|
360
|
+
"mask-size": "mask-size",
|
|
361
|
+
"mask-type": "mask-type"
|
|
238
362
|
};
|
|
239
363
|
function getSpacing(value, exact) {
|
|
240
|
-
if (value.startsWith("[") && value.endsWith("]")) {
|
|
364
|
+
if (value && value.startsWith("[") && value.endsWith("]")) {
|
|
241
365
|
return value;
|
|
242
366
|
}
|
|
243
367
|
if (exact) {
|
|
@@ -336,6 +460,16 @@
|
|
|
336
460
|
const size = exact ? `tw-${textSizeMatch[1]}` : fontSizeScale[textSizeMatch[1]] || textSizeMatch[1];
|
|
337
461
|
return attachExtra({ cat: "visual", val: prefix + "text-size:" + size });
|
|
338
462
|
}
|
|
463
|
+
const leadingMatch = baseClass.match(/^leading-(\[.+\]|none|tight|snug|normal|relaxed|loose)$/);
|
|
464
|
+
if (leadingMatch) {
|
|
465
|
+
const val = leadingMatch[1];
|
|
466
|
+
return attachExtra({ cat: "visual", val: prefix + "leading:" + (lineHeightScale[val] || val) });
|
|
467
|
+
}
|
|
468
|
+
const trackingMatch = baseClass.match(/^tracking-(\[.+\]|tighter|tight|normal|wide|wider|widest)$/);
|
|
469
|
+
if (trackingMatch) {
|
|
470
|
+
const val = trackingMatch[1];
|
|
471
|
+
return attachExtra({ cat: "visual", val: prefix + "tracking:" + (letterSpacingScale[val] || val) });
|
|
472
|
+
}
|
|
339
473
|
const bgMatch = baseClass.match(
|
|
340
474
|
/^bg-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?|transparent|current|inherit)$/
|
|
341
475
|
);
|
|
@@ -390,7 +524,7 @@
|
|
|
390
524
|
const isNeg = baseClass.startsWith("-");
|
|
391
525
|
const side = marginMatch[1] ? "-" + marginMatch[1] : "";
|
|
392
526
|
let val = getSpacing(marginMatch[2], exact);
|
|
393
|
-
if (isNeg) {
|
|
527
|
+
if (isNeg && val) {
|
|
394
528
|
if (val.startsWith("[") && val.endsWith("]")) {
|
|
395
529
|
const inner = val.slice(1, -1);
|
|
396
530
|
val = `[-${inner}]`;
|
|
@@ -456,11 +590,11 @@
|
|
|
456
590
|
if (positionMatch) {
|
|
457
591
|
const prop = positionMatch[1];
|
|
458
592
|
let val = positionMatch[2];
|
|
459
|
-
if (val
|
|
460
|
-
val = "none";
|
|
461
|
-
} else if (val.startsWith("[") && val.endsWith("]")) {
|
|
593
|
+
if (val && val.startsWith("[") && val.endsWith("]")) {
|
|
462
594
|
} else if (fractionScale[val]) {
|
|
463
595
|
val = fractionScale[val];
|
|
596
|
+
} else if (val === "0") {
|
|
597
|
+
val = "0";
|
|
464
598
|
} else {
|
|
465
599
|
val = getSpacing(val, exact);
|
|
466
600
|
}
|
|
@@ -471,7 +605,7 @@
|
|
|
471
605
|
const isNeg = translateMatch[1] === "-";
|
|
472
606
|
const axis = translateMatch[2];
|
|
473
607
|
let val = translateMatch[3];
|
|
474
|
-
if (val.startsWith("[") && val.endsWith("]")) {
|
|
608
|
+
if (val && val.startsWith("[") && val.endsWith("]")) {
|
|
475
609
|
if (isNeg) {
|
|
476
610
|
const inner = val.slice(1, -1);
|
|
477
611
|
val = `[-${inner}]`;
|
|
@@ -494,6 +628,27 @@
|
|
|
494
628
|
if (orderMatch) {
|
|
495
629
|
return attachExtra({ cat: "layout", val: prefix + "order:" + orderMatch[1] });
|
|
496
630
|
}
|
|
631
|
+
const zIndexMatch = baseClass.match(/^-?z-(\d+|auto)$/);
|
|
632
|
+
if (zIndexMatch) {
|
|
633
|
+
const isNeg = baseClass.startsWith("-");
|
|
634
|
+
const val = zIndexMatch[1];
|
|
635
|
+
let zIndexVal = zIndexScale[val] || val;
|
|
636
|
+
if (isNeg) {
|
|
637
|
+
zIndexVal = `-${zIndexVal}`;
|
|
638
|
+
}
|
|
639
|
+
return attachExtra({ cat: "layout", val: prefix + "z:" + zIndexVal });
|
|
640
|
+
}
|
|
641
|
+
const basisMatch = baseClass.match(/^basis-(\[.+\]|\d+\.?\d*|auto|full|1\/2|1\/3|2\/3|1\/4|2\/4|3\/4)$/);
|
|
642
|
+
if (basisMatch) {
|
|
643
|
+
let val = basisMatch[1];
|
|
644
|
+
if (val.startsWith("[") && val.endsWith("]")) {
|
|
645
|
+
} else if (fractionScale[val]) {
|
|
646
|
+
val = fractionScale[val];
|
|
647
|
+
} else if (val === "0") {
|
|
648
|
+
val = "0";
|
|
649
|
+
}
|
|
650
|
+
return attachExtra({ cat: "layout", val: prefix + "basis:" + val });
|
|
651
|
+
}
|
|
497
652
|
const gridColsMatch = baseClass.match(/^grid-cols-(\d+|none)$/);
|
|
498
653
|
if (gridColsMatch) {
|
|
499
654
|
return attachExtra({ cat: "layout", val: prefix + "grid-cols:" + gridColsMatch[1] });
|
|
@@ -638,6 +793,117 @@
|
|
|
638
793
|
// Fixed category from 'color' to 'visual'
|
|
639
794
|
});
|
|
640
795
|
}
|
|
796
|
+
const borderStyleMatch = baseClass.match(/^border-(solid|dashed|dotted|double|none)$/);
|
|
797
|
+
if (borderStyleMatch) {
|
|
798
|
+
return attachExtra({
|
|
799
|
+
cat: "visual",
|
|
800
|
+
val: prefix + "border-style:" + borderStyleMatch[1]
|
|
801
|
+
});
|
|
802
|
+
}
|
|
803
|
+
const blurMatch = baseClass.match(/^blur-(0|sm|md|lg|xl|2xl|3xl)$/);
|
|
804
|
+
if (blurMatch) {
|
|
805
|
+
const blurScale = {
|
|
806
|
+
"0": "none",
|
|
807
|
+
"sm": "tiny",
|
|
808
|
+
"md": "small",
|
|
809
|
+
"lg": "medium",
|
|
810
|
+
"xl": "big",
|
|
811
|
+
"2xl": "giant",
|
|
812
|
+
"3xl": "vast"
|
|
813
|
+
};
|
|
814
|
+
return attachExtra({
|
|
815
|
+
cat: "visual",
|
|
816
|
+
val: prefix + "blur:" + blurScale[blurMatch[1]]
|
|
817
|
+
});
|
|
818
|
+
}
|
|
819
|
+
const brightnessMatch = baseClass.match(/^brightness-(0|50|75|90|95|100|105|110|125|150|200)$/);
|
|
820
|
+
if (brightnessMatch) {
|
|
821
|
+
const brightnessScale = {
|
|
822
|
+
"0": "dim",
|
|
823
|
+
"50": "dim",
|
|
824
|
+
"75": "dark",
|
|
825
|
+
"90": "dark",
|
|
826
|
+
"95": "dark",
|
|
827
|
+
"100": "normal",
|
|
828
|
+
"105": "bright",
|
|
829
|
+
"110": "bright",
|
|
830
|
+
"125": "vivid",
|
|
831
|
+
"150": "vivid",
|
|
832
|
+
"200": "vivid"
|
|
833
|
+
};
|
|
834
|
+
return attachExtra({
|
|
835
|
+
cat: "visual",
|
|
836
|
+
val: prefix + "brightness:" + brightnessScale[brightnessMatch[1]]
|
|
837
|
+
});
|
|
838
|
+
}
|
|
839
|
+
const contrastMatch = baseClass.match(/^contrast-(0|50|75|100|125|150|200)$/);
|
|
840
|
+
if (contrastMatch) {
|
|
841
|
+
const contrastScale = {
|
|
842
|
+
"0": "low",
|
|
843
|
+
"50": "low",
|
|
844
|
+
"75": "reduced",
|
|
845
|
+
"100": "normal",
|
|
846
|
+
"125": "high",
|
|
847
|
+
"150": "high",
|
|
848
|
+
"200": "max"
|
|
849
|
+
};
|
|
850
|
+
return attachExtra({
|
|
851
|
+
cat: "visual",
|
|
852
|
+
val: prefix + "contrast:" + contrastScale[contrastMatch[1]]
|
|
853
|
+
});
|
|
854
|
+
}
|
|
855
|
+
const grayscaleMatch = baseClass.match(/^grayscale(0)?$/);
|
|
856
|
+
if (grayscaleMatch) {
|
|
857
|
+
const val = grayscaleMatch[1] === "0" ? "none" : "full";
|
|
858
|
+
return attachExtra({
|
|
859
|
+
cat: "visual",
|
|
860
|
+
val: prefix + "grayscale:" + val
|
|
861
|
+
});
|
|
862
|
+
}
|
|
863
|
+
const hueRotateMatch = baseClass.match(/^hue-rotate-(0|15|30|60|90|180)$/);
|
|
864
|
+
if (hueRotateMatch) {
|
|
865
|
+
return attachExtra({
|
|
866
|
+
cat: "visual",
|
|
867
|
+
val: prefix + "hue-rotate:" + hueRotateMatch[1]
|
|
868
|
+
});
|
|
869
|
+
}
|
|
870
|
+
const invertMatch = baseClass.match(/^invert(0)?$/);
|
|
871
|
+
if (invertMatch) {
|
|
872
|
+
const val = invertMatch[1] === "0" ? "none" : "full";
|
|
873
|
+
return attachExtra({
|
|
874
|
+
cat: "visual",
|
|
875
|
+
val: prefix + "invert:" + val
|
|
876
|
+
});
|
|
877
|
+
}
|
|
878
|
+
const saturateMatch = baseClass.match(/^saturate-(0|50|100|150|200)$/);
|
|
879
|
+
if (saturateMatch) {
|
|
880
|
+
const saturateScale = {
|
|
881
|
+
"0": "none",
|
|
882
|
+
"50": "low",
|
|
883
|
+
"100": "normal",
|
|
884
|
+
"150": "high",
|
|
885
|
+
"200": "vivid"
|
|
886
|
+
};
|
|
887
|
+
return attachExtra({
|
|
888
|
+
cat: "visual",
|
|
889
|
+
val: prefix + "saturate:" + saturateScale[saturateMatch[1]]
|
|
890
|
+
});
|
|
891
|
+
}
|
|
892
|
+
const sepiaMatch = baseClass.match(/^sepia(0)?$/);
|
|
893
|
+
if (sepiaMatch) {
|
|
894
|
+
const val = sepiaMatch[1] === "0" ? "none" : "full";
|
|
895
|
+
return attachExtra({
|
|
896
|
+
cat: "visual",
|
|
897
|
+
val: prefix + "sepia:" + val
|
|
898
|
+
});
|
|
899
|
+
}
|
|
900
|
+
const animateMatch = baseClass.match(/^animate-(none|spin|ping|pulse|bounce)$/);
|
|
901
|
+
if (animateMatch) {
|
|
902
|
+
return attachExtra({
|
|
903
|
+
cat: "visual",
|
|
904
|
+
val: prefix + "animate:" + animateMatch[1]
|
|
905
|
+
});
|
|
906
|
+
}
|
|
641
907
|
return null;
|
|
642
908
|
}
|
|
643
909
|
function convertClasses(classString, exact) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* SenangStart TW v0.2.0 | MIT */
|
|
2
|
-
(()=>{var S={0:"none",px:"thin",.5:"regular",1:"tiny",1.5:"tiny-2x",2:"small",2.5:"small-2x",3:"small-3x",3.5:"small-4x",4:"medium",5:"medium-2x",6:"medium-3x",7:"medium-4x",8:"large",9:"large-2x",10:"large-3x",11:"large-4x",12:"big",14:"big-2x",16:"big-3x",20:"big-4x",24:"giant",28:"giant-2x",32:"giant-3x",36:"giant-4x",40:"vast",44:"vast-2x",48:"vast-3x",52:"vast-4x",56:"vast-5x",60:"vast-6x",64:"vast-7x",72:"vast-8x",80:"vast-9x",96:"vast-10x",full:"[100%]",screen:"[100vw]",auto:"auto"},ae={none:"none",sm:"small","":"small",md:"small",lg:"medium",xl:"medium","2xl":"big","3xl":"big",full:"round"},ie={none:"none",sm:"small","":"small",md:"medium",lg:"big",xl:"giant","2xl":"giant",inner:"none"},re={xs:"mini",sm:"small",base:"base",lg:"large",xl:"big","2xl":"huge","3xl":"grand","4xl":"giant","5xl":"mount","6xl":"mega","7xl":"giga","8xl":"tera","9xl":"hero"},$={"1/2":"half","1/3":"third","2/3":"third-2x","1/4":"quarter","2/4":"half","3/4":"quarter-3x",full:"full"},z={container:"container",flex:"flex","inline-flex":"inline-flex",grid:"grid","inline-grid":"inline-grid",block:"block","inline-block":"inline",hidden:"hidden","flex-row":"row","flex-col":"col","flex-row-reverse":"row-reverse","flex-col-reverse":"col-reverse","flex-wrap":"wrap","flex-nowrap":"nowrap","flex-wrap-reverse":"wrap-reverse","flex-grow":"grow","flex-grow-0":"grow-0",grow:"grow","grow-0":"grow-0","flex-shrink":"shrink","flex-shrink-0":"shrink-0",shrink:"shrink","shrink-0":"shrink-0","flex-1":"flex:1","flex-auto":"flex:auto","flex-initial":"flex:initial","flex-none":"flex:none","justify-start":"justify:start","justify-end":"justify:end","justify-center":"justify:center","justify-between":"justify:between","justify-around":"justify:around","justify-evenly":"justify:evenly","items-start":"items:start","items-end":"items:end","items-center":"items:center","items-baseline":"items:baseline","items-stretch":"items:stretch","self-auto":"self:auto","self-start":"self:start","self-end":"self:end","self-center":"self:center","self-stretch":"self:stretch",relative:"relative",absolute:"absolute",fixed:"fixed",sticky:"sticky",static:"static","overflow-auto":"overflow:auto","overflow-hidden":"overflow:hidden","overflow-visible":"overflow:visible","overflow-scroll":"overflow:scroll","object-contain":"object:contain","object-cover":"object:cover","object-fill":"object:fill","object-none":"object:none","object-scale-down":"object:scale-down"},C={italic:"italic","not-italic":"not-italic",antialiased:"antialiased",uppercase:"uppercase",lowercase:"lowercase",capitalize:"capitalize","normal-case":"normal-case",underline:"underline","line-through":"line-through","no-underline":"no-underline",truncate:"truncate","cursor-pointer":"cursor:pointer","cursor-default":"cursor:default","cursor-not-allowed":"cursor:not-allowed","select-none":"select:none","select-text":"select:text","select-all":"select:all"};function g(s,l){return s.startsWith("[")&&s.endsWith("]")?s:l?["full","screen","auto"].includes(s)?S[s]||`[${s}]`:`tw-${s}`:S[s]||`[${s}]`}var se={0:"none",1:"thin",2:"regular",3:"thick",4:"tiny",8:"small"};function k(s,l){return l?`tw-${s}`:se[s]||`[${s}px]`}function ne(s,l){let m=s.match(/^(sm:|md:|lg:|xl:|2xl:|hover:|focus:|focus-visible:|active:|disabled:|dark:|group-hover:|peer-hover:|group-focus:|peer-focus:|group-active:|peer-active:|peer-check:|group-open:|peer-open:)(.+)$/),a="",t=s,f=null;if(m){let e=m[1].slice(0,-1);if(["sm","md","lg","xl","2xl"].includes(e))a=`tw-${e}:`;else if(e.startsWith("group-")||e.startsWith("peer-")){let r={hover:"hover",focus:"focus",active:"active",open:"expanded",check:"checked"},n=e.split("-")[1];a=`${r[n]||n}:`,e.startsWith("peer-")&&(f={cat:"listens",val:"peer"})}else a=m[1];t=m[2]}if(t==="group")return{cat:"layout",val:"hoverable focusable pressable expandable"};if(t==="peer")return[{cat:"layout",val:"hoverable focusable pressable expandable"},{cat:"interact",val:"peer"}];let i=e=>e?f?Array.isArray(e)?[...e,f]:[e,f]:e:null;if(z[t])return i({cat:"layout",val:a+z[t]});if(C[t])return i({cat:"visual",val:a+C[t]});let v=t.match(/^text-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?)$/);if(v)return i({cat:"visual",val:a+"text:"+v[1]});if(["text-left","text-center","text-right","text-justify"].includes(t))return i({cat:"visual",val:a+"text:"+t.replace("text-","")});let h=t.match(/^text-(xs|sm|base|lg|xl|2xl|3xl|4xl|5xl|6xl|7xl|8xl|9xl)$/);if(h){let e=l?`tw-${h[1]}`:re[h[1]]||h[1];return i({cat:"visual",val:a+"text-size:"+e})}let d=t.match(/^bg-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?|transparent|current|inherit)$/);if(d){let e=d[1];return i(e==="transparent"?{cat:"visual",val:a+"bg:transparent"}:e==="current"?{cat:"visual",val:a+"bg:currentColor"}:e==="inherit"?{cat:"visual",val:a+"bg:inherit"}:{cat:"visual",val:a+"bg:"+e})}let u=t.match(/^border-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black|transparent|current|inherit)(?:-\d+)?)$/);if(u){let e=u[1];return e==="current"&&(e="currentColor"),i({cat:"visual",val:a+"border:"+e})}let o=t.match(/^border-([trbl])-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black|transparent|current|inherit)(?:-\d+)?)$/);if(o){let e=o[1],r=o[2];return r==="current"&&(r="currentColor"),i({cat:"visual",val:a+`border-${e}:${r}`})}let p=t.match(/^p([trblxy])?-(.+)$/);if(p){let e=p[1]?"-"+p[1]:"";return i({cat:"space",val:a+"p"+e+":"+g(p[2],l)})}let c=t.match(/^-?m([trblxy])?-(\[.+\]|\d+\.?\d*|px|auto|full|screen)$/);if(c){let e=t.startsWith("-"),r=c[1]?"-"+c[1]:"",n=g(c[2],l);return e&&(n.startsWith("[")&&n.endsWith("]")?n=`[-${n.slice(1,-1)}]`:n=`-${n}`),i({cat:"space",val:a+"m"+r+":"+n})}let w=t.match(/^gap-([xy])?-?(.+)$/);if(w){let e=w[1]?"-"+w[1]:"";return i({cat:"space",val:a+"g"+e+":"+g(w[2],l)})}let M=t.match(/^(min-w|max-w|w)-(.+)$/);if(M){let e=M[1],r=M[2],b={max:"[max-content]",min:"[min-content]",fit:"[fit-content]",prose:"[65ch]"}[r]||g(r,l);return i({cat:"space",val:a+e+":"+b})}let j=t.match(/^(min-h|max-h|h)-(.+)$/);if(j){let e=j[1],r=j[2],b={screen:"[100vh]",svh:"[100svh]",lvh:"[100lvh]",dvh:"[100dvh]",max:"[max-content]",min:"[min-content]",fit:"[fit-content]"}[r]||g(r,l);return i({cat:"space",val:a+e+":"+b})}let V=t.match(/^rounded(?:-(.+))?$/);if(V){let e=V[1]||"",r=l?e===""?"tw-DEFAULT":`tw-${e}`:ae[e]||"medium";return i({cat:"visual",val:a+"rounded:"+r})}let A=t.match(/^shadow(?:-(.+))?$/);if(A){let e=A[1]||"",r=l?e===""?"tw-DEFAULT":`tw-${e}`:ie[e]||"medium";return i({cat:"visual",val:a+"shadow:"+r})}let q=t.match(/^font-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black)$/);if(q)return i({cat:"visual",val:a+"font:tw-"+q[1]});let x=t.match(/^border(?:-([trblxy]))?(?:-(\d+))?$/);if(x&&(x[2]||!x[1]&&t==="border")){let e=x[1]?"-"+x[1]+"-w":"-w",r=x[2]||"1";return i({cat:"visual",val:a+"border"+e+":"+k(r,l)})}let W=t.match(/^(top|right|bottom|left|inset|inset-x|inset-y)-(\d+|px|auto|full|1\/2|1\/3|2\/3|1\/4|2\/4|3\/4|\[.+\])$/);if(W){let e=W[1],r=W[2];return r==="0"?r="none":r.startsWith("[")&&r.endsWith("]")||($[r]?r=$[r]:r=g(r,l)),i({cat:"layout",val:a+e+":"+r})}let y=t.match(/^(-?)translate-([xy])-(\d+|px|full|1\/2|1\/3|2\/3|1\/4|2\/4|3\/4|\[.+\])$/);if(y){let e=y[1]==="-",r=y[2],n=y[3];return n.startsWith("[")&&n.endsWith("]")?e&&(n=`[-${n.slice(1,-1)}]`):$[n]?(n=$[n],e&&(n=`-${n}`)):n==="0"?n="0":(n=g(n,l),e&&(n=`-${n}`)),i({cat:"visual",val:a+`translate-${r}:${n}`})}if(t==="outline-none")return i({cat:"visual",val:a+"outline:none"});let T=t.match(/^order-(\d+|first|last|none)$/);if(T)return i({cat:"layout",val:a+"order:"+T[1]});let E=t.match(/^grid-cols-(\d+|none)$/);if(E)return i({cat:"layout",val:a+"grid-cols:"+E[1]});let H=t.match(/^col-span-(\d+|full)$/);if(H)return i({cat:"layout",val:a+"col-span:"+H[1]});let L=t.match(/^grid-rows-(\d+|none)$/);if(L)return i({cat:"layout",val:a+"grid-rows:"+L[1]});let U=t.match(/^row-span-(\d+|full)$/);if(U)return i({cat:"layout",val:a+"row-span:"+U[1]});let D=t.match(/^opacity-(\d+)$/);if(D)return i({cat:"visual",val:a+"opacity:"+D[1]});let F=t.match(/^bg-gradient-to-(t|tr|r|br|b|bl|l|tl)$/);if(F)return i({cat:"visual",val:a+"bg-image:gradient-to-"+F[1]});let N=t.match(/^from-(.+)$/);if(N)return i({cat:"visual",val:a+"from:"+N[1]});let X=t.match(/^via-(.+)$/);if(X)return i({cat:"visual",val:a+"via:"+X[1]});let Y=t.match(/^to-(.+)$/);if(Y)return i({cat:"visual",val:a+"to:"+Y[1]});let B=t.match(/^transition(?:-(all|colors|opacity|shadow|transform|none))?$/);if(B){let e=B[1]||"all";return i({cat:"visual",val:a+"transition:"+e})}let G=t.match(/^duration-(\d+)$/);if(G){let e=parseInt(G[1]),r;return e<=75?r="instant":e<=100?r="quick":e<=150?r="fast":e<=200?r="normal":e<=300?r="slow":e<=500?r="slower":r="lazy",i({cat:"visual",val:a+"duration:"+r})}let I=t.match(/^ease-(linear|in|out|in-out)$/);if(I)return i({cat:"visual",val:a+"ease:"+I[1]});let K=t.match(/^ring(?:-(\d+))?$/);if(K){let e=K[1]||"3";if(e==="0")return i({cat:"visual",val:a+"ring:none"});let n={1:"thin",2:"regular",3:"small",4:"medium",8:"big"}[e]||`[${e}px]`;return i({cat:"visual",val:a+"ring:"+n})}let O=t.match(/^ring-offset-(\d+)$/);if(O)return i({cat:"visual",val:a+"ring-offset:"+O[1]});let P=t.match(/^ring-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?)$/);if(P)return i({cat:"visual",val:a+"ring-color:"+P[1]});let R=t.match(/^divide-x-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?)$/);if(R)return i({cat:"visual",val:a+"divide-x:"+R[1]});let J=t.match(/^divide-y-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?)$/);if(J)return i({cat:"visual",val:a+"divide-y:"+J[1]});let Q=t.match(/^divide-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?)$/);if(Q)return i({cat:"visual",val:a+"divide:"+Q[1]});let Z=t.match(/^divide-(\d+)$/);if(Z)return i({cat:"visual",val:a+"divide-w:"+k(Z[1],l)});if(t==="divide-x-reverse")return i({cat:"visual",val:a+"divide-x:reverse"});if(t==="divide-y-reverse")return i({cat:"visual",val:a+"divide-y:reverse"});let _=t.match(/^divide-x-(\d+)$/);if(_)return i({cat:"visual",val:a+"divide-x-w:"+k(_[1],l)});if(t==="divide-x")return i({cat:"visual",val:a+"divide-x-w:thin"});if(t==="divide-y")return i({cat:"visual",val:a+"divide-y-w:thin"});let ee=t.match(/^divide-y-(\d+)$/);if(ee)return i({cat:"visual",val:a+"divide-y-w:"+k(ee[1],l)});let te=t.match(/^divide-(solid|dashed|dotted|double|none)$/);return te?i({cat:"visual",val:a+"divide-style:"+te[1]}):null}function le(s,l){let m=s.trim().split(/\s+/).filter(u=>u),a=[],t=[],f=[],i=[],v=[],h=[],d=(u,o)=>{u.includes(o)||u.push(o)};for(let u of m){let o=ne(u,l);if(o){let p=Array.isArray(o)?o:[o];for(let c of p)c.cat==="layout"?d(a,c.val):c.cat==="space"?d(t,c.val):c.cat==="visual"?d(f,c.val):c.cat==="interact"?d(i,c.val):c.cat==="listens"&&d(v,c.val)}else h.push(u)}return{layout:a,space:t,visual:f,interact:i,listens:v,unknown:h}}function oe(s,l){return s.replace(/class=(['"])([^"']+)\1/g,(m,a,t)=>{let{layout:f,space:i,visual:v,interact:h,listens:d,unknown:u}=le(t,l),o=[];return f.length&&o.push(`layout="${f.join(" ")}"`),i.length&&o.push(`space="${i.join(" ")}"`),v.length&&o.push(`visual="${v.join(" ")}"`),h.length&&o.push(`interact="${h.join(" ")}"`),d.length&&o.push(`listens="${d.join(" ")}"`),u.length&&o.push(`class="${u.join(" ")}"`),o.join(" ")||'class=""'})}typeof window<"u"&&(window.SenangStartTW={convertClass:ne,convertClasses:le,convertHTML:oe,scales:{spacing:S,radius:ae,shadow:ie,fontSize:re},mappings:{layout:z,visual:C}});})();
|
|
2
|
+
(()=>{var C={0:"none",px:"thin",.5:"regular",1:"tiny",1.5:"tiny-2x",2:"small",2.5:"small-2x",3:"small-3x",3.5:"small-4x",4:"medium",5:"medium-2x",6:"medium-3x",7:"medium-4x",8:"large",9:"large-2x",10:"large-3x",11:"large-4x",12:"big",14:"big-2x",16:"big-3x",20:"big-4x",24:"giant",28:"giant-2x",32:"giant-3x",36:"giant-4x",40:"vast",44:"vast-2x",48:"vast-3x",52:"vast-4x",56:"vast-5x",60:"vast-6x",64:"vast-7x",72:"vast-8x",80:"vast-9x",96:"vast-10x",full:"[100%]",screen:"[100vw]",auto:"auto"},pe={none:"none",sm:"small","":"small",md:"small",lg:"medium",xl:"medium","2xl":"big","3xl":"big",full:"round"},ge={none:"none",sm:"small","":"small",md:"medium",lg:"big",xl:"giant","2xl":"giant",inner:"none"},xe={xs:"mini",sm:"small",base:"base",lg:"large",xl:"big","2xl":"huge","3xl":"grand","4xl":"giant","5xl":"mount","6xl":"mega","7xl":"giga","8xl":"tera","9xl":"hero"},ye={none:"none",tight:"tight",snug:"snug",normal:"normal",relaxed:"relaxed",loose:"loose"},ke={tighter:"tighter",tight:"tight",normal:"normal",wide:"wide",wider:"wider",widest:"widest"},$e={0:"base",10:"low",20:"low",30:"low",40:"low",50:"mid",60:"high",70:"high",80:"high",90:"high",100:"high",auto:"auto"},b={"1/2":"half","1/3":"third","2/3":"third-2x","1/4":"quarter","2/4":"half","3/4":"quarter-3x",full:"full"},V={container:"container",flex:"flex","inline-flex":"inline-flex",grid:"grid","inline-grid":"inline-grid",block:"block","inline-block":"inline",hidden:"hidden","flex-row":"row","flex-col":"col","flex-row-reverse":"row-reverse","flex-col-reverse":"col-reverse","flex-wrap":"wrap","flex-nowrap":"nowrap","flex-wrap-reverse":"wrap-reverse","flex-grow":"grow","flex-grow-0":"grow-0",grow:"grow","grow-0":"grow-0","flex-shrink":"shrink","flex-shrink-0":"shrink-0",shrink:"shrink","shrink-0":"shrink-0","flex-1":"flex:1","flex-auto":"flex:auto","flex-initial":"flex:initial","flex-none":"flex:none","justify-start":"justify:start","justify-end":"justify:end","justify-center":"justify:center","justify-between":"justify:between","justify-around":"justify:around","justify-evenly":"justify:evenly","items-start":"items:start","items-end":"items:end","items-center":"items:center","items-baseline":"items:baseline","items-stretch":"items:stretch","self-auto":"self:auto","self-start":"self:start","self-end":"self:end","self-center":"self:center","self-stretch":"self:stretch",relative:"relative",absolute:"absolute",fixed:"fixed",sticky:"sticky",static:"static","overflow-auto":"overflow:auto","overflow-hidden":"overflow:hidden","overflow-visible":"overflow:visible","overflow-scroll":"overflow:scroll","object-contain":"object:contain","object-cover":"object:cover","object-fill":"object:fill","object-none":"object:none","object-scale-down":"object:scale-down"},A={italic:"italic","not-italic":"not-italic",antialiased:"antialiased","subpixel-antialiased":"subpixel-antialiased",uppercase:"uppercase",lowercase:"lowercase",capitalize:"capitalize","normal-case":"normal-case",underline:"underline",overline:"overline","line-through":"line-through","no-underline":"no-underline","decoration-solid":"decoration-solid","decoration-double":"decoration-double","decoration-dotted":"decoration-dotted","decoration-dashed":"decoration-dashed","decoration-wavy":"decoration-wavy",truncate:"truncate","text-ellipsis":"text-ellipsis","text-clip":"text-clip","text-wrap":"text-wrap","text-nowrap":"text-nowrap","text-balance":"text-balance","text-pretty":"text-pretty","whitespace-normal":"whitespace-normal","whitespace-nowrap":"whitespace-nowrap","whitespace-pre":"whitespace-pre","whitespace-pre-line":"whitespace-pre-line","whitespace-pre-wrap":"whitespace-pre-wrap","whitespace-break-spaces":"whitespace-break-spaces","break-normal":"break-normal","break-words":"break-words","break-all":"break-all","break-keep":"break-keep","hyphens-none":"hyphens-none","hyphens-manual":"hyphens-manual","hyphens-auto":"hyphens-auto","list-none":"list-none","list-disc":"list-disc","list-decimal":"list-decimal","list-inside":"list-inside","list-outside":"list-outside","cursor-auto":"cursor:auto","cursor-default":"cursor:default","cursor-pointer":"cursor:pointer","cursor-wait":"cursor:wait","cursor-text":"cursor:text","cursor-move":"cursor:move","cursor-not-allowed":"cursor:not-allowed","cursor-grab":"cursor:grab","cursor-grabbing":"cursor:grabbing","select-none":"select:none","select-text":"select:text","select-all":"select:all","select-auto":"select:auto","pointer-events-none":"pointer-events:none","pointer-events-auto":"pointer-events:auto","appearance-none":"appearance:none","appearance-auto":"appearance:auto",perspective:"perspective","perspective-origin":"perspective-origin","transform-style":"transform-style","backface-visibility":"backface",mask:"mask","mask-image":"mask-image","mask-mode":"mask-mode","mask-origin":"mask-origin","mask-position":"mask-position","mask-repeat":"mask-repeat","mask-size":"mask-size","mask-type":"mask-type"};function p(s,l){return s&&s.startsWith("[")&&s.endsWith("]")?s:l?["full","screen","auto"].includes(s)?C[s]||`[${s}]`:`tw-${s}`:C[s]||`[${s}]`}var Me={0:"none",1:"thin",2:"regular",3:"thick",4:"tiny",8:"small"};function j(s,l){return l?`tw-${s}`:Me[s]||`[${s}px]`}function be(s,l){let m=s.match(/^(sm:|md:|lg:|xl:|2xl:|hover:|focus:|focus-visible:|active:|disabled:|dark:|group-hover:|peer-hover:|group-focus:|peer-focus:|group-active:|peer-active:|peer-check:|group-open:|peer-open:)(.+)$/),a="",t=s,h=null;if(m){let e=m[1].slice(0,-1);if(["sm","md","lg","xl","2xl"].includes(e))a=`tw-${e}:`;else if(e.startsWith("group-")||e.startsWith("peer-")){let r={hover:"hover",focus:"focus",active:"active",open:"expanded",check:"checked"},n=e.split("-")[1];a=`${r[n]||n}:`,e.startsWith("peer-")&&(h={cat:"listens",val:"peer"})}else a=m[1];t=m[2]}if(t==="group")return{cat:"layout",val:"hoverable focusable pressable expandable"};if(t==="peer")return[{cat:"layout",val:"hoverable focusable pressable expandable"},{cat:"interact",val:"peer"}];let i=e=>e?h?Array.isArray(e)?[...e,h]:[e,h]:e:null;if(V[t])return i({cat:"layout",val:a+V[t]});if(A[t])return i({cat:"visual",val:a+A[t]});let f=t.match(/^text-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?)$/);if(f)return i({cat:"visual",val:a+"text:"+f[1]});if(["text-left","text-center","text-right","text-justify"].includes(t))return i({cat:"visual",val:a+"text:"+t.replace("text-","")});let v=t.match(/^text-(xs|sm|base|lg|xl|2xl|3xl|4xl|5xl|6xl|7xl|8xl|9xl)$/);if(v){let e=l?`tw-${v[1]}`:xe[v[1]]||v[1];return i({cat:"visual",val:a+"text-size:"+e})}let d=t.match(/^leading-(\[.+\]|none|tight|snug|normal|relaxed|loose)$/);if(d){let e=d[1];return i({cat:"visual",val:a+"leading:"+(ye[e]||e)})}let u=t.match(/^tracking-(\[.+\]|tighter|tight|normal|wide|wider|widest)$/);if(u){let e=u[1];return i({cat:"visual",val:a+"tracking:"+(ke[e]||e)})}let o=t.match(/^bg-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?|transparent|current|inherit)$/);if(o){let e=o[1];return i(e==="transparent"?{cat:"visual",val:a+"bg:transparent"}:e==="current"?{cat:"visual",val:a+"bg:currentColor"}:e==="inherit"?{cat:"visual",val:a+"bg:inherit"}:{cat:"visual",val:a+"bg:"+e})}let w=t.match(/^border-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black|transparent|current|inherit)(?:-\d+)?)$/);if(w){let e=w[1];return e==="current"&&(e="currentColor"),i({cat:"visual",val:a+"border:"+e})}let c=t.match(/^border-([trbl])-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black|transparent|current|inherit)(?:-\d+)?)$/);if(c){let e=c[1],r=c[2];return r==="current"&&(r="currentColor"),i({cat:"visual",val:a+`border-${e}:${r}`})}let y=t.match(/^p([trblxy])?-(.+)$/);if(y){let e=y[1]?"-"+y[1]:"";return i({cat:"space",val:a+"p"+e+":"+p(y[2],l)})}let k=t.match(/^-?m([trblxy])?-(\[.+\]|\d+\.?\d*|px|auto|full|screen)$/);if(k){let e=t.startsWith("-"),r=k[1]?"-"+k[1]:"",n=p(k[2],l);return e&&n&&(n.startsWith("[")&&n.endsWith("]")?n=`[-${n.slice(1,-1)}]`:n=`-${n}`),i({cat:"space",val:a+"m"+r+":"+n})}let $=t.match(/^gap-([xy])?-?(.+)$/);if($){let e=$[1]?"-"+$[1]:"";return i({cat:"space",val:a+"g"+e+":"+p($[2],l)})}let S=t.match(/^(min-w|max-w|w)-(.+)$/);if(S){let e=S[1],r=S[2],x={max:"[max-content]",min:"[min-content]",fit:"[fit-content]",prose:"[65ch]"}[r]||p(r,l);return i({cat:"space",val:a+e+":"+x})}let z=t.match(/^(min-h|max-h|h)-(.+)$/);if(z){let e=z[1],r=z[2],x={screen:"[100vh]",svh:"[100svh]",lvh:"[100lvh]",dvh:"[100dvh]",max:"[max-content]",min:"[min-content]",fit:"[fit-content]"}[r]||p(r,l);return i({cat:"space",val:a+e+":"+x})}let q=t.match(/^rounded(?:-(.+))?$/);if(q){let e=q[1]||"",r=l?e===""?"tw-DEFAULT":`tw-${e}`:pe[e]||"medium";return i({cat:"visual",val:a+"rounded:"+r})}let H=t.match(/^shadow(?:-(.+))?$/);if(H){let e=H[1]||"",r=l?e===""?"tw-DEFAULT":`tw-${e}`:ge[e]||"medium";return i({cat:"visual",val:a+"shadow:"+r})}let I=t.match(/^font-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black)$/);if(I)return i({cat:"visual",val:a+"font:tw-"+I[1]});let g=t.match(/^border(?:-([trblxy]))?(?:-(\d+))?$/);if(g&&(g[2]||!g[1]&&t==="border")){let e=g[1]?"-"+g[1]+"-w":"-w",r=g[2]||"1";return i({cat:"visual",val:a+"border"+e+":"+j(r,l)})}let W=t.match(/^(top|right|bottom|left|inset|inset-x|inset-y)-(\d+|px|auto|full|1\/2|1\/3|2\/3|1\/4|2\/4|3\/4|\[.+\])$/);if(W){let e=W[1],r=W[2];return r&&r.startsWith("[")&&r.endsWith("]")||(b[r]?r=b[r]:r==="0"?r="0":r=p(r,l)),i({cat:"layout",val:a+e+":"+r})}let M=t.match(/^(-?)translate-([xy])-(\d+|px|full|1\/2|1\/3|2\/3|1\/4|2\/4|3\/4|\[.+\])$/);if(M){let e=M[1]==="-",r=M[2],n=M[3];return n&&n.startsWith("[")&&n.endsWith("]")?e&&(n=`[-${n.slice(1,-1)}]`):b[n]?(n=b[n],e&&(n=`-${n}`)):n==="0"?n="0":(n=p(n,l),e&&(n=`-${n}`)),i({cat:"visual",val:a+`translate-${r}:${n}`})}if(t==="outline-none")return i({cat:"visual",val:a+"outline:none"});let T=t.match(/^order-(\d+|first|last|none)$/);if(T)return i({cat:"layout",val:a+"order:"+T[1]});let E=t.match(/^-?z-(\d+|auto)$/);if(E){let e=t.startsWith("-"),r=E[1],n=$e[r]||r;return e&&(n=`-${n}`),i({cat:"layout",val:a+"z:"+n})}let L=t.match(/^basis-(\[.+\]|\d+\.?\d*|auto|full|1\/2|1\/3|2\/3|1\/4|2\/4|3\/4)$/);if(L){let e=L[1];return e.startsWith("[")&&e.endsWith("]")||(b[e]?e=b[e]:e==="0"&&(e="0")),i({cat:"layout",val:a+"basis:"+e})}let N=t.match(/^grid-cols-(\d+|none)$/);if(N)return i({cat:"layout",val:a+"grid-cols:"+N[1]});let U=t.match(/^col-span-(\d+|full)$/);if(U)return i({cat:"layout",val:a+"col-span:"+U[1]});let D=t.match(/^grid-rows-(\d+|none)$/);if(D)return i({cat:"layout",val:a+"grid-rows:"+D[1]});let F=t.match(/^row-span-(\d+|full)$/);if(F)return i({cat:"layout",val:a+"row-span:"+F[1]});let R=t.match(/^opacity-(\d+)$/);if(R)return i({cat:"visual",val:a+"opacity:"+R[1]});let X=t.match(/^bg-gradient-to-(t|tr|r|br|b|bl|l|tl)$/);if(X)return i({cat:"visual",val:a+"bg-image:gradient-to-"+X[1]});let Y=t.match(/^from-(.+)$/);if(Y)return i({cat:"visual",val:a+"from:"+Y[1]});let B=t.match(/^via-(.+)$/);if(B)return i({cat:"visual",val:a+"via:"+B[1]});let G=t.match(/^to-(.+)$/);if(G)return i({cat:"visual",val:a+"to:"+G[1]});let K=t.match(/^transition(?:-(all|colors|opacity|shadow|transform|none))?$/);if(K){let e=K[1]||"all";return i({cat:"visual",val:a+"transition:"+e})}let O=t.match(/^duration-(\d+)$/);if(O){let e=parseInt(O[1]),r;return e<=75?r="instant":e<=100?r="quick":e<=150?r="fast":e<=200?r="normal":e<=300?r="slow":e<=500?r="slower":r="lazy",i({cat:"visual",val:a+"duration:"+r})}let P=t.match(/^ease-(linear|in|out|in-out)$/);if(P)return i({cat:"visual",val:a+"ease:"+P[1]});let J=t.match(/^ring(?:-(\d+))?$/);if(J){let e=J[1]||"3";if(e==="0")return i({cat:"visual",val:a+"ring:none"});let n={1:"thin",2:"regular",3:"small",4:"medium",8:"big"}[e]||`[${e}px]`;return i({cat:"visual",val:a+"ring:"+n})}let Q=t.match(/^ring-offset-(\d+)$/);if(Q)return i({cat:"visual",val:a+"ring-offset:"+Q[1]});let Z=t.match(/^ring-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?)$/);if(Z)return i({cat:"visual",val:a+"ring-color:"+Z[1]});let _=t.match(/^divide-x-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?)$/);if(_)return i({cat:"visual",val:a+"divide-x:"+_[1]});let ee=t.match(/^divide-y-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?)$/);if(ee)return i({cat:"visual",val:a+"divide-y:"+ee[1]});let te=t.match(/^divide-((?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose|white|black)(?:-\d+)?)$/);if(te)return i({cat:"visual",val:a+"divide:"+te[1]});let ae=t.match(/^divide-(\d+)$/);if(ae)return i({cat:"visual",val:a+"divide-w:"+j(ae[1],l)});if(t==="divide-x-reverse")return i({cat:"visual",val:a+"divide-x:reverse"});if(t==="divide-y-reverse")return i({cat:"visual",val:a+"divide-y:reverse"});let ie=t.match(/^divide-x-(\d+)$/);if(ie)return i({cat:"visual",val:a+"divide-x-w:"+j(ie[1],l)});if(t==="divide-x")return i({cat:"visual",val:a+"divide-x-w:thin"});if(t==="divide-y")return i({cat:"visual",val:a+"divide-y-w:thin"});let re=t.match(/^divide-y-(\d+)$/);if(re)return i({cat:"visual",val:a+"divide-y-w:"+j(re[1],l)});let ne=t.match(/^divide-(solid|dashed|dotted|double|none)$/);if(ne)return i({cat:"visual",val:a+"divide-style:"+ne[1]});let le=t.match(/^border-(solid|dashed|dotted|double|none)$/);if(le)return i({cat:"visual",val:a+"border-style:"+le[1]});let se=t.match(/^blur-(0|sm|md|lg|xl|2xl|3xl)$/);if(se){let e={0:"none",sm:"tiny",md:"small",lg:"medium",xl:"big","2xl":"giant","3xl":"vast"};return i({cat:"visual",val:a+"blur:"+e[se[1]]})}let oe=t.match(/^brightness-(0|50|75|90|95|100|105|110|125|150|200)$/);if(oe){let e={0:"dim",50:"dim",75:"dark",90:"dark",95:"dark",100:"normal",105:"bright",110:"bright",125:"vivid",150:"vivid",200:"vivid"};return i({cat:"visual",val:a+"brightness:"+e[oe[1]]})}let ce=t.match(/^contrast-(0|50|75|100|125|150|200)$/);if(ce){let e={0:"low",50:"low",75:"reduced",100:"normal",125:"high",150:"high",200:"max"};return i({cat:"visual",val:a+"contrast:"+e[ce[1]]})}let ue=t.match(/^grayscale(0)?$/);if(ue){let e=ue[1]==="0"?"none":"full";return i({cat:"visual",val:a+"grayscale:"+e})}let de=t.match(/^hue-rotate-(0|15|30|60|90|180)$/);if(de)return i({cat:"visual",val:a+"hue-rotate:"+de[1]});let he=t.match(/^invert(0)?$/);if(he){let e=he[1]==="0"?"none":"full";return i({cat:"visual",val:a+"invert:"+e})}let ve=t.match(/^saturate-(0|50|100|150|200)$/);if(ve){let e={0:"none",50:"low",100:"normal",150:"high",200:"vivid"};return i({cat:"visual",val:a+"saturate:"+e[ve[1]]})}let fe=t.match(/^sepia(0)?$/);if(fe){let e=fe[1]==="0"?"none":"full";return i({cat:"visual",val:a+"sepia:"+e})}let me=t.match(/^animate-(none|spin|ping|pulse|bounce)$/);return me?i({cat:"visual",val:a+"animate:"+me[1]}):null}function we(s,l){let m=s.trim().split(/\s+/).filter(u=>u),a=[],t=[],h=[],i=[],f=[],v=[],d=(u,o)=>{u.includes(o)||u.push(o)};for(let u of m){let o=be(u,l);if(o){let w=Array.isArray(o)?o:[o];for(let c of w)c.cat==="layout"?d(a,c.val):c.cat==="space"?d(t,c.val):c.cat==="visual"?d(h,c.val):c.cat==="interact"?d(i,c.val):c.cat==="listens"&&d(f,c.val)}else v.push(u)}return{layout:a,space:t,visual:h,interact:i,listens:f,unknown:v}}function je(s,l){return s.replace(/class=(['"])([^"']+)\1/g,(m,a,t)=>{let{layout:h,space:i,visual:f,interact:v,listens:d,unknown:u}=we(t,l),o=[];return h.length&&o.push(`layout="${h.join(" ")}"`),i.length&&o.push(`space="${i.join(" ")}"`),f.length&&o.push(`visual="${f.join(" ")}"`),v.length&&o.push(`interact="${v.join(" ")}"`),d.length&&o.push(`listens="${d.join(" ")}"`),u.length&&o.push(`class="${u.join(" ")}"`),o.join(" ")||'class=""'})}typeof window<"u"&&(window.SenangStartTW={convertClass:be,convertClasses:we,convertHTML:je,scales:{spacing:C,radius:pe,shadow:ge,fontSize:xe},mappings:{layout:V,visual:A}});})();
|