@hjmds/design-contracts 1.17.2 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/activity-chip.d.ts +127 -0
  2. package/dist/activity-chip.d.ts.map +1 -0
  3. package/dist/activity-chip.js +65 -0
  4. package/dist/activity-chip.js.map +1 -0
  5. package/dist/base-recipes.d.ts +1 -1
  6. package/dist/base-recipes.d.ts.map +1 -1
  7. package/dist/base-recipes.js +2 -1
  8. package/dist/base-recipes.js.map +1 -1
  9. package/dist/behaviors.d.ts +2 -0
  10. package/dist/behaviors.d.ts.map +1 -1
  11. package/dist/behaviors.js +1 -0
  12. package/dist/behaviors.js.map +1 -1
  13. package/dist/bottom-navigation.d.ts +12 -0
  14. package/dist/bottom-navigation.d.ts.map +1 -1
  15. package/dist/bottom-navigation.js +7 -0
  16. package/dist/bottom-navigation.js.map +1 -1
  17. package/dist/card.d.ts +4 -0
  18. package/dist/card.d.ts.map +1 -1
  19. package/dist/card.js +4 -1
  20. package/dist/card.js.map +1 -1
  21. package/dist/catalog.d.ts +38 -9
  22. package/dist/catalog.d.ts.map +1 -1
  23. package/dist/component-recipes.d.ts +32 -3
  24. package/dist/component-recipes.d.ts.map +1 -1
  25. package/dist/component-recipes.js +24 -5
  26. package/dist/component-recipes.js.map +1 -1
  27. package/dist/content-transition.d.ts +1 -1
  28. package/dist/content-transition.d.ts.map +1 -1
  29. package/dist/content-transition.js +2 -2
  30. package/dist/content-transition.js.map +1 -1
  31. package/dist/icon-button-recipe.d.ts +1 -5
  32. package/dist/icon-button-recipe.d.ts.map +1 -1
  33. package/dist/icon-button-recipe.js +2 -1
  34. package/dist/icon-button-recipe.js.map +1 -1
  35. package/dist/index.d.ts +3 -2
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/screen-patterns.d.ts +6 -0
  40. package/dist/screen-patterns.d.ts.map +1 -1
  41. package/dist/screen-patterns.js +5 -0
  42. package/dist/screen-patterns.js.map +1 -1
  43. package/dist/toast-liquid.d.ts +1 -1
  44. package/dist/toast-liquid.d.ts.map +1 -1
  45. package/dist/toast-liquid.js +3 -2
  46. package/dist/toast-liquid.js.map +1 -1
  47. package/dist/toast.d.ts +19 -1
  48. package/dist/toast.d.ts.map +1 -1
  49. package/dist/toast.js +16 -1
  50. package/dist/toast.js.map +1 -1
  51. package/dist/version.d.ts +1 -1
  52. package/dist/version.js +1 -1
  53. package/dist/version.js.map +1 -1
  54. package/docs/activity-chip.md +34 -0
  55. package/docs/bottom-navigation.md +5 -1
  56. package/docs/generated/component-maturity.md +1 -1
  57. package/docs/generated/renderer-evidence.json +3 -3
  58. package/docs/generated/renderer-evidence.md +1 -1
  59. package/docs/generated/showcase-manifest.json +1 -1
  60. package/docs/toast.md +23 -0
  61. package/docs/usage/README.md +2 -0
  62. package/docs/usage/components/activity-chip.md +109 -0
  63. package/docs/usage/components/bottom-navigation.md +2 -1
  64. package/docs/usage/components/button.md +4 -1
  65. package/docs/usage/components/card.md +27 -6
  66. package/docs/usage/components/chat-message.md +4 -0
  67. package/docs/usage/components/content-transition.md +1 -0
  68. package/docs/usage/components/icon-button.md +3 -0
  69. package/docs/usage/components/settings-screen.md +7 -7
  70. package/docs/usage/components/text-area.md +3 -0
  71. package/docs/usage/components/toast.md +26 -8
  72. package/docs/usage/compositions/activity-status.md +162 -0
  73. package/package.json +7 -1
@@ -0,0 +1,127 @@
1
+ import type { ColorReference } from "./color-references.js";
2
+ import { radius, type FontWeightValue, type TextVariant } from "./foundations.js";
3
+ /**
4
+ * ActivityChip — a compact pressable status for one running background task (a review, an upload,
5
+ * a sync). It shows a small decorative media and a short label in an otherwise empty header slot,
6
+ * and opens the matching panel toast for details (composition `activity-status`).
7
+ *
8
+ * Why a new component (2026-10-10, BurnTok "똑쟁이" request): `Chip` is a selection/action control
9
+ * with pressed/checked semantics; a status that toggles a details panel is a disclosure trigger with
10
+ * `aria-expanded`, so reusing Chip would announce the wrong role. The name differs because Chip exists.
11
+ * The task state, its copy and the panel content stay product-owned; HJM owns the trigger shape,
12
+ * disclosure semantics and the panel (Toast) lifecycle.
13
+ */
14
+ export type ActivityChipEmphasis = "default" | "emphasis";
15
+ export type ActivityChipDescriptor = Readonly<{
16
+ /** Short visible status, for example "다듬는 중". */
17
+ label: string;
18
+ /** Full spoken status; defaults to `label`. */
19
+ accessibilityLabel?: string;
20
+ /** `emphasis` marks a result that waits for the user (e.g. a ready version to apply). */
21
+ emphasis?: ActivityChipEmphasis;
22
+ /** Whether the details panel it controls is open. */
23
+ expanded?: boolean;
24
+ }>;
25
+ export type ResolvedActivityChipDescriptor = Readonly<{
26
+ label: string;
27
+ accessibilityLabel: string;
28
+ emphasis: ActivityChipEmphasis;
29
+ expanded: boolean;
30
+ }>;
31
+ export declare const activityChipDefaults: {
32
+ readonly emphasis: "default";
33
+ readonly expanded: false;
34
+ };
35
+ /** Validates product copy once so Web and Native reject the same empty labels. */
36
+ export declare function resolveActivityChipDescriptor(descriptor: ActivityChipDescriptor): ResolvedActivityChipDescriptor;
37
+ export type ActivityChipRecipe = Readonly<{
38
+ slots: readonly ["root", "media", "label"];
39
+ defaults: typeof activityChipDefaults;
40
+ root: Readonly<{
41
+ minHeight: number;
42
+ maxWidth: number;
43
+ radius: keyof typeof radius;
44
+ borderWidth: number;
45
+ gap: number;
46
+ paddingStart: number;
47
+ paddingEnd: number;
48
+ pressedOpacity: number;
49
+ }>;
50
+ media: Readonly<{
51
+ size: number;
52
+ radius: keyof typeof radius;
53
+ }>;
54
+ label: Readonly<{
55
+ textVariant: TextVariant;
56
+ fontWeight: FontWeightValue;
57
+ maxLines: number;
58
+ }>;
59
+ emphasis: Readonly<Record<ActivityChipEmphasis, Readonly<{
60
+ background: ColorReference;
61
+ foreground: ColorReference;
62
+ border: ColorReference;
63
+ }>>>;
64
+ }>;
65
+ export declare const activityChipRecipe: {
66
+ readonly slots: readonly ["root", "media", "label"];
67
+ readonly defaults: {
68
+ readonly emphasis: "default";
69
+ readonly expanded: false;
70
+ };
71
+ readonly root: {
72
+ readonly minHeight: 44;
73
+ readonly maxWidth: 180;
74
+ readonly radius: "full";
75
+ readonly borderWidth: 1;
76
+ readonly gap: 4;
77
+ readonly paddingStart: 4;
78
+ readonly paddingEnd: 12;
79
+ readonly pressedOpacity: 0.86;
80
+ };
81
+ readonly media: {
82
+ readonly size: 28;
83
+ readonly radius: "full";
84
+ };
85
+ readonly label: {
86
+ readonly textVariant: "label";
87
+ readonly fontWeight: "700";
88
+ readonly maxLines: 1;
89
+ };
90
+ readonly emphasis: {
91
+ readonly default: {
92
+ readonly background: Readonly<{
93
+ source: "theme";
94
+ key: "surface";
95
+ alpha?: number;
96
+ }>;
97
+ readonly foreground: Readonly<{
98
+ source: "theme";
99
+ key: "text";
100
+ alpha?: number;
101
+ }>;
102
+ readonly border: Readonly<{
103
+ source: "theme";
104
+ key: "border";
105
+ alpha?: number;
106
+ }>;
107
+ };
108
+ readonly emphasis: {
109
+ readonly background: Readonly<{
110
+ source: "theme";
111
+ key: "primary";
112
+ alpha?: number;
113
+ }>;
114
+ readonly foreground: Readonly<{
115
+ source: "theme";
116
+ key: "onPrimary";
117
+ alpha?: number;
118
+ }>;
119
+ readonly border: Readonly<{
120
+ source: "theme";
121
+ key: "primary";
122
+ alpha?: number;
123
+ }>;
124
+ };
125
+ };
126
+ };
127
+ //# sourceMappingURL=activity-chip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-chip.d.ts","sourceRoot":"","sources":["../src/activity-chip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAIL,MAAM,EAGN,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAG1B;;;;;;;;;;GAUG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1D,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;CAGmD,CAAC;AAErF,kFAAkF;AAClF,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,sBAAsB,GACjC,8BAA8B,CAuBhC;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,EAAE,OAAO,oBAAoB,CAAC;IACtC,IAAI,EAAE,QAAQ,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,OAAO,MAAM,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,KAAK,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,OAAO,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,KAAK,EAAE,QAAQ,CAAC;QAAE,WAAW,EAAE,WAAW,CAAC;QAAC,UAAU,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7F,QAAQ,EAAE,QAAQ,CAChB,MAAM,CAAC,oBAAoB,EAAE,QAAQ,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC,CAC3H,CAAC;CACH,CAAC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCQ,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { control, fontWeight, opacity, radius, spacing, stroke, } from "./foundations.js";
2
+ import { semanticColors } from "./semantic-colors.js";
3
+ export const activityChipDefaults = {
4
+ emphasis: "default",
5
+ expanded: false,
6
+ };
7
+ /** Validates product copy once so Web and Native reject the same empty labels. */
8
+ export function resolveActivityChipDescriptor(descriptor) {
9
+ if (typeof descriptor.label !== "string" || !descriptor.label.trim()) {
10
+ throw new TypeError("ActivityChip label must not be empty");
11
+ }
12
+ if (descriptor.accessibilityLabel !== undefined &&
13
+ (typeof descriptor.accessibilityLabel !== "string" || !descriptor.accessibilityLabel.trim())) {
14
+ throw new TypeError("ActivityChip accessibilityLabel must not be empty");
15
+ }
16
+ const emphasis = descriptor.emphasis ?? activityChipDefaults.emphasis;
17
+ if (emphasis !== "default" && emphasis !== "emphasis") {
18
+ throw new TypeError(`Unsupported ActivityChip emphasis: ${String(emphasis)}`);
19
+ }
20
+ if (descriptor.expanded !== undefined && typeof descriptor.expanded !== "boolean") {
21
+ throw new TypeError("ActivityChip expanded must be a boolean");
22
+ }
23
+ return {
24
+ label: descriptor.label,
25
+ accessibilityLabel: descriptor.accessibilityLabel ?? descriptor.label,
26
+ emphasis,
27
+ expanded: descriptor.expanded ?? activityChipDefaults.expanded,
28
+ };
29
+ }
30
+ export const activityChipRecipe = {
31
+ slots: ["root", "media", "label"],
32
+ defaults: activityChipDefaults,
33
+ // The 44pt minimum keeps the whole chip one touch target; the width cap keeps a header's side
34
+ // controls visible on a 320pt screen (BurnTok header: back 44 + three actions ~150).
35
+ root: {
36
+ minHeight: control.minTouchTarget,
37
+ maxWidth: 180,
38
+ radius: "full",
39
+ borderWidth: stroke.default,
40
+ gap: spacing.xxs,
41
+ // The media hugs the start edge like an avatar chip; the label end keeps the wider pill inset.
42
+ paddingStart: spacing.xxs,
43
+ paddingEnd: spacing.sm,
44
+ pressedOpacity: opacity.pressed,
45
+ },
46
+ // 28 keeps a mascot legible inside the 44 row with 8pt of air; it is decorative (hidden from AT).
47
+ media: { size: 28, radius: "full" },
48
+ // One line: the chip is a glance status, the panel carries the long copy.
49
+ label: { textVariant: "label", fontWeight: fontWeight.bold, maxLines: 1 },
50
+ emphasis: {
51
+ // A resting status sits on the header like a quiet surface; the border keeps its edge on canvas.
52
+ default: {
53
+ background: semanticColors.surface.default,
54
+ foreground: semanticColors.content.primary,
55
+ border: semanticColors.border.default,
56
+ },
57
+ // The brand action pair is the contrast-checked fill/content couple (same as a primary Button).
58
+ emphasis: {
59
+ background: semanticColors.action.brand.background,
60
+ foreground: semanticColors.action.brand.content,
61
+ border: semanticColors.action.brand.background,
62
+ },
63
+ },
64
+ };
65
+ //# sourceMappingURL=activity-chip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-chip.js","sourceRoot":"","sources":["../src/activity-chip.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ColorReference } from \"./color-references.js\";\nimport {\n control,\n fontWeight,\n opacity,\n radius,\n spacing,\n stroke,\n type FontWeightValue,\n type TextVariant,\n} from \"./foundations.js\";\nimport { semanticColors } from \"./semantic-colors.js\";\n\n/**\n * ActivityChip — a compact pressable status for one running background task (a review, an upload,\n * a sync). It shows a small decorative media and a short label in an otherwise empty header slot,\n * and opens the matching panel toast for details (composition `activity-status`).\n *\n * Why a new component (2026-10-10, BurnTok \"똑쟁이\" request): `Chip` is a selection/action control\n * with pressed/checked semantics; a status that toggles a details panel is a disclosure trigger with\n * `aria-expanded`, so reusing Chip would announce the wrong role. The name differs because Chip exists.\n * The task state, its copy and the panel content stay product-owned; HJM owns the trigger shape,\n * disclosure semantics and the panel (Toast) lifecycle.\n */\nexport type ActivityChipEmphasis = \"default\" | \"emphasis\";\n\nexport type ActivityChipDescriptor = Readonly<{\n /** Short visible status, for example \"다듬는 중\". */\n label: string;\n /** Full spoken status; defaults to `label`. */\n accessibilityLabel?: string;\n /** `emphasis` marks a result that waits for the user (e.g. a ready version to apply). */\n emphasis?: ActivityChipEmphasis;\n /** Whether the details panel it controls is open. */\n expanded?: boolean;\n}>;\n\nexport type ResolvedActivityChipDescriptor = Readonly<{\n label: string;\n accessibilityLabel: string;\n emphasis: ActivityChipEmphasis;\n expanded: boolean;\n}>;\n\nexport const activityChipDefaults = {\n emphasis: \"default\",\n expanded: false,\n} as const satisfies Readonly<{ emphasis: ActivityChipEmphasis; expanded: boolean }>;\n\n/** Validates product copy once so Web and Native reject the same empty labels. */\nexport function resolveActivityChipDescriptor(\n descriptor: ActivityChipDescriptor,\n): ResolvedActivityChipDescriptor {\n if (typeof descriptor.label !== \"string\" || !descriptor.label.trim()) {\n throw new TypeError(\"ActivityChip label must not be empty\");\n }\n if (\n descriptor.accessibilityLabel !== undefined &&\n (typeof descriptor.accessibilityLabel !== \"string\" || !descriptor.accessibilityLabel.trim())\n ) {\n throw new TypeError(\"ActivityChip accessibilityLabel must not be empty\");\n }\n const emphasis = descriptor.emphasis ?? activityChipDefaults.emphasis;\n if (emphasis !== \"default\" && emphasis !== \"emphasis\") {\n throw new TypeError(`Unsupported ActivityChip emphasis: ${String(emphasis)}`);\n }\n if (descriptor.expanded !== undefined && typeof descriptor.expanded !== \"boolean\") {\n throw new TypeError(\"ActivityChip expanded must be a boolean\");\n }\n return {\n label: descriptor.label,\n accessibilityLabel: descriptor.accessibilityLabel ?? descriptor.label,\n emphasis,\n expanded: descriptor.expanded ?? activityChipDefaults.expanded,\n };\n}\n\nexport type ActivityChipRecipe = Readonly<{\n slots: readonly [\"root\", \"media\", \"label\"];\n defaults: typeof activityChipDefaults;\n root: Readonly<{\n minHeight: number;\n maxWidth: number;\n radius: keyof typeof radius;\n borderWidth: number;\n gap: number;\n paddingStart: number;\n paddingEnd: number;\n pressedOpacity: number;\n }>;\n media: Readonly<{ size: number; radius: keyof typeof radius }>;\n label: Readonly<{ textVariant: TextVariant; fontWeight: FontWeightValue; maxLines: number }>;\n emphasis: Readonly<\n Record<ActivityChipEmphasis, Readonly<{ background: ColorReference; foreground: ColorReference; border: ColorReference }>>\n >;\n}>;\n\nexport const activityChipRecipe = {\n slots: [\"root\", \"media\", \"label\"] as const,\n defaults: activityChipDefaults,\n // The 44pt minimum keeps the whole chip one touch target; the width cap keeps a header's side\n // controls visible on a 320pt screen (BurnTok header: back 44 + three actions ~150).\n root: {\n minHeight: control.minTouchTarget,\n maxWidth: 180,\n radius: \"full\",\n borderWidth: stroke.default,\n gap: spacing.xxs,\n // The media hugs the start edge like an avatar chip; the label end keeps the wider pill inset.\n paddingStart: spacing.xxs,\n paddingEnd: spacing.sm,\n pressedOpacity: opacity.pressed,\n },\n // 28 keeps a mascot legible inside the 44 row with 8pt of air; it is decorative (hidden from AT).\n media: { size: 28, radius: \"full\" },\n // One line: the chip is a glance status, the panel carries the long copy.\n label: { textVariant: \"label\", fontWeight: fontWeight.bold, maxLines: 1 },\n emphasis: {\n // A resting status sits on the header like a quiet surface; the border keeps its edge on canvas.\n default: {\n background: semanticColors.surface.default,\n foreground: semanticColors.content.primary,\n border: semanticColors.border.default,\n },\n // The brand action pair is the contrast-checked fill/content couple (same as a primary Button).\n emphasis: {\n background: semanticColors.action.brand.background,\n foreground: semanticColors.action.brand.content,\n border: semanticColors.action.brand.background,\n },\n },\n} as const satisfies ActivityChipRecipe;\n"]}
@@ -63,7 +63,7 @@ export declare const buttonRecipe: {
63
63
  readonly selected: {
64
64
  readonly background: "bg";
65
65
  readonly content: "contentBrand";
66
- readonly border: "contentBrand";
66
+ readonly border: null;
67
67
  };
68
68
  };
69
69
  readonly sizes: {
@@ -1 +1 @@
1
- {"version":3,"file":"base-recipes.d.ts","sourceRoot":"","sources":["../src/base-recipes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAc,MAAM,EAAE,OAAO,EAAc,MAAM,kBAAkB,CAAC;AAGpF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC/E,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAC7C;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAChF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,OAAO,OAAO,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,MAAM,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAErD,4EAA4E;AAC5E,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcvB;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BH;;;;;;;;;;;OAWG;;;;;;CAmCJ,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEzE;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDzB,CAAC;AAEF,6CAA6C;AAC7C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6BtB;;;;OAIG;uCAC+B,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;IAqB/C;;;;;;;;;;;;OAYG;;;;;CAyCJ,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;CAU3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAM3B,CAAC"}
1
+ {"version":3,"file":"base-recipes.d.ts","sourceRoot":"","sources":["../src/base-recipes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAc,MAAM,EAAE,OAAO,EAAc,MAAM,kBAAkB,CAAC;AAGpF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC/E,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAC7C;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAChF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,OAAO,OAAO,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,MAAM,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAErD,4EAA4E;AAC5E,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcvB;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BH;;;;;;;;;;;OAWG;;;;;;CAmCJ,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEzE;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDzB,CAAC;AAEF,6CAA6C;AAC7C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6BtB;;;;OAIG;uCAC+B,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;IAqB/C;;;;;;;;;;;;OAYG;;;;;CAyCJ,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;CAU3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAM3B,CAAC"}
@@ -20,7 +20,8 @@ export const buttonRecipe = {
20
20
  * consumer painted the selected background in product styles.
21
21
  */
22
22
  states: {
23
- selected: { background: "bg", content: "contentBrand", border: "contentBrand" },
23
+ // Selected reactions use content color, without adding an outline (2026-10-10 user request).
24
+ selected: { background: "bg", content: "contentBrand", border: null },
24
25
  },
25
26
  sizes: {
26
27
  small: {
@@ -1 +1 @@
1
- {"version":3,"file":"base-recipes.js","sourceRoot":"","sources":["../src/base-recipes.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ThemeColors } from \"./colors.js\";\nimport { control, fontWeight, radius, spacing, typography } from \"./foundations.js\";\nimport type { FontWeightValue, TextVariant } from \"./foundations.js\";\n\nexport type ButtonTone = \"primary\" | \"secondary\" | \"ghost\" | \"danger\" | \"link\";\n/** Corner geometry of the control frame. Mirrors `IconButtonShape`. */\nexport type ButtonShape = \"rounded\" | \"pill\";\n/**\n * Where the label sits inside the frame. `center` is the action default;\n * `leading` is for a full-width row action whose label reads as list copy.\n */\nexport type ButtonAlign = \"center\" | \"leading\";\nexport type ButtonSize = keyof typeof control.buttonHeight;\nexport type SurfaceTone = \"default\" | \"raised\" | \"accent\" | \"sunken\" | \"subtle\";\nexport type SurfacePadding = \"none\" | keyof typeof spacing;\nexport type SurfaceRadius = keyof typeof radius;\nexport type FieldVariant = \"surface\" | \"inset\";\nexport type FieldShape = \"medium\" | \"large\" | \"full\";\n\n/** Small renderer entry point for the three foundational visual recipes. */\nexport const buttonRecipe = {\n slots: [\"root\", \"leading\", \"label\", \"trailing\", \"spinner\"] as const,\n defaults: { tone: \"primary\", size: \"medium\", shape: \"rounded\", align: \"center\" } as const,\n tones: {\n primary: { background: \"primary\", content: \"onPrimary\", border: null, paddingHorizontal: null },\n // The outline is a border role, not a text color. Drawing it in `textSub`\n // made a resting control read heavier than the selected one beside it.\n secondary: { background: \"bg\", content: \"text\", border: \"borderControl\", paddingHorizontal: null },\n ghost: { background: null, content: \"textMuted\", border: null, paddingHorizontal: null },\n danger: { background: \"dangerFill\", content: \"onDanger\", border: null, paddingHorizontal: null },\n // A link-tone control is inline copy, so the size axis' horizontal padding\n // would push it out of alignment with the text around it.\n link: { background: null, content: \"contentBrand\", border: null, paddingHorizontal: 0 },\n },\n /**\n * Visual treatment for a control that is also a toggle. `accessibilityState`\n * / `aria-pressed` already expressed the state; without a paired visual every\n * consumer painted the selected background in product styles.\n */\n states: {\n selected: { background: \"bg\", content: \"contentBrand\", border: \"contentBrand\" },\n },\n sizes: {\n small: {\n height: control.buttonHeight.small,\n hitSlop: control.buttonHitSlop.small,\n paddingHorizontal: spacing.sm,\n textVariant: \"label\",\n },\n medium: {\n height: control.buttonHeight.medium,\n hitSlop: control.buttonHitSlop.medium,\n paddingHorizontal: spacing.md,\n textVariant: \"body\",\n },\n large: {\n height: control.buttonHeight.large,\n hitSlop: control.buttonHitSlop.large,\n paddingHorizontal: spacing.lg,\n textVariant: \"bodyLarge\",\n },\n },\n shapes: { rounded: \"md\", pill: \"full\" },\n aligns: { center: \"center\", leading: \"flex-start\" },\n opacity: { disabled: 0.5, pressed: 0.86 },\n /**\n * 긴 라벨의 처리 규칙. 지금까지 이 판단이 없어서 Web은 무한히 줄바꿈하고 RN은 한 줄로\n * 잘렸다 — 같은 번역문이 두 표면에서 다르게 보였다.\n *\n * 자르지 않고 **두 줄까지 접는다**. 잘린 행동 라벨(\"삭제하...\"))은 무엇을 하는 버튼인지\n * 잃는다. 대신 무제한 줄바꿈도 막는다 — 하단 CTA 행처럼 버튼이 남의 레이아웃을 밀어내는\n * 자리가 있고, 두 줄을 넘는 라벨은 레이아웃이 아니라 카피의 문제다.\n *\n * 큰 글자 설정에서는 상한을 **푼다**. 사용자가 키운 글자에서 두 줄로 자르면 내용이\n * 사라지고, 그건 WCAG 1.4.4를 어긴다. 제품 카피가 아니라 사용자 설정이 원인이기 때문에\n * 같은 규칙을 적용할 수 없다.\n */\n label: { overflow: \"wrap\", maxLines: 2, liftCapOnLargeText: true },\n} as const satisfies {\n slots: readonly string[];\n defaults: { tone: ButtonTone; size: ButtonSize; shape: ButtonShape; align: ButtonAlign };\n tones: Record<\n ButtonTone,\n {\n background: keyof ThemeColors | null;\n content: keyof ThemeColors;\n border: keyof ThemeColors | null;\n /** `null` keeps the size axis' padding. */\n paddingHorizontal: number | null;\n }\n >;\n states: {\n selected: {\n background: keyof ThemeColors;\n content: keyof ThemeColors;\n border: keyof ThemeColors;\n };\n };\n sizes: Record<\n ButtonSize,\n {\n height: number;\n hitSlop: number;\n paddingHorizontal: number;\n textVariant: TextVariant;\n }\n >;\n shapes: Record<ButtonShape, keyof typeof radius>;\n aligns: Record<ButtonAlign, \"center\" | \"flex-start\">;\n opacity: { disabled: number; pressed: number };\n label: { overflow: \"wrap\"; maxLines: number; liftCapOnLargeText: boolean };\n};\n\n/** Resolves the label's line cap for one resolved environment. `null` means uncapped. */\nexport function resolveButtonLabelLines(largeText: boolean): number | null {\n return largeText && buttonRecipe.label.liftCapOnLargeText ? null : buttonRecipe.label.maxLines;\n}\n\nexport const surfaceRecipe = {\n default: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n raised: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: true,\n borderAlways: true,\n // An elevated surface must not clip: `overflow: hidden` cuts off its own\n // shadow. Every other tone clips so a child image cannot spill past the\n // rounded corner, which consumers were fixing in product styles.\n clipsContent: false,\n },\n // White surfaces retain a boundary; tonal fills were removed at the user\n // review, so elevation and border now carry hierarchy.\n sunken: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n accent: {\n background: \"bg\",\n border: \"primary\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n subtle: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n} as const satisfies Record<\n SurfaceTone,\n {\n background: keyof ThemeColors;\n border: keyof ThemeColors;\n borderAlpha: number;\n elevated: boolean;\n clipsContent: boolean;\n borderAlways: boolean;\n }\n>;\n\n/** Text placement inside a field control. */\nexport type FieldAlign = \"start\" | \"center\";\n\nexport const fieldRecipe = {\n slots: [\n \"root\",\n \"label\",\n \"control\",\n \"leading\",\n \"input\",\n \"trailing\",\n \"hint\",\n \"error\",\n ] as const,\n defaults: { variant: \"surface\", shape: \"medium\", align: \"start\" } as const,\n variants: {\n // Input interiors stay on the canvas; focus is conveyed by the blue outline, not a grey or blue fill.\n surface: { background: \"bg\" },\n inset: { background: \"bg\" },\n },\n shapes: {\n medium: \"md\",\n large: \"lg\",\n full: \"full\",\n },\n states: {\n idle: { border: \"borderControl\" },\n focused: { border: \"contentBrand\" },\n invalid: { border: \"danger\" },\n },\n minHeight: control.minTouchTarget,\n multilineMinHeight: 80,\n /**\n * Upper bound for a growing multiline field, expressed in visible lines. A\n * consumer otherwise reaches for `inputStyle={{ maxHeight }}`, which moves a\n * recipe-owned dimension into product code. `null` keeps unbounded growth.\n */\n multilineMaxVisibleLines: null as number | null,\n borderWidth: 1,\n focusRingWidth: 2,\n focusRingOffset: 2,\n paddingHorizontal: spacing.md,\n paddingVertical: spacing.sm,\n textVariant: \"body\",\n label: {\n color: \"textBody\",\n textVariant: \"body\",\n fontWeight: fontWeight.semibold,\n gap: spacing.xs,\n },\n support: {\n hintColor: \"textMuted\",\n errorColor: \"danger\",\n textVariant: \"label\",\n gap: 6,\n },\n placeholder: { color: \"textMuted\" },\n disabledOpacity: 0.6,\n /**\n * Which slots `disabledOpacity` fades (2026-10-06). Label and control dim; the\n * hint and the error keep their contrast, because they are the text that says\n * why the field is locked or what to fix. Renderers used to fade the whole\n * frame, so the small support text (`support.textVariant`) — already the\n * lowest-contrast text in the field — lost contrast too. Fading nothing was\n * rejected: the label and the control are what tell the user the field is off.\n *\n * Every field-family input follows this scope. The amount is the component\n * recipe's own `states.disabledOpacity` where it has one (SearchField,\n * PasswordField, OtpField, NumberField, Select); otherwise this recipe's\n * `disabledOpacity` (TextField, TextArea, Field, Combobox, DatePicker, TagsInput).\n */\n disabledScope: {\n dimmed: [\"label\", \"control\"],\n unchanged: [\"hint\", \"error\"],\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: { variant: FieldVariant; shape: FieldShape; align: FieldAlign };\n variants: Record<FieldVariant, { background: keyof ThemeColors }>;\n shapes: Record<FieldShape, keyof typeof radius>;\n states: Record<\n \"idle\" | \"focused\" | \"invalid\",\n { border: keyof ThemeColors }\n >;\n minHeight: number;\n multilineMinHeight: number;\n multilineMaxVisibleLines: number | null;\n borderWidth: number;\n focusRingWidth: number;\n focusRingOffset: number;\n paddingHorizontal: number;\n paddingVertical: number;\n textVariant: keyof typeof typography;\n label: {\n color: keyof ThemeColors;\n textVariant: keyof typeof typography;\n fontWeight: FontWeightValue;\n gap: number;\n };\n support: {\n hintColor: keyof ThemeColors;\n errorColor: keyof ThemeColors;\n textVariant: keyof typeof typography;\n gap: number;\n };\n placeholder: { color: keyof ThemeColors };\n disabledOpacity: number;\n disabledScope: {\n dimmed: readonly (\"label\" | \"control\")[];\n unchanged: readonly (\"hint\" | \"error\")[];\n };\n};\n\n/**\n * Renderer-neutral Surface geometry. Tone colors stay in `surfaceRecipe` for\n * compatibility; these axes make the previously implicit Web/Native defaults\n * explicit without changing that public recipe shape.\n */\nexport const surfaceDefaults = {\n tone: \"default\",\n padding: \"none\",\n radius: \"lg\",\n bordered: false,\n} as const satisfies {\n tone: SurfaceTone;\n padding: SurfacePadding;\n radius: SurfaceRadius;\n bordered: boolean;\n};\n\nexport const surfaceGeometry = {\n paddings: { none: 0, ...spacing },\n radii: radius,\n} as const satisfies {\n paddings: Record<SurfacePadding, number>;\n radii: Record<SurfaceRadius, number>;\n};\n"]}
1
+ {"version":3,"file":"base-recipes.js","sourceRoot":"","sources":["../src/base-recipes.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ThemeColors } from \"./colors.js\";\nimport { control, fontWeight, radius, spacing, typography } from \"./foundations.js\";\nimport type { FontWeightValue, TextVariant } from \"./foundations.js\";\n\nexport type ButtonTone = \"primary\" | \"secondary\" | \"ghost\" | \"danger\" | \"link\";\n/** Corner geometry of the control frame. Mirrors `IconButtonShape`. */\nexport type ButtonShape = \"rounded\" | \"pill\";\n/**\n * Where the label sits inside the frame. `center` is the action default;\n * `leading` is for a full-width row action whose label reads as list copy.\n */\nexport type ButtonAlign = \"center\" | \"leading\";\nexport type ButtonSize = keyof typeof control.buttonHeight;\nexport type SurfaceTone = \"default\" | \"raised\" | \"accent\" | \"sunken\" | \"subtle\";\nexport type SurfacePadding = \"none\" | keyof typeof spacing;\nexport type SurfaceRadius = keyof typeof radius;\nexport type FieldVariant = \"surface\" | \"inset\";\nexport type FieldShape = \"medium\" | \"large\" | \"full\";\n\n/** Small renderer entry point for the three foundational visual recipes. */\nexport const buttonRecipe = {\n slots: [\"root\", \"leading\", \"label\", \"trailing\", \"spinner\"] as const,\n defaults: { tone: \"primary\", size: \"medium\", shape: \"rounded\", align: \"center\" } as const,\n tones: {\n primary: { background: \"primary\", content: \"onPrimary\", border: null, paddingHorizontal: null },\n // The outline is a border role, not a text color. Drawing it in `textSub`\n // made a resting control read heavier than the selected one beside it.\n secondary: { background: \"bg\", content: \"text\", border: \"borderControl\", paddingHorizontal: null },\n ghost: { background: null, content: \"textMuted\", border: null, paddingHorizontal: null },\n danger: { background: \"dangerFill\", content: \"onDanger\", border: null, paddingHorizontal: null },\n // A link-tone control is inline copy, so the size axis' horizontal padding\n // would push it out of alignment with the text around it.\n link: { background: null, content: \"contentBrand\", border: null, paddingHorizontal: 0 },\n },\n /**\n * Visual treatment for a control that is also a toggle. `accessibilityState`\n * / `aria-pressed` already expressed the state; without a paired visual every\n * consumer painted the selected background in product styles.\n */\n states: {\n // Selected reactions use content color, without adding an outline (2026-10-10 user request).\n selected: { background: \"bg\", content: \"contentBrand\", border: null },\n },\n sizes: {\n small: {\n height: control.buttonHeight.small,\n hitSlop: control.buttonHitSlop.small,\n paddingHorizontal: spacing.sm,\n textVariant: \"label\",\n },\n medium: {\n height: control.buttonHeight.medium,\n hitSlop: control.buttonHitSlop.medium,\n paddingHorizontal: spacing.md,\n textVariant: \"body\",\n },\n large: {\n height: control.buttonHeight.large,\n hitSlop: control.buttonHitSlop.large,\n paddingHorizontal: spacing.lg,\n textVariant: \"bodyLarge\",\n },\n },\n shapes: { rounded: \"md\", pill: \"full\" },\n aligns: { center: \"center\", leading: \"flex-start\" },\n opacity: { disabled: 0.5, pressed: 0.86 },\n /**\n * 긴 라벨의 처리 규칙. 지금까지 이 판단이 없어서 Web은 무한히 줄바꿈하고 RN은 한 줄로\n * 잘렸다 — 같은 번역문이 두 표면에서 다르게 보였다.\n *\n * 자르지 않고 **두 줄까지 접는다**. 잘린 행동 라벨(\"삭제하...\"))은 무엇을 하는 버튼인지\n * 잃는다. 대신 무제한 줄바꿈도 막는다 — 하단 CTA 행처럼 버튼이 남의 레이아웃을 밀어내는\n * 자리가 있고, 두 줄을 넘는 라벨은 레이아웃이 아니라 카피의 문제다.\n *\n * 큰 글자 설정에서는 상한을 **푼다**. 사용자가 키운 글자에서 두 줄로 자르면 내용이\n * 사라지고, 그건 WCAG 1.4.4를 어긴다. 제품 카피가 아니라 사용자 설정이 원인이기 때문에\n * 같은 규칙을 적용할 수 없다.\n */\n label: { overflow: \"wrap\", maxLines: 2, liftCapOnLargeText: true },\n} as const satisfies {\n slots: readonly string[];\n defaults: { tone: ButtonTone; size: ButtonSize; shape: ButtonShape; align: ButtonAlign };\n tones: Record<\n ButtonTone,\n {\n background: keyof ThemeColors | null;\n content: keyof ThemeColors;\n border: keyof ThemeColors | null;\n /** `null` keeps the size axis' padding. */\n paddingHorizontal: number | null;\n }\n >;\n states: {\n selected: {\n background: keyof ThemeColors;\n content: keyof ThemeColors;\n border: keyof ThemeColors | null;\n };\n };\n sizes: Record<\n ButtonSize,\n {\n height: number;\n hitSlop: number;\n paddingHorizontal: number;\n textVariant: TextVariant;\n }\n >;\n shapes: Record<ButtonShape, keyof typeof radius>;\n aligns: Record<ButtonAlign, \"center\" | \"flex-start\">;\n opacity: { disabled: number; pressed: number };\n label: { overflow: \"wrap\"; maxLines: number; liftCapOnLargeText: boolean };\n};\n\n/** Resolves the label's line cap for one resolved environment. `null` means uncapped. */\nexport function resolveButtonLabelLines(largeText: boolean): number | null {\n return largeText && buttonRecipe.label.liftCapOnLargeText ? null : buttonRecipe.label.maxLines;\n}\n\nexport const surfaceRecipe = {\n default: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n raised: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: true,\n borderAlways: true,\n // An elevated surface must not clip: `overflow: hidden` cuts off its own\n // shadow. Every other tone clips so a child image cannot spill past the\n // rounded corner, which consumers were fixing in product styles.\n clipsContent: false,\n },\n // White surfaces retain a boundary; tonal fills were removed at the user\n // review, so elevation and border now carry hierarchy.\n sunken: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n accent: {\n background: \"bg\",\n border: \"primary\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n subtle: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n} as const satisfies Record<\n SurfaceTone,\n {\n background: keyof ThemeColors;\n border: keyof ThemeColors;\n borderAlpha: number;\n elevated: boolean;\n clipsContent: boolean;\n borderAlways: boolean;\n }\n>;\n\n/** Text placement inside a field control. */\nexport type FieldAlign = \"start\" | \"center\";\n\nexport const fieldRecipe = {\n slots: [\n \"root\",\n \"label\",\n \"control\",\n \"leading\",\n \"input\",\n \"trailing\",\n \"hint\",\n \"error\",\n ] as const,\n defaults: { variant: \"surface\", shape: \"medium\", align: \"start\" } as const,\n variants: {\n // Input interiors stay on the canvas; focus is conveyed by the blue outline, not a grey or blue fill.\n surface: { background: \"bg\" },\n inset: { background: \"bg\" },\n },\n shapes: {\n medium: \"md\",\n large: \"lg\",\n full: \"full\",\n },\n states: {\n idle: { border: \"borderControl\" },\n focused: { border: \"contentBrand\" },\n invalid: { border: \"danger\" },\n },\n minHeight: control.minTouchTarget,\n multilineMinHeight: 80,\n /**\n * Upper bound for a growing multiline field, expressed in visible lines. A\n * consumer otherwise reaches for `inputStyle={{ maxHeight }}`, which moves a\n * recipe-owned dimension into product code. `null` keeps unbounded growth.\n */\n multilineMaxVisibleLines: null as number | null,\n borderWidth: 1,\n focusRingWidth: 2,\n focusRingOffset: 2,\n paddingHorizontal: spacing.md,\n paddingVertical: spacing.sm,\n textVariant: \"body\",\n label: {\n color: \"textBody\",\n textVariant: \"body\",\n fontWeight: fontWeight.semibold,\n gap: spacing.xs,\n },\n support: {\n hintColor: \"textMuted\",\n errorColor: \"danger\",\n textVariant: \"label\",\n gap: 6,\n },\n placeholder: { color: \"textMuted\" },\n disabledOpacity: 0.6,\n /**\n * Which slots `disabledOpacity` fades (2026-10-06). Label and control dim; the\n * hint and the error keep their contrast, because they are the text that says\n * why the field is locked or what to fix. Renderers used to fade the whole\n * frame, so the small support text (`support.textVariant`) — already the\n * lowest-contrast text in the field — lost contrast too. Fading nothing was\n * rejected: the label and the control are what tell the user the field is off.\n *\n * Every field-family input follows this scope. The amount is the component\n * recipe's own `states.disabledOpacity` where it has one (SearchField,\n * PasswordField, OtpField, NumberField, Select); otherwise this recipe's\n * `disabledOpacity` (TextField, TextArea, Field, Combobox, DatePicker, TagsInput).\n */\n disabledScope: {\n dimmed: [\"label\", \"control\"],\n unchanged: [\"hint\", \"error\"],\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: { variant: FieldVariant; shape: FieldShape; align: FieldAlign };\n variants: Record<FieldVariant, { background: keyof ThemeColors }>;\n shapes: Record<FieldShape, keyof typeof radius>;\n states: Record<\n \"idle\" | \"focused\" | \"invalid\",\n { border: keyof ThemeColors }\n >;\n minHeight: number;\n multilineMinHeight: number;\n multilineMaxVisibleLines: number | null;\n borderWidth: number;\n focusRingWidth: number;\n focusRingOffset: number;\n paddingHorizontal: number;\n paddingVertical: number;\n textVariant: keyof typeof typography;\n label: {\n color: keyof ThemeColors;\n textVariant: keyof typeof typography;\n fontWeight: FontWeightValue;\n gap: number;\n };\n support: {\n hintColor: keyof ThemeColors;\n errorColor: keyof ThemeColors;\n textVariant: keyof typeof typography;\n gap: number;\n };\n placeholder: { color: keyof ThemeColors };\n disabledOpacity: number;\n disabledScope: {\n dimmed: readonly (\"label\" | \"control\")[];\n unchanged: readonly (\"hint\" | \"error\")[];\n };\n};\n\n/**\n * Renderer-neutral Surface geometry. Tone colors stay in `surfaceRecipe` for\n * compatibility; these axes make the previously implicit Web/Native defaults\n * explicit without changing that public recipe shape.\n */\nexport const surfaceDefaults = {\n tone: \"default\",\n padding: \"none\",\n radius: \"lg\",\n bordered: false,\n} as const satisfies {\n tone: SurfaceTone;\n padding: SurfacePadding;\n radius: SurfaceRadius;\n bordered: boolean;\n};\n\nexport const surfaceGeometry = {\n paddings: { none: 0, ...spacing },\n radii: radius,\n} as const satisfies {\n paddings: Record<SurfacePadding, number>;\n radii: Record<SurfaceRadius, number>;\n};\n"]}
@@ -393,10 +393,12 @@ export declare const behaviorRegistry: {
393
393
  readonly configuration: {
394
394
  readonly direction: readonly ["ltr", "rtl"];
395
395
  readonly keyboardBehavior: readonly ["hide", "remain"];
396
+ readonly labels: readonly ["visible", "hidden"];
396
397
  };
397
398
  readonly defaults: {
398
399
  readonly direction: "ltr";
399
400
  readonly keyboardBehavior: "hide";
401
+ readonly labels: "visible";
400
402
  readonly minItems: 2;
401
403
  readonly maxItems: 6;
402
404
  };
@@ -1 +1 @@
1
- {"version":3,"file":"behaviors.d.ts","sourceRoot":"","sources":["../src/behaviors.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"behaviors.d.ts","sourceRoot":"","sources":["../src/behaviors.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
package/dist/behaviors.js CHANGED
@@ -491,6 +491,7 @@ export const behaviorRegistry = {
491
491
  configuration: {
492
492
  direction: ["ltr", "rtl"],
493
493
  keyboardBehavior: ["hide", "remain"],
494
+ labels: ["visible", "hidden"],
494
495
  },
495
496
  defaults: bottomNavigationBehaviorDefaults,
496
497
  stateAxes: {