@hjmds/design-contracts 1.34.0 → 1.35.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/anchor.d.ts +4 -1
- package/dist/anchor.d.ts.map +1 -1
- package/dist/anchor.js +3 -3
- package/dist/anchor.js.map +1 -1
- package/dist/base-recipes.d.ts +15 -1
- package/dist/base-recipes.d.ts.map +1 -1
- package/dist/base-recipes.js +14 -3
- package/dist/base-recipes.js.map +1 -1
- package/dist/behaviors.d.ts +22 -0
- package/dist/behaviors.d.ts.map +1 -1
- package/dist/behaviors.js +2 -0
- package/dist/behaviors.js.map +1 -1
- package/dist/calendar.d.ts +9 -7
- package/dist/calendar.d.ts.map +1 -1
- package/dist/calendar.js +31 -2
- package/dist/calendar.js.map +1 -1
- package/dist/card.d.ts +15 -1
- package/dist/card.d.ts.map +1 -1
- package/dist/card.js +14 -1
- package/dist/card.js.map +1 -1
- package/dist/carousel.d.ts +3 -0
- package/dist/carousel.d.ts.map +1 -1
- package/dist/carousel.js +10 -1
- package/dist/carousel.js.map +1 -1
- package/dist/catalog.d.ts +147 -17
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +9 -6
- package/dist/catalog.js.map +1 -1
- package/dist/colors.d.ts +1 -0
- package/dist/colors.d.ts.map +1 -1
- package/dist/colors.js +2 -0
- package/dist/colors.js.map +1 -1
- package/dist/component-recipes.d.ts +45 -11
- package/dist/component-recipes.d.ts.map +1 -1
- package/dist/component-recipes.js +35 -15
- package/dist/component-recipes.js.map +1 -1
- package/dist/component-references.d.ts +2 -2
- package/dist/component-references.js +1 -1
- package/dist/component-references.js.map +1 -1
- package/dist/design-profile.d.ts +14 -0
- package/dist/design-profile.d.ts.map +1 -1
- package/dist/design-profile.js +15 -0
- package/dist/design-profile.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/progress-recipe.d.ts +6 -0
- package/dist/progress-recipe.d.ts.map +1 -1
- package/dist/progress-recipe.js +15 -2
- package/dist/progress-recipe.js.map +1 -1
- package/dist/recipes.d.ts +2 -2
- package/dist/recipes.d.ts.map +1 -1
- package/dist/recipes.js +2 -2
- package/dist/recipes.js.map +1 -1
- package/dist/screen-patterns.d.ts +32 -2
- package/dist/screen-patterns.d.ts.map +1 -1
- package/dist/screen-patterns.js +26 -2
- package/dist/screen-patterns.js.map +1 -1
- package/dist/semantic-colors.d.ts +5 -0
- package/dist/semantic-colors.d.ts.map +1 -1
- package/dist/semantic-colors.js +2 -0
- package/dist/semantic-colors.js.map +1 -1
- package/dist/sheet.d.ts +15 -0
- package/dist/sheet.d.ts.map +1 -1
- package/dist/sheet.js +11 -0
- package/dist/sheet.js.map +1 -1
- package/dist/shortcut-rail.d.ts +20 -0
- package/dist/shortcut-rail.d.ts.map +1 -0
- package/dist/shortcut-rail.js +28 -0
- package/dist/shortcut-rail.js.map +1 -0
- package/dist/showcase.js +2 -2
- package/dist/showcase.js.map +1 -1
- package/dist/steps.d.ts +6 -4
- package/dist/steps.d.ts.map +1 -1
- package/dist/steps.js +3 -0
- package/dist/steps.js.map +1 -1
- package/dist/time-picker.d.ts +70 -0
- package/dist/time-picker.d.ts.map +1 -0
- package/dist/time-picker.js +51 -0
- package/dist/time-picker.js.map +1 -0
- package/dist/timeline.d.ts +13 -1
- package/dist/timeline.d.ts.map +1 -1
- package/dist/timeline.js +11 -1
- package/dist/timeline.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/docs/calendar.md +19 -1
- package/docs/carousel.md +10 -0
- package/docs/collapsible.md +9 -0
- package/docs/consumer-policy.md +8 -12
- package/docs/design-profile.md +9 -0
- package/docs/expansion-roadmap.md +1 -1
- package/docs/generated/component-maturity.md +5 -4
- package/docs/generated/renderer-evidence.json +141 -16
- package/docs/generated/renderer-evidence.md +5 -3
- package/docs/generated/showcase-manifest.json +69 -7
- package/docs/optional-adapters.md +11 -0
- package/docs/stable-core.md +25 -0
- package/docs/steps.md +4 -0
- package/docs/theme-palette.md +2 -0
- package/docs/time-picker.md +22 -114
- package/docs/usage/README.md +9 -7
- package/docs/usage/SELECTION.md +44 -2
- package/docs/usage/components/accordion.md +4 -2
- package/docs/usage/components/alert-dialog.md +5 -0
- package/docs/usage/components/anchor.md +4 -1
- package/docs/usage/components/badge.md +7 -4
- package/docs/usage/components/bottom-cta.md +29 -4
- package/docs/usage/components/bottom-navigation.md +8 -0
- package/docs/usage/components/button.md +42 -2
- package/docs/usage/components/calendar.md +8 -1
- package/docs/usage/components/card.md +111 -7
- package/docs/usage/components/carousel.md +4 -1
- package/docs/usage/components/chat-screen.md +1 -1
- package/docs/usage/components/checkbox-group.md +33 -3
- package/docs/usage/components/checkbox.md +8 -2
- package/docs/usage/components/chip.md +5 -0
- package/docs/usage/components/collapsible.md +16 -1
- package/docs/usage/components/comment-thread-screen.md +12 -3
- package/docs/usage/components/composition-layout.md +6 -1
- package/docs/usage/components/conversation-row.md +2 -1
- package/docs/usage/components/data-table.md +10 -0
- package/docs/usage/components/description-list.md +1 -0
- package/docs/usage/components/field.md +8 -0
- package/docs/usage/components/icon-tile.md +29 -10
- package/docs/usage/components/image-choice-group.md +6 -0
- package/docs/usage/components/image.md +8 -1
- package/docs/usage/components/list-detail-screen.md +10 -4
- package/docs/usage/components/list-row.md +3 -0
- package/docs/usage/components/list.md +33 -1
- package/docs/usage/components/message-composer.md +2 -0
- package/docs/usage/components/notice.md +5 -1
- package/docs/usage/components/notification-row.md +19 -9
- package/docs/usage/components/onboarding-screen.md +3 -0
- package/docs/usage/components/page-indicator.md +12 -0
- package/docs/usage/components/profile-summary.md +16 -3
- package/docs/usage/components/progress.md +24 -0
- package/docs/usage/components/radio-group.md +45 -3
- package/docs/usage/components/radio.md +8 -2
- package/docs/usage/components/repeatable-field-group.md +1 -0
- package/docs/usage/components/screen-layout.md +46 -3
- package/docs/usage/components/search-screen.md +29 -1
- package/docs/usage/components/segmented-control.md +19 -3
- package/docs/usage/components/select.md +2 -0
- package/docs/usage/components/sheet.md +56 -3
- package/docs/usage/components/spinner.md +10 -0
- package/docs/usage/components/statistic.md +23 -0
- package/docs/usage/components/steps.md +11 -4
- package/docs/usage/components/switch.md +5 -0
- package/docs/usage/components/tabs.md +4 -0
- package/docs/usage/components/time-picker.md +88 -0
- package/docs/usage/components/timeline.md +19 -6
- package/docs/usage/components/top-bar.md +7 -0
- package/docs/usage/compositions/shortcut-rail.md +99 -0
- package/docs/usage/compositions/time-selection.md +5 -0
- package/package.json +17 -4
package/dist/anchor.d.ts
CHANGED
|
@@ -10,10 +10,13 @@ export declare function getAnchorCurrentId(positions: readonly Readonly<{
|
|
|
10
10
|
top: number;
|
|
11
11
|
}>[], offset?: number, atEnd?: boolean): string | undefined;
|
|
12
12
|
export declare const anchorRecipe: {
|
|
13
|
-
readonly slots: readonly ["root", "list", "link", "indicator"];
|
|
13
|
+
readonly slots: readonly ["root", "list", "link", "leading", "indicator"];
|
|
14
14
|
readonly gap: 4;
|
|
15
15
|
readonly link: {
|
|
16
16
|
readonly padding: 8;
|
|
17
|
+
readonly minHeight: 44;
|
|
18
|
+
readonly gap: 8;
|
|
19
|
+
readonly leadingSize: 20;
|
|
17
20
|
readonly color: Readonly<{
|
|
18
21
|
source: "theme";
|
|
19
22
|
key: "textMuted";
|
package/dist/anchor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"AAKA,kFAAkF;AAClF,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AACjE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,SAU9D;AAED,qGAAqG;AACrG,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,EAAE,MAAM,SAAI,EAAE,KAAK,UAAQ,GAAG,MAAM,GAAG,SAAS,CAM7I;AAED,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"AAKA,kFAAkF;AAClF,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AACjE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,SAU9D;AAED,qGAAqG;AACrG,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,EAAE,MAAM,SAAI,EAAE,KAAK,UAAQ,GAAG,MAAM,GAAG,SAAS,CAM7I;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMf,CAAC;AACX,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;CAKU,CAAC"}
|
package/dist/anchor.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { spacing, stroke } from "./foundations.js";
|
|
1
|
+
import { control, glyph, spacing, stroke } from "./foundations.js";
|
|
2
2
|
import { semanticColors } from "./semantic-colors.js";
|
|
3
3
|
import { focusIndicatorContract } from "./component-contracts.js";
|
|
4
4
|
export function resolveAnchorItems(items) {
|
|
@@ -28,9 +28,9 @@ export function getAnchorCurrentId(positions, offset = 0, atEnd = false) {
|
|
|
28
28
|
return ordered.filter(({ top }) => top <= offset).at(-1)?.id ?? ordered[0]?.id;
|
|
29
29
|
}
|
|
30
30
|
export const anchorRecipe = {
|
|
31
|
-
slots: ["root", "list", "link", "indicator"],
|
|
31
|
+
slots: ["root", "list", "link", "leading", "indicator"],
|
|
32
32
|
gap: spacing.xxs,
|
|
33
|
-
link: { padding: spacing.xs, color: semanticColors.content.secondary },
|
|
33
|
+
link: { padding: spacing.xs, minHeight: control.minTouchTarget, gap: spacing.xs, leadingSize: glyph.sm, color: semanticColors.content.secondary },
|
|
34
34
|
current: { color: semanticColors.content.brand, border: semanticColors.border.focus, width: stroke.strong },
|
|
35
35
|
focus: focusIndicatorContract,
|
|
36
36
|
};
|
package/dist/anchor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.js","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"anchor.js","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BehaviorContract } from \"./behaviors.js\";\nimport { control, glyph, spacing, stroke } from \"./foundations.js\";\nimport { semanticColors } from \"./semantic-colors.js\";\nimport { focusIndicatorContract } from \"./component-contracts.js\";\n\n/** IDs refer to same-document sections, never arbitrary external destinations. */\nexport type AnchorItem = Readonly<{ id: string; label: string }>;\nexport function resolveAnchorItems(items: readonly AnchorItem[]) {\n if (!Array.isArray(items) || items.length === 0) throw new TypeError(\"Anchor items must not be empty\");\n const ids = new Set<string>();\n return items.map((item) => {\n if (!item || typeof item.id !== \"string\" || !item.id || /\\s/u.test(item.id)) throw new TypeError(\"Anchor id must be a non-empty HTML id without whitespace\");\n if (typeof item.label !== \"string\" || !item.label.trim()) throw new TypeError(\"Anchor label must not be empty\");\n if (ids.has(item.id)) throw new TypeError(`Duplicate Anchor id: ${item.id}`);\n ids.add(item.id);\n return { ...item, href: `#${encodeURIComponent(item.id)}` };\n });\n}\n\n/** Positions use one viewport's coordinates. DOM reads and scroll ownership stay in the renderer. */\nexport function getAnchorCurrentId(positions: readonly Readonly<{ id: string; top: number }>[], offset = 0, atEnd = false): string | undefined {\n if (!Number.isFinite(offset) || offset < 0) throw new RangeError(\"Anchor offset must be non-negative\");\n if (positions.some(({ top }) => !Number.isFinite(top))) throw new TypeError(\"Anchor positions must be finite\");\n const ordered = [...positions].sort((a, b) => a.top - b.top);\n if (atEnd) return ordered.at(-1)?.id;\n return ordered.filter(({ top }) => top <= offset).at(-1)?.id ?? ordered[0]?.id;\n}\n\nexport const anchorRecipe = {\n slots: [\"root\", \"list\", \"link\", \"leading\", \"indicator\"] as const,\n gap: spacing.xxs,\n link: { padding: spacing.xs, minHeight: control.minTouchTarget, gap: spacing.xs, leadingSize: glyph.sm, color: semanticColors.content.secondary },\n current: { color: semanticColors.content.brand, border: semanticColors.border.focus, width: stroke.strong },\n focus: focusIndicatorContract,\n} as const;\nexport const anchorBehavior = {\n controlled: [], inputs: [\"items\", \"offset\", \"container\", \"historyMode\"], stateAxes: {},\n web: { roles: [\"navigation\", \"list\", \"listitem\", \"link\"], keyboard: [\"Tab\", \"Enter\"], focus: \"native\" },\n native: { roles: [], states: [], actions: [] },\n scenarios: [\"scroll-position-selects-one-current-location\", \"activation-focuses-target-and-preserves-offset\", \"reduced-motion-jumps-instantly\", \"browser-history-restores-a-section\", \"missing-targets-are-not-current\"],\n} as const satisfies BehaviorContract;\n"]}
|
package/dist/base-recipes.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { control, radius, spacing } from "./foundations.js";
|
|
2
2
|
export type ButtonTone = "primary" | "secondary" | "ghost" | "danger" | "link";
|
|
3
3
|
/** Corner geometry of the control frame. Mirrors `IconButtonShape`. */
|
|
4
|
+
export type ButtonAppearance = "flat" | "raised";
|
|
4
5
|
export type ButtonShape = "rounded" | "pill";
|
|
5
6
|
/**
|
|
6
7
|
* Where the label sits inside the frame. `center` is the action default;
|
|
@@ -15,12 +16,22 @@ export type FieldVariant = "surface" | "inset";
|
|
|
15
16
|
export type FieldShape = "medium" | "large" | "full";
|
|
16
17
|
/** Small renderer entry point for the three foundational visual recipes. */
|
|
17
18
|
export declare const buttonRecipe: {
|
|
18
|
-
readonly slots: readonly ["root", "leading", "label", "trailing", "spinner"];
|
|
19
|
+
readonly slots: readonly ["root", "face", "side", "leading", "label", "trailing", "spinner"];
|
|
19
20
|
readonly defaults: {
|
|
20
21
|
readonly tone: "primary";
|
|
21
22
|
readonly size: "medium";
|
|
22
23
|
readonly shape: "rounded";
|
|
23
24
|
readonly align: "center";
|
|
25
|
+
readonly appearance: "flat";
|
|
26
|
+
};
|
|
27
|
+
readonly raised: {
|
|
28
|
+
readonly depths: {
|
|
29
|
+
readonly small: 3;
|
|
30
|
+
readonly medium: 4;
|
|
31
|
+
readonly large: 5;
|
|
32
|
+
};
|
|
33
|
+
readonly sideShade: 0.25;
|
|
34
|
+
readonly settleDuration: 120;
|
|
24
35
|
};
|
|
25
36
|
readonly tones: {
|
|
26
37
|
readonly primary: {
|
|
@@ -116,6 +127,8 @@ export declare const buttonRecipe: {
|
|
|
116
127
|
readonly liftCapOnLargeText: true;
|
|
117
128
|
};
|
|
118
129
|
};
|
|
130
|
+
/** Raised paint never adds a frame to a frameless ghost/link action. */
|
|
131
|
+
export declare function resolveButtonDepth(appearance: ButtonAppearance, tone: ButtonTone, size: ButtonSize): number;
|
|
119
132
|
/**
|
|
120
133
|
* Edge alignment for a ghost text Button at a row/header edge (2026-10-17 measured audit: a sort trigger's chevron
|
|
121
134
|
* sat 29px from the edge against a 16px inset). Same rule as `resolveIconButtonEdgeOverhang`: a frameless control
|
|
@@ -199,6 +212,7 @@ export declare const fieldRecipe: {
|
|
|
199
212
|
};
|
|
200
213
|
readonly invalid: {
|
|
201
214
|
readonly border: "danger";
|
|
215
|
+
readonly borderWidth: 2;
|
|
202
216
|
};
|
|
203
217
|
};
|
|
204
218
|
readonly minHeight: 44;
|
|
@@ -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
|
|
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,gBAAgB,GAAG,MAAM,GAAG,QAAQ,CAAC;AACjD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgBvB;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BH;;;;;;;;;;;OAWG;;;;;;CAoCJ,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAI3G;AAED;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAClD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAIpF;AAED,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8BtB;;;;OAIG;uCAC+B,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;IAqB/C;;;;;;;;;;;;OAYG;;;;;CAwCJ,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;CAU3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAM3B,CAAC"}
|
package/dist/base-recipes.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { control, fontWeight, radius, spacing, typography } from "./foundations.js";
|
|
2
2
|
/** Small renderer entry point for the three foundational visual recipes. */
|
|
3
3
|
export const buttonRecipe = {
|
|
4
|
-
slots: ["root", "leading", "label", "trailing", "spinner"],
|
|
5
|
-
defaults: { tone: "primary", size: "medium", shape: "rounded", align: "center" },
|
|
4
|
+
slots: ["root", "face", "side", "leading", "label", "trailing", "spinner"],
|
|
5
|
+
defaults: { tone: "primary", size: "medium", shape: "rounded", align: "center", appearance: "flat" },
|
|
6
|
+
// A solid underside belongs to the button, rather than a product's second press/state engine.
|
|
7
|
+
raised: { depths: { small: 3, medium: 4, large: 5 }, sideShade: 0.25, settleDuration: 120 },
|
|
6
8
|
tones: {
|
|
7
9
|
primary: { background: "primary", content: "onPrimary", border: null, paddingHorizontal: null },
|
|
8
10
|
// The outline is a border role, not a text color. Drawing it in `textSub`
|
|
@@ -60,6 +62,14 @@ export const buttonRecipe = {
|
|
|
60
62
|
*/
|
|
61
63
|
label: { overflow: "wrap", maxLines: 2, liftCapOnLargeText: true },
|
|
62
64
|
};
|
|
65
|
+
/** Raised paint never adds a frame to a frameless ghost/link action. */
|
|
66
|
+
export function resolveButtonDepth(appearance, tone, size) {
|
|
67
|
+
if (appearance !== "flat" && appearance !== "raised")
|
|
68
|
+
throw new TypeError("Unknown Button appearance");
|
|
69
|
+
if (appearance === "flat" || tone === "ghost" || tone === "link")
|
|
70
|
+
return 0;
|
|
71
|
+
return buttonRecipe.raised.depths[size];
|
|
72
|
+
}
|
|
63
73
|
export function resolveButtonEdgeOverhang(tone, size) {
|
|
64
74
|
const toneContract = buttonRecipe.tones[tone];
|
|
65
75
|
if (toneContract.background !== null || toneContract.border !== null)
|
|
@@ -142,7 +152,8 @@ export const fieldRecipe = {
|
|
|
142
152
|
states: {
|
|
143
153
|
idle: { border: "borderControl" },
|
|
144
154
|
focused: { border: "contentBrand" },
|
|
145
|
-
|
|
155
|
+
// Error and focus can share a hue in a product palette; thickness keeps validation distinct without color alone.
|
|
156
|
+
invalid: { border: "danger", borderWidth: 2 },
|
|
146
157
|
},
|
|
147
158
|
minHeight: control.minTouchTarget,
|
|
148
159
|
multilineMinHeight: 80,
|
package/dist/base-recipes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-recipes.js","sourceRoot":"","sources":["../src/base-recipes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAkBpF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAU;IACnE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAW;IACzF,KAAK,EAAE;QACL,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE;QAC/F,0EAA0E;QAC1E,uEAAuE;QACvE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,IAAI,EAAE;QAClG,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE;QACxF,MAAM,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE;QAChG,2EAA2E;QAC3E,0DAA0D;QAC1D,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE;KACxF;IACD;;;;OAIG;IACH,MAAM,EAAE;QACN,6FAA6F;QAC7F,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;KACtE;IACD,KAAK,EAAE;QACL,KAAK,EAAE;YACL,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK;YAClC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK;YACpC,iBAAiB,EAAE,OAAO,CAAC,EAAE;YAC7B,WAAW,EAAE,OAAO;SACrB;QACD,MAAM,EAAE;YACN,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM;YACnC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM;YACrC,iBAAiB,EAAE,OAAO,CAAC,EAAE;YAC7B,WAAW,EAAE,MAAM;SACpB;QACD,KAAK,EAAE;YACL,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK;YAClC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK;YACpC,iBAAiB,EAAE,OAAO,CAAC,EAAE;YAC7B,WAAW,EAAE,WAAW;SACzB;KACF;IACD,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IACvC,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;IACnD,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IACzC;;;;;;;;;;;OAWG;IACH,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE;CAkCnE,CAAC;AASF,MAAM,UAAU,yBAAyB,CAAC,IAAgB,EAAE,IAAgB;IAC1E,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,YAAY,CAAC,UAAU,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC/E,OAAO,YAAY,CAAC,iBAAiB,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;AACtF,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,uBAAuB,CAAC,SAAkB;IACxD,OAAO,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;AACjG,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE;QACP,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;KACnB;IACD,MAAM,EAAE;QACN,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;QAClB,yEAAyE;QACzE,wEAAwE;QACxE,iEAAiE;QACjE,YAAY,EAAE,KAAK;KACpB;IACD,yEAAyE;IACzE,uDAAuD;IACvD,MAAM,EAAE;QACN,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;KACnB;IACD,MAAM,EAAE;QACN,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;KACnB;IACD,MAAM,EAAE;QACN,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;KACnB;CAWF,CAAC;AAKF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE;QACL,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,OAAO;QACP,UAAU;QACV,MAAM;QACN,OAAO;KACC;IACV,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAW;IAC1E,QAAQ,EAAE;QACR,sGAAsG;QACtG,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;QAC7B,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;KAC5B;IACD,MAAM,EAAE;QACN,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,MAAM;KACb;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;QACjC,OAAO,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;QACnC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;KAC9B;IACD,SAAS,EAAE,OAAO,CAAC,cAAc;IACjC,kBAAkB,EAAE,EAAE;IACtB;;;;OAIG;IACH,wBAAwB,EAAE,IAAqB;IAC/C,WAAW,EAAE,CAAC;IACd,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC,EAAE;IAC7B,eAAe,EAAE,OAAO,CAAC,EAAE;IAC3B,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE;QACL,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,UAAU,CAAC,MAAM;QAC7B,GAAG,EAAE,OAAO,CAAC,EAAE;KAChB;IACD,OAAO,EAAE;QACP,SAAS,EAAE,WAAW;QACtB,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,OAAO;QACpB,GAAG,EAAE,CAAC;KACP;IACD,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;IACnC,eAAe,EAAE,GAAG;IACpB;;;;;;;;;;;;OAYG;IACH,aAAa,EAAE;QACb,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;QAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;KAC7B;CAqCF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,KAAK;CAMhB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE;IACjC,KAAK,EAAE,MAAM;CAId,CAAC","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/**\n * Edge alignment for a ghost text Button at a row/header edge (2026-10-17 measured audit: a sort trigger's chevron\n * sat 29px from the edge against a 16px inset). Same rule as `resolveIconButtonEdgeOverhang`: a frameless control\n * overhangs the edge by its own inline padding so its label/glyph, not the transparent box, sets the inset.\n * Framed tones (primary, secondary, danger) align their frame instead, and `link` already has no padding: 0.\n */\nexport type ButtonEdge = \"start\" | \"end\" | \"both\";\nexport function resolveButtonEdgeOverhang(tone: ButtonTone, size: ButtonSize): number {\n const toneContract = buttonRecipe.tones[tone];\n if (toneContract.background !== null || toneContract.border !== null) return 0;\n return toneContract.paddingHorizontal ?? buttonRecipe.sizes[size].paddingHorizontal;\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.medium,\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":"AACA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAmBpF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAU;IACnF,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAW;IAC7G,8FAA8F;IAC9F,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE;IAC3F,KAAK,EAAE;QACL,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE;QAC/F,0EAA0E;QAC1E,uEAAuE;QACvE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,IAAI,EAAE;QAClG,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE;QACxF,MAAM,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE;QAChG,2EAA2E;QAC3E,0DAA0D;QAC1D,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE;KACxF;IACD;;;;OAIG;IACH,MAAM,EAAE;QACN,6FAA6F;QAC7F,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;KACtE;IACD,KAAK,EAAE;QACL,KAAK,EAAE;YACL,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK;YAClC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK;YACpC,iBAAiB,EAAE,OAAO,CAAC,EAAE;YAC7B,WAAW,EAAE,OAAO;SACrB;QACD,MAAM,EAAE;YACN,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM;YACnC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM;YACrC,iBAAiB,EAAE,OAAO,CAAC,EAAE;YAC7B,WAAW,EAAE,MAAM;SACpB;QACD,KAAK,EAAE;YACL,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK;YAClC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK;YACpC,iBAAiB,EAAE,OAAO,CAAC,EAAE;YAC7B,WAAW,EAAE,WAAW;SACzB;KACF;IACD,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IACvC,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;IACnD,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IACzC;;;;;;;;;;;OAWG;IACH,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE;CAmCnE,CAAC;AAEF,wEAAwE;AACxE,MAAM,UAAU,kBAAkB,CAAC,UAA4B,EAAE,IAAgB,EAAE,IAAgB;IACjG,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,QAAQ;QAAE,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACvG,IAAI,UAAU,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC;IAC3E,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AASD,MAAM,UAAU,yBAAyB,CAAC,IAAgB,EAAE,IAAgB;IAC1E,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,YAAY,CAAC,UAAU,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC/E,OAAO,YAAY,CAAC,iBAAiB,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;AACtF,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,uBAAuB,CAAC,SAAkB;IACxD,OAAO,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;AACjG,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE;QACP,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;KACnB;IACD,MAAM,EAAE;QACN,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;QAClB,yEAAyE;QACzE,wEAAwE;QACxE,iEAAiE;QACjE,YAAY,EAAE,KAAK;KACpB;IACD,yEAAyE;IACzE,uDAAuD;IACvD,MAAM,EAAE;QACN,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;KACnB;IACD,MAAM,EAAE;QACN,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;KACnB;IACD,MAAM,EAAE;QACN,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;KACnB;CAWF,CAAC;AAKF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE;QACL,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,OAAO;QACP,UAAU;QACV,MAAM;QACN,OAAO;KACC;IACV,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAW;IAC1E,QAAQ,EAAE;QACR,sGAAsG;QACtG,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;QAC7B,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;KAC5B;IACD,MAAM,EAAE;QACN,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,MAAM;KACb;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;QACjC,OAAO,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;QACnC,iHAAiH;QACjH,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE;KAC9C;IACD,SAAS,EAAE,OAAO,CAAC,cAAc;IACjC,kBAAkB,EAAE,EAAE;IACtB;;;;OAIG;IACH,wBAAwB,EAAE,IAAqB;IAC/C,WAAW,EAAE,CAAC;IACd,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC,EAAE;IAC7B,eAAe,EAAE,OAAO,CAAC,EAAE;IAC3B,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE;QACL,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,UAAU,CAAC,MAAM;QAC7B,GAAG,EAAE,OAAO,CAAC,EAAE;KAChB;IACD,OAAO,EAAE;QACP,SAAS,EAAE,WAAW;QACtB,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,OAAO;QACpB,GAAG,EAAE,CAAC;KACP;IACD,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;IACnC,eAAe,EAAE,GAAG;IACpB;;;;;;;;;;;;OAYG;IACH,aAAa,EAAE;QACb,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;QAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;KAC7B;CAoCF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,KAAK;CAMhB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE;IACjC,KAAK,EAAE,MAAM;CAId,CAAC","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 ButtonAppearance = \"flat\" | \"raised\";\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\", \"face\", \"side\", \"leading\", \"label\", \"trailing\", \"spinner\"] as const,\n defaults: { tone: \"primary\", size: \"medium\", shape: \"rounded\", align: \"center\", appearance: \"flat\" } as const,\n // A solid underside belongs to the button, rather than a product's second press/state engine.\n raised: { depths: { small: 3, medium: 4, large: 5 }, sideShade: 0.25, settleDuration: 120 },\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; appearance: ButtonAppearance };\n raised: { depths: Record<ButtonSize, number>; sideShade: number; settleDuration: number };\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/** Raised paint never adds a frame to a frameless ghost/link action. */\nexport function resolveButtonDepth(appearance: ButtonAppearance, tone: ButtonTone, size: ButtonSize): number {\n if (appearance !== \"flat\" && appearance !== \"raised\") throw new TypeError(\"Unknown Button appearance\");\n if (appearance === \"flat\" || tone === \"ghost\" || tone === \"link\") return 0;\n return buttonRecipe.raised.depths[size];\n}\n\n/**\n * Edge alignment for a ghost text Button at a row/header edge (2026-10-17 measured audit: a sort trigger's chevron\n * sat 29px from the edge against a 16px inset). Same rule as `resolveIconButtonEdgeOverhang`: a frameless control\n * overhangs the edge by its own inline padding so its label/glyph, not the transparent box, sets the inset.\n * Framed tones (primary, secondary, danger) align their frame instead, and `link` already has no padding: 0.\n */\nexport type ButtonEdge = \"start\" | \"end\" | \"both\";\nexport function resolveButtonEdgeOverhang(tone: ButtonTone, size: ButtonSize): number {\n const toneContract = buttonRecipe.tones[tone];\n if (toneContract.background !== null || toneContract.border !== null) return 0;\n return toneContract.paddingHorizontal ?? buttonRecipe.sizes[size].paddingHorizontal;\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 // Error and focus can share a hue in a product palette; thickness keeps validation distinct without color alone.\n invalid: { border: \"danger\", borderWidth: 2 },\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.medium,\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<\"idle\" | \"focused\", { border: keyof ThemeColors }> & {\n invalid: { border: keyof ThemeColors; borderWidth: number };\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"]}
|
package/dist/behaviors.d.ts
CHANGED
|
@@ -1341,6 +1341,28 @@ export declare const behaviorRegistry: {
|
|
|
1341
1341
|
};
|
|
1342
1342
|
readonly scenarios: readonly ["visible-label-or-accessibility-label-names-trigger", "trigger-shows-the-product-formatted-display-value-or-placeholder", "popover-and-sheet-content-reuse-the-calendar-grid-contract-unchanged", "activating-an-enabled-date-commits-selection-and-closes", "disabled-dates-remain-focusable-but-never-commit-or-close", "clear-commits-null-and-closes-without-reopening", "escape-closes-without-commit-and-restores-trigger-focus", "outside-press-closes-without-commit", "controlled-owner-may-defer-a-selection-close-request", "changing-the-focused-month-never-changes-or-clears-the-selection", "range-selection-is-not-part-of-the-contract"];
|
|
1343
1343
|
};
|
|
1344
|
+
readonly timePicker: {
|
|
1345
|
+
readonly controlled: readonly ["value", "onValueChange"];
|
|
1346
|
+
readonly inputs: readonly ["labels", "minuteStep", "isTimeUnavailable", "presentation"];
|
|
1347
|
+
readonly stateAxes: {
|
|
1348
|
+
readonly availability: readonly ["enabled", "disabled", "readOnly"];
|
|
1349
|
+
readonly value: readonly ["empty", "partial", "selected"];
|
|
1350
|
+
readonly interaction: readonly ["closed", "editing"];
|
|
1351
|
+
};
|
|
1352
|
+
readonly web: {
|
|
1353
|
+
readonly roles: readonly ["button", "dialog", "listbox", "option"];
|
|
1354
|
+
readonly keyboard: readonly ["Tab", "Enter", "Space", "Escape", "ArrowUp", "ArrowDown", "Home", "End"];
|
|
1355
|
+
readonly focus: "roving";
|
|
1356
|
+
readonly dismiss: readonly ["action", "escape", "outside", "blur"];
|
|
1357
|
+
};
|
|
1358
|
+
readonly native: {
|
|
1359
|
+
readonly roles: readonly ["button", "dialog", "radio"];
|
|
1360
|
+
readonly states: readonly ["disabled", "expanded", "checked"];
|
|
1361
|
+
readonly actions: readonly ["activate", "dismiss"];
|
|
1362
|
+
readonly dismiss: readonly ["action", "back", "outside"];
|
|
1363
|
+
};
|
|
1364
|
+
readonly scenarios: readonly ["two-columns-share-one-draft-and-overlay", "column-selection-never-dismisses", "confirm-commits-a-complete-available-HH:mm", "cancel-discards-edits", "external-value-reconciles-draft", "inline-parent-owns-confirmation", "unavailable-options-never-activate", "midnight-is-a-valid-value"];
|
|
1365
|
+
};
|
|
1344
1366
|
readonly sidePanel: {
|
|
1345
1367
|
readonly controlled: readonly ["open", "defaultOpen", "onOpenChange", "dismissPolicy"];
|
|
1346
1368
|
readonly defaults: {
|
package/dist/behaviors.d.ts.map
CHANGED
|
@@ -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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { timePickerBehavior } from "./time-picker.js";
|
|
1
2
|
import { anchorBehavior } from "./anchor.js";
|
|
2
3
|
import { agreementBehavior } from "./agreement.js";
|
|
3
4
|
import { topBehavior } from "./top.js";
|
|
@@ -964,6 +965,7 @@ export const behaviorRegistry = {
|
|
|
964
965
|
passwordField: passwordFieldBehavior,
|
|
965
966
|
splitter: splitterBehavior,
|
|
966
967
|
datePicker: datePickerBehavior,
|
|
968
|
+
timePicker: timePickerBehavior,
|
|
967
969
|
sidePanel: sidePanelBehavior,
|
|
968
970
|
filePicker: filePickerBehavior,
|
|
969
971
|
pagination: {
|