@godxjp/ui 6.12.0 → 8.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.
Files changed (179) hide show
  1. package/README.md +5 -0
  2. package/dist/app/index.d.ts +2 -2
  3. package/dist/{app.prop-IobwLwaM.d.ts → app.prop-DnIXFzLi.d.ts} +9 -9
  4. package/dist/aspect-ratio-DGoYrOry.d.ts +6 -0
  5. package/dist/avatar-D9MdXzfF.d.ts +8 -0
  6. package/dist/{checkbox-9w-eF8sM.d.ts → checkbox-ChRsR7Nk.d.ts} +2 -2
  7. package/dist/{chunk-3UGU5TYP.js → chunk-25RYBC5T.js} +2 -2
  8. package/dist/{chunk-CQBADMFG.js → chunk-26CPAKUP.js} +3 -2
  9. package/dist/{chunk-ZTYEH3UW.js → chunk-3TS3G4U3.js} +3 -3
  10. package/dist/{chunk-ZS6DTAM2.js → chunk-4MMIMZMK.js} +1 -1
  11. package/dist/{chunk-T2S3IGZG.js → chunk-4R7RQDXI.js} +23 -21
  12. package/dist/{chunk-Y7AV7QJO.js → chunk-6QXQQAOQ.js} +5 -5
  13. package/dist/{chunk-JJCGMCTL.js → chunk-A22MCA3X.js} +6 -6
  14. package/dist/{chunk-TW4IRRAX.js → chunk-A7PKMT7Y.js} +8 -49
  15. package/dist/chunk-AINW5WYN.js +57 -0
  16. package/dist/chunk-B3WX53JQ.js +40 -0
  17. package/dist/{chunk-BM5LIDCS.js → chunk-C5H655GK.js} +223 -67
  18. package/dist/{chunk-ZLK5SPT6.js → chunk-EOTOCNT7.js} +1 -1
  19. package/dist/chunk-FRU44GA2.js +18 -0
  20. package/dist/chunk-FYM3MJSK.js +59 -0
  21. package/dist/{chunk-EE3B3TEQ.js → chunk-G2WYOCDL.js} +5 -5
  22. package/dist/chunk-HKD6ERY7.js +1 -0
  23. package/dist/{chunk-V6UWJKZF.js → chunk-HTEL5DQI.js} +1 -1
  24. package/dist/{chunk-ICM6XBST.js → chunk-IBK5D2Q6.js} +2 -1
  25. package/dist/{chunk-IK7I3ABN.js → chunk-IOGU3ZWF.js} +2 -2
  26. package/dist/{chunk-HJEBRCXL.js → chunk-M4PZNAMV.js} +1 -0
  27. package/dist/{chunk-2QG3OVAD.js → chunk-N43OKOFT.js} +7 -5
  28. package/dist/{chunk-YVBZ37ZE.js → chunk-NG23LVTM.js} +5 -5
  29. package/dist/{chunk-E76QIYSY.js → chunk-O24Z3ULJ.js} +4 -4
  30. package/dist/{chunk-GXHZAJUA.js → chunk-O2OUNXV4.js} +10 -10
  31. package/dist/{chunk-L6J44O74.js → chunk-OJZ6C2HM.js} +2 -2
  32. package/dist/{chunk-2HLWHQJA.js → chunk-P4HFJQID.js} +5 -4
  33. package/dist/chunk-R2W2FX5Q.js +48 -0
  34. package/dist/{chunk-AZS7553U.js → chunk-RGIYKJPW.js} +6 -6
  35. package/dist/{chunk-GH7E5N6F.js → chunk-RGPF3HU6.js} +3 -3
  36. package/dist/chunk-SEG2YBXF.js +29 -0
  37. package/dist/{chunk-JBEIL3VD.js → chunk-SKIRU7GC.js} +2 -2
  38. package/dist/chunk-TILFZBTE.js +50 -0
  39. package/dist/{chunk-6UFKWOEW.js → chunk-TMDGV4CN.js} +15 -11
  40. package/dist/chunk-UIYEAUWA.js +78 -0
  41. package/dist/{chunk-XG7XDYIM.js → chunk-V3N266PT.js} +48 -2
  42. package/dist/{chunk-I3272Y2C.js → chunk-WN52SCGE.js} +4 -4
  43. package/dist/{chunk-T4UT3B3K.js → chunk-WTVLZVBA.js} +153 -188
  44. package/dist/{chunk-SWGQX3AP.js → chunk-XDUZ7JJL.js} +2 -2
  45. package/dist/chunk-XMBCNMJI.js +61 -0
  46. package/dist/{chunk-RVY4F7LK.js → chunk-XZM2GNAY.js} +7 -7
  47. package/dist/{chunk-K27I23OA.js → chunk-Z6HNY2PL.js} +9 -9
  48. package/dist/components/admin/index.d.ts +24 -22
  49. package/dist/components/admin/index.js +33 -32
  50. package/dist/components/data-display/badge.d.ts +15 -4
  51. package/dist/components/data-display/badge.js +4 -2
  52. package/dist/components/data-display/card.d.ts +3 -3
  53. package/dist/components/data-display/card.js +1 -1
  54. package/dist/components/data-display/index.d.ts +14 -26
  55. package/dist/components/data-display/index.js +28 -37
  56. package/dist/components/data-display/table.js +2 -2
  57. package/dist/components/data-entry/autocomplete.d.ts +5 -5
  58. package/dist/components/data-entry/autocomplete.js +5 -5
  59. package/dist/components/data-entry/calendar.d.ts +5 -5
  60. package/dist/components/data-entry/calendar.js +3 -3
  61. package/dist/components/data-entry/cascader.d.ts +6 -6
  62. package/dist/components/data-entry/cascader.js +7 -7
  63. package/dist/components/data-entry/checkbox.d.ts +6 -6
  64. package/dist/components/data-entry/checkbox.js +2 -2
  65. package/dist/components/data-entry/color-picker.d.ts +6 -6
  66. package/dist/components/data-entry/color-picker.js +2 -2
  67. package/dist/components/data-entry/command.d.ts +11 -11
  68. package/dist/components/data-entry/command.js +2 -2
  69. package/dist/components/data-entry/date-picker.d.ts +6 -6
  70. package/dist/components/data-entry/date-picker.js +4 -4
  71. package/dist/components/data-entry/date-range-picker.d.ts +6 -6
  72. package/dist/components/data-entry/date-range-picker.js +4 -4
  73. package/dist/components/data-entry/index.d.ts +13 -19
  74. package/dist/components/data-entry/index.js +27 -145
  75. package/dist/components/data-entry/radio.d.ts +5 -5
  76. package/dist/components/data-entry/radio.js +2 -2
  77. package/dist/components/data-entry/select.d.ts +5 -5
  78. package/dist/components/data-entry/select.js +5 -5
  79. package/dist/components/data-entry/slider.d.ts +5 -5
  80. package/dist/components/data-entry/switch.d.ts +5 -5
  81. package/dist/components/data-entry/switch.js +1 -1
  82. package/dist/components/data-entry/textarea.js +2 -2
  83. package/dist/components/data-entry/time-picker.d.ts +6 -6
  84. package/dist/components/data-entry/time-picker.js +2 -2
  85. package/dist/components/data-entry/transfer.d.ts +7 -7
  86. package/dist/components/data-entry/transfer.js +5 -5
  87. package/dist/components/data-entry/tree-select.d.ts +6 -6
  88. package/dist/components/data-entry/tree-select.js +7 -7
  89. package/dist/components/data-entry/upload.d.ts +7 -7
  90. package/dist/components/data-entry/upload.js +5 -5
  91. package/dist/components/feedback/alert.d.ts +7 -5
  92. package/dist/components/feedback/alert.js +3 -3
  93. package/dist/components/feedback/dialog.d.ts +9 -6
  94. package/dist/components/feedback/dialog.js +2 -2
  95. package/dist/components/feedback/index.d.ts +7 -6
  96. package/dist/components/feedback/index.js +9 -7
  97. package/dist/components/general/button.d.ts +4 -4
  98. package/dist/components/general/button.js +1 -1
  99. package/dist/components/general/index.d.ts +3 -3
  100. package/dist/components/general/index.js +1 -1
  101. package/dist/components/layout/index.d.ts +19 -45
  102. package/dist/components/layout/index.js +4 -5
  103. package/dist/components/navigation/index.d.ts +13 -14
  104. package/dist/components/navigation/index.js +9 -10
  105. package/dist/components/navigation/pagination.d.ts +5 -5
  106. package/dist/components/navigation/pagination.js +6 -6
  107. package/dist/components/navigation/steps.d.ts +6 -6
  108. package/dist/components/navigation/steps.js +2 -2
  109. package/dist/components/navigation/tabs.d.ts +14 -2
  110. package/dist/components/navigation/tabs.js +1 -1
  111. package/dist/components/query/index.d.ts +12 -7
  112. package/dist/components/query/index.js +4 -4
  113. package/dist/components/ui/index.d.ts +21 -14
  114. package/dist/components/ui/index.js +32 -29
  115. package/dist/{data-display.prop-i0iaSwMV.d.ts → data-display.prop-Cf2p9QC4.d.ts} +18 -17
  116. package/dist/{data-entry.prop-Cjidhei7.d.ts → data-entry.prop-CDkOajPj.d.ts} +34 -40
  117. package/dist/{data-table-Bg7fPpXy.d.ts → data-table-B_q7j992.d.ts} +10 -33
  118. package/dist/{data.prop-BmLaGLb7.d.ts → data.prop-DMYMNl6L.d.ts} +2 -2
  119. package/dist/{feedback.prop-BnBpUzNK.d.ts → feedback.prop-BR5JOpPl.d.ts} +8 -5
  120. package/dist/filter-bar-DvVXm_d1.d.ts +14 -0
  121. package/dist/form/index.d.ts +3 -3
  122. package/dist/{form.prop-BHgpuFFm.d.ts → form.prop-Bc6r6JJW.d.ts} +1 -1
  123. package/dist/{general.prop-D7brMPNL.d.ts → general.prop-DoHDCRmL.d.ts} +2 -2
  124. package/dist/index.d.ts +27 -25
  125. package/dist/index.js +46 -32
  126. package/dist/inline-DqfYlGKj.d.ts +18 -0
  127. package/dist/{interaction.prop-Cdn7wOtq.d.ts → interaction.prop-DSFizzP6.d.ts} +8 -6
  128. package/dist/{layout.prop-MwHm4-Zl.d.ts → layout.prop-Baq9muDN.d.ts} +27 -13
  129. package/dist/layout.prop-CXvl2rVR.d.ts +16 -0
  130. package/dist/{navigation.prop-Ck5_gSfs.d.ts → navigation.prop-8DgElO0c.d.ts} +17 -14
  131. package/dist/{navigation.prop-Hu7s7MJa.d.ts → navigation.prop-BKlxd-j7.d.ts} +2 -5
  132. package/dist/props/components/index.d.ts +14 -14
  133. package/dist/props/index.d.ts +14 -14
  134. package/dist/props/index.js +2 -2
  135. package/dist/props/registry.d.ts +254 -64
  136. package/dist/props/registry.js +1 -1
  137. package/dist/props/vocabulary/index.d.ts +5 -5
  138. package/dist/{query.prop-hIPrk2zI.d.ts → query.prop-DuODxsiU.d.ts} +12 -8
  139. package/dist/{search-input-mAZy3Den.d.ts → search-input-cezAxpgb.d.ts} +7 -2
  140. package/dist/{shared.prop-BNRJc9K0.d.ts → shared.prop-BsNSXeqD.d.ts} +9 -3
  141. package/dist/skeleton-uWAjSacg.d.ts +22 -0
  142. package/dist/styles/alert-layout.css +38 -18
  143. package/dist/styles/badge-layout.css +4 -4
  144. package/dist/styles/card-layout.css +24 -24
  145. package/dist/styles/control.css +68 -0
  146. package/dist/styles/data-display-layout.css +23 -81
  147. package/dist/styles/density.css +10 -10
  148. package/dist/styles/dialog-layout.css +4 -4
  149. package/dist/styles/index.css +6 -9
  150. package/dist/styles/layout.css +114 -85
  151. package/dist/styles/table-layout.css +3 -3
  152. package/dist/theme/example.service.css +0 -5
  153. package/dist/toggle-group-BulJgKh3.d.ts +26 -0
  154. package/dist/tokens/base.css +7 -7
  155. package/dist/tokens/components/badge.css +7 -0
  156. package/dist/tokens/{primitives → components}/card.css +11 -12
  157. package/dist/tokens/{primitives → components}/control.css +10 -0
  158. package/dist/tokens/components/feedback.css +17 -0
  159. package/dist/tokens/{primitives → components}/table.css +2 -2
  160. package/dist/tokens/foundation.css +7 -22
  161. package/dist/use-toast-Dsw3yE2S.d.ts +19 -0
  162. package/package.json +13 -7
  163. package/scripts/ui-audit.mjs +22 -0
  164. package/dist/chunk-BPSKQUL2.js +0 -68
  165. package/dist/chunk-M64MVRLS.js +0 -92
  166. package/dist/chunk-PIIRNAXA.js +0 -26
  167. package/dist/chunk-S66TJXJU.js +0 -33
  168. package/dist/chunk-WXW43RK5.js +0 -24
  169. package/dist/components/navigation/tabs-items.d.ts +0 -12
  170. package/dist/components/navigation/tabs-items.js +0 -3
  171. package/dist/filter-bar-BpUvE_yO.d.ts +0 -10
  172. package/dist/inline-CV3A46np.d.ts +0 -10
  173. package/dist/layout.prop-4TCNvyQZ.d.ts +0 -20
  174. package/dist/tokens/primitives/badge.css +0 -13
  175. package/dist/tokens/primitives/feedback.css +0 -17
  176. package/dist/use-toast-Dol5bdY3.d.ts +0 -34
  177. /package/dist/{chunk-LDSLS6HE.js → chunk-2H65B4JA.js} +0 -0
  178. /package/dist/tokens/{primitives → components}/navigation.css +0 -0
  179. /package/dist/tokens/{primitives → semantic}/layout.css +0 -0
@@ -19,10 +19,10 @@
19
19
  width: 100%;
20
20
  max-width: 32rem;
21
21
  transform: translate(-50%, -50%);
22
- gap: var(--space-dialog-gap);
22
+ gap: var(--dialog-space-gap);
23
23
  border: 1px solid hsl(var(--border));
24
24
  background-color: hsl(var(--background));
25
- padding: var(--space-dialog-inset);
25
+ padding: var(--dialog-space-inset);
26
26
  box-shadow: var(--shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
27
27
  }
28
28
 
@@ -60,8 +60,8 @@
60
60
 
61
61
  [data-slot="dialog-close"] {
62
62
  position: absolute;
63
- inset-inline-end: var(--space-dialog-close-offset);
64
- top: var(--space-dialog-close-offset);
63
+ inset-inline-end: var(--dialog-close-space-offset);
64
+ top: var(--dialog-close-space-offset);
65
65
  border-radius: var(--radius-sm);
66
66
  opacity: 0.7;
67
67
  }
@@ -47,15 +47,12 @@
47
47
  --color-info-foreground: hsl(var(--info-foreground));
48
48
  --color-attention: hsl(var(--attention));
49
49
  --color-attention-foreground: hsl(var(--attention-foreground));
50
- --color-chart-1: #0077c7;
51
- --color-chart-2: #006e54;
52
- --color-chart-3: #f8b500;
53
- --color-chart-4: #b7282e;
54
- --color-chart-5: #4c6cb3;
55
- --color-chart-6: #eb6101;
56
- --color-tracking-internal: hsl(var(--tracking-internal));
57
- --color-tracking-seller: hsl(var(--tracking-seller));
58
- --color-tracking-yamato: hsl(var(--tracking-yamato));
50
+ --color-chart-1: var(--chart-1);
51
+ --color-chart-2: var(--chart-2);
52
+ --color-chart-3: var(--chart-3);
53
+ --color-chart-4: var(--chart-4);
54
+ --color-chart-5: var(--chart-5);
55
+ --color-chart-6: var(--chart-6);
59
56
  --radius-lg: var(--radius);
60
57
  --radius-md: calc(var(--radius) - 2px);
61
58
  --radius-sm: calc(var(--radius) - 4px);
@@ -1,29 +1,124 @@
1
1
  /*
2
- * LAYOUT — Stack / Inline / Page shell / EmptyState.
3
- * Apps: <Stack gap> · <Inline gap> · <PageContainer> — never ui-stack-* or Tailwind gap-*.
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 {
7
+ .ui-separator {
8
+ flex-shrink: 0;
9
+ background: hsl(var(--border));
10
+ }
11
+
12
+ .ui-separator[data-orientation="horizontal"] {
13
+ width: 100%;
14
+ height: 1px;
15
+ }
16
+
17
+ .ui-separator[data-orientation="vertical"] {
18
+ width: 1px;
19
+ height: 100%;
20
+ }
21
+
22
+ .ui-aspect-ratio {
23
+ overflow: hidden;
24
+ }
25
+
26
+ .ui-flex,
7
27
  .ui-stack-xs {
8
28
  display: flex;
29
+ }
30
+
31
+ .ui-flex[data-direction="row"] {
32
+ flex-direction: row;
33
+ }
34
+
35
+ .ui-flex[data-direction="col"] {
9
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 {
10
89
  gap: var(--space-stack-xs);
11
90
  }
91
+ .ui-flex-gap-sm {
92
+ gap: var(--space-stack-sm);
93
+ }
94
+
12
95
  .ui-stack-sm {
13
96
  display: flex;
14
97
  flex-direction: column;
15
98
  gap: var(--space-stack-sm);
16
99
  }
100
+ .ui-flex-gap-md {
101
+ gap: var(--space-stack-md);
102
+ }
103
+
17
104
  .ui-stack-md {
18
105
  display: flex;
19
106
  flex-direction: column;
20
107
  gap: var(--space-stack-md);
21
108
  }
109
+ .ui-flex-gap-lg {
110
+ gap: var(--space-stack-lg);
111
+ }
112
+
22
113
  .ui-stack-lg {
23
114
  display: flex;
24
115
  flex-direction: column;
25
116
  gap: var(--space-stack-lg);
26
117
  }
118
+ .ui-flex-gap-xl {
119
+ gap: var(--space-stack-xl);
120
+ }
121
+
27
122
  .ui-stack-xl {
28
123
  display: flex;
29
124
  flex-direction: column;
@@ -66,23 +161,20 @@
66
161
  }
67
162
 
68
163
  @container (min-width: 640px) {
69
- .ui-responsive-grid[data-columns="2"] {
70
- 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));
71
166
  }
167
+ }
72
168
 
73
- .ui-responsive-grid[data-columns="3"],
74
- .ui-responsive-grid[data-columns="4"] {
75
- grid-template-columns: repeat(2, minmax(0, 1fr));
169
+ @container (min-width: 768px) {
170
+ .ui-responsive-grid {
171
+ grid-template-columns: repeat(var(--responsive-grid-md, 3), minmax(0, 1fr));
76
172
  }
77
173
  }
78
174
 
79
175
  @container (min-width: 1024px) {
80
- .ui-responsive-grid[data-columns="3"] {
81
- grid-template-columns: repeat(3, minmax(0, 1fr));
82
- }
83
-
84
- .ui-responsive-grid[data-columns="4"] {
85
- 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));
86
178
  }
87
179
  }
88
180
 
@@ -130,6 +222,7 @@
130
222
  padding-right: var(--space-page-active-x);
131
223
  }
132
224
 
225
+ .ui-page-container-inset,
133
226
  .ui-page-inset {
134
227
  padding-left: var(--space-page-active-x);
135
228
  padding-right: var(--space-page-active-x);
@@ -281,84 +374,13 @@
281
374
  color: hsl(var(--foreground));
282
375
  }
283
376
 
284
- .ui-mobile-stage {
285
- min-height: 100vh;
286
- padding: var(--space-section-active);
287
- background: hsl(var(--secondary));
288
- }
289
-
290
- .ui-mobile-frame {
291
- display: flex;
292
- flex-direction: column;
293
- width: min(100%, 23.5rem);
294
- min-height: 50.75rem;
295
- margin-inline: auto;
296
- overflow: hidden;
297
- border: 1px solid hsl(var(--border));
298
- border-radius: 1.75rem;
299
- background: hsl(var(--background));
300
- box-shadow: var(--shadow-xl, 0 20px 25px -5px rgb(0 0 0 / 0.1));
301
- }
302
-
303
- .ui-mobile-header {
304
- display: flex;
305
- align-items: center;
306
- justify-content: space-between;
307
- gap: var(--space-inline-sm);
308
- padding: var(--space-3) var(--space-4);
309
- background: hsl(var(--primary));
310
- color: hsl(var(--primary-foreground));
311
- }
312
-
313
- .ui-mobile-title {
314
- font-size: var(--font-size-sm);
315
- font-weight: var(--font-weight-semibold);
316
- }
317
-
318
- .ui-mobile-subtitle {
319
- color: hsl(0 0% 100% / 0.6);
320
- font-size: var(--font-size-xs);
321
- }
322
-
323
- .ui-mobile-main {
324
- flex: 1;
325
- padding: var(--space-4);
326
- }
327
-
328
- .ui-mobile-nav {
329
- display: grid;
330
- grid-template-columns: repeat(4, minmax(0, 1fr));
331
- border-top: 1px solid hsl(var(--border));
332
- background: hsl(var(--card));
333
- }
334
-
335
- .ui-mobile-nav-item {
336
- display: flex;
337
- height: 4rem;
338
- flex-direction: column;
339
- align-items: center;
340
- justify-content: center;
341
- gap: var(--space-1);
342
- color: hsl(var(--muted-foreground));
343
- font-size: var(--font-size-xs);
344
- }
345
-
346
- .ui-mobile-nav-item[data-active="true"] {
347
- color: hsl(var(--primary));
348
- }
349
-
350
- .ui-mobile-nav-item svg {
351
- width: 1.25rem;
352
- height: 1.25rem;
353
- }
354
-
355
377
  .ui-empty-state {
356
378
  display: flex;
357
379
  flex-direction: column;
358
380
  align-items: center;
359
381
  gap: var(--space-stack-md);
360
382
  text-align: center;
361
- padding: var(--space-empty-state-y) var(--space-empty-state-x);
383
+ padding: var(--empty-state-space-y) var(--empty-state-space-x);
362
384
  }
363
385
 
364
386
  .ui-empty-state-title {
@@ -430,6 +452,7 @@
430
452
  font-variant-numeric: tabular-nums;
431
453
  }
432
454
 
455
+ .ui-toolbar,
433
456
  .ui-filter-bar {
434
457
  display: flex;
435
458
  flex-direction: column;
@@ -438,34 +461,40 @@
438
461
  }
439
462
 
440
463
  @media (min-width: 640px) {
464
+ .ui-toolbar,
441
465
  .ui-filter-bar {
442
466
  flex-flow: row wrap;
443
467
  align-items: flex-end;
444
468
  }
445
469
  }
446
470
 
471
+ .ui-toolbar-clear,
447
472
  .ui-filter-clear {
448
473
  width: 100%;
449
474
  }
450
475
 
451
476
  @media (min-width: 640px) {
477
+ .ui-toolbar-clear,
452
478
  .ui-filter-clear {
453
479
  width: auto;
454
480
  margin-left: auto;
455
481
  }
456
482
  }
457
483
 
484
+ .ui-toolbar-group,
458
485
  .ui-filter-group {
459
486
  min-width: 0;
460
487
  width: 100%;
461
488
  }
462
489
 
463
490
  @media (min-width: 640px) {
491
+ .ui-toolbar-group,
464
492
  .ui-filter-group {
465
493
  width: auto;
466
494
  }
467
495
  }
468
496
 
497
+ .ui-toolbar-label,
469
498
  .ui-filter-label {
470
499
  color: hsl(var(--muted-foreground));
471
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(--space-table-cell-x);
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(--space-table-cell-x);
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-token));
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
 
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import * as TogglePrimitive from '@radix-ui/react-toggle';
5
+ import { VariantProps } from 'class-variance-authority';
6
+
7
+ declare const toggleVariants: (props?: ({
8
+ variant?: "default" | "outline" | null | undefined;
9
+ size?: "default" | "sm" | "lg" | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+ type ToggleProps = React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>;
12
+ declare const Toggle: React.ForwardRefExoticComponent<Omit<TogglePrimitive.ToggleProps & React.RefAttributes<HTMLButtonElement>, "ref"> & VariantProps<(props?: ({
13
+ variant?: "default" | "outline" | null | undefined;
14
+ size?: "default" | "sm" | "lg" | null | undefined;
15
+ } & class_variance_authority_types.ClassProp) | undefined) => string> & React.RefAttributes<HTMLButtonElement>>;
16
+
17
+ declare const ToggleGroup: React.ForwardRefExoticComponent<((Omit<ToggleGroupPrimitive.ToggleGroupSingleProps & React.RefAttributes<HTMLDivElement>, "ref"> | Omit<ToggleGroupPrimitive.ToggleGroupMultipleProps & React.RefAttributes<HTMLDivElement>, "ref">) & {
18
+ variant?: ToggleProps["variant"];
19
+ size?: ToggleProps["size"];
20
+ }) & React.RefAttributes<HTMLDivElement>>;
21
+ declare const ToggleGroupItem: React.ForwardRefExoticComponent<Omit<ToggleGroupPrimitive.ToggleGroupItemProps & React.RefAttributes<HTMLButtonElement>, "ref"> & {
22
+ variant?: ToggleProps["variant"];
23
+ size?: ToggleProps["size"];
24
+ } & React.RefAttributes<HTMLButtonElement>>;
25
+
26
+ export { Toggle as T, ToggleGroup as a, ToggleGroupItem as b, type ToggleProps as c, toggleVariants as t };
@@ -4,10 +4,10 @@
4
4
  */
5
5
 
6
6
  @import "./foundation.css";
7
- @import "./primitives/layout.css";
8
- @import "./primitives/control.css";
9
- @import "./primitives/card.css";
10
- @import "./primitives/table.css";
11
- @import "./primitives/feedback.css";
12
- @import "./primitives/badge.css";
13
- @import "./primitives/navigation.css";
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";
@@ -0,0 +1,7 @@
1
+ /* Badge component tokens. */
2
+
3
+ :root {
4
+ --badge-space-gap: var(--space-inline-xs);
5
+ --badge-space-x: var(--space-2);
6
+ --badge-space-y: var(--space-1);
7
+ }
@@ -1,4 +1,4 @@
1
- /* Card primitive tokens: card chrome derives from foundation + layout primitives. */
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,18 +12,17 @@
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-foreground-token: var(--card-foreground);
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);
20
- --card-stat-label-font-size: var(--font-size-xs);
21
- --card-stat-label-font-weight: var(--font-weight-medium);
22
- --card-stat-label-letter-spacing: 0.04em;
23
- --card-stat-value-font-size: 1.625rem;
24
- --card-stat-value-line-height: 1.1;
25
- --card-stat-value-font-weight: var(--font-weight-semibold);
26
- --card-stat-hint-font-size: var(--font-size-xs);
27
- --card-stat-gap: var(--space-stack-xs);
28
- --card-stat-icon-size: 2.25rem;
19
+ --stat-card-label-font-size: var(--font-size-xs);
20
+ --stat-card-label-font-weight: var(--font-weight-medium);
21
+ --stat-card-label-letter-spacing: 0.04em;
22
+ --stat-card-value-font-size: 1.625rem;
23
+ --stat-card-value-line-height: 1.1;
24
+ --stat-card-value-font-weight: var(--font-weight-semibold);
25
+ --stat-card-hint-font-size: var(--font-size-xs);
26
+ --stat-card-gap: var(--space-stack-xs);
27
+ --stat-card-icon-size: 2.25rem;
29
28
  }
@@ -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 primitive tokens: row height, cell padding. */
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
- --space-table-cell-x: var(--control-padding-x);
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
- /* Neutral + blue ramps (data viz, fine UI shading). */
55
- --gray-50: #f9fafb;
56
- --gray-100: #f3f4f6;
57
- --gray-200: #e5e7eb;
58
- --gray-300: #d1d5db;
59
- --gray-400: #9ca3af;
60
- --gray-500: #6b7280;
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
  }
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { ExternalToast, toast as toast$1 } from 'sonner';
3
+
4
+ type LegacyToastOptions = ExternalToast & {
5
+ title?: React.ReactNode;
6
+ description?: React.ReactNode;
7
+ variant?: "default" | "destructive" | "success";
8
+ };
9
+ type ToastFn = typeof toast$1 & ((options: LegacyToastOptions) => ReturnType<typeof toast$1>);
10
+ /** Sonner toast + legacy `{ title, variant }` object form. */
11
+ declare const toast: ToastFn;
12
+ /** Legacy hook — prefer `toast` import directly; kept for existing admin pages. */
13
+ declare function useToast(): {
14
+ toast: (options: LegacyToastOptions) => string | number;
15
+ dismiss: (id?: number | string) => string | number;
16
+ toasts: readonly [];
17
+ };
18
+
19
+ export { type LegacyToastOptions as L, toast as t, useToast as u };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@godxjp/ui",
3
- "version": "6.12.0",
3
+ "version": "8.0.0",
4
4
  "type": "module",
5
5
  "description": "@godxjp/ui — shared React UI framework (shadcn + Radix + Tailwind v4).",
6
6
  "files": [
@@ -209,10 +209,6 @@
209
209
  "types": "./dist/components/navigation/tabs.d.ts",
210
210
  "import": "./dist/components/navigation/tabs.js"
211
211
  },
212
- "./ui/tabs-items": {
213
- "types": "./dist/components/navigation/tabs-items.d.ts",
214
- "import": "./dist/components/navigation/tabs-items.js"
215
- },
216
212
  "./ui/pagination": {
217
213
  "types": "./dist/components/navigation/pagination.d.ts",
218
214
  "import": "./dist/components/navigation/pagination.js"
@@ -239,8 +235,13 @@
239
235
  "test": "vitest run",
240
236
  "test:watch": "vitest",
241
237
  "test:coverage": "vitest run --coverage",
242
- "verify": "pnpm typecheck && pnpm lint && pnpm format && pnpm test",
243
- "verify:release": "pnpm typecheck && pnpm lint && 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
+ "check:mcp-sync": "node scripts/check-mcp-sync.mjs",
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",
244
+ "release": "node scripts/release.mjs",
244
245
  "preview": "node preview/scripts/kill-port.mjs && vite --config preview/vite.config.ts --port 6008 --strictPort",
245
246
  "preview:build": "vite build --config preview/vite.config.ts",
246
247
  "docs:sync-primitives": "node preview/scripts/sync-primitive-docs.mjs && prettier --write \"docs/primitives/**/*.tsx\"",
@@ -262,6 +263,8 @@
262
263
  "@date-fns/tz": "^1.5.0",
263
264
  "@fontsource/m-plus-2": "^5.2.9",
264
265
  "@radix-ui/react-alert-dialog": "^1.1.15",
266
+ "@radix-ui/react-aspect-ratio": "^1.1.8",
267
+ "@radix-ui/react-avatar": "^1.1.11",
265
268
  "@radix-ui/react-checkbox": "^1.3.3",
266
269
  "@radix-ui/react-collapsible": "^1.1.12",
267
270
  "@radix-ui/react-context": "^1.1.2",
@@ -272,10 +275,13 @@
272
275
  "@radix-ui/react-radio-group": "^1.3.8",
273
276
  "@radix-ui/react-scroll-area": "^1.2.10",
274
277
  "@radix-ui/react-select": "^2.2.6",
278
+ "@radix-ui/react-separator": "^1.1.8",
275
279
  "@radix-ui/react-slider": "^1.3.6",
276
280
  "@radix-ui/react-slot": "^1.2.4",
277
281
  "@radix-ui/react-switch": "^1.2.6",
278
282
  "@radix-ui/react-tabs": "^1.1.13",
283
+ "@radix-ui/react-toggle": "^1.1.10",
284
+ "@radix-ui/react-toggle-group": "^1.1.11",
279
285
  "@radix-ui/react-tooltip": "^1.2.8",
280
286
  "class-variance-authority": "^0.7.1",
281
287
  "clsx": "^2.1.1",