@godxjp/ui 13.8.0 → 13.9.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 (86) hide show
  1. package/dist/{checkbox-BpnDa6_M.d.ts → checkbox-bBfLARyF.d.ts} +1 -1
  2. package/dist/{chunk-HRW7JDUJ.js → chunk-3UTHNXKB.js} +1 -1
  3. package/dist/{chunk-IMERLXSC.js → chunk-5LTW2LWF.js} +6 -1
  4. package/dist/{chunk-4SSJ54R2.js → chunk-6SZKFJYY.js} +5 -5
  5. package/dist/{chunk-YLRCDJMR.js → chunk-E3Z3XCQR.js} +3 -2
  6. package/dist/{chunk-FLY23H4G.js → chunk-HNL7CJFO.js} +3 -3
  7. package/dist/{chunk-QE4IYHJU.js → chunk-IRBI2EZ2.js} +2 -2
  8. package/dist/{chunk-3KPEZ5CF.js → chunk-J2DEWIYY.js} +1 -1
  9. package/dist/{chunk-L6NMIUKC.js → chunk-KZ7ZDNUN.js} +2 -2
  10. package/dist/{chunk-I5D4QYZI.js → chunk-N2WBUCVY.js} +2 -2
  11. package/dist/{chunk-PL4NEIVO.js → chunk-QROC2RMH.js} +1 -1
  12. package/dist/{chunk-P5KPCT6R.js → chunk-QVBOICFU.js} +2 -0
  13. package/dist/{chunk-A3J2G2ZA.js → chunk-TRBD4RXJ.js} +3 -3
  14. package/dist/{chunk-2MRAHKOD.js → chunk-UT6DAJUL.js} +1 -1
  15. package/dist/components/admin/index.d.ts +4 -4
  16. package/dist/components/admin/index.js +27 -27
  17. package/dist/components/data-display/card.d.ts +4 -2
  18. package/dist/components/data-display/card.js +1 -1
  19. package/dist/components/data-display/index.js +8 -8
  20. package/dist/components/data-display/scroll-area.js +1 -1
  21. package/dist/components/data-entry/calendar.d.ts +2 -2
  22. package/dist/components/data-entry/cascader.d.ts +2 -2
  23. package/dist/components/data-entry/cascader.js +3 -3
  24. package/dist/components/data-entry/checkbox.d.ts +3 -3
  25. package/dist/components/data-entry/color-picker.d.ts +2 -2
  26. package/dist/components/data-entry/date-picker.d.ts +2 -2
  27. package/dist/components/data-entry/date-picker.js +3 -3
  28. package/dist/components/data-entry/date-range-picker.d.ts +2 -2
  29. package/dist/components/data-entry/date-range-picker.js +1 -1
  30. package/dist/components/data-entry/index.d.ts +5 -5
  31. package/dist/components/data-entry/index.js +20 -20
  32. package/dist/components/data-entry/radio.d.ts +2 -2
  33. package/dist/components/data-entry/select.d.ts +2 -2
  34. package/dist/components/data-entry/select.js +2 -2
  35. package/dist/components/data-entry/slider.d.ts +2 -2
  36. package/dist/components/data-entry/switch.d.ts +2 -2
  37. package/dist/components/data-entry/time-picker.d.ts +2 -2
  38. package/dist/components/data-entry/time-picker.js +2 -2
  39. package/dist/components/data-entry/transfer.d.ts +3 -3
  40. package/dist/components/data-entry/transfer.js +5 -5
  41. package/dist/components/data-entry/tree-select.d.ts +2 -2
  42. package/dist/components/data-entry/tree-select.js +5 -5
  43. package/dist/components/data-entry/upload.d.ts +3 -3
  44. package/dist/components/data-entry/upload.js +3 -3
  45. package/dist/components/data-grid/index.js +8 -8
  46. package/dist/components/feedback/alert.js +2 -2
  47. package/dist/components/feedback/dialog.js +2 -2
  48. package/dist/components/feedback/index.js +6 -6
  49. package/dist/components/feedback/sheet.d.ts +1 -1
  50. package/dist/components/feedback/sheet.js +1 -1
  51. package/dist/components/layout/index.d.ts +4 -4
  52. package/dist/components/layout/index.js +3 -3
  53. package/dist/components/navigation/index.js +5 -5
  54. package/dist/components/navigation/pagination.js +3 -3
  55. package/dist/components/navigation/steps.js +1 -1
  56. package/dist/components/query/index.js +2 -2
  57. package/dist/components/ui/index.d.ts +3 -3
  58. package/dist/components/ui/index.js +24 -24
  59. package/dist/{data-entry.prop-C9QWj5Kl.d.ts → data-entry.prop-BSUaseKh.d.ts} +1 -1
  60. package/dist/{flex-X2EFU1d5.d.ts → flex-1Cy46L0M.d.ts} +1 -1
  61. package/dist/index.d.ts +4 -4
  62. package/dist/index.js +35 -35
  63. package/dist/{layout.prop-D2be7gOo.d.ts → layout.prop-fCz-Vlie.d.ts} +2 -0
  64. package/dist/props/components/index.d.ts +2 -2
  65. package/dist/props/index.d.ts +2 -2
  66. package/dist/props/index.js +1 -1
  67. package/dist/{search-input-d1g8eW9z.d.ts → search-input-D4v1JGOA.d.ts} +1 -1
  68. package/dist/styles/alert-layout.css +2 -2
  69. package/dist/styles/card-layout.css +10 -10
  70. package/dist/styles/control.css +8 -8
  71. package/dist/styles/data-display-layout.css +7 -7
  72. package/dist/styles/data-entry-layout.css +2 -2
  73. package/dist/styles/dialog-layout.css +1 -1
  74. package/dist/styles/index.css +1 -1
  75. package/dist/styles/layout.css +8 -8
  76. package/dist/styles/navigation-layout.css +5 -5
  77. package/dist/styles/shell-layout.css +10 -10
  78. package/dist/styles/table-layout.css +6 -6
  79. package/dist/tokens/components/card.css +4 -0
  80. package/package.json +4 -3
  81. package/dist/{chunk-65RWSIZF.js → chunk-2JOJYHG2.js} +1 -1
  82. package/dist/{chunk-3VFNWVR7.js → chunk-76YSDJDP.js} +2 -2
  83. package/dist/{chunk-57VDEN64.js → chunk-7PBKPDBJ.js} +1 -1
  84. package/dist/{chunk-BJTNKNMY.js → chunk-DBVZ73ML.js} +1 -1
  85. package/dist/{chunk-LVLPNKJP.js → chunk-IESBK6XZ.js} +1 -1
  86. package/dist/{chunk-D4JX6O2W.js → chunk-MSRJC3RT.js} +1 -1
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  export { B as BreadcrumbItem } from './navigation.prop-CXDaVNaR.js';
2
- export { F as FlexAlignProp, a as FlexDirectionProp, b as FlexJustifyProp, c as FlexProp, c as FlexProps, P as PageContainerProp, P as PageContainerProps } from './layout.prop-D2be7gOo.js';
3
- export { F as Flex, P as PageContainer } from './flex-X2EFU1d5.js';
2
+ export { F as FlexAlignProp, a as FlexDirectionProp, b as FlexJustifyProp, c as FlexProp, c as FlexProps, P as PageContainerProp, P as PageContainerProps } from './layout.prop-fCz-Vlie.js';
3
+ export { F as Flex, P as PageContainer } from './flex-1Cy46L0M.js';
4
4
  export { C as ColumnDef, D as DataTable, a as Density, b as Descriptions, E as EmptyState } from './data-table-DRr70ULe.js';
5
5
  export { Badge } from './components/data-display/badge.js';
6
- export { F as Field, a as FormField, S as SearchInput } from './search-input-d1g8eW9z.js';
6
+ export { F as Field, a as FormField, S as SearchInput } from './search-input-D4v1JGOA.js';
7
7
  export { a as SkeletonDetail, c as SkeletonRows, d as SkeletonStat, e as SkeletonTable } from './skeleton-cj9kh5wo.js';
8
8
  export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from './components/feedback/alert.js';
9
9
  export { Upload, useUploadDraft } from './components/data-entry/upload.js';
@@ -20,7 +20,7 @@ export { toast } from 'sonner';
20
20
  export { useDebouncedValue, useTimeoutFlag } from './lib/hooks.js';
21
21
  export { formatBytes, formatCurrency, humanError, shortId } from './components/admin/index.js';
22
22
  export { cn } from './lib/utils.js';
23
- export { F as FieldProps, E as collectUploadCommitActions, G as createUploadItem } from './data-entry.prop-C9QWj5Kl.js';
23
+ export { F as FieldProps, E as collectUploadCommitActions, G as createUploadItem } from './data-entry.prop-BSUaseKh.js';
24
24
  export { c as AlertDialogProps } from './feedback.prop-CHlHDYZK.js';
25
25
  export { d as ToolbarGroupProps, e as ToolbarProps } from './navigation.prop-FCsOVGrP.js';
26
26
  export { j as formatDate } from './format-date-ByyZoqI5.js';
package/dist/index.js CHANGED
@@ -1,62 +1,62 @@
1
1
  import './chunk-2H65B4JA.js';
2
- import './chunk-IMERLXSC.js';
3
- import './chunk-57VDEN64.js';
2
+ import './chunk-5LTW2LWF.js';
3
+ import './chunk-7PBKPDBJ.js';
4
4
  import './chunk-VSUYVT2Q.js';
5
- import './chunk-65RWSIZF.js';
5
+ import './chunk-R2TXLS7S.js';
6
+ import './chunk-2JOJYHG2.js';
6
7
  import './chunk-S2IJKT3D.js';
7
8
  import './chunk-I7NQ2LIL.js';
8
9
  import './chunk-Q3KUZG4P.js';
9
- import './chunk-R2TXLS7S.js';
10
- import './chunk-ION2KFXK.js';
11
- import './chunk-3VFNWVR7.js';
12
- import './chunk-YXVJFYQE.js';
13
- import './chunk-NU2SOVTU.js';
14
10
  import './chunk-GJXOBDER.js';
15
- export { Toolbar, ToolbarGroup } from './chunk-HRW7JDUJ.js';
16
- export { Steps } from './chunk-PL4NEIVO.js';
11
+ export { DataTable, Descriptions } from './chunk-HNL7CJFO.js';
12
+ export { PageContainer } from './chunk-E3Z3XCQR.js';
13
+ import './chunk-DV52WNXO.js';
14
+ import './chunk-XK3M3VRR.js';
15
+ import './chunk-W4REF4TD.js';
16
+ export { Badge } from './chunk-HIEGUYPP.js';
17
+ export { EmptyState } from './chunk-YD7V2HGZ.js';
18
+ import './chunk-IJ5ALJGA.js';
19
+ export { Toolbar, ToolbarGroup } from './chunk-3UTHNXKB.js';
17
20
  import './chunk-B73NA66T.js';
18
21
  import './chunk-WGWI7EGL.js';
19
- export { Pagination } from './chunk-2MRAHKOD.js';
22
+ export { Pagination } from './chunk-UT6DAJUL.js';
23
+ export { Steps } from './chunk-QROC2RMH.js';
20
24
  export { Tabs, TabsContent, TabsList, TabsTrigger } from './chunk-V3N266PT.js';
21
- export { PageContainer } from './chunk-YLRCDJMR.js';
22
- import './chunk-XK3M3VRR.js';
23
- import './chunk-W4REF4TD.js';
24
25
  import './chunk-HL3G4SVG.js';
25
26
  import './chunk-LMKUKCTN.js';
26
27
  export { sonnerToast as toast } from './chunk-ES4Q3KGL.js';
27
28
  export { SkeletonDetail, SkeletonRows, SkeletonStat, SkeletonTable } from './chunk-2BR7KFCP.js';
28
- export { Toaster } from './chunk-TO7URV7U.js';
29
29
  import './chunk-32WO3YLB.js';
30
- export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from './chunk-D4JX6O2W.js';
31
- export { Transfer } from './chunk-QE4IYHJU.js';
32
- export { TreeSelect } from './chunk-A3J2G2ZA.js';
33
- export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from './chunk-4SSJ54R2.js';
34
- export { SearchInput } from './chunk-LVLPNKJP.js';
30
+ export { Toaster } from './chunk-TO7URV7U.js';
31
+ export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from './chunk-MSRJC3RT.js';
32
+ export { Flex } from './chunk-INIIF7F7.js';
33
+ export { Transfer } from './chunk-IRBI2EZ2.js';
34
+ export { SearchInput } from './chunk-IESBK6XZ.js';
35
+ export { TreeSelect } from './chunk-TRBD4RXJ.js';
36
+ export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from './chunk-6SZKFJYY.js';
35
37
  export { formatBytes, formatCurrency, humanError, shortId } from './chunk-X6AJ5HEI.js';
36
- export { AlertDialog, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from './chunk-I5D4QYZI.js';
38
+ export { AlertDialog, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from './chunk-N2WBUCVY.js';
37
39
  import './chunk-VU4GFGDG.js';
38
- import './chunk-BJTNKNMY.js';
40
+ import './chunk-DBVZ73ML.js';
39
41
  import './chunk-TBJBVEIP.js';
40
- export { Cascader } from './chunk-L6NMIUKC.js';
42
+ export { Cascader } from './chunk-KZ7ZDNUN.js';
41
43
  import './chunk-SMLKNECP.js';
42
- import './chunk-3R3QVJCB.js';
43
- import './chunk-K24AQV4R.js';
44
- export { DataTable, Descriptions } from './chunk-FLY23H4G.js';
45
- import './chunk-DV52WNXO.js';
46
- export { EmptyState } from './chunk-YD7V2HGZ.js';
47
- export { Flex } from './chunk-INIIF7F7.js';
44
+ import './chunk-J2DEWIYY.js';
48
45
  import './chunk-BE6GJGKJ.js';
49
46
  export { Field } from './chunk-44YRPSZ7.js';
50
- import './chunk-XBFUROAY.js';
51
- export { Badge } from './chunk-HIEGUYPP.js';
47
+ import './chunk-ION2KFXK.js';
48
+ import './chunk-3R3QVJCB.js';
49
+ import './chunk-76YSDJDP.js';
50
+ import './chunk-K24AQV4R.js';
51
+ import './chunk-YXVJFYQE.js';
52
+ import './chunk-NU2SOVTU.js';
52
53
  import './chunk-DY5C44UP.js';
53
- import './chunk-3KPEZ5CF.js';
54
- import './chunk-IJ5ALJGA.js';
54
+ import './chunk-XBFUROAY.js';
55
55
  import './chunk-B4K4BXEF.js';
56
+ import './chunk-B6S6LTWT.js';
57
+ export { formatDate } from './chunk-5732TWQF.js';
56
58
  export { FormField } from './chunk-IAJOP2Z3.js';
57
59
  import './chunk-C3PKEV6S.js';
58
60
  import './chunk-7PWBC4BY.js';
59
- import './chunk-B6S6LTWT.js';
60
- export { formatDate } from './chunk-5732TWQF.js';
61
61
  export { useDebouncedValue, useTimeoutFlag } from './chunk-LFW37FGG.js';
62
62
  export { cn } from './chunk-U7N2A7A3.js';
@@ -127,6 +127,8 @@ type TopbarProp = {
127
127
  unread?: boolean;
128
128
  /** Accessible placeholder when project is intentionally unset but a project chip is rendered. */
129
129
  projectPlaceholder?: string;
130
+ /** Search-bar placeholder text — defaults to the i18n `layout.topbar.searchPlaceholder`. */
131
+ searchPlaceholder?: string;
130
132
  onNotificationsOpen?: () => void;
131
133
  user?: ReactNode;
132
134
  };
@@ -1,6 +1,6 @@
1
- export { A as AppShellProp, P as PageContainerProp, d as PageInsetProp, e as SidebarItemProp, f as SidebarProductProp, g as SidebarProp, h as SidebarSectionProp, T as TopbarProductProp, i as TopbarProjectProp, j as TopbarProp } from '../../layout.prop-D2be7gOo.js';
1
+ export { A as AppShellProp, P as PageContainerProp, d as PageInsetProp, e as SidebarItemProp, f as SidebarProductProp, g as SidebarProp, h as SidebarSectionProp, T as TopbarProductProp, i as TopbarProjectProp, j as TopbarProp } from '../../layout.prop-fCz-Vlie.js';
2
2
  export { B as ButtonProp } from '../../general.prop-CzlQin6v.js';
3
- export { C as CalendarProp, a as CascaderProp, b as CheckboxGroupProp, c as CheckboxProp, d as ChoiceOptionProp, e as ColorPickerProp, D as DatePickerProp, f as DateRangePickerProp, g as FormFieldProp, I as InputProp, R as RadioGroupProp, j as RadioProp, S as SearchInputProp, o as ShowCheckedStrategyProp, p as SliderProp, q as SwitchProp, T as TextareaProp, r as TimePickerProp, s as TransferItemProp, t as TransferProp, u as TreeFieldNamesProp, v as TreeOptionProp, w as TreeSelectProp, y as UploadFileItemProp, z as UploadProp, B as UploadVariantProp } from '../../data-entry.prop-C9QWj5Kl.js';
3
+ export { C as CalendarProp, a as CascaderProp, b as CheckboxGroupProp, c as CheckboxProp, d as ChoiceOptionProp, e as ColorPickerProp, D as DatePickerProp, f as DateRangePickerProp, g as FormFieldProp, I as InputProp, R as RadioGroupProp, j as RadioProp, S as SearchInputProp, o as ShowCheckedStrategyProp, p as SliderProp, q as SwitchProp, T as TextareaProp, r as TimePickerProp, s as TransferItemProp, t as TransferProp, u as TreeFieldNamesProp, v as TreeOptionProp, w as TreeSelectProp, y as UploadFileItemProp, z as UploadProp, B as UploadVariantProp } from '../../data-entry.prop-BSUaseKh.js';
4
4
  export { B as BadgeProp, D as DataTableProp, a as DescriptionsItemProp, b as DescriptionsProp, E as EmptyStateProp } from '../../data-display.prop-CT0nVMdp.js';
5
5
  export { A as AlertActionsProp, a as AlertContentProp, b as AlertDescriptionProp, d as AlertProp, e as AlertQueryErrorProp, f as AlertTitleProp, S as SkeletonRowsProp } from '../../feedback.prop-CHlHDYZK.js';
6
6
  export { D as DataStateProp, I as InfiniteQueryHelpers, a as InfiniteQueryStateProp, P as PrefetchLinkProp } from '../../query.prop-CT2gFtr4.js';
@@ -4,9 +4,9 @@ export { D as DensityProp, G as GapProp, P as PageContainerVariantProp, a as Pag
4
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-DD46aTro.js';
5
5
  export { B as BreadcrumbItem, B as BreadcrumbItemProp, a as BreadcrumbProp } from '../navigation.prop-CXDaVNaR.js';
6
6
  export { C as ColumnDef, 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-D0UEEczj.js';
7
- export { A as AppShellProp, P as PageContainerProp, P as PageContainerProps, d as PageInsetProp, e as SidebarItemProp, f as SidebarProductProp, g as SidebarProp, h as SidebarSectionProp, T as TopbarProductProp, i as TopbarProjectProp, j as TopbarProp } from '../layout.prop-D2be7gOo.js';
7
+ export { A as AppShellProp, P as PageContainerProp, P as PageContainerProps, d as PageInsetProp, e as SidebarItemProp, f as SidebarProductProp, g as SidebarProp, h as SidebarSectionProp, T as TopbarProductProp, i as TopbarProjectProp, j as TopbarProp } from '../layout.prop-fCz-Vlie.js';
8
8
  export { B as ButtonProp, B as ButtonProps } from '../general.prop-CzlQin6v.js';
9
- export { C as CalendarProp, a as CascaderProp, b as CheckboxGroupProp, c as CheckboxProp, d as ChoiceOptionProp, e as ColorPickerProp, D as DatePickerProp, f as DateRangePickerProp, g as FormFieldProp, I as InputProp, R as RadioGroupProp, j as RadioProp, S as SearchInputProp, o as ShowCheckedStrategyProp, p as SliderProp, q as SwitchProp, T as TextareaProp, r as TimePickerProp, s as TransferItemProp, t as TransferProp, u as TreeFieldNamesProp, v as TreeOptionProp, w as TreeSelectProp, y as UploadFileItemProp, z as UploadProp, B as UploadVariantProp } from '../data-entry.prop-C9QWj5Kl.js';
9
+ export { C as CalendarProp, a as CascaderProp, b as CheckboxGroupProp, c as CheckboxProp, d as ChoiceOptionProp, e as ColorPickerProp, D as DatePickerProp, f as DateRangePickerProp, g as FormFieldProp, I as InputProp, R as RadioGroupProp, j as RadioProp, S as SearchInputProp, o as ShowCheckedStrategyProp, p as SliderProp, q as SwitchProp, T as TextareaProp, r as TimePickerProp, s as TransferItemProp, t as TransferProp, u as TreeFieldNamesProp, v as TreeOptionProp, w as TreeSelectProp, y as UploadFileItemProp, z as UploadProp, B as UploadVariantProp } from '../data-entry.prop-BSUaseKh.js';
10
10
  export { B as BadgeProp, D as DataTableProp, a as DescriptionsItemProp, b as DescriptionsProp, E as EmptyStateProp } from '../data-display.prop-CT0nVMdp.js';
11
11
  export { A as AlertActionsProp, a as AlertContentProp, b as AlertDescriptionProp, d as AlertProp, e as AlertQueryErrorProp, f as AlertTitleProp, S as SkeletonRowsProp } from '../feedback.prop-CHlHDYZK.js';
12
12
  export { D as DataStateProp, I as InfiniteQueryHelpers, a as InfiniteQueryStateProp, P as PrefetchLinkProp } from '../query.prop-CT2gFtr4.js';
@@ -1,3 +1,3 @@
1
- import '../chunk-B775Y6BE.js';
2
1
  import '../chunk-ZT5UEUBO.js';
2
+ import '../chunk-B775Y6BE.js';
3
3
  export { COMPONENT_PROP_REGISTRY, PROP_ALIASES_FORBIDDEN, VOCABULARY_REGISTRY } from '../chunk-4FGE5XVC.js';
@@ -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-C9QWj5Kl.js';
2
+ import { g as FormFieldProp, F as FieldProp } from './data-entry.prop-BSUaseKh.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;
@@ -48,7 +48,7 @@
48
48
  }
49
49
 
50
50
  [data-slot="alert"][data-dismissible] {
51
- padding-right: calc(var(--alert-space-inset) + var(--space-8));
51
+ padding-inline-end: calc(var(--alert-space-inset) + var(--space-8));
52
52
  }
53
53
 
54
54
  [data-slot="alert-icon"] {
@@ -143,7 +143,7 @@
143
143
  [data-slot="alert-dismiss"] {
144
144
  position: absolute;
145
145
  top: var(--alert-dismiss-space-offset);
146
- right: var(--alert-dismiss-space-offset);
146
+ inset-inline-end: var(--alert-dismiss-space-offset);
147
147
  border-radius: var(--radius-sm);
148
148
  opacity: 0.7;
149
149
  }
@@ -57,31 +57,31 @@
57
57
 
58
58
  /* ── Accent edge — 3px semantic left stripe, content kept on the shell ─ */
59
59
  [data-slot="card"][data-accent] {
60
- border-left-width: 3px;
60
+ border-inline-start-width: 3px;
61
61
  }
62
62
 
63
63
  [data-slot="card"][data-accent="primary"] {
64
- border-left-color: hsl(var(--primary));
64
+ border-inline-start-color: hsl(var(--primary));
65
65
  }
66
66
 
67
67
  [data-slot="card"][data-accent="success"] {
68
- border-left-color: hsl(var(--success));
68
+ border-inline-start-color: hsl(var(--success));
69
69
  }
70
70
 
71
71
  [data-slot="card"][data-accent="warning"] {
72
- border-left-color: hsl(var(--warning));
72
+ border-inline-start-color: hsl(var(--warning));
73
73
  }
74
74
 
75
75
  [data-slot="card"][data-accent="info"] {
76
- border-left-color: hsl(var(--info));
76
+ border-inline-start-color: hsl(var(--info));
77
77
  }
78
78
 
79
79
  [data-slot="card"][data-accent="attention"] {
80
- border-left-color: hsl(var(--attention));
80
+ border-inline-start-color: hsl(var(--attention));
81
81
  }
82
82
 
83
83
  [data-slot="card"][data-accent="destructive"] {
84
- border-left-color: hsl(var(--destructive));
84
+ border-inline-start-color: hsl(var(--destructive));
85
85
  }
86
86
 
87
87
  [data-slot="card"][data-accent] > [data-slot="card-header"],
@@ -104,7 +104,7 @@
104
104
  }
105
105
 
106
106
  .ui-card-header--banded {
107
- border-bottom: 1px solid hsl(var(--card-border));
107
+ border-bottom: var(--card-header-border-bottom);
108
108
  background-color: hsl(var(--card-header-background) / var(--card-header-background-alpha));
109
109
  }
110
110
 
@@ -147,7 +147,7 @@
147
147
  flex-shrink: 0;
148
148
  align-items: center;
149
149
  gap: var(--space-inline-sm);
150
- margin-left: auto;
150
+ margin-inline-start: auto;
151
151
  }
152
152
 
153
153
  [data-slot="card"]:has([data-slot="card-header"][data-banded]) {
@@ -357,7 +357,7 @@
357
357
  [data-slot="card"][data-stat-align="end"] [data-slot="stat-card-value-row"],
358
358
  [data-slot="card"][data-stat-layout="inline"] [data-slot="stat-card-value-row"] {
359
359
  justify-content: flex-end;
360
- text-align: right;
360
+ text-align: end;
361
361
  }
362
362
 
363
363
  [data-slot="stat-card-value"] {
@@ -190,8 +190,8 @@
190
190
 
191
191
  .ui-control {
192
192
  height: var(--control-height);
193
- padding-left: var(--control-padding-x);
194
- padding-right: var(--control-padding-x);
193
+ padding-inline-start: var(--control-padding-x);
194
+ padding-inline-end: var(--control-padding-x);
195
195
  font-size: var(--font-size-sm);
196
196
  }
197
197
 
@@ -453,7 +453,7 @@
453
453
  }
454
454
 
455
455
  .ui-command-search-icon {
456
- margin-right: var(--control-gap);
456
+ margin-inline-end: var(--control-gap);
457
457
  opacity: 0.5;
458
458
  }
459
459
 
@@ -545,7 +545,7 @@
545
545
 
546
546
  .ui-search-input-icon {
547
547
  position: absolute;
548
- left: var(--search-input-edge-inset);
548
+ inset-inline-start: var(--search-input-edge-inset);
549
549
  top: 50%;
550
550
  pointer-events: none;
551
551
  transform: translateY(-50%);
@@ -553,13 +553,13 @@
553
553
  }
554
554
 
555
555
  .ui-search-input-control {
556
- padding-left: var(--search-input-start-padding);
557
- padding-right: var(--search-input-end-padding);
556
+ padding-inline-start: var(--search-input-start-padding);
557
+ padding-inline-end: var(--search-input-end-padding);
558
558
  }
559
559
 
560
560
  .ui-search-input-clear {
561
561
  position: absolute;
562
- right: var(--search-input-edge-inset);
562
+ inset-inline-end: var(--search-input-edge-inset);
563
563
  top: 50%;
564
564
  transform: translateY(-50%);
565
565
  color: hsl(var(--muted-foreground));
@@ -582,7 +582,7 @@
582
582
  display: block;
583
583
  }
584
584
  .ui-password-input-field {
585
- padding-right: 2.5rem;
585
+ padding-inline-end: 2.5rem;
586
586
  }
587
587
  .ui-password-input-toggle {
588
588
  position: absolute;
@@ -80,11 +80,11 @@
80
80
  }
81
81
 
82
82
  .ui-tree-item[data-depth="1"] {
83
- margin-left: 1.375rem;
83
+ margin-inline-start: 1.375rem;
84
84
  }
85
85
 
86
86
  .ui-tree-item[data-depth="2"] {
87
- margin-left: 2.75rem;
87
+ margin-inline-start: 2.75rem;
88
88
  }
89
89
 
90
90
  .ui-tree-item > svg {
@@ -210,7 +210,7 @@
210
210
  gap: var(--space-2);
211
211
  padding-block: var(--space-4);
212
212
  font-weight: 500;
213
- text-align: left;
213
+ text-align: start;
214
214
  transition: color 0.15s ease;
215
215
  }
216
216
  .ui-accordion-trigger:hover {
@@ -295,11 +295,11 @@
295
295
  }
296
296
 
297
297
  .ui-carousel-previous {
298
- left: var(--space-2);
298
+ inset-inline-start: var(--space-2);
299
299
  }
300
300
 
301
301
  .ui-carousel-next {
302
- right: var(--space-2);
302
+ inset-inline-end: var(--space-2);
303
303
  }
304
304
 
305
305
  .ui-carousel-previous:hover,
@@ -375,8 +375,8 @@
375
375
  .ui-carousel[data-orientation="vertical"] .ui-carousel-previous,
376
376
  .ui-carousel[data-orientation="vertical"] .ui-carousel-next {
377
377
  top: auto;
378
- left: 50%;
379
- right: auto;
378
+ inset-inline-start: 50%;
379
+ inset-inline-end: auto;
380
380
  transform: translateX(-50%);
381
381
  }
382
382
 
@@ -63,9 +63,9 @@
63
63
  width: 0.9rem;
64
64
  height: 0.9rem;
65
65
  border-bottom: 1px solid currentColor;
66
- border-right: 1px solid currentColor;
66
+ border-inline-end: 1px solid currentColor;
67
67
  transform: rotate(45deg);
68
- margin-left: auto;
68
+ margin-inline-start: auto;
69
69
  opacity: 0.7;
70
70
  }
71
71
 
@@ -30,7 +30,7 @@
30
30
 
31
31
  [data-slot="dialog-content"] {
32
32
  position: fixed;
33
- left: 50%;
33
+ inset-inline-start: 50%;
34
34
  top: 50%;
35
35
  z-index: 50;
36
36
  display: grid;
@@ -142,7 +142,7 @@
142
142
  :where(select, input)[aria-hidden="true"][tabindex="-1"],
143
143
  .sr-only {
144
144
  top: 0;
145
- left: 0;
145
+ inset-inline-start: 0;
146
146
  }
147
147
 
148
148
  body {
@@ -263,8 +263,8 @@
263
263
  .ui-page-header,
264
264
  .ui-page-body,
265
265
  .ui-page-footer {
266
- padding-left: var(--space-page-active-x);
267
- padding-right: var(--space-page-active-x);
266
+ padding-inline-start: var(--space-page-active-x);
267
+ padding-inline-end: var(--space-page-active-x);
268
268
  }
269
269
 
270
270
  .ui-page-container--narrow .ui-page-body {
@@ -273,14 +273,14 @@
273
273
 
274
274
  /* flush = full-bleed body (DataTable); header/footer keep their inset. */
275
275
  .ui-page-container--flush .ui-page-body {
276
- padding-left: 0;
277
- padding-right: 0;
276
+ padding-inline-start: 0;
277
+ padding-inline-end: 0;
278
278
  }
279
279
 
280
280
  .ui-page-container-inset,
281
281
  .ui-page-inset {
282
- padding-left: var(--space-page-active-x);
283
- padding-right: var(--space-page-active-x);
282
+ padding-inline-start: var(--space-page-active-x);
283
+ padding-inline-end: var(--space-page-active-x);
284
284
  }
285
285
 
286
286
  .ui-page-container--ghost .ui-page-header {
@@ -481,7 +481,7 @@
481
481
  }
482
482
 
483
483
  .ui-pagination-total {
484
- margin-right: auto;
484
+ margin-inline-end: auto;
485
485
  color: hsl(var(--muted-foreground));
486
486
  font-size: var(--pagination-total-font-size);
487
487
  }
@@ -591,7 +591,7 @@
591
591
  .ui-toolbar-clear,
592
592
  .ui-filter-clear {
593
593
  width: auto;
594
- margin-left: auto;
594
+ margin-inline-start: auto;
595
595
  }
596
596
  }
597
597
 
@@ -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
 
@@ -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
  }
@@ -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 {
@@ -241,7 +241,7 @@
241
241
  cursor: pointer;
242
242
  font-family: inherit;
243
243
  font-size: var(--font-size-sm);
244
- text-align: left;
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,
@@ -416,7 +416,7 @@
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;
@@ -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 {
@@ -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
  }
@@ -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.0",
4
4
  "type": "module",
5
5
  "packageManager": "pnpm@10.29.1",
6
6
  "sideEffects": false,
@@ -266,14 +266,15 @@
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: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: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",
277
278
  "check:core-isolation": "node scripts/check-core-isolation.mjs",
278
279
  "release": "node scripts/release.mjs",
279
280
  "preview": "node preview/scripts/kill-port.mjs && vite --config preview/vite.config.ts --port 6008 --strictPort",