@godxjp/ui 33.20.0 → 33.22.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.
- package/README.md +4 -4
- package/agent/START-HERE.md +7 -7
- package/agent/components/AppSettingPicker.json +0 -1
- package/agent/components/AppShell.json +11 -1
- package/agent/components/BlockEditor.json +6 -1
- package/agent/components/Button.json +1 -1
- package/agent/components/CardShowcase.json +44 -0
- package/agent/components/CatalogCard.json +83 -0
- package/agent/components/CatalogDetail.json +76 -0
- package/agent/components/CatalogDetailSection.json +52 -0
- package/agent/components/CatalogDetailTag.json +27 -0
- package/agent/components/EditorialArticle.json +53 -0
- package/agent/components/EditorialAuth.json +53 -0
- package/agent/components/EditorialAuthCard.json +52 -0
- package/agent/components/EditorialBanner.json +53 -0
- package/agent/components/EditorialBreadcrumb.json +38 -0
- package/agent/components/EditorialCard.json +70 -0
- package/agent/components/EditorialEmptyPanel.json +57 -0
- package/agent/components/EditorialFilterBar.json +51 -0
- package/agent/components/EditorialFilterField.json +39 -0
- package/agent/components/EditorialFilterPanel.json +46 -0
- package/agent/components/EditorialFooter.json +54 -0
- package/agent/components/EditorialFootnote.json +36 -0
- package/agent/components/EditorialHero.json +52 -0
- package/agent/components/EditorialInlineSearch.json +54 -0
- package/agent/components/EditorialMasthead.json +52 -0
- package/agent/components/EditorialMetaBar.json +37 -0
- package/agent/components/EditorialPageHeader.json +73 -0
- package/agent/components/EditorialPanel.json +48 -0
- package/agent/components/EditorialPillNav.json +41 -0
- package/agent/components/EditorialPrompt.json +54 -0
- package/agent/components/EditorialSearch.json +112 -0
- package/agent/components/EditorialSection.json +68 -0
- package/agent/components/EditorialSectionHead.json +62 -0
- package/agent/components/EditorialStats.json +32 -0
- package/agent/components/EditorialTextButton.json +47 -0
- package/agent/components/EditorialToggleGroup.json +52 -0
- package/agent/components/EditorialToolbar.json +45 -0
- package/agent/components/Eyebrow.json +39 -0
- package/agent/components/HoldingCard.json +69 -0
- package/agent/components/HoldingCardAction.json +51 -0
- package/agent/components/HoldingGrid.json +37 -0
- package/agent/components/Markdown.json +6 -0
- package/agent/components/NumberInput.json +5 -0
- package/agent/components/PriceSummary.json +32 -0
- package/agent/components/SettingsLayout.json +31 -0
- package/agent/components/SettingsPanel.json +53 -0
- package/agent/components/ThemePicker.json +54 -0
- package/agent/components/TopbarItem.json +5 -0
- package/agent/components-index.json +292 -98
- package/agent/components.json +2059 -4
- package/agent/index.json +7 -7
- package/agent/llms.txt +8 -8
- package/agent/tokens.json +5640 -132
- package/dist/components/data-display/badge.js +4 -2
- package/dist/components/data-display/image.js +6 -0
- package/dist/components/data-entry/form-field.js +2 -2
- package/dist/components/data-entry/number-input.d.ts +1 -0
- package/dist/components/data-entry/number-input.js +8 -0
- package/dist/components/data-entry/select.js +24 -2
- package/dist/components/general/button.js +14 -1
- package/dist/components/general/typography.d.ts +1 -1
- package/dist/components/layout/app-shell.d.ts +1 -1
- package/dist/components/layout/app-shell.js +28 -2
- package/dist/components/layout/centered-shell.js +4 -0
- package/dist/components/layout/editorial-account.d.ts +51 -0
- package/dist/components/layout/editorial-account.js +466 -0
- package/dist/components/layout/editorial-catalog.d.ts +18 -0
- package/dist/components/layout/editorial-catalog.js +164 -0
- package/dist/components/layout/editorial.d.ts +56 -0
- package/dist/components/layout/editorial.js +867 -0
- package/dist/components/layout/index.d.ts +6 -0
- package/dist/components/layout/index.js +98 -0
- package/dist/components/layout/mobile-shell.d.ts +2 -0
- package/dist/components/layout/mobile-shell.js +18 -11
- package/dist/components/layout/responsive-grid.js +9 -1
- package/dist/components/layout/topbar-item.d.ts +1 -0
- package/dist/components/layout/topbar-item.js +2 -0
- package/dist/contracts/measurement.json +1 -1
- package/dist/lab/legal-document-shell.js +61 -51
- package/dist/lib/toast-clearance.js +1 -1
- package/dist/props/components/data-display.prop.d.ts +2 -0
- package/dist/props/components/data-entry.prop.d.ts +9 -0
- package/dist/props/components/editorial-account.prop.d.ts +249 -0
- package/dist/props/components/editorial-account.prop.js +0 -0
- package/dist/props/components/general.prop.d.ts +6 -2
- package/dist/props/components/layout.prop.d.ts +602 -2
- package/dist/props/registry.d.ts +1124 -0
- package/dist/props/registry.js +792 -0
- package/dist/styles/badge-layout.css +2 -0
- package/dist/styles/control.css +60 -13
- package/dist/styles/core.css +1 -0
- package/dist/styles/data-display-layout.css +9 -3
- package/dist/styles/editorial-account-layout.css +1130 -0
- package/dist/styles/focus-ring.css +33 -10
- package/dist/styles/form-layout.css +8 -1
- package/dist/styles/index.css +1 -0
- package/dist/styles/layers.json +248 -1
- package/dist/styles/layout.css +2031 -0
- package/dist/styles/logo-layout.css +27 -0
- package/dist/styles/shell-layout.css +101 -3
- package/dist/styles/table-layout.css +25 -13
- package/dist/styles/text-layout.css +6 -0
- package/dist/styles.css +1 -1
- package/dist/tokens/base.css +2 -0
- package/dist/tokens/components/badge.css +3 -0
- package/dist/tokens/components/control.css +9 -0
- package/dist/tokens/components/editorial-account.css +393 -0
- package/dist/tokens/components/editorial.css +721 -0
- package/dist/tokens/components/form.css +4 -0
- package/dist/tokens/components/logo.css +2 -0
- package/dist/tokens/components/shell.css +23 -0
- package/dist/tokens/components/table.css +1 -1
- package/docs/TOKENS.md +26 -0
- package/package.json +2 -2
- package/scripts/ui-audit.mjs +3 -2
|
@@ -55,5 +55,11 @@ export { AspectRatio } from "./aspect-ratio.js";
|
|
|
55
55
|
export { ServiceRolePanel } from "./service-role-panel.js";
|
|
56
56
|
export type { ServiceRoleItemProp, ServiceRolePanelProp, ServiceRolePanelProps, } from "./service-role-panel.js";
|
|
57
57
|
export { useAppShellNavigationMode } from "./app-shell.js";
|
|
58
|
+
export { EditorialAuth, EditorialAuthCard, EditorialEmptyPanel, EditorialFootnote, EditorialMetaBar, EditorialStats, EditorialTextButton, EditorialToggleGroup, EditorialToolbar, HoldingCard, HoldingCardAction, HoldingGrid, SettingsLayout, SettingsPanel, ThemePicker, } from "./editorial-account.js";
|
|
59
|
+
export type { EditorialAuthCardProp, EditorialAuthCardProps, EditorialAuthProp, EditorialAuthProps, EditorialEmptyPanelProp, EditorialEmptyPanelProps, EditorialFootnoteProp, EditorialFootnoteProps, EditorialMetaBarProp, EditorialMetaBarProps, EditorialStatsItemProp, EditorialStatsProp, EditorialStatsProps, EditorialTextButtonProp, EditorialTextButtonProps, EditorialToggleGroupItemProp, EditorialToggleGroupProp, EditorialToggleGroupProps, EditorialToolbarProp, EditorialToolbarProps, HoldingCardActionProp, HoldingCardProp, HoldingCardProps, HoldingGridProp, HoldingGridProps, HoldingViewProp, SettingsLayoutProp, SettingsLayoutProps, SettingsPanelProp, SettingsPanelProps, ThemePickerOptionProp, ThemePickerPreviewProp, ThemePickerProp, ThemePickerProps, } from "./editorial-account.js";
|
|
58
60
|
export { Affix } from "./affix.js";
|
|
59
61
|
export type { AffixProp, AffixProps, AffixTargetProp } from "./affix.js";
|
|
62
|
+
export { CatalogDetail, CatalogDetailSection, CatalogDetailTag, EditorialFilterField, EditorialFilterPanel, EditorialPrompt, PriceSummary, } from "./editorial-catalog.js";
|
|
63
|
+
export type { CatalogDetailProp, CatalogDetailProps, CatalogDetailSectionProp, CatalogDetailSectionProps, CatalogDetailTagProp, EditorialPromptProp, EditorialPromptProps, PriceSummaryProp, PriceSummaryProps, EditorialFilterFieldProp, EditorialFilterFieldProps, EditorialFilterPanelProp, EditorialFilterPanelProps, } from "./editorial-catalog.js";
|
|
64
|
+
export { CardShowcase, CatalogCard, CatalogCardTag, EditorialArticle, EditorialArticleSection, EditorialBanner, EditorialBreadcrumb, EditorialCard, EditorialFilterBar, EditorialFooter, EditorialHero, EditorialMasthead, EditorialMastheadAction, EditorialMastheadLink, EditorialNote, EditorialPageHeader, EditorialPanel, EditorialPillNav, EditorialPillNavItem, EditorialSearch, EditorialSection, EditorialSectionHead, EditorialTextLink, Eyebrow, } from "./editorial.js";
|
|
65
|
+
export type { CardShowcaseProp, CardShowcaseProps, CatalogCardProp, CatalogCardProps, CatalogCardTagProp, EditorialBannerProp, EditorialBannerProps, EditorialArticleProp, EditorialArticleProps, EditorialArticleSectionProp, EditorialNoteProp, EditorialPanelProp, EditorialPanelProps, EditorialBreadcrumbProp, EditorialBreadcrumbProps, EditorialCardProp, EditorialCardProps, EditorialHeroProp, EditorialHeroProps, EditorialPageHeaderProp, EditorialPageHeaderProps, EditorialPillNavItemProp, EditorialPillNavProp, EditorialPillNavProps, EditorialSearchProp, EditorialSearchProps, EditorialSearchSuggestionFooterProp, EditorialSearchSuggestionGroupProp, EditorialSearchSuggestionProp, EditorialSectionHeadProp, EditorialSectionHeadProps, EditorialSectionProp, EditorialSectionProps, EditorialTextLinkProp, EyebrowProp, EyebrowProps, EditorialFilterBarProp, EditorialFooterProp, EditorialMastheadActionProp, EditorialMastheadLinkProp, EditorialMastheadProp, } from "./editorial.js";
|
|
@@ -26,7 +26,59 @@ import { Separator } from "./separator.js";
|
|
|
26
26
|
import { AspectRatio } from "./aspect-ratio.js";
|
|
27
27
|
import { ServiceRolePanel } from "./service-role-panel.js";
|
|
28
28
|
import { useAppShellNavigationMode } from "./app-shell.js";
|
|
29
|
+
import {
|
|
30
|
+
EditorialAuth,
|
|
31
|
+
EditorialAuthCard,
|
|
32
|
+
EditorialEmptyPanel,
|
|
33
|
+
EditorialFootnote,
|
|
34
|
+
EditorialMetaBar,
|
|
35
|
+
EditorialStats,
|
|
36
|
+
EditorialTextButton,
|
|
37
|
+
EditorialToggleGroup,
|
|
38
|
+
EditorialToolbar,
|
|
39
|
+
HoldingCard,
|
|
40
|
+
HoldingCardAction,
|
|
41
|
+
HoldingGrid,
|
|
42
|
+
SettingsLayout,
|
|
43
|
+
SettingsPanel,
|
|
44
|
+
ThemePicker
|
|
45
|
+
} from "./editorial-account.js";
|
|
29
46
|
import { Affix } from "./affix.js";
|
|
47
|
+
import {
|
|
48
|
+
CatalogDetail,
|
|
49
|
+
CatalogDetailSection,
|
|
50
|
+
CatalogDetailTag,
|
|
51
|
+
EditorialFilterField,
|
|
52
|
+
EditorialFilterPanel,
|
|
53
|
+
EditorialPrompt,
|
|
54
|
+
PriceSummary
|
|
55
|
+
} from "./editorial-catalog.js";
|
|
56
|
+
import {
|
|
57
|
+
CardShowcase,
|
|
58
|
+
CatalogCard,
|
|
59
|
+
CatalogCardTag,
|
|
60
|
+
EditorialArticle,
|
|
61
|
+
EditorialArticleSection,
|
|
62
|
+
EditorialBanner,
|
|
63
|
+
EditorialBreadcrumb,
|
|
64
|
+
EditorialCard,
|
|
65
|
+
EditorialFilterBar,
|
|
66
|
+
EditorialFooter,
|
|
67
|
+
EditorialHero,
|
|
68
|
+
EditorialMasthead,
|
|
69
|
+
EditorialMastheadAction,
|
|
70
|
+
EditorialMastheadLink,
|
|
71
|
+
EditorialNote,
|
|
72
|
+
EditorialPageHeader,
|
|
73
|
+
EditorialPanel,
|
|
74
|
+
EditorialPillNav,
|
|
75
|
+
EditorialPillNavItem,
|
|
76
|
+
EditorialSearch,
|
|
77
|
+
EditorialSection,
|
|
78
|
+
EditorialSectionHead,
|
|
79
|
+
EditorialTextLink,
|
|
80
|
+
Eyebrow
|
|
81
|
+
} from "./editorial.js";
|
|
30
82
|
export {
|
|
31
83
|
AccountChip,
|
|
32
84
|
Affix,
|
|
@@ -39,25 +91,71 @@ export {
|
|
|
39
91
|
AuthIdentity,
|
|
40
92
|
AuthStack,
|
|
41
93
|
Breadcrumb,
|
|
94
|
+
CardShowcase,
|
|
95
|
+
CatalogCard,
|
|
96
|
+
CatalogCardTag,
|
|
97
|
+
CatalogDetail,
|
|
98
|
+
CatalogDetailSection,
|
|
99
|
+
CatalogDetailTag,
|
|
42
100
|
CenteredShell,
|
|
101
|
+
EditorialArticle,
|
|
102
|
+
EditorialArticleSection,
|
|
103
|
+
EditorialAuth,
|
|
104
|
+
EditorialAuthCard,
|
|
105
|
+
EditorialBanner,
|
|
106
|
+
EditorialBreadcrumb,
|
|
107
|
+
EditorialCard,
|
|
108
|
+
EditorialEmptyPanel,
|
|
109
|
+
EditorialFilterBar,
|
|
110
|
+
EditorialFilterField,
|
|
111
|
+
EditorialFilterPanel,
|
|
112
|
+
EditorialFooter,
|
|
113
|
+
EditorialFootnote,
|
|
114
|
+
EditorialHero,
|
|
115
|
+
EditorialMasthead,
|
|
116
|
+
EditorialMastheadAction,
|
|
117
|
+
EditorialMastheadLink,
|
|
118
|
+
EditorialMetaBar,
|
|
119
|
+
EditorialNote,
|
|
120
|
+
EditorialPageHeader,
|
|
121
|
+
EditorialPanel,
|
|
122
|
+
EditorialPillNav,
|
|
123
|
+
EditorialPillNavItem,
|
|
124
|
+
EditorialPrompt,
|
|
125
|
+
EditorialSearch,
|
|
126
|
+
EditorialSection,
|
|
127
|
+
EditorialSectionHead,
|
|
128
|
+
EditorialStats,
|
|
129
|
+
EditorialTextButton,
|
|
130
|
+
EditorialTextLink,
|
|
131
|
+
EditorialToggleGroup,
|
|
132
|
+
EditorialToolbar,
|
|
43
133
|
ErrorSurface,
|
|
134
|
+
Eyebrow,
|
|
44
135
|
Flex,
|
|
136
|
+
HoldingCard,
|
|
137
|
+
HoldingCardAction,
|
|
138
|
+
HoldingGrid,
|
|
45
139
|
MasterDetail,
|
|
46
140
|
MobileShell,
|
|
47
141
|
NavList,
|
|
48
142
|
OrgSwitcher,
|
|
49
143
|
PageContainer,
|
|
144
|
+
PriceSummary,
|
|
50
145
|
ResizableHandle,
|
|
51
146
|
ResizablePanel,
|
|
52
147
|
ResizablePanelGroup,
|
|
53
148
|
ResponsiveGrid,
|
|
54
149
|
Separator,
|
|
55
150
|
ServiceRolePanel,
|
|
151
|
+
SettingsLayout,
|
|
152
|
+
SettingsPanel,
|
|
56
153
|
Sidebar,
|
|
57
154
|
SidebarHeader,
|
|
58
155
|
SidebarItem,
|
|
59
156
|
SidebarSection,
|
|
60
157
|
SplitPane,
|
|
158
|
+
ThemePicker,
|
|
61
159
|
Topbar,
|
|
62
160
|
TopbarItem,
|
|
63
161
|
TopbarSearch,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { MobileShellProp } from "../../props/components/layout.prop.js";
|
|
2
2
|
export type { MobileShellProp, MobileShellProp as MobileShellProps, } from "../../props/components/layout.prop.js";
|
|
3
|
+
/** Shared internal navigation surface; both shells use the same tiling and current-page styles. */
|
|
4
|
+
export declare const ShellTabBar: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & import("react").RefAttributes<HTMLElement>>;
|
|
3
5
|
/**
|
|
4
6
|
* MobileShell — the HANDHELD app shell: a status band, an app bar, ONE scroll region,
|
|
5
7
|
* a sticky action bar and a bottom tab bar, in that fixed order.
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useRef } from "react";
|
|
3
|
+
import { forwardRef, useRef } from "react";
|
|
4
4
|
import { useTranslation } from "../../i18n/use-translation.js";
|
|
5
5
|
import { useToastStickyBarClearance } from "../../lib/toast-clearance.js";
|
|
6
6
|
import { cn } from "../../lib/utils.js";
|
|
7
|
+
const ShellTabBar = forwardRef(
|
|
8
|
+
function ShellTabBar2({ className, "aria-label": label, ...props }, ref) {
|
|
9
|
+
const { t } = useTranslation();
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
"nav",
|
|
12
|
+
{
|
|
13
|
+
...props,
|
|
14
|
+
ref,
|
|
15
|
+
className: cn("ui-mobile-shell-tabbar", className),
|
|
16
|
+
"aria-label": label ?? t("layout.sidebar.ariaLabel")
|
|
17
|
+
}
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
);
|
|
7
21
|
function MobileShell({
|
|
8
22
|
statusBar,
|
|
9
23
|
header,
|
|
@@ -44,19 +58,12 @@ function MobileShell({
|
|
|
44
58
|
}
|
|
45
59
|
),
|
|
46
60
|
actions !== void 0 && /* @__PURE__ */ jsx("footer", { ref: actionsRef, className: "ui-mobile-shell-actions", children: actions }),
|
|
47
|
-
tabBar !== void 0 && /* @__PURE__ */ jsx(
|
|
48
|
-
"nav",
|
|
49
|
-
{
|
|
50
|
-
ref: tabBarRef,
|
|
51
|
-
className: "ui-mobile-shell-tabbar",
|
|
52
|
-
"aria-label": t("layout.sidebar.ariaLabel"),
|
|
53
|
-
children: tabBar
|
|
54
|
-
}
|
|
55
|
-
)
|
|
61
|
+
tabBar !== void 0 && /* @__PURE__ */ jsx(ShellTabBar, { ref: tabBarRef, children: tabBar })
|
|
56
62
|
]
|
|
57
63
|
}
|
|
58
64
|
);
|
|
59
65
|
}
|
|
60
66
|
export {
|
|
61
|
-
MobileShell
|
|
67
|
+
MobileShell,
|
|
68
|
+
ShellTabBar
|
|
62
69
|
};
|
|
@@ -4,6 +4,12 @@ import { cn } from "../../lib/utils.js";
|
|
|
4
4
|
const RESPONSIVE_GRID_PRESET_COLUMNS = {
|
|
5
5
|
"pricing-plans": { base: 1, sm: 3, md: 3, lg: 3 }
|
|
6
6
|
};
|
|
7
|
+
const TOKEN_PRESETS = /* @__PURE__ */ new Set([
|
|
8
|
+
"catalog",
|
|
9
|
+
"trio",
|
|
10
|
+
"lead",
|
|
11
|
+
"panels"
|
|
12
|
+
]);
|
|
7
13
|
function resolveColumns(columns) {
|
|
8
14
|
if (typeof columns === "number") {
|
|
9
15
|
return {
|
|
@@ -40,12 +46,14 @@ function ResponsiveGrid({
|
|
|
40
46
|
className,
|
|
41
47
|
children
|
|
42
48
|
}) {
|
|
43
|
-
const
|
|
49
|
+
const tokenPreset = preset !== void 0 && TOKEN_PRESETS.has(preset) ? preset : void 0;
|
|
50
|
+
const resolved = (preset && RESPONSIVE_GRID_PRESET_COLUMNS[preset]) ?? resolveColumns(columns);
|
|
44
51
|
return /* @__PURE__ */ jsx("div", { className: "ui-responsive-grid-scope", children: /* @__PURE__ */ jsx(
|
|
45
52
|
"div",
|
|
46
53
|
{
|
|
47
54
|
className: cn("ui-responsive-grid", className),
|
|
48
55
|
"data-gap": gap,
|
|
56
|
+
"data-preset": tokenPreset,
|
|
49
57
|
"data-flow": flow === "columns" ? "columns" : void 0,
|
|
50
58
|
"data-align": align,
|
|
51
59
|
"data-dense": dense && flow !== "columns" ? "" : void 0,
|
|
@@ -12,6 +12,7 @@ export type { TopbarItemProp, TopbarItemProp as TopbarItemProps, } from "../../p
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const TopbarItem: React.ForwardRefExoticComponent<Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
|
|
14
14
|
hideBelow?: import("../../props/index.js").BreakpointProp;
|
|
15
|
+
hideFrom?: import("../../props/index.js").BreakpointProp;
|
|
15
16
|
icon?: React.ReactNode;
|
|
16
17
|
iconHideFrom?: import("../../props/index.js").BreakpointProp;
|
|
17
18
|
labelHideBelow?: import("../../props/index.js").BreakpointProp;
|
|
@@ -7,6 +7,7 @@ const TopbarItem = React.forwardRef(function TopbarItem2({
|
|
|
7
7
|
className,
|
|
8
8
|
type,
|
|
9
9
|
hideBelow,
|
|
10
|
+
hideFrom,
|
|
10
11
|
icon,
|
|
11
12
|
iconHideFrom,
|
|
12
13
|
labelHideBelow,
|
|
@@ -62,6 +63,7 @@ const TopbarItem = React.forwardRef(function TopbarItem2({
|
|
|
62
63
|
"data-truncate": truncate ? "true" : void 0,
|
|
63
64
|
title: truncate && typeof label === "string" ? label : void 0,
|
|
64
65
|
"data-hide-below": hideBelow,
|
|
66
|
+
"data-hide-from": hideFrom,
|
|
65
67
|
className: cn("ui-topbar-item ui-focus-ring", className),
|
|
66
68
|
type: asChild ? void 0 : type ?? "button",
|
|
67
69
|
...props,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "AUTO-GENERATED by scripts/gen-measurement-contract.mjs — do not edit. Read this instead of guessing: docs/MEASUREMENT-CONTRACT.md.",
|
|
3
|
-
"version": "33.
|
|
3
|
+
"version": "33.22.1",
|
|
4
4
|
"targetSize": {
|
|
5
5
|
"standard": "WCAG 2.2 SC 2.5.8 Target Size (Minimum), level AA — 24×24 CSS px",
|
|
6
6
|
"min": 24,
|
|
@@ -122,6 +122,8 @@ const LegalDocumentShell = React.forwardRef(
|
|
|
122
122
|
target.focus({ preventScroll: true });
|
|
123
123
|
};
|
|
124
124
|
const contentsName = contentsLabel ?? t("layout.legalDocumentShell.contents");
|
|
125
|
+
const hasContents = sections.length > 0;
|
|
126
|
+
const hasRail = hasContents || documentNavigation !== void 0;
|
|
125
127
|
return /* @__PURE__ */ jsx(
|
|
126
128
|
"div",
|
|
127
129
|
{
|
|
@@ -129,58 +131,66 @@ const LegalDocumentShell = React.forwardRef(
|
|
|
129
131
|
id,
|
|
130
132
|
"data-slot": "legal-document-shell",
|
|
131
133
|
className: cn("ui-legal-document-scope", className),
|
|
132
|
-
children: /* @__PURE__ */ jsxs(
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
/* @__PURE__ */
|
|
140
|
-
|
|
134
|
+
children: /* @__PURE__ */ jsxs(
|
|
135
|
+
"article",
|
|
136
|
+
{
|
|
137
|
+
className: "ui-legal-document",
|
|
138
|
+
"aria-labelledby": titleId,
|
|
139
|
+
"data-rail": hasRail ? void 0 : "none",
|
|
140
|
+
children: [
|
|
141
|
+
/* @__PURE__ */ jsxs("header", { className: "ui-legal-document-header", children: [
|
|
142
|
+
/* @__PURE__ */ jsx(Heading, { level: 1, id: titleId, children: title }),
|
|
143
|
+
(version !== void 0 || effectiveDate !== void 0) && /* @__PURE__ */ jsxs("div", { className: "ui-legal-document-meta", children: [
|
|
144
|
+
version !== void 0 && /* @__PURE__ */ jsx("span", { children: t("layout.legalDocumentShell.version", { version }) }),
|
|
145
|
+
effectiveDate !== void 0 && // <time dateTime> keeps the MACHINE-readable value as the ISO 8601 input while
|
|
146
|
+
// the visible text is the Intl-formatted, locale-correct rendering.
|
|
147
|
+
/* @__PURE__ */ jsx("time", { dateTime: effectiveDate, children: t(
|
|
148
|
+
dateKind === "updated" ? "layout.legalDocumentShell.updatedDate" : "layout.legalDocumentShell.effectiveDate",
|
|
149
|
+
{
|
|
150
|
+
date: formatEffectiveDate(effectiveDate, locale)
|
|
151
|
+
}
|
|
152
|
+
) })
|
|
153
|
+
] }),
|
|
154
|
+
summary !== void 0 && // A <div> (not <p>): the summary slot may carry block content, and a <p> inside a <p>
|
|
155
|
+
// is invalid HTML the browser silently un-nests.
|
|
156
|
+
/* @__PURE__ */ jsx("div", { className: "ui-legal-document-summary", children: summary })
|
|
157
|
+
] }),
|
|
158
|
+
hasRail && /* @__PURE__ */ jsxs("div", { className: "ui-legal-document-rail", children: [
|
|
159
|
+
documentNavigation !== void 0 && /* @__PURE__ */ jsx("div", { "data-slot": "legal-document-navigation", children: documentNavigation }),
|
|
160
|
+
hasContents && /* @__PURE__ */ jsxs("nav", { className: "ui-legal-document-toc", "aria-labelledby": contentsId, children: [
|
|
161
|
+
/* @__PURE__ */ jsx("p", { id: contentsId, className: "ui-legal-document-toc-title", children: contentsName }),
|
|
162
|
+
/* @__PURE__ */ jsx("ol", { className: "ui-legal-document-toc-list", children: sections.map((section) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
163
|
+
"a",
|
|
164
|
+
{
|
|
165
|
+
href: `#${section.id}`,
|
|
166
|
+
className: "ui-legal-document-toc-link",
|
|
167
|
+
"data-active": section.id === active ? "" : void 0,
|
|
168
|
+
"aria-current": section.id === active ? "location" : void 0,
|
|
169
|
+
onClick: (event) => handleContentsClick(event, section.id),
|
|
170
|
+
children: section.title
|
|
171
|
+
}
|
|
172
|
+
) }, section.id)) })
|
|
173
|
+
] })
|
|
174
|
+
] }),
|
|
175
|
+
/* @__PURE__ */ jsx("div", { className: "ui-legal-document-content", children: sections.map((section) => /* @__PURE__ */ jsxs(
|
|
176
|
+
"section",
|
|
141
177
|
{
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
/* @__PURE__ */ jsx("
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
className: "ui-legal-document-toc-link",
|
|
159
|
-
"data-active": section.id === active ? "" : void 0,
|
|
160
|
-
"aria-current": section.id === active ? "location" : void 0,
|
|
161
|
-
onClick: (event) => handleContentsClick(event, section.id),
|
|
162
|
-
children: section.title
|
|
163
|
-
}
|
|
164
|
-
) }, section.id)) })
|
|
165
|
-
] })
|
|
166
|
-
] }),
|
|
167
|
-
/* @__PURE__ */ jsx("div", { className: "ui-legal-document-content", children: sections.map((section) => /* @__PURE__ */ jsxs(
|
|
168
|
-
"section",
|
|
169
|
-
{
|
|
170
|
-
id: section.id,
|
|
171
|
-
tabIndex: -1,
|
|
172
|
-
"data-legal-section": section.id,
|
|
173
|
-
"aria-labelledby": `${section.id}-heading`,
|
|
174
|
-
className: "ui-legal-document-section",
|
|
175
|
-
children: [
|
|
176
|
-
/* @__PURE__ */ jsx(Heading, { level: 2, id: `${section.id}-heading`, children: section.title }),
|
|
177
|
-
/* @__PURE__ */ jsx("div", { className: "ui-legal-document-section-body", children: section.content })
|
|
178
|
-
]
|
|
179
|
-
},
|
|
180
|
-
section.id
|
|
181
|
-
)) }),
|
|
182
|
-
footerAction !== void 0 && /* @__PURE__ */ jsx("footer", { className: "ui-legal-document-footer", children: footerAction })
|
|
183
|
-
] })
|
|
178
|
+
id: section.id,
|
|
179
|
+
tabIndex: -1,
|
|
180
|
+
"data-legal-section": section.id,
|
|
181
|
+
"aria-labelledby": `${section.id}-heading`,
|
|
182
|
+
className: "ui-legal-document-section",
|
|
183
|
+
children: [
|
|
184
|
+
/* @__PURE__ */ jsx(Heading, { level: 2, id: `${section.id}-heading`, children: section.title }),
|
|
185
|
+
/* @__PURE__ */ jsx("div", { className: "ui-legal-document-section-body", children: section.content })
|
|
186
|
+
]
|
|
187
|
+
},
|
|
188
|
+
section.id
|
|
189
|
+
)) }),
|
|
190
|
+
footerAction !== void 0 && /* @__PURE__ */ jsx("footer", { className: "ui-legal-document-footer", children: footerAction })
|
|
191
|
+
]
|
|
192
|
+
}
|
|
193
|
+
)
|
|
184
194
|
}
|
|
185
195
|
);
|
|
186
196
|
}
|
|
@@ -14,7 +14,7 @@ function useToastStickyBarClearance(refs, enabled) {
|
|
|
14
14
|
};
|
|
15
15
|
publish();
|
|
16
16
|
const observer = new ResizeObserver(publish);
|
|
17
|
-
for (const el of elements) observer.observe(el);
|
|
17
|
+
for (const el of elements) observer.observe(el, { box: "border-box" });
|
|
18
18
|
return () => {
|
|
19
19
|
observer.disconnect();
|
|
20
20
|
html.style.removeProperty(TOAST_STICKY_BAR_PROPERTY);
|
|
@@ -1310,6 +1310,8 @@ export type ImagePreviewGroupConfigProp = Omit<ImagePreviewConfigProp, "src" | "
|
|
|
1310
1310
|
/**
|
|
1311
1311
|
* @see Image — a picture that opens large in a full-viewport preview (antd `Image`): zoom, rotate,
|
|
1312
1312
|
* flip, and — inside an `ImagePreviewGroup` — prev/next across every picture of the group.
|
|
1313
|
+
* Lazy by default (gh#1454): `loading` defaults to `"lazy"` (`"eager"` with `fetchPriority="high"`,
|
|
1314
|
+
* the page's LCP picture) and `decoding` to `"async"`; explicit values win.
|
|
1313
1315
|
*/
|
|
1314
1316
|
export type ImageProp = Omit<React.ImgHTMLAttributes<HTMLImageElement>, "alt" | "placeholder"> & {
|
|
1315
1317
|
/** Image URL. */
|
|
@@ -360,6 +360,15 @@ export type NumberInputProp = FieldA11yProps & {
|
|
|
360
360
|
prefix?: React.ReactNode;
|
|
361
361
|
/** Trailing affix inside the field (e.g. `%`). */
|
|
362
362
|
suffix?: React.ReactNode;
|
|
363
|
+
/**
|
|
364
|
+
* How the field takes its inline space, as `Select` and the pickers mean it (gh#1448).
|
|
365
|
+
* `full` (default) fills the line; `auto` is sized to the widest value the bounds allow (the
|
|
366
|
+
* formatted `min` / `max`, 6 characters when unbounded) plus the steppers — a quantity stepper in
|
|
367
|
+
* a `ListRow` trailing slot, outside any `FormField` `controlWidth`; `bounded` holds
|
|
368
|
+
* `--control-bounded-width`. Measured in a consumer deck builder: a 0–99 stepper took 215px at
|
|
369
|
+
* 1440px and, at 390px, pushed every row's trailing cluster onto its own line.
|
|
370
|
+
*/
|
|
371
|
+
width?: ControlWidthProp;
|
|
363
372
|
/** Form field name — the visible input submits its value natively. */
|
|
364
373
|
name?: NameProp;
|
|
365
374
|
id?: IdProp;
|