@hjmds/design-contracts 1.17.1 → 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.
- package/dist/activity-chip.d.ts +127 -0
- package/dist/activity-chip.d.ts.map +1 -0
- package/dist/activity-chip.js +65 -0
- package/dist/activity-chip.js.map +1 -0
- package/dist/base-recipes.d.ts +1 -1
- package/dist/base-recipes.d.ts.map +1 -1
- package/dist/base-recipes.js +2 -1
- package/dist/base-recipes.js.map +1 -1
- package/dist/behaviors.d.ts +2 -0
- package/dist/behaviors.d.ts.map +1 -1
- package/dist/behaviors.js +1 -0
- package/dist/behaviors.js.map +1 -1
- package/dist/bottom-navigation.d.ts +12 -0
- package/dist/bottom-navigation.d.ts.map +1 -1
- package/dist/bottom-navigation.js +7 -0
- package/dist/bottom-navigation.js.map +1 -1
- package/dist/card.d.ts +4 -0
- package/dist/card.d.ts.map +1 -1
- package/dist/card.js +4 -1
- package/dist/card.js.map +1 -1
- package/dist/catalog.d.ts +39 -9
- package/dist/catalog.d.ts.map +1 -1
- package/dist/component-recipes.d.ts +33 -3
- package/dist/component-recipes.d.ts.map +1 -1
- package/dist/component-recipes.js +27 -5
- package/dist/component-recipes.js.map +1 -1
- package/dist/content-transition.d.ts +1 -1
- package/dist/content-transition.d.ts.map +1 -1
- package/dist/content-transition.js +2 -2
- package/dist/content-transition.js.map +1 -1
- package/dist/icon-button-recipe.d.ts +1 -5
- package/dist/icon-button-recipe.d.ts.map +1 -1
- package/dist/icon-button-recipe.js +2 -1
- package/dist/icon-button-recipe.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/screen-patterns.d.ts +6 -0
- package/dist/screen-patterns.d.ts.map +1 -1
- package/dist/screen-patterns.js +5 -0
- package/dist/screen-patterns.js.map +1 -1
- package/dist/toast-liquid.d.ts +1 -1
- package/dist/toast-liquid.d.ts.map +1 -1
- package/dist/toast-liquid.js +3 -2
- package/dist/toast-liquid.js.map +1 -1
- package/dist/toast.d.ts +19 -1
- package/dist/toast.d.ts.map +1 -1
- package/dist/toast.js +16 -1
- package/dist/toast.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/activity-chip.md +34 -0
- package/docs/bottom-navigation.md +5 -1
- package/docs/generated/component-maturity.md +1 -1
- package/docs/generated/renderer-evidence.json +3 -3
- package/docs/generated/renderer-evidence.md +1 -1
- package/docs/generated/showcase-manifest.json +1 -1
- package/docs/toast.md +23 -0
- package/docs/usage/README.md +2 -0
- package/docs/usage/components/activity-chip.md +109 -0
- package/docs/usage/components/bottom-navigation.md +2 -1
- package/docs/usage/components/button.md +4 -1
- package/docs/usage/components/card.md +27 -6
- package/docs/usage/components/chat-message.md +4 -0
- package/docs/usage/components/content-transition.md +1 -0
- package/docs/usage/components/icon-button.md +3 -0
- package/docs/usage/components/settings-screen.md +7 -7
- package/docs/usage/components/switch.md +9 -1
- package/docs/usage/components/text-area.md +3 -0
- package/docs/usage/components/toast.md +26 -8
- package/docs/usage/compositions/activity-status.md +162 -0
- package/package.json +7 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-transition.d.ts","sourceRoot":"","sources":["../src/content-transition.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAC1E;oFACoF;AACpF,eAAO,MAAM,uBAAuB;;;;CAAgD,CAAC;AACrF;8EAC8E;AAC9E,wBAAgB,wBAAwB,CAAC,MAAM,GAAE,uBAAgC,EAAE,SAAS,GAAE,KAAK,GAAG,KAAa;;;;;
|
|
1
|
+
{"version":3,"file":"content-transition.d.ts","sourceRoot":"","sources":["../src/content-transition.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAC1E;oFACoF;AACpF,eAAO,MAAM,uBAAuB;;;;CAAgD,CAAC;AACrF;8EAC8E;AAC9E,wBAAgB,wBAAwB,CAAC,MAAM,GAAE,uBAAgC,EAAE,SAAS,GAAE,KAAK,GAAG,KAAa,EAAE,eAAe,GAAE,SAAS,GAAG,UAAsB;;;;;EAQvK;AAED;oFACoF;AACpF,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE/F;;oFAEoF;AACpF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACzC,WAAW,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EAC9C,aAAa,UAAQ,GACpB,QAAQ,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAe7F"}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
export const contentTransitionMotion = { rise: 12, slide: 16, scale: 0.96 };
|
|
4
4
|
/** Bounded travel keeps decorative motion close to the destination.
|
|
5
5
|
* Single-subtree recipes: preserve wrapping, focus and accessible content. */
|
|
6
|
-
export function resolveContentTransition(preset = "fade", direction = "ltr") {
|
|
6
|
+
export function resolveContentTransition(preset = "fade", direction = "ltr", travelDirection = "forward") {
|
|
7
7
|
switch (preset) {
|
|
8
8
|
case "fade": return { opacity: 0, translateX: 0, translateY: 0, scale: 1 };
|
|
9
9
|
case "rise": return { opacity: 0, translateX: 0, translateY: contentTransitionMotion.rise, scale: 1 };
|
|
10
|
-
case "slide": return { opacity: 0, translateX: (direction === "rtl" ? -1 : 1) * contentTransitionMotion.slide, translateY: 0, scale: 1 };
|
|
10
|
+
case "slide": return { opacity: 0, translateX: (direction === "rtl" ? -1 : 1) * (travelDirection === "backward" ? -1 : 1) * contentTransitionMotion.slide, translateY: 0, scale: 1 };
|
|
11
11
|
case "scale": return { opacity: 0, translateX: 0, translateY: 0, scale: contentTransitionMotion.scale };
|
|
12
12
|
default: throw new TypeError("Unsupported content transition preset");
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-transition.js","sourceRoot":"","sources":["../src/content-transition.ts"],"names":[],"mappings":"AACA;oFACoF;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAW,CAAC;AACrF;8EAC8E;AAC9E,MAAM,UAAU,wBAAwB,CAAC,SAAkC,MAAM,EAAE,YAA2B,KAAK;
|
|
1
|
+
{"version":3,"file":"content-transition.js","sourceRoot":"","sources":["../src/content-transition.ts"],"names":[],"mappings":"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","sourcesContent":["export type ContentTransitionPreset = \"fade\" | \"rise\" | \"slide\" | \"scale\";\n/** Small local travel preserves context; these are presentation values, never\n * gesture activation thresholds. Retain the existing geometry for compatibility. */\nexport const contentTransitionMotion = { rise: 12, slide: 16, scale: 0.96 } as const;\n/** Bounded travel keeps decorative motion close to the destination.\n * Single-subtree recipes: preserve wrapping, focus and accessible content. */\nexport function resolveContentTransition(preset: ContentTransitionPreset = \"fade\", direction: \"ltr\" | \"rtl\" = \"ltr\", travelDirection: \"forward\" | \"backward\" = \"forward\") {\n switch (preset) {\n case \"fade\": return { opacity: 0, translateX: 0, translateY: 0, scale: 1 };\n case \"rise\": return { opacity: 0, translateX: 0, translateY: contentTransitionMotion.rise, scale: 1 };\n case \"slide\": return { opacity: 0, translateX: (direction === \"rtl\" ? -1 : 1) * (travelDirection === \"backward\" ? -1 : 1) * contentTransitionMotion.slide, translateY: 0, scale: 1 };\n case \"scale\": return { opacity: 0, translateX: 0, translateY: 0, scale: contentTransitionMotion.scale };\n default: throw new TypeError(\"Unsupported content transition preset\");\n }\n}\n\n/** Both rectangles must be measured in the same physical viewport coordinates.\n * Router shared-element IDs are not a substitute for a local overlay's geometry. */\nexport type TransitionRect = Readonly<{ x: number; y: number; width: number; height: number }>;\n\n/** Invert the destination around its center so it starts at the trigger bounds.\n * A renderer interpolates this transform to identity and owns cancellation,\n * measurement freshness, presence and focus; this resolver never clones content. */\nexport function resolveOriginTransition(\n origin: TransitionRect | null | undefined,\n destination: TransitionRect | null | undefined,\n reducedMotion = false,\n): Readonly<{ translateX: number; translateY: number; scaleX: number; scaleY: number }> | null {\n // Missing/zero geometry occurs before layout and after trigger removal. Keep\n // the canonical overlay available instead of throwing or guessing coordinates.\n if (reducedMotion || !origin || !destination) return null;\n for (const rect of [origin, destination]) {\n if (![rect.x, rect.y, rect.width, rect.height].every(Number.isFinite) || rect.width <= 0 || rect.height <= 0) return null;\n }\n const transform = {\n translateX: (origin.x - destination.x) + (origin.width - destination.width) / 2,\n translateY: (origin.y - destination.y) + (origin.height - destination.height) / 2,\n scaleX: origin.width / destination.width,\n scaleY: origin.height / destination.height,\n };\n // Finite measurements can still overflow or underflow during subtraction/division.\n return Object.values(transform).every(Number.isFinite) && transform.scaleX > 0 && transform.scaleY > 0 ? transform : null;\n}\n"]}
|
|
@@ -96,11 +96,7 @@ export declare const iconButtonRecipe: {
|
|
|
96
96
|
key: "contentBrand";
|
|
97
97
|
alpha?: number;
|
|
98
98
|
}>;
|
|
99
|
-
readonly border:
|
|
100
|
-
source: "theme";
|
|
101
|
-
key: "contentBrand";
|
|
102
|
-
alpha?: number;
|
|
103
|
-
}>;
|
|
99
|
+
readonly border: null;
|
|
104
100
|
};
|
|
105
101
|
readonly pressedOpacity: 0.86;
|
|
106
102
|
readonly disabledOpacity: 0.5;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-button-recipe.d.ts","sourceRoot":"","sources":["../src/icon-button-recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAC;AAQ/B,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1E,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"icon-button-recipe.d.ts","sourceRoot":"","sources":["../src/icon-button-recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAC;AAQ/B,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8D5B,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IACpD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC,CAAC;AAEH,iFAAiF;AACjF,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,UAAQ,GACf,8BAA8B,CAiBhC"}
|
|
@@ -39,7 +39,8 @@ export const iconButtonRecipe = {
|
|
|
39
39
|
selected: {
|
|
40
40
|
background: semanticColors.canvas,
|
|
41
41
|
content: semanticColors.content.brand,
|
|
42
|
-
|
|
42
|
+
// Match Button: selection changes color without introducing an outline.
|
|
43
|
+
border: null,
|
|
43
44
|
},
|
|
44
45
|
pressedOpacity: opacity.pressed,
|
|
45
46
|
disabledOpacity: opacity.disabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-button-recipe.js","sourceRoot":"","sources":["../src/icon-button-recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAGtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,OAAO,EACP,MAAM,GAEP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAMtD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAU;IAC3C,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;IAC7D,KAAK,EAAE;QACL,OAAO,EAAE;YACP,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU;YAClD,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO;YAC5C,MAAM,EAAE,IAAI;SACb;QACD,SAAS,EAAE;YACT,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU;YACpD,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;YAC9C,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;SAC7C;QACD,KAAK,EAAE;YACL,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS;YACzC,MAAM,EAAE,IAAI;SACb;QACD,MAAM,EAAE;YACN,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU;YACnD,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;YAC7C,MAAM,EAAE,IAAI;SACb;KACF;IACD,KAAK,EAAE;QACL,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QAChD,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QACjD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;KACjD;IACD,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;IACzC,MAAM,EAAE;QACN,4EAA4E;QAC5E,yEAAyE;QACzE,oEAAoE;QACpE,QAAQ,EAAE;YACR,UAAU,EAAE,cAAc,CAAC,MAAM;YACjC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK;YACrC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"icon-button-recipe.js","sourceRoot":"","sources":["../src/icon-button-recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAGtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,OAAO,EACP,MAAM,GAEP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAMtD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAU;IAC3C,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;IAC7D,KAAK,EAAE;QACL,OAAO,EAAE;YACP,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU;YAClD,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO;YAC5C,MAAM,EAAE,IAAI;SACb;QACD,SAAS,EAAE;YACT,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU;YACpD,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;YAC9C,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;SAC7C;QACD,KAAK,EAAE;YACL,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS;YACzC,MAAM,EAAE,IAAI;SACb;QACD,MAAM,EAAE;YACN,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU;YACnD,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;YAC7C,MAAM,EAAE,IAAI;SACb;KACF;IACD,KAAK,EAAE;QACL,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QAChD,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QACjD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;KACjD;IACD,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;IACzC,MAAM,EAAE;QACN,4EAA4E;QAC5E,yEAAyE;QACzE,oEAAoE;QACpE,QAAQ,EAAE;YACR,UAAU,EAAE,cAAc,CAAC,MAAM;YACjC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK;YACrC,wEAAwE;YACxE,MAAM,EAAE,IAAI;SACb;QACD,cAAc,EAAE,OAAO,CAAC,OAAO;QAC/B,eAAe,EAAE,OAAO,CAAC,QAAQ;KAClC;CAmBF,CAAC;AAQF,iFAAiF;AACjF,MAAM,UAAU,6BAA6B,CAC3C,IAAoB,EACpB,OAA8B,EAC9B,QAAQ,GAAG,KAAK;IAEhB,MAAM,QAAQ,GAIV,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/E,OAAO;QACL,UAAU,EACR,QAAQ,CAAC,UAAU,KAAK,IAAI;YAC1B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;QACzD,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QACzD,MAAM,EACJ,QAAQ,CAAC,MAAM,KAAK,IAAI;YACtB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;KACtD,CAAC;AACJ,CAAC","sourcesContent":["import {\n resolveColorReference,\n type ColorReference,\n type ColorReferencePalette,\n} from \"./color-references.js\";\nimport {\n opacity,\n radius,\n type GlyphSize,\n} from \"./foundations.js\";\nimport { semanticColors } from \"./semantic-colors.js\";\n\nexport type IconButtonSize = \"small\" | \"medium\" | \"large\";\nexport type IconButtonShape = \"rounded\" | \"circle\";\nexport type IconButtonTone = \"primary\" | \"secondary\" | \"ghost\" | \"danger\";\n\nexport const iconButtonRecipe = {\n slots: [\"root\", \"icon\", \"spinner\"] as const,\n defaults: { tone: \"ghost\", size: \"medium\", shape: \"rounded\" },\n tones: {\n primary: {\n background: semanticColors.action.brand.background,\n content: semanticColors.action.brand.content,\n border: null,\n },\n secondary: {\n background: semanticColors.action.neutral.background,\n content: semanticColors.action.neutral.content,\n border: semanticColors.action.neutral.border,\n },\n ghost: {\n background: null,\n content: semanticColors.content.secondary,\n border: null,\n },\n danger: {\n background: semanticColors.action.danger.background,\n content: semanticColors.action.danger.content,\n border: null,\n },\n },\n sizes: {\n small: { diameter: 36, hitSlop: 4, glyph: \"sm\" },\n medium: { diameter: 44, hitSlop: 0, glyph: \"md\" },\n large: { diameter: 52, hitSlop: 0, glyph: \"lg\" },\n },\n shapes: { rounded: \"md\", circle: \"full\" },\n states: {\n // `aria-pressed` / `accessibilityState.selected` already carried the toggle\n // state; without a paired visual every consumer painted the pressed icon\n // button in product styles. Mirrors `buttonRecipe.states.selected`.\n selected: {\n background: semanticColors.canvas,\n content: semanticColors.content.brand,\n // Match Button: selection changes color without introducing an outline.\n border: null,\n },\n pressedOpacity: opacity.pressed,\n disabledOpacity: opacity.disabled,\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: {\n tone: IconButtonTone;\n size: IconButtonSize;\n shape: IconButtonShape;\n };\n tones: Record<\n IconButtonTone,\n { background: ColorReference | null; content: ColorReference; border: ColorReference | null }\n >;\n sizes: Record<IconButtonSize, { diameter: number; hitSlop: number; glyph: GlyphSize }>;\n shapes: Record<IconButtonShape, keyof typeof radius>;\n states: {\n selected: { background: ColorReference; content: ColorReference; border: ColorReference | null };\n pressedOpacity: number;\n disabledOpacity: number;\n };\n};\n\nexport type ResolvedIconButtonPresentation = Readonly<{\n background: string | null;\n content: string;\n border: string | null;\n}>;\n\n/** Resolve one recipe tone for non-CSS renderers without a second tone table. */\nexport function resolveIconButtonPresentation(\n tone: IconButtonTone,\n palette: ColorReferencePalette,\n selected = false,\n): ResolvedIconButtonPresentation {\n const contract: {\n background: ColorReference | null;\n content: ColorReference;\n border: ColorReference | null;\n } = selected ? iconButtonRecipe.states.selected : iconButtonRecipe.tones[tone];\n return {\n background:\n contract.background === null\n ? null\n : resolveColorReference(contract.background, palette),\n content: resolveColorReference(contract.content, palette),\n border:\n contract.border === null\n ? null\n : resolveColorReference(contract.border, palette),\n };\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,11 +3,11 @@ export { containerDefaults, containerRecipe, resolveContainerDescriptor, validat
|
|
|
3
3
|
export { visuallyHiddenRecipe, type VisuallyHiddenContract, } from "./visually-hidden.js";
|
|
4
4
|
export { getIconDirectionality, getIconTransform, resolveIconDescriptor, semanticIconNames, validateIconDescriptor, type DecorativeIconDescriptor, type IconDescriptor, type IconDirection, type IconDirectionality, type IconTransform, type InformativeIconDescriptor, type ResolvedIconDescriptor, type SemanticIconName, } from "./icon.js";
|
|
5
5
|
export { resolveLinkDescriptor, validateLinkDescriptor, validateLinkDestination, type ExternalLinkDestination, type InternalLinkDestination, type LinkDescriptor, type LinkDestination, type LinkIconDescriptor, type ResolvedLinkDescriptor, type ResolvedLinkIconDescriptor, } from "./link.js";
|
|
6
|
-
export { bottomNavigationBehaviorDefaults, resolveBottomNavigationActivation, resolveBottomNavigationConfiguration, resolveBottomNavigationDescriptor, resolveBottomNavigationItem, validateBottomNavigationConfiguration, validateBottomNavigationDescriptor, type BottomNavigationActivation, type BottomNavigationConfiguration, type BottomNavigationCounterBadge, type BottomNavigationDescriptor, type BottomNavigationDirection, type BottomNavigationIconDescriptor, type BottomNavigationItemDescriptor, type BottomNavigationKeyboardBehavior, type ResolvedBottomNavigationCounterBadge, type ResolvedBottomNavigationConfiguration, type ResolvedBottomNavigationDescriptor, type ResolvedBottomNavigationIconDescriptor, type ResolvedBottomNavigationItemDescriptor, } from "./bottom-navigation.js";
|
|
6
|
+
export { bottomNavigationBehaviorDefaults, resolveBottomNavigationActivation, resolveBottomNavigationConfiguration, resolveBottomNavigationDescriptor, resolveBottomNavigationItem, validateBottomNavigationConfiguration, validateBottomNavigationDescriptor, type BottomNavigationActivation, type BottomNavigationConfiguration, type BottomNavigationCounterBadge, type BottomNavigationDescriptor, type BottomNavigationDirection, type BottomNavigationIconDescriptor, type BottomNavigationItemDescriptor, type BottomNavigationKeyboardBehavior, type BottomNavigationLabels, type ResolvedBottomNavigationCounterBadge, type ResolvedBottomNavigationConfiguration, type ResolvedBottomNavigationDescriptor, type ResolvedBottomNavigationIconDescriptor, type ResolvedBottomNavigationItemDescriptor, } from "./bottom-navigation.js";
|
|
7
7
|
export { resolveTooltipDescriptor, tooltipBehaviorDefaults, tooltipDescriptorDefaults, validateTooltipDescriptor, validateTooltipOpenState, type ControlledTooltipOpenState, type ResolvedTooltipDescriptor, type TooltipAlign, type TooltipDescriptor, type TooltipOpenChangeDetails, type TooltipOpenChangeReason, type TooltipOpenState, type TooltipPlacement, type UncontrolledTooltipOpenState, } from "./tooltip.js";
|
|
8
8
|
export { alertDialogBehaviorDefaults, canDismissAlertDialog, createAlertDialogSession, getAlertDialogInitialFocus, validateAlertDialogRequest, type AlertDialogAsyncState, type AlertDialogCancelReason, type AlertDialogConfirmAction, type AlertDialogDismissReason, type AlertDialogInitialFocus, type AlertDialogMode, type AlertDialogOpenChangeReason, type AlertDialogOpenState, type AlertDialogPhase, type AlertDialogRequest, type AlertDialogResult, type AlertDialogSession, } from "./alert-dialog.js";
|
|
9
9
|
export { canDismissSheet, createSheetLifecycle, sheetBehaviorDefaults, type SheetDismissPolicy, type SheetDismissReason, type SheetLifecycle, type SheetOpenChangeDetails, type SheetOpenState, } from "./sheet.js";
|
|
10
|
-
export { createToastSession, createToastStore, resolveToastAnnouncement, resolveToastDescriptor, resolveToastDuration, liquidToastRecipe, resolveLiquidToastLayout, buildLiquidToastGeometry, validateLiquidToastAnchor, type LiquidToastAnchor, type LiquidToastLayout, type ToastPresentation, toastBehaviorDefaults, validateToastDescriptor, type ResolvedToastActionDescriptor, type ResolvedToastDescriptor, type ToastActionDescriptor, type ToastAnnouncement, type ToastAnnouncementPriority, type ToastDescriptor, type ToastDismissReason, type ToastDuplicatePolicy, type ToastId, type ToastOverflowPolicy, type ToastPauseReason, type ToastPhase, type ToastPublishOptions, type ToastPublishResult, type ToastSession, type ToastSessionSnapshot, type ToastStore, type ToastStoreOptions, type ToastStoreSnapshot, type ToastTimerSnapshot, type ToastTimerStatus, type ToastTimerUpdatePolicy, } from "./toast.js";
|
|
10
|
+
export { createToastSession, createToastStore, resolveToastAnnouncement, resolveToastDescriptor, resolveToastDuration, liquidToastRecipe, resolveLiquidToastLayout, buildLiquidToastGeometry, validateLiquidToastAnchor, type LiquidToastAnchor, type LiquidToastLayout, type ToastPresentation, toastBehaviorDefaults, validateToastDescriptor, type ResolvedToastActionDescriptor, type ResolvedToastDescriptor, type ToastActionDescriptor, type ToastAnnouncement, type ToastAnnouncementPriority, type ToastDescriptor, type ToastDismissReason, type ToastDuplicatePolicy, type ToastId, type ToastOverflowPolicy, type ToastPauseReason, type ToastPhase, type ToastProgressDescriptor, type ToastPublishOptions, type ToastPublishResult, type ToastSession, type ToastSessionSnapshot, type ToastStore, type ToastStoreOptions, type ToastStoreSnapshot, type ToastTimerSnapshot, type ToastTimerStatus, type ToastTimerUpdatePolicy, } from "./toast.js";
|
|
11
11
|
export { resolveStatisticDescriptor, statisticDefaults, statisticTrendMarks, validateStatisticDescriptor, validateStatisticGroup, type ResolvedStatisticDescriptor, type ResolvedStatisticTrendDescriptor, type StatisticDescriptor, type StatisticGroupDescriptor, type StatisticTrendDescriptor, type StatisticTrendDirection, type StatisticTrendTone, } from "./statistic.js";
|
|
12
12
|
export { canRequestLoadMore, createLoadMoreController, loadMoreBehaviorDefaults, validateLoadMoreDescriptor, validateLoadMoreLabels, validateLoadMoreState, type LoadMoreCompleteState, type LoadMoreController, type LoadMoreControllerOptions, type LoadMoreControllerSnapshot, type LoadMoreDescriptor, type LoadMoreErrorState, type LoadMoreLabels, type LoadMoreLoadingState, type LoadMoreMode, type LoadMoreReadyState, type LoadMoreRequest, type LoadMoreRequestHandler, type LoadMoreRequestOutcome, type LoadMoreRequestReason, type LoadMoreState, } from "./load-more.js";
|
|
13
13
|
export { collectionValidationDefaults, flattenCollectionItems, getCollectionNavigationIntent, getCollectionNavigationTarget, getCollectionTypeaheadMatch, isComboboxResultCurrent, reconcileSelectSelection, resolveComboboxSelectedItem, resolveCollectionItem, resolveSelectSelectedItem, validateCollection, type CollectionNavigationIntent, type CollectionSource, type SelectCollectionSectionDescriptor, type SelectCollectionSource, type CollectionTypeaheadOptions, type CollectionValidationOptions, type ComboboxCollectionState, type ComboboxState, type ReconcileSelectOptions, type SelectCollectionState, type SelectConfiguration, type SelectLabel, type SelectOpenChangeReason, type SelectOpenState, type SelectState, } from "./collection.js";
|
|
@@ -48,6 +48,7 @@ export * from "./file-picker.js";
|
|
|
48
48
|
export * from "./pagination.js";
|
|
49
49
|
export * from "./popover.js";
|
|
50
50
|
export * from "./upload-item.js";
|
|
51
|
+
export * from "./activity-chip.js";
|
|
51
52
|
export * from "./timeline.js";
|
|
52
53
|
export * from "./tree.js";
|
|
53
54
|
export * from "./steps.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -56,6 +56,8 @@ export * from "./file-picker.js";
|
|
|
56
56
|
export * from "./pagination.js";
|
|
57
57
|
export * from "./popover.js";
|
|
58
58
|
export * from "./upload-item.js";
|
|
59
|
+
// 2026-10-10 panel-toast trigger (composition activity-status); contract-only, no catalog row (frozen).
|
|
60
|
+
export * from "./activity-chip.js";
|
|
59
61
|
export * from "./timeline.js";
|
|
60
62
|
export * from "./tree.js";
|
|
61
63
|
export * from "./steps.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export {\n aspectRatioDefaults,\n aspectRatioRecipe,\n resolveAspectRatioDescriptor,\n validateAspectRatioValue,\n type AspectRatioDescriptor,\n type AspectRatioPreset,\n type AspectRatioValue,\n type ResolvedAspectRatioDescriptor,\n} from \"./aspect-ratio.js\";\n\nexport {\n containerDefaults,\n containerRecipe,\n resolveContainerDescriptor,\n validateContainerDescriptor,\n type ContainerDescriptor,\n type ContainerGutter,\n type ContainerSize,\n type ResolvedContainerDescriptor,\n} from \"./container.js\";\n\nexport {\n visuallyHiddenRecipe,\n type VisuallyHiddenContract,\n} from \"./visually-hidden.js\";\n\nexport {\n getIconDirectionality,\n getIconTransform,\n resolveIconDescriptor,\n semanticIconNames,\n validateIconDescriptor,\n type DecorativeIconDescriptor,\n type IconDescriptor,\n type IconDirection,\n type IconDirectionality,\n type IconTransform,\n type InformativeIconDescriptor,\n type ResolvedIconDescriptor,\n type SemanticIconName,\n} from \"./icon.js\";\n\nexport {\n resolveLinkDescriptor,\n validateLinkDescriptor,\n validateLinkDestination,\n type ExternalLinkDestination,\n type InternalLinkDestination,\n type LinkDescriptor,\n type LinkDestination,\n type LinkIconDescriptor,\n type ResolvedLinkDescriptor,\n type ResolvedLinkIconDescriptor,\n} from \"./link.js\";\n\nexport {\n bottomNavigationBehaviorDefaults,\n resolveBottomNavigationActivation,\n resolveBottomNavigationConfiguration,\n resolveBottomNavigationDescriptor,\n resolveBottomNavigationItem,\n validateBottomNavigationConfiguration,\n validateBottomNavigationDescriptor,\n type BottomNavigationActivation,\n type BottomNavigationConfiguration,\n type BottomNavigationCounterBadge,\n type BottomNavigationDescriptor,\n type BottomNavigationDirection,\n type BottomNavigationIconDescriptor,\n type BottomNavigationItemDescriptor,\n type BottomNavigationKeyboardBehavior,\n type ResolvedBottomNavigationCounterBadge,\n type ResolvedBottomNavigationConfiguration,\n type ResolvedBottomNavigationDescriptor,\n type ResolvedBottomNavigationIconDescriptor,\n type ResolvedBottomNavigationItemDescriptor,\n} from \"./bottom-navigation.js\";\n\nexport {\n resolveTooltipDescriptor,\n tooltipBehaviorDefaults,\n tooltipDescriptorDefaults,\n validateTooltipDescriptor,\n validateTooltipOpenState,\n type ControlledTooltipOpenState,\n type ResolvedTooltipDescriptor,\n type TooltipAlign,\n type TooltipDescriptor,\n type TooltipOpenChangeDetails,\n type TooltipOpenChangeReason,\n type TooltipOpenState,\n type TooltipPlacement,\n type UncontrolledTooltipOpenState,\n} from \"./tooltip.js\";\n\nexport {\n alertDialogBehaviorDefaults,\n canDismissAlertDialog,\n createAlertDialogSession,\n getAlertDialogInitialFocus,\n validateAlertDialogRequest,\n type AlertDialogAsyncState,\n type AlertDialogCancelReason,\n type AlertDialogConfirmAction,\n type AlertDialogDismissReason,\n type AlertDialogInitialFocus,\n type AlertDialogMode,\n type AlertDialogOpenChangeReason,\n type AlertDialogOpenState,\n type AlertDialogPhase,\n type AlertDialogRequest,\n type AlertDialogResult,\n type AlertDialogSession,\n} from \"./alert-dialog.js\";\n\nexport {\n canDismissSheet,\n createSheetLifecycle,\n sheetBehaviorDefaults,\n type SheetDismissPolicy,\n type SheetDismissReason,\n type SheetLifecycle,\n type SheetOpenChangeDetails,\n type SheetOpenState,\n} from \"./sheet.js\";\n\nexport {\n createToastSession,\n createToastStore,\n resolveToastAnnouncement,\n resolveToastDescriptor,\n resolveToastDuration,\n liquidToastRecipe,\n resolveLiquidToastLayout,\n buildLiquidToastGeometry,\n validateLiquidToastAnchor,\n type LiquidToastAnchor,\n type LiquidToastLayout,\n type ToastPresentation,\n toastBehaviorDefaults,\n validateToastDescriptor,\n type ResolvedToastActionDescriptor,\n type ResolvedToastDescriptor,\n type ToastActionDescriptor,\n type ToastAnnouncement,\n type ToastAnnouncementPriority,\n type ToastDescriptor,\n type ToastDismissReason,\n type ToastDuplicatePolicy,\n type ToastId,\n type ToastOverflowPolicy,\n type ToastPauseReason,\n type ToastPhase,\n type ToastPublishOptions,\n type ToastPublishResult,\n type ToastSession,\n type ToastSessionSnapshot,\n type ToastStore,\n type ToastStoreOptions,\n type ToastStoreSnapshot,\n type ToastTimerSnapshot,\n type ToastTimerStatus,\n type ToastTimerUpdatePolicy,\n} from \"./toast.js\";\n\nexport {\n resolveStatisticDescriptor,\n statisticDefaults,\n statisticTrendMarks,\n validateStatisticDescriptor,\n validateStatisticGroup,\n type ResolvedStatisticDescriptor,\n type ResolvedStatisticTrendDescriptor,\n type StatisticDescriptor,\n type StatisticGroupDescriptor,\n type StatisticTrendDescriptor,\n type StatisticTrendDirection,\n type StatisticTrendTone,\n} from \"./statistic.js\";\n\nexport {\n canRequestLoadMore,\n createLoadMoreController,\n loadMoreBehaviorDefaults,\n validateLoadMoreDescriptor,\n validateLoadMoreLabels,\n validateLoadMoreState,\n type LoadMoreCompleteState,\n type LoadMoreController,\n type LoadMoreControllerOptions,\n type LoadMoreControllerSnapshot,\n type LoadMoreDescriptor,\n type LoadMoreErrorState,\n type LoadMoreLabels,\n type LoadMoreLoadingState,\n type LoadMoreMode,\n type LoadMoreReadyState,\n type LoadMoreRequest,\n type LoadMoreRequestHandler,\n type LoadMoreRequestOutcome,\n type LoadMoreRequestReason,\n type LoadMoreState,\n} from \"./load-more.js\";\n\nexport {\n collectionValidationDefaults,\n flattenCollectionItems,\n getCollectionNavigationIntent,\n getCollectionNavigationTarget,\n getCollectionTypeaheadMatch,\n isComboboxResultCurrent,\n reconcileSelectSelection,\n resolveComboboxSelectedItem,\n resolveCollectionItem,\n resolveSelectSelectedItem,\n validateCollection,\n type CollectionNavigationIntent,\n type CollectionSource,\n type SelectCollectionSectionDescriptor,\n type SelectCollectionSource,\n type CollectionTypeaheadOptions,\n type CollectionValidationOptions,\n type ComboboxCollectionState,\n type ComboboxState,\n type ReconcileSelectOptions,\n type SelectCollectionState,\n type SelectConfiguration,\n type SelectLabel,\n type SelectOpenChangeReason,\n type SelectOpenState,\n type SelectState,\n} from \"./collection.js\";\n\nexport {\n ACCENTS,\n THEMES,\n accentFill,\n accentTint,\n brandGradient,\n isThemePreference,\n onAccentFill,\n onBrandGradient,\n withAlpha,\n type AccentTone,\n type ResolvedTheme,\n type ThemeColors,\n type ThemePreference,\n} from \"./colors.js\";\n\nexport {\n backdrop,\n breakpoint,\n control,\n easing,\n fontFamily,\n fontWeight,\n glyph,\n heading,\n layer,\n layout,\n letterSpacing,\n motion,\n motionPreset,\n numeric,\n opacity,\n overlay,\n radius,\n scrim,\n shadow,\n spacing,\n spring,\n stateLayer,\n stroke,\n typography,\n type BackdropReference,\n type FontFamily,\n type FontWeight,\n type FontWeightValue,\n type GlyphSize,\n type HeadingLevel,\n type LetterSpacing,\n type NumericVariant,\n type ReducedMotionBehavior,\n type TextVariant,\n} from \"./foundations.js\";\n\nexport {\n resolveResponsiveValue,\n resolveWindowClass,\n validateResponsiveValue,\n windowClassOrder,\n type ResponsiveValue,\n type WindowClass,\n} from \"./responsive.js\";\n\nexport {\n gridDefaults,\n gridGaps,\n gridRecipe,\n resolveGridLayout,\n validateGridDescriptor,\n type GridDescriptor,\n type GridGap,\n type GridGapToken,\n type ResolveGridLayoutOptions,\n type ResolvedGridLayout,\n} from \"./grid.js\";\n\nexport {\n accordionRecipe,\n alertDialogRecipe,\n avatarRecipe,\n badgeRecipe,\n bottomNavigationRecipe,\n bottomCtaRecipe,\n buttonRecipe,\n cardRecipe,\n chipRecipe,\n comboboxRecipe,\n counterBadgeRecipe,\n dialogRecipe,\n dividerRecipe,\n emptyStateRecipe,\n fieldRecipe,\n formatCounterBadgeCount,\n iconButtonRecipe,\n iconRecipe,\n linkRecipe,\n listRecipe,\n listRowRecipe,\n loadMoreRecipe,\n menuRecipe,\n noticeRecipe,\n progressRecipe,\n searchFieldRecipe,\n selectRecipe,\n selectionGroupRecipe,\n sectionRecipe,\n segmentedControlRecipe,\n selectionControlRecipe,\n sheetRecipe,\n skeletonRecipe,\n spinnerRecipe,\n surfaceDefaults,\n surfaceGeometry,\n stackRecipe,\n statisticRecipe,\n surfaceRecipe,\n switchRecipe,\n tabsRecipe,\n textRecipe,\n toastRecipe,\n tooltipRecipe,\n topBarRecipe,\n type AccordionDensity,\n type AlertDialogTone,\n type AvatarShape,\n type AvatarSize,\n type BadgeSize,\n type BadgeTone,\n type BadgeVariant,\n type BottomNavigationDensity,\n type BottomNavigationDistribution,\n type BottomNavigationPresentation,\n type ButtonSize,\n type ButtonTone,\n type CardHeadingLevel,\n type ChipSize,\n type SelectDensity,\n type SelectSize,\n type CounterBadgeSize,\n type CounterBadgeTone,\n type CounterBadgeVariant,\n type DialogSize,\n type FieldShape,\n type FieldVariant,\n type IconButtonShape,\n type IconButtonSize,\n type IconTone,\n type IconWeight,\n type LinkTone,\n type LinkVariant,\n type LoadMoreDensity,\n type ListRowDensity,\n type MenuDensity,\n type MenuItemTone,\n type NoticeTone,\n type ProgressSize,\n type ProgressTone,\n type SearchFieldSize,\n type SegmentedControlSize,\n type SelectionControlKind,\n type SelectionControlPresentation,\n type SelectionControlSize,\n type SelectionGroupOrientation,\n type SelectionGroupPresentation,\n type SpinnerSize,\n type SpinnerTone,\n type StackAlign,\n type StackAxis,\n type StackGap,\n type StackJustify,\n type StatisticDensity,\n type StatisticPresentation,\n type SurfaceTone,\n type SurfacePadding,\n type SurfaceRadius,\n type SwitchSize,\n type TabSize,\n type TabsLayout,\n type TabsOverflow,\n type TextEmphasis,\n type TextTone,\n type ToastPlacement,\n type ToastTone,\n type ToastToneMark,\n} from \"./recipes.js\";\n\nexport {\n accentColor,\n resolveColorReference,\n solidAccentColor,\n themeColor,\n type AccentColorReference,\n type AccentFillReference,\n type ColorReference,\n type ColorReferencePalette,\n type ThemeColorReference,\n} from \"./color-references.js\";\n\nexport {\n componentCatalog,\n getComponentSurfaceStatus,\n recipeRegistry,\n summarizeComponentRoadmap,\n type ComponentCatalogEntry,\n type ComponentCategory,\n type ComponentName,\n type ComponentPlatform,\n type ComponentRoadmap,\n type ComponentRoadmapState,\n type ComponentSurface,\n type ComponentSurfaceMaturity,\n type ComponentSurfaceStatus,\n type ComponentStatus,\n type RecipeName,\n} from \"./catalog.js\";\n\nexport { designSystemVersion } from \"./version.js\";\n\nexport {\n antDesignReferenceComponents,\n antDesignReferenceSystem,\n getAntDesignReferencesFor,\n summarizeAntDesignCoverage,\n type AntDesignCategory,\n type AntDesignComponentName,\n type AntDesignReferenceComponent,\n type ReferenceCoverageSummary,\n type ReferenceRelationship,\n} from \"./component-references.js\";\n\nexport {\n componentDefinitions,\n componentIds,\n getComponentDefinition,\n type ComponentDefinition,\n type ComponentId,\n type ComponentKind,\n} from \"./component-definitions.js\";\n\nexport { semanticColors } from \"./semantic-colors.js\";\n\nexport {\n behaviorRegistry,\n checkboxBehaviorDefaults,\n comboboxBehaviorDefaults,\n getCheckboxNextState,\n getRadioNavigationTarget,\n getSelectionNavigationIntent,\n getTabNavigationIntent,\n getTabNavigationTarget,\n reconcileCheckboxSelection,\n reconcileRadioSelection,\n radioGroupBehaviorDefaults,\n resolveInitialRadioValue,\n resolveControlAccessibleName,\n resolveRadioTabStop,\n resolveInitialTabValue,\n selectionGroupBehaviorDefaults,\n selectBehaviorDefaults,\n tabsBehaviorDefaults,\n toggleCheckboxSelection,\n validateCheckboxSelection,\n validateRadioSelection,\n validateSelectionItems,\n type AsyncCollectionState,\n type AvailabilityState,\n type BehaviorContract,\n type BehaviorName,\n type BehaviorStateAxis,\n type CollectionItemDescriptor,\n type CollectionItemTone,\n type CollectionKey,\n type CollectionSectionDescriptor,\n type MenuItemDescriptor,\n type MenuSectionDescriptor,\n type CollectionSelectionModel,\n type ComboboxCommitReason,\n type ComboboxFiltering,\n type ComboboxInput,\n type ControlledComboboxInput,\n type ControlledSelectSelection,\n type ControlledCheckboxGroupSelection,\n type ControlledCheckboxState,\n type ControlledRadioGroupSelection,\n type ContentState,\n type ControlledTabsSelection,\n type InteractionState,\n type MixedCheckboxActivation,\n type MultipleSelectionModel,\n type NativeAccessibilityState,\n type NoSelectionModel,\n type SingleSelectionModel,\n type SelectItemDescriptor,\n type SelectSelection,\n type CheckboxGroupSelection,\n type CheckboxSelection,\n type CheckboxState,\n type RadioGroupSelection,\n type SelectionDirection,\n type SelectionGroupLabel,\n type SelectionItemDescriptor,\n type SelectionNavigationIntent,\n type SelectionOrientation,\n type TabDescriptor,\n type TabNavigationIntent,\n type TabsActivationMode,\n type TabsDirection,\n type TabsMountPolicy,\n type TabsOrientation,\n type TabsPanelMode,\n type TabsSelection,\n type UncontrolledTabsSelection,\n type UncontrolledComboboxInput,\n type UncontrolledSelectSelection,\n type UncontrolledCheckboxGroupSelection,\n type UncontrolledCheckboxState,\n type UncontrolledRadioGroupSelection,\n type ValidationState,\n type ValueState,\n type WebKeyboardKey,\n} from \"./behaviors.js\";\n\nexport {\n collectionItemContract,\n fieldFrameContract,\n floatingSurfaceContract,\n focusIndicatorContract,\n formSupportContract,\n} from \"./component-contracts.js\";\n\nexport {\n assertShowcaseCoverage,\n createShowcaseCoverage,\n createShowcaseManifest,\n getRequiredShowcaseScenarios,\n getRequiredShowcaseEvidence,\n getRequiredShowcaseSurfaces,\n getShowcaseEnvironmentInput,\n getShowcaseStoryId,\n showcaseEnvironmentMatrix,\n showcaseManifest,\n showcaseScenarios,\n summarizeShowcaseMaturity,\n type ShowcaseComponentEntry,\n type ShowcaseCoverageEntry,\n type ShowcaseDirection,\n type ShowcaseEnvironment,\n type ShowcaseEvidenceEntry,\n type ShowcaseEvidenceRequirement,\n type ShowcaseMotionPreference,\n type ShowcaseScenario,\n type ShowcaseScenarioId,\n type ShowcaseSurface,\n type ShowcaseTextScale,\n type ShowcaseTheme,\n} from \"./showcase.js\";\n\nexport {\n assertShowcaseStoryIds,\n compareShowcaseStoryIds,\n createDesignSystemEvidence,\n createDesignSystemEvidenceCoverage,\n defineDesignSystemEvidence,\n designSystemEvidenceSchemaVersion,\n getShowcaseStoryIdsForSurface,\n toShowcaseEvidenceEntries,\n type DesignSystemEvidenceItem,\n type DesignSystemEvidenceManifest,\n type DesignSystemEvidenceSource,\n type DesignSystemEvidenceSourceKind,\n type ShowcaseStoryIdComparison,\n} from \"./evidence.js\";\n\n/*\n Batch 2 — 계약과 recipe가 준비된 컴포넌트.\n\n catalog의 status는 여전히 `planned`다. 로드맵의 maturity gate가 `planned → beta` 승격에\n **실제 제품 vertical slice 한 번**을 요구하므로, 계약이 준비된 것과 검증된 것을 섞지\n 않는다. 여기 있는 심볼은 제품이 renderer를 붙일 수 있다는 뜻이고, 붙여서 검증되면\n 그때 리드가 catalog를 올린다.\n*/\nexport * from \"./breadcrumb.js\";\nexport * from \"./calendar.js\";\nexport * from \"./carousel.js\";\nexport * from \"./command-palette.js\";\nexport * from \"./design-system-provider.js\";\nexport * from \"./floating-action-button.js\";\nexport * from \"./content-state.js\";\nexport * from \"./data-table.js\";\nexport * from \"./mentions.js\";\nexport * from \"./transfer-list.js\";\nexport * from \"./tour.js\";\nexport * from \"./layout.js\";\nexport * from \"./otp-field.js\";\nexport * from \"./password-field.js\";\nexport * from \"./splitter.js\";\nexport * from \"./tree-select.js\";\nexport * from \"./date-picker.js\";\nexport * from \"./side-panel.js\";\nexport * from \"./file-picker.js\";\nexport * from \"./pagination.js\";\nexport * from \"./popover.js\";\nexport * from \"./upload-item.js\";\nexport * from \"./timeline.js\";\nexport * from \"./tree.js\";\nexport * from \"./steps.js\";\nexport * from \"./number-field.js\";\nexport * from \"./slider.js\";\nexport * from \"./form.js\";\nexport * from \"./tag.js\";\nexport * from \"./description-list.js\";\nexport * from \"./result.js\";\nexport * from \"./image.js\";\n\nexport * from \"./anchor.js\";\n\nexport * from \"./agreement.js\";\nexport * from \"./top.js\";\n\nexport * from \"./provider-button.js\";\nexport * from \"./auth-screen.js\";\n\nexport * from \"./heading.js\";\n\nexport * from \"./toggle-group.js\";\nexport * from \"./tags-input.js\";\n\nexport * from \"./skip-nav.js\";\nexport * from \"./bottom-info.js\";\nexport * from \"./sidebar.js\";\n\nexport * from \"./formatters.js\";\n\nexport * from \"./native-platform.js\";\n\nexport * from \"./date-range.js\";\n\nexport * from \"./text-formats.js\";\n\nexport * from \"./collapsible.js\";\nexport * from \"./asset.js\";\nexport * from \"./dataviz.js\";\nexport * from \"./menubar.js\";\nexport * from \"./context-menu.js\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export {\n aspectRatioDefaults,\n aspectRatioRecipe,\n resolveAspectRatioDescriptor,\n validateAspectRatioValue,\n type AspectRatioDescriptor,\n type AspectRatioPreset,\n type AspectRatioValue,\n type ResolvedAspectRatioDescriptor,\n} from \"./aspect-ratio.js\";\n\nexport {\n containerDefaults,\n containerRecipe,\n resolveContainerDescriptor,\n validateContainerDescriptor,\n type ContainerDescriptor,\n type ContainerGutter,\n type ContainerSize,\n type ResolvedContainerDescriptor,\n} from \"./container.js\";\n\nexport {\n visuallyHiddenRecipe,\n type VisuallyHiddenContract,\n} from \"./visually-hidden.js\";\n\nexport {\n getIconDirectionality,\n getIconTransform,\n resolveIconDescriptor,\n semanticIconNames,\n validateIconDescriptor,\n type DecorativeIconDescriptor,\n type IconDescriptor,\n type IconDirection,\n type IconDirectionality,\n type IconTransform,\n type InformativeIconDescriptor,\n type ResolvedIconDescriptor,\n type SemanticIconName,\n} from \"./icon.js\";\n\nexport {\n resolveLinkDescriptor,\n validateLinkDescriptor,\n validateLinkDestination,\n type ExternalLinkDestination,\n type InternalLinkDestination,\n type LinkDescriptor,\n type LinkDestination,\n type LinkIconDescriptor,\n type ResolvedLinkDescriptor,\n type ResolvedLinkIconDescriptor,\n} from \"./link.js\";\n\nexport {\n bottomNavigationBehaviorDefaults,\n resolveBottomNavigationActivation,\n resolveBottomNavigationConfiguration,\n resolveBottomNavigationDescriptor,\n resolveBottomNavigationItem,\n validateBottomNavigationConfiguration,\n validateBottomNavigationDescriptor,\n type BottomNavigationActivation,\n type BottomNavigationConfiguration,\n type BottomNavigationCounterBadge,\n type BottomNavigationDescriptor,\n type BottomNavigationDirection,\n type BottomNavigationIconDescriptor,\n type BottomNavigationItemDescriptor,\n type BottomNavigationKeyboardBehavior,\n type BottomNavigationLabels,\n type ResolvedBottomNavigationCounterBadge,\n type ResolvedBottomNavigationConfiguration,\n type ResolvedBottomNavigationDescriptor,\n type ResolvedBottomNavigationIconDescriptor,\n type ResolvedBottomNavigationItemDescriptor,\n} from \"./bottom-navigation.js\";\n\nexport {\n resolveTooltipDescriptor,\n tooltipBehaviorDefaults,\n tooltipDescriptorDefaults,\n validateTooltipDescriptor,\n validateTooltipOpenState,\n type ControlledTooltipOpenState,\n type ResolvedTooltipDescriptor,\n type TooltipAlign,\n type TooltipDescriptor,\n type TooltipOpenChangeDetails,\n type TooltipOpenChangeReason,\n type TooltipOpenState,\n type TooltipPlacement,\n type UncontrolledTooltipOpenState,\n} from \"./tooltip.js\";\n\nexport {\n alertDialogBehaviorDefaults,\n canDismissAlertDialog,\n createAlertDialogSession,\n getAlertDialogInitialFocus,\n validateAlertDialogRequest,\n type AlertDialogAsyncState,\n type AlertDialogCancelReason,\n type AlertDialogConfirmAction,\n type AlertDialogDismissReason,\n type AlertDialogInitialFocus,\n type AlertDialogMode,\n type AlertDialogOpenChangeReason,\n type AlertDialogOpenState,\n type AlertDialogPhase,\n type AlertDialogRequest,\n type AlertDialogResult,\n type AlertDialogSession,\n} from \"./alert-dialog.js\";\n\nexport {\n canDismissSheet,\n createSheetLifecycle,\n sheetBehaviorDefaults,\n type SheetDismissPolicy,\n type SheetDismissReason,\n type SheetLifecycle,\n type SheetOpenChangeDetails,\n type SheetOpenState,\n} from \"./sheet.js\";\n\nexport {\n createToastSession,\n createToastStore,\n resolveToastAnnouncement,\n resolveToastDescriptor,\n resolveToastDuration,\n liquidToastRecipe,\n resolveLiquidToastLayout,\n buildLiquidToastGeometry,\n validateLiquidToastAnchor,\n type LiquidToastAnchor,\n type LiquidToastLayout,\n type ToastPresentation,\n toastBehaviorDefaults,\n validateToastDescriptor,\n type ResolvedToastActionDescriptor,\n type ResolvedToastDescriptor,\n type ToastActionDescriptor,\n type ToastAnnouncement,\n type ToastAnnouncementPriority,\n type ToastDescriptor,\n type ToastDismissReason,\n type ToastDuplicatePolicy,\n type ToastId,\n type ToastOverflowPolicy,\n type ToastPauseReason,\n type ToastPhase,\n type ToastProgressDescriptor,\n type ToastPublishOptions,\n type ToastPublishResult,\n type ToastSession,\n type ToastSessionSnapshot,\n type ToastStore,\n type ToastStoreOptions,\n type ToastStoreSnapshot,\n type ToastTimerSnapshot,\n type ToastTimerStatus,\n type ToastTimerUpdatePolicy,\n} from \"./toast.js\";\n\nexport {\n resolveStatisticDescriptor,\n statisticDefaults,\n statisticTrendMarks,\n validateStatisticDescriptor,\n validateStatisticGroup,\n type ResolvedStatisticDescriptor,\n type ResolvedStatisticTrendDescriptor,\n type StatisticDescriptor,\n type StatisticGroupDescriptor,\n type StatisticTrendDescriptor,\n type StatisticTrendDirection,\n type StatisticTrendTone,\n} from \"./statistic.js\";\n\nexport {\n canRequestLoadMore,\n createLoadMoreController,\n loadMoreBehaviorDefaults,\n validateLoadMoreDescriptor,\n validateLoadMoreLabels,\n validateLoadMoreState,\n type LoadMoreCompleteState,\n type LoadMoreController,\n type LoadMoreControllerOptions,\n type LoadMoreControllerSnapshot,\n type LoadMoreDescriptor,\n type LoadMoreErrorState,\n type LoadMoreLabels,\n type LoadMoreLoadingState,\n type LoadMoreMode,\n type LoadMoreReadyState,\n type LoadMoreRequest,\n type LoadMoreRequestHandler,\n type LoadMoreRequestOutcome,\n type LoadMoreRequestReason,\n type LoadMoreState,\n} from \"./load-more.js\";\n\nexport {\n collectionValidationDefaults,\n flattenCollectionItems,\n getCollectionNavigationIntent,\n getCollectionNavigationTarget,\n getCollectionTypeaheadMatch,\n isComboboxResultCurrent,\n reconcileSelectSelection,\n resolveComboboxSelectedItem,\n resolveCollectionItem,\n resolveSelectSelectedItem,\n validateCollection,\n type CollectionNavigationIntent,\n type CollectionSource,\n type SelectCollectionSectionDescriptor,\n type SelectCollectionSource,\n type CollectionTypeaheadOptions,\n type CollectionValidationOptions,\n type ComboboxCollectionState,\n type ComboboxState,\n type ReconcileSelectOptions,\n type SelectCollectionState,\n type SelectConfiguration,\n type SelectLabel,\n type SelectOpenChangeReason,\n type SelectOpenState,\n type SelectState,\n} from \"./collection.js\";\n\nexport {\n ACCENTS,\n THEMES,\n accentFill,\n accentTint,\n brandGradient,\n isThemePreference,\n onAccentFill,\n onBrandGradient,\n withAlpha,\n type AccentTone,\n type ResolvedTheme,\n type ThemeColors,\n type ThemePreference,\n} from \"./colors.js\";\n\nexport {\n backdrop,\n breakpoint,\n control,\n easing,\n fontFamily,\n fontWeight,\n glyph,\n heading,\n layer,\n layout,\n letterSpacing,\n motion,\n motionPreset,\n numeric,\n opacity,\n overlay,\n radius,\n scrim,\n shadow,\n spacing,\n spring,\n stateLayer,\n stroke,\n typography,\n type BackdropReference,\n type FontFamily,\n type FontWeight,\n type FontWeightValue,\n type GlyphSize,\n type HeadingLevel,\n type LetterSpacing,\n type NumericVariant,\n type ReducedMotionBehavior,\n type TextVariant,\n} from \"./foundations.js\";\n\nexport {\n resolveResponsiveValue,\n resolveWindowClass,\n validateResponsiveValue,\n windowClassOrder,\n type ResponsiveValue,\n type WindowClass,\n} from \"./responsive.js\";\n\nexport {\n gridDefaults,\n gridGaps,\n gridRecipe,\n resolveGridLayout,\n validateGridDescriptor,\n type GridDescriptor,\n type GridGap,\n type GridGapToken,\n type ResolveGridLayoutOptions,\n type ResolvedGridLayout,\n} from \"./grid.js\";\n\nexport {\n accordionRecipe,\n alertDialogRecipe,\n avatarRecipe,\n badgeRecipe,\n bottomNavigationRecipe,\n bottomCtaRecipe,\n buttonRecipe,\n cardRecipe,\n chipRecipe,\n comboboxRecipe,\n counterBadgeRecipe,\n dialogRecipe,\n dividerRecipe,\n emptyStateRecipe,\n fieldRecipe,\n formatCounterBadgeCount,\n iconButtonRecipe,\n iconRecipe,\n linkRecipe,\n listRecipe,\n listRowRecipe,\n loadMoreRecipe,\n menuRecipe,\n noticeRecipe,\n progressRecipe,\n searchFieldRecipe,\n selectRecipe,\n selectionGroupRecipe,\n sectionRecipe,\n segmentedControlRecipe,\n selectionControlRecipe,\n sheetRecipe,\n skeletonRecipe,\n spinnerRecipe,\n surfaceDefaults,\n surfaceGeometry,\n stackRecipe,\n statisticRecipe,\n surfaceRecipe,\n switchRecipe,\n tabsRecipe,\n textRecipe,\n toastRecipe,\n tooltipRecipe,\n topBarRecipe,\n type AccordionDensity,\n type AlertDialogTone,\n type AvatarShape,\n type AvatarSize,\n type BadgeSize,\n type BadgeTone,\n type BadgeVariant,\n type BottomNavigationDensity,\n type BottomNavigationDistribution,\n type BottomNavigationPresentation,\n type ButtonSize,\n type ButtonTone,\n type CardHeadingLevel,\n type ChipSize,\n type SelectDensity,\n type SelectSize,\n type CounterBadgeSize,\n type CounterBadgeTone,\n type CounterBadgeVariant,\n type DialogSize,\n type FieldShape,\n type FieldVariant,\n type IconButtonShape,\n type IconButtonSize,\n type IconTone,\n type IconWeight,\n type LinkTone,\n type LinkVariant,\n type LoadMoreDensity,\n type ListRowDensity,\n type MenuDensity,\n type MenuItemTone,\n type NoticeTone,\n type ProgressSize,\n type ProgressTone,\n type SearchFieldSize,\n type SegmentedControlSize,\n type SelectionControlKind,\n type SelectionControlPresentation,\n type SelectionControlSize,\n type SelectionGroupOrientation,\n type SelectionGroupPresentation,\n type SpinnerSize,\n type SpinnerTone,\n type StackAlign,\n type StackAxis,\n type StackGap,\n type StackJustify,\n type StatisticDensity,\n type StatisticPresentation,\n type SurfaceTone,\n type SurfacePadding,\n type SurfaceRadius,\n type SwitchSize,\n type TabSize,\n type TabsLayout,\n type TabsOverflow,\n type TextEmphasis,\n type TextTone,\n type ToastPlacement,\n type ToastTone,\n type ToastToneMark,\n} from \"./recipes.js\";\n\nexport {\n accentColor,\n resolveColorReference,\n solidAccentColor,\n themeColor,\n type AccentColorReference,\n type AccentFillReference,\n type ColorReference,\n type ColorReferencePalette,\n type ThemeColorReference,\n} from \"./color-references.js\";\n\nexport {\n componentCatalog,\n getComponentSurfaceStatus,\n recipeRegistry,\n summarizeComponentRoadmap,\n type ComponentCatalogEntry,\n type ComponentCategory,\n type ComponentName,\n type ComponentPlatform,\n type ComponentRoadmap,\n type ComponentRoadmapState,\n type ComponentSurface,\n type ComponentSurfaceMaturity,\n type ComponentSurfaceStatus,\n type ComponentStatus,\n type RecipeName,\n} from \"./catalog.js\";\n\nexport { designSystemVersion } from \"./version.js\";\n\nexport {\n antDesignReferenceComponents,\n antDesignReferenceSystem,\n getAntDesignReferencesFor,\n summarizeAntDesignCoverage,\n type AntDesignCategory,\n type AntDesignComponentName,\n type AntDesignReferenceComponent,\n type ReferenceCoverageSummary,\n type ReferenceRelationship,\n} from \"./component-references.js\";\n\nexport {\n componentDefinitions,\n componentIds,\n getComponentDefinition,\n type ComponentDefinition,\n type ComponentId,\n type ComponentKind,\n} from \"./component-definitions.js\";\n\nexport { semanticColors } from \"./semantic-colors.js\";\n\nexport {\n behaviorRegistry,\n checkboxBehaviorDefaults,\n comboboxBehaviorDefaults,\n getCheckboxNextState,\n getRadioNavigationTarget,\n getSelectionNavigationIntent,\n getTabNavigationIntent,\n getTabNavigationTarget,\n reconcileCheckboxSelection,\n reconcileRadioSelection,\n radioGroupBehaviorDefaults,\n resolveInitialRadioValue,\n resolveControlAccessibleName,\n resolveRadioTabStop,\n resolveInitialTabValue,\n selectionGroupBehaviorDefaults,\n selectBehaviorDefaults,\n tabsBehaviorDefaults,\n toggleCheckboxSelection,\n validateCheckboxSelection,\n validateRadioSelection,\n validateSelectionItems,\n type AsyncCollectionState,\n type AvailabilityState,\n type BehaviorContract,\n type BehaviorName,\n type BehaviorStateAxis,\n type CollectionItemDescriptor,\n type CollectionItemTone,\n type CollectionKey,\n type CollectionSectionDescriptor,\n type MenuItemDescriptor,\n type MenuSectionDescriptor,\n type CollectionSelectionModel,\n type ComboboxCommitReason,\n type ComboboxFiltering,\n type ComboboxInput,\n type ControlledComboboxInput,\n type ControlledSelectSelection,\n type ControlledCheckboxGroupSelection,\n type ControlledCheckboxState,\n type ControlledRadioGroupSelection,\n type ContentState,\n type ControlledTabsSelection,\n type InteractionState,\n type MixedCheckboxActivation,\n type MultipleSelectionModel,\n type NativeAccessibilityState,\n type NoSelectionModel,\n type SingleSelectionModel,\n type SelectItemDescriptor,\n type SelectSelection,\n type CheckboxGroupSelection,\n type CheckboxSelection,\n type CheckboxState,\n type RadioGroupSelection,\n type SelectionDirection,\n type SelectionGroupLabel,\n type SelectionItemDescriptor,\n type SelectionNavigationIntent,\n type SelectionOrientation,\n type TabDescriptor,\n type TabNavigationIntent,\n type TabsActivationMode,\n type TabsDirection,\n type TabsMountPolicy,\n type TabsOrientation,\n type TabsPanelMode,\n type TabsSelection,\n type UncontrolledTabsSelection,\n type UncontrolledComboboxInput,\n type UncontrolledSelectSelection,\n type UncontrolledCheckboxGroupSelection,\n type UncontrolledCheckboxState,\n type UncontrolledRadioGroupSelection,\n type ValidationState,\n type ValueState,\n type WebKeyboardKey,\n} from \"./behaviors.js\";\n\nexport {\n collectionItemContract,\n fieldFrameContract,\n floatingSurfaceContract,\n focusIndicatorContract,\n formSupportContract,\n} from \"./component-contracts.js\";\n\nexport {\n assertShowcaseCoverage,\n createShowcaseCoverage,\n createShowcaseManifest,\n getRequiredShowcaseScenarios,\n getRequiredShowcaseEvidence,\n getRequiredShowcaseSurfaces,\n getShowcaseEnvironmentInput,\n getShowcaseStoryId,\n showcaseEnvironmentMatrix,\n showcaseManifest,\n showcaseScenarios,\n summarizeShowcaseMaturity,\n type ShowcaseComponentEntry,\n type ShowcaseCoverageEntry,\n type ShowcaseDirection,\n type ShowcaseEnvironment,\n type ShowcaseEvidenceEntry,\n type ShowcaseEvidenceRequirement,\n type ShowcaseMotionPreference,\n type ShowcaseScenario,\n type ShowcaseScenarioId,\n type ShowcaseSurface,\n type ShowcaseTextScale,\n type ShowcaseTheme,\n} from \"./showcase.js\";\n\nexport {\n assertShowcaseStoryIds,\n compareShowcaseStoryIds,\n createDesignSystemEvidence,\n createDesignSystemEvidenceCoverage,\n defineDesignSystemEvidence,\n designSystemEvidenceSchemaVersion,\n getShowcaseStoryIdsForSurface,\n toShowcaseEvidenceEntries,\n type DesignSystemEvidenceItem,\n type DesignSystemEvidenceManifest,\n type DesignSystemEvidenceSource,\n type DesignSystemEvidenceSourceKind,\n type ShowcaseStoryIdComparison,\n} from \"./evidence.js\";\n\n/*\n Batch 2 — 계약과 recipe가 준비된 컴포넌트.\n\n catalog의 status는 여전히 `planned`다. 로드맵의 maturity gate가 `planned → beta` 승격에\n **실제 제품 vertical slice 한 번**을 요구하므로, 계약이 준비된 것과 검증된 것을 섞지\n 않는다. 여기 있는 심볼은 제품이 renderer를 붙일 수 있다는 뜻이고, 붙여서 검증되면\n 그때 리드가 catalog를 올린다.\n*/\nexport * from \"./breadcrumb.js\";\nexport * from \"./calendar.js\";\nexport * from \"./carousel.js\";\nexport * from \"./command-palette.js\";\nexport * from \"./design-system-provider.js\";\nexport * from \"./floating-action-button.js\";\nexport * from \"./content-state.js\";\nexport * from \"./data-table.js\";\nexport * from \"./mentions.js\";\nexport * from \"./transfer-list.js\";\nexport * from \"./tour.js\";\nexport * from \"./layout.js\";\nexport * from \"./otp-field.js\";\nexport * from \"./password-field.js\";\nexport * from \"./splitter.js\";\nexport * from \"./tree-select.js\";\nexport * from \"./date-picker.js\";\nexport * from \"./side-panel.js\";\nexport * from \"./file-picker.js\";\nexport * from \"./pagination.js\";\nexport * from \"./popover.js\";\nexport * from \"./upload-item.js\";\n// 2026-10-10 panel-toast trigger (composition activity-status); contract-only, no catalog row (frozen).\nexport * from \"./activity-chip.js\";\nexport * from \"./timeline.js\";\nexport * from \"./tree.js\";\nexport * from \"./steps.js\";\nexport * from \"./number-field.js\";\nexport * from \"./slider.js\";\nexport * from \"./form.js\";\nexport * from \"./tag.js\";\nexport * from \"./description-list.js\";\nexport * from \"./result.js\";\nexport * from \"./image.js\";\n\nexport * from \"./anchor.js\";\n\nexport * from \"./agreement.js\";\nexport * from \"./top.js\";\n\nexport * from \"./provider-button.js\";\nexport * from \"./auth-screen.js\";\n\nexport * from \"./heading.js\";\n\nexport * from \"./toggle-group.js\";\nexport * from \"./tags-input.js\";\n\nexport * from \"./skip-nav.js\";\nexport * from \"./bottom-info.js\";\nexport * from \"./sidebar.js\";\n\nexport * from \"./formatters.js\";\n\nexport * from \"./native-platform.js\";\n\nexport * from \"./date-range.js\";\n\nexport * from \"./text-formats.js\";\n\nexport * from \"./collapsible.js\";\nexport * from \"./asset.js\";\nexport * from \"./dataviz.js\";\nexport * from \"./menubar.js\";\nexport * from \"./context-menu.js\";\n"]}
|
|
@@ -59,6 +59,10 @@ export type ChatMessageDescriptor = Readonly<{
|
|
|
59
59
|
author: string;
|
|
60
60
|
timestamp: string;
|
|
61
61
|
deliveryLabel?: string;
|
|
62
|
+
/** Inward drag reveals time (incoming right, outgoing left) while delivery state remains visible; default preserves existing captions. */
|
|
63
|
+
timestampPresentation?: "always" | "swipe";
|
|
64
|
+
/** Connected authorship tip; opt-in keeps existing card-like conversations unchanged. */
|
|
65
|
+
bubbleTail?: boolean;
|
|
62
66
|
}>;
|
|
63
67
|
/** A denied permission goes to settings; rendering never requests OS access automatically. */
|
|
64
68
|
export type PermissionScreenStatus = "prompt" | "denied" | "granted" | "unavailable";
|
|
@@ -159,4 +163,6 @@ export declare const searchScreenRecipe: {
|
|
|
159
163
|
/** Between chips in applied filters and suggested queries. */
|
|
160
164
|
readonly chipGap: 8;
|
|
161
165
|
};
|
|
166
|
+
/** Horizontal intent preserves vertical scrolling and uses one reveal distance across renderers. */
|
|
167
|
+
export declare function timestampRevealOffset(dx: number, dy: number): number;
|
|
162
168
|
//# sourceMappingURL=screen-patterns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-patterns.d.ts","sourceRoot":"","sources":["../src/screen-patterns.ts"],"names":[],"mappings":"AAEA,0FAA0F;AAC1F,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,CAAC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,GAC3B,QAAQ,CAAC;IAAE,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE1G,wBAAgB,yBAAyB,CAAC,KAAK,GAAE,kBAAsC;;;;;EAatF;AAGD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;CAmBtB,CAAC;AAEX,0GAA0G;AAC1G,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yFAAyF;IACzF,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC,CAAC;AACH,4FAA4F;AAC5F,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,IAAI,GAAE,SAAS,GAAG,MAAkB,GAAG,OAAO,CAEnL;AACD,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,QAAgB,EAAE,OAAe,EAAE,eAAmB,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAGtI;AAED,gHAAgH;AAChH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"screen-patterns.d.ts","sourceRoot":"","sources":["../src/screen-patterns.ts"],"names":[],"mappings":"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"}
|
package/dist/screen-patterns.js
CHANGED
|
@@ -150,4 +150,9 @@ export const searchScreenRecipe = {
|
|
|
150
150
|
/** Between chips in applied filters and suggested queries. */
|
|
151
151
|
chipGap: spacing.xs,
|
|
152
152
|
};
|
|
153
|
+
/** Horizontal intent preserves vertical scrolling and uses one reveal distance across renderers. */
|
|
154
|
+
export function timestampRevealOffset(dx, dy) {
|
|
155
|
+
// A 12px dead zone and 2:1 direction bias avoid turning taps/list scrolling into a time gesture.
|
|
156
|
+
return dx > 12 && dx > Math.abs(dy) * 2 ? Math.min(dx, 88) : 0;
|
|
157
|
+
}
|
|
153
158
|
//# sourceMappingURL=screen-patterns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-patterns.js","sourceRoot":"","sources":["../src/screen-patterns.ts"],"names":[],"mappings":"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","sourcesContent":["import { layout, spacing } from \"./foundations.js\";\n\n/** Initial load replaces the body; refresh/save errors belong beside retained content. */\nexport type ScreenContentState =\n | Readonly<{ kind: \"ready\" }>\n | Readonly<{ kind: \"loading\" | \"empty\" | \"error\" | \"restricted\"; title: string; description?: string }>;\n\nexport function resolveScreenContentState(state: ScreenContentState = { kind: \"ready\" }) {\n if (![\"ready\", \"loading\", \"empty\", \"error\", \"restricted\"].includes(state.kind)) {\n throw new TypeError(\"Unknown screen content state\");\n }\n if (state.kind !== \"ready\" && !state.title.trim()) {\n throw new TypeError(\"Screen state requires a localized title\");\n }\n return {\n kind: state.kind,\n replacesContent: state.kind !== \"ready\",\n busy: state.kind === \"loading\",\n announcement: state.kind === \"error\" ? \"assertive\" : \"polite\",\n } as const;\n}\n\n// Reuse reading-width and spacing tokens; do not derive geometry from a product's device or artwork.\nexport const screenPatternRecipe = {\n maxWidth: layout.readingMaxWidth,\n padding: spacing.md,\n sectionGap: spacing.xl,\n itemGap: spacing.sm,\n stateGap: spacing.md,\n // Compact screens must keep back/title/save on one row; scale this floor for large text instead of reserving a desktop-width title.\n headerMinWidth: layout.readingMaxWidth / 6,\n // Reserve the opposite edge for authorship and cap the composer so history remains visible.\n messageMaxWidth: \"84%\",\n // Social thumbnails stay compact; selection order and removal replace a second toolbar.\n attachmentSize: 80,\n attachmentRemoveSize: 24,\n reactionHoldMs: 450,\n reactionMoveTolerance: 10,\n reactionMenuWidth: 320,\n replySwipeDistance: 60,\n composerMinLines: 1,\n composerMaxLines: 5,\n} as const;\n\n/** Controlled composer: HJM never clears drafts or interprets a fulfilled callback as server delivery. */\nexport type MessageComposerDescriptor = Readonly<{\n value: string;\n label: string;\n sendLabel: string;\n /** Short visual copy may differ from the complete accessible input name. */\n placeholder?: string;\n description?: string;\n error?: string;\n invalid?: boolean;\n /** Newline remains the compatible default; desktop chat may explicitly opt into send. */\n submitMode?: \"newline\" | \"send\";\n disabled?: boolean;\n pending?: boolean;\n attachmentCount?: number;\n}>;\n/** Safari may report the final IME Enter as keyCode 229 after isComposing becomes false. */\nexport function shouldSubmitMessageKey(event: Readonly<{ key: string; shiftKey?: boolean; isComposing?: boolean; keyCode?: number }>, mode: \"newline\" | \"send\" = \"newline\"): boolean {\n return mode === \"send\" && event.key === \"Enter\" && !event.shiftKey && !event.isComposing && event.keyCode !== 229;\n}\nexport function canSubmitMessage({ value, disabled = false, pending = false, attachmentCount = 0 }: MessageComposerDescriptor): boolean {\n if (!Number.isSafeInteger(attachmentCount) || attachmentCount < 0) throw new RangeError(\"Attachment count must be a nonnegative integer\");\n return !disabled && !pending && (value.trim().length > 0 || attachmentCount > 0);\n}\n\n/** Bubble alignment expresses authorship, not delivery; delivery text always comes from the product receipt. */\nexport type ChatMessageDescriptor = Readonly<{\n direction: \"incoming\" | \"outgoing\";\n author: string;\n timestamp: string;\n deliveryLabel?: string;\n}>;\n\n/** A denied permission goes to settings; rendering never requests OS access automatically. */\nexport type PermissionScreenStatus = \"prompt\" | \"denied\" | \"granted\" | \"unavailable\";\nexport function resolvePermissionAction(status:PermissionScreenStatus) {\n switch(status){case \"prompt\":return \"request\";case \"denied\":return \"settings\";case \"granted\":return \"continue\";case \"unavailable\":return null;default:throw new TypeError(\"Unknown permission state\");}\n}\nexport function resolveOnboardingStep(total:number,index:number){\n if(!Number.isInteger(total)||total<1||!Number.isInteger(index)||index<0||index>=total)throw new RangeError(\"Onboarding requires a valid step index\");\n return {first:index===0,last:index===total-1};\n}\n\n/** Replies are one level deep; reject orphaned/duplicate records instead of silently losing them. */\nexport function validateCommentThread(items:readonly {id:string;parentId:string|null}[]){\n const roots=new Set(items.filter(item=>item.parentId===null).map(item=>item.id));const ids=new Set<string>();\n for(const item of items){if(!item.id.trim()||ids.has(item.id))throw new TypeError(\"Comment ids must be unique and nonempty\");ids.add(item.id);if(item.parentId!==null&&(!roots.has(item.parentId)||item.parentId===item.id))throw new TypeError(\"Replies require an existing root comment\");}\n}\n\n/** Source bytes, permission requests, ordering and upload limits remain product-owned. */\nexport type MessageAttachmentDescriptor = Readonly<{ id: string; removeLabel: string; /** Local preparation can lock removal without locking text entry. */ disabled?: boolean }>;\nexport function validateMessageAttachments(attachments: readonly MessageAttachmentDescriptor[]): void {\n const ids = new Set<string>();\n for (const item of attachments) {\n if (!item.id.trim() || ids.has(item.id) || !item.removeLabel.trim()) throw new TypeError(\"Attachments require unique ids and localized removal labels\");\n ids.add(item.id);\n }\n}\n\n/** Require horizontal intent so a timeline scroll cannot accidentally start a reply. */\nexport function isReplySwipe(dx: number, dy: number): boolean {\n return Math.abs(dx) >= screenPatternRecipe.replySwipeDistance && Math.abs(dx) > Math.abs(dy) * 2;\n}\n\n/** The UI never infers permission or camera availability; product adapters own both. */\nexport type PhotoSource = \"library\" | \"camera\";\nexport type PhotoSourceLabels = Readonly<{ title:string; library:string; camera:string; cancel:string }>;\n\nexport type SavedItem = Readonly<{ id: string; title: string }>;\nexport type SavedCollection = Readonly<{ id: string; title: string; itemIds: readonly string[] }>;\nexport type SavedItemsLabels = Readonly<{ allItems: string; privateNotice: string; back: string; empty: string; createCollection: string }>;\n\n/** Unsave removes an item from every collection view without rewriting product-owned membership. */\nexport function resolveSavedItems<T extends SavedItem>(items:readonly T[],collections:readonly SavedCollection[],collectionId:string|null|undefined,selectedItemId:string|null|undefined){\n const ids=new Set<string>(),groups=new Set<string>();\n for(const item of items){if(!item.id.trim()||ids.has(item.id)||!item.title.trim())throw new TypeError(\"Saved items require unique ids and nonempty titles\");ids.add(item.id);}\n for(const group of collections){if(!group.id.trim()||groups.has(group.id)||!group.title.trim())throw new TypeError(\"Saved collections require unique ids and nonempty titles\");groups.add(group.id);}\n const collection=collections.find(item=>item.id===collectionId);\n // A deleted collection returns to the overview instead of showing a mislabeled all-posts view.\n const home=collectionId===undefined||(collectionId!==null&&!collection);\n const visible=home||collectionId===null?items:items.filter(item=>collection?.itemIds.includes(item.id));\n return {home,collection,visible,selected:home?undefined:visible.find(item=>item.id===selectedItemId)};\n}\n\n/**\n * SearchScreen phases (2026-10-06 search redesign, docs/screen-patterns.md#searchscreen-두-단계-검색).\n * Without a committed query (one-step search, the pre-1.13 behavior) any nonblank query is already\n * `results`. With one, typing a different query is `typing`: suggestions replace the results until the\n * user commits (Enter, a suggestion, a recent or suggested query). Comparing trimmed values keeps a\n * trailing space from flipping committed results back into suggestions.\n */\nexport type SearchScreenPhase = \"idle\" | \"typing\" | \"results\";\nexport function resolveSearchScreenPhase(query: string, committedQuery?: string): SearchScreenPhase {\n const typed = query.trim();\n if (!typed) return \"idle\";\n if (committedQuery === undefined) return \"results\";\n return typed === committedQuery.trim() ? \"results\" : \"typing\";\n}\n\n/**\n * The value a commit records, or `null` when there is nothing to commit. Blank commits are dropped\n * so a stray Enter never writes an empty recent search or fetches \"everything\".\n */\nexport function resolveSearchCommit(value: string): string | null {\n const next = value.trim();\n return next ? next : null;\n}\n\n/**\n * Why a committed search shows nothing. `filters` keeps the filter rail and offers \"clear all\";\n * `query` hides the rail (no filter can fix it) and offers suggested queries instead. Reference\n * services hide the rail on every zero result, which removes the only way to undo a filter.\n * `null` count means the result is still loading, so no cause is reported yet.\n */\nexport type SearchEmptyCause = \"none\" | \"filters\" | \"query\";\nexport function resolveSearchEmptyCause(count: number | null, appliedFilterCount: number): SearchEmptyCause {\n if (count === null || count > 0) return \"none\";\n if (count < 0 || !Number.isSafeInteger(count) || !Number.isSafeInteger(appliedFilterCount) || appliedFilterCount < 0) {\n throw new RangeError(\"Search counts must be nonnegative integers\");\n }\n return appliedFilterCount > 0 ? \"filters\" : \"query\";\n}\n\n/**\n * Index to focus after removing item `removedIndex` from a list that now has `remaining` items:\n * the item that slid into its place, else the new last item, else -1 (move to the fallback target).\n * Removing a focused chip or row would otherwise drop focus to <body>.\n */\nexport function resolveFocusAfterRemoval(removedIndex: number, remaining: number): number {\n if (!Number.isInteger(removedIndex) || removedIndex < 0 || !Number.isInteger(remaining) || remaining < 0) {\n throw new RangeError(\"Removal indexes must be nonnegative integers\");\n }\n return remaining === 0 ? -1 : Math.min(removedIndex, remaining - 1);\n}\n\n/** Recipe for the SearchScreen phase sections; geometry stays on shared spacing tokens. */\nexport const searchScreenRecipe = {\n /** Recent searches shown before the user types; reference services show 5–10 and let the rest scroll away. */\n recentVisible: 5,\n /** Suggestions under the \"search for ‘q’\" row. */\n suggestionVisible: 6,\n /** Skeleton rows while the first page of results loads. */\n loadingRows: 4,\n /** Between idle sections (recent, suggested). */\n sectionGap: spacing.xl,\n /** Section title to its list, and results header to applied filters. */\n headerGap: spacing.sm,\n /** Between chips in applied filters and suggested queries. */\n chipGap: spacing.xs,\n} as const;\n"]}
|
|
1
|
+
{"version":3,"file":"screen-patterns.js","sourceRoot":"","sources":["../src/screen-patterns.ts"],"names":[],"mappings":"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","sourcesContent":["import { layout, spacing } from \"./foundations.js\";\n\n/** Initial load replaces the body; refresh/save errors belong beside retained content. */\nexport type ScreenContentState =\n | Readonly<{ kind: \"ready\" }>\n | Readonly<{ kind: \"loading\" | \"empty\" | \"error\" | \"restricted\"; title: string; description?: string }>;\n\nexport function resolveScreenContentState(state: ScreenContentState = { kind: \"ready\" }) {\n if (![\"ready\", \"loading\", \"empty\", \"error\", \"restricted\"].includes(state.kind)) {\n throw new TypeError(\"Unknown screen content state\");\n }\n if (state.kind !== \"ready\" && !state.title.trim()) {\n throw new TypeError(\"Screen state requires a localized title\");\n }\n return {\n kind: state.kind,\n replacesContent: state.kind !== \"ready\",\n busy: state.kind === \"loading\",\n announcement: state.kind === \"error\" ? \"assertive\" : \"polite\",\n } as const;\n}\n\n// Reuse reading-width and spacing tokens; do not derive geometry from a product's device or artwork.\nexport const screenPatternRecipe = {\n maxWidth: layout.readingMaxWidth,\n padding: spacing.md,\n sectionGap: spacing.xl,\n itemGap: spacing.sm,\n stateGap: spacing.md,\n // Compact screens must keep back/title/save on one row; scale this floor for large text instead of reserving a desktop-width title.\n headerMinWidth: layout.readingMaxWidth / 6,\n // Reserve the opposite edge for authorship and cap the composer so history remains visible.\n messageMaxWidth: \"84%\",\n // Social thumbnails stay compact; selection order and removal replace a second toolbar.\n attachmentSize: 80,\n attachmentRemoveSize: 24,\n reactionHoldMs: 450,\n reactionMoveTolerance: 10,\n reactionMenuWidth: 320,\n replySwipeDistance: 60,\n composerMinLines: 1,\n composerMaxLines: 5,\n} as const;\n\n/** Controlled composer: HJM never clears drafts or interprets a fulfilled callback as server delivery. */\nexport type MessageComposerDescriptor = Readonly<{\n value: string;\n label: string;\n sendLabel: string;\n /** Short visual copy may differ from the complete accessible input name. */\n placeholder?: string;\n description?: string;\n error?: string;\n invalid?: boolean;\n /** Newline remains the compatible default; desktop chat may explicitly opt into send. */\n submitMode?: \"newline\" | \"send\";\n disabled?: boolean;\n pending?: boolean;\n attachmentCount?: number;\n}>;\n/** Safari may report the final IME Enter as keyCode 229 after isComposing becomes false. */\nexport function shouldSubmitMessageKey(event: Readonly<{ key: string; shiftKey?: boolean; isComposing?: boolean; keyCode?: number }>, mode: \"newline\" | \"send\" = \"newline\"): boolean {\n return mode === \"send\" && event.key === \"Enter\" && !event.shiftKey && !event.isComposing && event.keyCode !== 229;\n}\nexport function canSubmitMessage({ value, disabled = false, pending = false, attachmentCount = 0 }: MessageComposerDescriptor): boolean {\n if (!Number.isSafeInteger(attachmentCount) || attachmentCount < 0) throw new RangeError(\"Attachment count must be a nonnegative integer\");\n return !disabled && !pending && (value.trim().length > 0 || attachmentCount > 0);\n}\n\n/** Bubble alignment expresses authorship, not delivery; delivery text always comes from the product receipt. */\nexport type ChatMessageDescriptor = Readonly<{\n direction: \"incoming\" | \"outgoing\";\n author: string;\n timestamp: string;\n deliveryLabel?: string;\n /** Inward drag reveals time (incoming right, outgoing left) while delivery state remains visible; default preserves existing captions. */\n timestampPresentation?: \"always\" | \"swipe\";\n /** Connected authorship tip; opt-in keeps existing card-like conversations unchanged. */\n bubbleTail?: boolean;\n}>;\n\n/** A denied permission goes to settings; rendering never requests OS access automatically. */\nexport type PermissionScreenStatus = \"prompt\" | \"denied\" | \"granted\" | \"unavailable\";\nexport function resolvePermissionAction(status:PermissionScreenStatus) {\n switch(status){case \"prompt\":return \"request\";case \"denied\":return \"settings\";case \"granted\":return \"continue\";case \"unavailable\":return null;default:throw new TypeError(\"Unknown permission state\");}\n}\nexport function resolveOnboardingStep(total:number,index:number){\n if(!Number.isInteger(total)||total<1||!Number.isInteger(index)||index<0||index>=total)throw new RangeError(\"Onboarding requires a valid step index\");\n return {first:index===0,last:index===total-1};\n}\n\n/** Replies are one level deep; reject orphaned/duplicate records instead of silently losing them. */\nexport function validateCommentThread(items:readonly {id:string;parentId:string|null}[]){\n const roots=new Set(items.filter(item=>item.parentId===null).map(item=>item.id));const ids=new Set<string>();\n for(const item of items){if(!item.id.trim()||ids.has(item.id))throw new TypeError(\"Comment ids must be unique and nonempty\");ids.add(item.id);if(item.parentId!==null&&(!roots.has(item.parentId)||item.parentId===item.id))throw new TypeError(\"Replies require an existing root comment\");}\n}\n\n/** Source bytes, permission requests, ordering and upload limits remain product-owned. */\nexport type MessageAttachmentDescriptor = Readonly<{ id: string; removeLabel: string; /** Local preparation can lock removal without locking text entry. */ disabled?: boolean }>;\nexport function validateMessageAttachments(attachments: readonly MessageAttachmentDescriptor[]): void {\n const ids = new Set<string>();\n for (const item of attachments) {\n if (!item.id.trim() || ids.has(item.id) || !item.removeLabel.trim()) throw new TypeError(\"Attachments require unique ids and localized removal labels\");\n ids.add(item.id);\n }\n}\n\n/** Require horizontal intent so a timeline scroll cannot accidentally start a reply. */\nexport function isReplySwipe(dx: number, dy: number): boolean {\n return Math.abs(dx) >= screenPatternRecipe.replySwipeDistance && Math.abs(dx) > Math.abs(dy) * 2;\n}\n\n/** The UI never infers permission or camera availability; product adapters own both. */\nexport type PhotoSource = \"library\" | \"camera\";\nexport type PhotoSourceLabels = Readonly<{ title:string; library:string; camera:string; cancel:string }>;\n\nexport type SavedItem = Readonly<{ id: string; title: string }>;\nexport type SavedCollection = Readonly<{ id: string; title: string; itemIds: readonly string[] }>;\nexport type SavedItemsLabels = Readonly<{ allItems: string; privateNotice: string; back: string; empty: string; createCollection: string }>;\n\n/** Unsave removes an item from every collection view without rewriting product-owned membership. */\nexport function resolveSavedItems<T extends SavedItem>(items:readonly T[],collections:readonly SavedCollection[],collectionId:string|null|undefined,selectedItemId:string|null|undefined){\n const ids=new Set<string>(),groups=new Set<string>();\n for(const item of items){if(!item.id.trim()||ids.has(item.id)||!item.title.trim())throw new TypeError(\"Saved items require unique ids and nonempty titles\");ids.add(item.id);}\n for(const group of collections){if(!group.id.trim()||groups.has(group.id)||!group.title.trim())throw new TypeError(\"Saved collections require unique ids and nonempty titles\");groups.add(group.id);}\n const collection=collections.find(item=>item.id===collectionId);\n // A deleted collection returns to the overview instead of showing a mislabeled all-posts view.\n const home=collectionId===undefined||(collectionId!==null&&!collection);\n const visible=home||collectionId===null?items:items.filter(item=>collection?.itemIds.includes(item.id));\n return {home,collection,visible,selected:home?undefined:visible.find(item=>item.id===selectedItemId)};\n}\n\n/**\n * SearchScreen phases (2026-10-06 search redesign, docs/screen-patterns.md#searchscreen-두-단계-검색).\n * Without a committed query (one-step search, the pre-1.13 behavior) any nonblank query is already\n * `results`. With one, typing a different query is `typing`: suggestions replace the results until the\n * user commits (Enter, a suggestion, a recent or suggested query). Comparing trimmed values keeps a\n * trailing space from flipping committed results back into suggestions.\n */\nexport type SearchScreenPhase = \"idle\" | \"typing\" | \"results\";\nexport function resolveSearchScreenPhase(query: string, committedQuery?: string): SearchScreenPhase {\n const typed = query.trim();\n if (!typed) return \"idle\";\n if (committedQuery === undefined) return \"results\";\n return typed === committedQuery.trim() ? \"results\" : \"typing\";\n}\n\n/**\n * The value a commit records, or `null` when there is nothing to commit. Blank commits are dropped\n * so a stray Enter never writes an empty recent search or fetches \"everything\".\n */\nexport function resolveSearchCommit(value: string): string | null {\n const next = value.trim();\n return next ? next : null;\n}\n\n/**\n * Why a committed search shows nothing. `filters` keeps the filter rail and offers \"clear all\";\n * `query` hides the rail (no filter can fix it) and offers suggested queries instead. Reference\n * services hide the rail on every zero result, which removes the only way to undo a filter.\n * `null` count means the result is still loading, so no cause is reported yet.\n */\nexport type SearchEmptyCause = \"none\" | \"filters\" | \"query\";\nexport function resolveSearchEmptyCause(count: number | null, appliedFilterCount: number): SearchEmptyCause {\n if (count === null || count > 0) return \"none\";\n if (count < 0 || !Number.isSafeInteger(count) || !Number.isSafeInteger(appliedFilterCount) || appliedFilterCount < 0) {\n throw new RangeError(\"Search counts must be nonnegative integers\");\n }\n return appliedFilterCount > 0 ? \"filters\" : \"query\";\n}\n\n/**\n * Index to focus after removing item `removedIndex` from a list that now has `remaining` items:\n * the item that slid into its place, else the new last item, else -1 (move to the fallback target).\n * Removing a focused chip or row would otherwise drop focus to <body>.\n */\nexport function resolveFocusAfterRemoval(removedIndex: number, remaining: number): number {\n if (!Number.isInteger(removedIndex) || removedIndex < 0 || !Number.isInteger(remaining) || remaining < 0) {\n throw new RangeError(\"Removal indexes must be nonnegative integers\");\n }\n return remaining === 0 ? -1 : Math.min(removedIndex, remaining - 1);\n}\n\n/** Recipe for the SearchScreen phase sections; geometry stays on shared spacing tokens. */\nexport const searchScreenRecipe = {\n /** Recent searches shown before the user types; reference services show 5–10 and let the rest scroll away. */\n recentVisible: 5,\n /** Suggestions under the \"search for ‘q’\" row. */\n suggestionVisible: 6,\n /** Skeleton rows while the first page of results loads. */\n loadingRows: 4,\n /** Between idle sections (recent, suggested). */\n sectionGap: spacing.xl,\n /** Section title to its list, and results header to applied filters. */\n headerGap: spacing.sm,\n /** Between chips in applied filters and suggested queries. */\n chipGap: spacing.xs,\n} as const;\n\n/** Horizontal intent preserves vertical scrolling and uses one reveal distance across renderers. */\nexport function timestampRevealOffset(dx: number, dy: number): number {\n // A 12px dead zone and 2:1 direction bias avoid turning taps/list scrolling into a time gesture.\n return dx > 12 && dx > Math.abs(dy) * 2 ? Math.min(dx, 88) : 0;\n}\n"]}
|
package/dist/toast-liquid.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-liquid.d.ts","sourceRoot":"","sources":["../src/toast-liquid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"toast-liquid.d.ts","sourceRoot":"","sources":["../src/toast-liquid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BpB,CAAC;AAEX,4FAA4F;AAC5F,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,GAAG,QAAQ,CAAC;IACvE,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1E,CAAC,CAAC;AAEH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAOzE;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IACpF,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAC5E,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;CACxD,CAAC,CAAC;AAEH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC;IACvD,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC;IAClF,YAAY,CAAC,EAAE,QAAQ,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD,CAAC,GAAG,iBAAiB,CA2BrB;AAED;sFACsF;AACtF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,GAAE,MAAiC;;;;;;;;;;;EA0B9I"}
|
package/dist/toast-liquid.js
CHANGED
|
@@ -11,8 +11,9 @@ export const liquidToastRecipe = {
|
|
|
11
11
|
gap: 26,
|
|
12
12
|
minHeight: 74,
|
|
13
13
|
maxWidth: 396,
|
|
14
|
-
// 2026-10-02 card redesign
|
|
15
|
-
|
|
14
|
+
// 2026-10-02 card redesign used the medium 12-unit corner for a banner silhouette. 2026-10-10 the panel
|
|
15
|
+
// replaces that banner too ("패널이 토스트가 되는거지"), so the settled card uses the same xl (24) corner.
|
|
16
|
+
radius: 24,
|
|
16
17
|
dropSize: 52,
|
|
17
18
|
neckWidth: 60,
|
|
18
19
|
blur: 14.3,
|
package/dist/toast-liquid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-liquid.js","sourceRoot":"","sources":["../src/toast-liquid.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Geometry adapted from rit3zh/expo-dynamic-notifications, commit 5de059a5cbef.\n * The MIT notice is shipped in THIRD_PARTY_NOTICES.md. See docs/plans/liquid-toast.md.\n * Kept separate from the lifecycle: animation must never own a second queue.\n */\nexport const liquidToastRecipe = {\n // 2026-10-02: use a circular in-app origin rather than a second Dynamic Island.\n // Keep the public capsule key; changing geometry does not require callers to migrate.\n capsule: { width: 32, height: 32 },\n // Preserve the settled card top (58) when increasing the anchor height from 24 to 32.\n gap: 26,\n minHeight: 74,\n maxWidth: 396,\n // 2026-10-02 card redesign: the medium 12-unit corner supports a banner silhouette.\n radius: 12,\n dropSize: 52,\n neckWidth: 60,\n blur: 14.3,\n gain: 22,\n threshold: 0.43,\n // These intentionally exceed general HJM motion: the neck needs time to separate.\n // Original choreography is the comparison baseline, not a new global motion scale.\n spring: {\n drop: { duration: 1150, dampingRatio: 0.82 },\n expand: { duration: 1000, dampingRatio: 0.8 },\n reveal: { duration: 700, dampingRatio: 1 },\n tint: { duration: 700, dampingRatio: 1 },\n collapse: { duration: 660, dampingRatio: 0.92, velocity: 2 },\n return: { duration: 1150, dampingRatio: 0.9 },\n fade: { duration: 360, dampingRatio: 1 },\n drag: { duration: 560, dampingRatio: 0.7 },\n },\n // Keep the drop anchor-colored through descent; early tint looked like a gray blob on iPhone 17 (2026-09-30).\n delay: { tint: 420, expand: 340, reveal: 560, collapse: 100, return: 280 },\n swipe: { distance: -18, velocity: -420 },\n} as const;\n\n/** Island frames are explicitly verified window coordinates, never inferred from insets. */\nexport type LiquidToastAnchor = Readonly<{ kind: \"capsule\" }> | Readonly<{\n kind: \"island\";\n frame: Readonly<{ x: number; y: number; width: number; height: number }>;\n}>;\n\nexport function validateLiquidToastAnchor(anchor: LiquidToastAnchor): void {\n if (anchor.kind === \"capsule\") return;\n if (anchor.kind !== \"island\") throw new TypeError(\"Unsupported liquid toast anchor\");\n const frame = anchor.frame;\n if (!frame || ![frame.x, frame.y, frame.width, frame.height].every(Number.isFinite) || frame.x < 0 || frame.y < 0 || frame.width <= 0 || frame.height <= 0) {\n throw new RangeError(\"Liquid Toast island frame must be finite with positive dimensions\");\n }\n}\n\nexport type LiquidToastLayout = Readonly<{\n width: number; height: number; cardWidth: number; cardTop: number; cardLeft: number;\n anchorX: number; anchorY: number; anchorWidth: number; anchorHeight: number;\n canvasTop: number; canvasHeight: number; fits: boolean;\n}>;\n\nexport function resolveLiquidToastLayout(input: Readonly<{\n width: number; height: number; availableHeight: number; anchor: LiquidToastAnchor;\n windowOrigin?: Readonly<{ x: number; y: number }>;\n}>): LiquidToastLayout {\n const { width, height, availableHeight, anchor, windowOrigin } = input;\n validateLiquidToastAnchor(anchor);\n if (![width, height, availableHeight].every(Number.isFinite) || width < 0 || height < 0 || availableHeight < 0) {\n throw new RangeError(\"Liquid Toast measurements must be finite and non-negative\");\n }\n let anchorWidth: number = liquidToastRecipe.capsule.width;\n let anchorHeight: number = liquidToastRecipe.capsule.height;\n let anchorX = (width - anchorWidth) / 2;\n let anchorY = 0;\n if (anchor.kind === \"island\" && windowOrigin) {\n const x = anchor.frame.x - windowOrigin.x;\n const y = anchor.frame.y - windowOrigin.y;\n // Rotation/stale host measurements fall back to capsule instead of drawing over a cutout.\n if (x >= 0 && x + anchor.frame.width <= width && y + anchor.frame.height <= availableHeight) {\n anchorX = x; anchorY = y; anchorWidth = anchor.frame.width; anchorHeight = anchor.frame.height;\n }\n }\n const cardWidth = Math.min(width, liquidToastRecipe.maxWidth);\n const cardTop = Math.max(0, anchorY + anchorHeight + liquidToastRecipe.gap);\n const canvasTop = Math.min(0, anchorY) - liquidToastRecipe.blur * 2;\n return {\n width, height, cardWidth, cardTop, cardLeft: (width - cardWidth) / 2,\n anchorX, anchorY, anchorWidth, anchorHeight, canvasTop,\n canvasHeight: cardTop + height - canvasTop + 32,\n fits: width >= 240 && height > 0 && cardTop + height <= availableHeight,\n };\n}\n\n/** A themed corner changes only the settled card, never the circular origin.\n * Keep the default recipe for existing callers and clamp to measured paint bounds. */\nexport function buildLiquidToastGeometry(drop: number, expand: number, layout: LiquidToastLayout, cardRadius: number = liquidToastRecipe.radius) {\n \"worklet\";\n if (!Number.isFinite(cardRadius) || cardRadius < 0) throw new RangeError(\"Liquid Toast card radius must be finite and non-negative\");\n const clamp = (n: number) => Math.max(0, Math.min(1, n));\n const mix = (a: number, b: number, t: number) => a + (b - a) * t;\n const grow = 1 - (1 - clamp(drop / 0.7)) ** 1.25;\n const n = clamp(drop / 0.82);\n const peak = 1.6 / 3;\n const normal = peak ** 1.6 * (1 - peak) ** 1.4;\n const neck = n <= 0 || n >= 1 ? 0 : (n ** 1.6 * (1 - n) ** 1.4) / normal;\n const stretch = 1 + 0.38 * neck;\n const droplet = liquidToastRecipe.dropSize * grow;\n const width = Math.max(0, Math.min(layout.width, mix(droplet / stretch, layout.cardWidth, expand)));\n const height = Math.max(0, mix(droplet * stretch, layout.height, expand));\n const originY = layout.anchorY + layout.anchorHeight * 0.66;\n const centerY = mix(originY, layout.cardTop + layout.height / 2, drop);\n const centerX = mix(layout.anchorX + layout.anchorWidth / 2, layout.width / 2, clamp(expand));\n const neckWidth = Math.max(0, Math.min(liquidToastRecipe.neckWidth, width) * neck);\n const neckY = layout.anchorY + layout.anchorHeight / 2;\n return {\n x: centerX - width / 2, y: centerY - height / 2, width, height,\n radius: Math.max(0, Math.min(mix(droplet / 2, cardRadius, expand), width / 2, height / 2)),\n neckX: layout.anchorX + layout.anchorWidth / 2 - neckWidth / 2,\n neckY, neckWidth, neckHeight: Math.max(0, centerY - neckY),\n offsetY: centerY - (layout.cardTop + layout.height / 2),\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"toast-liquid.js","sourceRoot":"","sources":["../src/toast-liquid.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Geometry adapted from rit3zh/expo-dynamic-notifications, commit 5de059a5cbef.\n * The MIT notice is shipped in THIRD_PARTY_NOTICES.md. See docs/plans/liquid-toast.md.\n * Kept separate from the lifecycle: animation must never own a second queue.\n */\nexport const liquidToastRecipe = {\n // 2026-10-02: use a circular in-app origin rather than a second Dynamic Island.\n // Keep the public capsule key; changing geometry does not require callers to migrate.\n capsule: { width: 32, height: 32 },\n // Preserve the settled card top (58) when increasing the anchor height from 24 to 32.\n gap: 26,\n minHeight: 74,\n maxWidth: 396,\n // 2026-10-02 card redesign used the medium 12-unit corner for a banner silhouette. 2026-10-10 the panel\n // replaces that banner too (\"패널이 토스트가 되는거지\"), so the settled card uses the same xl (24) corner.\n radius: 24,\n dropSize: 52,\n neckWidth: 60,\n blur: 14.3,\n gain: 22,\n threshold: 0.43,\n // These intentionally exceed general HJM motion: the neck needs time to separate.\n // Original choreography is the comparison baseline, not a new global motion scale.\n spring: {\n drop: { duration: 1150, dampingRatio: 0.82 },\n expand: { duration: 1000, dampingRatio: 0.8 },\n reveal: { duration: 700, dampingRatio: 1 },\n tint: { duration: 700, dampingRatio: 1 },\n collapse: { duration: 660, dampingRatio: 0.92, velocity: 2 },\n return: { duration: 1150, dampingRatio: 0.9 },\n fade: { duration: 360, dampingRatio: 1 },\n drag: { duration: 560, dampingRatio: 0.7 },\n },\n // Keep the drop anchor-colored through descent; early tint looked like a gray blob on iPhone 17 (2026-09-30).\n delay: { tint: 420, expand: 340, reveal: 560, collapse: 100, return: 280 },\n swipe: { distance: -18, velocity: -420 },\n} as const;\n\n/** Island frames are explicitly verified window coordinates, never inferred from insets. */\nexport type LiquidToastAnchor = Readonly<{ kind: \"capsule\" }> | Readonly<{\n kind: \"island\";\n frame: Readonly<{ x: number; y: number; width: number; height: number }>;\n}>;\n\nexport function validateLiquidToastAnchor(anchor: LiquidToastAnchor): void {\n if (anchor.kind === \"capsule\") return;\n if (anchor.kind !== \"island\") throw new TypeError(\"Unsupported liquid toast anchor\");\n const frame = anchor.frame;\n if (!frame || ![frame.x, frame.y, frame.width, frame.height].every(Number.isFinite) || frame.x < 0 || frame.y < 0 || frame.width <= 0 || frame.height <= 0) {\n throw new RangeError(\"Liquid Toast island frame must be finite with positive dimensions\");\n }\n}\n\nexport type LiquidToastLayout = Readonly<{\n width: number; height: number; cardWidth: number; cardTop: number; cardLeft: number;\n anchorX: number; anchorY: number; anchorWidth: number; anchorHeight: number;\n canvasTop: number; canvasHeight: number; fits: boolean;\n}>;\n\nexport function resolveLiquidToastLayout(input: Readonly<{\n width: number; height: number; availableHeight: number; anchor: LiquidToastAnchor;\n windowOrigin?: Readonly<{ x: number; y: number }>;\n}>): LiquidToastLayout {\n const { width, height, availableHeight, anchor, windowOrigin } = input;\n validateLiquidToastAnchor(anchor);\n if (![width, height, availableHeight].every(Number.isFinite) || width < 0 || height < 0 || availableHeight < 0) {\n throw new RangeError(\"Liquid Toast measurements must be finite and non-negative\");\n }\n let anchorWidth: number = liquidToastRecipe.capsule.width;\n let anchorHeight: number = liquidToastRecipe.capsule.height;\n let anchorX = (width - anchorWidth) / 2;\n let anchorY = 0;\n if (anchor.kind === \"island\" && windowOrigin) {\n const x = anchor.frame.x - windowOrigin.x;\n const y = anchor.frame.y - windowOrigin.y;\n // Rotation/stale host measurements fall back to capsule instead of drawing over a cutout.\n if (x >= 0 && x + anchor.frame.width <= width && y + anchor.frame.height <= availableHeight) {\n anchorX = x; anchorY = y; anchorWidth = anchor.frame.width; anchorHeight = anchor.frame.height;\n }\n }\n const cardWidth = Math.min(width, liquidToastRecipe.maxWidth);\n const cardTop = Math.max(0, anchorY + anchorHeight + liquidToastRecipe.gap);\n const canvasTop = Math.min(0, anchorY) - liquidToastRecipe.blur * 2;\n return {\n width, height, cardWidth, cardTop, cardLeft: (width - cardWidth) / 2,\n anchorX, anchorY, anchorWidth, anchorHeight, canvasTop,\n canvasHeight: cardTop + height - canvasTop + 32,\n fits: width >= 240 && height > 0 && cardTop + height <= availableHeight,\n };\n}\n\n/** A themed corner changes only the settled card, never the circular origin.\n * Keep the default recipe for existing callers and clamp to measured paint bounds. */\nexport function buildLiquidToastGeometry(drop: number, expand: number, layout: LiquidToastLayout, cardRadius: number = liquidToastRecipe.radius) {\n \"worklet\";\n if (!Number.isFinite(cardRadius) || cardRadius < 0) throw new RangeError(\"Liquid Toast card radius must be finite and non-negative\");\n const clamp = (n: number) => Math.max(0, Math.min(1, n));\n const mix = (a: number, b: number, t: number) => a + (b - a) * t;\n const grow = 1 - (1 - clamp(drop / 0.7)) ** 1.25;\n const n = clamp(drop / 0.82);\n const peak = 1.6 / 3;\n const normal = peak ** 1.6 * (1 - peak) ** 1.4;\n const neck = n <= 0 || n >= 1 ? 0 : (n ** 1.6 * (1 - n) ** 1.4) / normal;\n const stretch = 1 + 0.38 * neck;\n const droplet = liquidToastRecipe.dropSize * grow;\n const width = Math.max(0, Math.min(layout.width, mix(droplet / stretch, layout.cardWidth, expand)));\n const height = Math.max(0, mix(droplet * stretch, layout.height, expand));\n const originY = layout.anchorY + layout.anchorHeight * 0.66;\n const centerY = mix(originY, layout.cardTop + layout.height / 2, drop);\n const centerX = mix(layout.anchorX + layout.anchorWidth / 2, layout.width / 2, clamp(expand));\n const neckWidth = Math.max(0, Math.min(liquidToastRecipe.neckWidth, width) * neck);\n const neckY = layout.anchorY + layout.anchorHeight / 2;\n return {\n x: centerX - width / 2, y: centerY - height / 2, width, height,\n radius: Math.max(0, Math.min(mix(droplet / 2, cardRadius, expand), width / 2, height / 2)),\n neckX: layout.anchorX + layout.anchorWidth / 2 - neckWidth / 2,\n neckY, neckWidth, neckHeight: Math.max(0, centerY - neckY),\n offsetY: centerY - (layout.cardTop + layout.height / 2),\n };\n}\n"]}
|