@godxjp/ui 13.8.0 → 13.9.1

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 (85) hide show
  1. package/dist/{checkbox-BpnDa6_M.d.ts → checkbox-bBfLARyF.d.ts} +1 -1
  2. package/dist/{chunk-3R3QVJCB.js → chunk-2RGPEFAW.js} +19 -1
  3. package/dist/{chunk-HRW7JDUJ.js → chunk-2RWFDQFE.js} +1 -1
  4. package/dist/{chunk-IMERLXSC.js → chunk-5LTW2LWF.js} +6 -1
  5. package/dist/{chunk-A3J2G2ZA.js → chunk-5YYENG2T.js} +3 -3
  6. package/dist/{chunk-YLRCDJMR.js → chunk-7WKODMCZ.js} +3 -2
  7. package/dist/{chunk-FLY23H4G.js → chunk-CXTSEQ6R.js} +4 -4
  8. package/dist/{chunk-3KPEZ5CF.js → chunk-J2DEWIYY.js} +1 -1
  9. package/dist/{chunk-IAJOP2Z3.js → chunk-LBYSX3VM.js} +4 -1
  10. package/dist/{chunk-BJTNKNMY.js → chunk-LCVXUCMB.js} +3 -3
  11. package/dist/{chunk-I5D4QYZI.js → chunk-N2WBUCVY.js} +2 -2
  12. package/dist/{chunk-4SSJ54R2.js → chunk-O6BVMDW4.js} +6 -6
  13. package/dist/{chunk-L6NMIUKC.js → chunk-OLOXW652.js} +3 -3
  14. package/dist/{chunk-PL4NEIVO.js → chunk-QROC2RMH.js} +1 -1
  15. package/dist/{chunk-P5KPCT6R.js → chunk-QVBOICFU.js} +2 -0
  16. package/dist/{chunk-QE4IYHJU.js → chunk-R4AB4S3E.js} +2 -2
  17. package/dist/{chunk-2MRAHKOD.js → chunk-SYNDTT2J.js} +1 -1
  18. package/dist/components/admin/index.d.ts +4 -4
  19. package/dist/components/admin/index.js +24 -24
  20. package/dist/components/data-display/card.d.ts +6 -4
  21. package/dist/components/data-display/card.js +1 -1
  22. package/dist/components/data-display/index.js +7 -7
  23. package/dist/components/data-display/scroll-area.js +1 -1
  24. package/dist/components/data-entry/calendar.d.ts +2 -2
  25. package/dist/components/data-entry/cascader.d.ts +2 -2
  26. package/dist/components/data-entry/cascader.js +4 -4
  27. package/dist/components/data-entry/checkbox.d.ts +3 -3
  28. package/dist/components/data-entry/color-picker.d.ts +2 -2
  29. package/dist/components/data-entry/command.js +1 -1
  30. package/dist/components/data-entry/date-picker.d.ts +2 -2
  31. package/dist/components/data-entry/date-picker.js +1 -1
  32. package/dist/components/data-entry/date-range-picker.d.ts +2 -2
  33. package/dist/components/data-entry/date-range-picker.js +1 -1
  34. package/dist/components/data-entry/index.d.ts +5 -5
  35. package/dist/components/data-entry/index.js +15 -15
  36. package/dist/components/data-entry/radio.d.ts +2 -2
  37. package/dist/components/data-entry/select.d.ts +2 -2
  38. package/dist/components/data-entry/select.js +3 -3
  39. package/dist/components/data-entry/slider.d.ts +2 -2
  40. package/dist/components/data-entry/switch.d.ts +2 -2
  41. package/dist/components/data-entry/time-picker.d.ts +2 -2
  42. package/dist/components/data-entry/transfer.d.ts +3 -3
  43. package/dist/components/data-entry/transfer.js +4 -4
  44. package/dist/components/data-entry/tree-select.d.ts +2 -2
  45. package/dist/components/data-entry/tree-select.js +5 -5
  46. package/dist/components/data-entry/upload.d.ts +3 -3
  47. package/dist/components/data-entry/upload.js +4 -4
  48. package/dist/components/data-grid/index.js +7 -7
  49. package/dist/components/feedback/dialog.js +2 -2
  50. package/dist/components/feedback/index.js +4 -4
  51. package/dist/components/feedback/sheet.d.ts +1 -1
  52. package/dist/components/feedback/sheet.js +1 -1
  53. package/dist/components/layout/index.d.ts +4 -4
  54. package/dist/components/layout/index.js +3 -3
  55. package/dist/components/navigation/index.js +6 -6
  56. package/dist/components/navigation/pagination.js +4 -4
  57. package/dist/components/navigation/steps.js +1 -1
  58. package/dist/components/ui/index.d.ts +3 -3
  59. package/dist/components/ui/index.js +15 -15
  60. package/dist/{data-entry.prop-C9QWj5Kl.d.ts → data-entry.prop-BSUaseKh.d.ts} +1 -1
  61. package/dist/{flex-X2EFU1d5.d.ts → flex-1Cy46L0M.d.ts} +1 -1
  62. package/dist/form/index.js +1 -1
  63. package/dist/index.d.ts +4 -4
  64. package/dist/index.js +26 -26
  65. package/dist/{layout.prop-D2be7gOo.d.ts → layout.prop-fCz-Vlie.d.ts} +2 -0
  66. package/dist/props/components/index.d.ts +2 -2
  67. package/dist/props/index.d.ts +2 -2
  68. package/dist/props/index.js +1 -1
  69. package/dist/{search-input-d1g8eW9z.d.ts → search-input-D4v1JGOA.d.ts} +1 -1
  70. package/dist/styles/alert-layout.css +5 -5
  71. package/dist/styles/badge-layout.css +1 -1
  72. package/dist/styles/card-layout.css +10 -10
  73. package/dist/styles/control.css +20 -20
  74. package/dist/styles/data-display-layout.css +10 -10
  75. package/dist/styles/data-entry-layout.css +5 -5
  76. package/dist/styles/dialog-layout.css +2 -2
  77. package/dist/styles/index.css +1 -1
  78. package/dist/styles/layout.css +10 -10
  79. package/dist/styles/navigation-layout.css +7 -7
  80. package/dist/styles/shell-layout.css +18 -18
  81. package/dist/styles/table-layout.css +7 -7
  82. package/dist/tokens/components/badge.css +3 -0
  83. package/dist/tokens/components/card.css +4 -0
  84. package/package.json +5 -3
  85. package/dist/{chunk-LVLPNKJP.js → chunk-IESBK6XZ.js} +1 -1
@@ -30,7 +30,7 @@
30
30
  display: flex;
31
31
  align-items: center;
32
32
  gap: var(--space-2);
33
- font-size: var(--font-size-sm);
33
+ font-size: var(--font-size-base);
34
34
  }
35
35
 
36
36
  .ui-context-menu-item,
@@ -101,7 +101,7 @@
101
101
  .ui-context-menu-shortcut,
102
102
  .ui-menubar-shortcut {
103
103
  margin-inline-start: auto;
104
- text-align: right;
104
+ text-align: end;
105
105
  color: hsl(var(--muted-foreground));
106
106
  font-size: var(--font-size-xs);
107
107
  }
@@ -154,7 +154,7 @@
154
154
  .ui-menubar-sub-trigger-icon {
155
155
  width: 1rem;
156
156
  height: 1rem;
157
- margin-left: auto;
157
+ margin-inline-start: auto;
158
158
  opacity: 0.75;
159
159
  }
160
160
 
@@ -208,7 +208,7 @@
208
208
  padding-inline: var(--space-2);
209
209
  padding-block: var(--space-2);
210
210
  height: var(--control-height);
211
- font-size: var(--font-size-sm);
211
+ font-size: var(--font-size-base);
212
212
  display: inline-flex;
213
213
  align-items: center;
214
214
  gap: var(--space-1);
@@ -218,14 +218,14 @@
218
218
  .ui-navigation-menu-trigger-icon {
219
219
  width: 0.9rem;
220
220
  height: 0.9rem;
221
- margin-left: var(--space-2);
221
+ margin-inline-start: var(--space-2);
222
222
  opacity: 0.7;
223
223
  }
224
224
 
225
225
  .ui-navigation-menu-content {
226
226
  position: absolute;
227
227
  top: 100%;
228
- left: 0;
228
+ inset-inline-start: 0;
229
229
  min-width: 14rem;
230
230
  z-index: 50;
231
231
  overflow: hidden;
@@ -244,7 +244,7 @@
244
244
 
245
245
  .ui-navigation-menu-viewport {
246
246
  position: absolute;
247
- left: 0;
247
+ inset-inline-start: 0;
248
248
  top: 100%;
249
249
  width: 100%;
250
250
  overflow: hidden;
@@ -28,7 +28,7 @@
28
28
  min-width: 0;
29
29
  flex-direction: column;
30
30
  overflow: hidden;
31
- border-right: 1px solid hsl(var(--border));
31
+ border-inline-end: 1px solid hsl(var(--border));
32
32
  background: hsl(var(--card));
33
33
  color: hsl(var(--foreground));
34
34
  }
@@ -99,7 +99,7 @@
99
99
  border-bottom: 1px solid hsl(var(--border));
100
100
  padding: var(--space-2) var(--space-4);
101
101
  color: hsl(var(--muted-foreground));
102
- font-size: var(--font-size-sm);
102
+ font-size: var(--font-size-base);
103
103
  }
104
104
 
105
105
  @media (max-width: 1023px) {
@@ -137,7 +137,7 @@
137
137
  background: transparent;
138
138
  color: inherit;
139
139
  font-family: inherit;
140
- text-align: left;
140
+ text-align: start;
141
141
  }
142
142
 
143
143
  .sb-product {
@@ -156,7 +156,7 @@
156
156
  place-items: center;
157
157
  border-radius: var(--radius);
158
158
  color: white;
159
- font-size: 0.75rem;
159
+ font-size: var(--font-size-xs);
160
160
  font-weight: 700;
161
161
  }
162
162
 
@@ -169,7 +169,7 @@
169
169
 
170
170
  .sb-product-name {
171
171
  overflow: hidden;
172
- font-size: var(--font-size-sm);
172
+ font-size: var(--font-size-base);
173
173
  font-weight: 700;
174
174
  line-height: 1.2;
175
175
  text-overflow: ellipsis;
@@ -240,8 +240,8 @@
240
240
  color: hsl(var(--muted-foreground));
241
241
  cursor: pointer;
242
242
  font-family: inherit;
243
- font-size: var(--font-size-sm);
244
- text-align: left;
243
+ font-size: var(--font-size-base);
244
+ text-align: start;
245
245
  }
246
246
 
247
247
  .sb-nav-item:hover,
@@ -297,7 +297,7 @@
297
297
 
298
298
  /* Collapsible group trigger chevron (rotates when open). */
299
299
  .sb-nav-group-trigger .sb-chevron {
300
- margin-left: auto;
300
+ margin-inline-start: auto;
301
301
  flex: 0 0 auto;
302
302
  opacity: 0.6;
303
303
  transition: transform 150ms ease;
@@ -314,8 +314,8 @@
314
314
  flex-direction: column;
315
315
  gap: 2px;
316
316
  margin: 2px 0 var(--space-1) calc(var(--space-2) + 0.6875rem);
317
- padding-left: var(--space-3);
318
- border-left: 1px solid hsl(var(--border));
317
+ padding-inline-start: var(--space-3);
318
+ border-inline-start: 1px solid hsl(var(--border));
319
319
  }
320
320
 
321
321
  .sb-nav-item--sub {
@@ -383,7 +383,7 @@
383
383
  color: inherit;
384
384
  cursor: pointer;
385
385
  font-family: inherit;
386
- text-align: left;
386
+ text-align: start;
387
387
  }
388
388
 
389
389
  .sb-user:hover,
@@ -410,13 +410,13 @@
410
410
  border-radius: var(--radius-pill);
411
411
  background: hsl(var(--secondary));
412
412
  color: hsl(var(--muted-foreground));
413
- font-size: 11px;
413
+ font-size: var(--font-size-2xs);
414
414
  font-weight: 500;
415
415
  }
416
416
 
417
417
  .sb-user-live {
418
418
  position: absolute;
419
- right: -1px;
419
+ inset-inline-end: -1px;
420
420
  bottom: -1px;
421
421
  width: 0.5625rem;
422
422
  height: 0.5625rem;
@@ -433,7 +433,7 @@
433
433
 
434
434
  .sb-user-name {
435
435
  overflow: hidden;
436
- font-size: 12px;
436
+ font-size: var(--font-size-xs);
437
437
  font-weight: 500;
438
438
  line-height: 1.3;
439
439
  text-overflow: ellipsis;
@@ -502,7 +502,7 @@
502
502
  color: hsl(var(--foreground));
503
503
  cursor: pointer;
504
504
  font: inherit;
505
- font-size: var(--font-size-sm);
505
+ font-size: var(--font-size-base);
506
506
  }
507
507
 
508
508
  .tb-chip:hover,
@@ -560,7 +560,7 @@
560
560
  color: hsl(var(--muted-foreground));
561
561
  cursor: pointer;
562
562
  font: inherit;
563
- font-size: var(--font-size-sm);
563
+ font-size: var(--font-size-base);
564
564
  }
565
565
 
566
566
  .tb-search svg,
@@ -572,7 +572,7 @@
572
572
  .kbd {
573
573
  display: inline-flex;
574
574
  align-items: center;
575
- margin-left: auto;
575
+ margin-inline-start: auto;
576
576
  padding: 1px 5px;
577
577
  border: 1px solid hsl(var(--border));
578
578
  border-bottom-width: 2px;
@@ -617,7 +617,7 @@
617
617
  .tb-bell-dot {
618
618
  position: absolute;
619
619
  top: 0.35rem;
620
- right: 0.35rem;
620
+ inset-inline-end: 0.35rem;
621
621
  width: 0.375rem;
622
622
  height: 0.375rem;
623
623
  border-radius: var(--radius-pill);
@@ -6,7 +6,7 @@
6
6
  [data-slot="table-head"] {
7
7
  height: var(--table-row-height);
8
8
  padding: var(--table-cell-padding-y) var(--table-cell-space-x);
9
- text-align: left;
9
+ text-align: start;
10
10
  vertical-align: middle;
11
11
  background: hsl(var(--secondary));
12
12
  font-size: var(--font-size-xs);
@@ -16,7 +16,7 @@
16
16
  }
17
17
 
18
18
  [data-slot="table-head"]:has([role="checkbox"]) {
19
- padding-right: 0;
19
+ padding-inline-end: 0;
20
20
  }
21
21
 
22
22
  /* A column with an empty header (icon / action column) shouldn't paint the
@@ -37,7 +37,7 @@
37
37
  }
38
38
 
39
39
  [data-slot="table-cell"]:has([role="checkbox"]) {
40
- padding-right: 0;
40
+ padding-inline-end: 0;
41
41
  }
42
42
 
43
43
  .ui-data-table-toolbar {
@@ -65,7 +65,7 @@
65
65
  display: flex;
66
66
  align-items: center;
67
67
  gap: var(--space-inline-sm);
68
- font-size: var(--font-size-sm);
68
+ font-size: var(--font-size-base);
69
69
  }
70
70
 
71
71
  .ui-data-table-bulk-actions {
@@ -125,7 +125,7 @@
125
125
  content: "";
126
126
  position: absolute;
127
127
  top: 0;
128
- right: var(--space-page-active-x);
128
+ inset-inline-end: var(--space-page-active-x);
129
129
  bottom: 0;
130
130
  z-index: 20;
131
131
  width: 1.75rem;
@@ -139,7 +139,7 @@
139
139
  }
140
140
 
141
141
  [data-slot="card-content"][data-flush] .ui-data-table-scroll::after {
142
- right: 0;
142
+ inset-inline-end: 0;
143
143
  }
144
144
 
145
145
  [data-slot="card-content"][data-flush] .ui-data-table-surface {
@@ -154,7 +154,7 @@
154
154
  }
155
155
 
156
156
  .ui-data-table-scroll::after {
157
- right: 0;
157
+ inset-inline-end: 0;
158
158
  }
159
159
  }
160
160
  }
@@ -4,4 +4,7 @@
4
4
  --badge-space-gap: var(--space-inline-xs);
5
5
  --badge-space-x: var(--space-2);
6
6
  --badge-space-y: var(--space-1);
7
+ /* Small-by-design (badge/pill/counter). A knob (rule #45) so a service can
8
+ * re-tune badge text without touching the global --font-size-xs step. */
9
+ --badge-font-size: var(--font-size-xs);
7
10
  }
@@ -15,6 +15,10 @@
15
15
  --card-border: var(--border);
16
16
  --card-header-background: var(--muted);
17
17
  --card-header-background-alpha: 0.55;
18
+ /* Banded-header divider — tokenised (rule #44) so a service theme can make it
19
+ * dashed / heavier / none without forking CSS. Pair with
20
+ * --card-header-background-alpha: 0 for a quiet borderless-band header. */
21
+ --card-header-border-bottom: 1px solid hsl(var(--card-border));
18
22
  --card-radius: var(--radius);
19
23
  --stat-card-label-font-size: var(--font-size-xs);
20
24
  --stat-card-label-font-weight: var(--font-weight-medium);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@godxjp/ui",
3
- "version": "13.8.0",
3
+ "version": "13.9.1",
4
4
  "type": "module",
5
5
  "packageManager": "pnpm@10.29.1",
6
6
  "sideEffects": false,
@@ -266,14 +266,16 @@
266
266
  "test:watch": "vitest",
267
267
  "test:coverage": "vitest run --coverage",
268
268
  "check:example-imports": "node scripts/check-example-imports.mjs",
269
- "verify": "pnpm typecheck && pnpm lint && pnpm format && pnpm build && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:control-sizing && pnpm check:mcp-sync && pnpm check:mcp-orphans && pnpm test",
270
- "verify:release": "pnpm typecheck && pnpm lint && pnpm build && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:control-sizing && pnpm check:mcp-sync && pnpm check:mcp-orphans && pnpm check:mcp-prop-sync && pnpm test",
269
+ "verify": "pnpm typecheck && pnpm lint && pnpm format && pnpm build && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-sync && pnpm check:mcp-orphans && pnpm test",
270
+ "verify:release": "pnpm typecheck && pnpm lint && pnpm build && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-sync && pnpm check:mcp-orphans && pnpm check:mcp-prop-sync && pnpm test",
271
271
  "check:mcp-sync": "node scripts/check-mcp-sync.mjs",
272
272
  "check:mcp-orphans": "node scripts/check-mcp-orphans.mjs",
273
273
  "check:mcp-prop-sync": "node scripts/check-mcp-prop-sync.mjs",
274
274
  "check:prop-vocabulary": "node scripts/check-prop-vocabulary.mjs",
275
275
  "check:token-tiers": "node scripts/check-token-tiers.mjs",
276
276
  "check:control-sizing": "node scripts/check-control-sizing.mjs",
277
+ "check:rtl": "node scripts/check-rtl.mjs",
278
+ "check:typography": "node scripts/check-typography.mjs",
277
279
  "check:core-isolation": "node scripts/check-core-isolation.mjs",
278
280
  "release": "node scripts/release.mjs",
279
281
  "preview": "node preview/scripts/kill-port.mjs && vite --config preview/vite.config.ts --port 6008 --strictPort",
@@ -1,6 +1,6 @@
1
1
  import { Input } from './chunk-K24AQV4R.js';
2
- import { Label } from './chunk-7PWBC4BY.js';
3
2
  import { useTranslation } from './chunk-B6S6LTWT.js';
3
+ import { Label } from './chunk-7PWBC4BY.js';
4
4
  import { useDebouncedValue } from './chunk-LFW37FGG.js';
5
5
  import { cn } from './chunk-U7N2A7A3.js';
6
6
  import * as React from 'react';