@konomi-app/ui 5.8.1 → 5.10.4
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/index.cjs +188 -42
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +188 -42
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -703,6 +703,7 @@ updateItemStatus_fn = function(key, itemKey, status) {
|
|
|
703
703
|
var import_lit2 = require("lit");
|
|
704
704
|
var import_decorators = require("lit/decorators.js");
|
|
705
705
|
var import_keyed = require("lit/directives/keyed.js");
|
|
706
|
+
var import_repeat = require("lit/directives/repeat.js");
|
|
706
707
|
var import_unsafe_html = require("lit/directives/unsafe-html.js");
|
|
707
708
|
|
|
708
709
|
// src/styles.ts
|
|
@@ -714,8 +715,8 @@ var overlayStyles = import_lit.css`
|
|
|
714
715
|
'Yu Gothic Medium', '游ゴシック', YuGothic, 'メイリオ', 'Hiragino Kaku Gothic ProN', Meiryo,
|
|
715
716
|
sans-serif;
|
|
716
717
|
--dialog-text-color: #356;
|
|
717
|
-
--dialog-font-size:
|
|
718
|
-
--dialog-font-size-desktop:
|
|
718
|
+
--dialog-font-size: 15px;
|
|
719
|
+
--dialog-font-size-desktop: 17px;
|
|
719
720
|
--dialog-z-index: 1000;
|
|
720
721
|
--dialog-backdrop-color: rgb(255 255 255 / 0.73);
|
|
721
722
|
--dialog-backdrop-blur: 4px;
|
|
@@ -727,6 +728,7 @@ var overlayStyles = import_lit.css`
|
|
|
727
728
|
--dialog-card-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
|
|
728
729
|
--dialog-card-radius: 4px;
|
|
729
730
|
--dialog-card-width: 400px;
|
|
731
|
+
--dialog-alert-width: 480px;
|
|
730
732
|
--dialog-card-min-height: 200px;
|
|
731
733
|
--dialog-card-padding: 24px;
|
|
732
734
|
--dialog-card-padding-desktop: 32px;
|
|
@@ -747,7 +749,7 @@ var overlayStyles = import_lit.css`
|
|
|
747
749
|
/* Button */
|
|
748
750
|
--dialog-btn-radius: 6px;
|
|
749
751
|
--dialog-btn-padding: 8px 24px;
|
|
750
|
-
--dialog-btn-font-size:
|
|
752
|
+
--dialog-btn-font-size: 15px;
|
|
751
753
|
|
|
752
754
|
/* Spinner */
|
|
753
755
|
--dialog-spinner-size: 60px;
|
|
@@ -760,14 +762,14 @@ var overlayStyles = import_lit.css`
|
|
|
760
762
|
--dialog-form-gap: 16px;
|
|
761
763
|
--dialog-form-columns: 1;
|
|
762
764
|
--dialog-form-label-color: #374151;
|
|
763
|
-
--dialog-form-label-size:
|
|
765
|
+
--dialog-form-label-size: 14px;
|
|
764
766
|
--dialog-form-label-weight: 500;
|
|
765
767
|
--dialog-form-input-bg: #fff;
|
|
766
768
|
--dialog-form-input-border: #d1d5db;
|
|
767
769
|
--dialog-form-input-border-focus: var(--dialog-primary);
|
|
768
770
|
--dialog-form-input-radius: 6px;
|
|
769
771
|
--dialog-form-input-padding: 8px 12px;
|
|
770
|
-
--dialog-form-input-font-size:
|
|
772
|
+
--dialog-form-input-font-size: 15px;
|
|
771
773
|
--dialog-form-error-color: var(--dialog-error);
|
|
772
774
|
--dialog-form-hint-color: #9ca3af;
|
|
773
775
|
--dialog-form-required-color: var(--dialog-error);
|
|
@@ -835,9 +837,27 @@ var overlayStyles = import_lit.css`
|
|
|
835
837
|
max-width: 90vw;
|
|
836
838
|
border-radius: var(--dialog-card-radius);
|
|
837
839
|
padding: var(--dialog-card-padding-desktop);
|
|
840
|
+
transition: width 360ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
838
841
|
}
|
|
839
842
|
}
|
|
840
843
|
|
|
844
|
+
/* ─── Alert / Confirm specific sizing ─── */
|
|
845
|
+
|
|
846
|
+
@media (min-width: 640px) {
|
|
847
|
+
.card[data-type='alert'],
|
|
848
|
+
.card[data-type='confirm'] {
|
|
849
|
+
width: var(--dialog-alert-width);
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
.card[data-type='alert'] .label,
|
|
854
|
+
.card[data-type='confirm'] .label {
|
|
855
|
+
font-size: 22px;
|
|
856
|
+
font-weight: 700;
|
|
857
|
+
color: #0f172a;
|
|
858
|
+
letter-spacing: -0.01em;
|
|
859
|
+
}
|
|
860
|
+
|
|
841
861
|
/* ─── Card Open / Close Animations ─── */
|
|
842
862
|
|
|
843
863
|
@keyframes card-enter {
|
|
@@ -1060,9 +1080,9 @@ var overlayStyles = import_lit.css`
|
|
|
1060
1080
|
/* ─── Text ─── */
|
|
1061
1081
|
|
|
1062
1082
|
.dialog-title {
|
|
1063
|
-
font-size:
|
|
1083
|
+
font-size: 20px;
|
|
1064
1084
|
font-weight: 600;
|
|
1065
|
-
color: #
|
|
1085
|
+
color: #1f2937;
|
|
1066
1086
|
text-align: center;
|
|
1067
1087
|
margin: 0 0 16px;
|
|
1068
1088
|
word-break: break-word;
|
|
@@ -1072,29 +1092,29 @@ var overlayStyles = import_lit.css`
|
|
|
1072
1092
|
}
|
|
1073
1093
|
|
|
1074
1094
|
.label {
|
|
1075
|
-
font-size:
|
|
1076
|
-
font-weight:
|
|
1077
|
-
color: #
|
|
1095
|
+
font-size: 17px;
|
|
1096
|
+
font-weight: 500;
|
|
1097
|
+
color: #111827;
|
|
1078
1098
|
text-align: center;
|
|
1079
1099
|
margin: 0;
|
|
1080
1100
|
word-break: break-word;
|
|
1081
1101
|
}
|
|
1082
1102
|
|
|
1083
1103
|
.description {
|
|
1084
|
-
font-size:
|
|
1085
|
-
color: #
|
|
1104
|
+
font-size: 15px;
|
|
1105
|
+
color: #4b5563;
|
|
1086
1106
|
text-align: center;
|
|
1087
1107
|
margin: 0;
|
|
1088
1108
|
word-break: break-word;
|
|
1089
|
-
line-height: 1.
|
|
1109
|
+
line-height: 1.65;
|
|
1090
1110
|
}
|
|
1091
1111
|
|
|
1092
1112
|
.html-content {
|
|
1093
|
-
font-size:
|
|
1094
|
-
color: #
|
|
1113
|
+
font-size: 15px;
|
|
1114
|
+
color: #4b5563;
|
|
1095
1115
|
text-align: center;
|
|
1096
1116
|
word-break: break-word;
|
|
1097
|
-
line-height: 1.
|
|
1117
|
+
line-height: 1.65;
|
|
1098
1118
|
width: 100%;
|
|
1099
1119
|
}
|
|
1100
1120
|
|
|
@@ -1194,10 +1214,31 @@ var overlayStyles = import_lit.css`
|
|
|
1194
1214
|
display: flex;
|
|
1195
1215
|
align-items: center;
|
|
1196
1216
|
gap: 12px;
|
|
1197
|
-
font-size:
|
|
1217
|
+
font-size: 15px;
|
|
1218
|
+
border-radius: 6px;
|
|
1219
|
+
transition: background 200ms ease;
|
|
1198
1220
|
animation: task-item-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
1199
1221
|
}
|
|
1200
1222
|
|
|
1223
|
+
.task-item[data-status='active'] {
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1226
|
+
@keyframes task-item-enter-below {
|
|
1227
|
+
from {
|
|
1228
|
+
opacity: 0;
|
|
1229
|
+
transform: translateY(8px);
|
|
1230
|
+
}
|
|
1231
|
+
to {
|
|
1232
|
+
opacity: 1;
|
|
1233
|
+
transform: translateY(0);
|
|
1234
|
+
}
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1237
|
+
/* Queue items slide in from below (steps keep the left-slide default) */
|
|
1238
|
+
.task-item[data-status] {
|
|
1239
|
+
animation-name: task-item-enter-below;
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1201
1242
|
.task-item:nth-child(1) {
|
|
1202
1243
|
animation-delay: 40ms;
|
|
1203
1244
|
}
|
|
@@ -1268,6 +1309,23 @@ var overlayStyles = import_lit.css`
|
|
|
1268
1309
|
box-shadow: inset 0 0 0 1px var(--dialog-spinner-arc);
|
|
1269
1310
|
}
|
|
1270
1311
|
|
|
1312
|
+
@keyframes task-icon-pop {
|
|
1313
|
+
from {
|
|
1314
|
+
transform: scale(0.4);
|
|
1315
|
+
opacity: 0;
|
|
1316
|
+
}
|
|
1317
|
+
to {
|
|
1318
|
+
transform: scale(1);
|
|
1319
|
+
opacity: 1;
|
|
1320
|
+
}
|
|
1321
|
+
}
|
|
1322
|
+
|
|
1323
|
+
.task-item[data-status='done'] .task-icon svg,
|
|
1324
|
+
.task-item[data-status='error'] .task-icon svg,
|
|
1325
|
+
.task-item[data-status='skipped'] .task-icon svg {
|
|
1326
|
+
animation: task-icon-pop 400ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1271
1329
|
.task-label {
|
|
1272
1330
|
color: #6b7280;
|
|
1273
1331
|
transition: color 250ms ease;
|
|
@@ -1303,21 +1361,80 @@ var overlayStyles = import_lit.css`
|
|
|
1303
1361
|
color: #9ca3af;
|
|
1304
1362
|
}
|
|
1305
1363
|
|
|
1364
|
+
/* ─── Queue layout & progress ─── */
|
|
1365
|
+
|
|
1366
|
+
.queue-layout {
|
|
1367
|
+
display: flex;
|
|
1368
|
+
align-items: stretch;
|
|
1369
|
+
gap: 10px;
|
|
1370
|
+
width: 100%;
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1373
|
+
.queue-layout .task-list {
|
|
1374
|
+
flex: 1;
|
|
1375
|
+
}
|
|
1376
|
+
|
|
1377
|
+
.queue-progress-v {
|
|
1378
|
+
display: flex;
|
|
1379
|
+
flex-direction: column;
|
|
1380
|
+
align-items: center;
|
|
1381
|
+
flex-shrink: 0;
|
|
1382
|
+
width: 14px;
|
|
1383
|
+
animation: task-item-enter 300ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
1384
|
+
}
|
|
1385
|
+
|
|
1386
|
+
.queue-progress-track-v {
|
|
1387
|
+
flex: 1;
|
|
1388
|
+
width: 2px;
|
|
1389
|
+
background: rgba(156, 163, 175, 0.2);
|
|
1390
|
+
border-radius: 1px;
|
|
1391
|
+
position: relative;
|
|
1392
|
+
overflow: hidden;
|
|
1393
|
+
}
|
|
1394
|
+
|
|
1395
|
+
.queue-progress-fill-v {
|
|
1396
|
+
position: absolute;
|
|
1397
|
+
top: 0;
|
|
1398
|
+
left: 0;
|
|
1399
|
+
right: 0;
|
|
1400
|
+
background: var(--dialog-accent, #3b82f6);
|
|
1401
|
+
border-radius: 1px;
|
|
1402
|
+
transition: height 600ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
1403
|
+
}
|
|
1404
|
+
|
|
1405
|
+
.queue-progress-count-v {
|
|
1406
|
+
font-size: 10px;
|
|
1407
|
+
font-weight: 500;
|
|
1408
|
+
color: #9ca3af;
|
|
1409
|
+
margin-top: 5px;
|
|
1410
|
+
writing-mode: vertical-rl;
|
|
1411
|
+
letter-spacing: 0.04em;
|
|
1412
|
+
font-variant-numeric: tabular-nums;
|
|
1413
|
+
line-height: 1;
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1306
1416
|
/* ─── Queue ellipsis ─── */
|
|
1307
1417
|
|
|
1308
1418
|
.queue-ellipsis {
|
|
1419
|
+
display: flex;
|
|
1420
|
+
flex-direction: row;
|
|
1421
|
+
align-items: center;
|
|
1422
|
+
gap: 8px;
|
|
1423
|
+
list-style: none;
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
.queue-ellipsis-dots {
|
|
1309
1427
|
display: flex;
|
|
1310
1428
|
flex-direction: column;
|
|
1311
1429
|
align-items: center;
|
|
1430
|
+
justify-content: center;
|
|
1312
1431
|
gap: 3px;
|
|
1432
|
+
width: 24px;
|
|
1313
1433
|
padding: 4px 0;
|
|
1314
|
-
|
|
1315
|
-
padding-left: 10px;
|
|
1316
|
-
align-self: flex-start;
|
|
1317
|
-
list-style: none;
|
|
1434
|
+
flex-shrink: 0;
|
|
1318
1435
|
}
|
|
1319
1436
|
|
|
1320
|
-
.queue-ellipsis span {
|
|
1437
|
+
.queue-ellipsis-dots span {
|
|
1321
1438
|
display: block;
|
|
1322
1439
|
width: 4px;
|
|
1323
1440
|
height: 4px;
|
|
@@ -1325,6 +1442,16 @@ var overlayStyles = import_lit.css`
|
|
|
1325
1442
|
background-color: #d1d5db;
|
|
1326
1443
|
}
|
|
1327
1444
|
|
|
1445
|
+
.queue-ellipsis-badge {
|
|
1446
|
+
font-size: 11px;
|
|
1447
|
+
font-weight: 500;
|
|
1448
|
+
color: #9ca3af;
|
|
1449
|
+
background: rgba(156, 163, 175, 0.12);
|
|
1450
|
+
border-radius: 10px;
|
|
1451
|
+
padding: 2px 7px;
|
|
1452
|
+
letter-spacing: 0.01em;
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1328
1455
|
/* ─── Steps indicator ─── */
|
|
1329
1456
|
|
|
1330
1457
|
.steps-header {
|
|
@@ -1490,13 +1617,13 @@ var overlayStyles = import_lit.css`
|
|
|
1490
1617
|
}
|
|
1491
1618
|
|
|
1492
1619
|
.form-error {
|
|
1493
|
-
font-size:
|
|
1620
|
+
font-size: 13px;
|
|
1494
1621
|
color: var(--dialog-form-error-color);
|
|
1495
1622
|
min-height: 1em;
|
|
1496
1623
|
}
|
|
1497
1624
|
|
|
1498
1625
|
.form-hint {
|
|
1499
|
-
font-size:
|
|
1626
|
+
font-size: 13px;
|
|
1500
1627
|
color: var(--dialog-form-hint-color);
|
|
1501
1628
|
}
|
|
1502
1629
|
|
|
@@ -1548,7 +1675,7 @@ var overlayStyles = import_lit.css`
|
|
|
1548
1675
|
}
|
|
1549
1676
|
|
|
1550
1677
|
.step-form-counter {
|
|
1551
|
-
font-size:
|
|
1678
|
+
font-size: 13px;
|
|
1552
1679
|
color: var(--dialog-form-hint-color);
|
|
1553
1680
|
text-align: center;
|
|
1554
1681
|
margin: 0 0 4px;
|
|
@@ -1581,7 +1708,9 @@ var overlayStyles = import_lit.css`
|
|
|
1581
1708
|
border: 1px solid var(--dialog-form-input-border);
|
|
1582
1709
|
background: transparent;
|
|
1583
1710
|
color: var(--dialog-text-color);
|
|
1584
|
-
transition:
|
|
1711
|
+
transition:
|
|
1712
|
+
background-color 120ms ease,
|
|
1713
|
+
border-color 120ms ease;
|
|
1585
1714
|
}
|
|
1586
1715
|
|
|
1587
1716
|
.btn-prev:hover {
|
|
@@ -1828,23 +1957,40 @@ var OverlayDialog = class extends import_lit2.LitElement {
|
|
|
1828
1957
|
const total = items.length;
|
|
1829
1958
|
const { start, end } = this._getQueueWindow(items);
|
|
1830
1959
|
const visible = items.slice(start, end + 1);
|
|
1960
|
+
const finishedStatuses = /* @__PURE__ */ new Set(["done", "skipped", "error"]);
|
|
1961
|
+
const doneCount = items.filter((i) => finishedStatuses.has(i.status)).length;
|
|
1962
|
+
const pct = total > 0 ? Math.round(doneCount / total * 100) : 0;
|
|
1963
|
+
const topHidden = start;
|
|
1964
|
+
const bottomHidden = total - 1 - end;
|
|
1831
1965
|
return import_lit2.html`
|
|
1832
|
-
<
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1966
|
+
<div class="queue-layout">
|
|
1967
|
+
<div class="queue-progress-v">
|
|
1968
|
+
<div class="queue-progress-track-v">
|
|
1969
|
+
<div class="queue-progress-fill-v" style="height: ${pct}%"></div>
|
|
1970
|
+
</div>
|
|
1971
|
+
<span class="queue-progress-count-v">${doneCount}/${total}</span>
|
|
1972
|
+
</div>
|
|
1973
|
+
<ul class="task-list">
|
|
1974
|
+
${topHidden > 0 ? import_lit2.html`<li class="queue-ellipsis" aria-hidden="true">
|
|
1975
|
+
<div class="queue-ellipsis-dots"><span></span><span></span><span></span></div>
|
|
1976
|
+
<span class="queue-ellipsis-badge">+${topHidden}</span>
|
|
1977
|
+
</li>` : import_lit2.nothing}
|
|
1978
|
+
${(0, import_repeat.repeat)(
|
|
1979
|
+
visible,
|
|
1980
|
+
(item) => item.key,
|
|
1837
1981
|
(item) => import_lit2.html`
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1982
|
+
<li class="task-item" data-status=${item.status}>
|
|
1983
|
+
<span class="task-icon">${this._renderTaskIcon(item.status)}</span>
|
|
1984
|
+
<span class="task-label" data-status=${item.status}>${item.label}</span>
|
|
1985
|
+
</li>
|
|
1986
|
+
`
|
|
1843
1987
|
)}
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1988
|
+
${bottomHidden > 0 ? import_lit2.html`<li class="queue-ellipsis" aria-hidden="true">
|
|
1989
|
+
<div class="queue-ellipsis-dots"><span></span><span></span><span></span></div>
|
|
1990
|
+
<span class="queue-ellipsis-badge">+${bottomHidden}</span>
|
|
1991
|
+
</li>` : import_lit2.nothing}
|
|
1992
|
+
</ul>
|
|
1993
|
+
</div>
|
|
1848
1994
|
`;
|
|
1849
1995
|
}
|
|
1850
1996
|
_renderStepsHeader(items) {
|
|
@@ -2546,7 +2692,7 @@ enforceMaxVisible_fn = function() {
|
|
|
2546
2692
|
// src/toast/toast-container.ts
|
|
2547
2693
|
var import_lit4 = require("lit");
|
|
2548
2694
|
var import_decorators2 = require("lit/decorators.js");
|
|
2549
|
-
var
|
|
2695
|
+
var import_repeat2 = require("lit/directives/repeat.js");
|
|
2550
2696
|
|
|
2551
2697
|
// src/toast/styles.ts
|
|
2552
2698
|
var import_lit3 = require("lit");
|
|
@@ -3184,7 +3330,7 @@ var ToastContainer = class extends import_lit4.LitElement {
|
|
|
3184
3330
|
const s = this._state;
|
|
3185
3331
|
return import_lit4.html`
|
|
3186
3332
|
<div class="container" data-position=${s.position} role="region" aria-label="通知">
|
|
3187
|
-
${(0,
|
|
3333
|
+
${(0, import_repeat2.repeat)(
|
|
3188
3334
|
s.items,
|
|
3189
3335
|
(item) => item.id,
|
|
3190
3336
|
(item) => this._renderToast(item)
|