@hjmds/design-contracts 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,7 +32,7 @@ type AlertDialogCopy = Readonly<{
32
32
  */
33
33
  export type AlertDialogRequest = (AlertDialogCopy & Readonly<{
34
34
  mode: "alert";
35
- tone?: Extract<AlertDialogTone, "attention">;
35
+ tone?: Exclude<AlertDialogTone, "danger">;
36
36
  cancelLabel?: never;
37
37
  onConfirm?: never;
38
38
  fallbackErrorMessage?: never;
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog.d.ts","sourceRoot":"","sources":["../src/alert-dialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alert-dialog.d.ts","sourceRoot":"","sources":["../src/alert-dialog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog.js","sourceRoot":"","sources":["../src/alert-dialog.ts"],"names":[],"mappings":"AA+EA,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE;IACrD,cAAc,EAAE,KAAK;IACrB,mBAAmB,EAAE,WAAW;IAChC,gBAAgB,EAAE,KAAK;CAMvB,CAAC;AAEH,SAAS,UAAU,CAAC,KAAa,EAAE,KAAa;IAC9C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CAAC,eAAe,KAAK,oBAAoB,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAA2B;IACpE,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC/C,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,IAAI,KAAM,QAA4B,EAAE,CAAC;YACnD,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QACvE,CAAC;QACD,OAAO;IACT,CAAC;IACD,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,SAAS;QAAE,UAAU,CAAC,OAAO,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAAqB;IAErB,OAAO,2BAA2B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAgC,EAChC,IAAa;IAEb,IAAI,IAAI,IAAI,CAAC,2BAA2B,CAAC,gBAAgB;QAAE,OAAO,KAAK,CAAC;IACxE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,2BAA2B,CAAC,cAAc,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC;AAsBD,SAAS,qBAAqB,CAC5B,OAAyD,EACzD,KAAc;IAEd,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,OAAO,QAAQ,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,oBAAoB,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAA2B;IAE3B,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAEpC,IAAI,KAAK,GAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjD,IAAI,YAAkD,CAAC;IACvD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,EAAE;QACxD,YAAY,GAAG,OAAO,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,KAAK,MAAM,QAAQ,IAAI,SAAS;YAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,IAAsB,EAAE,EAAE;QAC5C,KAAK,GAAG,IAAI,CAAC;QACb,MAAM,EAAE,CAAC;IACX,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,IAAuB,EAAW,EAAE;QAClD,IAAI,OAAO;YAAE,OAAO,KAAK,CAAC;QAC1B,OAAO,GAAG,IAAI,CAAC;QACf,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,OAAO,GAAuB;QAClC,OAAO;QACP,MAAM;QACN,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK;QACxB,SAAS,CAAC,QAAQ;YAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,OAAO;YACX,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;YAEtE,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACnD,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;gBACpE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAK,KAA0B,CAAC,MAAM,KAAK,MAAM;oBAAE,OAAO,KAAK,CAAC;gBAChE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;gBACpE,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAK,KAA0B,CAAC,MAAM,KAAK,MAAM;oBAAE,OAAO,KAAK,CAAC;gBAChE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBAChF,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,MAAM,CAAC,MAAM;YACX,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1E,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;YACtE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC5E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,qBAAqB;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,YAAY;YACV,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;YACjC,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;QACD,SAAS;YACP,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC5C,MAAM,WAAW,GAAsB;gBACrC,OAAO,EAAE,WAAW;gBACpB,MAAM,EAAE,aAAa;aACtB,CAAC;YACF,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import type { AlertDialogTone } from \"./component-recipes.js\";\n\nexport type AlertDialogMode = \"alert\" | \"confirm\";\nexport type AlertDialogInitialFocus = \"cancel\" | \"confirm\";\nexport type AlertDialogAsyncState = \"idle\" | \"busy\" | \"error\";\nexport type AlertDialogConfirmAction = () => void | Promise<void>;\nexport type AlertDialogCancelReason =\n | \"cancel-action\"\n | \"escape\"\n | \"back\"\n | \"programmatic\"\n | \"interrupted\";\nexport type AlertDialogDismissReason =\n | Exclude<AlertDialogCancelReason, \"interrupted\">\n | \"outside\";\nexport type AlertDialogOpenChangeReason = \"trigger\" | \"confirm\" | AlertDialogCancelReason;\n\nexport type AlertDialogResult =\n | Readonly<{ outcome: \"confirmed\" }>\n | Readonly<{ outcome: \"cancelled\"; reason: AlertDialogCancelReason }>;\n\ntype AlertDialogAsyncAction =\n | Readonly<{\n onConfirm: AlertDialogConfirmAction;\n fallbackErrorMessage: string;\n resolveErrorMessage?: (error: unknown) => string;\n }>\n | Readonly<{\n onConfirm?: never;\n fallbackErrorMessage?: never;\n resolveErrorMessage?: never;\n }>;\n\ntype AlertDialogCopy = Readonly<{\n title: string;\n description: string;\n confirmLabel: string;\n}>;\n\n/**\n * Renderer-neutral copy and action contract. Products own localized copy;\n * renderers own modal isolation, focus, motion, and visual translation.\n */\nexport type AlertDialogRequest =\n | (AlertDialogCopy &\n Readonly<{\n mode: \"alert\";\n tone?: Extract<AlertDialogTone, \"attention\">;\n cancelLabel?: never;\n onConfirm?: never;\n fallbackErrorMessage?: never;\n resolveErrorMessage?: never;\n }>)\n | (AlertDialogCopy &\n Readonly<{\n mode: \"confirm\";\n tone?: AlertDialogTone;\n cancelLabel: string;\n }> &\n AlertDialogAsyncAction);\n\nexport type AlertDialogOpenState =\n | Readonly<{\n open: boolean;\n defaultOpen?: never;\n onOpenChange(\n open: boolean,\n detail: Readonly<{ reason: AlertDialogOpenChangeReason }>,\n ): void;\n }>\n | Readonly<{\n open?: never;\n defaultOpen?: boolean;\n onOpenChange?: (\n open: boolean,\n detail: Readonly<{ reason: AlertDialogOpenChangeReason }>,\n ) => void;\n }>;\n\nexport const alertDialogBehaviorDefaults = {\n initialFocus: { alert: \"confirm\", confirm: \"cancel\" },\n outsideDismiss: false,\n escapeOrBackOutcome: \"cancelled\",\n dismissWhileBusy: false,\n} as const satisfies Readonly<{\n initialFocus: Record<AlertDialogMode, AlertDialogInitialFocus>;\n outsideDismiss: false;\n escapeOrBackOutcome: \"cancelled\";\n dismissWhileBusy: false;\n}>;\n\nfunction assertCopy(value: string, field: string): void {\n if (value.trim().length === 0) {\n throw new TypeError(`AlertDialog ${field} must not be empty`);\n }\n}\n\nexport function validateAlertDialogRequest(request: AlertDialogRequest): void {\n assertCopy(request.title, \"title\");\n assertCopy(request.description, \"description\");\n assertCopy(request.confirmLabel, \"confirmLabel\");\n if (request.mode === \"alert\") {\n if (request.tone === (\"danger\" as AlertDialogTone)) {\n throw new TypeError(\"AlertDialog danger tone requires confirm mode\");\n }\n return;\n }\n assertCopy(request.cancelLabel, \"cancelLabel\");\n if (request.onConfirm) assertCopy(request.fallbackErrorMessage, \"fallbackErrorMessage\");\n}\n\nexport function getAlertDialogInitialFocus(\n mode: AlertDialogMode,\n): AlertDialogInitialFocus {\n return alertDialogBehaviorDefaults.initialFocus[mode];\n}\n\nexport function canDismissAlertDialog(\n reason: AlertDialogDismissReason,\n busy: boolean,\n): boolean {\n if (busy && !alertDialogBehaviorDefaults.dismissWhileBusy) return false;\n if (reason === \"outside\") return alertDialogBehaviorDefaults.outsideDismiss;\n return true;\n}\n\nexport type AlertDialogPhase =\n | Readonly<{ status: \"idle\" }>\n | Readonly<{ status: \"busy\" }>\n | Readonly<{ status: \"error\"; message: string }>\n | Readonly<{ status: \"closing\"; result: AlertDialogResult }>\n | Readonly<{ status: \"closed\"; result: AlertDialogResult }>;\n\nexport type AlertDialogSession = Readonly<{\n request: AlertDialogRequest;\n result: Promise<AlertDialogResult>;\n getSnapshot(): AlertDialogPhase;\n subscribe(listener: () => void): () => void;\n /** Returns true only for the attempt that moved the session toward closing. */\n confirm(): Promise<boolean>;\n cancel(reason: Exclude<AlertDialogCancelReason, \"interrupted\">): boolean;\n attemptOutsideDismiss(): false;\n completeExit(): boolean;\n interrupt(): boolean;\n}>;\n\nfunction resolveFailureMessage(\n request: Extract<AlertDialogRequest, { mode: \"confirm\" }>,\n error: unknown,\n): string {\n if (!request.onConfirm) return \"\";\n try {\n const resolved = request.resolveErrorMessage?.(error).trim();\n return resolved || request.fallbackErrorMessage;\n } catch {\n return request.fallbackErrorMessage;\n }\n}\n\n/**\n * Owns a complete AlertDialog lifecycle, including side-effect de-duplication\n * and settling only after the renderer reports that exit motion completed.\n */\nexport function createAlertDialogSession(\n request: AlertDialogRequest,\n): AlertDialogSession {\n validateAlertDialogRequest(request);\n\n let phase: AlertDialogPhase = { status: \"idle\" };\n let settleResult!: (result: AlertDialogResult) => void;\n let settled = false;\n const listeners = new Set<() => void>();\n const result = new Promise<AlertDialogResult>((resolve) => {\n settleResult = resolve;\n });\n\n const notify = () => {\n for (const listener of listeners) listener();\n };\n const transition = (next: AlertDialogPhase) => {\n phase = next;\n notify();\n };\n const settle = (next: AlertDialogResult): boolean => {\n if (settled) return false;\n settled = true;\n settleResult(next);\n return true;\n };\n\n const session: AlertDialogSession = {\n request,\n result,\n getSnapshot: () => phase,\n subscribe(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n async confirm() {\n if (phase.status !== \"idle\" && phase.status !== \"error\") return false;\n\n if (request.mode === \"alert\" || !request.onConfirm) {\n transition({ status: \"closing\", result: { outcome: \"confirmed\" } });\n return true;\n }\n\n transition({ status: \"busy\" });\n try {\n await request.onConfirm();\n if ((phase as AlertDialogPhase).status !== \"busy\") return false;\n transition({ status: \"closing\", result: { outcome: \"confirmed\" } });\n return true;\n } catch (error) {\n if ((phase as AlertDialogPhase).status !== \"busy\") return false;\n transition({ status: \"error\", message: resolveFailureMessage(request, error) });\n return false;\n }\n },\n cancel(reason) {\n if (!canDismissAlertDialog(reason, phase.status === \"busy\")) return false;\n if (phase.status !== \"idle\" && phase.status !== \"error\") return false;\n transition({ status: \"closing\", result: { outcome: \"cancelled\", reason } });\n return true;\n },\n attemptOutsideDismiss() {\n return false;\n },\n completeExit() {\n if (phase.status !== \"closing\") return false;\n const finalResult = phase.result;\n transition({ status: \"closed\", result: finalResult });\n return settle(finalResult);\n },\n interrupt() {\n if (phase.status === \"closed\") return false;\n const interrupted: AlertDialogResult = {\n outcome: \"cancelled\",\n reason: \"interrupted\",\n };\n transition({ status: \"closed\", result: interrupted });\n return settle(interrupted);\n },\n };\n\n return session;\n}\n"]}
1
+ {"version":3,"file":"alert-dialog.js","sourceRoot":"","sources":["../src/alert-dialog.ts"],"names":[],"mappings":"AAiFA,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE;IACrD,cAAc,EAAE,KAAK;IACrB,mBAAmB,EAAE,WAAW;IAChC,gBAAgB,EAAE,KAAK;CAMvB,CAAC;AAEH,SAAS,UAAU,CAAC,KAAa,EAAE,KAAa;IAC9C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CAAC,eAAe,KAAK,oBAAoB,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAA2B;IACpE,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC/C,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,IAAI,KAAM,QAA4B,EAAE,CAAC;YACnD,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QACvE,CAAC;QACD,OAAO;IACT,CAAC;IACD,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,SAAS;QAAE,UAAU,CAAC,OAAO,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAAqB;IAErB,OAAO,2BAA2B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAgC,EAChC,IAAa;IAEb,IAAI,IAAI,IAAI,CAAC,2BAA2B,CAAC,gBAAgB;QAAE,OAAO,KAAK,CAAC;IACxE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,2BAA2B,CAAC,cAAc,CAAC;IAC5E,OAAO,IAAI,CAAC;AACd,CAAC;AAsBD,SAAS,qBAAqB,CAC5B,OAAyD,EACzD,KAAc;IAEd,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,OAAO,QAAQ,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,oBAAoB,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAA2B;IAE3B,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAEpC,IAAI,KAAK,GAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjD,IAAI,YAAkD,CAAC;IACvD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,EAAE;QACxD,YAAY,GAAG,OAAO,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,KAAK,MAAM,QAAQ,IAAI,SAAS;YAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,IAAsB,EAAE,EAAE;QAC5C,KAAK,GAAG,IAAI,CAAC;QACb,MAAM,EAAE,CAAC;IACX,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,IAAuB,EAAW,EAAE;QAClD,IAAI,OAAO;YAAE,OAAO,KAAK,CAAC;QAC1B,OAAO,GAAG,IAAI,CAAC;QACf,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,OAAO,GAAuB;QAClC,OAAO;QACP,MAAM;QACN,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK;QACxB,SAAS,CAAC,QAAQ;YAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,OAAO;YACX,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;YAEtE,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACnD,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;gBACpE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAK,KAA0B,CAAC,MAAM,KAAK,MAAM;oBAAE,OAAO,KAAK,CAAC;gBAChE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;gBACpE,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAK,KAA0B,CAAC,MAAM,KAAK,MAAM;oBAAE,OAAO,KAAK,CAAC;gBAChE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBAChF,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,MAAM,CAAC,MAAM;YACX,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1E,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;YACtE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC5E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,qBAAqB;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,YAAY;YACV,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;YACjC,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;QACD,SAAS;YACP,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC5C,MAAM,WAAW,GAAsB;gBACrC,OAAO,EAAE,WAAW;gBACpB,MAAM,EAAE,aAAa;aACtB,CAAC;YACF,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import type { AlertDialogTone } from \"./component-recipes.js\";\n\nexport type AlertDialogMode = \"alert\" | \"confirm\";\nexport type AlertDialogInitialFocus = \"cancel\" | \"confirm\";\nexport type AlertDialogAsyncState = \"idle\" | \"busy\" | \"error\";\nexport type AlertDialogConfirmAction = () => void | Promise<void>;\nexport type AlertDialogCancelReason =\n | \"cancel-action\"\n | \"escape\"\n | \"back\"\n | \"programmatic\"\n | \"interrupted\";\nexport type AlertDialogDismissReason =\n | Exclude<AlertDialogCancelReason, \"interrupted\">\n | \"outside\";\nexport type AlertDialogOpenChangeReason = \"trigger\" | \"confirm\" | AlertDialogCancelReason;\n\nexport type AlertDialogResult =\n | Readonly<{ outcome: \"confirmed\" }>\n | Readonly<{ outcome: \"cancelled\"; reason: AlertDialogCancelReason }>;\n\ntype AlertDialogAsyncAction =\n | Readonly<{\n onConfirm: AlertDialogConfirmAction;\n fallbackErrorMessage: string;\n resolveErrorMessage?: (error: unknown) => string;\n }>\n | Readonly<{\n onConfirm?: never;\n fallbackErrorMessage?: never;\n resolveErrorMessage?: never;\n }>;\n\ntype AlertDialogCopy = Readonly<{\n title: string;\n description: string;\n confirmLabel: string;\n}>;\n\n/**\n * Renderer-neutral copy and action contract. Products own localized copy;\n * renderers own modal isolation, focus, motion, and visual translation.\n */\nexport type AlertDialogRequest =\n | (AlertDialogCopy &\n Readonly<{\n mode: \"alert\";\n // Every tone except `danger` can announce without a choice. A danger\n // dialog with no cancel would let a destructive act through on one key.\n tone?: Exclude<AlertDialogTone, \"danger\">;\n cancelLabel?: never;\n onConfirm?: never;\n fallbackErrorMessage?: never;\n resolveErrorMessage?: never;\n }>)\n | (AlertDialogCopy &\n Readonly<{\n mode: \"confirm\";\n tone?: AlertDialogTone;\n cancelLabel: string;\n }> &\n AlertDialogAsyncAction);\n\nexport type AlertDialogOpenState =\n | Readonly<{\n open: boolean;\n defaultOpen?: never;\n onOpenChange(\n open: boolean,\n detail: Readonly<{ reason: AlertDialogOpenChangeReason }>,\n ): void;\n }>\n | Readonly<{\n open?: never;\n defaultOpen?: boolean;\n onOpenChange?: (\n open: boolean,\n detail: Readonly<{ reason: AlertDialogOpenChangeReason }>,\n ) => void;\n }>;\n\nexport const alertDialogBehaviorDefaults = {\n initialFocus: { alert: \"confirm\", confirm: \"cancel\" },\n outsideDismiss: false,\n escapeOrBackOutcome: \"cancelled\",\n dismissWhileBusy: false,\n} as const satisfies Readonly<{\n initialFocus: Record<AlertDialogMode, AlertDialogInitialFocus>;\n outsideDismiss: false;\n escapeOrBackOutcome: \"cancelled\";\n dismissWhileBusy: false;\n}>;\n\nfunction assertCopy(value: string, field: string): void {\n if (value.trim().length === 0) {\n throw new TypeError(`AlertDialog ${field} must not be empty`);\n }\n}\n\nexport function validateAlertDialogRequest(request: AlertDialogRequest): void {\n assertCopy(request.title, \"title\");\n assertCopy(request.description, \"description\");\n assertCopy(request.confirmLabel, \"confirmLabel\");\n if (request.mode === \"alert\") {\n if (request.tone === (\"danger\" as AlertDialogTone)) {\n throw new TypeError(\"AlertDialog danger tone requires confirm mode\");\n }\n return;\n }\n assertCopy(request.cancelLabel, \"cancelLabel\");\n if (request.onConfirm) assertCopy(request.fallbackErrorMessage, \"fallbackErrorMessage\");\n}\n\nexport function getAlertDialogInitialFocus(\n mode: AlertDialogMode,\n): AlertDialogInitialFocus {\n return alertDialogBehaviorDefaults.initialFocus[mode];\n}\n\nexport function canDismissAlertDialog(\n reason: AlertDialogDismissReason,\n busy: boolean,\n): boolean {\n if (busy && !alertDialogBehaviorDefaults.dismissWhileBusy) return false;\n if (reason === \"outside\") return alertDialogBehaviorDefaults.outsideDismiss;\n return true;\n}\n\nexport type AlertDialogPhase =\n | Readonly<{ status: \"idle\" }>\n | Readonly<{ status: \"busy\" }>\n | Readonly<{ status: \"error\"; message: string }>\n | Readonly<{ status: \"closing\"; result: AlertDialogResult }>\n | Readonly<{ status: \"closed\"; result: AlertDialogResult }>;\n\nexport type AlertDialogSession = Readonly<{\n request: AlertDialogRequest;\n result: Promise<AlertDialogResult>;\n getSnapshot(): AlertDialogPhase;\n subscribe(listener: () => void): () => void;\n /** Returns true only for the attempt that moved the session toward closing. */\n confirm(): Promise<boolean>;\n cancel(reason: Exclude<AlertDialogCancelReason, \"interrupted\">): boolean;\n attemptOutsideDismiss(): false;\n completeExit(): boolean;\n interrupt(): boolean;\n}>;\n\nfunction resolveFailureMessage(\n request: Extract<AlertDialogRequest, { mode: \"confirm\" }>,\n error: unknown,\n): string {\n if (!request.onConfirm) return \"\";\n try {\n const resolved = request.resolveErrorMessage?.(error).trim();\n return resolved || request.fallbackErrorMessage;\n } catch {\n return request.fallbackErrorMessage;\n }\n}\n\n/**\n * Owns a complete AlertDialog lifecycle, including side-effect de-duplication\n * and settling only after the renderer reports that exit motion completed.\n */\nexport function createAlertDialogSession(\n request: AlertDialogRequest,\n): AlertDialogSession {\n validateAlertDialogRequest(request);\n\n let phase: AlertDialogPhase = { status: \"idle\" };\n let settleResult!: (result: AlertDialogResult) => void;\n let settled = false;\n const listeners = new Set<() => void>();\n const result = new Promise<AlertDialogResult>((resolve) => {\n settleResult = resolve;\n });\n\n const notify = () => {\n for (const listener of listeners) listener();\n };\n const transition = (next: AlertDialogPhase) => {\n phase = next;\n notify();\n };\n const settle = (next: AlertDialogResult): boolean => {\n if (settled) return false;\n settled = true;\n settleResult(next);\n return true;\n };\n\n const session: AlertDialogSession = {\n request,\n result,\n getSnapshot: () => phase,\n subscribe(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n async confirm() {\n if (phase.status !== \"idle\" && phase.status !== \"error\") return false;\n\n if (request.mode === \"alert\" || !request.onConfirm) {\n transition({ status: \"closing\", result: { outcome: \"confirmed\" } });\n return true;\n }\n\n transition({ status: \"busy\" });\n try {\n await request.onConfirm();\n if ((phase as AlertDialogPhase).status !== \"busy\") return false;\n transition({ status: \"closing\", result: { outcome: \"confirmed\" } });\n return true;\n } catch (error) {\n if ((phase as AlertDialogPhase).status !== \"busy\") return false;\n transition({ status: \"error\", message: resolveFailureMessage(request, error) });\n return false;\n }\n },\n cancel(reason) {\n if (!canDismissAlertDialog(reason, phase.status === \"busy\")) return false;\n if (phase.status !== \"idle\" && phase.status !== \"error\") return false;\n transition({ status: \"closing\", result: { outcome: \"cancelled\", reason } });\n return true;\n },\n attemptOutsideDismiss() {\n return false;\n },\n completeExit() {\n if (phase.status !== \"closing\") return false;\n const finalResult = phase.result;\n transition({ status: \"closed\", result: finalResult });\n return settle(finalResult);\n },\n interrupt() {\n if (phase.status === \"closed\") return false;\n const interrupted: AlertDialogResult = {\n outcome: \"cancelled\",\n reason: \"interrupted\",\n };\n transition({ status: \"closed\", result: interrupted });\n return settle(interrupted);\n },\n };\n\n return session;\n}\n"]}
package/dist/catalog.d.ts CHANGED
@@ -1418,6 +1418,50 @@ export declare const recipeRegistry: {
1418
1418
  alpha?: number;
1419
1419
  }>;
1420
1420
  };
1421
+ readonly info: {
1422
+ readonly icon: Readonly<{
1423
+ source: "accent";
1424
+ key: "info";
1425
+ alpha?: number;
1426
+ }>;
1427
+ readonly iconBackground: Readonly<{
1428
+ source: "accent";
1429
+ key: "info";
1430
+ alpha?: number;
1431
+ }>;
1432
+ readonly confirm: Readonly<{
1433
+ source: "theme";
1434
+ key: "primary";
1435
+ alpha?: number;
1436
+ }>;
1437
+ readonly confirmContent: Readonly<{
1438
+ source: "theme";
1439
+ key: "onPrimary";
1440
+ alpha?: number;
1441
+ }>;
1442
+ };
1443
+ readonly success: {
1444
+ readonly icon: Readonly<{
1445
+ source: "accent";
1446
+ key: "success";
1447
+ alpha?: number;
1448
+ }>;
1449
+ readonly iconBackground: Readonly<{
1450
+ source: "accent";
1451
+ key: "success";
1452
+ alpha?: number;
1453
+ }>;
1454
+ readonly confirm: Readonly<{
1455
+ source: "theme";
1456
+ key: "primary";
1457
+ alpha?: number;
1458
+ }>;
1459
+ readonly confirmContent: Readonly<{
1460
+ source: "theme";
1461
+ key: "onPrimary";
1462
+ alpha?: number;
1463
+ }>;
1464
+ };
1421
1465
  };
1422
1466
  readonly icon: {
1423
1467
  readonly containerSize: 44;
@@ -1 +1 @@
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"}
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"}
@@ -3060,7 +3060,18 @@ export declare const dialogRecipe: {
3060
3060
  };
3061
3061
  };
3062
3062
  };
3063
- export type AlertDialogTone = "attention" | "danger";
3063
+ /**
3064
+ * Tone is the dialog's reason for interrupting, not its decoration.
3065
+ *
3066
+ * `attention` and `danger` covered "are you sure?" and "this destroys
3067
+ * something", but consumers also stop the user to *explain* an action before
3068
+ * running it — an intro before a button that copies content into the account,
3069
+ * or a confirmation that something finished. Those were shipping with the
3070
+ * attention mark, so a neutral explanation read as a warning (reported by a
3071
+ * product team on 2026-09-15). `info` and `success` carry the existing feedback
3072
+ * accents so the axis stays one token lookup per renderer.
3073
+ */
3074
+ export type AlertDialogTone = "attention" | "danger" | "info" | "success";
3064
3075
  export declare const alertDialogRecipe: {
3065
3076
  readonly slots: readonly ["backdrop", "positioner", "content", "icon", "title", "description", "status", "error", "actions", "cancel", "confirm"];
3066
3077
  readonly defaults: {
@@ -3151,6 +3162,50 @@ export declare const alertDialogRecipe: {
3151
3162
  alpha?: number;
3152
3163
  }>;
3153
3164
  };
3165
+ readonly info: {
3166
+ readonly icon: Readonly<{
3167
+ source: "accent";
3168
+ key: "info";
3169
+ alpha?: number;
3170
+ }>;
3171
+ readonly iconBackground: Readonly<{
3172
+ source: "accent";
3173
+ key: "info";
3174
+ alpha?: number;
3175
+ }>;
3176
+ readonly confirm: Readonly<{
3177
+ source: "theme";
3178
+ key: "primary";
3179
+ alpha?: number;
3180
+ }>;
3181
+ readonly confirmContent: Readonly<{
3182
+ source: "theme";
3183
+ key: "onPrimary";
3184
+ alpha?: number;
3185
+ }>;
3186
+ };
3187
+ readonly success: {
3188
+ readonly icon: Readonly<{
3189
+ source: "accent";
3190
+ key: "success";
3191
+ alpha?: number;
3192
+ }>;
3193
+ readonly iconBackground: Readonly<{
3194
+ source: "accent";
3195
+ key: "success";
3196
+ alpha?: number;
3197
+ }>;
3198
+ readonly confirm: Readonly<{
3199
+ source: "theme";
3200
+ key: "primary";
3201
+ alpha?: number;
3202
+ }>;
3203
+ readonly confirmContent: Readonly<{
3204
+ source: "theme";
3205
+ key: "onPrimary";
3206
+ alpha?: number;
3207
+ }>;
3208
+ };
3154
3209
  };
3155
3210
  readonly icon: {
3156
3211
  readonly containerSize: 44;
@@ -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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"}
@@ -1308,6 +1308,20 @@ export const alertDialogRecipe = {
1308
1308
  confirm: semanticColors.action.danger.background,
1309
1309
  confirmContent: semanticColors.action.danger.content,
1310
1310
  },
1311
+ // Explanation and completion keep the brand confirm button: the action they
1312
+ // introduce is the ordinary one, only the mark and its wash change.
1313
+ info: {
1314
+ icon: semanticColors.feedback.info.foreground,
1315
+ iconBackground: semanticColors.feedback.info.background,
1316
+ confirm: semanticColors.action.brand.background,
1317
+ confirmContent: semanticColors.action.brand.content,
1318
+ },
1319
+ success: {
1320
+ icon: semanticColors.feedback.success.foreground,
1321
+ iconBackground: semanticColors.feedback.success.background,
1322
+ confirm: semanticColors.action.brand.background,
1323
+ confirmContent: semanticColors.action.brand.content,
1324
+ },
1311
1325
  },
1312
1326
  icon: { containerSize: control.minTouchTarget, glyph: "md", radius: "full" },
1313
1327
  title: {
@@ -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 largeTextThreshold,\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 minWidth: null,\n },\n /** 그 자체가 동작이므로 두 축 모두 최소 터치 타깃. 높이만 잡으면 짧은 라벨이 좁아진다. */\n standalone: {\n textVariant: \"body\",\n fontWeight: fontWeight.bold,\n underline: \"hover\",\n minHeight: control.minTouchTarget,\n minWidth: 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 minWidth: 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/** Frame geometry the ListRow paints around its leading slot. */\nexport type ListRowLeadingShape = \"square\" | \"circle\";\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 /**\n * Frame geometry for the leading slot. The size was already declared here but\n * no renderer bound it, so every consumer re-derived the avatar box (radius,\n * clipping, centering) in product styles.\n */\n leadingShapes: { square: null, circle: \"full\" },\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 satisfies {\n slots: readonly string[];\n defaults: { density: ListRowDensity; selected: boolean };\n density: Record<ListRowDensity, {\n oneLineMinHeight: number;\n twoLineMinHeight: number;\n paddingHorizontal: number;\n paddingVertical: number;\n }>;\n gap: number;\n leadingSize: number;\n leadingShapes: Record<ListRowLeadingShape, keyof typeof radius | null>;\n title: unknown;\n description: unknown;\n trailing: unknown;\n states: unknown;\n};\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: largeTextThreshold,\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 // The off state is two unsaturated planes — a `surfaceAlt` track holding a `bg`\n // thumb — so on a dark palette both collapse into the card behind them: measured\n // 1.10:1 track-to-surface and 1.20:1 thumb-to-track on the canonical dark theme,\n // where the thumb is actually *darker* than its own track. The `*OffBorder`\n // hairlines are what keep the shape readable, so they are part of the contract\n // rather than a renderer flourish. A consumer settings screen shipped with the web\n // renderer ignoring them and the control was invisible (2026-09-14); the web\n // stylesheet now paints them and `action-contrast.browser.test.tsx` holds the line.\n trackOff: semanticColors.surface.sunken,\n trackOffBorder: semanticColors.content.secondary,\n // A lit track is a filled brand plate, same role as a checked checkbox\n // (`selectionControlRecipe.states.checkedBackground`). Was `content.brand`, a\n // content role; both renderers painted `primary` anyway, so this is a no-op.\n trackOn: semanticColors.action.brand.background,\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.action.brand.background, alpha: 0.38 },\n trackOnBorderDisabled: { ...semanticColors.action.brand.background, 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 // animated는 0.9.12까지 false였다. 정지한 블록은 로딩이 아니라 깨진 화면으로\n // 읽힌다. 전환 근거와 소비 측 migration은\n // .changeset/skeleton-pulse-by-default.md에 있다.\n defaults: { shape: \"block\", animated: true },\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,\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 largeTextThreshold,\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 minWidth: null,\n },\n /** 그 자체가 동작이므로 두 축 모두 최소 터치 타깃. 높이만 잡으면 짧은 라벨이 좁아진다. */\n standalone: {\n textVariant: \"body\",\n fontWeight: fontWeight.bold,\n underline: \"hover\",\n minHeight: control.minTouchTarget,\n minWidth: 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 minWidth: 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/** Frame geometry the ListRow paints around its leading slot. */\nexport type ListRowLeadingShape = \"square\" | \"circle\";\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 /**\n * Frame geometry for the leading slot. The size was already declared here but\n * no renderer bound it, so every consumer re-derived the avatar box (radius,\n * clipping, centering) in product styles.\n */\n leadingShapes: { square: null, circle: \"full\" },\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 satisfies {\n slots: readonly string[];\n defaults: { density: ListRowDensity; selected: boolean };\n density: Record<ListRowDensity, {\n oneLineMinHeight: number;\n twoLineMinHeight: number;\n paddingHorizontal: number;\n paddingVertical: number;\n }>;\n gap: number;\n leadingSize: number;\n leadingShapes: Record<ListRowLeadingShape, keyof typeof radius | null>;\n title: unknown;\n description: unknown;\n trailing: unknown;\n states: unknown;\n};\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: largeTextThreshold,\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 // The off state is two unsaturated planes — a `surfaceAlt` track holding a `bg`\n // thumb — so on a dark palette both collapse into the card behind them: measured\n // 1.10:1 track-to-surface and 1.20:1 thumb-to-track on the canonical dark theme,\n // where the thumb is actually *darker* than its own track. The `*OffBorder`\n // hairlines are what keep the shape readable, so they are part of the contract\n // rather than a renderer flourish. A consumer settings screen shipped with the web\n // renderer ignoring them and the control was invisible (2026-09-14); the web\n // stylesheet now paints them and `action-contrast.browser.test.tsx` holds the line.\n trackOff: semanticColors.surface.sunken,\n trackOffBorder: semanticColors.content.secondary,\n // A lit track is a filled brand plate, same role as a checked checkbox\n // (`selectionControlRecipe.states.checkedBackground`). Was `content.brand`, a\n // content role; both renderers painted `primary` anyway, so this is a no-op.\n trackOn: semanticColors.action.brand.background,\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.action.brand.background, alpha: 0.38 },\n trackOnBorderDisabled: { ...semanticColors.action.brand.background, 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 // animated는 0.9.12까지 false였다. 정지한 블록은 로딩이 아니라 깨진 화면으로\n // 읽힌다. 전환 근거와 소비 측 migration은\n // .changeset/skeleton-pulse-by-default.md에 있다.\n defaults: { shape: \"block\", animated: true },\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\n/**\n * Tone is the dialog's reason for interrupting, not its decoration.\n *\n * `attention` and `danger` covered \"are you sure?\" and \"this destroys\n * something\", but consumers also stop the user to *explain* an action before\n * running it — an intro before a button that copies content into the account,\n * or a confirmation that something finished. Those were shipping with the\n * attention mark, so a neutral explanation read as a warning (reported by a\n * product team on 2026-09-15). `info` and `success` carry the existing feedback\n * accents so the axis stays one token lookup per renderer.\n */\nexport type AlertDialogTone = \"attention\" | \"danger\" | \"info\" | \"success\";\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 // Explanation and completion keep the brand confirm button: the action they\n // introduce is the ordinary one, only the mark and its wash change.\n info: {\n icon: semanticColors.feedback.info.foreground,\n iconBackground: semanticColors.feedback.info.background,\n confirm: semanticColors.action.brand.background,\n confirmContent: semanticColors.action.brand.content,\n },\n success: {\n icon: semanticColors.feedback.success.foreground,\n iconBackground: semanticColors.feedback.success.background,\n confirm: semanticColors.action.brand.background,\n confirmContent: semanticColors.action.brand.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,\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"]}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Package release shown by documentation surfaces. Kept in sync by a test. */
2
- export declare const designSystemVersion: "1.1.0";
2
+ export declare const designSystemVersion: "1.1.1";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Package release shown by documentation surfaces. Kept in sync by a test. */
2
- export const designSystemVersion = "1.1.0";
2
+ export const designSystemVersion = "1.1.1";
3
3
  //# sourceMappingURL=version.js.map
@@ -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 = \"1.1.0\" as const;\n"]}
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 = \"1.1.1\" as const;\n"]}
@@ -160,6 +160,16 @@ idle ─ confirm ─→ busy ─ success ─→ closing ─ exit complete ─→
160
160
  - 결과 Promise는 action 시점이 아니라 실제 exit 완료 시 한 번만 끝납니다.
161
161
  - provider unmount나 route 교체는 `interrupted` 결과로 정산해 pending Promise를 남기지 않습니다.
162
162
  - confirm 모드는 cancel, 확인만 있는 alert 모드는 confirm에 초기 포커스를 둡니다.
163
+ - `tone`은 장식이 아니라 **끼어든 이유**입니다. `attention`(정말 할까요) · `danger`(되돌릴 수
164
+ 없음) 외에 `info`(실행 전 설명) · `success`(끝났음 보고)를 둡니다. 소비 제품이 설명용 대화에
165
+ attention 표식을 쓰면 평범한 안내가 경고로 읽힙니다(2026-09-15 제품 보고). 표식 색과 배경만
166
+ 해당 feedback accent를 따르고 확인 버튼은 brand 그대로이며, 확인 버튼까지 바꾸는 톤은
167
+ `danger` 하나입니다. `danger`만 confirm 모드를 강제합니다 — 취소 없는 파괴적 확인은 한 번의
168
+ 키 입력으로 통과합니다.
169
+ - 두 renderer의 번역이 다릅니다. Web은 제품이 넘긴 표식을 tone 색으로 칠하지만 **Native에는
170
+ 표식 슬롯이 없어** tone이 확인 버튼 색으로만 도달합니다. 따라서 native에서 `attention` ·
171
+ `info` · `success`는 같아 보이고 `danger`만 달라집니다. native에 표식을 두는 것은 별도
172
+ 컴포넌트 변경이며, 그 전까지 제품은 tone을 "웹에서만 보이는 구분"으로 기대해야 합니다.
163
173
  - Web은 modal isolation·Tab trap·trigger focus restore를, Native는 custom Modal·back 처리·초기
164
174
  accessibility focus·live error를 renderer에서 보장합니다.
165
175
 
@@ -1,6 +1,6 @@
1
1
  # Component maturity and evidence manifest
2
2
 
3
- > Generated from `@hjmds/design-contracts` 1.1.0. Do not edit this file directly; run `pnpm contracts:sync`.
3
+ > Generated from `@hjmds/design-contracts` 1.1.1. 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": "1.1.0",
3
+ "designSystemVersion": "1.1.1",
4
4
  "source": "packages/design-contracts/docs/generated/showcase-manifest.json",
5
5
  "surfaces": {
6
6
  "web": {
7
7
  "packageName": "@hjmds/react",
8
- "packageVersion": "1.1.0",
8
+ "packageVersion": "1.1.1",
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": "1.1.0",
2921
+ "packageVersion": "1.1.1",
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 1.1.0. Do not edit directly; run `pnpm evidence:sync`.
3
+ > Generated for HJM 1.1.1. 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
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "designSystemVersion": "1.1.0",
3
+ "designSystemVersion": "1.1.1",
4
4
  "packageName": "@hjmds/design-contracts",
5
5
  "components": [
6
6
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hjmds/design-contracts",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Renderer-neutral design contracts, tokens, recipes, and behaviors shared by HJM products.",
5
5
  "license": "MIT",
6
6
  "repository": {