@godxjp/ui 13.0.0 → 13.2.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 (103) hide show
  1. package/dist/{checkbox-CwfNgQ9d.d.ts → checkbox-DKaBna6z.d.ts} +1 -1
  2. package/dist/{chunk-55S5N667.js → chunk-33AJDSML.js} +1 -1
  3. package/dist/{chunk-VNQ2NW22.js → chunk-4ADB5EKN.js} +3 -3
  4. package/dist/{chunk-WIRQNCCP.js → chunk-5NIGHXT5.js} +2 -2
  5. package/dist/{chunk-AKFR72DQ.js → chunk-74OPJG3N.js} +48 -50
  6. package/dist/{chunk-MTJHEQ46.js → chunk-BABHI2W7.js} +49 -51
  7. package/dist/{chunk-M4PZNAMV.js → chunk-E6J7ZTDM.js} +17 -8
  8. package/dist/{chunk-KQ36FDEE.js → chunk-HBOL5LSC.js} +1 -1
  9. package/dist/{chunk-XUEDRPWF.js → chunk-IMERLXSC.js} +2 -2
  10. package/dist/{chunk-NVNDO3FI.js → chunk-JAEA2IBC.js} +2 -2
  11. package/dist/{chunk-572FHZ3M.js → chunk-LEVFHRHU.js} +2 -2
  12. package/dist/{chunk-RX2F2U6D.js → chunk-NXF64JCT.js} +27 -14
  13. package/dist/{chunk-IYLJQVKV.js → chunk-SSNPCHG6.js} +2 -2
  14. package/dist/{chunk-CRERCLIZ.js → chunk-TBJBVEIP.js} +21 -2
  15. package/dist/{chunk-YVZPAN2W.js → chunk-UVJE3FYT.js} +1 -1
  16. package/dist/{chunk-IZGLEPGW.js → chunk-XGXI52Z7.js} +21 -4
  17. package/dist/{chunk-IWAIIBSW.js → chunk-XY2QN4VR.js} +1 -1
  18. package/dist/{chunk-XTVUYEJD.js → chunk-Z37463ZK.js} +60 -2
  19. package/dist/{chunk-WNOX32KG.js → chunk-Z652BSX7.js} +3 -3
  20. package/dist/{chunk-5KK3KJ6L.js → chunk-ZKUB7DHO.js} +1 -1
  21. package/dist/components/admin/index.d.ts +9 -9
  22. package/dist/components/admin/index.js +27 -27
  23. package/dist/components/data-display/badge.d.ts +8 -5
  24. package/dist/components/data-display/badge.js +1 -1
  25. package/dist/components/data-display/index.d.ts +4 -4
  26. package/dist/components/data-display/index.js +6 -6
  27. package/dist/components/data-entry/calendar.d.ts +3 -3
  28. package/dist/components/data-entry/calendar.js +2 -2
  29. package/dist/components/data-entry/cascader.d.ts +3 -3
  30. package/dist/components/data-entry/cascader.js +2 -2
  31. package/dist/components/data-entry/checkbox.d.ts +4 -4
  32. package/dist/components/data-entry/color-picker.d.ts +3 -3
  33. package/dist/components/data-entry/date-picker.d.ts +3 -3
  34. package/dist/components/data-entry/date-picker.js +3 -3
  35. package/dist/components/data-entry/date-range-picker.d.ts +3 -3
  36. package/dist/components/data-entry/date-range-picker.js +3 -3
  37. package/dist/components/data-entry/index.d.ts +5 -5
  38. package/dist/components/data-entry/index.js +19 -19
  39. package/dist/components/data-entry/radio.d.ts +3 -3
  40. package/dist/components/data-entry/select.d.ts +3 -3
  41. package/dist/components/data-entry/select.js +2 -2
  42. package/dist/components/data-entry/slider.d.ts +3 -3
  43. package/dist/components/data-entry/slider.js +1 -1
  44. package/dist/components/data-entry/switch.d.ts +3 -3
  45. package/dist/components/data-entry/time-picker.d.ts +3 -3
  46. package/dist/components/data-entry/time-picker.js +2 -2
  47. package/dist/components/data-entry/transfer.d.ts +4 -4
  48. package/dist/components/data-entry/transfer.js +4 -4
  49. package/dist/components/data-entry/tree-select.d.ts +3 -3
  50. package/dist/components/data-entry/tree-select.js +3 -3
  51. package/dist/components/data-entry/upload.d.ts +4 -4
  52. package/dist/components/data-entry/upload.js +6 -6
  53. package/dist/components/data-grid/index.js +5 -5
  54. package/dist/components/feedback/alert.d.ts +3 -3
  55. package/dist/components/feedback/alert.js +2 -2
  56. package/dist/components/feedback/dialog.d.ts +2 -2
  57. package/dist/components/feedback/dialog.js +4 -4
  58. package/dist/components/feedback/index.d.ts +2 -2
  59. package/dist/components/feedback/index.js +7 -7
  60. package/dist/components/feedback/sheet.d.ts +1 -1
  61. package/dist/components/feedback/sheet.js +1 -1
  62. package/dist/components/general/button.d.ts +5 -3
  63. package/dist/components/general/button.js +1 -1
  64. package/dist/components/general/index.d.ts +34 -3
  65. package/dist/components/general/index.js +46 -2
  66. package/dist/components/layout/index.js +3 -3
  67. package/dist/components/navigation/index.d.ts +6 -6
  68. package/dist/components/navigation/index.js +7 -7
  69. package/dist/components/navigation/pagination.d.ts +3 -3
  70. package/dist/components/navigation/pagination.js +3 -3
  71. package/dist/components/navigation/steps.d.ts +4 -4
  72. package/dist/components/query/index.d.ts +3 -3
  73. package/dist/components/query/index.js +2 -2
  74. package/dist/components/ui/index.d.ts +7 -7
  75. package/dist/components/ui/index.js +24 -24
  76. package/dist/{data-display.prop-BOtnzI17.d.ts → data-display.prop-BCC2zOTq.d.ts} +2 -2
  77. package/dist/{data-entry.prop-BGxD81Lf.d.ts → data-entry.prop-BGlwRXlJ.d.ts} +4 -2
  78. package/dist/{data-table-DO-gU4wJ.d.ts → data-table-B6HC3EFK.d.ts} +3 -3
  79. package/dist/{data.prop-D4uDw_SW.d.ts → data.prop-H9nROsUg.d.ts} +1 -1
  80. package/dist/{feedback.prop-CtrL24E1.d.ts → feedback.prop-sEx89LTF.d.ts} +1 -1
  81. package/dist/{filter-bar-tEwfKthz.d.ts → filter-bar-DPMQmIpX.d.ts} +1 -1
  82. package/dist/general.prop-4ERae5Sj.d.ts +46 -0
  83. package/dist/index.d.ts +9 -9
  84. package/dist/index.js +35 -35
  85. package/dist/interaction.prop-B44hePpl.d.ts +46 -0
  86. package/dist/{navigation.prop-Cc_Iu87S.d.ts → navigation.prop-DMbjEig7.d.ts} +1 -1
  87. package/dist/props/components/index.d.ts +8 -8
  88. package/dist/props/index.d.ts +8 -8
  89. package/dist/props/index.js +1 -1
  90. package/dist/props/registry.d.ts +47 -2
  91. package/dist/props/registry.js +1 -1
  92. package/dist/props/vocabulary/index.d.ts +2 -2
  93. package/dist/{query.prop-CyNxaCHe.d.ts → query.prop-cp6fEgOD.d.ts} +1 -1
  94. package/dist/{search-input-BPtjUAa1.d.ts → search-input-CxGW8_7q.d.ts} +1 -1
  95. package/dist/styles/badge-layout.css +4 -0
  96. package/dist/styles/dialog-layout.css +30 -11
  97. package/dist/styles/index.css +1 -0
  98. package/dist/styles/text-layout.css +119 -0
  99. package/package.json +1 -1
  100. package/dist/general.prop-1GgJkf4b.d.ts +0 -16
  101. package/dist/interaction.prop-R77MnAMZ.d.ts +0 -31
  102. package/dist/{chunk-DEUHS5A2.js → chunk-QATON677.js} +1 -1
  103. package/dist/{chunk-XZXE5KVV.js → chunk-ZFBIKJSJ.js} +1 -1
@@ -204,6 +204,41 @@ declare const VOCABULARY_REGISTRY: {
204
204
  readonly category: "interaction";
205
205
  readonly description: "Button size preset; includes documented icon-only subset";
206
206
  };
207
+ readonly BadgeVariantProp: {
208
+ readonly file: "vocabulary/interaction.prop.ts";
209
+ readonly category: "interaction";
210
+ readonly description: "Badge visual variant (default | secondary | outline | dashed)";
211
+ };
212
+ readonly ShapeProp: {
213
+ readonly file: "vocabulary/interaction.prop.ts";
214
+ readonly category: "interaction";
215
+ readonly description: "Corner shape default | pill | sharp — shared by Button + Badge (radius tokens)";
216
+ };
217
+ readonly TextSizeProp: {
218
+ readonly file: "vocabulary/interaction.prop.ts";
219
+ readonly category: "interaction";
220
+ readonly description: "Text size — golden-ratio type-scale steps (2xs…xl), never an arbitrary px";
221
+ };
222
+ readonly TextToneProp: {
223
+ readonly file: "vocabulary/interaction.prop.ts";
224
+ readonly category: "interaction";
225
+ readonly description: "Text colour intent — semantic foreground tokens";
226
+ };
227
+ readonly FontWeightProp: {
228
+ readonly file: "vocabulary/interaction.prop.ts";
229
+ readonly category: "interaction";
230
+ readonly description: "Font weight regular | medium | semibold (system 2-weight, 400/500)";
231
+ };
232
+ readonly HeadingLevelProp: {
233
+ readonly file: "vocabulary/interaction.prop.ts";
234
+ readonly category: "interaction";
235
+ readonly description: "Heading level 1-4 — sizes from --heading-h* and the semantic element";
236
+ };
237
+ readonly TextAlignProp: {
238
+ readonly file: "vocabulary/interaction.prop.ts";
239
+ readonly category: "interaction";
240
+ readonly description: "Inline text alignment start | center | end (logical, RTL-safe)";
241
+ };
207
242
  readonly SizeProp: {
208
243
  readonly file: "vocabulary/interaction.prop.ts";
209
244
  readonly category: "interaction";
@@ -436,7 +471,17 @@ declare const COMPONENT_PROP_REGISTRY: {
436
471
  readonly ButtonProp: {
437
472
  readonly group: "general";
438
473
  readonly file: "components/general.prop.ts";
439
- readonly vocabulary: readonly ["ButtonVariantProp", "SizeProp", "AsChildProp", "DisabledProp", "OnClickProp"];
474
+ readonly vocabulary: readonly ["ButtonVariantProp", "SizeProp", "ShapeProp", "AsChildProp", "DisabledProp", "OnClickProp"];
475
+ };
476
+ readonly TextProp: {
477
+ readonly group: "general";
478
+ readonly file: "components/general.prop.ts";
479
+ readonly vocabulary: readonly ["TextSizeProp", "TextToneProp", "FontWeightProp", "TextAlignProp", "ClassNameProp"];
480
+ };
481
+ readonly HeadingProp: {
482
+ readonly group: "general";
483
+ readonly file: "components/general.prop.ts";
484
+ readonly vocabulary: readonly ["HeadingLevelProp", "TextToneProp", "TextAlignProp", "ClassNameProp"];
440
485
  };
441
486
  readonly InputProp: {
442
487
  readonly group: "data-entry";
@@ -623,7 +668,7 @@ declare const COMPONENT_PROP_REGISTRY: {
623
668
  readonly BadgeProp: {
624
669
  readonly group: "data-display";
625
670
  readonly file: "components/data-display.prop.ts";
626
- readonly vocabulary: readonly ["ToneProp", "ChildrenProp", "ClassNameProp"];
671
+ readonly vocabulary: readonly ["BadgeVariantProp", "ShapeProp", "ToneProp", "ChildrenProp", "ClassNameProp"];
627
672
  };
628
673
  readonly DataTableProp: {
629
674
  readonly group: "data-display";
@@ -1 +1 @@
1
- export { COMPONENT_PROP_REGISTRY, PROP_ALIASES_FORBIDDEN, VOCABULARY_REGISTRY } from '../chunk-XTVUYEJD.js';
1
+ export { COMPONENT_PROP_REGISTRY, PROP_ALIASES_FORBIDDEN, VOCABULARY_REGISTRY } from '../chunk-Z37463ZK.js';
@@ -1,7 +1,7 @@
1
1
  export { A as AsChildProp, C as ChildrenProp, a as ClassNameProp, D as DefaultOpenProp, b as DefaultValueProp, c as DisabledProp, E as ErrorProp, H as HandlerProp, d as HelperProp, I as IdProp, L as LabelProp, N as NameProp, O as OnChangeProp, e as OnClickProp, f as OnOpenChangeProp, g as OnValueChangeProp, h as OpenProp, P as PendingProp, i as PlaceholderProp, R as RequiredProp, V as ValueProp, W as WidthProp } from '../../shared.prop-BvMSLFJ6.js';
2
2
  export { A as ActionProp, a as ActionsProp, C as CancelLabelProp, b as ConfirmLabelProp, D as DescriptionProp, E as EmptyMessageProp, c as ExtraProp, F as FooterProp, I as IconProp, S as SubtitleProp, T as TitleProp } from '../../content.prop-DrV_zDy-.js';
3
3
  export { D as DensityProp, G as GapProp, P as PageContainerVariantProp, a as PageDensityProp, T as TableDensityProp } from '../../layout.prop-CXvl2rVR.js';
4
- export { A as AlertVariantProp, B as BreakpointProp, a as ButtonSizeProp, b as ButtonVariantProp, C as ColumnAlignProp, c as ConfirmVariantProp, F as FormLayoutProp, S as SizeProp, d as SortDirectionProp, e as SortStateProp, T as ToneProp } from '../../interaction.prop-R77MnAMZ.js';
4
+ export { A as AlertVariantProp, B as BadgeVariantProp, a as BreakpointProp, b as ButtonSizeProp, c as ButtonVariantProp, C as ColumnAlignProp, d as ConfirmVariantProp, F as FontWeightProp, e as FormLayoutProp, H as HeadingLevelProp, S as ShapeProp, f as SizeProp, g as SortDirectionProp, h as SortStateProp, T as TextAlignProp, i as TextSizeProp, j as TextToneProp, k as ToneProp } from '../../interaction.prop-B44hePpl.js';
5
5
  export { B as BreadcrumbItemProp, a as BreadcrumbProp } from '../../navigation.prop-CXDaVNaR.js';
6
- export { C as ColumnDefProp, G as GetRowIdProp, H as HasActiveFiltersProp, O as OnClearFiltersProp, a as OnRowClickProp, b as OnSearchChangeProp, c as OnSelectChangeProp, d as OnSortChangeProp, e as OnTableDensityChangeProp, S as SelectedIdsProp } from '../../data.prop-D4uDw_SW.js';
6
+ export { C as ColumnDefProp, G as GetRowIdProp, H as HasActiveFiltersProp, O as OnClearFiltersProp, a as OnRowClickProp, b as OnSearchChangeProp, c as OnSelectChangeProp, d as OnSortChangeProp, e as OnTableDensityChangeProp, S as SelectedIdsProp } from '../../data.prop-H9nROsUg.js';
7
7
  import 'react';
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { UseQueryResult, UseInfiniteQueryResult, InfiniteData, QueryKey, UseMutationResult } from '@tanstack/react-query';
3
3
  import { LinkProps } from 'react-router-dom';
4
- import { B as ButtonProp } from './general.prop-1GgJkf4b.js';
4
+ import { B as ButtonProp } from './general.prop-4ERae5Sj.js';
5
5
  import { H as HandlerProp, a as ClassNameProp } from './shared.prop-BvMSLFJ6.js';
6
6
 
7
7
  /** Query / async lifecycle helpers — @see docs/COMPONENTS.md#query */
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { g as FormFieldProp, F as FieldProp } from './data-entry.prop-BGxD81Lf.js';
2
+ import { g as FormFieldProp, F as FieldProp } from './data-entry.prop-BGlwRXlJ.js';
3
3
  import * as React from 'react';
4
4
 
5
5
  declare function FormField({ id, label, required, helper, error, labelAddon, layout: layoutProp, labelWidth: labelWidthProp, controlWidth: controlWidthProp, colSpan, className, children, }: FormFieldProp): react_jsx_runtime.JSX.Element;
@@ -6,6 +6,10 @@
6
6
  [data-slot="badge"] {
7
7
  display: inline-flex;
8
8
  align-items: center;
9
+ /* Center on the text x-height when the badge sits INLINE with running text (an inline-flex box
10
+ * defaults to baseline → it rides high / "valign top" next to a label). Ignored in flex/grid
11
+ * containers, so table cells and Flex rows are unaffected. */
12
+ vertical-align: middle;
9
13
  gap: var(--badge-space-gap);
10
14
  padding: var(--badge-space-y) var(--badge-space-x);
11
15
  border-radius: var(--radius-md);
@@ -11,6 +11,16 @@
11
11
  --sheet-pad-y: var(--space-chrome-y);
12
12
  }
13
13
 
14
+ /* Sheet header/footer dividers appear ONLY when a SheetBody is present (mirrors the dialog rule) —
15
+ * a body-less sheet never shows a doubled header-bottom + footer-top line. */
16
+ [data-slot="sheet-content"]:has([data-slot="sheet-body"]) [data-slot="sheet-header"] {
17
+ border-bottom: 1px solid hsl(var(--border));
18
+ }
19
+
20
+ [data-slot="sheet-content"]:has([data-slot="sheet-body"]) [data-slot="sheet-footer"] {
21
+ border-top: 1px solid hsl(var(--border));
22
+ }
23
+
14
24
  .ui-dialog-overlay {
15
25
  position: fixed;
16
26
  inset: 0;
@@ -55,28 +65,20 @@
55
65
  scroll-padding-block: var(--space-1);
56
66
  }
57
67
 
58
- /* Header = full-bleed band with a bottom border + the shared chrome padding MIRRORS the footer so
59
- * the two are symmetric pinned bars (same as Sheet/Drawer). */
68
+ /* Header & footer are PLAIN stacked sections by default the dialog padding gives the inset and the
69
+ * content `gap` gives the header↔footer spacing. No border band here, so a simple confirm dialog
70
+ * (header + footer, NO body) never shows an internal divider or a doubled line + padding. */
60
71
  [data-slot="dialog-header"] {
61
72
  display: flex;
62
73
  flex-direction: column;
63
74
  gap: var(--space-stack-xs);
64
75
  text-align: start;
65
- margin-inline: calc(-1 * var(--dialog-space-x));
66
- margin-block-start: calc(-1 * var(--dialog-space-y));
67
- padding: var(--dialog-space-y) var(--dialog-space-x);
68
- border-bottom: 1px solid hsl(var(--border));
69
76
  }
70
77
 
71
- /* Footer = full-bleed band with a top border + the same chrome padding (mirror of the header). */
72
78
  [data-slot="dialog-footer"] {
73
79
  display: flex;
74
80
  flex-direction: column-reverse;
75
81
  gap: var(--space-inline-sm);
76
- margin-inline: calc(-1 * var(--dialog-space-x));
77
- margin-block-end: calc(-1 * var(--dialog-space-y));
78
- padding: var(--dialog-space-y) var(--dialog-space-x);
79
- border-top: 1px solid hsl(var(--border));
80
82
  }
81
83
 
82
84
  @media (min-width: 640px) {
@@ -86,6 +88,23 @@
86
88
  }
87
89
  }
88
90
 
91
+ /* Scrollable-body layout (Ant Modal): ONLY when a body is present do header & footer become
92
+ * full-bleed pinned bands with a divider, so the body scrolls between two fixed bars. Without a
93
+ * body the dividers (and their band padding) collapse — fixes the double-border + oversized gap. */
94
+ [data-slot="dialog-content"]:has([data-slot="dialog-body"]) [data-slot="dialog-header"] {
95
+ margin-inline: calc(-1 * var(--dialog-space-x));
96
+ margin-block-start: calc(-1 * var(--dialog-space-y));
97
+ padding: var(--dialog-space-y) var(--dialog-space-x);
98
+ border-bottom: 1px solid hsl(var(--border));
99
+ }
100
+
101
+ [data-slot="dialog-content"]:has([data-slot="dialog-body"]) [data-slot="dialog-footer"] {
102
+ margin-inline: calc(-1 * var(--dialog-space-x));
103
+ margin-block-end: calc(-1 * var(--dialog-space-y));
104
+ padding: var(--dialog-space-y) var(--dialog-space-x);
105
+ border-top: 1px solid hsl(var(--border));
106
+ }
107
+
89
108
  [data-slot="dialog-close"] {
90
109
  position: absolute;
91
110
  inset-inline-end: var(--dialog-close-space-offset);
@@ -30,6 +30,7 @@
30
30
  @import "./layout.css";
31
31
  @import "./control.css";
32
32
  @import "./card-layout.css";
33
+ @import "./text-layout.css";
33
34
  @import "./table-layout.css";
34
35
  @import "./dialog-layout.css";
35
36
  @import "./alert-layout.css";
@@ -0,0 +1,119 @@
1
+ /*
2
+ * TEXT / HEADING — typographic primitives (@godxjp/ui).
3
+ * Token-driven ONLY: size = golden-ratio type scale, weight = the 2-weight system (400/500),
4
+ * tone = semantic foreground tokens. No arbitrary px, no font-semibold=600. Components emit
5
+ * data-slot + data-* flags; all styling lives here.
6
+ */
7
+
8
+ @layer components {
9
+ .ui-text {
10
+ margin: 0;
11
+ }
12
+
13
+ /* Size — steps of the golden-ratio scale (sm = base). */
14
+ [data-slot="text"][data-size="2xs"] {
15
+ font-size: var(--font-size-2xs);
16
+ }
17
+ [data-slot="text"][data-size="xs"] {
18
+ font-size: var(--font-size-xs);
19
+ }
20
+ [data-slot="text"][data-size="sm"] {
21
+ font-size: var(--font-size-sm);
22
+ }
23
+ [data-slot="text"][data-size="md"] {
24
+ font-size: var(--font-size-base);
25
+ }
26
+ [data-slot="text"][data-size="lg"] {
27
+ font-size: var(--font-size-lg);
28
+ }
29
+ [data-slot="text"][data-size="xl"] {
30
+ font-size: var(--font-size-xl);
31
+ }
32
+
33
+ /* Weight — system 2-weight; semibold resolves to the 500 token (not 600). */
34
+ [data-slot="text"][data-weight="regular"] {
35
+ font-weight: var(--font-weight-normal);
36
+ }
37
+ [data-slot="text"][data-weight="medium"] {
38
+ font-weight: var(--font-weight-medium);
39
+ }
40
+ [data-slot="text"][data-weight="semibold"] {
41
+ font-weight: var(--font-weight-semibold);
42
+ }
43
+
44
+ /* Tone + Heading tone — semantic foreground tokens. */
45
+ [data-slot="text"][data-tone="default"],
46
+ [data-slot="heading"][data-tone="default"] {
47
+ color: hsl(var(--foreground));
48
+ }
49
+ [data-slot="text"][data-tone="muted"],
50
+ [data-slot="heading"][data-tone="muted"] {
51
+ color: hsl(var(--muted-foreground));
52
+ }
53
+ [data-slot="text"][data-tone="primary"],
54
+ [data-slot="heading"][data-tone="primary"] {
55
+ color: hsl(var(--primary));
56
+ }
57
+ [data-slot="text"][data-tone="success"],
58
+ [data-slot="heading"][data-tone="success"] {
59
+ color: hsl(var(--success));
60
+ }
61
+ [data-slot="text"][data-tone="warning"],
62
+ [data-slot="heading"][data-tone="warning"] {
63
+ color: hsl(var(--warning));
64
+ }
65
+ [data-slot="text"][data-tone="destructive"],
66
+ [data-slot="heading"][data-tone="destructive"] {
67
+ color: hsl(var(--destructive));
68
+ }
69
+ [data-slot="text"][data-tone="info"],
70
+ [data-slot="heading"][data-tone="info"] {
71
+ color: hsl(var(--info));
72
+ }
73
+
74
+ /* Alignment (logical), truncate, tabular, mono — shared by text + heading. */
75
+ [data-slot="text"][data-align="start"],
76
+ [data-slot="heading"][data-align="start"] {
77
+ text-align: start;
78
+ }
79
+ [data-slot="text"][data-align="center"],
80
+ [data-slot="heading"][data-align="center"] {
81
+ text-align: center;
82
+ }
83
+ [data-slot="text"][data-align="end"],
84
+ [data-slot="heading"][data-align="end"] {
85
+ text-align: end;
86
+ }
87
+ [data-slot="text"][data-truncate],
88
+ [data-slot="heading"][data-truncate] {
89
+ overflow: hidden;
90
+ text-overflow: ellipsis;
91
+ white-space: nowrap;
92
+ }
93
+ [data-slot="text"][data-tabular] {
94
+ font-variant-numeric: tabular-nums;
95
+ }
96
+ [data-slot="text"][data-mono] {
97
+ font-family: var(--font-family-mono, ui-monospace, "SFMono-Regular", monospace);
98
+ }
99
+
100
+ /* Heading — sized from the --heading-h* tokens, medium weight, tight rhythm. */
101
+ [data-slot="heading"] {
102
+ margin: 0;
103
+ font-weight: var(--font-weight-medium);
104
+ letter-spacing: var(--letter-spacing-tight);
105
+ line-height: var(--line-height-tight);
106
+ }
107
+ [data-slot="heading"][data-level="1"] {
108
+ font-size: var(--heading-h1);
109
+ }
110
+ [data-slot="heading"][data-level="2"] {
111
+ font-size: var(--heading-h2);
112
+ }
113
+ [data-slot="heading"][data-level="3"] {
114
+ font-size: var(--heading-h3);
115
+ }
116
+ [data-slot="heading"][data-level="4"] {
117
+ font-size: var(--heading-h4);
118
+ }
119
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@godxjp/ui",
3
- "version": "13.0.0",
3
+ "version": "13.2.0",
4
4
  "type": "module",
5
5
  "packageManager": "pnpm@10.29.1",
6
6
  "sideEffects": false,
@@ -1,16 +0,0 @@
1
- import * as React from 'react';
2
- import { A as AsChildProp, e as OnClickProp, c as DisabledProp } from './shared.prop-BvMSLFJ6.js';
3
- import { b as ButtonVariantProp, a as ButtonSizeProp } from './interaction.prop-R77MnAMZ.js';
4
-
5
- /** Foundation component prop types — @see docs/COMPONENTS.md#foundation */
6
-
7
- /** @see Button */
8
- type ButtonProp = React.ButtonHTMLAttributes<HTMLButtonElement> & {
9
- variant?: ButtonVariantProp;
10
- size?: ButtonSizeProp;
11
- asChild?: AsChildProp;
12
- onClick?: OnClickProp;
13
- disabled?: DisabledProp;
14
- };
15
-
16
- export type { ButtonProp as B };
@@ -1,31 +0,0 @@
1
- /**
2
- * Interaction & visual variant prop types.
3
- * @see docs/PROPS-VOCABULARY.md#interaction-variants
4
- */
5
- /** Button visual style. */
6
- type ButtonVariantProp = "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
7
- /** Button size preset. */
8
- type SizeProp = "xs" | "sm" | "md" | "lg";
9
- /** Button size preset; icon-only sizes are a documented Button subset. */
10
- type ButtonSizeProp = SizeProp | "default" | "icon" | "icon-xs" | "icon-sm" | "icon-lg";
11
- /** Form layout — label position relative to its control (Ant-style). */
12
- type FormLayoutProp = "vertical" | "horizontal" | "inline";
13
- /** Responsive breakpoint name (mobile-first); used by `collapseBelow` etc. */
14
- type BreakpointProp = "sm" | "md" | "lg" | "xl";
15
- /** Dialog confirm button emphasis. */
16
- type ConfirmVariantProp = "default" | "destructive";
17
- /** Semantic color/status intent. */
18
- type ToneProp = "default" | "success" | "warning" | "destructive" | "info" | "muted" | "neutral";
19
- /** Inline Alert visual treatment. */
20
- type AlertVariantProp = "default";
21
- /** Sort direction for table columns. */
22
- type SortDirectionProp = "asc" | "desc";
23
- /** Table column text alignment. */
24
- type ColumnAlignProp = "left" | "center" | "right";
25
- /** Active sort state on DataTable. */
26
- type SortStateProp = {
27
- key: string;
28
- direction: SortDirectionProp;
29
- };
30
-
31
- export type { AlertVariantProp as A, BreakpointProp as B, ColumnAlignProp as C, FormLayoutProp as F, SizeProp as S, ToneProp as T, ButtonSizeProp as a, ButtonVariantProp as b, ConfirmVariantProp as c, SortDirectionProp as d, SortStateProp as e };
@@ -1,5 +1,5 @@
1
- import { Tooltip, TooltipTrigger, TooltipContent } from './chunk-32WO3YLB.js';
2
1
  import { DropdownMenu, DropdownMenuTrigger } from './chunk-LMKUKCTN.js';
2
+ import { Tooltip, TooltipTrigger, TooltipContent } from './chunk-32WO3YLB.js';
3
3
  import { Collapsible, CollapsibleTrigger, CollapsibleContent } from './chunk-DV52WNXO.js';
4
4
  import { densityClass, pageContainerVariantClass } from './chunk-INIIF7F7.js';
5
5
  import { Popover, PopoverTrigger, PopoverContent } from './chunk-DY5C44UP.js';
@@ -1,6 +1,6 @@
1
1
  import { Input } from './chunk-BNXPDUO4.js';
2
- import { useTranslation } from './chunk-H2TX3OPW.js';
3
2
  import { Label } from './chunk-7PWBC4BY.js';
3
+ import { useTranslation } from './chunk-H2TX3OPW.js';
4
4
  import { useDebouncedValue } from './chunk-LFW37FGG.js';
5
5
  import { cn } from './chunk-U7N2A7A3.js';
6
6
  import * as React from 'react';