@godxjp/ui 7.0.0 → 8.1.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/app/index.d.ts +2 -2
- package/dist/{app.prop-IobwLwaM.d.ts → app.prop-DnIXFzLi.d.ts} +9 -9
- package/dist/{checkbox-CK2mYEpD.d.ts → checkbox-ChRsR7Nk.d.ts} +2 -2
- package/dist/{chunk-3UGU5TYP.js → chunk-25RYBC5T.js} +2 -2
- package/dist/{chunk-CQBADMFG.js → chunk-26CPAKUP.js} +3 -2
- package/dist/{chunk-TT2L7JM6.js → chunk-3TS3G4U3.js} +3 -3
- package/dist/{chunk-ZS6DTAM2.js → chunk-4MMIMZMK.js} +1 -1
- package/dist/{chunk-6TSU4IHV.js → chunk-4R7RQDXI.js} +23 -21
- package/dist/{chunk-OXKY5QMK.js → chunk-6QXQQAOQ.js} +6 -6
- package/dist/{chunk-JJCGMCTL.js → chunk-A22MCA3X.js} +6 -6
- package/dist/{chunk-VXXKR5U4.js → chunk-A7PKMT7Y.js} +4 -4
- package/dist/{chunk-HKQITNB3.js → chunk-AINW5WYN.js} +5 -4
- package/dist/{chunk-OGFWIXRO.js → chunk-C5H655GK.js} +218 -53
- package/dist/{chunk-ZLK5SPT6.js → chunk-EOTOCNT7.js} +1 -1
- package/dist/{chunk-ARDVPIF4.js → chunk-G2WYOCDL.js} +5 -5
- package/dist/{chunk-V6UWJKZF.js → chunk-HTEL5DQI.js} +1 -1
- package/dist/{chunk-ICM6XBST.js → chunk-IBK5D2Q6.js} +2 -1
- package/dist/{chunk-IK7I3ABN.js → chunk-IOGU3ZWF.js} +2 -2
- package/dist/chunk-KKMQLQ7F.js +137 -0
- package/dist/{chunk-HJEBRCXL.js → chunk-M4PZNAMV.js} +1 -0
- package/dist/{chunk-2QG3OVAD.js → chunk-N43OKOFT.js} +7 -5
- package/dist/{chunk-ZR2TIBPG.js → chunk-NG23LVTM.js} +4 -4
- package/dist/{chunk-E76QIYSY.js → chunk-O24Z3ULJ.js} +4 -4
- package/dist/{chunk-L6J44O74.js → chunk-OJZ6C2HM.js} +2 -2
- package/dist/{chunk-2HLWHQJA.js → chunk-P4HFJQID.js} +5 -4
- package/dist/{chunk-EXBWDW5E.js → chunk-RGIYKJPW.js} +7 -7
- package/dist/{chunk-ZKIAZDVU.js → chunk-RGPF3HU6.js} +4 -4
- package/dist/{chunk-FBHN6OO4.js → chunk-SKIRU7GC.js} +2 -2
- package/dist/{chunk-NTUHJ37K.js → chunk-SMWKD2HG.js} +9 -9
- package/dist/chunk-TILFZBTE.js +50 -0
- package/dist/{chunk-6UFKWOEW.js → chunk-TMDGV4CN.js} +15 -11
- package/dist/{chunk-7AMHT5Z5.js → chunk-UIYEAUWA.js} +30 -13
- package/dist/chunk-WFUIE252.js +61 -0
- package/dist/{chunk-25ZZ2W3M.js → chunk-WN52SCGE.js} +5 -5
- package/dist/{chunk-EQRQM6RF.js → chunk-WTVLZVBA.js} +28 -8
- package/dist/{chunk-Y3XBNUTD.js → chunk-XDUZ7JJL.js} +2 -2
- package/dist/{chunk-RVY4F7LK.js → chunk-XZM2GNAY.js} +7 -7
- package/dist/components/admin/index.d.ts +19 -19
- package/dist/components/admin/index.js +30 -30
- package/dist/components/data-display/badge.d.ts +7 -4
- package/dist/components/data-display/badge.js +2 -2
- package/dist/components/data-display/card.d.ts +2 -2
- package/dist/components/data-display/index.d.ts +18 -7
- package/dist/components/data-display/index.js +65 -12
- package/dist/components/data-display/table.js +2 -2
- package/dist/components/data-entry/autocomplete.d.ts +5 -5
- package/dist/components/data-entry/autocomplete.js +6 -6
- package/dist/components/data-entry/calendar.d.ts +5 -5
- package/dist/components/data-entry/calendar.js +3 -3
- package/dist/components/data-entry/cascader.d.ts +6 -6
- package/dist/components/data-entry/cascader.js +7 -7
- package/dist/components/data-entry/checkbox.d.ts +6 -6
- package/dist/components/data-entry/checkbox.js +2 -2
- package/dist/components/data-entry/color-picker.d.ts +6 -6
- package/dist/components/data-entry/color-picker.js +2 -2
- package/dist/components/data-entry/command.d.ts +11 -11
- package/dist/components/data-entry/command.js +2 -2
- package/dist/components/data-entry/date-picker.d.ts +6 -6
- package/dist/components/data-entry/date-picker.js +5 -5
- package/dist/components/data-entry/date-range-picker.d.ts +6 -6
- package/dist/components/data-entry/date-range-picker.js +5 -5
- package/dist/components/data-entry/index.d.ts +50 -22
- package/dist/components/data-entry/index.js +25 -83
- package/dist/components/data-entry/radio.d.ts +5 -5
- package/dist/components/data-entry/radio.js +2 -2
- package/dist/components/data-entry/select.d.ts +5 -5
- package/dist/components/data-entry/select.js +6 -6
- package/dist/components/data-entry/slider.d.ts +5 -5
- package/dist/components/data-entry/switch.d.ts +5 -5
- package/dist/components/data-entry/textarea.js +2 -2
- package/dist/components/data-entry/time-picker.d.ts +6 -6
- package/dist/components/data-entry/time-picker.js +3 -3
- package/dist/components/data-entry/transfer.d.ts +7 -7
- package/dist/components/data-entry/transfer.js +4 -4
- package/dist/components/data-entry/tree-select.d.ts +6 -6
- package/dist/components/data-entry/tree-select.js +7 -7
- package/dist/components/data-entry/upload.d.ts +7 -7
- package/dist/components/data-entry/upload.js +5 -5
- package/dist/components/feedback/alert.d.ts +7 -5
- package/dist/components/feedback/alert.js +3 -3
- package/dist/components/feedback/dialog.d.ts +9 -6
- package/dist/components/feedback/dialog.js +2 -2
- package/dist/components/feedback/index.d.ts +24 -8
- package/dist/components/feedback/index.js +7 -6
- package/dist/components/general/button.d.ts +4 -4
- package/dist/components/general/button.js +1 -1
- package/dist/components/general/index.d.ts +3 -3
- package/dist/components/general/index.js +1 -1
- package/dist/components/layout/index.d.ts +10 -9
- package/dist/components/layout/index.js +3 -3
- package/dist/components/navigation/index.d.ts +13 -13
- package/dist/components/navigation/index.js +9 -9
- package/dist/components/navigation/pagination.d.ts +5 -5
- package/dist/components/navigation/pagination.js +7 -7
- package/dist/components/navigation/steps.d.ts +6 -6
- package/dist/components/navigation/steps.js +2 -2
- package/dist/components/query/index.d.ts +12 -7
- package/dist/components/query/index.js +4 -4
- package/dist/components/ui/index.d.ts +12 -12
- package/dist/components/ui/index.js +30 -30
- package/dist/{data-display.prop-CXP9Jfdn.d.ts → data-display.prop-Cf2p9QC4.d.ts} +6 -5
- package/dist/{data-entry.prop-CpSx5dX6.d.ts → data-entry.prop-CDkOajPj.d.ts} +38 -28
- package/dist/{data-table-C5lcmAwE.d.ts → data-table-B_q7j992.d.ts} +4 -4
- package/dist/{data.prop-BmLaGLb7.d.ts → data.prop-DMYMNl6L.d.ts} +2 -2
- package/dist/{feedback.prop-BnBpUzNK.d.ts → feedback.prop-BR5JOpPl.d.ts} +8 -5
- package/dist/filter-bar-DvVXm_d1.d.ts +14 -0
- package/dist/form/index.d.ts +3 -3
- package/dist/{form.prop-BHgpuFFm.d.ts → form.prop-Bc6r6JJW.d.ts} +1 -1
- package/dist/{general.prop-D7brMPNL.d.ts → general.prop-DoHDCRmL.d.ts} +2 -2
- package/dist/index.d.ts +22 -22
- package/dist/index.js +43 -30
- package/dist/inline-DqfYlGKj.d.ts +18 -0
- package/dist/{interaction.prop-Cdn7wOtq.d.ts → interaction.prop-DSFizzP6.d.ts} +8 -6
- package/dist/{layout.prop-MwHm4-Zl.d.ts → layout.prop-Baq9muDN.d.ts} +27 -13
- package/dist/layout.prop-CXvl2rVR.d.ts +16 -0
- package/dist/{navigation.prop-DAH4ysXj.d.ts → navigation.prop-8DgElO0c.d.ts} +12 -8
- package/dist/{navigation.prop-Hu7s7MJa.d.ts → navigation.prop-BKlxd-j7.d.ts} +2 -5
- package/dist/props/components/index.d.ts +14 -14
- package/dist/props/index.d.ts +14 -14
- package/dist/props/index.js +1 -1
- package/dist/props/registry.d.ts +251 -56
- package/dist/props/registry.js +1 -1
- package/dist/props/vocabulary/index.d.ts +5 -5
- package/dist/{query.prop-hIPrk2zI.d.ts → query.prop-DuODxsiU.d.ts} +12 -8
- package/dist/{search-input-rR2XDrjv.d.ts → search-input-cezAxpgb.d.ts} +7 -2
- package/dist/{shared.prop-BNRJc9K0.d.ts → shared.prop-BsNSXeqD.d.ts} +9 -3
- package/dist/{skeleton-CqFO4dRc.d.ts → skeleton-uWAjSacg.d.ts} +4 -2
- package/dist/styles/alert-layout.css +38 -18
- package/dist/styles/badge-layout.css +2 -2
- package/dist/styles/card-layout.css +5 -5
- package/dist/styles/control.css +31 -0
- package/dist/styles/data-display-layout.css +25 -0
- package/dist/styles/density.css +10 -10
- package/dist/styles/dialog-layout.css +4 -4
- package/dist/styles/feedback-layout.css +17 -0
- package/dist/styles/index.css +6 -9
- package/dist/styles/layout.css +95 -14
- package/dist/styles/table-layout.css +3 -3
- package/dist/theme/example.service.css +0 -5
- package/dist/tokens/base.css +7 -7
- package/dist/tokens/components/badge.css +7 -0
- package/dist/tokens/{primitives → components}/card.css +2 -3
- package/dist/tokens/{primitives → components}/control.css +10 -0
- package/dist/tokens/components/feedback.css +17 -0
- package/dist/tokens/{primitives → components}/table.css +2 -2
- package/dist/tokens/foundation.css +7 -22
- package/package.json +10 -4
- package/scripts/ui-audit.mjs +22 -0
- package/dist/chunk-S66TJXJU.js +0 -33
- package/dist/filter-bar-zSKz7YCR.d.ts +0 -10
- package/dist/inline-CV3A46np.d.ts +0 -10
- package/dist/layout.prop-4TCNvyQZ.d.ts +0 -20
- package/dist/tokens/primitives/badge.css +0 -13
- package/dist/tokens/primitives/feedback.css +0 -17
- /package/dist/{chunk-LDSLS6HE.js → chunk-HKD6ERY7.js} +0 -0
- /package/dist/tokens/{primitives → components}/navigation.css +0 -0
- /package/dist/tokens/{primitives → semantic}/layout.css +0 -0
package/dist/styles/layout.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* LAYOUT —
|
|
3
|
-
* Apps: <
|
|
2
|
+
* LAYOUT — Flex / Page shell / EmptyState.
|
|
3
|
+
* Apps: <Flex gap> · <PageContainer> — never ui-flex-* or Tailwind gap-*.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
@layer components {
|
|
@@ -23,26 +23,102 @@
|
|
|
23
23
|
overflow: hidden;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
.ui-flex,
|
|
26
27
|
.ui-stack-xs {
|
|
27
28
|
display: flex;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.ui-flex[data-direction="row"] {
|
|
32
|
+
flex-direction: row;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.ui-flex[data-direction="col"] {
|
|
28
36
|
flex-direction: column;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.ui-flex[data-wrap="true"] {
|
|
40
|
+
flex-wrap: wrap;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.ui-flex[data-align="start"] {
|
|
44
|
+
align-items: flex-start;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.ui-flex[data-align="center"] {
|
|
48
|
+
align-items: center;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.ui-flex[data-align="end"] {
|
|
52
|
+
align-items: flex-end;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.ui-flex[data-align="stretch"] {
|
|
56
|
+
align-items: stretch;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.ui-flex[data-align="baseline"] {
|
|
60
|
+
align-items: baseline;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.ui-flex[data-justify="start"] {
|
|
64
|
+
justify-content: flex-start;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.ui-flex[data-justify="center"] {
|
|
68
|
+
justify-content: center;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.ui-flex[data-justify="end"] {
|
|
72
|
+
justify-content: flex-end;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.ui-flex[data-justify="between"] {
|
|
76
|
+
justify-content: space-between;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.ui-flex[data-justify="around"] {
|
|
80
|
+
justify-content: space-around;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.ui-flex[data-justify="evenly"] {
|
|
84
|
+
justify-content: space-evenly;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.ui-flex-gap-xs,
|
|
88
|
+
.ui-stack-xs {
|
|
29
89
|
gap: var(--space-stack-xs);
|
|
30
90
|
}
|
|
91
|
+
.ui-flex-gap-sm {
|
|
92
|
+
gap: var(--space-stack-sm);
|
|
93
|
+
}
|
|
94
|
+
|
|
31
95
|
.ui-stack-sm {
|
|
32
96
|
display: flex;
|
|
33
97
|
flex-direction: column;
|
|
34
98
|
gap: var(--space-stack-sm);
|
|
35
99
|
}
|
|
100
|
+
.ui-flex-gap-md {
|
|
101
|
+
gap: var(--space-stack-md);
|
|
102
|
+
}
|
|
103
|
+
|
|
36
104
|
.ui-stack-md {
|
|
37
105
|
display: flex;
|
|
38
106
|
flex-direction: column;
|
|
39
107
|
gap: var(--space-stack-md);
|
|
40
108
|
}
|
|
109
|
+
.ui-flex-gap-lg {
|
|
110
|
+
gap: var(--space-stack-lg);
|
|
111
|
+
}
|
|
112
|
+
|
|
41
113
|
.ui-stack-lg {
|
|
42
114
|
display: flex;
|
|
43
115
|
flex-direction: column;
|
|
44
116
|
gap: var(--space-stack-lg);
|
|
45
117
|
}
|
|
118
|
+
.ui-flex-gap-xl {
|
|
119
|
+
gap: var(--space-stack-xl);
|
|
120
|
+
}
|
|
121
|
+
|
|
46
122
|
.ui-stack-xl {
|
|
47
123
|
display: flex;
|
|
48
124
|
flex-direction: column;
|
|
@@ -85,23 +161,20 @@
|
|
|
85
161
|
}
|
|
86
162
|
|
|
87
163
|
@container (min-width: 640px) {
|
|
88
|
-
.ui-responsive-grid
|
|
89
|
-
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
164
|
+
.ui-responsive-grid {
|
|
165
|
+
grid-template-columns: repeat(var(--responsive-grid-sm, 2), minmax(0, 1fr));
|
|
90
166
|
}
|
|
167
|
+
}
|
|
91
168
|
|
|
92
|
-
|
|
93
|
-
.ui-responsive-grid
|
|
94
|
-
grid-template-columns: repeat(
|
|
169
|
+
@container (min-width: 768px) {
|
|
170
|
+
.ui-responsive-grid {
|
|
171
|
+
grid-template-columns: repeat(var(--responsive-grid-md, 3), minmax(0, 1fr));
|
|
95
172
|
}
|
|
96
173
|
}
|
|
97
174
|
|
|
98
175
|
@container (min-width: 1024px) {
|
|
99
|
-
.ui-responsive-grid
|
|
100
|
-
grid-template-columns: repeat(
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.ui-responsive-grid[data-columns="4"] {
|
|
104
|
-
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
176
|
+
.ui-responsive-grid {
|
|
177
|
+
grid-template-columns: repeat(var(--responsive-grid-lg, 4), minmax(0, 1fr));
|
|
105
178
|
}
|
|
106
179
|
}
|
|
107
180
|
|
|
@@ -149,6 +222,7 @@
|
|
|
149
222
|
padding-right: var(--space-page-active-x);
|
|
150
223
|
}
|
|
151
224
|
|
|
225
|
+
.ui-page-container-inset,
|
|
152
226
|
.ui-page-inset {
|
|
153
227
|
padding-left: var(--space-page-active-x);
|
|
154
228
|
padding-right: var(--space-page-active-x);
|
|
@@ -306,7 +380,7 @@
|
|
|
306
380
|
align-items: center;
|
|
307
381
|
gap: var(--space-stack-md);
|
|
308
382
|
text-align: center;
|
|
309
|
-
padding: var(--
|
|
383
|
+
padding: var(--empty-state-space-y) var(--empty-state-space-x);
|
|
310
384
|
}
|
|
311
385
|
|
|
312
386
|
.ui-empty-state-title {
|
|
@@ -378,6 +452,7 @@
|
|
|
378
452
|
font-variant-numeric: tabular-nums;
|
|
379
453
|
}
|
|
380
454
|
|
|
455
|
+
.ui-toolbar,
|
|
381
456
|
.ui-filter-bar {
|
|
382
457
|
display: flex;
|
|
383
458
|
flex-direction: column;
|
|
@@ -386,34 +461,40 @@
|
|
|
386
461
|
}
|
|
387
462
|
|
|
388
463
|
@media (min-width: 640px) {
|
|
464
|
+
.ui-toolbar,
|
|
389
465
|
.ui-filter-bar {
|
|
390
466
|
flex-flow: row wrap;
|
|
391
467
|
align-items: flex-end;
|
|
392
468
|
}
|
|
393
469
|
}
|
|
394
470
|
|
|
471
|
+
.ui-toolbar-clear,
|
|
395
472
|
.ui-filter-clear {
|
|
396
473
|
width: 100%;
|
|
397
474
|
}
|
|
398
475
|
|
|
399
476
|
@media (min-width: 640px) {
|
|
477
|
+
.ui-toolbar-clear,
|
|
400
478
|
.ui-filter-clear {
|
|
401
479
|
width: auto;
|
|
402
480
|
margin-left: auto;
|
|
403
481
|
}
|
|
404
482
|
}
|
|
405
483
|
|
|
484
|
+
.ui-toolbar-group,
|
|
406
485
|
.ui-filter-group {
|
|
407
486
|
min-width: 0;
|
|
408
487
|
width: 100%;
|
|
409
488
|
}
|
|
410
489
|
|
|
411
490
|
@media (min-width: 640px) {
|
|
491
|
+
.ui-toolbar-group,
|
|
412
492
|
.ui-filter-group {
|
|
413
493
|
width: auto;
|
|
414
494
|
}
|
|
415
495
|
}
|
|
416
496
|
|
|
497
|
+
.ui-toolbar-label,
|
|
417
498
|
.ui-filter-label {
|
|
418
499
|
color: hsl(var(--muted-foreground));
|
|
419
500
|
font-size: var(--filter-label-font-size);
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
@layer components {
|
|
6
6
|
[data-slot="table-head"] {
|
|
7
7
|
height: var(--table-row-height);
|
|
8
|
-
padding: var(--table-cell-padding-y) var(--
|
|
8
|
+
padding: var(--table-cell-padding-y) var(--table-cell-space-x);
|
|
9
9
|
text-align: left;
|
|
10
10
|
vertical-align: middle;
|
|
11
11
|
background: hsl(var(--secondary));
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
[data-slot="table-cell"] {
|
|
30
|
-
padding: var(--table-cell-padding-y) var(--
|
|
30
|
+
padding: var(--table-cell-padding-y) var(--table-cell-space-x);
|
|
31
31
|
vertical-align: middle;
|
|
32
32
|
/* Don't let a narrow column crush cell text — in CJK this collapses to one
|
|
33
33
|
* character per line. Keep each cell on one line; the scroll container
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
[data-slot="card-content"][data-flush] .ui-data-table-toolbar {
|
|
94
|
-
border-bottom: 1px solid hsl(var(--card-border
|
|
94
|
+
border-bottom: 1px solid hsl(var(--card-border));
|
|
95
95
|
padding: var(--card-space-header-y) var(--card-space-inset);
|
|
96
96
|
}
|
|
97
97
|
|
|
@@ -19,11 +19,6 @@
|
|
|
19
19
|
/* --info: 223 42% 50%; */
|
|
20
20
|
/* --attention: 24 99% 46%; */
|
|
21
21
|
|
|
22
|
-
/* Tracking-code identity (optional — do not reuse for status): */
|
|
23
|
-
/* --tracking-internal: 211 73% 15%; */
|
|
24
|
-
/* --tracking-seller: 44 5% 42%; */
|
|
25
|
-
/* --tracking-yamato: 24 99% 46%; */
|
|
26
|
-
|
|
27
22
|
/* Layout density (optional): */
|
|
28
23
|
/* --space-page-x: var(--space-8); */
|
|
29
24
|
|
package/dist/tokens/base.css
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
@import "./foundation.css";
|
|
7
|
-
@import "./
|
|
8
|
-
@import "./
|
|
9
|
-
@import "./
|
|
10
|
-
@import "./
|
|
11
|
-
@import "./
|
|
12
|
-
@import "./
|
|
13
|
-
@import "./
|
|
7
|
+
@import "./semantic/layout.css";
|
|
8
|
+
@import "./components/control.css";
|
|
9
|
+
@import "./components/card.css";
|
|
10
|
+
@import "./components/table.css";
|
|
11
|
+
@import "./components/feedback.css";
|
|
12
|
+
@import "./components/badge.css";
|
|
13
|
+
@import "./components/navigation.css";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Card
|
|
1
|
+
/* Card component tokens: card chrome derives from semantic layout tokens. */
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
4
|
--card-space-inset: var(--space-section-active);
|
|
@@ -12,8 +12,7 @@
|
|
|
12
12
|
--card-description-font-size: var(--font-size-sm);
|
|
13
13
|
--card-description-line-height: var(--line-height-normal);
|
|
14
14
|
--card-background: var(--card);
|
|
15
|
-
--card-
|
|
16
|
-
--card-border-token: var(--border);
|
|
15
|
+
--card-border: var(--border);
|
|
17
16
|
--card-header-background: var(--muted);
|
|
18
17
|
--card-header-background-alpha: 0.55;
|
|
19
18
|
--card-radius: var(--radius);
|
|
@@ -24,6 +24,8 @@
|
|
|
24
24
|
--control-focus-ring-width: 2px;
|
|
25
25
|
|
|
26
26
|
--checkbox-size: 1rem;
|
|
27
|
+
--checkbox-size-compact: 0.875rem;
|
|
28
|
+
--checkbox-size-comfortable: 1.125rem;
|
|
27
29
|
--choice-gap: var(--space-inline-sm);
|
|
28
30
|
--choice-group-gap-x: var(--space-6);
|
|
29
31
|
--choice-group-gap-y: var(--space-3);
|
|
@@ -31,9 +33,17 @@
|
|
|
31
33
|
--choice-control-offset: 0.125rem;
|
|
32
34
|
|
|
33
35
|
--switch-width: 2.25rem;
|
|
36
|
+
--switch-width-compact: 2rem;
|
|
37
|
+
--switch-width-comfortable: 2.5rem;
|
|
34
38
|
--switch-height: 1.25rem;
|
|
39
|
+
--switch-height-compact: 1.125rem;
|
|
40
|
+
--switch-height-comfortable: 1.375rem;
|
|
35
41
|
--switch-thumb-size: 1rem;
|
|
42
|
+
--switch-thumb-size-compact: 0.875rem;
|
|
43
|
+
--switch-thumb-size-comfortable: 1.125rem;
|
|
36
44
|
--switch-thumb-translate: 1rem;
|
|
45
|
+
--switch-thumb-translate-compact: 0.875rem;
|
|
46
|
+
--switch-thumb-translate-comfortable: 1.125rem;
|
|
37
47
|
|
|
38
48
|
--slider-track-height: 0.375rem;
|
|
39
49
|
--slider-thumb-size: 1rem;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* Feedback primitive tokens: dialog, alert, empty state. */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--dialog-space-inset: var(--space-5);
|
|
5
|
+
--dialog-space-gap: var(--space-stack-md);
|
|
6
|
+
--dialog-close-space-offset: var(--space-4);
|
|
7
|
+
--alert-space-inset: var(--space-section-active);
|
|
8
|
+
--alert-space-gap: var(--space-inline-md);
|
|
9
|
+
--alert-inner-space-gap: var(--space-stack-sm);
|
|
10
|
+
--alert-dismiss-space-offset: var(--space-3);
|
|
11
|
+
--empty-state-space-y: var(--space-10);
|
|
12
|
+
--empty-state-space-x: var(--space-6);
|
|
13
|
+
--skeleton-row-gap: var(--space-stack-sm);
|
|
14
|
+
--skeleton-cell-gap: var(--space-inline-lg);
|
|
15
|
+
--skeleton-card-inset: var(--space-section-active);
|
|
16
|
+
--skeleton-radius: var(--radius);
|
|
17
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Table
|
|
1
|
+
/* Table component tokens: row height, cell padding. */
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
4
|
--table-row-height-compact: 1.75rem;
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
--table-row-height-comfortable: 2.75rem;
|
|
7
7
|
--table-row-height: var(--table-row-height-default);
|
|
8
8
|
--table-cell-padding-y: var(--space-2);
|
|
9
|
-
--
|
|
9
|
+
--table-cell-space-x: var(--control-padding-x);
|
|
10
10
|
}
|
|
@@ -30,9 +30,6 @@
|
|
|
30
30
|
--info-foreground: 60 33% 99%;
|
|
31
31
|
--attention: 25 99% 46%; /* 朱 #eb6101 */
|
|
32
32
|
--attention-foreground: 60 33% 99%;
|
|
33
|
-
--tracking-internal: 204 100% 39%;
|
|
34
|
-
--tracking-seller: 44 5% 42%;
|
|
35
|
-
--tracking-yamato: 25 99% 46%;
|
|
36
33
|
|
|
37
34
|
/* 和色 (wa-iro) — traditional Japanese accent palette for charts, tags,
|
|
38
35
|
* decoration. Decorative hex (NOT semantic): never remap a wa-iro to a
|
|
@@ -51,22 +48,13 @@
|
|
|
51
48
|
--wa-sumi: #595857; /* 墨 warm ink */
|
|
52
49
|
--wa-nezu: #949495; /* 鼠 mouse-grey */
|
|
53
50
|
|
|
54
|
-
/*
|
|
55
|
-
--
|
|
56
|
-
--
|
|
57
|
-
--
|
|
58
|
-
--
|
|
59
|
-
--
|
|
60
|
-
--
|
|
61
|
-
--gray-600: #4b5563;
|
|
62
|
-
--gray-700: #374151;
|
|
63
|
-
--gray-800: #1f2937;
|
|
64
|
-
--gray-900: #111827;
|
|
65
|
-
--blue-50: #eff6ff;
|
|
66
|
-
--blue-100: #dbeafe;
|
|
67
|
-
--blue-500: #3b82f6;
|
|
68
|
-
--blue-600: #2563eb;
|
|
69
|
-
--blue-700: #1d4ed8;
|
|
51
|
+
/* Chart accents are neutral decorative primitives, not business semantics. */
|
|
52
|
+
--chart-1: #0077c7;
|
|
53
|
+
--chart-2: #006e54;
|
|
54
|
+
--chart-3: #f8b500;
|
|
55
|
+
--chart-4: #b7282e;
|
|
56
|
+
--chart-5: #4c6cb3;
|
|
57
|
+
--chart-6: #eb6101;
|
|
70
58
|
|
|
71
59
|
/* Shape and elevation */
|
|
72
60
|
--radius: 0.375rem;
|
|
@@ -145,7 +133,4 @@
|
|
|
145
133
|
--info-foreground: 48 9% 9%;
|
|
146
134
|
--attention: 25 95% 56%;
|
|
147
135
|
--attention-foreground: 48 9% 9%;
|
|
148
|
-
--tracking-internal: 204 90% 60%;
|
|
149
|
-
--tracking-seller: 44 6% 64%;
|
|
150
|
-
--tracking-yamato: 25 95% 56%;
|
|
151
136
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@godxjp/ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "@godxjp/ui — shared React UI framework (shadcn + Radix + Tailwind v4).",
|
|
6
6
|
"files": [
|
|
@@ -235,10 +235,12 @@
|
|
|
235
235
|
"test": "vitest run",
|
|
236
236
|
"test:watch": "vitest",
|
|
237
237
|
"test:coverage": "vitest run --coverage",
|
|
238
|
-
"verify": "pnpm typecheck && pnpm lint && pnpm format && pnpm check:mcp-sync && pnpm check:mcp-orphans && pnpm test",
|
|
239
|
-
"verify:release": "pnpm typecheck && pnpm lint && pnpm check:mcp-sync && pnpm check:mcp-orphans && pnpm build && pnpm test",
|
|
238
|
+
"verify": "pnpm typecheck && pnpm lint && pnpm format && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:mcp-sync && pnpm check:mcp-orphans && pnpm test",
|
|
239
|
+
"verify:release": "pnpm typecheck && pnpm lint && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:mcp-sync && pnpm check:mcp-orphans && pnpm build && pnpm test",
|
|
240
240
|
"check:mcp-sync": "node scripts/check-mcp-sync.mjs",
|
|
241
241
|
"check:mcp-orphans": "node scripts/check-mcp-orphans.mjs",
|
|
242
|
+
"check:prop-vocabulary": "node scripts/check-prop-vocabulary.mjs",
|
|
243
|
+
"check:token-tiers": "node scripts/check-token-tiers.mjs",
|
|
242
244
|
"release": "node scripts/release.mjs",
|
|
243
245
|
"preview": "node preview/scripts/kill-port.mjs && vite --config preview/vite.config.ts --port 6008 --strictPort",
|
|
244
246
|
"preview:build": "vite build --config preview/vite.config.ts",
|
|
@@ -260,6 +262,7 @@
|
|
|
260
262
|
"dependencies": {
|
|
261
263
|
"@date-fns/tz": "^1.5.0",
|
|
262
264
|
"@fontsource/m-plus-2": "^5.2.9",
|
|
265
|
+
"@radix-ui/react-accordion": "^1.2.12",
|
|
263
266
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
264
267
|
"@radix-ui/react-aspect-ratio": "^1.1.8",
|
|
265
268
|
"@radix-ui/react-avatar": "^1.1.11",
|
|
@@ -268,6 +271,7 @@
|
|
|
268
271
|
"@radix-ui/react-context": "^1.1.2",
|
|
269
272
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
270
273
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
274
|
+
"@radix-ui/react-hover-card": "^1.1.15",
|
|
271
275
|
"@radix-ui/react-label": "^2.1.8",
|
|
272
276
|
"@radix-ui/react-popover": "^1.1.15",
|
|
273
277
|
"@radix-ui/react-radio-group": "^1.3.8",
|
|
@@ -285,11 +289,13 @@
|
|
|
285
289
|
"clsx": "^2.1.1",
|
|
286
290
|
"cmdk": "^1.1.1",
|
|
287
291
|
"date-fns": "^4.1.0",
|
|
292
|
+
"input-otp": "^1.4.2",
|
|
288
293
|
"lucide-react": "^1.14.0",
|
|
289
294
|
"react-day-picker": "^10.0.1",
|
|
290
295
|
"sonner": "^2.0.7",
|
|
291
296
|
"tailwind-merge": "^3.5.0",
|
|
292
|
-
"tailwindcss-animate": "^1.0.7"
|
|
297
|
+
"tailwindcss-animate": "^1.0.7",
|
|
298
|
+
"vaul": "^1.1.2"
|
|
293
299
|
},
|
|
294
300
|
"devDependencies": {
|
|
295
301
|
"@eslint/js": "^9.39.4",
|
package/scripts/ui-audit.mjs
CHANGED
|
@@ -48,6 +48,28 @@ const RULES = [
|
|
|
48
48
|
message:
|
|
49
49
|
"Use semantic tokens (bg-primary, text-muted-foreground…), not raw palette colors (rules §4).",
|
|
50
50
|
},
|
|
51
|
+
{
|
|
52
|
+
id: "status-tone-not-variant",
|
|
53
|
+
severity: "error",
|
|
54
|
+
test: /\bvariant=["'](?:success|warning|destructive|info|neutral)["']/,
|
|
55
|
+
message:
|
|
56
|
+
"Status/color intent uses tone, not variant. Use tone='success|warning|destructive|info|neutral'.",
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: "no-domain-tracking-token",
|
|
60
|
+
severity: "error",
|
|
61
|
+
test: /--(?:color-)?tracking-|--(?:tracking|color-tracking)-(?:internal|seller|yamato)/,
|
|
62
|
+
message:
|
|
63
|
+
"Package tracking/domain tokens are forbidden. Use semantic tokens or app-local theme overrides.",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: "value-callback-on-value-change",
|
|
67
|
+
severity: "error",
|
|
68
|
+
test:
|
|
69
|
+
/<(?:Checkbox\.Group|Upload|Cascader|TreeSelect|Transfer|SearchSelect|DatePicker|DateRangePicker|TimePicker|ColorPicker|LocalePicker|TimezonePicker|DateFormatPicker|TimeFormatPicker)\b[^>]*\bonChange=/,
|
|
70
|
+
message:
|
|
71
|
+
"Abstract value components use onValueChange, not onChange. Reserve onChange for DOM events.",
|
|
72
|
+
},
|
|
51
73
|
{
|
|
52
74
|
id: "no-arbitrary-hex",
|
|
53
75
|
severity: "error",
|
package/dist/chunk-S66TJXJU.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { cn } from './chunk-U7N2A7A3.js';
|
|
2
|
-
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
|
|
4
|
-
// src/lib/variants.ts
|
|
5
|
-
var densityClass = {
|
|
6
|
-
compact: "ui-density-compact",
|
|
7
|
-
default: "ui-density-default",
|
|
8
|
-
comfortable: "ui-density-comfortable"
|
|
9
|
-
};
|
|
10
|
-
var pageContainerVariantClass = {
|
|
11
|
-
default: void 0,
|
|
12
|
-
narrow: "ui-page-container--narrow",
|
|
13
|
-
flush: "ui-page-container--flush",
|
|
14
|
-
ghost: "ui-page-container--ghost"
|
|
15
|
-
};
|
|
16
|
-
var stackGapClass = {
|
|
17
|
-
xs: "ui-stack-xs",
|
|
18
|
-
sm: "ui-stack-sm",
|
|
19
|
-
md: "ui-stack-md",
|
|
20
|
-
lg: "ui-stack-lg",
|
|
21
|
-
xl: "ui-stack-xl"
|
|
22
|
-
};
|
|
23
|
-
var inlineGapClass = {
|
|
24
|
-
xs: "ui-inline-xs",
|
|
25
|
-
sm: "ui-inline-sm",
|
|
26
|
-
md: "ui-inline-md",
|
|
27
|
-
lg: "ui-inline-lg"
|
|
28
|
-
};
|
|
29
|
-
function Inline({ gap = "sm", className, children, ...props }) {
|
|
30
|
-
return /* @__PURE__ */ jsx("div", { className: cn(inlineGapClass[gap], className), ...props, children });
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export { Inline, densityClass, pageContainerVariantClass, stackGapClass };
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { a as PageHeaderProp } from './layout.prop-MwHm4-Zl.js';
|
|
3
|
-
import { F as FilterBarProp, a as FilterGroupProp } from './navigation.prop-DAH4ysXj.js';
|
|
4
|
-
|
|
5
|
-
declare function PageHeader({ title, description, breadcrumb, actions, className }: PageHeaderProp): react_jsx_runtime.JSX.Element;
|
|
6
|
-
|
|
7
|
-
declare function FilterBar({ onClear, hasActiveFilters, className, children, }: FilterBarProp): react_jsx_runtime.JSX.Element;
|
|
8
|
-
declare function FilterGroup({ label, className, children }: FilterGroupProp): react_jsx_runtime.JSX.Element;
|
|
9
|
-
|
|
10
|
-
export { FilterBar as F, PageHeader as P, FilterGroup as a };
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { P as PageContainerProp, f as StackProp, I as InlineProp } from './layout.prop-MwHm4-Zl.js';
|
|
3
|
-
|
|
4
|
-
declare function PageContainer({ title, subtitle, extra, footer, breadcrumb, density, variant, stickyFooter, children, className, }: PageContainerProp): react_jsx_runtime.JSX.Element;
|
|
5
|
-
|
|
6
|
-
declare function Stack({ gap, className, children, ...props }: StackProp): react_jsx_runtime.JSX.Element;
|
|
7
|
-
|
|
8
|
-
declare function Inline({ gap, className, children, ...props }: InlineProp): react_jsx_runtime.JSX.Element;
|
|
9
|
-
|
|
10
|
-
export { Inline as I, PageContainer as P, Stack as S };
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Layout & spacing prop types.
|
|
3
|
-
* @see docs/PROPS-VOCABULARY.md#layout--density
|
|
4
|
-
*/
|
|
5
|
-
/** Page-level density — affects padding, control heights across PageContainer subtree. */
|
|
6
|
-
type PageDensityProp = "compact" | "default" | "comfortable";
|
|
7
|
-
/** Page shell layout — orthogonal to PageDensityProp. */
|
|
8
|
-
type PageContainerVariantProp = "default" | "narrow" | "flush" | "ghost";
|
|
9
|
-
/** Vertical stack gap between block-level children. */
|
|
10
|
-
type StackGapProp = "xs" | "sm" | "md" | "lg" | "xl";
|
|
11
|
-
/** Horizontal inline gap between row items. */
|
|
12
|
-
type InlineGapProp = "xs" | "sm" | "md" | "lg";
|
|
13
|
-
/** DataTable row density — NOT the same as PageDensityProp. */
|
|
14
|
-
type TableDensityProp = "compact" | "comfortable";
|
|
15
|
-
/** @deprecated Alias — use PageDensityProp. Kept for lib/variants compat. */
|
|
16
|
-
type DensityProp = PageDensityProp;
|
|
17
|
-
/** @deprecated Alias — use StackGapProp. */
|
|
18
|
-
type GapProp = StackGapProp;
|
|
19
|
-
|
|
20
|
-
export type { DensityProp as D, GapProp as G, InlineGapProp as I, PageContainerVariantProp as P, StackGapProp as S, TableDensityProp as T, PageDensityProp as a };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/* Badge primitive tokens. */
|
|
2
|
-
|
|
3
|
-
:root {
|
|
4
|
-
--space-badge-gap: var(--space-inline-xs);
|
|
5
|
-
--space-badge-x: var(--space-2);
|
|
6
|
-
--space-badge-y: var(--space-1);
|
|
7
|
-
--code-badge-height: 1.75rem;
|
|
8
|
-
--code-badge-gap: var(--space-inline-sm);
|
|
9
|
-
--code-badge-padding-x: var(--space-2);
|
|
10
|
-
--code-badge-bg-alpha: 0.055;
|
|
11
|
-
--code-badge-border-alpha: 0.28;
|
|
12
|
-
--code-badge-separator-alpha: 0.22;
|
|
13
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/* Feedback primitive tokens: dialog, alert, empty state. */
|
|
2
|
-
|
|
3
|
-
:root {
|
|
4
|
-
--space-dialog-inset: var(--space-5);
|
|
5
|
-
--space-dialog-gap: var(--space-stack-md);
|
|
6
|
-
--space-dialog-close-offset: var(--space-4);
|
|
7
|
-
--space-alert-inset: var(--space-section-active);
|
|
8
|
-
--space-alert-gap: var(--space-inline-md);
|
|
9
|
-
--space-alert-inner-gap: var(--space-stack-sm);
|
|
10
|
-
--space-alert-dismiss-offset: var(--space-3);
|
|
11
|
-
--space-empty-state-y: var(--space-10);
|
|
12
|
-
--space-empty-state-x: var(--space-6);
|
|
13
|
-
--skeleton-row-gap: var(--space-stack-sm);
|
|
14
|
-
--skeleton-cell-gap: var(--space-inline-lg);
|
|
15
|
-
--skeleton-card-inset: var(--space-section-active);
|
|
16
|
-
--skeleton-radius: var(--radius);
|
|
17
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|