@hjmds/design-contracts 0.9.1 → 0.9.3
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/dist/catalog.d.ts +7 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/component-recipes.d.ts +13 -0
- package/dist/component-recipes.d.ts.map +1 -1
- package/dist/component-recipes.js +13 -1
- package/dist/component-recipes.js.map +1 -1
- package/dist/design-system-provider.d.ts +9 -1
- package/dist/design-system-provider.d.ts.map +1 -1
- package/dist/design-system-provider.js +4 -1
- package/dist/design-system-provider.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/docs/generated/component-maturity.md +1 -1
- package/docs/generated/renderer-evidence.json +3 -3
- package/docs/generated/renderer-evidence.md +1 -1
- package/docs/generated/showcase-manifest.json +1 -1
- package/docs/showcase.md +15 -14
- package/package.json +1 -1
package/dist/catalog.d.ts
CHANGED
|
@@ -5116,6 +5116,13 @@ export declare const recipeRegistry: {
|
|
|
5116
5116
|
readonly slots: readonly ["backdrop", "positioner", "content", "handle", "header", "title", "body", "footer", "close"];
|
|
5117
5117
|
readonly defaults: {
|
|
5118
5118
|
readonly placement: "bottom";
|
|
5119
|
+
readonly size: "auto";
|
|
5120
|
+
};
|
|
5121
|
+
readonly sizes: {
|
|
5122
|
+
readonly auto: null;
|
|
5123
|
+
readonly medium: 0.6;
|
|
5124
|
+
readonly large: 0.85;
|
|
5125
|
+
readonly full: 1;
|
|
5119
5126
|
};
|
|
5120
5127
|
readonly backdrop: {
|
|
5121
5128
|
readonly color: "#000000";
|
package/dist/catalog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EjB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,cAAc,CAAC"}
|
|
@@ -2880,6 +2880,19 @@ export declare const sheetRecipe: {
|
|
|
2880
2880
|
readonly slots: readonly ["backdrop", "positioner", "content", "handle", "header", "title", "body", "footer", "close"];
|
|
2881
2881
|
readonly defaults: {
|
|
2882
2882
|
readonly placement: "bottom";
|
|
2883
|
+
readonly size: "auto";
|
|
2884
|
+
};
|
|
2885
|
+
/**
|
|
2886
|
+
* How tall the sheet opens. `auto` keeps the content-driven height that the
|
|
2887
|
+
* recipe already caps with `maxHeightRatio`. The fixed steps exist because
|
|
2888
|
+
* consumers otherwise reach for `contentStyle={{ height }}`, which moves a
|
|
2889
|
+
* recipe-owned dimension into product code.
|
|
2890
|
+
*/
|
|
2891
|
+
readonly sizes: {
|
|
2892
|
+
readonly auto: null;
|
|
2893
|
+
readonly medium: 0.6;
|
|
2894
|
+
readonly large: 0.85;
|
|
2895
|
+
readonly full: 1;
|
|
2883
2896
|
};
|
|
2884
2897
|
readonly backdrop: {
|
|
2885
2898
|
readonly color: "#000000";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-recipes.d.ts","sourceRoot":"","sources":["../src/component-recipes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"component-recipes.d.ts","sourceRoot":"","sources":["../src/component-recipes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1176,7 +1176,19 @@ export const statisticRecipe = {
|
|
|
1176
1176
|
};
|
|
1177
1177
|
export const sheetRecipe = {
|
|
1178
1178
|
slots: ["backdrop", "positioner", "content", "handle", "header", "title", "body", "footer", "close"],
|
|
1179
|
-
defaults: { placement: "bottom" },
|
|
1179
|
+
defaults: { placement: "bottom", size: "auto" },
|
|
1180
|
+
/**
|
|
1181
|
+
* How tall the sheet opens. `auto` keeps the content-driven height that the
|
|
1182
|
+
* recipe already caps with `maxHeightRatio`. The fixed steps exist because
|
|
1183
|
+
* consumers otherwise reach for `contentStyle={{ height }}`, which moves a
|
|
1184
|
+
* recipe-owned dimension into product code.
|
|
1185
|
+
*/
|
|
1186
|
+
sizes: {
|
|
1187
|
+
auto: null,
|
|
1188
|
+
medium: 0.6,
|
|
1189
|
+
large: 0.85,
|
|
1190
|
+
full: 1,
|
|
1191
|
+
},
|
|
1180
1192
|
backdrop: backdrop.modal,
|
|
1181
1193
|
content: {
|
|
1182
1194
|
background: semanticColors.canvas,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-recipes.js","sourceRoot":"","sources":["../src/component-recipes.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ColorReference } from \"./color-references.js\";\nimport {\n collectionItemContract,\n fieldFrameContract,\n floatingSurfaceContract,\n focusIndicatorContract,\n formSupportContract,\n} from \"./component-contracts.js\";\nimport {\n backdrop,\n breakpoint,\n control,\n glyph,\n layer,\n layout,\n fontWeight,\n motion,\n motionPreset,\n opacity,\n radius,\n spacing,\n stroke,\n type FontWeightValue,\n type GlyphSize,\n type TextVariant,\n} from \"./foundations.js\";\nimport { semanticColors } from \"./semantic-colors.js\";\nimport { tooltipDescriptorDefaults } from \"./tooltip.js\";\nimport { bottomNavigationRecipeDefaults } from \"./bottom-navigation-defaults.js\";\n\nexport {\n iconButtonRecipe,\n resolveIconButtonPresentation,\n type IconButtonShape,\n type IconButtonSize,\n type IconButtonTone,\n type ResolvedIconButtonPresentation,\n} from \"./icon-button-recipe.js\";\nexport {\n counterBadgeDefaults,\n counterBadgeRecipe,\n formatCounterBadgeCount,\n type CounterBadgeSize,\n type CounterBadgeTone,\n type CounterBadgeVariant,\n} from \"./counter-badge-recipe.js\";\nexport {\n progressRecipe,\n type ProgressSize,\n type ProgressTone,\n} from \"./progress-recipe.js\";\nexport type {\n BottomNavigationDensity,\n BottomNavigationDistribution,\n BottomNavigationPresentation,\n} from \"./bottom-navigation-defaults.js\";\n\nexport type TextTone =\n | \"primary\"\n | \"body\"\n | \"muted\"\n | \"subtle\"\n | \"weak\"\n | \"brand\"\n | \"danger\"\n | \"inverse\";\nexport type TextEmphasis = \"regular\" | \"medium\" | \"strong\";\n\nexport const textRecipe = {\n slots: [\"root\"] as const,\n defaults: { variant: \"body\", tone: \"primary\", emphasis: \"regular\" },\n tones: {\n primary: semanticColors.content.primary,\n body: semanticColors.content.body,\n muted: semanticColors.content.secondary,\n subtle: semanticColors.content.tertiary,\n weak: semanticColors.content.decorative,\n brand: semanticColors.content.brand,\n danger: semanticColors.content.danger,\n inverse: semanticColors.content.inverse,\n },\n emphasis: {\n regular: fontWeight.regular,\n medium: fontWeight.semibold,\n strong: fontWeight.bold,\n },\n} as const satisfies {\n slots: readonly [\"root\"];\n defaults: {\n variant: TextVariant;\n tone: TextTone;\n emphasis: TextEmphasis;\n };\n tones: Record<TextTone, ColorReference>;\n emphasis: Record<TextEmphasis, FontWeightValue>;\n};\n\nexport type IconTone =\n | \"primary\"\n | \"secondary\"\n | \"decorative\"\n | \"brand\"\n | \"info\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"inverse\";\nexport type IconWeight = \"regular\" | \"strong\";\n\nexport const iconRecipe = {\n slots: [\"root\"] as const,\n defaults: {\n size: \"md\",\n tone: \"secondary\",\n weight: \"regular\",\n decorative: true,\n },\n sizes: glyph,\n tones: {\n primary: semanticColors.content.primary,\n secondary: semanticColors.content.secondary,\n decorative: semanticColors.content.decorative,\n brand: semanticColors.content.brand,\n info: semanticColors.feedback.info.foreground,\n success: semanticColors.feedback.success.foreground,\n warning: semanticColors.feedback.warning.foreground,\n danger: semanticColors.content.danger,\n inverse: semanticColors.content.inverse,\n },\n weights: { regular: 2, strong: 2.5 },\n stroke: {\n lineCap: \"round\",\n lineJoin: \"round\",\n scaling: \"proportional\",\n },\n} as const satisfies {\n slots: readonly [\"root\"];\n defaults: {\n size: GlyphSize;\n tone: IconTone;\n weight: IconWeight;\n decorative: boolean;\n };\n sizes: Record<GlyphSize, number>;\n tones: Record<IconTone, ColorReference>;\n weights: Record<IconWeight, number>;\n stroke: {\n lineCap: \"round\";\n lineJoin: \"round\";\n scaling: \"proportional\";\n };\n};\n\nexport type StackAxis = \"block\" | \"inline\";\nexport type StackGap = keyof typeof spacing;\nexport type StackAlign = \"start\" | \"center\" | \"end\" | \"stretch\";\nexport type StackJustify = \"start\" | \"center\" | \"end\" | \"between\";\n\nexport const stackRecipe = {\n slots: [\"root\"] as const,\n defaults: { axis: \"block\", gap: \"md\", align: \"stretch\", justify: \"start\", wrap: false },\n axes: { block: \"column\", inline: \"row\" },\n gaps: spacing,\n align: [\"start\", \"center\", \"end\", \"stretch\"] as const,\n justify: [\"start\", \"center\", \"end\", \"between\"] as const,\n} as const satisfies {\n slots: readonly [\"root\"];\n defaults: {\n axis: StackAxis;\n gap: StackGap;\n align: StackAlign;\n justify: StackJustify;\n wrap: boolean;\n };\n axes: Record<StackAxis, \"column\" | \"row\">;\n gaps: Record<StackGap, number>;\n align: readonly StackAlign[];\n justify: readonly StackJustify[];\n};\n\nexport type LinkTone = \"brand\" | \"neutral\";\nexport type LinkVariant = \"inline\" | \"standalone\";\n\nexport const linkRecipe = {\n slots: [\"root\", \"leading\", \"label\", \"trailing\"] as const,\n defaults: { tone: \"brand\", variant: \"inline\" },\n tones: {\n brand: semanticColors.content.brand,\n neutral: semanticColors.content.body,\n },\n variants: {\n inline: {\n textVariant: \"body\",\n fontWeight: fontWeight.semibold,\n underline: \"always\",\n minHeight: null,\n },\n standalone: {\n textVariant: \"body\",\n fontWeight: fontWeight.bold,\n underline: \"hover\",\n minHeight: control.minTouchTarget,\n },\n },\n gap: spacing.xxs,\n icon: { glyph: \"xs\", inheritsTone: true },\n states: {\n pressedOpacity: opacity.pressed,\n focus: focusIndicatorContract,\n },\n} as const satisfies {\n slots: readonly [\"root\", \"leading\", \"label\", \"trailing\"];\n defaults: { tone: LinkTone; variant: LinkVariant };\n tones: Record<LinkTone, ColorReference>;\n variants: Record<\n LinkVariant,\n {\n textVariant: TextVariant;\n fontWeight: FontWeightValue;\n underline: \"always\" | \"hover\";\n minHeight: number | null;\n }\n >;\n gap: number;\n icon: { glyph: GlyphSize; inheritsTone: true };\n states: {\n pressedOpacity: number;\n focus: typeof focusIndicatorContract;\n };\n};\n\nexport const selectionGroupRecipe = {\n slots: [\"root\", \"label\", \"requiredIndicator\", \"description\", \"items\", \"error\"] as const,\n defaults: { orientation: \"vertical\", presentation: \"card\" },\n orientations: {\n vertical: {\n direction: \"column\",\n // `grouped` rows sit flush inside one shared card, so the group owns\n // the only outer radius and the rows share edges instead of floating\n // apart with their own gap — the same shape as `selectionControlRecipe`'s\n // `grouped` presentation, which this gap pairs with.\n gap: { plain: spacing.xxs, card: spacing.xs, grouped: 0 },\n },\n horizontal: {\n direction: \"row\",\n gap: { plain: spacing.sm, card: spacing.md, grouped: 0 },\n },\n },\n label: formSupportContract.label,\n requiredIndicator: { color: semanticColors.content.danger },\n description: formSupportContract.hint,\n error: formSupportContract.error,\n supportGap: formSupportContract.gap,\n states: { disabledOpacity: opacity.disabled },\n} as const;\n\nexport type SelectionGroupOrientation = keyof typeof selectionGroupRecipe.orientations;\nexport type SelectionGroupPresentation = keyof typeof selectionGroupRecipe.orientations.vertical.gap;\n\nexport type BadgeTone =\n | \"neutral\"\n /**\n * One step stronger than `neutral`: solid ink plate instead of a muted\n * label + sunken plate. A product author needed this for a result screen\n * where win/loss is the fact itself, not a side note, and `neutral` plus\n * its `outline` variant read as nearly the same grey — the one place the\n * distinction had to be unmistakable at a glance. Use it where a badge must\n * outrank `neutral` without borrowing an accent or the brand tint (both of\n * which already carry other meanings — see the `brand` tone below).\n */\n | \"strong\"\n | \"brand\"\n | \"info\"\n | \"success\"\n | \"warning\"\n | \"attention\"\n | \"danger\";\nexport type BadgeSize = \"small\" | \"medium\";\nexport type BadgeVariant = \"filled\" | \"outline\";\n\nexport const badgeRecipe = {\n slots: [\"root\", \"icon\", \"label\"] as const,\n defaults: { tone: \"neutral\", size: \"medium\", variant: \"filled\" },\n variants: {\n filled: {\n usesToneBackground: true,\n borderFallback: null,\n },\n outline: {\n usesToneBackground: false,\n borderFallback: semanticColors.border.default,\n },\n },\n tones: {\n neutral: {\n content: semanticColors.content.secondary,\n outlineContent: semanticColors.content.secondary,\n background: semanticColors.surface.sunken,\n border: null,\n },\n strong: {\n content: semanticColors.content.inverse,\n outlineContent: semanticColors.content.primary,\n background: semanticColors.content.primary,\n border: null,\n },\n brand: {\n content: semanticColors.content.brand,\n outlineContent: semanticColors.content.brand,\n // The brand tint now means \"selected\" everywhere (see\n // `selectionControlRecipe`/`segmentedControlRecipe`), so a badge that\n // only labels something — a season, a grade, a question number —\n // cannot wear it: rows of static badges started reading as a filter\n // with one option switched on. The plate goes neutral and the brand\n // stays in the copy.\n background: semanticColors.surface.sunken,\n border: null,\n },\n info: {\n content: semanticColors.feedback.info.foreground,\n outlineContent: semanticColors.feedback.info.foreground,\n background: semanticColors.feedback.info.badgeBackground,\n border: semanticColors.feedback.info.border,\n },\n success: {\n content: semanticColors.feedback.success.foreground,\n outlineContent: semanticColors.feedback.success.foreground,\n background: semanticColors.feedback.success.badgeBackground,\n border: semanticColors.feedback.success.border,\n },\n warning: {\n content: semanticColors.feedback.warning.foreground,\n outlineContent: semanticColors.feedback.warning.foreground,\n background: semanticColors.feedback.warning.badgeBackground,\n border: semanticColors.feedback.warning.border,\n },\n attention: {\n content: semanticColors.feedback.attention.foreground,\n outlineContent: semanticColors.feedback.attention.foreground,\n background: semanticColors.feedback.attention.badgeBackground,\n border: semanticColors.feedback.attention.border,\n },\n danger: {\n content: semanticColors.feedback.danger.foreground,\n outlineContent: semanticColors.feedback.danger.foreground,\n background: semanticColors.feedback.danger.badgeBackground,\n border: semanticColors.feedback.danger.border,\n },\n },\n sizes: {\n small: {\n minHeight: 20,\n paddingHorizontal: spacing.xxs,\n gap: spacing.xxs,\n textVariant: \"caption\",\n },\n medium: {\n minHeight: 24,\n paddingHorizontal: spacing.xs,\n gap: spacing.xxs,\n textVariant: \"caption\",\n },\n },\n radius: \"full\",\n borderWidth: stroke.default,\n fontWeight: fontWeight.bold,\n} as const;\n\nexport type SearchFieldSize = \"medium\" | \"large\";\n\n/** Search is a field specialization with stable affordance and clear targets. */\nexport const searchFieldRecipe = {\n slots: [\"root\", \"leading\", \"input\", \"trailing\", \"clear\", \"spinner\"] as const,\n defaults: { size: \"medium\", shape: \"medium\" },\n sizes: {\n medium: {\n minHeight: control.minTouchTarget,\n paddingHorizontal: spacing.sm,\n gap: spacing.xs,\n glyph: \"sm\",\n clearDiameter: 36,\n clearHitSlop: 4,\n textVariant: \"body\",\n },\n large: {\n minHeight: control.buttonHeight.large,\n paddingHorizontal: spacing.md,\n gap: spacing.sm,\n glyph: \"sm\",\n clearDiameter: control.minTouchTarget,\n clearHitSlop: 0,\n textVariant: \"bodyLarge\",\n },\n },\n colors: {\n background: semanticColors.surface.default,\n content: semanticColors.content.primary,\n placeholder: semanticColors.content.secondary,\n leading: semanticColors.content.decorative,\n clear: semanticColors.content.secondary,\n border: semanticColors.content.secondary,\n focus: focusIndicatorContract.color,\n invalid: semanticColors.border.danger,\n },\n /**\n * 모양은 **축이다** — 값 하나로 못 박지 않는다.\n *\n * 원래 여기는 `radius: \"full\"` 하나였다. 그런데 `fieldRecipe`는 같은 결정을\n * `shapes: { medium, large, full }` 축으로 열어 두고 있었고, 그래서 **한 앱 안에서\n * 평범한 입력과 찾기 입력이 서로 다른 모양이 되는 것을 계약이 막지 못했다.** 실제로\n * 갈라졌다 — app-rn은 `\"md\"`로 그리고 있었는데 이 계약은 `\"full\"`이라고 말하고\n * 있었고, 어느 쪽이 옳은지 양쪽 문서 어디에도 없었다.\n *\n * 찾기 입력이 알약이어야 하는지는 **제품이 정할 일**이고(iOS 관례는 알약, 이 앱은\n * 사각), 계약이 할 일은 그 선택지를 `fieldRecipe`와 **같은 이름으로** 주는 것이다.\n * 그러면 두 입력의 모양을 나란히 맞추는 것과 일부러 다르게 하는 것이 둘 다 표현된다.\n */\n shapes: { medium: \"md\", large: \"lg\", full: \"full\" },\n borderWidth: stroke.default,\n focusRingWidth: focusIndicatorContract.width,\n focusRingOffset: focusIndicatorContract.offset,\n states: {\n disabledOpacity: opacity.disabled,\n pressedOpacity: opacity.pressed,\n },\n} as const satisfies {\n slots: readonly [\"root\", \"leading\", \"input\", \"trailing\", \"clear\", \"spinner\"];\n defaults: { size: SearchFieldSize; shape: \"medium\" | \"large\" | \"full\" };\n sizes: Record<\n SearchFieldSize,\n {\n minHeight: number;\n paddingHorizontal: number;\n gap: number;\n glyph: GlyphSize;\n clearDiameter: number;\n clearHitSlop: number;\n textVariant: TextVariant;\n }\n >;\n colors: Record<\n \"background\" | \"content\" | \"placeholder\" | \"leading\" | \"clear\" | \"border\" | \"focus\" | \"invalid\",\n ColorReference\n >;\n shapes: Record<\"medium\" | \"large\" | \"full\", keyof typeof radius>;\n borderWidth: number;\n focusRingWidth: number;\n focusRingOffset: number;\n states: { disabledOpacity: number; pressedOpacity: number };\n};\n\nexport type ChipSize = keyof typeof control.chipHeight;\n\nexport const chipRecipe = {\n slots: [\"root\", \"leading\", \"indicator\", \"label\", \"trailing\"] as const,\n defaults: { size: \"small\", selected: false },\n sizes: {\n small: {\n height: control.chipHeight.small,\n hitSlop: 4,\n paddingHorizontal: spacing.sm,\n gap: spacing.xxs,\n textVariant: \"body\",\n },\n medium: {\n height: control.chipHeight.medium,\n hitSlop: 0,\n paddingHorizontal: spacing.md,\n gap: spacing.xs,\n textVariant: \"body\",\n },\n },\n states: {\n idle: {\n background: semanticColors.surface.default,\n content: semanticColors.content.secondary,\n // A resting chip wears the shared hairline, not a text-strength\n // outline. Drawing it in `content.secondary` made an unselected chip\n // read heavier than the selected one beside it, inverting the one\n // signal that matters in a filter row.\n border: semanticColors.border.default,\n },\n selected: {\n background: semanticColors.surface.brand,\n content: semanticColors.content.brand,\n border: semanticColors.border.focus,\n },\n pressedOpacity: opacity.pressed,\n disabledOpacity: opacity.disabled,\n },\n radius: \"full\",\n borderWidth: stroke.default,\n label: { fontWeight: fontWeight.semibold, selectedFontWeight: fontWeight.bold },\n selectionIndicator: {\n color: semanticColors.content.brand,\n glyph: \"xs\",\n },\n focus: focusIndicatorContract,\n} as const;\n\nexport const dividerRecipe = {\n slots: [\"root\", \"label\"] as const,\n defaults: { orientation: \"horizontal\", inset: \"none\" },\n color: semanticColors.border.default,\n thickness: stroke.subtle,\n insets: {\n none: 0,\n start: spacing.md,\n both: spacing.md,\n },\n} as const;\n\nexport const listRecipe = {\n slots: [\"root\", \"item\", \"separator\"] as const,\n defaults: { separator: \"indented\" },\n separators: {\n none: null,\n full: { insetStart: 0, insetEnd: 0 },\n indented: { insetStart: 40 + spacing.sm, insetEnd: 0 },\n },\n background: null,\n} as const;\n\nexport type ListRowDensity = \"comfortable\" | \"compact\";\n\nexport const listRowRecipe = {\n slots: [\"root\", \"leading\", \"content\", \"title\", \"description\", \"trailing\"] as const,\n defaults: { density: \"comfortable\", selected: false },\n density: {\n compact: {\n oneLineMinHeight: control.minTouchTarget,\n twoLineMinHeight: 60,\n paddingHorizontal: spacing.xs,\n paddingVertical: spacing.xxs,\n },\n comfortable: {\n oneLineMinHeight: layout.rowHeight.singleLine,\n twoLineMinHeight: layout.rowHeight.twoLine,\n paddingHorizontal: spacing.xs,\n paddingVertical: spacing.xs,\n },\n },\n gap: spacing.sm,\n leadingSize: 40,\n title: { color: semanticColors.content.body, textVariant: \"bodyLarge\", fontWeight: fontWeight.bold },\n description: { color: semanticColors.content.secondary, textVariant: \"body\" },\n trailing: {\n textColor: semanticColors.content.secondary,\n iconColor: semanticColors.content.decorative,\n glyph: \"sm\",\n textVariant: \"caption\",\n },\n states: {\n pressedBackground: semanticColors.interaction.pressed,\n selectedBackground: semanticColors.surface.brand,\n disabledOpacity: opacity.disabled,\n },\n} as const;\n\nexport type AccordionDensity = \"compact\" | \"comfortable\";\n\nexport const accordionRecipe = {\n slots: [\"root\", \"item\", \"header\", \"trigger\", \"title\", \"indicator\", \"panel\", \"divider\"] as const,\n defaults: { density: \"comfortable\", allowsMultipleExpanded: false },\n density: {\n compact: { triggerMinHeight: control.minTouchTarget, paddingVertical: spacing.xs },\n comfortable: { triggerMinHeight: layout.rowHeight.singleLine, paddingVertical: spacing.sm },\n },\n paddingHorizontal: spacing.xs,\n gap: spacing.sm,\n title: { color: semanticColors.content.body, textVariant: \"bodyLarge\", fontWeight: fontWeight.bold },\n indicator: { color: semanticColors.content.secondary, glyph: \"sm\" },\n panel: {\n color: semanticColors.content.body,\n textVariant: \"body\",\n paddingBottom: spacing.md,\n paddingInlineStart: spacing.xs,\n },\n divider: semanticColors.border.default,\n states: {\n pressedBackground: semanticColors.interaction.pressed,\n focus: focusIndicatorContract,\n disabledOpacity: opacity.disabled,\n },\n transition: motionPreset.enter,\n} as const;\n\nexport type MenuItemTone = \"neutral\" | \"danger\";\n\nexport const menuRecipe = {\n slots: [\n \"trigger\",\n \"content\",\n \"viewport\",\n \"section\",\n \"sectionLabel\",\n \"item\",\n \"leading\",\n \"copy\",\n \"label\",\n \"description\",\n \"trailing\",\n \"shortcut\",\n \"indicator\",\n \"dangerIndicator\",\n \"separator\",\n ] as const,\n defaults: { density: \"comfortable\", itemTone: \"neutral\" },\n surface: floatingSurfaceContract,\n density: {\n compact: { ...collectionItemContract, minHeight: control.minTouchTarget },\n comfortable: { ...collectionItemContract, minHeight: layout.rowHeight.singleLine },\n },\n tones: {\n neutral: collectionItemContract.label.color,\n danger: collectionItemContract.danger,\n },\n sectionLabel: {\n color: semanticColors.content.secondary,\n textVariant: \"label\",\n paddingHorizontal: spacing.sm,\n paddingVertical: spacing.xs,\n },\n leading: { color: semanticColors.content.secondary, glyph: \"sm\" },\n shortcut: { color: semanticColors.content.secondary, textVariant: \"caption\" },\n indicator: { color: collectionItemContract.selectedIndicator, glyph: \"sm\" },\n separator: semanticColors.border.default,\n dangerIndicator: {\n color: collectionItemContract.danger,\n glyph: \"sm\",\n mark: \"alert\",\n },\n minWidth: 220,\n maxWidth: 320,\n maxHeight: 360,\n sideOffset: spacing.xs,\n collisionPadding: spacing.xs,\n states: { disabledOpacity: opacity.disabled },\n transition: { enter: motionPreset.enter, exit: motionPreset.exit },\n} as const satisfies {\n slots: readonly string[];\n defaults: { density: \"compact\" | \"comfortable\"; itemTone: MenuItemTone };\n surface: typeof floatingSurfaceContract;\n density: Record<\n \"compact\" | \"comfortable\",\n Omit<typeof collectionItemContract, \"minHeight\"> & { minHeight: number }\n >;\n tones: Record<MenuItemTone, ColorReference>;\n sectionLabel: {\n color: ColorReference;\n textVariant: TextVariant;\n paddingHorizontal: number;\n paddingVertical: number;\n };\n leading: { color: ColorReference; glyph: GlyphSize };\n shortcut: { color: ColorReference; textVariant: TextVariant };\n indicator: { color: ColorReference; glyph: GlyphSize };\n separator: ColorReference;\n dangerIndicator: {\n color: ColorReference;\n glyph: GlyphSize;\n mark: \"alert\";\n };\n minWidth: number;\n maxWidth: number;\n maxHeight: number;\n sideOffset: number;\n collisionPadding: number;\n states: { disabledOpacity: number };\n transition: { enter: typeof motionPreset.enter; exit: typeof motionPreset.exit };\n};\n\nexport type MenuDensity = keyof typeof menuRecipe.density;\n\nexport type SelectSize = \"medium\" | \"large\";\nexport type SelectDensity = \"compact\" | \"comfortable\";\n\n/**\n * Select is visually one field plus one collection, even though Web renders\n * the collection in a popover and Native renders it in a modal sheet.\n */\nexport const selectRecipe = {\n slots: [\n \"root\",\n \"label\",\n \"trigger\",\n \"leading\",\n \"value\",\n \"placeholder\",\n \"busyIndicator\",\n \"indicator\",\n \"description\",\n \"error\",\n \"popover\",\n \"viewport\",\n \"section\",\n \"sectionLabel\",\n \"option\",\n \"optionLeading\",\n \"optionCopy\",\n \"optionLabel\",\n \"optionDescription\",\n \"selectionIndicator\",\n \"stateMessage\",\n ] as const,\n defaults: { size: \"medium\", density: \"comfortable\" },\n adaptive: { web: \"popover\", native: \"sheet\" },\n frame: fieldFrameContract,\n sizes: {\n medium: {\n minHeight: fieldFrameContract.minHeight,\n paddingHorizontal: fieldFrameContract.paddingHorizontal,\n textVariant: \"body\",\n glyph: \"sm\",\n },\n large: {\n minHeight: control.buttonHeight.large,\n paddingHorizontal: spacing.lg,\n textVariant: \"bodyLarge\",\n glyph: \"md\",\n },\n },\n support: formSupportContract,\n value: {\n color: semanticColors.content.body,\n placeholderColor: semanticColors.content.secondary,\n gap: spacing.sm,\n },\n leading: { color: semanticColors.content.secondary },\n indicator: { color: semanticColors.content.secondary },\n busyIndicator: { color: semanticColors.content.brand, glyph: \"sm\" },\n popover: {\n ...floatingSurfaceContract,\n minWidth: 220,\n maxWidth: 420,\n maxHeight: 360,\n sideOffset: spacing.xs,\n collisionPadding: spacing.xs,\n },\n density: {\n compact: { ...collectionItemContract, minHeight: control.minTouchTarget },\n comfortable: { ...collectionItemContract, minHeight: layout.rowHeight.singleLine },\n },\n sectionLabel: {\n color: semanticColors.content.secondary,\n textVariant: \"label\",\n paddingHorizontal: spacing.sm,\n paddingVertical: spacing.xs,\n },\n optionLeading: { color: semanticColors.content.secondary, glyph: \"sm\" },\n optionLabel: { fontWeight: fontWeight.semibold, selectedFontWeight: fontWeight.bold },\n selectionIndicator: { color: semanticColors.border.focus, glyph: \"sm\" },\n stateMessage: {\n color: semanticColors.content.secondary,\n textVariant: \"body\",\n minHeight: control.minTouchTarget,\n paddingHorizontal: spacing.sm,\n paddingVertical: spacing.sm,\n },\n states: {\n hoverBackground: semanticColors.interaction.hover,\n pressedBackground: semanticColors.interaction.pressed,\n focus: focusIndicatorContract,\n invalidBorder: semanticColors.border.danger,\n disabledOpacity: opacity.disabled,\n },\n transition: {\n web: { enter: motionPreset.micro, exit: motionPreset.exit },\n native: { enter: motionPreset.enter, exit: motionPreset.exit },\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: { size: SelectSize; density: SelectDensity };\n adaptive: { web: \"popover\"; native: \"sheet\" };\n frame: typeof fieldFrameContract;\n sizes: Record<\n SelectSize,\n {\n minHeight: number;\n paddingHorizontal: number;\n textVariant: TextVariant;\n glyph: GlyphSize;\n }\n >;\n support: typeof formSupportContract;\n value: { color: ColorReference; placeholderColor: ColorReference; gap: number };\n leading: { color: ColorReference };\n indicator: { color: ColorReference };\n busyIndicator: { color: ColorReference; glyph: GlyphSize };\n popover: typeof floatingSurfaceContract & {\n minWidth: number;\n maxWidth: number;\n maxHeight: number;\n sideOffset: number;\n collisionPadding: number;\n };\n density: Record<\n SelectDensity,\n Omit<typeof collectionItemContract, \"minHeight\"> & { minHeight: number }\n >;\n sectionLabel: {\n color: ColorReference;\n textVariant: TextVariant;\n paddingHorizontal: number;\n paddingVertical: number;\n };\n optionLeading: { color: ColorReference; glyph: GlyphSize };\n optionLabel: { fontWeight: FontWeightValue; selectedFontWeight: FontWeightValue };\n selectionIndicator: { color: ColorReference; glyph: GlyphSize };\n stateMessage: {\n color: ColorReference;\n textVariant: TextVariant;\n minHeight: number;\n paddingHorizontal: number;\n paddingVertical: number;\n };\n states: {\n hoverBackground: ColorReference;\n pressedBackground: ColorReference;\n focus: typeof focusIndicatorContract;\n invalidBorder: ColorReference;\n disabledOpacity: number;\n };\n transition: {\n web: { enter: typeof motionPreset.micro; exit: typeof motionPreset.exit };\n native: { enter: typeof motionPreset.enter; exit: typeof motionPreset.exit };\n };\n};\n\n/** Editable input anatomy layered on the exact same collection grammar. */\nexport const comboboxRecipe = {\n slots: [\n \"root\",\n \"label\",\n \"field\",\n \"leading\",\n \"input\",\n \"indicator\",\n \"clear\",\n \"loadingIndicator\",\n \"description\",\n \"error\",\n \"popover\",\n \"viewport\",\n \"section\",\n \"sectionLabel\",\n \"option\",\n \"optionLeading\",\n \"optionCopy\",\n \"optionLabel\",\n \"optionDescription\",\n \"selectionIndicator\",\n \"stateMessage\",\n ] as const,\n defaults: selectRecipe.defaults,\n adaptive: selectRecipe.adaptive,\n frame: selectRecipe.frame,\n sizes: selectRecipe.sizes,\n support: selectRecipe.support,\n input: selectRecipe.value,\n leading: selectRecipe.leading,\n indicator: selectRecipe.indicator,\n clear: {\n diameter: control.buttonHeight.small,\n hitSlop: control.buttonHitSlop.small,\n glyph: \"xs\",\n color: semanticColors.content.secondary,\n },\n loadingIndicator: { color: semanticColors.content.brand, glyph: \"sm\" },\n popover: selectRecipe.popover,\n density: selectRecipe.density,\n sectionLabel: selectRecipe.sectionLabel,\n optionLeading: selectRecipe.optionLeading,\n optionLabel: selectRecipe.optionLabel,\n selectionIndicator: selectRecipe.selectionIndicator,\n stateMessage: selectRecipe.stateMessage,\n states: selectRecipe.states,\n transition: selectRecipe.transition,\n} as const satisfies {\n slots: readonly string[];\n defaults: typeof selectRecipe.defaults;\n adaptive: typeof selectRecipe.adaptive;\n frame: typeof selectRecipe.frame;\n sizes: typeof selectRecipe.sizes;\n support: typeof selectRecipe.support;\n input: typeof selectRecipe.value;\n leading: typeof selectRecipe.leading;\n indicator: typeof selectRecipe.indicator;\n clear: { diameter: number; hitSlop: number; glyph: GlyphSize; color: ColorReference };\n loadingIndicator: { color: ColorReference; glyph: GlyphSize };\n popover: typeof selectRecipe.popover;\n density: typeof selectRecipe.density;\n sectionLabel: typeof selectRecipe.sectionLabel;\n optionLeading: typeof selectRecipe.optionLeading;\n optionLabel: typeof selectRecipe.optionLabel;\n selectionIndicator: typeof selectRecipe.selectionIndicator;\n stateMessage: typeof selectRecipe.stateMessage;\n states: typeof selectRecipe.states;\n transition: typeof selectRecipe.transition;\n};\n\nexport const segmentedControlRecipe = {\n slots: [\"root\", \"item\", \"label\", \"indicator\"] as const,\n defaults: { size: \"medium\" },\n adaptive: {\n // Equal-width rows stop being comparable when every short label wraps one\n // Hangul syllable per line. Native renderers stack the options before that\n // point so each choice remains a readable phrase and a 44pt target.\n largeTextLayout: \"stacked\" as const,\n stackAtFontScale: 1.6,\n },\n /**\n * A recessed track with a raised white thumb. The fills used to be\n * inverted — a white track with a canvas-coloured selected segment — so the\n * chosen option read as the recessed, disabled-looking one. `surface.sunken`\n * is too close to white to carry the step, so the track takes the canvas\n * tone and a border keeps the control legible when it sits on that canvas.\n */\n container: {\n background: semanticColors.canvas,\n border: semanticColors.border.default,\n borderWidth: stroke.subtle,\n radius: \"lg\",\n padding: spacing.xxs,\n gap: spacing.xxs,\n },\n sizes: {\n small: {\n minHeight: 36,\n hitSlop: 4,\n paddingHorizontal: spacing.sm,\n textVariant: \"label\",\n },\n medium: {\n minHeight: control.minTouchTarget,\n hitSlop: 0,\n paddingHorizontal: spacing.md,\n textVariant: \"body\",\n },\n },\n item: {\n radius: \"md\",\n gap: spacing.xxs,\n idleContent: semanticColors.content.secondary,\n fontWeight: fontWeight.semibold,\n // \"Selected\" is the brand tint, not a plain raised plate — a raised\n // white segment beside a selected brand-tinted chip spoke two different\n // visual languages for the same state. `surface.brand` is also the one\n // *opaque* brand role: a product author who tried a translucent wash of\n // `primary` here instead (same idea, see\n // `selectionControlRecipe.states.selectedBackground` below) found it\n // changed value with whatever sat behind it — #E8EFFB on a white card,\n // #DCE5F3 on the canvas — so the same \"selected\" read as three different\n // colors. Using the opaque tint keeps it one color everywhere.\n selectedBackground: semanticColors.surface.brand,\n selectedContent: semanticColors.content.brand,\n /**\n * The ring stays the selection signal so the control keeps a non-text\n * contrast of at least 3:1; a fill-only thumb cannot reach that against a\n * neutral track.\n */\n selectedBorder: semanticColors.border.focus,\n selectedBorderWidth: stroke.strong,\n selectedFontWeight: fontWeight.bold,\n focusRing: semanticColors.border.focus,\n pressedOpacity: opacity.pressed,\n disabledOpacity: opacity.disabled,\n },\n} as const;\n\nexport const switchRecipe = {\n slots: [\"root\", \"track\", \"thumb\", \"label\", \"description\"] as const,\n defaults: { size: \"medium\" },\n sizes: {\n small: { width: 44, height: 26, thumb: 22, inset: 2 },\n medium: { width: 52, height: 32, thumb: 28, inset: 2 },\n },\n colors: {\n trackOff: semanticColors.surface.sunken,\n trackOffBorder: semanticColors.content.secondary,\n trackOn: semanticColors.content.brand,\n trackOnBorder: semanticColors.border.focus,\n thumbOff: semanticColors.canvas,\n thumbOffBorder: semanticColors.content.secondary,\n thumbOn: semanticColors.canvas,\n // A disabled switch still has to report what it is set to, so disabled\n // state changes hue instead of fading uniformly with `states.disabledOpacity`\n // — a product author found that a flat opacity made \"on\" and \"off\" nearly\n // identical, turning a saved setting unreadable while its backing request\n // was in flight. The on track keeps a recognisable (if muted) brand wash,\n // the off track and both thumbs drop to neutral tones, and every part\n // keeps a hairline border so the shape stays legible at reduced contrast.\n trackOffDisabled: semanticColors.border.default,\n trackOffBorderDisabled: semanticColors.border.default,\n trackOnDisabled: { ...semanticColors.content.brand, alpha: 0.38 },\n trackOnBorderDisabled: { ...semanticColors.content.brand, alpha: 0.38 },\n thumbDisabled: semanticColors.canvas,\n thumbDisabledBorder: semanticColors.content.decorative,\n },\n states: {\n disabledOpacity: opacity.disabled,\n pressedOpacity: opacity.pressed,\n },\n rowMinHeight: control.minTouchTarget,\n // A switch with a description is a two-line row like any other list row,\n // and a product author found that letting content decide the height gave\n // neighbouring rows different heights — this pins it to the same value as\n // `listRowRecipe.density.comfortable.twoLineMinHeight`.\n rowTwoLineMinHeight: 68,\n} as const;\n\nexport type SelectionControlKind = \"checkbox\" | \"radio\";\n\nexport const selectionControlRecipe = {\n slots: [\n \"root\",\n \"control\",\n \"indicator\",\n \"leading\",\n \"content\",\n \"label\",\n \"description\",\n ] as const,\n defaults: { kind: \"checkbox\", size: \"medium\", presentation: \"card\" },\n sizes: {\n small: {\n rowMinHeight: control.minTouchTarget,\n control: 20,\n hitSlop: 12,\n glyph: \"xs\",\n gap: spacing.xs,\n paddingHorizontal: spacing.sm,\n paddingVertical: spacing.xs,\n labelVariant: \"label\",\n descriptionVariant: \"caption\",\n },\n medium: {\n rowMinHeight: layout.rowHeight.singleLine,\n control: control.selectionIndicator,\n hitSlop: 10,\n glyph: \"sm\",\n gap: spacing.sm,\n paddingHorizontal: spacing.md,\n paddingVertical: spacing.sm,\n labelVariant: \"body\",\n descriptionVariant: \"label\",\n },\n },\n shapes: { checkbox: \"sm\", radio: \"full\" },\n presentations: {\n plain: {\n background: null,\n border: null,\n borderWidth: 0,\n radius: \"md\",\n useSizePadding: false,\n labelColor: null,\n },\n card: {\n background: semanticColors.surface.default,\n border: semanticColors.border.default,\n borderWidth: stroke.default,\n radius: \"md\",\n useSizePadding: true,\n labelColor: null,\n },\n // A row inside a card shared by the whole group (paired with\n // `selectionGroupRecipe.orientations.*.gap.grouped`). The item owns its\n // own padding so the selected fill runs the full width of the group, and\n // only the first and last rows round — an item-level radius on every row\n // left a visible white sliver in the group's corners. `labelColor` is\n // pinned here (rather than left to the row) because a grouped row's\n // label sits directly on the shared card background, not on its own\n // plate — the row needs to know the label reads correctly there.\n grouped: {\n background: null,\n border: null,\n borderWidth: 0,\n radius: \"lg\",\n useSizePadding: true,\n labelColor: semanticColors.content.primary,\n },\n },\n label: {\n color: semanticColors.content.body,\n fontWeight: fontWeight.semibold,\n checkedFontWeight: fontWeight.bold,\n },\n leading: { size: \"md\", color: semanticColors.content.secondary },\n description: { color: semanticColors.content.secondary },\n indicators: {\n checkbox: { checked: \"check\", mixed: \"dash\" },\n radio: { checked: \"dot\", mixed: null },\n },\n radioDotRatio: 0.42,\n states: {\n idleBackground: semanticColors.canvas,\n idleBorder: semanticColors.content.secondary,\n checkedBackground: semanticColors.action.brand.background,\n checkedBorder: semanticColors.border.focus,\n indicator: semanticColors.action.brand.content,\n // The brand tint is one opaque role, not a translucent wash. A product\n // author found that a 10% wash of `primary` (the previous value here)\n // changed value with whatever sat behind it — #E8EFFB on a white card,\n // #DCE5F3 on the canvas — so the same \"selected\" read as three different\n // colors. `surface.brand` is the one opaque fill (same fix, same reason,\n // as `segmentedControlRecipe.item.selectedBackground` above).\n selectedBackground: semanticColors.surface.brand,\n selectedBorder: semanticColors.border.focus,\n hoverBackground: semanticColors.interaction.hover,\n pressedBackground: semanticColors.interaction.pressed,\n invalidBorder: semanticColors.border.danger,\n focus: focusIndicatorContract,\n disabledOpacity: opacity.disabled,\n },\n} as const;\n\n/**\n * Persistent top-level navigation. The recipe reserves an optional center gap\n * for a sibling primary action but never treats that action as a destination.\n */\nexport const bottomNavigationRecipe = {\n slots: [\n \"root\",\n \"surface\",\n \"list\",\n \"item\",\n \"indicator\",\n \"icon\",\n \"label\",\n \"badge\",\n ] as const,\n defaults: bottomNavigationRecipeDefaults,\n adaptive: {\n web: \"fixed-compact-viewport\",\n native: \"navigator-tab-bar\",\n },\n presentations: {\n bar: {\n background: semanticColors.canvas,\n border: semanticColors.border.default,\n borderWidth: stroke.default,\n borderEdges: [\"block-start\"] as const,\n radius: null,\n shadow: null,\n maxWidth: null,\n outerPaddingHorizontal: 0,\n outerPaddingTop: 0,\n },\n floating: {\n background: semanticColors.canvas,\n border: semanticColors.border.default,\n borderWidth: stroke.default,\n borderEdges: [\"all\"] as const,\n radius: \"xl\" as const,\n shadow: floatingSurfaceContract.shadow,\n maxWidth: 384,\n outerPaddingHorizontal: spacing.md,\n outerPaddingTop: spacing.xs,\n },\n },\n distributions: {\n equal: { centerGap: 0, requiresEvenItemCount: false },\n \"center-gap\": {\n centerGap: control.buttonHeight.large + spacing.md,\n requiresEvenItemCount: true,\n },\n },\n density: {\n compact: {\n itemMinWidth: 52,\n itemMinHeight: 52,\n padding: spacing.xxs,\n gap: 2,\n icon: \"sm\" as const,\n label: \"caption\" as const,\n },\n regular: {\n itemMinWidth: 56,\n itemMinHeight: 64,\n padding: spacing.xs,\n gap: spacing.xxs,\n icon: \"md\" as const,\n label: \"caption\" as const,\n },\n },\n colors: {\n idle: semanticColors.content.secondary,\n selectedIcon: semanticColors.content.brand,\n selectedLabel: semanticColors.content.brand,\n },\n /**\n * Stable icon/badge layout anchor. Selection never paints this slot as a\n * pill: the icon and label below own the non-color selected evidence.\n */\n indicator: {\n minWidth: 40,\n minHeight: 28,\n radius: \"full\" as const,\n visual: \"none\" as const,\n background: null,\n border: null,\n borderWidth: 0,\n },\n icon: {\n /**\n * Adapters apply at least one supported emphasis. Stroke-oriented glyphs\n * use strokeWidth; renderers without stroke control use scale instead.\n */\n selectedEmphasis: {\n minimumAdaptations: 1,\n strokeWidth: { idle: stroke.strong, selected: 3 },\n scale: { idle: 1, selected: 1.06 },\n },\n },\n label: {\n fontWeight: fontWeight.semibold,\n selectedFontWeight: fontWeight.bold,\n textAlign: \"center\",\n wrap: true,\n fixedLines: null,\n },\n badge: {\n size: \"small\" as const,\n variant: \"floating\" as const,\n anchor: { blockStart: -spacing.xxs, inlineEnd: -spacing.xs },\n subtreeHiddenFromAccessibility: true,\n },\n safeArea: {\n mode: \"additive\",\n minimumBottomPadding: spacing.xs,\n },\n keyboard: { defaultBehavior: \"hide\", movesAboveKeyboard: false },\n largeText: {\n allowFontScaling: true,\n // Persistent navigation has to keep every destination visible at once.\n // Let labels respond to Dynamic Type, but cap the visual chrome before a\n // three-character destination turns into a three-line column. The full,\n // uncapped label remains the item's accessible name.\n maxFontSizeMultiplier: 1.4,\n fixedItemHeight: false,\n labelWraps: true,\n },\n direction: {\n itemOrder: \"logical\",\n badgeAnchor: \"inline-end\",\n },\n states: {\n hoverBackground: semanticColors.interaction.hover,\n pressedBackground: semanticColors.interaction.pressed,\n focus: focusIndicatorContract,\n disabledOpacity: opacity.disabled,\n selectedNonColorEvidence: {\n target: \"icon-and-label\" as const,\n label: \"font-weight\" as const,\n icon: \"emphasis\" as const,\n },\n selectedFocusSeparation: {\n selectedTarget: \"icon-and-label\" as const,\n focusTarget: \"item\",\n minimumGap: focusIndicatorContract.offset,\n },\n },\n transition: motionPreset.micro,\n} as const;\n\nexport const tabsRecipe = {\n slots: [\"root\", \"list\", \"tab\", \"label\", \"indicator\", \"panel\"] as const,\n defaults: { size: \"medium\", layout: \"content\", overflow: \"scroll\" },\n sizes: {\n small: {\n minHeight: control.minTouchTarget,\n paddingHorizontal: spacing.sm,\n textVariant: \"label\",\n },\n medium: {\n minHeight: 48,\n paddingHorizontal: spacing.md,\n textVariant: \"body\",\n },\n },\n colors: {\n idle: semanticColors.content.secondary,\n selected: semanticColors.content.primary,\n indicator: semanticColors.border.focus,\n divider: semanticColors.border.default,\n },\n gap: spacing.xs,\n icon: { glyph: \"xs\" },\n label: { fontWeight: fontWeight.semibold, selectedFontWeight: fontWeight.bold },\n layouts: {\n content: { fitted: false },\n fitted: { fitted: true },\n },\n overflow: {\n scroll: { scrollable: true, wrap: false },\n clip: { scrollable: false, wrap: false },\n },\n indicatorHeight: stroke.strong,\n states: {\n pressedBackground: semanticColors.interaction.pressed,\n focus: focusIndicatorContract,\n disabledOpacity: opacity.disabled,\n },\n} as const;\n\nexport type NoticeTone = \"info\" | \"success\" | \"warning\" | \"attention\" | \"danger\";\n\nexport const noticeRecipe = {\n slots: [\"root\", \"icon\", \"content\", \"title\", \"description\", \"action\"] as const,\n defaults: { tone: \"info\" },\n tones: {\n ...semanticColors.feedback,\n info: {\n ...semanticColors.feedback.info,\n // The informational wash landed bluer and darker than the selection\n // tint itself over canvas, so a banner outranked the control the\n // reader was supposed to act on. `info` alone goes neutral — its\n // accent stays in the icon, the title, and the border; `success`/\n // `warning`/`attention`/`danger` keep the tinted surface because a\n // product author confirmed those readings didn't have the same\n // conflict with a selection state.\n background: semanticColors.surface.sunken,\n },\n },\n radius: \"md\",\n padding: spacing.md,\n gap: spacing.sm,\n contentGap: spacing.xxs,\n iconSize: \"sm\",\n borderWidth: stroke.default,\n title: { textVariant: \"body\", fontWeight: fontWeight.bold },\n description: { color: semanticColors.content.body, textVariant: \"body\" },\n} as const;\n\nexport const skeletonRecipe = {\n slots: [\"root\"] as const,\n defaults: { shape: \"block\", animated: false },\n background: semanticColors.surface.sunken,\n shapes: {\n block: { radius: \"md\", defaultHeight: spacing.xxl },\n text: { radius: \"sm\", defaultHeight: spacing.md },\n circle: { radius: \"full\", defaultHeight: glyph.xxl },\n },\n animation: {\n duration: motion.slow * 4,\n easing: \"standard\",\n fromOpacity: 0.56,\n toOpacity: 1,\n reducedMotion: \"static\",\n },\n} as const;\n\nexport const emptyStateRecipe = {\n slots: [\"root\", \"icon\", \"title\", \"description\", \"action\"] as const,\n defaults: { density: \"regular\" },\n density: {\n compact: { paddingVertical: spacing.xl },\n regular: { paddingVertical: spacing.xxxl },\n },\n paddingHorizontal: spacing.xl,\n gap: spacing.xs,\n icon: { size: \"lg\", color: semanticColors.content.decorative },\n title: { textVariant: \"body\", color: semanticColors.content.primary, fontWeight: fontWeight.semibold },\n description: { textVariant: \"label\", color: semanticColors.content.secondary },\n} as const;\n\nexport const spinnerRecipe = {\n slots: [\"root\"] as const,\n defaults: { size: \"medium\", tone: \"brand\" },\n sizes: { small: glyph.xs, medium: glyph.sm, large: glyph.lg },\n tones: {\n brand: semanticColors.content.brand,\n neutral: semanticColors.content.secondary,\n inverse: semanticColors.content.inverse,\n },\n strokeWidth: stroke.strong,\n animation: {\n duration: 800,\n easing: \"standard\",\n reducedMotion: \"static\",\n },\n} as const;\n\nexport type LoadMoreDensity = \"compact\" | \"regular\";\n\nexport const loadMoreRecipe = {\n slots: [\n \"root\",\n \"status\",\n \"spinner\",\n \"trigger\",\n \"error\",\n \"retry\",\n \"end\",\n ] as const,\n defaults: { mode: \"automatic\", density: \"regular\" },\n density: {\n compact: { paddingVertical: spacing.sm, gap: spacing.xs },\n regular: { paddingVertical: spacing.lg, gap: spacing.sm },\n },\n status: {\n color: semanticColors.content.secondary,\n textVariant: \"label\",\n },\n error: {\n color: semanticColors.content.danger,\n textVariant: \"label\",\n },\n end: {\n color: semanticColors.content.secondary,\n textVariant: \"caption\",\n },\n trigger: {\n minHeight: control.minTouchTarget,\n paddingHorizontal: spacing.md,\n radius: \"md\",\n color: semanticColors.content.brand,\n textVariant: \"label\",\n fontWeight: fontWeight.bold,\n },\n spinner: { size: \"small\", tone: \"brand\" },\n states: {\n focus: focusIndicatorContract,\n pressedOpacity: opacity.pressed,\n disabledOpacity: opacity.disabled,\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: { mode: \"automatic\" | \"manual\"; density: LoadMoreDensity };\n density: Record<LoadMoreDensity, { paddingVertical: number; gap: number }>;\n status: { color: ColorReference; textVariant: TextVariant };\n error: { color: ColorReference; textVariant: TextVariant };\n end: { color: ColorReference; textVariant: TextVariant };\n trigger: {\n minHeight: number;\n paddingHorizontal: number;\n radius: keyof typeof radius;\n color: ColorReference;\n textVariant: TextVariant;\n fontWeight: FontWeightValue;\n };\n spinner: { size: SpinnerSize; tone: SpinnerTone };\n states: {\n focus: typeof focusIndicatorContract;\n pressedOpacity: number;\n disabledOpacity: number;\n };\n};\n\nexport const avatarRecipe = {\n slots: [\"root\", \"image\", \"fallback\", \"badge\"] as const,\n defaults: { size: \"medium\", shape: \"circle\" },\n sizes: { small: 32, medium: 40, large: 48, xlarge: 64 },\n shapes: { rounded: \"md\", circle: \"full\" },\n background: semanticColors.surface.sunken,\n content: semanticColors.content.secondary,\n border: semanticColors.border.default,\n} as const;\n\nexport type StatisticDensity = \"compact\" | \"comfortable\";\nexport type StatisticPresentation = \"plain\" | \"surface\";\n\nexport const statisticRecipe = {\n slots: [\n \"group\",\n \"root\",\n \"label\",\n \"valueRow\",\n \"prefix\",\n \"value\",\n \"suffix\",\n \"trend\",\n \"trendMark\",\n \"hint\",\n ] as const,\n defaults: { density: \"comfortable\", presentation: \"plain\", columns: 3 },\n density: {\n compact: {\n padding: spacing.sm,\n gap: spacing.xxs,\n labelVariant: \"caption\",\n valueVariant: \"title\",\n },\n comfortable: {\n padding: spacing.md,\n gap: spacing.xs,\n labelVariant: \"label\",\n valueVariant: \"heading\",\n },\n },\n presentations: {\n plain: { background: null, border: null, borderWidth: 0, radius: \"md\" },\n surface: {\n background: semanticColors.surface.default,\n border: semanticColors.border.default,\n borderWidth: stroke.default,\n radius: \"md\",\n },\n },\n group: {\n gap: spacing.xs,\n minItemWidth: 120,\n columns: [1, 2, 3, 4] as const,\n },\n label: {\n color: semanticColors.content.secondary,\n fontWeight: fontWeight.semibold,\n },\n value: {\n color: semanticColors.content.primary,\n fontWeight: fontWeight.heavy,\n numericVariant: \"tabular\",\n maxLines: null,\n },\n affix: {\n color: semanticColors.content.body,\n textVariant: \"body\",\n fontWeight: fontWeight.semibold,\n },\n hint: {\n color: semanticColors.content.secondary,\n textVariant: \"caption\",\n },\n trend: {\n textVariant: \"caption\",\n fontWeight: fontWeight.bold,\n gap: spacing.xxs,\n marks: {\n up: \"trendUp\",\n down: \"trendDown\",\n flat: \"trendFlat\",\n },\n tones: {\n neutral: semanticColors.content.secondary,\n success: semanticColors.feedback.success.foreground,\n warning: semanticColors.feedback.warning.foreground,\n danger: semanticColors.content.danger,\n },\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: {\n density: StatisticDensity;\n presentation: StatisticPresentation;\n columns: 1 | 2 | 3 | 4;\n };\n density: Record<\n StatisticDensity,\n {\n padding: number;\n gap: number;\n labelVariant: TextVariant;\n valueVariant: TextVariant;\n }\n >;\n presentations: Record<\n StatisticPresentation,\n {\n background: ColorReference | null;\n border: ColorReference | null;\n borderWidth: number;\n radius: keyof typeof radius;\n }\n >;\n group: {\n gap: number;\n minItemWidth: number;\n columns: readonly (1 | 2 | 3 | 4)[];\n };\n label: { color: ColorReference; fontWeight: FontWeightValue };\n value: {\n color: ColorReference;\n fontWeight: FontWeightValue;\n numericVariant: \"tabular\";\n maxLines: null;\n };\n affix: { color: ColorReference; textVariant: TextVariant; fontWeight: FontWeightValue };\n hint: { color: ColorReference; textVariant: TextVariant };\n trend: {\n textVariant: TextVariant;\n fontWeight: FontWeightValue;\n gap: number;\n marks: Record<\"up\" | \"down\" | \"flat\", string>;\n tones: Record<\"neutral\" | \"success\" | \"warning\" | \"danger\", ColorReference>;\n };\n};\n\nexport const sheetRecipe = {\n slots: [\"backdrop\", \"positioner\", \"content\", \"handle\", \"header\", \"title\", \"body\", \"footer\", \"close\"] as const,\n defaults: { placement: \"bottom\" },\n backdrop: backdrop.modal,\n content: {\n background: semanticColors.canvas,\n border: semanticColors.border.default,\n borderWidth: floatingSurfaceContract.borderWidth,\n radius: \"xl\",\n shadow: floatingSurfaceContract.shadow,\n maxHeightRatio: 0.9,\n paddingHorizontal: spacing.lg,\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n },\n web: { maxWidth: 640 },\n safeArea: {\n edge: \"bottom\",\n mode: \"additive\",\n minimumPadding: spacing.sm,\n },\n handle: {\n width: 36,\n height: 4,\n radius: \"full\",\n color: semanticColors.content.secondary,\n visibleByDefault: false,\n showWhen: \"swipe-dismiss-enabled\",\n },\n header: { minHeight: control.minTouchTarget, gap: spacing.sm },\n title: {\n color: semanticColors.content.primary,\n textVariant: \"title\",\n fontWeight: fontWeight.bold,\n gap: spacing.xxs,\n },\n body: {\n color: semanticColors.content.body,\n textVariant: \"body\",\n gap: spacing.md,\n },\n footer: {\n color: semanticColors.content.body,\n textVariant: \"body\",\n gap: spacing.sm,\n paddingTop: spacing.sm,\n },\n transition: { enter: motionPreset.enter, exit: motionPreset.exit },\n} as const;\n\nexport const dialogRecipe = {\n slots: [\"backdrop\", \"positioner\", \"content\", \"header\", \"title\", \"description\", \"body\", \"footer\", \"close\"] as const,\n defaults: { size: \"medium\", dismissible: true },\n sizes: {\n small: { maxWidth: 320, padding: spacing.lg },\n medium: { maxWidth: 420, padding: spacing.xl },\n large: { maxWidth: 640, padding: spacing.xl },\n },\n backdrop: backdrop.modal,\n content: {\n background: semanticColors.canvas,\n border: semanticColors.border.default,\n borderWidth: floatingSurfaceContract.borderWidth,\n radius: \"lg\",\n gap: spacing.md,\n shadow: floatingSurfaceContract.shadow,\n },\n transition: { enter: motionPreset.enter, exit: motionPreset.exit },\n} as const;\n\nexport type AlertDialogTone = \"attention\" | \"danger\";\n\nexport const alertDialogRecipe = {\n slots: [\n \"backdrop\",\n \"positioner\",\n \"content\",\n \"icon\",\n \"title\",\n \"description\",\n \"status\",\n \"error\",\n \"actions\",\n \"cancel\",\n \"confirm\",\n ] as const,\n defaults: { tone: \"attention\", size: \"small\" },\n sizes: dialogRecipe.sizes,\n backdrop: dialogRecipe.backdrop,\n content: dialogRecipe.content,\n tones: {\n attention: {\n icon: semanticColors.feedback.attention.foreground,\n iconBackground: semanticColors.feedback.attention.background,\n confirm: semanticColors.action.brand.background,\n confirmContent: semanticColors.action.brand.content,\n },\n danger: {\n icon: semanticColors.content.danger,\n iconBackground: semanticColors.feedback.danger.background,\n confirm: semanticColors.action.danger.background,\n confirmContent: semanticColors.action.danger.content,\n },\n },\n icon: { containerSize: control.minTouchTarget, glyph: \"md\", radius: \"full\" },\n title: {\n color: semanticColors.content.primary,\n textVariant: \"title\",\n fontWeight: fontWeight.bold,\n },\n description: {\n color: semanticColors.content.secondary,\n textVariant: \"body\",\n },\n error: formSupportContract.error,\n actions: {\n gap: spacing.sm,\n stackBelow: breakpoint.medium,\n minButtonWidth: 96,\n },\n transition: dialogRecipe.transition,\n} as const satisfies {\n slots: readonly string[];\n defaults: { tone: AlertDialogTone; size: DialogSize };\n sizes: typeof dialogRecipe.sizes;\n backdrop: typeof dialogRecipe.backdrop;\n content: typeof dialogRecipe.content;\n tones: Record<\n AlertDialogTone,\n {\n icon: ColorReference;\n iconBackground: ColorReference;\n confirm: ColorReference;\n confirmContent: ColorReference;\n }\n >;\n icon: { containerSize: number; glyph: GlyphSize; radius: keyof typeof radius };\n title: { color: ColorReference; textVariant: TextVariant; fontWeight: FontWeightValue };\n description: { color: ColorReference; textVariant: TextVariant };\n error: { color: ColorReference; textVariant: TextVariant };\n actions: { gap: number; stackBelow: number; minButtonWidth: number };\n transition: typeof dialogRecipe.transition;\n};\n\nexport type ToastPlacement =\n | \"top\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom\"\n | \"bottom-start\"\n | \"bottom-end\";\nexport type ToastTone = \"neutral\" | \"info\" | \"success\" | \"warning\" | \"danger\";\nexport type ToastToneMark =\n | \"notifications\"\n | \"info\"\n | \"success\"\n | \"warning\"\n | \"alert\";\n\nexport const toastRecipe = {\n slots: [\n \"viewport\",\n \"root\",\n \"toneMark\",\n \"icon\",\n \"content\",\n \"title\",\n \"description\",\n \"action\",\n \"close\",\n ] as const,\n defaults: { tone: \"neutral\", placement: \"bottom\", durationMs: 5000 },\n adaptive: { web: \"fixed-viewport\", native: \"safe-area-overlay\" },\n viewport: {\n layer: layer.toast,\n gap: spacing.sm,\n inset: spacing.md,\n maxWidth: 420,\n safeAreaMode: \"additive\",\n },\n placements: {\n top: { blockEdge: \"top\", inlineEdge: \"center\", stackFrom: \"top\" },\n \"top-start\": { blockEdge: \"top\", inlineEdge: \"start\", stackFrom: \"top\" },\n \"top-end\": { blockEdge: \"top\", inlineEdge: \"end\", stackFrom: \"top\" },\n bottom: { blockEdge: \"bottom\", inlineEdge: \"center\", stackFrom: \"bottom\" },\n \"bottom-start\": { blockEdge: \"bottom\", inlineEdge: \"start\", stackFrom: \"bottom\" },\n \"bottom-end\": { blockEdge: \"bottom\", inlineEdge: \"end\", stackFrom: \"bottom\" },\n },\n tones: {\n neutral: {\n foreground: semanticColors.content.primary,\n accent: semanticColors.content.secondary,\n mark: \"notifications\",\n },\n info: {\n foreground: semanticColors.content.primary,\n accent: semanticColors.feedback.info.foreground,\n mark: \"info\",\n },\n success: {\n foreground: semanticColors.content.primary,\n accent: semanticColors.feedback.success.foreground,\n mark: \"success\",\n },\n warning: {\n foreground: semanticColors.content.primary,\n accent: semanticColors.feedback.warning.foreground,\n mark: \"warning\",\n },\n danger: {\n foreground: semanticColors.content.primary,\n accent: semanticColors.content.danger,\n mark: \"alert\",\n },\n },\n surface: {\n background: semanticColors.canvas,\n border: semanticColors.border.strong,\n borderWidth: stroke.default,\n radius: \"md\",\n shadow: floatingSurfaceContract.shadow,\n minHeight: layout.rowHeight.singleLine,\n padding: spacing.md,\n gap: spacing.sm,\n maxWidth: 420,\n },\n toneMark: { width: stroke.strong, radius: \"full\" },\n icon: { glyph: \"sm\" },\n content: { gap: spacing.xxs },\n title: {\n color: semanticColors.content.primary,\n textVariant: \"body\",\n fontWeight: fontWeight.bold,\n },\n description: {\n color: semanticColors.content.body,\n textVariant: \"body\",\n },\n action: {\n color: semanticColors.content.brand,\n textVariant: \"body\",\n fontWeight: fontWeight.bold,\n minHeight: control.minTouchTarget,\n paddingHorizontal: spacing.xs,\n },\n close: {\n color: semanticColors.content.secondary,\n diameter: control.minTouchTarget,\n glyph: \"xs\",\n },\n states: {\n pressedOpacity: opacity.pressed,\n draggedOpacity: opacity.dragged,\n focus: focusIndicatorContract,\n },\n gesture: { dismissThreshold: 50 },\n transition: {\n web: { enter: motionPreset.micro, exit: motionPreset.exit },\n native: { enter: motionPreset.enter, exit: motionPreset.exit },\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: { tone: ToastTone; placement: ToastPlacement; durationMs: number };\n adaptive: { web: \"fixed-viewport\"; native: \"safe-area-overlay\" };\n viewport: {\n layer: number;\n gap: number;\n inset: number;\n maxWidth: number;\n safeAreaMode: \"additive\";\n };\n placements: Record<\n ToastPlacement,\n {\n blockEdge: \"top\" | \"bottom\";\n inlineEdge: \"start\" | \"center\" | \"end\";\n stackFrom: \"top\" | \"bottom\";\n }\n >;\n tones: Record<\n ToastTone,\n { foreground: ColorReference; accent: ColorReference; mark: ToastToneMark }\n >;\n surface: {\n background: ColorReference;\n border: ColorReference;\n borderWidth: number;\n radius: keyof typeof radius;\n shadow: typeof floatingSurfaceContract.shadow;\n minHeight: number;\n padding: number;\n gap: number;\n maxWidth: number;\n };\n toneMark: { width: number; radius: keyof typeof radius };\n icon: { glyph: GlyphSize };\n content: { gap: number };\n title: { color: ColorReference; textVariant: TextVariant; fontWeight: FontWeightValue };\n description: { color: ColorReference; textVariant: TextVariant };\n action: {\n color: ColorReference;\n textVariant: TextVariant;\n fontWeight: FontWeightValue;\n minHeight: number;\n paddingHorizontal: number;\n };\n close: { color: ColorReference; diameter: number; glyph: GlyphSize };\n states: {\n pressedOpacity: number;\n draggedOpacity: number;\n focus: typeof focusIndicatorContract;\n };\n gesture: { dismissThreshold: number };\n transition: {\n web: { enter: typeof motionPreset.micro; exit: typeof motionPreset.exit };\n native: { enter: typeof motionPreset.enter; exit: typeof motionPreset.exit };\n };\n};\n\nexport const tooltipRecipe = {\n slots: [\"provider\", \"trigger\", \"content\", \"arrow\"] as const,\n defaults: tooltipDescriptorDefaults,\n layer: layer.tooltip,\n surface: {\n ...floatingSurfaceContract,\n background: semanticColors.content.primary,\n border: semanticColors.content.primary,\n radius: \"sm\" as const,\n padding: spacing.xs,\n },\n content: {\n color: semanticColors.canvas,\n textVariant: \"label\",\n maxWidth: 280,\n },\n arrow: {\n width: 10,\n height: 5,\n color: semanticColors.content.primary,\n padding: spacing.xs,\n },\n positioning: {\n sideOffset: spacing.xxs,\n collisionPadding: spacing.sm,\n },\n transition: { enter: motionPreset.micro, exit: motionPreset.exit },\n} as const;\n\nexport const topBarRecipe = {\n slots: [\n \"root\",\n \"leading\",\n \"title\",\n \"titleLeading\",\n \"titleAction\",\n \"trailing\",\n \"action\",\n \"actionLabel\",\n ] as const,\n defaults: { centered: true },\n minHeight: control.buttonHeight.large,\n sideMinWidth: control.minTouchTarget,\n paddingHorizontal: spacing.md,\n gap: spacing.xs,\n largeTextThreshold: 1.6,\n title: { textVariant: \"bodyLarge\", color: semanticColors.content.primary, fontWeight: fontWeight.bold },\n titleAction: {\n minHeight: control.minTouchTarget,\n minWidth: control.minTouchTarget,\n gap: spacing.xs,\n pressedOpacity: opacity.pressed,\n },\n action: {\n minHeight: control.minTouchTarget,\n minWidth: control.minTouchTarget,\n gap: spacing.xxs,\n paddingHorizontal: spacing.xxs,\n pressedOpacity: opacity.pressed,\n disabledOpacity: opacity.disabled,\n },\n actionLabel: {\n textVariant: \"caption\",\n color: semanticColors.content.primary,\n fontWeight: fontWeight.medium,\n },\n background: semanticColors.canvas,\n} as const;\n\nexport const bottomCtaRecipe = {\n slots: [\"root\", \"description\", \"secondaryAction\", \"primaryAction\"] as const,\n minHeight: 64,\n paddingHorizontal: layout.pagePadding.regular,\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n gap: spacing.sm,\n // A footer painted in the canvas tone left only a 1pt hairline between it\n // and the content scrolling underneath — a product author found that the\n // line cut a glyph in half at whatever scroll position the reader stopped\n // at, reading as a broken card rather than a footer. Layering by surface\n // (one step up from canvas) instead of by shadow alone is how this\n // component builds the separation; `shadow` below is reserved for the one\n // case that still needs it — see its comment.\n background: semanticColors.surface.default,\n border: semanticColors.border.default,\n borderWidth: stroke.default,\n // The cut described above is the scroll viewport's edge, not a spacing\n // problem — content clips mid-glyph, and a hairline between two\n // similarly-light planes can't carry that on its own. The footer casts\n // upward instead: the one case where a shadow, rather than a surface step,\n // is the right tool, because the footer genuinely overlaps the content\n // beneath it.\n shadow: {\n color: \"#000000\",\n opacity: 0.08,\n radius: 8,\n offsetY: -2,\n elevation: 8,\n },\n} as const;\n\nexport const sectionRecipe = {\n slots: [\"root\", \"header\", \"copy\", \"title\", \"description\", \"action\", \"content\"] as const,\n gap: spacing.xs,\n headerGap: spacing.sm,\n copyGap: spacing.xxs,\n title: { textVariant: \"title\", color: semanticColors.content.body, fontWeight: fontWeight.bold },\n description: { textVariant: \"caption\", color: semanticColors.content.secondary },\n} as const;\n\nexport type SegmentedControlSize = keyof typeof segmentedControlRecipe.sizes;\nexport type SwitchSize = keyof typeof switchRecipe.sizes;\nexport type SelectionControlSize = keyof typeof selectionControlRecipe.sizes;\nexport type SelectionControlPresentation = keyof typeof selectionControlRecipe.presentations;\nexport type TabSize = keyof typeof tabsRecipe.sizes;\nexport type TabsLayout = keyof typeof tabsRecipe.layouts;\nexport type TabsOverflow = keyof typeof tabsRecipe.overflow;\nexport type SpinnerSize = keyof typeof spinnerRecipe.sizes;\nexport type SpinnerTone = keyof typeof spinnerRecipe.tones;\nexport type AvatarSize = keyof typeof avatarRecipe.sizes;\nexport type AvatarShape = keyof typeof avatarRecipe.shapes;\nexport type DialogSize = keyof typeof dialogRecipe.sizes;\n"]}
|
|
1
|
+
{"version":3,"file":"component-recipes.js","sourceRoot":"","sources":["../src/component-recipes.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ColorReference } from \"./color-references.js\";\nimport {\n collectionItemContract,\n fieldFrameContract,\n floatingSurfaceContract,\n focusIndicatorContract,\n formSupportContract,\n} from \"./component-contracts.js\";\nimport {\n backdrop,\n breakpoint,\n control,\n glyph,\n layer,\n layout,\n fontWeight,\n motion,\n motionPreset,\n opacity,\n radius,\n spacing,\n stroke,\n type FontWeightValue,\n type GlyphSize,\n type TextVariant,\n} from \"./foundations.js\";\nimport { semanticColors } from \"./semantic-colors.js\";\nimport { tooltipDescriptorDefaults } from \"./tooltip.js\";\nimport { bottomNavigationRecipeDefaults } from \"./bottom-navigation-defaults.js\";\n\nexport {\n iconButtonRecipe,\n resolveIconButtonPresentation,\n type IconButtonShape,\n type IconButtonSize,\n type IconButtonTone,\n type ResolvedIconButtonPresentation,\n} from \"./icon-button-recipe.js\";\nexport {\n counterBadgeDefaults,\n counterBadgeRecipe,\n formatCounterBadgeCount,\n type CounterBadgeSize,\n type CounterBadgeTone,\n type CounterBadgeVariant,\n} from \"./counter-badge-recipe.js\";\nexport {\n progressRecipe,\n type ProgressSize,\n type ProgressTone,\n} from \"./progress-recipe.js\";\nexport type {\n BottomNavigationDensity,\n BottomNavigationDistribution,\n BottomNavigationPresentation,\n} from \"./bottom-navigation-defaults.js\";\n\nexport type TextTone =\n | \"primary\"\n | \"body\"\n | \"muted\"\n | \"subtle\"\n | \"weak\"\n | \"brand\"\n | \"danger\"\n | \"inverse\";\nexport type TextEmphasis = \"regular\" | \"medium\" | \"strong\";\n\nexport const textRecipe = {\n slots: [\"root\"] as const,\n defaults: { variant: \"body\", tone: \"primary\", emphasis: \"regular\" },\n tones: {\n primary: semanticColors.content.primary,\n body: semanticColors.content.body,\n muted: semanticColors.content.secondary,\n subtle: semanticColors.content.tertiary,\n weak: semanticColors.content.decorative,\n brand: semanticColors.content.brand,\n danger: semanticColors.content.danger,\n inverse: semanticColors.content.inverse,\n },\n emphasis: {\n regular: fontWeight.regular,\n medium: fontWeight.semibold,\n strong: fontWeight.bold,\n },\n} as const satisfies {\n slots: readonly [\"root\"];\n defaults: {\n variant: TextVariant;\n tone: TextTone;\n emphasis: TextEmphasis;\n };\n tones: Record<TextTone, ColorReference>;\n emphasis: Record<TextEmphasis, FontWeightValue>;\n};\n\nexport type IconTone =\n | \"primary\"\n | \"secondary\"\n | \"decorative\"\n | \"brand\"\n | \"info\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"inverse\";\nexport type IconWeight = \"regular\" | \"strong\";\n\nexport const iconRecipe = {\n slots: [\"root\"] as const,\n defaults: {\n size: \"md\",\n tone: \"secondary\",\n weight: \"regular\",\n decorative: true,\n },\n sizes: glyph,\n tones: {\n primary: semanticColors.content.primary,\n secondary: semanticColors.content.secondary,\n decorative: semanticColors.content.decorative,\n brand: semanticColors.content.brand,\n info: semanticColors.feedback.info.foreground,\n success: semanticColors.feedback.success.foreground,\n warning: semanticColors.feedback.warning.foreground,\n danger: semanticColors.content.danger,\n inverse: semanticColors.content.inverse,\n },\n weights: { regular: 2, strong: 2.5 },\n stroke: {\n lineCap: \"round\",\n lineJoin: \"round\",\n scaling: \"proportional\",\n },\n} as const satisfies {\n slots: readonly [\"root\"];\n defaults: {\n size: GlyphSize;\n tone: IconTone;\n weight: IconWeight;\n decorative: boolean;\n };\n sizes: Record<GlyphSize, number>;\n tones: Record<IconTone, ColorReference>;\n weights: Record<IconWeight, number>;\n stroke: {\n lineCap: \"round\";\n lineJoin: \"round\";\n scaling: \"proportional\";\n };\n};\n\nexport type StackAxis = \"block\" | \"inline\";\nexport type StackGap = keyof typeof spacing;\nexport type StackAlign = \"start\" | \"center\" | \"end\" | \"stretch\";\nexport type StackJustify = \"start\" | \"center\" | \"end\" | \"between\";\n\nexport const stackRecipe = {\n slots: [\"root\"] as const,\n defaults: { axis: \"block\", gap: \"md\", align: \"stretch\", justify: \"start\", wrap: false },\n axes: { block: \"column\", inline: \"row\" },\n gaps: spacing,\n align: [\"start\", \"center\", \"end\", \"stretch\"] as const,\n justify: [\"start\", \"center\", \"end\", \"between\"] as const,\n} as const satisfies {\n slots: readonly [\"root\"];\n defaults: {\n axis: StackAxis;\n gap: StackGap;\n align: StackAlign;\n justify: StackJustify;\n wrap: boolean;\n };\n axes: Record<StackAxis, \"column\" | \"row\">;\n gaps: Record<StackGap, number>;\n align: readonly StackAlign[];\n justify: readonly StackJustify[];\n};\n\nexport type LinkTone = \"brand\" | \"neutral\";\nexport type LinkVariant = \"inline\" | \"standalone\";\n\nexport const linkRecipe = {\n slots: [\"root\", \"leading\", \"label\", \"trailing\"] as const,\n defaults: { tone: \"brand\", variant: \"inline\" },\n tones: {\n brand: semanticColors.content.brand,\n neutral: semanticColors.content.body,\n },\n variants: {\n inline: {\n textVariant: \"body\",\n fontWeight: fontWeight.semibold,\n underline: \"always\",\n minHeight: null,\n },\n standalone: {\n textVariant: \"body\",\n fontWeight: fontWeight.bold,\n underline: \"hover\",\n minHeight: control.minTouchTarget,\n },\n },\n gap: spacing.xxs,\n icon: { glyph: \"xs\", inheritsTone: true },\n states: {\n pressedOpacity: opacity.pressed,\n focus: focusIndicatorContract,\n },\n} as const satisfies {\n slots: readonly [\"root\", \"leading\", \"label\", \"trailing\"];\n defaults: { tone: LinkTone; variant: LinkVariant };\n tones: Record<LinkTone, ColorReference>;\n variants: Record<\n LinkVariant,\n {\n textVariant: TextVariant;\n fontWeight: FontWeightValue;\n underline: \"always\" | \"hover\";\n minHeight: number | null;\n }\n >;\n gap: number;\n icon: { glyph: GlyphSize; inheritsTone: true };\n states: {\n pressedOpacity: number;\n focus: typeof focusIndicatorContract;\n };\n};\n\nexport const selectionGroupRecipe = {\n slots: [\"root\", \"label\", \"requiredIndicator\", \"description\", \"items\", \"error\"] as const,\n defaults: { orientation: \"vertical\", presentation: \"card\" },\n orientations: {\n vertical: {\n direction: \"column\",\n // `grouped` rows sit flush inside one shared card, so the group owns\n // the only outer radius and the rows share edges instead of floating\n // apart with their own gap — the same shape as `selectionControlRecipe`'s\n // `grouped` presentation, which this gap pairs with.\n gap: { plain: spacing.xxs, card: spacing.xs, grouped: 0 },\n },\n horizontal: {\n direction: \"row\",\n gap: { plain: spacing.sm, card: spacing.md, grouped: 0 },\n },\n },\n label: formSupportContract.label,\n requiredIndicator: { color: semanticColors.content.danger },\n description: formSupportContract.hint,\n error: formSupportContract.error,\n supportGap: formSupportContract.gap,\n states: { disabledOpacity: opacity.disabled },\n} as const;\n\nexport type SelectionGroupOrientation = keyof typeof selectionGroupRecipe.orientations;\nexport type SelectionGroupPresentation = keyof typeof selectionGroupRecipe.orientations.vertical.gap;\n\nexport type BadgeTone =\n | \"neutral\"\n /**\n * One step stronger than `neutral`: solid ink plate instead of a muted\n * label + sunken plate. A product author needed this for a result screen\n * where win/loss is the fact itself, not a side note, and `neutral` plus\n * its `outline` variant read as nearly the same grey — the one place the\n * distinction had to be unmistakable at a glance. Use it where a badge must\n * outrank `neutral` without borrowing an accent or the brand tint (both of\n * which already carry other meanings — see the `brand` tone below).\n */\n | \"strong\"\n | \"brand\"\n | \"info\"\n | \"success\"\n | \"warning\"\n | \"attention\"\n | \"danger\";\nexport type BadgeSize = \"small\" | \"medium\";\nexport type BadgeVariant = \"filled\" | \"outline\";\n\nexport const badgeRecipe = {\n slots: [\"root\", \"icon\", \"label\"] as const,\n defaults: { tone: \"neutral\", size: \"medium\", variant: \"filled\" },\n variants: {\n filled: {\n usesToneBackground: true,\n borderFallback: null,\n },\n outline: {\n usesToneBackground: false,\n borderFallback: semanticColors.border.default,\n },\n },\n tones: {\n neutral: {\n content: semanticColors.content.secondary,\n outlineContent: semanticColors.content.secondary,\n background: semanticColors.surface.sunken,\n border: null,\n },\n strong: {\n content: semanticColors.content.inverse,\n outlineContent: semanticColors.content.primary,\n background: semanticColors.content.primary,\n border: null,\n },\n brand: {\n content: semanticColors.content.brand,\n outlineContent: semanticColors.content.brand,\n // The brand tint now means \"selected\" everywhere (see\n // `selectionControlRecipe`/`segmentedControlRecipe`), so a badge that\n // only labels something — a season, a grade, a question number —\n // cannot wear it: rows of static badges started reading as a filter\n // with one option switched on. The plate goes neutral and the brand\n // stays in the copy.\n background: semanticColors.surface.sunken,\n border: null,\n },\n info: {\n content: semanticColors.feedback.info.foreground,\n outlineContent: semanticColors.feedback.info.foreground,\n background: semanticColors.feedback.info.badgeBackground,\n border: semanticColors.feedback.info.border,\n },\n success: {\n content: semanticColors.feedback.success.foreground,\n outlineContent: semanticColors.feedback.success.foreground,\n background: semanticColors.feedback.success.badgeBackground,\n border: semanticColors.feedback.success.border,\n },\n warning: {\n content: semanticColors.feedback.warning.foreground,\n outlineContent: semanticColors.feedback.warning.foreground,\n background: semanticColors.feedback.warning.badgeBackground,\n border: semanticColors.feedback.warning.border,\n },\n attention: {\n content: semanticColors.feedback.attention.foreground,\n outlineContent: semanticColors.feedback.attention.foreground,\n background: semanticColors.feedback.attention.badgeBackground,\n border: semanticColors.feedback.attention.border,\n },\n danger: {\n content: semanticColors.feedback.danger.foreground,\n outlineContent: semanticColors.feedback.danger.foreground,\n background: semanticColors.feedback.danger.badgeBackground,\n border: semanticColors.feedback.danger.border,\n },\n },\n sizes: {\n small: {\n minHeight: 20,\n paddingHorizontal: spacing.xxs,\n gap: spacing.xxs,\n textVariant: \"caption\",\n },\n medium: {\n minHeight: 24,\n paddingHorizontal: spacing.xs,\n gap: spacing.xxs,\n textVariant: \"caption\",\n },\n },\n radius: \"full\",\n borderWidth: stroke.default,\n fontWeight: fontWeight.bold,\n} as const;\n\nexport type SearchFieldSize = \"medium\" | \"large\";\n\n/** Search is a field specialization with stable affordance and clear targets. */\nexport const searchFieldRecipe = {\n slots: [\"root\", \"leading\", \"input\", \"trailing\", \"clear\", \"spinner\"] as const,\n defaults: { size: \"medium\", shape: \"medium\" },\n sizes: {\n medium: {\n minHeight: control.minTouchTarget,\n paddingHorizontal: spacing.sm,\n gap: spacing.xs,\n glyph: \"sm\",\n clearDiameter: 36,\n clearHitSlop: 4,\n textVariant: \"body\",\n },\n large: {\n minHeight: control.buttonHeight.large,\n paddingHorizontal: spacing.md,\n gap: spacing.sm,\n glyph: \"sm\",\n clearDiameter: control.minTouchTarget,\n clearHitSlop: 0,\n textVariant: \"bodyLarge\",\n },\n },\n colors: {\n background: semanticColors.surface.default,\n content: semanticColors.content.primary,\n placeholder: semanticColors.content.secondary,\n leading: semanticColors.content.decorative,\n clear: semanticColors.content.secondary,\n border: semanticColors.content.secondary,\n focus: focusIndicatorContract.color,\n invalid: semanticColors.border.danger,\n },\n /**\n * 모양은 **축이다** — 값 하나로 못 박지 않는다.\n *\n * 원래 여기는 `radius: \"full\"` 하나였다. 그런데 `fieldRecipe`는 같은 결정을\n * `shapes: { medium, large, full }` 축으로 열어 두고 있었고, 그래서 **한 앱 안에서\n * 평범한 입력과 찾기 입력이 서로 다른 모양이 되는 것을 계약이 막지 못했다.** 실제로\n * 갈라졌다 — app-rn은 `\"md\"`로 그리고 있었는데 이 계약은 `\"full\"`이라고 말하고\n * 있었고, 어느 쪽이 옳은지 양쪽 문서 어디에도 없었다.\n *\n * 찾기 입력이 알약이어야 하는지는 **제품이 정할 일**이고(iOS 관례는 알약, 이 앱은\n * 사각), 계약이 할 일은 그 선택지를 `fieldRecipe`와 **같은 이름으로** 주는 것이다.\n * 그러면 두 입력의 모양을 나란히 맞추는 것과 일부러 다르게 하는 것이 둘 다 표현된다.\n */\n shapes: { medium: \"md\", large: \"lg\", full: \"full\" },\n borderWidth: stroke.default,\n focusRingWidth: focusIndicatorContract.width,\n focusRingOffset: focusIndicatorContract.offset,\n states: {\n disabledOpacity: opacity.disabled,\n pressedOpacity: opacity.pressed,\n },\n} as const satisfies {\n slots: readonly [\"root\", \"leading\", \"input\", \"trailing\", \"clear\", \"spinner\"];\n defaults: { size: SearchFieldSize; shape: \"medium\" | \"large\" | \"full\" };\n sizes: Record<\n SearchFieldSize,\n {\n minHeight: number;\n paddingHorizontal: number;\n gap: number;\n glyph: GlyphSize;\n clearDiameter: number;\n clearHitSlop: number;\n textVariant: TextVariant;\n }\n >;\n colors: Record<\n \"background\" | \"content\" | \"placeholder\" | \"leading\" | \"clear\" | \"border\" | \"focus\" | \"invalid\",\n ColorReference\n >;\n shapes: Record<\"medium\" | \"large\" | \"full\", keyof typeof radius>;\n borderWidth: number;\n focusRingWidth: number;\n focusRingOffset: number;\n states: { disabledOpacity: number; pressedOpacity: number };\n};\n\nexport type ChipSize = keyof typeof control.chipHeight;\n\nexport const chipRecipe = {\n slots: [\"root\", \"leading\", \"indicator\", \"label\", \"trailing\"] as const,\n defaults: { size: \"small\", selected: false },\n sizes: {\n small: {\n height: control.chipHeight.small,\n hitSlop: 4,\n paddingHorizontal: spacing.sm,\n gap: spacing.xxs,\n textVariant: \"body\",\n },\n medium: {\n height: control.chipHeight.medium,\n hitSlop: 0,\n paddingHorizontal: spacing.md,\n gap: spacing.xs,\n textVariant: \"body\",\n },\n },\n states: {\n idle: {\n background: semanticColors.surface.default,\n content: semanticColors.content.secondary,\n // A resting chip wears the shared hairline, not a text-strength\n // outline. Drawing it in `content.secondary` made an unselected chip\n // read heavier than the selected one beside it, inverting the one\n // signal that matters in a filter row.\n border: semanticColors.border.default,\n },\n selected: {\n background: semanticColors.surface.brand,\n content: semanticColors.content.brand,\n border: semanticColors.border.focus,\n },\n pressedOpacity: opacity.pressed,\n disabledOpacity: opacity.disabled,\n },\n radius: \"full\",\n borderWidth: stroke.default,\n label: { fontWeight: fontWeight.semibold, selectedFontWeight: fontWeight.bold },\n selectionIndicator: {\n color: semanticColors.content.brand,\n glyph: \"xs\",\n },\n focus: focusIndicatorContract,\n} as const;\n\nexport const dividerRecipe = {\n slots: [\"root\", \"label\"] as const,\n defaults: { orientation: \"horizontal\", inset: \"none\" },\n color: semanticColors.border.default,\n thickness: stroke.subtle,\n insets: {\n none: 0,\n start: spacing.md,\n both: spacing.md,\n },\n} as const;\n\nexport const listRecipe = {\n slots: [\"root\", \"item\", \"separator\"] as const,\n defaults: { separator: \"indented\" },\n separators: {\n none: null,\n full: { insetStart: 0, insetEnd: 0 },\n indented: { insetStart: 40 + spacing.sm, insetEnd: 0 },\n },\n background: null,\n} as const;\n\nexport type ListRowDensity = \"comfortable\" | \"compact\";\n\nexport const listRowRecipe = {\n slots: [\"root\", \"leading\", \"content\", \"title\", \"description\", \"trailing\"] as const,\n defaults: { density: \"comfortable\", selected: false },\n density: {\n compact: {\n oneLineMinHeight: control.minTouchTarget,\n twoLineMinHeight: 60,\n paddingHorizontal: spacing.xs,\n paddingVertical: spacing.xxs,\n },\n comfortable: {\n oneLineMinHeight: layout.rowHeight.singleLine,\n twoLineMinHeight: layout.rowHeight.twoLine,\n paddingHorizontal: spacing.xs,\n paddingVertical: spacing.xs,\n },\n },\n gap: spacing.sm,\n leadingSize: 40,\n title: { color: semanticColors.content.body, textVariant: \"bodyLarge\", fontWeight: fontWeight.bold },\n description: { color: semanticColors.content.secondary, textVariant: \"body\" },\n trailing: {\n textColor: semanticColors.content.secondary,\n iconColor: semanticColors.content.decorative,\n glyph: \"sm\",\n textVariant: \"caption\",\n },\n states: {\n pressedBackground: semanticColors.interaction.pressed,\n selectedBackground: semanticColors.surface.brand,\n disabledOpacity: opacity.disabled,\n },\n} as const;\n\nexport type AccordionDensity = \"compact\" | \"comfortable\";\n\nexport const accordionRecipe = {\n slots: [\"root\", \"item\", \"header\", \"trigger\", \"title\", \"indicator\", \"panel\", \"divider\"] as const,\n defaults: { density: \"comfortable\", allowsMultipleExpanded: false },\n density: {\n compact: { triggerMinHeight: control.minTouchTarget, paddingVertical: spacing.xs },\n comfortable: { triggerMinHeight: layout.rowHeight.singleLine, paddingVertical: spacing.sm },\n },\n paddingHorizontal: spacing.xs,\n gap: spacing.sm,\n title: { color: semanticColors.content.body, textVariant: \"bodyLarge\", fontWeight: fontWeight.bold },\n indicator: { color: semanticColors.content.secondary, glyph: \"sm\" },\n panel: {\n color: semanticColors.content.body,\n textVariant: \"body\",\n paddingBottom: spacing.md,\n paddingInlineStart: spacing.xs,\n },\n divider: semanticColors.border.default,\n states: {\n pressedBackground: semanticColors.interaction.pressed,\n focus: focusIndicatorContract,\n disabledOpacity: opacity.disabled,\n },\n transition: motionPreset.enter,\n} as const;\n\nexport type MenuItemTone = \"neutral\" | \"danger\";\n\nexport const menuRecipe = {\n slots: [\n \"trigger\",\n \"content\",\n \"viewport\",\n \"section\",\n \"sectionLabel\",\n \"item\",\n \"leading\",\n \"copy\",\n \"label\",\n \"description\",\n \"trailing\",\n \"shortcut\",\n \"indicator\",\n \"dangerIndicator\",\n \"separator\",\n ] as const,\n defaults: { density: \"comfortable\", itemTone: \"neutral\" },\n surface: floatingSurfaceContract,\n density: {\n compact: { ...collectionItemContract, minHeight: control.minTouchTarget },\n comfortable: { ...collectionItemContract, minHeight: layout.rowHeight.singleLine },\n },\n tones: {\n neutral: collectionItemContract.label.color,\n danger: collectionItemContract.danger,\n },\n sectionLabel: {\n color: semanticColors.content.secondary,\n textVariant: \"label\",\n paddingHorizontal: spacing.sm,\n paddingVertical: spacing.xs,\n },\n leading: { color: semanticColors.content.secondary, glyph: \"sm\" },\n shortcut: { color: semanticColors.content.secondary, textVariant: \"caption\" },\n indicator: { color: collectionItemContract.selectedIndicator, glyph: \"sm\" },\n separator: semanticColors.border.default,\n dangerIndicator: {\n color: collectionItemContract.danger,\n glyph: \"sm\",\n mark: \"alert\",\n },\n minWidth: 220,\n maxWidth: 320,\n maxHeight: 360,\n sideOffset: spacing.xs,\n collisionPadding: spacing.xs,\n states: { disabledOpacity: opacity.disabled },\n transition: { enter: motionPreset.enter, exit: motionPreset.exit },\n} as const satisfies {\n slots: readonly string[];\n defaults: { density: \"compact\" | \"comfortable\"; itemTone: MenuItemTone };\n surface: typeof floatingSurfaceContract;\n density: Record<\n \"compact\" | \"comfortable\",\n Omit<typeof collectionItemContract, \"minHeight\"> & { minHeight: number }\n >;\n tones: Record<MenuItemTone, ColorReference>;\n sectionLabel: {\n color: ColorReference;\n textVariant: TextVariant;\n paddingHorizontal: number;\n paddingVertical: number;\n };\n leading: { color: ColorReference; glyph: GlyphSize };\n shortcut: { color: ColorReference; textVariant: TextVariant };\n indicator: { color: ColorReference; glyph: GlyphSize };\n separator: ColorReference;\n dangerIndicator: {\n color: ColorReference;\n glyph: GlyphSize;\n mark: \"alert\";\n };\n minWidth: number;\n maxWidth: number;\n maxHeight: number;\n sideOffset: number;\n collisionPadding: number;\n states: { disabledOpacity: number };\n transition: { enter: typeof motionPreset.enter; exit: typeof motionPreset.exit };\n};\n\nexport type MenuDensity = keyof typeof menuRecipe.density;\n\nexport type SelectSize = \"medium\" | \"large\";\nexport type SelectDensity = \"compact\" | \"comfortable\";\n\n/**\n * Select is visually one field plus one collection, even though Web renders\n * the collection in a popover and Native renders it in a modal sheet.\n */\nexport const selectRecipe = {\n slots: [\n \"root\",\n \"label\",\n \"trigger\",\n \"leading\",\n \"value\",\n \"placeholder\",\n \"busyIndicator\",\n \"indicator\",\n \"description\",\n \"error\",\n \"popover\",\n \"viewport\",\n \"section\",\n \"sectionLabel\",\n \"option\",\n \"optionLeading\",\n \"optionCopy\",\n \"optionLabel\",\n \"optionDescription\",\n \"selectionIndicator\",\n \"stateMessage\",\n ] as const,\n defaults: { size: \"medium\", density: \"comfortable\" },\n adaptive: { web: \"popover\", native: \"sheet\" },\n frame: fieldFrameContract,\n sizes: {\n medium: {\n minHeight: fieldFrameContract.minHeight,\n paddingHorizontal: fieldFrameContract.paddingHorizontal,\n textVariant: \"body\",\n glyph: \"sm\",\n },\n large: {\n minHeight: control.buttonHeight.large,\n paddingHorizontal: spacing.lg,\n textVariant: \"bodyLarge\",\n glyph: \"md\",\n },\n },\n support: formSupportContract,\n value: {\n color: semanticColors.content.body,\n placeholderColor: semanticColors.content.secondary,\n gap: spacing.sm,\n },\n leading: { color: semanticColors.content.secondary },\n indicator: { color: semanticColors.content.secondary },\n busyIndicator: { color: semanticColors.content.brand, glyph: \"sm\" },\n popover: {\n ...floatingSurfaceContract,\n minWidth: 220,\n maxWidth: 420,\n maxHeight: 360,\n sideOffset: spacing.xs,\n collisionPadding: spacing.xs,\n },\n density: {\n compact: { ...collectionItemContract, minHeight: control.minTouchTarget },\n comfortable: { ...collectionItemContract, minHeight: layout.rowHeight.singleLine },\n },\n sectionLabel: {\n color: semanticColors.content.secondary,\n textVariant: \"label\",\n paddingHorizontal: spacing.sm,\n paddingVertical: spacing.xs,\n },\n optionLeading: { color: semanticColors.content.secondary, glyph: \"sm\" },\n optionLabel: { fontWeight: fontWeight.semibold, selectedFontWeight: fontWeight.bold },\n selectionIndicator: { color: semanticColors.border.focus, glyph: \"sm\" },\n stateMessage: {\n color: semanticColors.content.secondary,\n textVariant: \"body\",\n minHeight: control.minTouchTarget,\n paddingHorizontal: spacing.sm,\n paddingVertical: spacing.sm,\n },\n states: {\n hoverBackground: semanticColors.interaction.hover,\n pressedBackground: semanticColors.interaction.pressed,\n focus: focusIndicatorContract,\n invalidBorder: semanticColors.border.danger,\n disabledOpacity: opacity.disabled,\n },\n transition: {\n web: { enter: motionPreset.micro, exit: motionPreset.exit },\n native: { enter: motionPreset.enter, exit: motionPreset.exit },\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: { size: SelectSize; density: SelectDensity };\n adaptive: { web: \"popover\"; native: \"sheet\" };\n frame: typeof fieldFrameContract;\n sizes: Record<\n SelectSize,\n {\n minHeight: number;\n paddingHorizontal: number;\n textVariant: TextVariant;\n glyph: GlyphSize;\n }\n >;\n support: typeof formSupportContract;\n value: { color: ColorReference; placeholderColor: ColorReference; gap: number };\n leading: { color: ColorReference };\n indicator: { color: ColorReference };\n busyIndicator: { color: ColorReference; glyph: GlyphSize };\n popover: typeof floatingSurfaceContract & {\n minWidth: number;\n maxWidth: number;\n maxHeight: number;\n sideOffset: number;\n collisionPadding: number;\n };\n density: Record<\n SelectDensity,\n Omit<typeof collectionItemContract, \"minHeight\"> & { minHeight: number }\n >;\n sectionLabel: {\n color: ColorReference;\n textVariant: TextVariant;\n paddingHorizontal: number;\n paddingVertical: number;\n };\n optionLeading: { color: ColorReference; glyph: GlyphSize };\n optionLabel: { fontWeight: FontWeightValue; selectedFontWeight: FontWeightValue };\n selectionIndicator: { color: ColorReference; glyph: GlyphSize };\n stateMessage: {\n color: ColorReference;\n textVariant: TextVariant;\n minHeight: number;\n paddingHorizontal: number;\n paddingVertical: number;\n };\n states: {\n hoverBackground: ColorReference;\n pressedBackground: ColorReference;\n focus: typeof focusIndicatorContract;\n invalidBorder: ColorReference;\n disabledOpacity: number;\n };\n transition: {\n web: { enter: typeof motionPreset.micro; exit: typeof motionPreset.exit };\n native: { enter: typeof motionPreset.enter; exit: typeof motionPreset.exit };\n };\n};\n\n/** Editable input anatomy layered on the exact same collection grammar. */\nexport const comboboxRecipe = {\n slots: [\n \"root\",\n \"label\",\n \"field\",\n \"leading\",\n \"input\",\n \"indicator\",\n \"clear\",\n \"loadingIndicator\",\n \"description\",\n \"error\",\n \"popover\",\n \"viewport\",\n \"section\",\n \"sectionLabel\",\n \"option\",\n \"optionLeading\",\n \"optionCopy\",\n \"optionLabel\",\n \"optionDescription\",\n \"selectionIndicator\",\n \"stateMessage\",\n ] as const,\n defaults: selectRecipe.defaults,\n adaptive: selectRecipe.adaptive,\n frame: selectRecipe.frame,\n sizes: selectRecipe.sizes,\n support: selectRecipe.support,\n input: selectRecipe.value,\n leading: selectRecipe.leading,\n indicator: selectRecipe.indicator,\n clear: {\n diameter: control.buttonHeight.small,\n hitSlop: control.buttonHitSlop.small,\n glyph: \"xs\",\n color: semanticColors.content.secondary,\n },\n loadingIndicator: { color: semanticColors.content.brand, glyph: \"sm\" },\n popover: selectRecipe.popover,\n density: selectRecipe.density,\n sectionLabel: selectRecipe.sectionLabel,\n optionLeading: selectRecipe.optionLeading,\n optionLabel: selectRecipe.optionLabel,\n selectionIndicator: selectRecipe.selectionIndicator,\n stateMessage: selectRecipe.stateMessage,\n states: selectRecipe.states,\n transition: selectRecipe.transition,\n} as const satisfies {\n slots: readonly string[];\n defaults: typeof selectRecipe.defaults;\n adaptive: typeof selectRecipe.adaptive;\n frame: typeof selectRecipe.frame;\n sizes: typeof selectRecipe.sizes;\n support: typeof selectRecipe.support;\n input: typeof selectRecipe.value;\n leading: typeof selectRecipe.leading;\n indicator: typeof selectRecipe.indicator;\n clear: { diameter: number; hitSlop: number; glyph: GlyphSize; color: ColorReference };\n loadingIndicator: { color: ColorReference; glyph: GlyphSize };\n popover: typeof selectRecipe.popover;\n density: typeof selectRecipe.density;\n sectionLabel: typeof selectRecipe.sectionLabel;\n optionLeading: typeof selectRecipe.optionLeading;\n optionLabel: typeof selectRecipe.optionLabel;\n selectionIndicator: typeof selectRecipe.selectionIndicator;\n stateMessage: typeof selectRecipe.stateMessage;\n states: typeof selectRecipe.states;\n transition: typeof selectRecipe.transition;\n};\n\nexport const segmentedControlRecipe = {\n slots: [\"root\", \"item\", \"label\", \"indicator\"] as const,\n defaults: { size: \"medium\" },\n adaptive: {\n // Equal-width rows stop being comparable when every short label wraps one\n // Hangul syllable per line. Native renderers stack the options before that\n // point so each choice remains a readable phrase and a 44pt target.\n largeTextLayout: \"stacked\" as const,\n stackAtFontScale: 1.6,\n },\n /**\n * A recessed track with a raised white thumb. The fills used to be\n * inverted — a white track with a canvas-coloured selected segment — so the\n * chosen option read as the recessed, disabled-looking one. `surface.sunken`\n * is too close to white to carry the step, so the track takes the canvas\n * tone and a border keeps the control legible when it sits on that canvas.\n */\n container: {\n background: semanticColors.canvas,\n border: semanticColors.border.default,\n borderWidth: stroke.subtle,\n radius: \"lg\",\n padding: spacing.xxs,\n gap: spacing.xxs,\n },\n sizes: {\n small: {\n minHeight: 36,\n hitSlop: 4,\n paddingHorizontal: spacing.sm,\n textVariant: \"label\",\n },\n medium: {\n minHeight: control.minTouchTarget,\n hitSlop: 0,\n paddingHorizontal: spacing.md,\n textVariant: \"body\",\n },\n },\n item: {\n radius: \"md\",\n gap: spacing.xxs,\n idleContent: semanticColors.content.secondary,\n fontWeight: fontWeight.semibold,\n // \"Selected\" is the brand tint, not a plain raised plate — a raised\n // white segment beside a selected brand-tinted chip spoke two different\n // visual languages for the same state. `surface.brand` is also the one\n // *opaque* brand role: a product author who tried a translucent wash of\n // `primary` here instead (same idea, see\n // `selectionControlRecipe.states.selectedBackground` below) found it\n // changed value with whatever sat behind it — #E8EFFB on a white card,\n // #DCE5F3 on the canvas — so the same \"selected\" read as three different\n // colors. Using the opaque tint keeps it one color everywhere.\n selectedBackground: semanticColors.surface.brand,\n selectedContent: semanticColors.content.brand,\n /**\n * The ring stays the selection signal so the control keeps a non-text\n * contrast of at least 3:1; a fill-only thumb cannot reach that against a\n * neutral track.\n */\n selectedBorder: semanticColors.border.focus,\n selectedBorderWidth: stroke.strong,\n selectedFontWeight: fontWeight.bold,\n focusRing: semanticColors.border.focus,\n pressedOpacity: opacity.pressed,\n disabledOpacity: opacity.disabled,\n },\n} as const;\n\nexport const switchRecipe = {\n slots: [\"root\", \"track\", \"thumb\", \"label\", \"description\"] as const,\n defaults: { size: \"medium\" },\n sizes: {\n small: { width: 44, height: 26, thumb: 22, inset: 2 },\n medium: { width: 52, height: 32, thumb: 28, inset: 2 },\n },\n colors: {\n trackOff: semanticColors.surface.sunken,\n trackOffBorder: semanticColors.content.secondary,\n trackOn: semanticColors.content.brand,\n trackOnBorder: semanticColors.border.focus,\n thumbOff: semanticColors.canvas,\n thumbOffBorder: semanticColors.content.secondary,\n thumbOn: semanticColors.canvas,\n // A disabled switch still has to report what it is set to, so disabled\n // state changes hue instead of fading uniformly with `states.disabledOpacity`\n // — a product author found that a flat opacity made \"on\" and \"off\" nearly\n // identical, turning a saved setting unreadable while its backing request\n // was in flight. The on track keeps a recognisable (if muted) brand wash,\n // the off track and both thumbs drop to neutral tones, and every part\n // keeps a hairline border so the shape stays legible at reduced contrast.\n trackOffDisabled: semanticColors.border.default,\n trackOffBorderDisabled: semanticColors.border.default,\n trackOnDisabled: { ...semanticColors.content.brand, alpha: 0.38 },\n trackOnBorderDisabled: { ...semanticColors.content.brand, alpha: 0.38 },\n thumbDisabled: semanticColors.canvas,\n thumbDisabledBorder: semanticColors.content.decorative,\n },\n states: {\n disabledOpacity: opacity.disabled,\n pressedOpacity: opacity.pressed,\n },\n rowMinHeight: control.minTouchTarget,\n // A switch with a description is a two-line row like any other list row,\n // and a product author found that letting content decide the height gave\n // neighbouring rows different heights — this pins it to the same value as\n // `listRowRecipe.density.comfortable.twoLineMinHeight`.\n rowTwoLineMinHeight: 68,\n} as const;\n\nexport type SelectionControlKind = \"checkbox\" | \"radio\";\n\nexport const selectionControlRecipe = {\n slots: [\n \"root\",\n \"control\",\n \"indicator\",\n \"leading\",\n \"content\",\n \"label\",\n \"description\",\n ] as const,\n defaults: { kind: \"checkbox\", size: \"medium\", presentation: \"card\" },\n sizes: {\n small: {\n rowMinHeight: control.minTouchTarget,\n control: 20,\n hitSlop: 12,\n glyph: \"xs\",\n gap: spacing.xs,\n paddingHorizontal: spacing.sm,\n paddingVertical: spacing.xs,\n labelVariant: \"label\",\n descriptionVariant: \"caption\",\n },\n medium: {\n rowMinHeight: layout.rowHeight.singleLine,\n control: control.selectionIndicator,\n hitSlop: 10,\n glyph: \"sm\",\n gap: spacing.sm,\n paddingHorizontal: spacing.md,\n paddingVertical: spacing.sm,\n labelVariant: \"body\",\n descriptionVariant: \"label\",\n },\n },\n shapes: { checkbox: \"sm\", radio: \"full\" },\n presentations: {\n plain: {\n background: null,\n border: null,\n borderWidth: 0,\n radius: \"md\",\n useSizePadding: false,\n labelColor: null,\n },\n card: {\n background: semanticColors.surface.default,\n border: semanticColors.border.default,\n borderWidth: stroke.default,\n radius: \"md\",\n useSizePadding: true,\n labelColor: null,\n },\n // A row inside a card shared by the whole group (paired with\n // `selectionGroupRecipe.orientations.*.gap.grouped`). The item owns its\n // own padding so the selected fill runs the full width of the group, and\n // only the first and last rows round — an item-level radius on every row\n // left a visible white sliver in the group's corners. `labelColor` is\n // pinned here (rather than left to the row) because a grouped row's\n // label sits directly on the shared card background, not on its own\n // plate — the row needs to know the label reads correctly there.\n grouped: {\n background: null,\n border: null,\n borderWidth: 0,\n radius: \"lg\",\n useSizePadding: true,\n labelColor: semanticColors.content.primary,\n },\n },\n label: {\n color: semanticColors.content.body,\n fontWeight: fontWeight.semibold,\n checkedFontWeight: fontWeight.bold,\n },\n leading: { size: \"md\", color: semanticColors.content.secondary },\n description: { color: semanticColors.content.secondary },\n indicators: {\n checkbox: { checked: \"check\", mixed: \"dash\" },\n radio: { checked: \"dot\", mixed: null },\n },\n radioDotRatio: 0.42,\n states: {\n idleBackground: semanticColors.canvas,\n idleBorder: semanticColors.content.secondary,\n checkedBackground: semanticColors.action.brand.background,\n checkedBorder: semanticColors.border.focus,\n indicator: semanticColors.action.brand.content,\n // The brand tint is one opaque role, not a translucent wash. A product\n // author found that a 10% wash of `primary` (the previous value here)\n // changed value with whatever sat behind it — #E8EFFB on a white card,\n // #DCE5F3 on the canvas — so the same \"selected\" read as three different\n // colors. `surface.brand` is the one opaque fill (same fix, same reason,\n // as `segmentedControlRecipe.item.selectedBackground` above).\n selectedBackground: semanticColors.surface.brand,\n selectedBorder: semanticColors.border.focus,\n hoverBackground: semanticColors.interaction.hover,\n pressedBackground: semanticColors.interaction.pressed,\n invalidBorder: semanticColors.border.danger,\n focus: focusIndicatorContract,\n disabledOpacity: opacity.disabled,\n },\n} as const;\n\n/**\n * Persistent top-level navigation. The recipe reserves an optional center gap\n * for a sibling primary action but never treats that action as a destination.\n */\nexport const bottomNavigationRecipe = {\n slots: [\n \"root\",\n \"surface\",\n \"list\",\n \"item\",\n \"indicator\",\n \"icon\",\n \"label\",\n \"badge\",\n ] as const,\n defaults: bottomNavigationRecipeDefaults,\n adaptive: {\n web: \"fixed-compact-viewport\",\n native: \"navigator-tab-bar\",\n },\n presentations: {\n bar: {\n background: semanticColors.canvas,\n border: semanticColors.border.default,\n borderWidth: stroke.default,\n borderEdges: [\"block-start\"] as const,\n radius: null,\n shadow: null,\n maxWidth: null,\n outerPaddingHorizontal: 0,\n outerPaddingTop: 0,\n },\n floating: {\n background: semanticColors.canvas,\n border: semanticColors.border.default,\n borderWidth: stroke.default,\n borderEdges: [\"all\"] as const,\n radius: \"xl\" as const,\n shadow: floatingSurfaceContract.shadow,\n maxWidth: 384,\n outerPaddingHorizontal: spacing.md,\n outerPaddingTop: spacing.xs,\n },\n },\n distributions: {\n equal: { centerGap: 0, requiresEvenItemCount: false },\n \"center-gap\": {\n centerGap: control.buttonHeight.large + spacing.md,\n requiresEvenItemCount: true,\n },\n },\n density: {\n compact: {\n itemMinWidth: 52,\n itemMinHeight: 52,\n padding: spacing.xxs,\n gap: 2,\n icon: \"sm\" as const,\n label: \"caption\" as const,\n },\n regular: {\n itemMinWidth: 56,\n itemMinHeight: 64,\n padding: spacing.xs,\n gap: spacing.xxs,\n icon: \"md\" as const,\n label: \"caption\" as const,\n },\n },\n colors: {\n idle: semanticColors.content.secondary,\n selectedIcon: semanticColors.content.brand,\n selectedLabel: semanticColors.content.brand,\n },\n /**\n * Stable icon/badge layout anchor. Selection never paints this slot as a\n * pill: the icon and label below own the non-color selected evidence.\n */\n indicator: {\n minWidth: 40,\n minHeight: 28,\n radius: \"full\" as const,\n visual: \"none\" as const,\n background: null,\n border: null,\n borderWidth: 0,\n },\n icon: {\n /**\n * Adapters apply at least one supported emphasis. Stroke-oriented glyphs\n * use strokeWidth; renderers without stroke control use scale instead.\n */\n selectedEmphasis: {\n minimumAdaptations: 1,\n strokeWidth: { idle: stroke.strong, selected: 3 },\n scale: { idle: 1, selected: 1.06 },\n },\n },\n label: {\n fontWeight: fontWeight.semibold,\n selectedFontWeight: fontWeight.bold,\n textAlign: \"center\",\n wrap: true,\n fixedLines: null,\n },\n badge: {\n size: \"small\" as const,\n variant: \"floating\" as const,\n anchor: { blockStart: -spacing.xxs, inlineEnd: -spacing.xs },\n subtreeHiddenFromAccessibility: true,\n },\n safeArea: {\n mode: \"additive\",\n minimumBottomPadding: spacing.xs,\n },\n keyboard: { defaultBehavior: \"hide\", movesAboveKeyboard: false },\n largeText: {\n allowFontScaling: true,\n // Persistent navigation has to keep every destination visible at once.\n // Let labels respond to Dynamic Type, but cap the visual chrome before a\n // three-character destination turns into a three-line column. The full,\n // uncapped label remains the item's accessible name.\n maxFontSizeMultiplier: 1.4,\n fixedItemHeight: false,\n labelWraps: true,\n },\n direction: {\n itemOrder: \"logical\",\n badgeAnchor: \"inline-end\",\n },\n states: {\n hoverBackground: semanticColors.interaction.hover,\n pressedBackground: semanticColors.interaction.pressed,\n focus: focusIndicatorContract,\n disabledOpacity: opacity.disabled,\n selectedNonColorEvidence: {\n target: \"icon-and-label\" as const,\n label: \"font-weight\" as const,\n icon: \"emphasis\" as const,\n },\n selectedFocusSeparation: {\n selectedTarget: \"icon-and-label\" as const,\n focusTarget: \"item\",\n minimumGap: focusIndicatorContract.offset,\n },\n },\n transition: motionPreset.micro,\n} as const;\n\nexport const tabsRecipe = {\n slots: [\"root\", \"list\", \"tab\", \"label\", \"indicator\", \"panel\"] as const,\n defaults: { size: \"medium\", layout: \"content\", overflow: \"scroll\" },\n sizes: {\n small: {\n minHeight: control.minTouchTarget,\n paddingHorizontal: spacing.sm,\n textVariant: \"label\",\n },\n medium: {\n minHeight: 48,\n paddingHorizontal: spacing.md,\n textVariant: \"body\",\n },\n },\n colors: {\n idle: semanticColors.content.secondary,\n selected: semanticColors.content.primary,\n indicator: semanticColors.border.focus,\n divider: semanticColors.border.default,\n },\n gap: spacing.xs,\n icon: { glyph: \"xs\" },\n label: { fontWeight: fontWeight.semibold, selectedFontWeight: fontWeight.bold },\n layouts: {\n content: { fitted: false },\n fitted: { fitted: true },\n },\n overflow: {\n scroll: { scrollable: true, wrap: false },\n clip: { scrollable: false, wrap: false },\n },\n indicatorHeight: stroke.strong,\n states: {\n pressedBackground: semanticColors.interaction.pressed,\n focus: focusIndicatorContract,\n disabledOpacity: opacity.disabled,\n },\n} as const;\n\nexport type NoticeTone = \"info\" | \"success\" | \"warning\" | \"attention\" | \"danger\";\n\nexport const noticeRecipe = {\n slots: [\"root\", \"icon\", \"content\", \"title\", \"description\", \"action\"] as const,\n defaults: { tone: \"info\" },\n tones: {\n ...semanticColors.feedback,\n info: {\n ...semanticColors.feedback.info,\n // The informational wash landed bluer and darker than the selection\n // tint itself over canvas, so a banner outranked the control the\n // reader was supposed to act on. `info` alone goes neutral — its\n // accent stays in the icon, the title, and the border; `success`/\n // `warning`/`attention`/`danger` keep the tinted surface because a\n // product author confirmed those readings didn't have the same\n // conflict with a selection state.\n background: semanticColors.surface.sunken,\n },\n },\n radius: \"md\",\n padding: spacing.md,\n gap: spacing.sm,\n contentGap: spacing.xxs,\n iconSize: \"sm\",\n borderWidth: stroke.default,\n title: { textVariant: \"body\", fontWeight: fontWeight.bold },\n description: { color: semanticColors.content.body, textVariant: \"body\" },\n} as const;\n\nexport const skeletonRecipe = {\n slots: [\"root\"] as const,\n defaults: { shape: \"block\", animated: false },\n background: semanticColors.surface.sunken,\n shapes: {\n block: { radius: \"md\", defaultHeight: spacing.xxl },\n text: { radius: \"sm\", defaultHeight: spacing.md },\n circle: { radius: \"full\", defaultHeight: glyph.xxl },\n },\n animation: {\n duration: motion.slow * 4,\n easing: \"standard\",\n fromOpacity: 0.56,\n toOpacity: 1,\n reducedMotion: \"static\",\n },\n} as const;\n\nexport const emptyStateRecipe = {\n slots: [\"root\", \"icon\", \"title\", \"description\", \"action\"] as const,\n defaults: { density: \"regular\" },\n density: {\n compact: { paddingVertical: spacing.xl },\n regular: { paddingVertical: spacing.xxxl },\n },\n paddingHorizontal: spacing.xl,\n gap: spacing.xs,\n icon: { size: \"lg\", color: semanticColors.content.decorative },\n title: { textVariant: \"body\", color: semanticColors.content.primary, fontWeight: fontWeight.semibold },\n description: { textVariant: \"label\", color: semanticColors.content.secondary },\n} as const;\n\nexport const spinnerRecipe = {\n slots: [\"root\"] as const,\n defaults: { size: \"medium\", tone: \"brand\" },\n sizes: { small: glyph.xs, medium: glyph.sm, large: glyph.lg },\n tones: {\n brand: semanticColors.content.brand,\n neutral: semanticColors.content.secondary,\n inverse: semanticColors.content.inverse,\n },\n strokeWidth: stroke.strong,\n animation: {\n duration: 800,\n easing: \"standard\",\n reducedMotion: \"static\",\n },\n} as const;\n\nexport type LoadMoreDensity = \"compact\" | \"regular\";\n\nexport const loadMoreRecipe = {\n slots: [\n \"root\",\n \"status\",\n \"spinner\",\n \"trigger\",\n \"error\",\n \"retry\",\n \"end\",\n ] as const,\n defaults: { mode: \"automatic\", density: \"regular\" },\n density: {\n compact: { paddingVertical: spacing.sm, gap: spacing.xs },\n regular: { paddingVertical: spacing.lg, gap: spacing.sm },\n },\n status: {\n color: semanticColors.content.secondary,\n textVariant: \"label\",\n },\n error: {\n color: semanticColors.content.danger,\n textVariant: \"label\",\n },\n end: {\n color: semanticColors.content.secondary,\n textVariant: \"caption\",\n },\n trigger: {\n minHeight: control.minTouchTarget,\n paddingHorizontal: spacing.md,\n radius: \"md\",\n color: semanticColors.content.brand,\n textVariant: \"label\",\n fontWeight: fontWeight.bold,\n },\n spinner: { size: \"small\", tone: \"brand\" },\n states: {\n focus: focusIndicatorContract,\n pressedOpacity: opacity.pressed,\n disabledOpacity: opacity.disabled,\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: { mode: \"automatic\" | \"manual\"; density: LoadMoreDensity };\n density: Record<LoadMoreDensity, { paddingVertical: number; gap: number }>;\n status: { color: ColorReference; textVariant: TextVariant };\n error: { color: ColorReference; textVariant: TextVariant };\n end: { color: ColorReference; textVariant: TextVariant };\n trigger: {\n minHeight: number;\n paddingHorizontal: number;\n radius: keyof typeof radius;\n color: ColorReference;\n textVariant: TextVariant;\n fontWeight: FontWeightValue;\n };\n spinner: { size: SpinnerSize; tone: SpinnerTone };\n states: {\n focus: typeof focusIndicatorContract;\n pressedOpacity: number;\n disabledOpacity: number;\n };\n};\n\nexport const avatarRecipe = {\n slots: [\"root\", \"image\", \"fallback\", \"badge\"] as const,\n defaults: { size: \"medium\", shape: \"circle\" },\n sizes: { small: 32, medium: 40, large: 48, xlarge: 64 },\n shapes: { rounded: \"md\", circle: \"full\" },\n background: semanticColors.surface.sunken,\n content: semanticColors.content.secondary,\n border: semanticColors.border.default,\n} as const;\n\nexport type StatisticDensity = \"compact\" | \"comfortable\";\nexport type StatisticPresentation = \"plain\" | \"surface\";\n\nexport const statisticRecipe = {\n slots: [\n \"group\",\n \"root\",\n \"label\",\n \"valueRow\",\n \"prefix\",\n \"value\",\n \"suffix\",\n \"trend\",\n \"trendMark\",\n \"hint\",\n ] as const,\n defaults: { density: \"comfortable\", presentation: \"plain\", columns: 3 },\n density: {\n compact: {\n padding: spacing.sm,\n gap: spacing.xxs,\n labelVariant: \"caption\",\n valueVariant: \"title\",\n },\n comfortable: {\n padding: spacing.md,\n gap: spacing.xs,\n labelVariant: \"label\",\n valueVariant: \"heading\",\n },\n },\n presentations: {\n plain: { background: null, border: null, borderWidth: 0, radius: \"md\" },\n surface: {\n background: semanticColors.surface.default,\n border: semanticColors.border.default,\n borderWidth: stroke.default,\n radius: \"md\",\n },\n },\n group: {\n gap: spacing.xs,\n minItemWidth: 120,\n columns: [1, 2, 3, 4] as const,\n },\n label: {\n color: semanticColors.content.secondary,\n fontWeight: fontWeight.semibold,\n },\n value: {\n color: semanticColors.content.primary,\n fontWeight: fontWeight.heavy,\n numericVariant: \"tabular\",\n maxLines: null,\n },\n affix: {\n color: semanticColors.content.body,\n textVariant: \"body\",\n fontWeight: fontWeight.semibold,\n },\n hint: {\n color: semanticColors.content.secondary,\n textVariant: \"caption\",\n },\n trend: {\n textVariant: \"caption\",\n fontWeight: fontWeight.bold,\n gap: spacing.xxs,\n marks: {\n up: \"trendUp\",\n down: \"trendDown\",\n flat: \"trendFlat\",\n },\n tones: {\n neutral: semanticColors.content.secondary,\n success: semanticColors.feedback.success.foreground,\n warning: semanticColors.feedback.warning.foreground,\n danger: semanticColors.content.danger,\n },\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: {\n density: StatisticDensity;\n presentation: StatisticPresentation;\n columns: 1 | 2 | 3 | 4;\n };\n density: Record<\n StatisticDensity,\n {\n padding: number;\n gap: number;\n labelVariant: TextVariant;\n valueVariant: TextVariant;\n }\n >;\n presentations: Record<\n StatisticPresentation,\n {\n background: ColorReference | null;\n border: ColorReference | null;\n borderWidth: number;\n radius: keyof typeof radius;\n }\n >;\n group: {\n gap: number;\n minItemWidth: number;\n columns: readonly (1 | 2 | 3 | 4)[];\n };\n label: { color: ColorReference; fontWeight: FontWeightValue };\n value: {\n color: ColorReference;\n fontWeight: FontWeightValue;\n numericVariant: \"tabular\";\n maxLines: null;\n };\n affix: { color: ColorReference; textVariant: TextVariant; fontWeight: FontWeightValue };\n hint: { color: ColorReference; textVariant: TextVariant };\n trend: {\n textVariant: TextVariant;\n fontWeight: FontWeightValue;\n gap: number;\n marks: Record<\"up\" | \"down\" | \"flat\", string>;\n tones: Record<\"neutral\" | \"success\" | \"warning\" | \"danger\", ColorReference>;\n };\n};\n\nexport const sheetRecipe = {\n slots: [\"backdrop\", \"positioner\", \"content\", \"handle\", \"header\", \"title\", \"body\", \"footer\", \"close\"] as const,\n defaults: { placement: \"bottom\", size: \"auto\" },\n /**\n * How tall the sheet opens. `auto` keeps the content-driven height that the\n * recipe already caps with `maxHeightRatio`. The fixed steps exist because\n * consumers otherwise reach for `contentStyle={{ height }}`, which moves a\n * recipe-owned dimension into product code.\n */\n sizes: {\n auto: null,\n medium: 0.6,\n large: 0.85,\n full: 1,\n },\n backdrop: backdrop.modal,\n content: {\n background: semanticColors.canvas,\n border: semanticColors.border.default,\n borderWidth: floatingSurfaceContract.borderWidth,\n radius: \"xl\",\n shadow: floatingSurfaceContract.shadow,\n maxHeightRatio: 0.9,\n paddingHorizontal: spacing.lg,\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n },\n web: { maxWidth: 640 },\n safeArea: {\n edge: \"bottom\",\n mode: \"additive\",\n minimumPadding: spacing.sm,\n },\n handle: {\n width: 36,\n height: 4,\n radius: \"full\",\n color: semanticColors.content.secondary,\n visibleByDefault: false,\n showWhen: \"swipe-dismiss-enabled\",\n },\n header: { minHeight: control.minTouchTarget, gap: spacing.sm },\n title: {\n color: semanticColors.content.primary,\n textVariant: \"title\",\n fontWeight: fontWeight.bold,\n gap: spacing.xxs,\n },\n body: {\n color: semanticColors.content.body,\n textVariant: \"body\",\n gap: spacing.md,\n },\n footer: {\n color: semanticColors.content.body,\n textVariant: \"body\",\n gap: spacing.sm,\n paddingTop: spacing.sm,\n },\n transition: { enter: motionPreset.enter, exit: motionPreset.exit },\n} as const;\n\nexport const dialogRecipe = {\n slots: [\"backdrop\", \"positioner\", \"content\", \"header\", \"title\", \"description\", \"body\", \"footer\", \"close\"] as const,\n defaults: { size: \"medium\", dismissible: true },\n sizes: {\n small: { maxWidth: 320, padding: spacing.lg },\n medium: { maxWidth: 420, padding: spacing.xl },\n large: { maxWidth: 640, padding: spacing.xl },\n },\n backdrop: backdrop.modal,\n content: {\n background: semanticColors.canvas,\n border: semanticColors.border.default,\n borderWidth: floatingSurfaceContract.borderWidth,\n radius: \"lg\",\n gap: spacing.md,\n shadow: floatingSurfaceContract.shadow,\n },\n transition: { enter: motionPreset.enter, exit: motionPreset.exit },\n} as const;\n\nexport type AlertDialogTone = \"attention\" | \"danger\";\n\nexport const alertDialogRecipe = {\n slots: [\n \"backdrop\",\n \"positioner\",\n \"content\",\n \"icon\",\n \"title\",\n \"description\",\n \"status\",\n \"error\",\n \"actions\",\n \"cancel\",\n \"confirm\",\n ] as const,\n defaults: { tone: \"attention\", size: \"small\" },\n sizes: dialogRecipe.sizes,\n backdrop: dialogRecipe.backdrop,\n content: dialogRecipe.content,\n tones: {\n attention: {\n icon: semanticColors.feedback.attention.foreground,\n iconBackground: semanticColors.feedback.attention.background,\n confirm: semanticColors.action.brand.background,\n confirmContent: semanticColors.action.brand.content,\n },\n danger: {\n icon: semanticColors.content.danger,\n iconBackground: semanticColors.feedback.danger.background,\n confirm: semanticColors.action.danger.background,\n confirmContent: semanticColors.action.danger.content,\n },\n },\n icon: { containerSize: control.minTouchTarget, glyph: \"md\", radius: \"full\" },\n title: {\n color: semanticColors.content.primary,\n textVariant: \"title\",\n fontWeight: fontWeight.bold,\n },\n description: {\n color: semanticColors.content.secondary,\n textVariant: \"body\",\n },\n error: formSupportContract.error,\n actions: {\n gap: spacing.sm,\n stackBelow: breakpoint.medium,\n minButtonWidth: 96,\n },\n transition: dialogRecipe.transition,\n} as const satisfies {\n slots: readonly string[];\n defaults: { tone: AlertDialogTone; size: DialogSize };\n sizes: typeof dialogRecipe.sizes;\n backdrop: typeof dialogRecipe.backdrop;\n content: typeof dialogRecipe.content;\n tones: Record<\n AlertDialogTone,\n {\n icon: ColorReference;\n iconBackground: ColorReference;\n confirm: ColorReference;\n confirmContent: ColorReference;\n }\n >;\n icon: { containerSize: number; glyph: GlyphSize; radius: keyof typeof radius };\n title: { color: ColorReference; textVariant: TextVariant; fontWeight: FontWeightValue };\n description: { color: ColorReference; textVariant: TextVariant };\n error: { color: ColorReference; textVariant: TextVariant };\n actions: { gap: number; stackBelow: number; minButtonWidth: number };\n transition: typeof dialogRecipe.transition;\n};\n\nexport type ToastPlacement =\n | \"top\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom\"\n | \"bottom-start\"\n | \"bottom-end\";\nexport type ToastTone = \"neutral\" | \"info\" | \"success\" | \"warning\" | \"danger\";\nexport type ToastToneMark =\n | \"notifications\"\n | \"info\"\n | \"success\"\n | \"warning\"\n | \"alert\";\n\nexport const toastRecipe = {\n slots: [\n \"viewport\",\n \"root\",\n \"toneMark\",\n \"icon\",\n \"content\",\n \"title\",\n \"description\",\n \"action\",\n \"close\",\n ] as const,\n defaults: { tone: \"neutral\", placement: \"bottom\", durationMs: 5000 },\n adaptive: { web: \"fixed-viewport\", native: \"safe-area-overlay\" },\n viewport: {\n layer: layer.toast,\n gap: spacing.sm,\n inset: spacing.md,\n maxWidth: 420,\n safeAreaMode: \"additive\",\n },\n placements: {\n top: { blockEdge: \"top\", inlineEdge: \"center\", stackFrom: \"top\" },\n \"top-start\": { blockEdge: \"top\", inlineEdge: \"start\", stackFrom: \"top\" },\n \"top-end\": { blockEdge: \"top\", inlineEdge: \"end\", stackFrom: \"top\" },\n bottom: { blockEdge: \"bottom\", inlineEdge: \"center\", stackFrom: \"bottom\" },\n \"bottom-start\": { blockEdge: \"bottom\", inlineEdge: \"start\", stackFrom: \"bottom\" },\n \"bottom-end\": { blockEdge: \"bottom\", inlineEdge: \"end\", stackFrom: \"bottom\" },\n },\n tones: {\n neutral: {\n foreground: semanticColors.content.primary,\n accent: semanticColors.content.secondary,\n mark: \"notifications\",\n },\n info: {\n foreground: semanticColors.content.primary,\n accent: semanticColors.feedback.info.foreground,\n mark: \"info\",\n },\n success: {\n foreground: semanticColors.content.primary,\n accent: semanticColors.feedback.success.foreground,\n mark: \"success\",\n },\n warning: {\n foreground: semanticColors.content.primary,\n accent: semanticColors.feedback.warning.foreground,\n mark: \"warning\",\n },\n danger: {\n foreground: semanticColors.content.primary,\n accent: semanticColors.content.danger,\n mark: \"alert\",\n },\n },\n surface: {\n background: semanticColors.canvas,\n border: semanticColors.border.strong,\n borderWidth: stroke.default,\n radius: \"md\",\n shadow: floatingSurfaceContract.shadow,\n minHeight: layout.rowHeight.singleLine,\n padding: spacing.md,\n gap: spacing.sm,\n maxWidth: 420,\n },\n toneMark: { width: stroke.strong, radius: \"full\" },\n icon: { glyph: \"sm\" },\n content: { gap: spacing.xxs },\n title: {\n color: semanticColors.content.primary,\n textVariant: \"body\",\n fontWeight: fontWeight.bold,\n },\n description: {\n color: semanticColors.content.body,\n textVariant: \"body\",\n },\n action: {\n color: semanticColors.content.brand,\n textVariant: \"body\",\n fontWeight: fontWeight.bold,\n minHeight: control.minTouchTarget,\n paddingHorizontal: spacing.xs,\n },\n close: {\n color: semanticColors.content.secondary,\n diameter: control.minTouchTarget,\n glyph: \"xs\",\n },\n states: {\n pressedOpacity: opacity.pressed,\n draggedOpacity: opacity.dragged,\n focus: focusIndicatorContract,\n },\n gesture: { dismissThreshold: 50 },\n transition: {\n web: { enter: motionPreset.micro, exit: motionPreset.exit },\n native: { enter: motionPreset.enter, exit: motionPreset.exit },\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: { tone: ToastTone; placement: ToastPlacement; durationMs: number };\n adaptive: { web: \"fixed-viewport\"; native: \"safe-area-overlay\" };\n viewport: {\n layer: number;\n gap: number;\n inset: number;\n maxWidth: number;\n safeAreaMode: \"additive\";\n };\n placements: Record<\n ToastPlacement,\n {\n blockEdge: \"top\" | \"bottom\";\n inlineEdge: \"start\" | \"center\" | \"end\";\n stackFrom: \"top\" | \"bottom\";\n }\n >;\n tones: Record<\n ToastTone,\n { foreground: ColorReference; accent: ColorReference; mark: ToastToneMark }\n >;\n surface: {\n background: ColorReference;\n border: ColorReference;\n borderWidth: number;\n radius: keyof typeof radius;\n shadow: typeof floatingSurfaceContract.shadow;\n minHeight: number;\n padding: number;\n gap: number;\n maxWidth: number;\n };\n toneMark: { width: number; radius: keyof typeof radius };\n icon: { glyph: GlyphSize };\n content: { gap: number };\n title: { color: ColorReference; textVariant: TextVariant; fontWeight: FontWeightValue };\n description: { color: ColorReference; textVariant: TextVariant };\n action: {\n color: ColorReference;\n textVariant: TextVariant;\n fontWeight: FontWeightValue;\n minHeight: number;\n paddingHorizontal: number;\n };\n close: { color: ColorReference; diameter: number; glyph: GlyphSize };\n states: {\n pressedOpacity: number;\n draggedOpacity: number;\n focus: typeof focusIndicatorContract;\n };\n gesture: { dismissThreshold: number };\n transition: {\n web: { enter: typeof motionPreset.micro; exit: typeof motionPreset.exit };\n native: { enter: typeof motionPreset.enter; exit: typeof motionPreset.exit };\n };\n};\n\nexport const tooltipRecipe = {\n slots: [\"provider\", \"trigger\", \"content\", \"arrow\"] as const,\n defaults: tooltipDescriptorDefaults,\n layer: layer.tooltip,\n surface: {\n ...floatingSurfaceContract,\n background: semanticColors.content.primary,\n border: semanticColors.content.primary,\n radius: \"sm\" as const,\n padding: spacing.xs,\n },\n content: {\n color: semanticColors.canvas,\n textVariant: \"label\",\n maxWidth: 280,\n },\n arrow: {\n width: 10,\n height: 5,\n color: semanticColors.content.primary,\n padding: spacing.xs,\n },\n positioning: {\n sideOffset: spacing.xxs,\n collisionPadding: spacing.sm,\n },\n transition: { enter: motionPreset.micro, exit: motionPreset.exit },\n} as const;\n\nexport const topBarRecipe = {\n slots: [\n \"root\",\n \"leading\",\n \"title\",\n \"titleLeading\",\n \"titleAction\",\n \"trailing\",\n \"action\",\n \"actionLabel\",\n ] as const,\n defaults: { centered: true },\n minHeight: control.buttonHeight.large,\n sideMinWidth: control.minTouchTarget,\n paddingHorizontal: spacing.md,\n gap: spacing.xs,\n largeTextThreshold: 1.6,\n title: { textVariant: \"bodyLarge\", color: semanticColors.content.primary, fontWeight: fontWeight.bold },\n titleAction: {\n minHeight: control.minTouchTarget,\n minWidth: control.minTouchTarget,\n gap: spacing.xs,\n pressedOpacity: opacity.pressed,\n },\n action: {\n minHeight: control.minTouchTarget,\n minWidth: control.minTouchTarget,\n gap: spacing.xxs,\n paddingHorizontal: spacing.xxs,\n pressedOpacity: opacity.pressed,\n disabledOpacity: opacity.disabled,\n },\n actionLabel: {\n textVariant: \"caption\",\n color: semanticColors.content.primary,\n fontWeight: fontWeight.medium,\n },\n background: semanticColors.canvas,\n} as const;\n\nexport const bottomCtaRecipe = {\n slots: [\"root\", \"description\", \"secondaryAction\", \"primaryAction\"] as const,\n minHeight: 64,\n paddingHorizontal: layout.pagePadding.regular,\n paddingTop: spacing.sm,\n paddingBottom: spacing.sm,\n gap: spacing.sm,\n // A footer painted in the canvas tone left only a 1pt hairline between it\n // and the content scrolling underneath — a product author found that the\n // line cut a glyph in half at whatever scroll position the reader stopped\n // at, reading as a broken card rather than a footer. Layering by surface\n // (one step up from canvas) instead of by shadow alone is how this\n // component builds the separation; `shadow` below is reserved for the one\n // case that still needs it — see its comment.\n background: semanticColors.surface.default,\n border: semanticColors.border.default,\n borderWidth: stroke.default,\n // The cut described above is the scroll viewport's edge, not a spacing\n // problem — content clips mid-glyph, and a hairline between two\n // similarly-light planes can't carry that on its own. The footer casts\n // upward instead: the one case where a shadow, rather than a surface step,\n // is the right tool, because the footer genuinely overlaps the content\n // beneath it.\n shadow: {\n color: \"#000000\",\n opacity: 0.08,\n radius: 8,\n offsetY: -2,\n elevation: 8,\n },\n} as const;\n\nexport const sectionRecipe = {\n slots: [\"root\", \"header\", \"copy\", \"title\", \"description\", \"action\", \"content\"] as const,\n gap: spacing.xs,\n headerGap: spacing.sm,\n copyGap: spacing.xxs,\n title: { textVariant: \"title\", color: semanticColors.content.body, fontWeight: fontWeight.bold },\n description: { textVariant: \"caption\", color: semanticColors.content.secondary },\n} as const;\n\nexport type SegmentedControlSize = keyof typeof segmentedControlRecipe.sizes;\nexport type SwitchSize = keyof typeof switchRecipe.sizes;\nexport type SelectionControlSize = keyof typeof selectionControlRecipe.sizes;\nexport type SelectionControlPresentation = keyof typeof selectionControlRecipe.presentations;\nexport type TabSize = keyof typeof tabsRecipe.sizes;\nexport type TabsLayout = keyof typeof tabsRecipe.layouts;\nexport type TabsOverflow = keyof typeof tabsRecipe.overflow;\nexport type SpinnerSize = keyof typeof spinnerRecipe.sizes;\nexport type SpinnerTone = keyof typeof spinnerRecipe.tones;\nexport type AvatarSize = keyof typeof avatarRecipe.sizes;\nexport type AvatarShape = keyof typeof avatarRecipe.shapes;\nexport type DialogSize = keyof typeof dialogRecipe.sizes;\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ColorReferencePalette } from "./color-references.js";
|
|
2
|
-
import { type ResolvedTheme, type ThemePreference } from "./colors.js";
|
|
2
|
+
import { type ResolvedTheme, type ThemeColors, type ThemePreference } from "./colors.js";
|
|
3
3
|
/**
|
|
4
4
|
* Canonical logical direction. Existing public component-specific names stay
|
|
5
5
|
* source-compatible as aliases of this type instead of redeclaring the union.
|
|
@@ -42,6 +42,14 @@ export type ResolveDesignSystemEnvironmentOptions = Readonly<{
|
|
|
42
42
|
systemDirection?: DesignSystemDirection;
|
|
43
43
|
systemTextScale?: DesignSystemTextScale;
|
|
44
44
|
systemReducedMotion?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Product brand colors layered over the HJM semantic keys. The key set is
|
|
47
|
+
* unchanged, so recipes and contrast rules keep applying. Without this entry
|
|
48
|
+
* point a consumer has to build its own token layer and override the CSS
|
|
49
|
+
* variables, which is a copy of the canonical palette. Only the supplied
|
|
50
|
+
* keys are replaced; the rest keep the HJM defaults.
|
|
51
|
+
*/
|
|
52
|
+
brandPalette?: Readonly<Partial<Record<ResolvedTheme, Readonly<Partial<ThemeColors>>>>>;
|
|
45
53
|
/** A nested renderer inherits the already-resolved parent before consulting OS defaults. */
|
|
46
54
|
parent?: ResolvedDesignSystemEnvironment;
|
|
47
55
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system-provider.d.ts","sourceRoot":"","sources":["../src/design-system-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,KAAK,CAAC;AAElD;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,4BAA4B,GAAG,QAAQ,CAAC;IAClD,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;CAU1C,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,QAAQ,CAAC;IACrD,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,qBAAqB,CAAC;IACjC,SAAS,EAAE,qBAAqB,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,MAAM,qCAAqC,GAAG,QAAQ,CAAC;IAC3D;;;;;OAKG;IACH,WAAW,EAAE,aAAa,CAAC;IAC3B,2FAA2F;IAC3F,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4FAA4F;IAC5F,MAAM,CAAC,EAAE,+BAA+B,CAAC;CAC1C,CAAC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC/C,WAAW,EAAE,+BAA+B,CAAC;IAC7C,4DAA4D;IAC5D,OAAO,EAAE,qBAAqB,CAAC;CAChC,CAAC,CAAC;AAyBH;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,yBAAyB,GAC/B,IAAI,CAuBN;AAsBD,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,4BAA4B,GAClC,IAAI,CAmBN;AAED;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,WAAW,EAAE,+BAA+B,GAC3C,IAAI,CASN;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,4BAA4B,EACnC,OAAO,EAAE,qCAAqC,GAC7C,+BAA+B,CAsCjC;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,4BAA4B,EACnC,OAAO,EAAE,qCAAqC,GAC7C,yBAAyB,
|
|
1
|
+
{"version":3,"file":"design-system-provider.d.ts","sourceRoot":"","sources":["../src/design-system-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,KAAK,CAAC;AAElD;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,4BAA4B,GAAG,QAAQ,CAAC;IAClD,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;CAU1C,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,QAAQ,CAAC;IACrD,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,qBAAqB,CAAC;IACjC,SAAS,EAAE,qBAAqB,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,MAAM,qCAAqC,GAAG,QAAQ,CAAC;IAC3D;;;;;OAKG;IACH,WAAW,EAAE,aAAa,CAAC;IAC3B,2FAA2F;IAC3F,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,4FAA4F;IAC5F,MAAM,CAAC,EAAE,+BAA+B,CAAC;CAC1C,CAAC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC/C,WAAW,EAAE,+BAA+B,CAAC;IAC7C,4DAA4D;IAC5D,OAAO,EAAE,qBAAqB,CAAC;CAChC,CAAC,CAAC;AAyBH;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,yBAAyB,GAC/B,IAAI,CAuBN;AAsBD,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,4BAA4B,GAClC,IAAI,CAmBN;AAED;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,WAAW,EAAE,+BAA+B,GAC3C,IAAI,CASN;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,4BAA4B,EACnC,OAAO,EAAE,qCAAqC,GAC7C,+BAA+B,CAsCjC;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,4BAA4B,EACnC,OAAO,EAAE,qCAAqC,GAC7C,yBAAyB,CAe3B"}
|
|
@@ -133,10 +133,13 @@ export function resolveDesignSystemEnvironment(input, options) {
|
|
|
133
133
|
*/
|
|
134
134
|
export function resolveDesignSystemProviderValue(input, options) {
|
|
135
135
|
const environment = resolveDesignSystemEnvironment(input, options);
|
|
136
|
+
const brandOverride = options.brandPalette?.[environment.theme];
|
|
136
137
|
const value = {
|
|
137
138
|
environment,
|
|
138
139
|
palette: {
|
|
139
|
-
theme:
|
|
140
|
+
theme: brandOverride === undefined
|
|
141
|
+
? THEMES[environment.theme]
|
|
142
|
+
: { ...THEMES[environment.theme], ...brandOverride },
|
|
140
143
|
statusAccents: ACCENTS[environment.theme],
|
|
141
144
|
statusAccentFills: accentFill,
|
|
142
145
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system-provider.js","sourceRoot":"","sources":["../src/design-system-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ColorReferencePalette } from \"./color-references.js\";\nimport {\n ACCENTS,\n THEMES,\n accentFill,\n isThemePreference,\n type ResolvedTheme,\n type ThemePreference,\n} from \"./colors.js\";\n\n/**\n * Canonical logical direction. Existing public component-specific names stay\n * source-compatible as aliases of this type instead of redeclaring the union.\n */\nexport type DesignSystemDirection = \"ltr\" | \"rtl\";\n\n/**\n * A continuous OS/user font-scale multiplier (iOS Dynamic Type, Android font\n * size, browser zoom) — not `ShowcaseTextScale`'s closed `1 | 1.5 | 2`, which\n * only names Showcase's five fixture stories, or `description-list.ts`'s\n * local layout clamp. This is the single upstream signal both now consume.\n */\nexport type DesignSystemTextScale = number;\n\nexport type DesignSystemEnvironmentInput = Readonly<{\n theme?: ThemePreference;\n direction?: DesignSystemDirection;\n textScale?: DesignSystemTextScale;\n reducedMotion?: boolean;\n}>;\n\nexport const designSystemEnvironmentDefaults = {\n theme: \"system\",\n direction: \"ltr\",\n textScale: 1,\n reducedMotion: false,\n} as const satisfies Readonly<{\n theme: ThemePreference;\n direction: DesignSystemDirection;\n textScale: DesignSystemTextScale;\n reducedMotion: boolean;\n}>;\n\nexport type ResolvedDesignSystemEnvironment = Readonly<{\n theme: ResolvedTheme;\n direction: DesignSystemDirection;\n textScale: DesignSystemTextScale;\n reducedMotion: boolean;\n}>;\n\nexport type ResolveDesignSystemEnvironmentOptions = Readonly<{\n /**\n * The platform's current OS-level scheme, consulted only when `theme`\n * resolves to `\"system\"`. Renderers detect this themselves\n * (`Appearance.getColorScheme()`, `matchMedia('(prefers-color-scheme)')`)\n * — this package never queries the OS.\n */\n systemTheme: ResolvedTheme;\n /** Optional OS/renderer signals used when neither input nor a parent supplies the axis. */\n systemDirection?: DesignSystemDirection;\n systemTextScale?: DesignSystemTextScale;\n systemReducedMotion?: boolean;\n /** A nested renderer inherits the already-resolved parent before consulting OS defaults. */\n parent?: ResolvedDesignSystemEnvironment;\n}>;\n\nexport type DesignSystemProviderValue = Readonly<{\n environment: ResolvedDesignSystemEnvironment;\n /** Palette consumed directly by `resolveColorReference`. */\n palette: ColorReferencePalette;\n}>;\n\nconst themeColorKeys = Object.keys(THEMES.light) as readonly (keyof typeof THEMES.light)[];\nconst accentColorKeys = Object.keys(ACCENTS.light) as readonly (keyof typeof ACCENTS.light)[];\nconst sixDigitHexColor = /^#[0-9a-f]{6}$/i;\n\nfunction assertColorRecord(\n value: unknown,\n keys: readonly string[],\n field: string,\n): asserts value is Readonly<Record<string, string>> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new TypeError(`DesignSystemProviderValue ${field} must be a color record`);\n }\n const record = value as Readonly<Record<string, unknown>>;\n for (const key of keys) {\n const color = record[key];\n if (typeof color !== \"string\" || !sixDigitHexColor.test(color)) {\n throw new TypeError(\n `DesignSystemProviderValue ${field}.${key} must be a six-digit hex color`,\n );\n }\n }\n}\n\n/**\n * Runtime boundary for reviewed full product palettes supplied to a renderer.\n * Partial token overrides remain unsupported: every semantic role required by\n * a recipe must be present, and alpha composition requires six-digit hex.\n */\nexport function validateDesignSystemProviderValue(\n value: DesignSystemProviderValue,\n): void {\n if (value === null || typeof value !== \"object\") {\n throw new TypeError(\"DesignSystemProviderValue must be an object\");\n }\n if (value.environment === null || typeof value.environment !== \"object\") {\n throw new TypeError(\"DesignSystemProviderValue environment must be an object\");\n }\n validateResolvedDesignSystemEnvironment(value.environment);\n const palette = value.palette;\n if (palette === null || typeof palette !== \"object\") {\n throw new TypeError(\"DesignSystemProviderValue palette must be an object\");\n }\n assertColorRecord(palette.theme, themeColorKeys, \"palette.theme\");\n assertColorRecord(\n palette.statusAccents,\n accentColorKeys,\n \"palette.statusAccents\",\n );\n assertColorRecord(\n palette.statusAccentFills,\n accentColorKeys,\n \"palette.statusAccentFills\",\n );\n}\n\nfunction assertBoolean(value: boolean, field: string): void {\n if (typeof value !== \"boolean\") {\n throw new TypeError(`DesignSystemEnvironment ${field} must be a boolean`);\n }\n}\n\nfunction assertDirection(value: DesignSystemDirection, field: string): void {\n if (value !== \"ltr\" && value !== \"rtl\") {\n throw new TypeError(`Unsupported DesignSystemEnvironment ${field}: ${String(value)}`);\n }\n}\n\nfunction assertTextScale(value: DesignSystemTextScale, field: string): void {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) {\n throw new RangeError(\n `DesignSystemEnvironment ${field} must be a finite number greater than 0`,\n );\n }\n}\n\nexport function validateDesignSystemEnvironmentInput(\n input: DesignSystemEnvironmentInput,\n): void {\n if (input.theme !== undefined && !isThemePreference(input.theme)) {\n throw new TypeError(`Unsupported DesignSystemEnvironment theme: ${String(input.theme)}`);\n }\n if (\n input.direction !== undefined &&\n input.direction !== \"ltr\" &&\n input.direction !== \"rtl\"\n ) {\n throw new TypeError(\n `Unsupported DesignSystemEnvironment direction: ${String(input.direction)}`,\n );\n }\n if (input.textScale !== undefined) {\n assertTextScale(input.textScale, \"textScale\");\n }\n if (input.reducedMotion !== undefined) {\n assertBoolean(input.reducedMotion, \"reducedMotion\");\n }\n}\n\n/**\n * A parent has already crossed the system-preference boundary. Unlike the\n * partial input validator, this rejects `\"system\"`, missing axes, and every\n * malformed resolved value instead of silently resolving them again.\n */\nexport function validateResolvedDesignSystemEnvironment(\n environment: ResolvedDesignSystemEnvironment,\n): void {\n if (environment.theme !== \"light\" && environment.theme !== \"dark\") {\n throw new TypeError(\n `Unsupported ResolvedDesignSystemEnvironment theme: ${String(environment.theme)}`,\n );\n }\n assertDirection(environment.direction, \"parent direction\");\n assertTextScale(environment.textScale, \"parent textScale\");\n assertBoolean(environment.reducedMotion, \"parent reducedMotion\");\n}\n\n/**\n * Merges partial signals with safe defaults and resolves `\"system\"` against\n * the renderer-supplied `systemTheme`. This — not a React/RN context, which\n * this package cannot own — is the entire portable contract behind antd\n * `ConfigProvider`: see docs/design-system-provider.md for what was\n * deliberately left to the renderer.\n */\nexport function resolveDesignSystemEnvironment(\n input: DesignSystemEnvironmentInput,\n options: ResolveDesignSystemEnvironmentOptions,\n): ResolvedDesignSystemEnvironment {\n validateDesignSystemEnvironmentInput(input);\n if (options.systemTheme !== \"light\" && options.systemTheme !== \"dark\") {\n throw new TypeError(`Unsupported DesignSystemEnvironment systemTheme: ${String(options.systemTheme)}`);\n }\n if (options.systemDirection !== undefined) {\n assertDirection(options.systemDirection, \"systemDirection\");\n }\n if (options.systemTextScale !== undefined) {\n assertTextScale(options.systemTextScale, \"systemTextScale\");\n }\n if (options.systemReducedMotion !== undefined) {\n assertBoolean(options.systemReducedMotion, \"systemReducedMotion\");\n }\n if (options.parent !== undefined) {\n validateResolvedDesignSystemEnvironment(options.parent);\n }\n\n const theme =\n input.theme ?? options.parent?.theme ?? designSystemEnvironmentDefaults.theme;\n return {\n theme: theme === \"system\" ? options.systemTheme : theme,\n direction:\n input.direction ??\n options.parent?.direction ??\n options.systemDirection ??\n designSystemEnvironmentDefaults.direction,\n textScale:\n input.textScale ??\n options.parent?.textScale ??\n options.systemTextScale ??\n designSystemEnvironmentDefaults.textScale,\n reducedMotion:\n input.reducedMotion ??\n options.parent?.reducedMotion ??\n options.systemReducedMotion ??\n designSystemEnvironmentDefaults.reducedMotion,\n };\n}\n\n/**\n * Resolves the portable Provider value without owning React/RN Context. A\n * renderer stores this object in its own context and feeds `palette` directly\n * to recipe color resolution.\n */\nexport function resolveDesignSystemProviderValue(\n input: DesignSystemEnvironmentInput,\n options: ResolveDesignSystemEnvironmentOptions,\n): DesignSystemProviderValue {\n const environment = resolveDesignSystemEnvironment(input, options);\n const value = {\n environment,\n palette: {\n theme: THEMES[environment.theme],\n statusAccents: ACCENTS[environment.theme],\n statusAccentFills: accentFill,\n },\n };\n validateDesignSystemProviderValue(value);\n return value;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"design-system-provider.js","sourceRoot":"","sources":["../src/design-system-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ColorReferencePalette } from \"./color-references.js\";\nimport {\n ACCENTS,\n THEMES,\n accentFill,\n isThemePreference,\n type ResolvedTheme,\n type ThemeColors,\n type ThemePreference,\n} from \"./colors.js\";\n\n/**\n * Canonical logical direction. Existing public component-specific names stay\n * source-compatible as aliases of this type instead of redeclaring the union.\n */\nexport type DesignSystemDirection = \"ltr\" | \"rtl\";\n\n/**\n * A continuous OS/user font-scale multiplier (iOS Dynamic Type, Android font\n * size, browser zoom) — not `ShowcaseTextScale`'s closed `1 | 1.5 | 2`, which\n * only names Showcase's five fixture stories, or `description-list.ts`'s\n * local layout clamp. This is the single upstream signal both now consume.\n */\nexport type DesignSystemTextScale = number;\n\nexport type DesignSystemEnvironmentInput = Readonly<{\n theme?: ThemePreference;\n direction?: DesignSystemDirection;\n textScale?: DesignSystemTextScale;\n reducedMotion?: boolean;\n}>;\n\nexport const designSystemEnvironmentDefaults = {\n theme: \"system\",\n direction: \"ltr\",\n textScale: 1,\n reducedMotion: false,\n} as const satisfies Readonly<{\n theme: ThemePreference;\n direction: DesignSystemDirection;\n textScale: DesignSystemTextScale;\n reducedMotion: boolean;\n}>;\n\nexport type ResolvedDesignSystemEnvironment = Readonly<{\n theme: ResolvedTheme;\n direction: DesignSystemDirection;\n textScale: DesignSystemTextScale;\n reducedMotion: boolean;\n}>;\n\nexport type ResolveDesignSystemEnvironmentOptions = Readonly<{\n /**\n * The platform's current OS-level scheme, consulted only when `theme`\n * resolves to `\"system\"`. Renderers detect this themselves\n * (`Appearance.getColorScheme()`, `matchMedia('(prefers-color-scheme)')`)\n * — this package never queries the OS.\n */\n systemTheme: ResolvedTheme;\n /** Optional OS/renderer signals used when neither input nor a parent supplies the axis. */\n systemDirection?: DesignSystemDirection;\n systemTextScale?: DesignSystemTextScale;\n systemReducedMotion?: boolean;\n /**\n * Product brand colors layered over the HJM semantic keys. The key set is\n * unchanged, so recipes and contrast rules keep applying. Without this entry\n * point a consumer has to build its own token layer and override the CSS\n * variables, which is a copy of the canonical palette. Only the supplied\n * keys are replaced; the rest keep the HJM defaults.\n */\n brandPalette?: Readonly<Partial<Record<ResolvedTheme, Readonly<Partial<ThemeColors>>>>>;\n /** A nested renderer inherits the already-resolved parent before consulting OS defaults. */\n parent?: ResolvedDesignSystemEnvironment;\n}>;\n\nexport type DesignSystemProviderValue = Readonly<{\n environment: ResolvedDesignSystemEnvironment;\n /** Palette consumed directly by `resolveColorReference`. */\n palette: ColorReferencePalette;\n}>;\n\nconst themeColorKeys = Object.keys(THEMES.light) as readonly (keyof typeof THEMES.light)[];\nconst accentColorKeys = Object.keys(ACCENTS.light) as readonly (keyof typeof ACCENTS.light)[];\nconst sixDigitHexColor = /^#[0-9a-f]{6}$/i;\n\nfunction assertColorRecord(\n value: unknown,\n keys: readonly string[],\n field: string,\n): asserts value is Readonly<Record<string, string>> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n throw new TypeError(`DesignSystemProviderValue ${field} must be a color record`);\n }\n const record = value as Readonly<Record<string, unknown>>;\n for (const key of keys) {\n const color = record[key];\n if (typeof color !== \"string\" || !sixDigitHexColor.test(color)) {\n throw new TypeError(\n `DesignSystemProviderValue ${field}.${key} must be a six-digit hex color`,\n );\n }\n }\n}\n\n/**\n * Runtime boundary for reviewed full product palettes supplied to a renderer.\n * Partial token overrides remain unsupported: every semantic role required by\n * a recipe must be present, and alpha composition requires six-digit hex.\n */\nexport function validateDesignSystemProviderValue(\n value: DesignSystemProviderValue,\n): void {\n if (value === null || typeof value !== \"object\") {\n throw new TypeError(\"DesignSystemProviderValue must be an object\");\n }\n if (value.environment === null || typeof value.environment !== \"object\") {\n throw new TypeError(\"DesignSystemProviderValue environment must be an object\");\n }\n validateResolvedDesignSystemEnvironment(value.environment);\n const palette = value.palette;\n if (palette === null || typeof palette !== \"object\") {\n throw new TypeError(\"DesignSystemProviderValue palette must be an object\");\n }\n assertColorRecord(palette.theme, themeColorKeys, \"palette.theme\");\n assertColorRecord(\n palette.statusAccents,\n accentColorKeys,\n \"palette.statusAccents\",\n );\n assertColorRecord(\n palette.statusAccentFills,\n accentColorKeys,\n \"palette.statusAccentFills\",\n );\n}\n\nfunction assertBoolean(value: boolean, field: string): void {\n if (typeof value !== \"boolean\") {\n throw new TypeError(`DesignSystemEnvironment ${field} must be a boolean`);\n }\n}\n\nfunction assertDirection(value: DesignSystemDirection, field: string): void {\n if (value !== \"ltr\" && value !== \"rtl\") {\n throw new TypeError(`Unsupported DesignSystemEnvironment ${field}: ${String(value)}`);\n }\n}\n\nfunction assertTextScale(value: DesignSystemTextScale, field: string): void {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) {\n throw new RangeError(\n `DesignSystemEnvironment ${field} must be a finite number greater than 0`,\n );\n }\n}\n\nexport function validateDesignSystemEnvironmentInput(\n input: DesignSystemEnvironmentInput,\n): void {\n if (input.theme !== undefined && !isThemePreference(input.theme)) {\n throw new TypeError(`Unsupported DesignSystemEnvironment theme: ${String(input.theme)}`);\n }\n if (\n input.direction !== undefined &&\n input.direction !== \"ltr\" &&\n input.direction !== \"rtl\"\n ) {\n throw new TypeError(\n `Unsupported DesignSystemEnvironment direction: ${String(input.direction)}`,\n );\n }\n if (input.textScale !== undefined) {\n assertTextScale(input.textScale, \"textScale\");\n }\n if (input.reducedMotion !== undefined) {\n assertBoolean(input.reducedMotion, \"reducedMotion\");\n }\n}\n\n/**\n * A parent has already crossed the system-preference boundary. Unlike the\n * partial input validator, this rejects `\"system\"`, missing axes, and every\n * malformed resolved value instead of silently resolving them again.\n */\nexport function validateResolvedDesignSystemEnvironment(\n environment: ResolvedDesignSystemEnvironment,\n): void {\n if (environment.theme !== \"light\" && environment.theme !== \"dark\") {\n throw new TypeError(\n `Unsupported ResolvedDesignSystemEnvironment theme: ${String(environment.theme)}`,\n );\n }\n assertDirection(environment.direction, \"parent direction\");\n assertTextScale(environment.textScale, \"parent textScale\");\n assertBoolean(environment.reducedMotion, \"parent reducedMotion\");\n}\n\n/**\n * Merges partial signals with safe defaults and resolves `\"system\"` against\n * the renderer-supplied `systemTheme`. This — not a React/RN context, which\n * this package cannot own — is the entire portable contract behind antd\n * `ConfigProvider`: see docs/design-system-provider.md for what was\n * deliberately left to the renderer.\n */\nexport function resolveDesignSystemEnvironment(\n input: DesignSystemEnvironmentInput,\n options: ResolveDesignSystemEnvironmentOptions,\n): ResolvedDesignSystemEnvironment {\n validateDesignSystemEnvironmentInput(input);\n if (options.systemTheme !== \"light\" && options.systemTheme !== \"dark\") {\n throw new TypeError(`Unsupported DesignSystemEnvironment systemTheme: ${String(options.systemTheme)}`);\n }\n if (options.systemDirection !== undefined) {\n assertDirection(options.systemDirection, \"systemDirection\");\n }\n if (options.systemTextScale !== undefined) {\n assertTextScale(options.systemTextScale, \"systemTextScale\");\n }\n if (options.systemReducedMotion !== undefined) {\n assertBoolean(options.systemReducedMotion, \"systemReducedMotion\");\n }\n if (options.parent !== undefined) {\n validateResolvedDesignSystemEnvironment(options.parent);\n }\n\n const theme =\n input.theme ?? options.parent?.theme ?? designSystemEnvironmentDefaults.theme;\n return {\n theme: theme === \"system\" ? options.systemTheme : theme,\n direction:\n input.direction ??\n options.parent?.direction ??\n options.systemDirection ??\n designSystemEnvironmentDefaults.direction,\n textScale:\n input.textScale ??\n options.parent?.textScale ??\n options.systemTextScale ??\n designSystemEnvironmentDefaults.textScale,\n reducedMotion:\n input.reducedMotion ??\n options.parent?.reducedMotion ??\n options.systemReducedMotion ??\n designSystemEnvironmentDefaults.reducedMotion,\n };\n}\n\n/**\n * Resolves the portable Provider value without owning React/RN Context. A\n * renderer stores this object in its own context and feeds `palette` directly\n * to recipe color resolution.\n */\nexport function resolveDesignSystemProviderValue(\n input: DesignSystemEnvironmentInput,\n options: ResolveDesignSystemEnvironmentOptions,\n): DesignSystemProviderValue {\n const environment = resolveDesignSystemEnvironment(input, options);\n const brandOverride = options.brandPalette?.[environment.theme];\n const value = {\n environment,\n palette: {\n theme: brandOverride === undefined\n ? THEMES[environment.theme]\n : { ...THEMES[environment.theme], ...brandOverride },\n statusAccents: ACCENTS[environment.theme],\n statusAccentFills: accentFill,\n },\n };\n validateDesignSystemProviderValue(value);\n return value;\n}\n"]}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAgB,CAAC","sourcesContent":["/** Package release shown by documentation surfaces. Kept in sync by a test. */\nexport const designSystemVersion = \"0.9.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAgB,CAAC","sourcesContent":["/** Package release shown by documentation surfaces. Kept in sync by a test. */\nexport const designSystemVersion = \"0.9.3\" as const;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Component maturity and evidence manifest
|
|
2
2
|
|
|
3
|
-
> Generated from `@hjmds/design-contracts` 0.9.
|
|
3
|
+
> Generated from `@hjmds/design-contracts` 0.9.3. Do not edit this file directly; run `pnpm contracts:sync`.
|
|
4
4
|
|
|
5
5
|
This document is the human-readable projection of the same catalog and Showcase manifest consumed by product CI.
|
|
6
6
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"designSystemVersion": "0.9.
|
|
3
|
+
"designSystemVersion": "0.9.3",
|
|
4
4
|
"source": "packages/design-contracts/docs/generated/showcase-manifest.json",
|
|
5
5
|
"surfaces": {
|
|
6
6
|
"web": {
|
|
7
7
|
"packageName": "@hjmds/react",
|
|
8
|
-
"packageVersion": "0.9.
|
|
8
|
+
"packageVersion": "0.9.3",
|
|
9
9
|
"activeComponents": 63,
|
|
10
10
|
"claimedComponents": 63,
|
|
11
11
|
"completeScenarioComponents": 33,
|
|
@@ -2918,7 +2918,7 @@
|
|
|
2918
2918
|
},
|
|
2919
2919
|
"native": {
|
|
2920
2920
|
"packageName": "@hjmds/react-native",
|
|
2921
|
-
"packageVersion": "0.9.
|
|
2921
|
+
"packageVersion": "0.9.3",
|
|
2922
2922
|
"activeComponents": 63,
|
|
2923
2923
|
"claimedComponents": 63,
|
|
2924
2924
|
"completeScenarioComponents": 34,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Renderer evidence coverage
|
|
2
2
|
|
|
3
|
-
> Generated for HJM 0.9.
|
|
3
|
+
> Generated for HJM 0.9.3. Do not edit directly; run `pnpm evidence:sync`.
|
|
4
4
|
|
|
5
5
|
This projection joins the canonical surface maturity manifest with first-party renderer claims. Missing scenarios are explicit beta promotion debt; stable surfaces are blocked by CI until none remain.
|
|
6
6
|
|
package/docs/showcase.md
CHANGED
|
@@ -72,21 +72,22 @@ CI에서 별도로 빌드·번들 검증하며, HJM 카탈로그의 story identi
|
|
|
72
72
|
- `pnpm evidence:sync`: first-party renderer claim과 required scenario를 결합한
|
|
73
73
|
`renderer-evidence.json`/`.md` 및 명시적 beta debt 갱신
|
|
74
74
|
- `pnpm evidence:check`: renderer projection이 source와 다르면 CI 실패
|
|
75
|
-
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
export 존재만으로 scenario를 claim할 수 없다.
|
|
75
|
+
- renderer의 `test/executed-scenarios.json`은 proof file, `all-cases`와 실행할 scenario/environment를
|
|
76
|
+
선언한다. 실제 test가 이 registry를 import해 case를 실행하며 package test 실패가 CI로 전파된다.
|
|
77
|
+
- `workspace:check`는 claim의 component/case/proof와 registry의 scenario를 결합한다.
|
|
78
|
+
non-default scenario도 이 registry와 실행되는 proof에 연결되어야 한다. registry 자체는
|
|
79
|
+
독립적인 실행 성공 영수증이 아니며 해당 source의 테스트 결과와 함께 읽는다.
|
|
81
80
|
- HJM Storybook: `surfaceStatus.web`으로 renderer/contract-only/unsupported 분류
|
|
82
|
-
- 제품 Storybook verifier:
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
81
|
+
- 제품 Storybook verifier: 설치한 `@hjmds/design-contracts/showcase`를 기준으로 실제 채택한
|
|
82
|
+
story와 scenario를 검증한다. 전체 inventory gate는 full-coverage 구현에만 적용한다.
|
|
83
|
+
- 제품 evidence artifact: 검증한 story ID·실제로 실행한 scenario·소비 버전/source를 기록한다.
|
|
84
|
+
- `pnpm governance:check`: canonical `ci:check`/`release:check` 연결, renderer test/생성 drift 검사,
|
|
85
|
+
registry 연결과 release verification step의 실패 전파·publish/tag 이전 순서를 검증한다.
|
|
86
|
+
|
|
87
|
+
현재 canonical tag는 **내부 package·Showcase 검사**를 기준으로 생성한다. 외부 소비 제품을
|
|
88
|
+
`repository_dispatch`하고 release SHA·consumer SHA·run/artifact를 결합해 기다리는 gate는
|
|
89
|
+
구현되어 있지 않다. 제품 CI/기기 QA는 별도 범위다. 현재 실행 계약과 향후 외부 gate 설계는
|
|
90
|
+
[릴리스 검증 계약](../../../docs/RELEASE_GOVERNANCE.md)을 따른다.
|
|
90
91
|
|
|
91
92
|
`compareShowcaseStoryIds`와 `assertShowcaseStoryIds`는 모든 Stable/Beta 컴포넌트를 제공하는
|
|
92
93
|
first-party/full-coverage Storybook의 inventory gate입니다. 부분 채택 소비 앱이나 개별 화면은
|