@jsswift/ui 1.0.54 → 2.0.0
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/css/animation.css +36 -36
- package/dist/css/base.css +374 -374
- package/dist/css/docs.css +54 -54
- package/dist/css/fonts-nunito.css +2 -2
- package/dist/css/min-ui.css +1 -1
- package/dist/css/responsive-base.css +549 -549
- package/dist/css/responsive.css +3225 -3225
- package/dist/css/ui-components.css +2902 -2930
- package/dist/css/ui-light.css +3853 -3881
- package/dist/css/ui-light.min.css +1 -1
- package/dist/css/ui.css +6530 -6558
- package/dist/css/ui.min.css +1 -1
- package/dist/min-ui.js +12 -12
- package/dist/ui.js +4354 -9379
- package/dist/ui.min.js +12 -12
- package/package.json +2 -2
- package/src/00-bootstrap.js +305 -305
- package/src/01-foundation-helpers.js +328 -325
- package/src/10-primitives-layout.js +242 -242
- package/src/20-display-content.js +76 -76
- package/src/21-list-content.js +21 -21
- package/src/22-banner-content.js +376 -376
- package/src/23-tooltip.js +9 -9
- package/src/31-form-advanced.js +141 -141
- package/src/40-navigation.js +81 -81
- package/src/41-tab-panel.js +37 -37
- package/src/50-feedback.js +52 -52
- package/src/51-feedback-service.js +166 -166
- package/src/60-shell-app.js +1082 -1082
- package/src/61-form-service.js +5 -5
- package/src/70-dialog.js +34 -34
- package/src/71-menu-overlays.js +73 -73
- package/src/80-data.js +38 -38
- package/src/css/animation.css +36 -36
- package/src/css/base.css +374 -374
- package/src/css/docs.css +54 -54
- package/src/css/fonts-nunito.css +2 -2
- package/src/css/responsive.css +3225 -3225
- package/src/css/ui-components.css +2902 -2930
|
@@ -69,9 +69,9 @@
|
|
|
69
69
|
};
|
|
70
70
|
|
|
71
71
|
const cls = uiClass([
|
|
72
|
-
"
|
|
72
|
+
"jss-icon",
|
|
73
73
|
"material-icons",
|
|
74
|
-
...(hasVisualSurface ? ["
|
|
74
|
+
...(hasVisualSurface ? ["jss-clear-set", "jss-singularity"] : []),
|
|
75
75
|
sizeClass,
|
|
76
76
|
props.class
|
|
77
77
|
]);
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
if (size != null) {
|
|
115
115
|
let v = size;
|
|
116
116
|
if (JSswift.uiSizes.includes(size)) {
|
|
117
|
-
v = `var(--
|
|
117
|
+
v = `var(--jss-icon-size-${size})`;
|
|
118
118
|
}
|
|
119
119
|
v = typeof v === "number" ? v + "px" : String(v);
|
|
120
120
|
icon.style.setProperty("--set-icon-size", v);
|
|
@@ -131,12 +131,12 @@
|
|
|
131
131
|
const slots = props.slots || {};
|
|
132
132
|
const sizeClass = uiComputed(props.size, () => {
|
|
133
133
|
const v = uiUnwrap(props.size);
|
|
134
|
-
return (typeof v === "string" && sizeMap[v]) ? `
|
|
134
|
+
return (typeof v === "string" && sizeMap[v]) ? `jss-size-${v}` : "";
|
|
135
135
|
});
|
|
136
136
|
const cls = uiClass([
|
|
137
|
-
"
|
|
138
|
-
"
|
|
139
|
-
"
|
|
137
|
+
"jss-clear-set",
|
|
138
|
+
"jss-badge",
|
|
139
|
+
"jss-singularity",
|
|
140
140
|
sizeClass,
|
|
141
141
|
uiWhen(props.outline, "outline"),
|
|
142
142
|
props.class
|
|
@@ -212,7 +212,7 @@
|
|
|
212
212
|
const nodes = renderNamedSlotToArray(slotNames, { position }, iconFallback);
|
|
213
213
|
if (!nodes.length) return null;
|
|
214
214
|
return _.span({
|
|
215
|
-
class: `
|
|
215
|
+
class: `jss-badge-anchor jss-badge-anchor-${position}`,
|
|
216
216
|
"data-badge-slot": position
|
|
217
217
|
}, ...nodes);
|
|
218
218
|
});
|
|
@@ -222,8 +222,8 @@
|
|
|
222
222
|
let labelNodes = renderNamedSlotToArray(["label"], {}, labelFallback);
|
|
223
223
|
if (!labelNodes.length) labelNodes = renderNamedSlotToArray(["default"], {}, children);
|
|
224
224
|
return _.span(
|
|
225
|
-
{ class: "
|
|
226
|
-
_.span({ class: "
|
|
225
|
+
{ class: "jss-badge-content" },
|
|
226
|
+
_.span({ class: "jss-badge-label" }, ...(labelNodes.length ? labelNodes : [""]))
|
|
227
227
|
);
|
|
228
228
|
});
|
|
229
229
|
|
|
@@ -235,7 +235,7 @@
|
|
|
235
235
|
const nodes = renderNamedSlotToArray(["notification"], { notification: rawNotification }, fallback);
|
|
236
236
|
if (!nodes.length) return null;
|
|
237
237
|
return _.span({
|
|
238
|
-
class: "
|
|
238
|
+
class: "jss-badge-notification",
|
|
239
239
|
"data-badge-slot": "notification",
|
|
240
240
|
"aria-label": typeof rawNotification === "number" ? `${rawNotification} notifications` : null
|
|
241
241
|
}, ...nodes);
|
|
@@ -295,7 +295,7 @@
|
|
|
295
295
|
return normalizeState(token) || normalizeState(fallback);
|
|
296
296
|
};
|
|
297
297
|
|
|
298
|
-
const avatarPrimitiveBadge = (value, className = "
|
|
298
|
+
const avatarPrimitiveBadge = (value, className = "jss-avatar-badge") => {
|
|
299
299
|
if (value == null || value === false) return null;
|
|
300
300
|
if (value instanceof Node || Array.isArray(value)) return value;
|
|
301
301
|
if (typeof value === "function") return value;
|
|
@@ -307,20 +307,20 @@
|
|
|
307
307
|
if (value == null || value === false) {
|
|
308
308
|
if (!color) return null;
|
|
309
309
|
const fallbackState = avatarStatusState(null, color);
|
|
310
|
-
return _.span({ class: uiClass(["
|
|
310
|
+
return _.span({ class: uiClass(["jss-avatar-status", fallbackState ? `jss-state-${fallbackState}` : ""]) });
|
|
311
311
|
}
|
|
312
312
|
if (value instanceof Node || Array.isArray(value)) return value;
|
|
313
313
|
if (typeof value === "function") return value;
|
|
314
314
|
const state = avatarStatusState(value, color);
|
|
315
315
|
if (value === true || state) {
|
|
316
|
-
return _.span({ class: uiClass(["
|
|
316
|
+
return _.span({ class: uiClass(["jss-avatar-status", state ? `jss-state-${state}` : ""]) });
|
|
317
317
|
}
|
|
318
|
-
return avatarPrimitiveBadge(value, "
|
|
318
|
+
return avatarPrimitiveBadge(value, "jss-avatar-badge");
|
|
319
319
|
};
|
|
320
320
|
|
|
321
321
|
const avatarRenderAnchor = (className, nodes) => {
|
|
322
322
|
if (!nodes || !nodes.length) return null;
|
|
323
|
-
return _.span({ class: uiClass(["
|
|
323
|
+
return _.span({ class: uiClass(["jss-avatar-anchor", className]) }, ...nodes);
|
|
324
324
|
};
|
|
325
325
|
|
|
326
326
|
UI.Avatar = (...args) => {
|
|
@@ -328,20 +328,20 @@
|
|
|
328
328
|
const slots = props.slots || {};
|
|
329
329
|
const sizeClass = uiComputed(props.size, () => {
|
|
330
330
|
const v = uiUnwrap(props.size);
|
|
331
|
-
return (typeof v === "string" && JSswift.uiSizes?.includes(v)) ? `
|
|
331
|
+
return (typeof v === "string" && JSswift.uiSizes?.includes(v)) ? `jss-size-${v}` : "";
|
|
332
332
|
});
|
|
333
333
|
const stateClass = uiComputed([props.color, props.state], () => {
|
|
334
334
|
const v = uiUnwrap(props.color) || uiUnwrap(props.state) || "";
|
|
335
335
|
const state = normalizeState(v);
|
|
336
|
-
return state ? `
|
|
336
|
+
return state ? `jss-state-${state}` : "";
|
|
337
337
|
});
|
|
338
338
|
const cls = uiClass([
|
|
339
|
-
"
|
|
340
|
-
"
|
|
341
|
-
"
|
|
339
|
+
"jss-clear-set",
|
|
340
|
+
"jss-avatar",
|
|
341
|
+
"jss-singularity",
|
|
342
342
|
sizeClass,
|
|
343
343
|
stateClass,
|
|
344
|
-
uiWhen(props.square, "
|
|
344
|
+
uiWhen(props.square, "jss-avatar-square"),
|
|
345
345
|
uiWhen(props.elevated, "elevated"),
|
|
346
346
|
props.class
|
|
347
347
|
]);
|
|
@@ -377,7 +377,7 @@
|
|
|
377
377
|
const radiusStyle = uiStyleValue(props.radius, (value) => {
|
|
378
378
|
const normalized = normalizeRadius(value);
|
|
379
379
|
if (normalized === "xxxl") return "999px";
|
|
380
|
-
if (normalized) return `var(--
|
|
380
|
+
if (normalized) return `var(--jss-r-${normalized})`;
|
|
381
381
|
if (typeof value === "number") return `${value}px`;
|
|
382
382
|
return String(value);
|
|
383
383
|
});
|
|
@@ -410,7 +410,7 @@
|
|
|
410
410
|
let mediaNodes = renderSlotToArray(slots, "media", ctx, props.media);
|
|
411
411
|
if (!mediaNodes.length && props.src) {
|
|
412
412
|
const imgProps = {
|
|
413
|
-
class: "
|
|
413
|
+
class: "jss-avatar-img",
|
|
414
414
|
src: props.src,
|
|
415
415
|
alt: altText,
|
|
416
416
|
sizes: props.sizes,
|
|
@@ -437,8 +437,8 @@
|
|
|
437
437
|
? labelNodes
|
|
438
438
|
: (iconNodes.length ? iconNodes : ["?"]))));
|
|
439
439
|
|
|
440
|
-
const bodyClass = mediaNodes.length ? "
|
|
441
|
-
const body = _.span({ class: "
|
|
440
|
+
const bodyClass = mediaNodes.length ? "jss-avatar-media" : "jss-avatar-fallback";
|
|
441
|
+
const body = _.span({ class: "jss-avatar-body" },
|
|
442
442
|
_.span({ class: bodyClass }, ...mainNodes)
|
|
443
443
|
);
|
|
444
444
|
|
|
@@ -455,10 +455,10 @@
|
|
|
455
455
|
const wrap = _.div(
|
|
456
456
|
p,
|
|
457
457
|
body,
|
|
458
|
-
avatarRenderAnchor("
|
|
459
|
-
avatarRenderAnchor("
|
|
460
|
-
avatarRenderAnchor("
|
|
461
|
-
avatarRenderAnchor("
|
|
458
|
+
avatarRenderAnchor("jss-avatar-anchor-top-left", topLeftNodes),
|
|
459
|
+
avatarRenderAnchor("jss-avatar-anchor-top-right", topRightNodes),
|
|
460
|
+
avatarRenderAnchor("jss-avatar-anchor-bottom-left", bottomLeftNodes),
|
|
461
|
+
avatarRenderAnchor("jss-avatar-anchor-bottom-right", bottomRightNodes)
|
|
462
462
|
);
|
|
463
463
|
setPropertyProps(wrap, props);
|
|
464
464
|
return wrap;
|
|
@@ -474,9 +474,9 @@
|
|
|
474
474
|
return (typeof v === "string" && sizeMap[v]) ? v : "";
|
|
475
475
|
});
|
|
476
476
|
const cls = uiClass([
|
|
477
|
-
"
|
|
478
|
-
"
|
|
479
|
-
"
|
|
477
|
+
"jss-clear-set",
|
|
478
|
+
"jss-chip",
|
|
479
|
+
"jss-singularity",
|
|
480
480
|
sizeClass,
|
|
481
481
|
props.class
|
|
482
482
|
]);
|
|
@@ -501,7 +501,7 @@
|
|
|
501
501
|
const iconRightNodes = renderSlotToArray(null, "default", {}, iconRightNode);
|
|
502
502
|
const wrap = _.span(p, ...iconNodes, ...(labelNode.length ? labelNode : [""]), ...iconRightNodes);
|
|
503
503
|
if (props.removable) {
|
|
504
|
-
const btn = UI.Btn({ class: "
|
|
504
|
+
const btn = UI.Btn({ class: "jss-chip-remove", onClick: props.onRemove, size: props?.size ?? null }, UI.Icon({ size: props?.size ?? null, name: "close" }));
|
|
505
505
|
wrap.appendChild(btn);
|
|
506
506
|
btn.onclick = () => {
|
|
507
507
|
if (props.onRemove) {
|
|
@@ -522,7 +522,7 @@
|
|
|
522
522
|
const resolveStateValue = () => normalizeState(uiUnwrap(rawProps.state) || uiUnwrap(rawProps.color) || "");
|
|
523
523
|
const stateClass = uiComputed([rawProps.state, rawProps.color], () => {
|
|
524
524
|
const state = resolveStateValue();
|
|
525
|
-
return state ? `
|
|
525
|
+
return state ? `jss-state-${state}` : "";
|
|
526
526
|
});
|
|
527
527
|
const trendClass = uiComputed(rawProps.trend, () => {
|
|
528
528
|
const raw = String(uiUnwrap(rawProps.trend) || "").toLowerCase();
|
|
@@ -552,9 +552,9 @@
|
|
|
552
552
|
"value"
|
|
553
553
|
]);
|
|
554
554
|
p.class = uiClass([
|
|
555
|
-
"
|
|
556
|
-
"
|
|
557
|
-
"
|
|
555
|
+
"jss-clear-set",
|
|
556
|
+
"jss-stat",
|
|
557
|
+
"jss-singularity",
|
|
558
558
|
stateClass,
|
|
559
559
|
trendClass,
|
|
560
560
|
props.class
|
|
@@ -589,33 +589,33 @@
|
|
|
589
589
|
const stat = _.article(
|
|
590
590
|
p,
|
|
591
591
|
_.div(
|
|
592
|
-
{ class: "
|
|
592
|
+
{ class: "jss-stat-head" },
|
|
593
593
|
_.div(
|
|
594
|
-
{ class: "
|
|
595
|
-
iconNodes.length ? _.div({ class: "
|
|
594
|
+
{ class: "jss-stat-lead" },
|
|
595
|
+
iconNodes.length ? _.div({ class: "jss-stat-icon" }, ...iconNodes) : null,
|
|
596
596
|
_.div(
|
|
597
|
-
{ class: "
|
|
598
|
-
eyebrowNodes.length ? _.div({ class: "
|
|
599
|
-
labelNodes.length ? _.div({ class: "
|
|
597
|
+
{ class: "jss-stat-copy" },
|
|
598
|
+
eyebrowNodes.length ? _.div({ class: "jss-stat-eyebrow" }, ...eyebrowNodes) : null,
|
|
599
|
+
labelNodes.length ? _.div({ class: "jss-stat-label" }, ...labelNodes) : null
|
|
600
600
|
)
|
|
601
601
|
),
|
|
602
|
-
asideNodes.length ? _.div({ class: "
|
|
602
|
+
asideNodes.length ? _.div({ class: "jss-stat-aside" }, ...asideNodes) : null
|
|
603
603
|
),
|
|
604
604
|
_.div(
|
|
605
|
-
{ class: "
|
|
606
|
-
valueNodes.length ? _.div({ class: "
|
|
605
|
+
{ class: "jss-stat-body" },
|
|
606
|
+
valueNodes.length ? _.div({ class: "jss-stat-value" }, ...valueNodes) : null,
|
|
607
607
|
deltaNodes.length
|
|
608
|
-
? _.div({ class: "
|
|
608
|
+
? _.div({ class: "jss-stat-delta" }, ...deltaNodes)
|
|
609
609
|
: null,
|
|
610
|
-
noteNodes.length ? _.div({ class: "
|
|
611
|
-
metaNodes.length ? _.div({ class: "
|
|
612
|
-
bodyNodes.length ? _.div({ class: "
|
|
610
|
+
noteNodes.length ? _.div({ class: "jss-stat-note" }, ...noteNodes) : null,
|
|
611
|
+
metaNodes.length ? _.div({ class: "jss-stat-meta" }, ...metaNodes) : null,
|
|
612
|
+
bodyNodes.length ? _.div({ class: "jss-stat-extra" }, ...bodyNodes) : null
|
|
613
613
|
),
|
|
614
614
|
(footerNodes.length || actionsNodes.length)
|
|
615
615
|
? _.div(
|
|
616
|
-
{ class: "
|
|
617
|
-
footerNodes.length ? _.div({ class: "
|
|
618
|
-
actionsNodes.length ? _.div({ class: "
|
|
616
|
+
{ class: "jss-stat-footer" },
|
|
617
|
+
footerNodes.length ? _.div({ class: "jss-stat-footer-copy" }, ...footerNodes) : null,
|
|
618
|
+
actionsNodes.length ? _.div({ class: "jss-stat-actions" }, ...actionsNodes) : null
|
|
619
619
|
)
|
|
620
620
|
: null
|
|
621
621
|
);
|
|
@@ -632,7 +632,7 @@
|
|
|
632
632
|
const resolveStateValue = () => normalizeState(uiUnwrap(rawProps.state) || uiUnwrap(rawProps.color) || "");
|
|
633
633
|
const stateClass = uiComputed([rawProps.state, rawProps.color], () => {
|
|
634
634
|
const state = resolveStateValue();
|
|
635
|
-
return state ? `
|
|
635
|
+
return state ? `jss-state-${state}` : "";
|
|
636
636
|
});
|
|
637
637
|
|
|
638
638
|
const props = { ...rawProps };
|
|
@@ -656,9 +656,9 @@
|
|
|
656
656
|
"value"
|
|
657
657
|
]);
|
|
658
658
|
p.class = uiClass([
|
|
659
|
-
"
|
|
660
|
-
"
|
|
661
|
-
"
|
|
659
|
+
"jss-clear-set",
|
|
660
|
+
"jss-kpi",
|
|
661
|
+
"jss-singularity",
|
|
662
662
|
stateClass,
|
|
663
663
|
props.class
|
|
664
664
|
]);
|
|
@@ -693,35 +693,35 @@
|
|
|
693
693
|
const kpi = _.section(
|
|
694
694
|
p,
|
|
695
695
|
_.div(
|
|
696
|
-
{ class: "
|
|
696
|
+
{ class: "jss-kpi-head" },
|
|
697
697
|
_.div(
|
|
698
|
-
{ class: "
|
|
699
|
-
iconNodes.length ? _.div({ class: "
|
|
698
|
+
{ class: "jss-kpi-title-wrap" },
|
|
699
|
+
iconNodes.length ? _.div({ class: "jss-kpi-icon" }, ...iconNodes) : null,
|
|
700
700
|
_.div(
|
|
701
|
-
{ class: "
|
|
702
|
-
eyebrowNodes.length ? _.div({ class: "
|
|
703
|
-
titleNodes.length ? _.div({ class: "
|
|
701
|
+
{ class: "jss-kpi-copy" },
|
|
702
|
+
eyebrowNodes.length ? _.div({ class: "jss-kpi-eyebrow" }, ...eyebrowNodes) : null,
|
|
703
|
+
titleNodes.length ? _.div({ class: "jss-kpi-title" }, ...titleNodes) : null
|
|
704
704
|
)
|
|
705
705
|
),
|
|
706
|
-
asideNodes.length ? _.div({ class: "
|
|
706
|
+
asideNodes.length ? _.div({ class: "jss-kpi-aside" }, ...asideNodes) : null
|
|
707
707
|
),
|
|
708
708
|
_.div(
|
|
709
|
-
{ class: "
|
|
709
|
+
{ class: "jss-kpi-core" },
|
|
710
710
|
_.div(
|
|
711
|
-
{ class: "
|
|
712
|
-
valueNodes.length ? _.div({ class: "
|
|
713
|
-
deltaNodes.length ? _.div({ class: "
|
|
711
|
+
{ class: "jss-kpi-value-wrap" },
|
|
712
|
+
valueNodes.length ? _.div({ class: "jss-kpi-value" }, ...valueNodes) : null,
|
|
713
|
+
deltaNodes.length ? _.div({ class: "jss-kpi-delta" }, ...deltaNodes) : null
|
|
714
714
|
),
|
|
715
|
-
noteNodes.length ? _.div({ class: "
|
|
716
|
-
metaNodes.length ? _.div({ class: "
|
|
717
|
-
mediaNodes.length ? _.div({ class: "
|
|
718
|
-
bodyNodes.length ? _.div({ class: "
|
|
715
|
+
noteNodes.length ? _.div({ class: "jss-kpi-note" }, ...noteNodes) : null,
|
|
716
|
+
metaNodes.length ? _.div({ class: "jss-kpi-meta" }, ...metaNodes) : null,
|
|
717
|
+
mediaNodes.length ? _.div({ class: "jss-kpi-media" }, ...mediaNodes) : null,
|
|
718
|
+
bodyNodes.length ? _.div({ class: "jss-kpi-extra" }, ...bodyNodes) : null
|
|
719
719
|
),
|
|
720
720
|
(footerNodes.length || actionsNodes.length)
|
|
721
721
|
? _.div(
|
|
722
|
-
{ class: "
|
|
723
|
-
footerNodes.length ? _.div({ class: "
|
|
724
|
-
actionsNodes.length ? _.div({ class: "
|
|
722
|
+
{ class: "jss-kpi-footer" },
|
|
723
|
+
footerNodes.length ? _.div({ class: "jss-kpi-footer-copy" }, ...footerNodes) : null,
|
|
724
|
+
actionsNodes.length ? _.div({ class: "jss-kpi-actions" }, ...actionsNodes) : null
|
|
725
725
|
)
|
|
726
726
|
: null
|
|
727
727
|
);
|
package/src/21-list-content.js
CHANGED
|
@@ -73,16 +73,16 @@
|
|
|
73
73
|
if (emptyNodes.length === 1 && isListItemNode(emptyNodes[0])) {
|
|
74
74
|
content.push(emptyNodes[0]);
|
|
75
75
|
} else {
|
|
76
|
-
content.push(UI.Item({ class: "
|
|
76
|
+
content.push(UI.Item({ class: "jss-item-empty", flat: true }, ...emptyNodes));
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
const cls = uiClass([
|
|
82
|
-
"
|
|
82
|
+
"jss-list",
|
|
83
83
|
uiWhen(props.dense, "dense"),
|
|
84
84
|
uiWhen(props.divider, "divider"),
|
|
85
|
-
uiWhen(marker === false || marker === "none", "
|
|
85
|
+
uiWhen(marker === false || marker === "none", "jss-list-no-marker"),
|
|
86
86
|
props.class
|
|
87
87
|
]);
|
|
88
88
|
const p = JSswift.omit(props, [
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
...(props.style || {})
|
|
95
95
|
};
|
|
96
96
|
const gap = uiStyleValue(props.gap, toCssSize);
|
|
97
|
-
if (gap != null) p.style["--
|
|
97
|
+
if (gap != null) p.style["--jss-list-gap"] = gap;
|
|
98
98
|
if (marker != null && marker !== false && marker !== true && marker !== "none") {
|
|
99
99
|
p.style.listStyleType = String(marker);
|
|
100
100
|
}
|
|
@@ -143,13 +143,13 @@
|
|
|
143
143
|
);
|
|
144
144
|
|
|
145
145
|
const cls = uiClass([
|
|
146
|
-
"
|
|
146
|
+
"jss-item",
|
|
147
147
|
uiWhen(props.divider, "divider"),
|
|
148
|
-
uiWhen(hasSurface, "
|
|
149
|
-
uiWhen(hasSurface, "
|
|
150
|
-
uiWhen(hasSurface, "
|
|
151
|
-
uiWhen(isInline, "
|
|
152
|
-
uiWhen(interactive, "
|
|
148
|
+
uiWhen(hasSurface, "jss-clear-set"),
|
|
149
|
+
uiWhen(hasSurface, "jss-singularity"),
|
|
150
|
+
uiWhen(hasSurface, "jss-item-surface"),
|
|
151
|
+
uiWhen(isInline, "jss-item-inline"),
|
|
152
|
+
uiWhen(interactive, "jss-item-clickable"),
|
|
153
153
|
uiWhen(active, "is-active"),
|
|
154
154
|
uiWhen(props.disabled, "is-disabled"),
|
|
155
155
|
props.class
|
|
@@ -195,28 +195,28 @@
|
|
|
195
195
|
if (p.role == null) p.role = "button";
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
-
const titleSection = titleNodes.length ? _.div({ class: "
|
|
199
|
-
const subtitleSection = subtitleNodes.length ? _.div({ class: "
|
|
200
|
-
const metaSection = metaNodes.length ? _.div({ class: "
|
|
198
|
+
const titleSection = titleNodes.length ? _.div({ class: "jss-item-title" }, ...titleNodes) : null;
|
|
199
|
+
const subtitleSection = subtitleNodes.length ? _.div({ class: "jss-item-subtitle" }, ...subtitleNodes) : null;
|
|
200
|
+
const metaSection = metaNodes.length ? _.div({ class: "jss-item-meta" }, ...metaNodes) : null;
|
|
201
201
|
const bodySection = mergedBodyNodes.length
|
|
202
|
-
? _.div({ class: uiClass(["
|
|
202
|
+
? _.div({ class: uiClass(["jss-item-body", uiWhen(!(titleNodes.length || subtitleNodes.length || metaNodes.length), "is-standalone")]) }, ...mergedBodyNodes)
|
|
203
203
|
: null;
|
|
204
|
-
const actionsSection = actionsNodes.length ? _.div({ class: "
|
|
204
|
+
const actionsSection = actionsNodes.length ? _.div({ class: "jss-item-actions" }, ...actionsNodes) : null;
|
|
205
205
|
|
|
206
206
|
const item = _.li(
|
|
207
207
|
p,
|
|
208
208
|
_.div(
|
|
209
|
-
{ class: "
|
|
210
|
-
iconNodes.length ? _.div({ class: "
|
|
209
|
+
{ class: "jss-item-row" },
|
|
210
|
+
iconNodes.length ? _.div({ class: "jss-item-icon" }, ...iconNodes) : null,
|
|
211
211
|
_.div(
|
|
212
|
-
{ class: "
|
|
212
|
+
{ class: "jss-item-main" },
|
|
213
213
|
metaSection,
|
|
214
214
|
titleSection,
|
|
215
215
|
subtitleSection,
|
|
216
216
|
bodySection,
|
|
217
217
|
actionsSection
|
|
218
218
|
),
|
|
219
|
-
asideNodes.length ? _.div({ class: "
|
|
219
|
+
asideNodes.length ? _.div({ class: "jss-item-aside" }, ...asideNodes) : null
|
|
220
220
|
)
|
|
221
221
|
);
|
|
222
222
|
setPropertyProps(item, props);
|
|
@@ -227,10 +227,10 @@
|
|
|
227
227
|
|
|
228
228
|
UI.Separator = (...args) => {
|
|
229
229
|
const { props } = JSswift.uiNormalizeArgs(args);
|
|
230
|
-
const cls = uiClass(["
|
|
230
|
+
const cls = uiClass(["jss-separator", uiWhen(props.vertical, "vertical"), props.class]);
|
|
231
231
|
const p = JSswift.omit(props, ["vertical", "size", "slots"]);
|
|
232
232
|
p.class = cls;
|
|
233
|
-
const style = { borderColor: "var(--
|
|
233
|
+
const style = { borderColor: "var(--jss-border)", ...(props.style || {}) };
|
|
234
234
|
const sizeValue = uiUnwrap(props.size);
|
|
235
235
|
const vertical = uiUnwrap(props.vertical);
|
|
236
236
|
if (sizeValue != null) {
|