@mrts/soltw 0.3.1 → 0.3.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.
- package/dist/cjs/index.js +405 -39
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +399 -42
- package/dist/esm/index.js.map +1 -1
- package/dist/source/Block.jsx +25 -0
- package/dist/source/index.js +5 -1
- package/dist/source/items/Item.jsx +42 -23
- package/dist/source/items/ItemGroup.jsx +62 -0
- package/dist/source/stylers/SVTStyler.js +60 -0
- package/dist/source/stylers/Stylers.js +18 -0
- package/dist/source/stylers/base.styler.js +62 -0
- package/dist/source/stylers/index.js +5 -0
- package/dist/source/stylers/stylersUtils.js +63 -0
- package/dist/source/stylers/tagRules.js +36 -0
- package/dist/source/stylers/utils.js +17 -0
- package/dist/types/Block.d.ts +10 -0
- package/dist/types/index.d.ts +5 -1
- package/dist/types/items/Item.d.ts +4 -3
- package/dist/types/items/ItemGroup.d.ts +21 -0
- package/dist/types/stylers/SVTStyler.d.ts +28 -0
- package/dist/types/stylers/Stylers.d.ts +8 -0
- package/dist/types/stylers/base.styler.d.ts +2 -0
- package/dist/types/stylers/index.d.ts +5 -0
- package/dist/types/stylers/stylersUtils.d.ts +9 -0
- package/dist/types/stylers/tagRules.d.ts +3 -0
- package/dist/types/stylers/types.d.ts +9 -0
- package/dist/types/stylers/utils.d.ts +5 -0
- package/package.json +2 -2
- package/dist/source/items/index.js +0 -2
- package/dist/source/theme/StyleBoxes.js +0 -14
- package/dist/types/items/index.d.ts +0 -2
- package/dist/types/theme/StyleBox.d.ts +0 -6
- package/dist/types/theme/StyleBoxes.d.ts +0 -2
- /package/dist/source/{theme/StyleBox.js → stylers/types.js} +0 -0
package/dist/cjs/index.js
CHANGED
|
@@ -4,11 +4,6 @@ var web = require('solid-js/web');
|
|
|
4
4
|
var solidJs = require('solid-js');
|
|
5
5
|
var tailwindMerge = require('tailwind-merge');
|
|
6
6
|
|
|
7
|
-
var _tmpl$$1 = /*#__PURE__*/web.template(`<div class=bg-red-600>- - S O L T W - -`);
|
|
8
|
-
const SolTw = props => {
|
|
9
|
-
return _tmpl$$1();
|
|
10
|
-
};
|
|
11
|
-
|
|
12
7
|
function buildIdLabel(arg) {
|
|
13
8
|
if (typeof arg == "string") {
|
|
14
9
|
return {
|
|
@@ -29,22 +24,267 @@ function buildIdLabel(arg) {
|
|
|
29
24
|
}
|
|
30
25
|
}
|
|
31
26
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
function splitCleanString(s, options = {}) {
|
|
28
|
+
const separator = options.separator ?? /\s+/;
|
|
29
|
+
const filter = options.filter ?? (s => s.length > 0);
|
|
30
|
+
const r = s.split(separator).filter(filter);
|
|
31
|
+
return r;
|
|
32
|
+
}
|
|
33
|
+
function deduplicate(items) {
|
|
34
|
+
const r = [];
|
|
35
|
+
const itemSet = new Set();
|
|
36
|
+
for (const item of items) {
|
|
37
|
+
if (!itemSet.has(item)) {
|
|
38
|
+
r.push(item);
|
|
39
|
+
itemSet.add(item);
|
|
40
|
+
}
|
|
38
41
|
}
|
|
39
|
-
|
|
42
|
+
return r;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
class SVTStylerNormalizer {
|
|
46
|
+
constructor(styler) {
|
|
47
|
+
this.styler = styler;
|
|
48
|
+
}
|
|
49
|
+
classes(stags, vtags) {
|
|
50
|
+
const r = this.styler.classes(stags, vtags);
|
|
51
|
+
return r ?? [];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function twMergeNormalize(raw) {
|
|
55
|
+
return splitCleanString(tailwindMerge.twMerge(...raw));
|
|
56
|
+
}
|
|
57
|
+
function mainTagNormalize(rawTags, defaultTag) {
|
|
58
|
+
const rhead = [];
|
|
59
|
+
const rtail = [];
|
|
60
|
+
let rtag = undefined;
|
|
61
|
+
for (const tag of rawTags) {
|
|
62
|
+
if (tag.length == 1 && tag.toUpperCase() == tag) {
|
|
63
|
+
rtag = tag;
|
|
64
|
+
rhead.push(...rtail);
|
|
65
|
+
rtail.length = 0;
|
|
66
|
+
} else {
|
|
67
|
+
if (rtag == undefined) {
|
|
68
|
+
rhead.push(tag);
|
|
69
|
+
} else {
|
|
70
|
+
rtail.push(tag);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
rtag = rtag ?? defaultTag;
|
|
75
|
+
const r = rtag == undefined ? [...rhead, ...rtail] : [...rhead, rtag, ...rtail];
|
|
76
|
+
// console.log("MAIN TAGS NORM:", rawTags, r);
|
|
77
|
+
return r;
|
|
78
|
+
}
|
|
79
|
+
function exlusiveTagNormalize(rawTags, tagSet, defaultTag) {
|
|
80
|
+
const rhead = [];
|
|
81
|
+
const rtail = [];
|
|
82
|
+
let rtag = undefined;
|
|
83
|
+
for (const tag of rawTags) {
|
|
84
|
+
if (tagSet.has(tag)) {
|
|
85
|
+
rtag = tag;
|
|
86
|
+
rhead.push(...rtail);
|
|
87
|
+
rtail.length = 0;
|
|
88
|
+
} else {
|
|
89
|
+
if (rtag == undefined) {
|
|
90
|
+
rhead.push(tag);
|
|
91
|
+
} else {
|
|
92
|
+
rtail.push(tag);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
rtag = rtag ?? defaultTag;
|
|
97
|
+
const r = rtag == undefined ? [...rhead, ...rtail] : [...rhead, rtag, ...rtail];
|
|
98
|
+
//console.log("EXCLU TAGS NORM:", rawTags, r);
|
|
99
|
+
return r;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function normalizeTagListArgument(arg) {
|
|
103
|
+
if (typeof arg == "string") {
|
|
104
|
+
return splitCleanString(arg);
|
|
105
|
+
} else if (Array.isArray(arg)) {
|
|
106
|
+
const r = [];
|
|
107
|
+
for (const a of arg) {
|
|
108
|
+
r.push(...normalizeTagListArgument(a));
|
|
109
|
+
}
|
|
110
|
+
return r;
|
|
111
|
+
}
|
|
112
|
+
return [];
|
|
113
|
+
}
|
|
114
|
+
function tagRuleMatches(rule, candidateTags) {
|
|
115
|
+
if (rule.mode == "any") {
|
|
116
|
+
return true;
|
|
117
|
+
} else if (rule.mode == "or") {
|
|
118
|
+
for (const ctag of candidateTags) {
|
|
119
|
+
if (rule.tags.indexOf(ctag) >= 0) {
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return false;
|
|
124
|
+
} else if (rule.mode == "and") {
|
|
125
|
+
for (const rtag of rule.tags) {
|
|
126
|
+
if (candidateTags.indexOf(rtag) < 0) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
class SVTStyler {
|
|
136
|
+
_rules = [];
|
|
137
|
+
constructor(rules, options = {}) {
|
|
138
|
+
for (const r of rules) {
|
|
139
|
+
this._rules.push(SVTStyler.normalizeRule(r));
|
|
140
|
+
}
|
|
141
|
+
this.options = {
|
|
142
|
+
...options
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
with(rules, options = {}) {
|
|
146
|
+
const addedRules = [];
|
|
147
|
+
for (const r of rules) {
|
|
148
|
+
addedRules.push(SVTStyler.normalizeRule(r));
|
|
149
|
+
}
|
|
150
|
+
const styler = new SVTStyler([], {
|
|
151
|
+
...this.options
|
|
152
|
+
});
|
|
153
|
+
styler._rules.push(...this._rules, ...addedRules);
|
|
154
|
+
return styler;
|
|
155
|
+
}
|
|
156
|
+
classes(stags, vtags) {
|
|
157
|
+
const r = [];
|
|
158
|
+
let stagsNormalized = normalizeTagListArgument(stags);
|
|
159
|
+
let vtagsNormalized = normalizeTagListArgument(vtags);
|
|
160
|
+
if (this.options.stagsNormaliser) {
|
|
161
|
+
stagsNormalized = this.options.stagsNormaliser(stagsNormalized);
|
|
162
|
+
}
|
|
163
|
+
if (this.options.vtagsNormaliser) {
|
|
164
|
+
vtagsNormalized = this.options.vtagsNormaliser(vtagsNormalized);
|
|
165
|
+
}
|
|
166
|
+
for (const rule of this._rules) {
|
|
167
|
+
if (this.ruleMatches(rule, stagsNormalized, vtagsNormalized)) {
|
|
168
|
+
r.push(...rule.classes);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return this.options.normalizer ? this.options.normalizer(r) : r;
|
|
172
|
+
}
|
|
173
|
+
static normalizeRule(rule) {
|
|
174
|
+
let stagMode = rule.stagMode ?? "or";
|
|
175
|
+
let vtagMode = rule.vtagMode ?? "or";
|
|
176
|
+
let stags = deduplicate(normalizeTagListArgument(rule.stags));
|
|
177
|
+
let vtags = deduplicate(normalizeTagListArgument(rule.vtags));
|
|
178
|
+
let classes = deduplicate(normalizeTagListArgument(rule.classes));
|
|
179
|
+
if (rule.stags == undefined && rule.stagMode == undefined) {
|
|
180
|
+
stagMode = "any";
|
|
181
|
+
}
|
|
182
|
+
if (rule.vtags == undefined && rule.vtagMode == undefined) {
|
|
183
|
+
vtagMode = "any";
|
|
184
|
+
}
|
|
185
|
+
return {
|
|
186
|
+
stagRule: {
|
|
187
|
+
mode: stagMode,
|
|
188
|
+
tags: stags
|
|
189
|
+
},
|
|
190
|
+
vtagRule: {
|
|
191
|
+
mode: vtagMode,
|
|
192
|
+
tags: vtags
|
|
193
|
+
},
|
|
194
|
+
classes
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
ruleMatches(rule, stags, vtags) {
|
|
198
|
+
return tagRuleMatches(rule.stagRule, stags) && tagRuleMatches(rule.vtagRule, vtags);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
const baseStyler = new SVTStyler([{
|
|
203
|
+
vtags: "A",
|
|
204
|
+
classes: "bg-slate-100 text-slate-800"
|
|
205
|
+
}, {
|
|
206
|
+
vtags: "B",
|
|
207
|
+
classes: "bg-slate-800 text-slate-100"
|
|
208
|
+
}, {
|
|
209
|
+
vtags: "C",
|
|
210
|
+
classes: "bg-stone-300 text-orange-950"
|
|
211
|
+
}, {
|
|
212
|
+
vtags: "D",
|
|
213
|
+
classes: "bg-orange-900 text-stone-100"
|
|
214
|
+
}, {
|
|
215
|
+
vtags: "LG",
|
|
216
|
+
classes: "text-xl p-2"
|
|
217
|
+
}, {
|
|
218
|
+
vtags: "BASE",
|
|
219
|
+
classes: "text-base p-1"
|
|
220
|
+
}, {
|
|
221
|
+
vtags: "SM",
|
|
222
|
+
classes: "text-sm p-0.5"
|
|
223
|
+
}, {
|
|
224
|
+
vtags: "LG",
|
|
225
|
+
stags: "item",
|
|
226
|
+
classes: "text-xl px-2 py-1"
|
|
227
|
+
}, {
|
|
228
|
+
vtags: "BASE",
|
|
229
|
+
stags: "item",
|
|
230
|
+
classes: "text-base px-1 py-0.5"
|
|
231
|
+
}, {
|
|
232
|
+
vtags: "SM",
|
|
233
|
+
stags: "item",
|
|
234
|
+
classes: "text-sm p-0.5"
|
|
235
|
+
}, {
|
|
236
|
+
stags: "item:selected",
|
|
237
|
+
classes: "underline font-bold"
|
|
238
|
+
}, {
|
|
239
|
+
stags: "item:disabled",
|
|
240
|
+
classes: "blur-[1px]"
|
|
241
|
+
}, {
|
|
242
|
+
stags: "item/disabler",
|
|
243
|
+
classes: "bg-slate-300/85 cursor-not-allowed"
|
|
244
|
+
}], {
|
|
245
|
+
normalizer: twMergeNormalize,
|
|
246
|
+
vtagsNormaliser: tags => exlusiveTagNormalize(mainTagNormalize(tags, "A"), new Set(["SM", "BASE", "LG"]), "BASE")
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
class Stylers {
|
|
250
|
+
static _stylersMap = new Map();
|
|
251
|
+
static get base() {
|
|
252
|
+
return this._base;
|
|
253
|
+
}
|
|
254
|
+
static setBase(base) {
|
|
255
|
+
return this._base = base;
|
|
256
|
+
}
|
|
257
|
+
static {
|
|
258
|
+
this._stylersMap.set("default", baseStyler);
|
|
259
|
+
this.setBase(baseStyler);
|
|
260
|
+
}
|
|
261
|
+
static get(name) {
|
|
262
|
+
return this._stylersMap.get(name);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
40
265
|
|
|
41
|
-
var _tmpl
|
|
266
|
+
var _tmpl$$1 = /*#__PURE__*/web.template(`<div>`);
|
|
42
267
|
const Item = props => {
|
|
43
268
|
const itemData = () => buildIdLabel(props.idLabel);
|
|
44
|
-
const
|
|
45
|
-
|
|
269
|
+
const currentSTags = () => {
|
|
270
|
+
const r = [];
|
|
271
|
+
r.push("item");
|
|
272
|
+
if (props.selected) {
|
|
273
|
+
r.push("item:selected");
|
|
274
|
+
}
|
|
275
|
+
if (props.disabled) {
|
|
276
|
+
r.push("item:disabled");
|
|
277
|
+
}
|
|
278
|
+
return r;
|
|
46
279
|
};
|
|
47
|
-
const
|
|
280
|
+
const currentStyler = () => {
|
|
281
|
+
if (props.styler) {
|
|
282
|
+
return props.styler;
|
|
283
|
+
} else {
|
|
284
|
+
return Stylers.base;
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
const classProp = solidJs.createMemo(() => {
|
|
48
288
|
if (props.class == undefined) {
|
|
49
289
|
return {};
|
|
50
290
|
} else if (typeof props.class == "string") {
|
|
@@ -56,48 +296,47 @@ const Item = props => {
|
|
|
56
296
|
}
|
|
57
297
|
});
|
|
58
298
|
const itemClasses = solidJs.createMemo(() => {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
// rawClasses.push(...(stylerClasses ?? []));
|
|
66
|
-
|
|
67
|
-
if (props.action) {
|
|
299
|
+
const stags = currentSTags();
|
|
300
|
+
const styler = currentStyler();
|
|
301
|
+
const rawClasses = [];
|
|
302
|
+
const stylerClasses = styler ? styler.classes(stags, props.vtags) : undefined;
|
|
303
|
+
rawClasses.push(...(stylerClasses ?? []));
|
|
304
|
+
if (props.callback) {
|
|
68
305
|
rawClasses.push("select-none cursor-pointer");
|
|
69
306
|
}
|
|
70
|
-
const customClasses =
|
|
307
|
+
const customClasses = classProp();
|
|
71
308
|
if (customClasses.item) {
|
|
72
309
|
rawClasses.push(customClasses.item);
|
|
73
310
|
}
|
|
74
|
-
if (props.selected) {
|
|
75
|
-
rawClasses.push(
|
|
311
|
+
if (props.selected && customClasses.selected) {
|
|
312
|
+
rawClasses.push(customClasses.selected);
|
|
76
313
|
}
|
|
77
|
-
if (props.disabled) {
|
|
78
|
-
rawClasses.push(
|
|
314
|
+
if (props.disabled && customClasses.disabled) {
|
|
315
|
+
rawClasses.push(customClasses.disabled);
|
|
79
316
|
}
|
|
80
317
|
rawClasses.push("relative");
|
|
81
|
-
const r = tailwindMerge.twMerge(
|
|
318
|
+
const r = tailwindMerge.twMerge(rawClasses);
|
|
82
319
|
return r;
|
|
83
320
|
});
|
|
84
321
|
const disablerClasses = solidJs.createMemo(() => {
|
|
85
322
|
const rawClasses = [];
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
323
|
+
if (currentStyler()) {
|
|
324
|
+
rawClasses.push(...currentStyler().classes("item/disabler", props.vtags));
|
|
325
|
+
}
|
|
326
|
+
if (classProp().disabler) {
|
|
327
|
+
rawClasses.push(classProp().disabler);
|
|
89
328
|
}
|
|
90
329
|
rawClasses.push("absolute inset-0");
|
|
91
|
-
const r = tailwindMerge.twMerge(
|
|
330
|
+
const r = tailwindMerge.twMerge(rawClasses);
|
|
92
331
|
return r;
|
|
93
332
|
});
|
|
94
333
|
function handleClick() {
|
|
95
|
-
if (props.
|
|
96
|
-
props.
|
|
334
|
+
if (props.callback != undefined) {
|
|
335
|
+
props.callback(itemData());
|
|
97
336
|
}
|
|
98
337
|
}
|
|
99
338
|
return (() => {
|
|
100
|
-
var _el$ = _tmpl
|
|
339
|
+
var _el$ = _tmpl$$1();
|
|
101
340
|
_el$.$$click = handleClick;
|
|
102
341
|
web.insert(_el$, () => itemData().label, null);
|
|
103
342
|
web.insert(_el$, web.createComponent(solidJs.Show, {
|
|
@@ -105,7 +344,7 @@ const Item = props => {
|
|
|
105
344
|
return props.disabled;
|
|
106
345
|
},
|
|
107
346
|
get children() {
|
|
108
|
-
var _el$2 = _tmpl
|
|
347
|
+
var _el$2 = _tmpl$$1();
|
|
109
348
|
_el$2.$$click = e => {
|
|
110
349
|
if (!props.clickableWhendisabled) {
|
|
111
350
|
e.stopPropagation();
|
|
@@ -121,7 +360,134 @@ const Item = props => {
|
|
|
121
360
|
};
|
|
122
361
|
web.delegateEvents(["click"]);
|
|
123
362
|
|
|
363
|
+
const Block = props => {
|
|
364
|
+
const elementTag = () => props.element ?? "div";
|
|
365
|
+
const currentStyler = () => {
|
|
366
|
+
if (props.styler) {
|
|
367
|
+
return props.styler;
|
|
368
|
+
} else {
|
|
369
|
+
return Stylers.base;
|
|
370
|
+
}
|
|
371
|
+
};
|
|
372
|
+
function blockClasses() {
|
|
373
|
+
const stags = "block";
|
|
374
|
+
const classes = currentStyler().classes(stags, props.vtags) ?? [];
|
|
375
|
+
if (props.class) {
|
|
376
|
+
classes.push(props.class);
|
|
377
|
+
}
|
|
378
|
+
return tailwindMerge.twMerge(classes);
|
|
379
|
+
}
|
|
380
|
+
return web.createComponent(web.Dynamic, {
|
|
381
|
+
get component() {
|
|
382
|
+
return elementTag();
|
|
383
|
+
},
|
|
384
|
+
get ["class"]() {
|
|
385
|
+
return blockClasses();
|
|
386
|
+
},
|
|
387
|
+
get children() {
|
|
388
|
+
return props.children;
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
const ItemGroup = props => {
|
|
394
|
+
const items = () => props.items.map(buildIdLabel);
|
|
395
|
+
const currentVTags = solidJs.createMemo(() => {
|
|
396
|
+
const item = [];
|
|
397
|
+
const group = [];
|
|
398
|
+
const _vtags = props.vtags;
|
|
399
|
+
if (Array.isArray(_vtags) || typeof _vtags == "string") {
|
|
400
|
+
group.push(...normalizeTagListArgument(_vtags));
|
|
401
|
+
} else if (typeof _vtags == "object") {
|
|
402
|
+
group.push(...normalizeTagListArgument(_vtags.group));
|
|
403
|
+
item.push(...normalizeTagListArgument(_vtags.item));
|
|
404
|
+
}
|
|
405
|
+
return {
|
|
406
|
+
group,
|
|
407
|
+
item
|
|
408
|
+
};
|
|
409
|
+
});
|
|
410
|
+
const classes = solidJs.createMemo(() => {
|
|
411
|
+
let group = "";
|
|
412
|
+
let item = "";
|
|
413
|
+
if (typeof props.class == "string") {
|
|
414
|
+
group = props.class;
|
|
415
|
+
} else if (props.class != undefined) {
|
|
416
|
+
props.class;
|
|
417
|
+
group = props.class.group ?? "";
|
|
418
|
+
item = props.class.item ?? "";
|
|
419
|
+
}
|
|
420
|
+
return {
|
|
421
|
+
group,
|
|
422
|
+
item
|
|
423
|
+
};
|
|
424
|
+
});
|
|
425
|
+
const blockClasses = () => {
|
|
426
|
+
return tailwindMerge.twMerge("flex flex-row gap-1", classes().group);
|
|
427
|
+
};
|
|
428
|
+
const itemClasses = () => {
|
|
429
|
+
return classes().item;
|
|
430
|
+
};
|
|
431
|
+
const callCallback = item => {
|
|
432
|
+
if (props.callback) {
|
|
433
|
+
props.callback(item);
|
|
434
|
+
}
|
|
435
|
+
};
|
|
436
|
+
const itemSelected = id => {
|
|
437
|
+
if (typeof props.selection == "string") {
|
|
438
|
+
return id == props.selection;
|
|
439
|
+
} else if (typeof props.selection == "object") {
|
|
440
|
+
return !!props.selection[id];
|
|
441
|
+
}
|
|
442
|
+
return false;
|
|
443
|
+
};
|
|
444
|
+
return web.createComponent(Block, {
|
|
445
|
+
get ["class"]() {
|
|
446
|
+
return blockClasses();
|
|
447
|
+
},
|
|
448
|
+
get vtags() {
|
|
449
|
+
return currentVTags().group;
|
|
450
|
+
},
|
|
451
|
+
get children() {
|
|
452
|
+
return web.createComponent(solidJs.For, {
|
|
453
|
+
get each() {
|
|
454
|
+
return items();
|
|
455
|
+
},
|
|
456
|
+
children: item => {
|
|
457
|
+
return web.createComponent(Item, {
|
|
458
|
+
idLabel: item,
|
|
459
|
+
get selected() {
|
|
460
|
+
return itemSelected(item.id);
|
|
461
|
+
},
|
|
462
|
+
callback: () => callCallback(item),
|
|
463
|
+
get ["class"]() {
|
|
464
|
+
return itemClasses();
|
|
465
|
+
},
|
|
466
|
+
get vtags() {
|
|
467
|
+
return currentVTags().item;
|
|
468
|
+
}
|
|
469
|
+
});
|
|
470
|
+
}
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
});
|
|
474
|
+
};
|
|
475
|
+
|
|
476
|
+
var _tmpl$ = /*#__PURE__*/web.template(`<div class=bg-red-600>- - S O L T W - -`);
|
|
477
|
+
const SolTw = props => {
|
|
478
|
+
return _tmpl$();
|
|
479
|
+
};
|
|
480
|
+
|
|
481
|
+
exports.Block = Block;
|
|
124
482
|
exports.Item = Item;
|
|
483
|
+
exports.ItemGroup = ItemGroup;
|
|
484
|
+
exports.SVTStyler = SVTStyler;
|
|
485
|
+
exports.SVTStylerNormalizer = SVTStylerNormalizer;
|
|
125
486
|
exports.SolTw = SolTw;
|
|
487
|
+
exports.Stylers = Stylers;
|
|
488
|
+
exports.baseStyler = baseStyler;
|
|
126
489
|
exports.buildIdLabel = buildIdLabel;
|
|
490
|
+
exports.exlusiveTagNormalize = exlusiveTagNormalize;
|
|
491
|
+
exports.mainTagNormalize = mainTagNormalize;
|
|
492
|
+
exports.twMergeNormalize = twMergeNormalize;
|
|
127
493
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/soltw.tsx","../../src/items/IdLabel.ts","../../src/theme/StyleBoxes.ts","../../src/items/Item.tsx"],"sourcesContent":["import type { Component } from \"solid-js\";\n\ntype TProps = {}\n\nexport const SolTw : Component<TProps> = (props) =>{\n return <div class=\"bg-red-600\">- - S O L T W - -</div>\n}\n\n\n","export interface IdLabel {\n id: string;\n label: string;\n [x: string | symbol]: unknown;\n}\n\nexport type IdLabelDef = {\n id: string;\n label?: string;\n [x: string | symbol]: unknown;\n};\n\nexport type IdLabelArg = IdLabelDef | [string, string] | string;\n\nexport function buildIdLabel(arg: IdLabelArg): IdLabel {\n if (typeof arg == \"string\") {\n return { id: arg, label: arg };\n } else if (Array.isArray(arg)) {\n return { id: arg[0], label: arg[1] };\n } else {\n const r = Object.assign({}, arg);\n if (r.label == undefined) {\n r[\"label\"] = r.id;\n }\n return r as IdLabel;\n }\n}\n\n","import type { IStyleBox } from \"./StyleBox\";\n\nexport const themeAlpha :Record<string, IStyleBox> = {\n\n \"block\" : {\n base: \"bg-stone-100 text-stone-900\",\n selected: \"bg-stone-100 text-orange-800 font-bold\",\n disabled: \"bg-stone-100 text-stone-600 italic\",\n disabler: \"bg-white/30\"\n },\n \"item\" : {\n base: \"bg-orange-900 text-stone-100\",\n selected: \"bg-orange-800 text-stone-100 font-bold underline\",\n disabled: \"bg-orange-900 text-stone-300 italic\",\n disabler: \"bg-white/70\"\n },\n\n}\n","import { type Component, createMemo, Show } from \"solid-js\";\nimport { twMerge } from \"tailwind-merge\";\nimport { buildIdLabel, type IdLabel, type IdLabelArg } from \"./IdLabel.js\";\nimport { themeAlpha } from \"../theme/StyleBoxes.js\";\nimport type { IStyleBox } from \"../theme/StyleBox.js\";\n\nexport type TItemClass = {\n item?: string;\n selected?: string;\n disabled?: string;\n disabler?: string;\n};\nexport type TItemClassArg = TItemClass | string;\n\nexport type TItemProps = {\n idLabel: IdLabelArg;\n action?: (item: IdLabel) => void;\n selected?: boolean;\n disabled?: boolean;\n clickableWhendisabled?: boolean;\n class?: TItemClassArg;\n theme?: IStyleBox;\n};\n\nexport const Item: Component<TItemProps> = (props) => {\n const itemData = () => buildIdLabel(props.idLabel);\n\n const styleBox = () => {\n return props.theme !=undefined ? props.theme : themeAlpha[\"item\"]!;\n };\n\n const propsClass = createMemo<TItemClass>(() => {\n if (props.class == undefined) {\n return {};\n } else if (typeof props.class == \"string\") {\n return { item: props.class };\n } else {\n return props.class;\n }\n });\n\n const itemClasses = createMemo(() => {\n const rawClasses = [\"px-1\"] as (string | undefined)[];\n\n rawClasses.push(styleBox().base)\n\n\n // const stylerClasses = styler\n // ? styler.classes(stags, props.vtags)\n // : undefined;\n // rawClasses.push(...(stylerClasses ?? []));\n\n if (props.action) {\n rawClasses.push(\"select-none cursor-pointer\");\n }\n\n const customClasses = propsClass();\n if (customClasses.item) {\n rawClasses.push(customClasses.item);\n }\n if (props.selected) {\n rawClasses.push(styleBox().selected, customClasses.selected);\n }\n if (props.disabled ) {\n rawClasses.push(styleBox().disabled, customClasses.disabled);\n }\n\n rawClasses.push(\"relative\");\n const r = twMerge(...rawClasses);\n return r;\n });\n\n const disablerClasses = createMemo(() => {\n const rawClasses = [] as string[];\n\n rawClasses.push(styleBox().disabler)\n\n if (propsClass().disabler) {\n rawClasses.push(propsClass().disabler!);\n }\n rawClasses.push(\"absolute inset-0\");\n const r = twMerge(...rawClasses);\n return r;\n });\n\n function handleClick() {\n if (props.action != undefined) {\n props.action(itemData());\n }\n }\n\n return (\n <div onClick={handleClick} class={itemClasses()}>\n {itemData().label}\n <Show when={props.disabled}>\n <div\n class={disablerClasses()}\n onClick={(e) => {\n if (!props.clickableWhendisabled) {\n e.stopPropagation();\n }\n }}\n ></div>\n </Show>\n </div>\n );\n};\n"],"names":["SolTw","props","_tmpl$","buildIdLabel","arg","id","label","Array","isArray","r","Object","assign","undefined","themeAlpha","base","selected","disabled","disabler","Item","itemData","idLabel","styleBox","theme","propsClass","createMemo","class","item","itemClasses","rawClasses","push","action","customClasses","twMerge","disablerClasses","handleClick","_el$","$$click","_$insert","_$createComponent","Show","when","children","_el$2","e","clickableWhendisabled","stopPropagation","_$effect","_$className","_$delegateEvents"],"mappings":";;;;;;;AAIO,MAAMA,KAAyB,GAAIC,KAAK,IAAI;AACjD,EAAA,OAAAC,QAAA,EAAA;AACF;;ACQO,SAASC,YAAYA,CAACC,GAAe,EAAW;AACrD,EAAA,IAAI,OAAOA,GAAG,IAAI,QAAQ,EAAE;IAC1B,OAAO;AAAEC,MAAAA,EAAE,EAAED,GAAG;AAAEE,MAAAA,KAAK,EAAEF;KAAK;EAChC,CAAC,MAAM,IAAIG,KAAK,CAACC,OAAO,CAACJ,GAAG,CAAC,EAAE;IAC7B,OAAO;AAAEC,MAAAA,EAAE,EAAED,GAAG,CAAC,CAAC,CAAC;MAAEE,KAAK,EAAEF,GAAG,CAAC,CAAC;KAAG;AACtC,EAAA,CAAC,MAAM;IACL,MAAMK,CAAC,GAAGC,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEP,GAAG,CAAC;AAChC,IAAA,IAAIK,CAAC,CAACH,KAAK,IAAIM,SAAS,EAAE;AACxBH,MAAAA,CAAC,CAAC,OAAO,CAAC,GAAGA,CAAC,CAACJ,EAAE;AACnB,IAAA;AACA,IAAA,OAAOI,CAAC;AACV,EAAA;AACF;;ACxBO,MAAMI,UAAqC,GAAG;AAEnD,EAMA,MAAM,EAAG;AACPC,IAAAA,IAAI,EAAE,8BAA8B;AACpCC,IAAAA,QAAQ,EAAE,kDAAkD;AAC5DC,IAAAA,QAAQ,EAAE,qCAAqC;AAC/CC,IAAAA,QAAQ,EAAE;AACZ;AAEF,CAAC;;;ACOM,MAAMC,IAA2B,GAAIjB,KAAK,IAAK;EACpD,MAAMkB,QAAQ,GAAGA,MAAMhB,YAAY,CAACF,KAAK,CAACmB,OAAO,CAAC;EAElD,MAAMC,QAAQ,GAAGA,MAAM;AACrB,IAAA,OAAOpB,KAAK,CAACqB,KAAK,IAAGV,SAAS,GAAIX,KAAK,CAACqB,KAAK,GAAGT,UAAU,CAAC,MAAM,CAAE;EACrE,CAAC;AAED,EAAA,MAAMU,UAAU,GAAGC,kBAAU,CAAa,MAAM;AAC9C,IAAA,IAAIvB,KAAK,CAACwB,KAAK,IAAIb,SAAS,EAAE;AAC5B,MAAA,OAAO,EAAE;IACX,CAAC,MAAM,IAAI,OAAOX,KAAK,CAACwB,KAAK,IAAI,QAAQ,EAAE;MACzC,OAAO;QAAEC,IAAI,EAAEzB,KAAK,CAACwB;OAAO;AAC9B,IAAA,CAAC,MAAM;MACL,OAAOxB,KAAK,CAACwB,KAAK;AACpB,IAAA;AACF,EAAA,CAAC,CAAC;AAEF,EAAA,MAAME,WAAW,GAAGH,kBAAU,CAAC,MAAM;AACnC,IAAA,MAAMI,UAAU,GAAG,CAAC,MAAM,CAA2B;IAErDA,UAAU,CAACC,IAAI,CAACR,QAAQ,EAAE,CAACP,IAAI,CAAC;;AAGhC;AACA;AACA;AACA;;IAEA,IAAIb,KAAK,CAAC6B,MAAM,EAAE;AAChBF,MAAAA,UAAU,CAACC,IAAI,CAAC,4BAA4B,CAAC;AAC/C,IAAA;AAEA,IAAA,MAAME,aAAa,GAAGR,UAAU,EAAE;IAClC,IAAIQ,aAAa,CAACL,IAAI,EAAE;AACtBE,MAAAA,UAAU,CAACC,IAAI,CAACE,aAAa,CAACL,IAAI,CAAC;AACrC,IAAA;IACA,IAAIzB,KAAK,CAACc,QAAQ,EAAE;AAClBa,MAAAA,UAAU,CAACC,IAAI,CAACR,QAAQ,EAAE,CAACN,QAAQ,EAAEgB,aAAa,CAAChB,QAAQ,CAAC;AAC9D,IAAA;IACA,IAAId,KAAK,CAACe,QAAQ,EAAG;AACnBY,MAAAA,UAAU,CAACC,IAAI,CAACR,QAAQ,EAAE,CAACL,QAAQ,EAAEe,aAAa,CAACf,QAAQ,CAAC;AAC9D,IAAA;AAEAY,IAAAA,UAAU,CAACC,IAAI,CAAC,UAAU,CAAC;AAC3B,IAAA,MAAMpB,CAAC,GAAGuB,qBAAO,CAAC,GAAGJ,UAAU,CAAC;AAChC,IAAA,OAAOnB,CAAC;AACV,EAAA,CAAC,CAAC;AAEF,EAAA,MAAMwB,eAAe,GAAGT,kBAAU,CAAC,MAAM;IACvC,MAAMI,UAAU,GAAG,EAAc;IAEjCA,UAAU,CAACC,IAAI,CAACR,QAAQ,EAAE,CAACJ,QAAQ,CAAC;AAEpC,IAAA,IAAIM,UAAU,EAAE,CAACN,QAAQ,EAAE;MACzBW,UAAU,CAACC,IAAI,CAACN,UAAU,EAAE,CAACN,QAAS,CAAC;AACzC,IAAA;AACAW,IAAAA,UAAU,CAACC,IAAI,CAAC,kBAAkB,CAAC;AACnC,IAAA,MAAMpB,CAAC,GAAGuB,qBAAO,CAAC,GAAGJ,UAAU,CAAC;AAChC,IAAA,OAAOnB,CAAC;AACV,EAAA,CAAC,CAAC;EAEF,SAASyB,WAAWA,GAAG;AACrB,IAAA,IAAIjC,KAAK,CAAC6B,MAAM,IAAIlB,SAAS,EAAE;AAC7BX,MAAAA,KAAK,CAAC6B,MAAM,CAACX,QAAQ,EAAE,CAAC;AAC1B,IAAA;AACF,EAAA;AAEA,EAAA,OAAA,CAAA,MAAA;IAAA,IAAAgB,IAAA,GAAAjC,MAAA,EAAA;IAAAiC,IAAA,CAAAC,OAAA,GACgBF,WAAW;AAAAG,IAAAA,UAAA,CAAAF,IAAA,EAAA,MACtBhB,QAAQ,EAAE,CAACb,KAAK,EAAA,IAAA,CAAA;AAAA+B,IAAAA,UAAA,CAAAF,IAAA,EAAAG,mBAAA,CAChBC,YAAI,EAAA;AAAA,MAAA,IAACC,IAAIA,GAAA;QAAA,OAAEvC,KAAK,CAACe,QAAQ;AAAA,MAAA,CAAA;AAAA,MAAA,IAAAyB,QAAAA,GAAA;QAAA,IAAAC,KAAA,GAAAxC,MAAA,EAAA;AAAAwC,QAAAA,KAAA,CAAAN,OAAA,GAGZO,CAAC,IAAK;AACd,UAAA,IAAI,CAAC1C,KAAK,CAAC2C,qBAAqB,EAAE;YAChCD,CAAC,CAACE,eAAe,EAAE;AACrB,UAAA;QACF,CAAC;AAAAC,QAAAA,UAAA,OAAAC,aAAA,CAAAL,KAAA,EALMT,eAAe,EAAE,CAAA,CAAA;AAAA,QAAA,OAAAS,KAAA;AAAA,MAAA;AAAA,KAAA,CAAA,EAAA,IAAA,CAAA;AAAAI,IAAAA,UAAA,OAAAC,aAAA,CAAAZ,IAAA,EAJIR,WAAW,EAAE,CAAA,CAAA;AAAA,IAAA,OAAAQ,IAAA;AAAA,EAAA,CAAA,GAAA;AAcnD;AAAEa,kBAAA,CAAA,CAAA,OAAA,CAAA,CAAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/items/IdLabel.ts","../../src/stylers/utils.ts","../../src/stylers/stylersUtils.ts","../../src/stylers/tagRules.ts","../../src/stylers/SVTStyler.ts","../../src/stylers/base.styler.ts","../../src/stylers/Stylers.ts","../../src/items/Item.tsx","../../src/Block.tsx","../../src/items/ItemGroup.tsx","../../src/soltw.tsx"],"sourcesContent":["export interface IdLabel {\n id: string;\n label: string;\n [x: string | symbol]: unknown;\n}\n\nexport type IdLabelDef = {\n id: string;\n label?: string;\n [x: string | symbol]: unknown;\n};\n\nexport type IdLabelArg = IdLabelDef | [string, string] | string;\n\nexport function buildIdLabel(arg: IdLabelArg): IdLabel {\n if (typeof arg == \"string\") {\n return { id: arg, label: arg };\n } else if (Array.isArray(arg)) {\n return { id: arg[0], label: arg[1] };\n } else {\n const r = Object.assign({}, arg);\n if (r.label == undefined) {\n r[\"label\"] = r.id;\n }\n return r as IdLabel;\n }\n}\n\n","export function splitCleanString(\n s: string,\n options: { separator?: string | RegExp; filter?: (s: string) => boolean } = {}\n): string[] {\n const separator = options.separator ?? /\\s+/;\n const filter = options.filter ?? ((s: string) => s.length > 0);\n const r = s.split(separator).filter(filter);\n return r;\n}\n\nexport function deduplicate<T>(items: T[]): T[] {\n const r = [] as T[];\n const itemSet = new Set<T>();\n for (const item of items) {\n if (!itemSet.has(item)) {\n r.push(item);\n itemSet.add(item);\n }\n }\n\n return r;\n}\n","import { twMerge } from \"tailwind-merge\";\nimport type { ISVTStyler, TagListArgument } from \"./types.js\";\nimport { splitCleanString } from \"./utils.js\";\n\nexport class SVTStylerNormalizer implements ISVTStyler {\n constructor(private readonly styler: ISVTStyler) {}\n\n classes(stags: TagListArgument, vtags: TagListArgument): string[] {\n const r = this.styler.classes(stags, vtags);\n return r ?? [];\n }\n}\n\nexport function twMergeNormalize(raw: string[]): string[] {\n return splitCleanString(twMerge(...raw));\n}\n\nexport function mainTagNormalize(\n rawTags: string[],\n defaultTag?: string\n): string[] {\n const rhead = [] as string[];\n const rtail = [] as string[];\n let rtag: string | undefined = undefined;\n for (const tag of rawTags) {\n if (tag.length == 1 && tag.toUpperCase() == tag) {\n rtag = tag;\n rhead.push(...rtail);\n rtail.length = 0;\n } else {\n if (rtag == undefined) {\n rhead.push(tag);\n } else {\n rtail.push(tag);\n }\n }\n }\n rtag = rtag ?? defaultTag;\n const r =\n rtag == undefined ? [...rhead, ...rtail] : [...rhead, rtag, ...rtail];\n // console.log(\"MAIN TAGS NORM:\", rawTags, r);\n return r;\n}\n\nexport function exlusiveTagNormalize(\n rawTags: string[],\n tagSet: Set<String>,\n defaultTag?: string\n): string[] {\n const rhead = [] as string[];\n const rtail = [] as string[];\n let rtag: string | undefined = undefined;\n for (const tag of rawTags) {\n if (tagSet.has(tag)) {\n rtag = tag;\n rhead.push(...rtail);\n rtail.length = 0;\n } else {\n if (rtag == undefined) {\n rhead.push(tag);\n } else {\n rtail.push(tag);\n }\n }\n }\n rtag = rtag ?? defaultTag;\n const r =\n rtag == undefined ? [...rhead, ...rtail] : [...rhead, rtag, ...rtail];\n //console.log(\"EXCLU TAGS NORM:\", rawTags, r);\n return r;\n}\n","import type { TagListArgument, TagRule } from \"./types.js\";\nimport { splitCleanString } from \"./utils.js\";\n\n\n\nexport function normalizeTagListArgument(arg: TagListArgument): string[] {\n if (typeof arg == \"string\") {\n return splitCleanString(arg);\n } else if (Array.isArray(arg)) {\n const r = [];\n for (const a of arg) {\n r.push(...normalizeTagListArgument(a));\n }\n return r;\n }\n return [];\n}\n\n\nexport function tagRuleMatches(\n rule:TagRule,\n candidateTags: string[]\n) {\n if (rule.mode == \"any\") {\n return true;\n } else if (rule.mode == \"or\") {\n for (const ctag of candidateTags) {\n if (rule.tags.indexOf(ctag) >= 0) {\n return true;\n }\n }\n return false;\n } else if (rule.mode == \"and\") {\n for (const rtag of rule.tags) {\n if (candidateTags.indexOf(rtag) < 0) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n","import { normalizeTagListArgument, tagRuleMatches } from \"./tagRules.js\";\nimport type {\n ISVTStyler,\n TagListArgument,\n TagRule,\n TagRuleMode,\n} from \"./types.js\";\nimport { deduplicate } from \"./utils.js\";\n\nexport type SVTRule = {\n stagRule: TagRule;\n vtagRule: TagRule;\n classes: string[];\n};\n\nexport type SVTRuleDef = {\n stagMode?: TagRuleMode;\n vtagMode?: TagRuleMode;\n stags?: TagListArgument;\n vtags?: TagListArgument;\n classes?: TagListArgument;\n};\n\ntype SVTStylerOptions = {\n normalizer?: (rawClasses: string[]) => string[];\n stagsNormaliser?: (rawTags: string[]) => string[];\n vtagsNormaliser?: (rawTags: string[]) => string[];\n};\n\nexport class SVTStyler implements ISVTStyler {\n readonly _rules: SVTRule[] = [];\n readonly options: SVTStylerOptions;\n\n constructor(rules: SVTRuleDef[], options: SVTStylerOptions = {}) {\n for (const r of rules) {\n this._rules.push(SVTStyler.normalizeRule(r));\n }\n this.options = { ...options };\n }\n\n with(rules: SVTRuleDef[], options: SVTStylerOptions = {}): SVTStyler {\n const addedRules: SVTRule[] = [];\n for (const r of rules) {\n addedRules.push(SVTStyler.normalizeRule(r));\n }\n\n const styler = new SVTStyler([], { ...this.options });\n styler._rules.push(...this._rules, ...addedRules);\n return styler;\n }\n\n classes(stags: TagListArgument, vtags: TagListArgument): string[] {\n const r = [] as string[];\n\n let stagsNormalized = normalizeTagListArgument(stags);\n let vtagsNormalized = normalizeTagListArgument(vtags);\n\n if (this.options.stagsNormaliser) {\n stagsNormalized = this.options.stagsNormaliser(stagsNormalized);\n }\n if (this.options.vtagsNormaliser) {\n vtagsNormalized = this.options.vtagsNormaliser(vtagsNormalized);\n }\n\n for (const rule of this._rules) {\n if (this.ruleMatches(rule, stagsNormalized, vtagsNormalized)) {\n r.push(...rule.classes);\n }\n }\n\n return this.options.normalizer ? this.options.normalizer(r) : r;\n }\n\n static normalizeRule(rule: SVTRuleDef): SVTRule {\n let stagMode: TagRuleMode = rule.stagMode ?? \"or\";\n let vtagMode: TagRuleMode = rule.vtagMode ?? \"or\";\n let stags: string[] = deduplicate(normalizeTagListArgument(rule.stags));\n let vtags: string[] = deduplicate(normalizeTagListArgument(rule.vtags));\n let classes: string[] = deduplicate(normalizeTagListArgument(rule.classes));\n\n if (rule.stags == undefined && rule.stagMode == undefined) {\n stagMode = \"any\";\n }\n if (rule.vtags == undefined && rule.vtagMode == undefined) {\n vtagMode = \"any\";\n }\n\n return {\n stagRule: { mode: stagMode, tags: stags },\n vtagRule: { mode: vtagMode, tags: vtags },\n classes,\n };\n }\n\n ruleMatches(rule: SVTRule, stags: string[], vtags: string[]) {\n return (\n tagRuleMatches(rule.stagRule, stags) &&\n tagRuleMatches(rule.vtagRule, vtags)\n );\n }\n}\n","import {\n mainTagNormalize,\n twMergeNormalize,\n exlusiveTagNormalize,\n} from \"./stylersUtils.js\";\nimport { SVTStyler } from \"./SVTStyler.js\";\n\n\nexport const baseStyler = new SVTStyler(\n [\n {\n vtags: \"A\",\n classes: \"bg-slate-100 text-slate-800\",\n },\n {\n vtags: \"B\",\n classes: \"bg-slate-800 text-slate-100\",\n },\n {\n vtags: \"C\",\n classes: \"bg-stone-300 text-orange-950\",\n },\n { \n vtags: \"D\",\n classes: \"bg-orange-900 text-stone-100\",\n },\n {\n vtags: \"LG\",\n classes: \"text-xl p-2\",\n },\n {\n vtags: \"BASE\",\n classes: \"text-base p-1\",\n },\n {\n vtags: \"SM\",\n classes: \"text-sm p-0.5\",\n },\n {\n vtags: \"LG\",\n stags: \"item\",\n classes: \"text-xl px-2 py-1\",\n },\n {\n vtags: \"BASE\",\n stags: \"item\",\n classes: \"text-base px-1 py-0.5\",\n },\n {\n vtags: \"SM\",\n stags: \"item\",\n classes: \"text-sm p-0.5\",\n },\n {\n stags: \"item:selected\",\n classes: \"underline font-bold\",\n },\n {\n stags: \"item:disabled\",\n classes: \"blur-[1px]\",\n },\n {\n stags: \"item/disabler\",\n classes: \"bg-slate-300/85 cursor-not-allowed\",\n },\n ],\n {\n normalizer: twMergeNormalize,\n vtagsNormaliser: (tags) =>\n exlusiveTagNormalize(\n mainTagNormalize(tags, \"A\"),\n new Set([\"SM\", \"BASE\", \"LG\"]),\n \"BASE\"\n ),\n }\n);\n","import type { ISVTStyler } from \"./types.js\";\nimport {baseStyler} from \"./base.styler.js\";\n\nexport class Stylers {\n private static _base: ISVTStyler | undefined;\n private static _stylersMap = new Map<string, ISVTStyler>();\n\n static get base(): ISVTStyler | undefined {\n return this._base;\n }\n static setBase(base: ISVTStyler | undefined) {\n return (this._base = base);\n }\n static {\n this._stylersMap.set(\"default\", baseStyler)\n this.setBase(baseStyler);\n }\n\n static get(name: string): ISVTStyler | undefined {\n return this._stylersMap.get(name);\n }\n}\n","import { type Component, createMemo, Show } from \"solid-js\";\nimport { twMerge } from \"tailwind-merge\";\nimport { type ISVTStyler, type TagListArgument } from \"../stylers/index.js\";\nimport { Stylers } from \"../stylers/Stylers.js\";\nimport { buildIdLabel, type IdLabel, type IdLabelArg } from \"./IdLabel.js\";\n\nexport type TItemClass = {\n item?: string;\n selected?: string;\n disabled?: string;\n disabler?: string;\n};\nexport type TItemClassArg = TItemClass|string;\n\nexport type TItemProps = {\n idLabel: IdLabelArg;\n callback?: (item: IdLabel) => void;\n selected?: boolean;\n disabled?: boolean;\n clickableWhendisabled?: boolean;\n styler?: ISVTStyler;\n vtags?: TagListArgument;\n class?: TItemClassArg;\n};\n\nexport const Item: Component<TItemProps> = (props) => {\n const itemData = () => buildIdLabel(props.idLabel);\n\n const currentSTags = () => {\n const r = [] as string[];\n r.push(\"item\");\n if (props.selected) {\n r.push(\"item:selected\");\n }\n if (props.disabled) {\n r.push(\"item:disabled\");\n }\n return r;\n };\n\n const currentStyler = () => {\n if (props.styler) {\n return props.styler;\n } else {\n return Stylers.base;\n }\n };\n\n const classProp = createMemo<TItemClass>(() => {\n if (props.class == undefined) {\n return {};\n } else if (typeof props.class == \"string\") {\n return { item: props.class };\n } else {\n return props.class;\n }\n });\n\n const itemClasses = createMemo(() => {\n const stags = currentSTags();\n\n const styler = currentStyler();\n\n const rawClasses = [] as (string | undefined)[];\n\n const stylerClasses = styler\n ? styler.classes(stags, props.vtags)\n : undefined;\n rawClasses.push(...(stylerClasses ?? []));\n\n if (props.callback) {\n rawClasses.push(\"select-none cursor-pointer\");\n }\n\n const customClasses = classProp();\n if (customClasses.item) {\n rawClasses.push(customClasses.item);\n }\n if (props.selected && customClasses.selected) {\n rawClasses.push(customClasses.selected);\n }\n if (props.disabled && customClasses.disabled) {\n rawClasses.push(customClasses.disabled);\n }\n\n rawClasses.push(\"relative\");\n const r = twMerge(rawClasses);\n return r;\n });\n\n const disablerClasses = createMemo(() => {\n const rawClasses = [] as string[];\n if (currentStyler()) {\n rawClasses.push(\n ...currentStyler()!.classes(\"item/disabler\", props.vtags)!\n );\n }\n if (classProp().disabler) {\n rawClasses.push(classProp().disabler!);\n }\n rawClasses.push(\"absolute inset-0\");\n const r = twMerge(rawClasses);\n return r;\n });\n\n function handleClick() {\n if (props.callback != undefined) {\n props.callback(itemData());\n }\n }\n\n return (\n <div onClick={handleClick} class={itemClasses()}>\n {itemData().label}\n <Show when={props.disabled}>\n <div\n class={disablerClasses()}\n onClick={(e) => {\n if (!props.clickableWhendisabled) {\n e.stopPropagation();\n }\n }}\n ></div>\n </Show>\n </div>\n );\n};\n","import type { Component, ParentProps } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport { type ISVTStyler, Stylers, type TagListArgument } from \"./stylers/index.js\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype TProps = ParentProps & {\n vtags?: TagListArgument;\n styler?: ISVTStyler;\n class?: string;\n element?: string;\n};\n\n\nexport const Block: Component<TProps> = (props) => {\n const elementTag = () => props.element ?? \"div\";\n const currentStyler = () => {\n if (props.styler) {\n return props.styler;\n } else {\n return Stylers.base;\n }\n };\n\n function blockClasses() {\n const stags = \"block\";\n const classes = currentStyler()!.classes(stags, props.vtags) ?? [];\n if (props.class) {\n classes.push(props.class);\n }\n return twMerge(classes);\n }\n\n return (\n <Dynamic component={elementTag()} class={blockClasses()}>\n {props.children}\n </Dynamic>\n );\n};\n","import { twMerge } from \"tailwind-merge\";\nimport { Block } from \"../Block.jsx\";\nimport { Item, type TItemClassArg } from \"./Item.js\";\nimport { buildIdLabel, type IdLabel, type IdLabelArg } from \"./IdLabel.js\";\nimport { type Component, createMemo, For } from \"solid-js\";\nimport { type TagListArgument } from \"../stylers/types.js\";\nimport { normalizeTagListArgument } from \"../stylers/tagRules.js\";\n\ntype TProps = {\n items: IdLabelArg[];\n callback?: (item: IdLabel) => void;\n class?: string | { group?: string; item?: TItemClassArg };\n selection?: string | { [id: string]: boolean };\n vtags?: TagListArgument | { group?: TagListArgument; item?: TagListArgument };\n};\n\nexport const ItemGroup: Component<TProps> = (props) => {\n const items = () => props.items.map(buildIdLabel);\n\n const currentVTags = createMemo<{ group: string[]; item?: string[] }>(() => {\n const item = [] as string[];\n const group = [] as string[];\n const _vtags = props.vtags;\n if (Array.isArray(_vtags) || typeof _vtags == \"string\") {\n group.push(...normalizeTagListArgument(_vtags));\n } else if (typeof _vtags == \"object\") {\n group.push(...normalizeTagListArgument(_vtags.group));\n item.push(...normalizeTagListArgument(_vtags.item));\n }\n return { group, item };\n });\n\n const classes = createMemo(() => {\n let group = \"\";\n let item: TItemClassArg = \"\";\n if (typeof props.class == \"string\") {\n group = props.class;\n } else if (props.class != undefined) {\n props.class;\n group = props.class.group ?? \"\";\n item = props.class.item ?? \"\";\n }\n\n return { group, item };\n });\n\n const blockClasses = () => {\n return twMerge(\"flex flex-row gap-1\", classes().group);\n };\n\n const itemClasses = () => {\n return classes().item;\n };\n\n const callCallback = (item: IdLabel) => {\n if (props.callback) {\n props.callback( item);\n }\n };\n\n const itemSelected = (id: string) => {\n if (typeof props.selection == \"string\") {\n return id == props.selection;\n } else if (typeof props.selection == \"object\") {\n return !!props.selection[id];\n }\n return false;\n };\n\n return (\n <Block class={blockClasses()} vtags={currentVTags().group}>\n <For each={items()}>\n {(item) => {\n return (\n <Item\n idLabel={item}\n selected={itemSelected(item.id)}\n callback={() => callCallback(item)}\n class={itemClasses()}\n vtags={currentVTags().item}\n ></Item>\n );\n }}\n </For>\n </Block>\n );\n};\n","import type { Component } from \"solid-js\";\n\ntype TProps = {}\n\nexport const SolTw : Component<TProps> = (props) =>{\n return <div class=\"bg-red-600\">- - S O L T W - -</div>\n}\n\n\n"],"names":["buildIdLabel","arg","id","label","Array","isArray","r","Object","assign","undefined","splitCleanString","s","options","separator","filter","length","split","deduplicate","items","itemSet","Set","item","has","push","add","SVTStylerNormalizer","constructor","styler","classes","stags","vtags","twMergeNormalize","raw","twMerge","mainTagNormalize","rawTags","defaultTag","rhead","rtail","rtag","tag","toUpperCase","exlusiveTagNormalize","tagSet","normalizeTagListArgument","a","tagRuleMatches","rule","candidateTags","mode","ctag","tags","indexOf","SVTStyler","_rules","rules","normalizeRule","with","addedRules","stagsNormalized","vtagsNormalized","stagsNormaliser","vtagsNormaliser","ruleMatches","normalizer","stagMode","vtagMode","stagRule","vtagRule","baseStyler","Stylers","_stylersMap","Map","base","_base","setBase","set","get","name","Item","props","itemData","idLabel","currentSTags","selected","disabled","currentStyler","classProp","createMemo","class","itemClasses","rawClasses","stylerClasses","callback","customClasses","disablerClasses","disabler","handleClick","_el$","_tmpl$","$$click","_$insert","_$createComponent","Show","when","children","_el$2","e","clickableWhendisabled","stopPropagation","_$effect","_$className","_$delegateEvents","Block","elementTag","element","blockClasses","Dynamic","component","ItemGroup","map","currentVTags","group","_vtags","callCallback","itemSelected","selection","For","each","SolTw"],"mappings":"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"}
|