@hjmds/design-contracts 1.17.2 → 1.19.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/action-session.d.ts +16 -0
- package/dist/action-session.d.ts.map +1 -1
- package/dist/action-session.js +18 -0
- package/dist/action-session.js.map +1 -1
- 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 +9 -6
- package/dist/behaviors.d.ts.map +1 -1
- package/dist/behaviors.js +5 -3
- package/dist/behaviors.js.map +1 -1
- package/dist/bottom-navigation.d.ts +16 -0
- package/dist/bottom-navigation.d.ts.map +1 -1
- package/dist/bottom-navigation.js +18 -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/carousel.d.ts +3 -0
- package/dist/carousel.d.ts.map +1 -1
- package/dist/carousel.js.map +1 -1
- package/dist/catalog.d.ts +80 -9
- package/dist/catalog.d.ts.map +1 -1
- package/dist/component-recipes.d.ts +74 -3
- package/dist/component-recipes.d.ts.map +1 -1
- package/dist/component-recipes.js +38 -6
- 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/field-group.d.ts +14 -0
- package/dist/field-group.d.ts.map +1 -1
- package/dist/field-group.js +9 -0
- package/dist/field-group.js.map +1 -1
- package/dist/form.d.ts.map +1 -1
- package/dist/form.js +10 -3
- package/dist/form.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 +10 -0
- package/dist/screen-patterns.d.ts.map +1 -1
- package/dist/screen-patterns.js +17 -3
- 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 +29 -2
- package/dist/toast.d.ts.map +1 -1
- package/dist/toast.js +59 -3
- 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/action-session.md +2 -0
- package/docs/activity-chip.md +34 -0
- package/docs/asset.md +7 -0
- package/docs/bottom-navigation.md +16 -1
- package/docs/brand-boundary.md +3 -3
- package/docs/collection-rail.md +4 -0
- package/docs/compound-controls.md +8 -3
- package/docs/consumer-policy.md +39 -120
- 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/gravity-letters.md +2 -0
- package/docs/grid-reveal.md +2 -0
- package/docs/layout.md +2 -2
- package/docs/load-more.md +5 -0
- package/docs/migration-native-legacy-removal.md +30 -17
- package/docs/optional-adapters.md +4 -0
- package/docs/screen-patterns.md +23 -1
- package/docs/toast.md +64 -2
- package/docs/usage/README.md +248 -243
- package/docs/usage/SELECTION.md +43 -0
- package/docs/usage/STANDARD.md +22 -10
- package/docs/usage/components/accordion.md +5 -3
- package/docs/usage/components/activity-chip.md +109 -0
- package/docs/usage/components/agreement.md +6 -9
- package/docs/usage/components/alert-dialog.md +12 -6
- package/docs/usage/components/asset.md +10 -4
- package/docs/usage/components/auth-provider-button.md +2 -2
- package/docs/usage/components/avatar.md +8 -6
- package/docs/usage/components/badge.md +4 -4
- package/docs/usage/components/bottom-cta.md +4 -4
- package/docs/usage/components/bottom-info.md +2 -2
- package/docs/usage/components/bottom-navigation.md +18 -6
- package/docs/usage/components/button.md +6 -3
- package/docs/usage/components/card.md +28 -7
- package/docs/usage/components/carousel.md +12 -4
- package/docs/usage/components/chat-message.md +10 -2
- package/docs/usage/components/chat-screen.md +5 -5
- package/docs/usage/components/checkbox-group.md +1 -1
- package/docs/usage/components/checkbox.md +2 -2
- package/docs/usage/components/chip.md +2 -2
- package/docs/usage/components/code-block.md +3 -4
- package/docs/usage/components/collapsible.md +6 -4
- package/docs/usage/components/combobox.md +2 -2
- package/docs/usage/components/command-palette.md +1 -1
- package/docs/usage/components/comment-thread-screen.md +7 -4
- package/docs/usage/components/container.md +1 -1
- package/docs/usage/components/content-transition.md +3 -2
- package/docs/usage/components/context-menu.md +2 -2
- package/docs/usage/components/counter-badge.md +3 -3
- package/docs/usage/components/data-table.md +1 -1
- package/docs/usage/components/date-picker.md +4 -4
- package/docs/usage/components/description-list.md +3 -3
- package/docs/usage/components/design-system-provider.md +2 -2
- package/docs/usage/components/dialog.md +14 -3
- package/docs/usage/components/divider.md +2 -2
- package/docs/usage/components/editor-screen.md +5 -3
- package/docs/usage/components/effect-surface.md +1 -1
- package/docs/usage/components/empty-state.md +6 -6
- package/docs/usage/components/field.md +5 -3
- package/docs/usage/components/file-picker.md +6 -3
- package/docs/usage/components/form.md +1 -1
- package/docs/usage/components/heading.md +3 -3
- package/docs/usage/components/icon-button.md +6 -3
- package/docs/usage/components/icon.md +1 -1
- package/docs/usage/components/image.md +5 -4
- package/docs/usage/components/keyboard-dock.md +1 -1
- package/docs/usage/components/layout.md +1 -1
- package/docs/usage/components/link.md +2 -2
- package/docs/usage/components/list-detail-screen.md +6 -6
- package/docs/usage/components/list-row.md +13 -4
- package/docs/usage/components/list.md +5 -4
- package/docs/usage/components/masonry.md +2 -1
- package/docs/usage/components/media-selection-screen.md +11 -5
- package/docs/usage/components/mentions.md +2 -2
- package/docs/usage/components/menu.md +3 -2
- package/docs/usage/components/menubar.md +2 -2
- package/docs/usage/components/message-composer.md +3 -3
- package/docs/usage/components/moderation-screen.md +3 -2
- package/docs/usage/components/notice.md +2 -2
- package/docs/usage/components/notification-inbox-screen.md +1 -1
- package/docs/usage/components/notification-item.md +2 -2
- package/docs/usage/components/number-field.md +3 -3
- package/docs/usage/components/otp-field.md +1 -1
- package/docs/usage/components/overview-screen.md +1 -1
- package/docs/usage/components/permission-screen.md +1 -1
- package/docs/usage/components/photo-source-sheet.md +1 -1
- package/docs/usage/components/popover.md +2 -2
- package/docs/usage/components/profile-screen.md +1 -1
- package/docs/usage/components/progress.md +2 -2
- package/docs/usage/components/qr-code.md +2 -2
- package/docs/usage/components/radio-group.md +1 -2
- package/docs/usage/components/radio.md +1 -2
- package/docs/usage/components/result.md +1 -1
- package/docs/usage/components/saved-items-screen.md +4 -2
- package/docs/usage/components/screen-layout.md +4 -3
- package/docs/usage/components/search-field.md +1 -1
- package/docs/usage/components/search-screen.md +4 -4
- package/docs/usage/components/section.md +3 -3
- package/docs/usage/components/segmented-control.md +4 -4
- package/docs/usage/components/select.md +2 -3
- package/docs/usage/components/settings-screen.md +18 -56
- package/docs/usage/components/sheet.md +10 -5
- package/docs/usage/components/sidebar.md +1 -1
- package/docs/usage/components/skeleton.md +1 -1
- package/docs/usage/components/skip-nav.md +1 -1
- package/docs/usage/components/slider.md +2 -2
- package/docs/usage/components/spinner.md +2 -2
- package/docs/usage/components/splitter.md +1 -1
- package/docs/usage/components/statistic.md +5 -4
- package/docs/usage/components/steps.md +2 -2
- package/docs/usage/components/surface.md +2 -3
- package/docs/usage/components/switch.md +1 -1
- package/docs/usage/components/tabs.md +4 -4
- package/docs/usage/components/tag.md +2 -2
- package/docs/usage/components/tags-input.md +4 -4
- package/docs/usage/components/text-area.md +5 -3
- package/docs/usage/components/text.md +85 -4
- package/docs/usage/components/timeline.md +2 -2
- package/docs/usage/components/toast.md +41 -13
- package/docs/usage/components/toggle-group.md +3 -3
- package/docs/usage/components/tooltip.md +1 -1
- package/docs/usage/components/top-bar.md +5 -4
- package/docs/usage/components/top.md +3 -3
- package/docs/usage/components/transfer-list.md +5 -4
- package/docs/usage/components/upload-item.md +3 -3
- package/docs/usage/components/virtual-list.md +1 -0
- package/docs/usage/compositions/action-feedback.md +42 -6
- package/docs/usage/compositions/action-recovery-optimistic.md +6 -1
- package/docs/usage/compositions/action-recovery-save.md +19 -23
- package/docs/usage/compositions/action-recovery-undo.md +6 -1
- package/docs/usage/compositions/activity-status.md +168 -0
- package/docs/usage/compositions/collection-detail.md +2 -0
- package/docs/usage/compositions/command-records.md +15 -5
- package/docs/usage/compositions/common-message.md +4 -2
- package/docs/usage/compositions/common-notification.md +5 -3
- package/docs/usage/compositions/compound-controls.md +13 -5
- package/docs/usage/compositions/content-transition-comparison.md +2 -2
- package/docs/usage/compositions/date-entry.md +10 -5
- package/docs/usage/compositions/date-time-selection.md +3 -3
- package/docs/usage/compositions/design-profile-comparison.md +7 -5
- package/docs/usage/compositions/disclosure.md +1 -1
- package/docs/usage/compositions/document-resource.md +10 -3
- package/docs/usage/compositions/expo-interactions.md +3 -2
- package/docs/usage/compositions/family-drawer.md +9 -4
- package/docs/usage/compositions/field-group.md +7 -1
- package/docs/usage/compositions/floating-action-button.md +18 -18
- package/docs/usage/compositions/illustrated-outcome.md +3 -2
- package/docs/usage/compositions/input-sheet.md +6 -2
- package/docs/usage/compositions/interaction-adapters.md +1 -1
- package/docs/usage/compositions/interaction-flow-apply.md +6 -3
- package/docs/usage/compositions/interaction-flow-draft.md +5 -2
- package/docs/usage/compositions/interaction-flow-search.md +5 -2
- package/docs/usage/compositions/live-list.md +7 -5
- package/docs/usage/compositions/navigation-bar-collection.md +8 -7
- package/docs/usage/compositions/optional-adapters.md +1 -1
- package/docs/usage/compositions/origin-dialog.md +5 -5
- package/docs/usage/compositions/paper-surface.md +1 -1
- package/docs/usage/compositions/photo-source.md +1 -1
- package/docs/usage/compositions/purpose-input-comment.md +5 -3
- package/docs/usage/compositions/purpose-input-message.md +5 -3
- package/docs/usage/compositions/reference-first.md +63 -42
- package/docs/usage/compositions/reference-review.md +60 -50
- package/docs/usage/compositions/reference-settings.md +60 -50
- package/docs/usage/compositions/selection-scope.md +48 -35
- package/docs/usage/compositions/stea-order-progress.md +1 -0
- package/docs/usage/compositions/stea-otp-verify.md +5 -3
- package/docs/usage/compositions/stea-pixel-empty.md +3 -3
- package/docs/usage/compositions/time-selection.md +6 -5
- package/docs/usage/compositions/upload-recovery.md +10 -1
- package/docs/usage/compositions/video-dialog.md +10 -3
- package/docs/usage/compositions/web-additions.md +5 -5
- package/docs/usage/compositions/web-navigation.md +1 -1
- package/docs/usage/screens/common-chat.md +21 -8
- package/docs/usage/screens/common-comments.md +13 -1
- package/docs/usage/screens/common-inbox.md +19 -6
- package/docs/usage/screens/common-login.md +19 -7
- package/docs/usage/screens/common-profile.md +22 -9
- package/docs/usage/screens/common-saved.md +16 -2
- package/docs/usage/screens/common-search.md +24 -4
- package/docs/usage/screens/common-settings.md +22 -50
- package/docs/usage/screens/common-shell.md +14 -2
- package/docs/usage/screens/dashboard.md +52 -109
- package/docs/usage/screens/discovery-gallery.md +57 -148
- package/docs/usage/screens/flow-collection.md +38 -9
- package/docs/usage/screens/flow-editor.md +25 -7
- package/docs/usage/screens/flow-media.md +23 -7
- package/docs/usage/screens/flow-moderation.md +15 -2
- package/docs/usage/screens/flow-onboarding.md +3 -3
- package/docs/usage/screens/flow-permission.md +17 -3
- package/docs/usage/screens/landing.md +37 -20
- package/docs/usage/screens/mockup-studio.md +22 -7
- package/docs/usage/screens/notification-settings.md +18 -4
- package/docs/usage/screens/product-bento.md +18 -9
- package/docs/usage/screens/reference-comparison.md +29 -10
- package/docs/usage/tokens/color.md +6 -3
- package/docs/usage/tokens/elevation-opacity.md +4 -2
- package/docs/usage/tokens/font-roles.md +2 -2
- package/docs/usage/tokens/layers.md +3 -3
- package/docs/usage/tokens/motion.md +2 -2
- package/docs/usage/tokens/radius.md +4 -2
- package/docs/usage/tokens/spacing.md +3 -3
- package/docs/usage/tokens/theme-studio.md +2 -2
- package/docs/usage/tokens/typography-studio.md +14 -8
- package/docs/usage/tokens/typography.md +15 -5
- 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"]}
|
package/dist/field-group.d.ts
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
export type FieldGroupLayout = "stack" | "inline";
|
|
2
|
+
/** Date and duration parts share grouping, spacing and wrapping rather than rebuilding a fieldset. */
|
|
3
|
+
export declare const fieldGroupRecipe: {
|
|
4
|
+
readonly defaults: {
|
|
5
|
+
readonly layout: "stack";
|
|
6
|
+
};
|
|
7
|
+
readonly gap: "md";
|
|
8
|
+
readonly headingGap: "sm";
|
|
9
|
+
readonly supportGap: "xs";
|
|
10
|
+
readonly inline: {
|
|
11
|
+
readonly minCharacters: 10;
|
|
12
|
+
readonly minWidth: number;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
1
15
|
/** Related-input grouping contract. Values and submit/validation timing remain product-owned. */
|
|
2
16
|
export type FieldGroupMember = Readonly<{
|
|
3
17
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-group.d.ts","sourceRoot":"","sources":["../src/field-group.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"field-group.d.ts","sourceRoot":"","sources":["../src/field-group.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAClD,sGAAsG;AACtG,eAAO,MAAM,gBAAgB;;;;;;;;;;;CAMnB,CAAC;AAEX,iGAAiG;AACjG,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8FAA8F;IAC9F,KAAK,CAAC,EAAE,QAAQ,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACnE,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,wFAAwF;IACxF,OAAO,EAAE,SAAS,QAAQ,CAAC;QAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;QAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;CACzG,CAAC,CAAC;AAMH,6FAA6F;AAC7F,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE;iBAItE,SAAS,wBAAwB,EAAE;IAQhD,yFAAyF;;UAEnF,IAAI,SAAS,OAAO,EAAE,MAAM,MAAM,YAAY,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,IAAI;EAOxG;AAUD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,oBAAoB,GAAG,QAAQ,CAAC;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC7C,CAAC,CA2CD"}
|
package/dist/field-group.js
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
import { spacing } from "./foundations.js";
|
|
2
|
+
/** Date and duration parts share grouping, spacing and wrapping rather than rebuilding a fieldset. */
|
|
3
|
+
export const fieldGroupRecipe = {
|
|
4
|
+
defaults: { layout: "stack" },
|
|
5
|
+
gap: "md",
|
|
6
|
+
headingGap: "sm",
|
|
7
|
+
supportGap: "xs",
|
|
8
|
+
inline: { minCharacters: 10, minWidth: spacing.xxxl * 3 },
|
|
9
|
+
};
|
|
1
10
|
function requireText(value, name) {
|
|
2
11
|
if (typeof value !== "string" || !value.trim())
|
|
3
12
|
throw new TypeError(`Field group ${name} must be nonempty text`);
|
package/dist/field-group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-group.js","sourceRoot":"","sources":["../src/field-group.ts"],"names":[],"mappings":"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","sourcesContent":["/** Related-input grouping contract. Values and submit/validation timing remain product-owned. */\nexport type FieldGroupMember = Readonly<{\n id: string;\n label: string;\n description?: string;\n error?: string;\n disabled?: boolean;\n}>;\n\nexport type FieldGroupDescriptor = Readonly<{\n label: string;\n description?: string;\n disabled?: boolean;\n /** An empty fieldIds list is a group-only error, not a reason to mark every field invalid. */\n error?: Readonly<{ message: string; fieldIds: readonly string[] }>;\n fields: readonly FieldGroupMember[];\n}>;\n\nexport type ResolvedFieldGroupMember = Readonly<{\n id: string;\n label: string;\n groupLabel: string;\n disabled: boolean;\n invalid: boolean;\n /** Renderers associate these messages without replacing a field's own help or error. */\n support: readonly Readonly<{ scope: \"group\" | \"field\"; kind: \"description\" | \"error\"; text: string }>[];\n}>;\n\nfunction requireText(value: unknown, name: string): asserts value is string {\n if (typeof value !== \"string\" || !value.trim()) throw new TypeError(`Field group ${name} must be nonempty text`);\n}\n\n/** Late native events and retained callbacks must use the current committed group policy. */\nexport function createFieldGroupEditSession(fields: readonly ResolvedFieldGroupMember[]) {\n let enabled = new Set(fields.filter(field => !field.disabled).map(field => field.id));\n const members = new Map(fields.map(field => [field.id, {}]));\n return {\n update(next: readonly ResolvedFieldGroupMember[]) {\n const current = new Set(next.map(field => field.id));\n // A reused id is a new mounted field after removal. Checking only enabled ids\n // would revive queued events from the old field and overwrite the new draft.\n for (const id of members.keys()) if (!current.has(id)) members.delete(id);\n for (const id of current) if (!members.has(id)) members.set(id, {});\n enabled = new Set(next.filter(field => !field.disabled).map(field => field.id));\n },\n /** Effect cleanup blocks events without treating Strict Mode replay as field removal. */\n suspend() { enabled.clear(); },\n guard<Args extends unknown[]>(id: string, callback: (...args: Args) => void): (...args: Args) => void {\n // A new host binds during render, before its committed policy enables it.\n if (!members.has(id)) members.set(id, {});\n const member = members.get(id);\n return (...args) => { if (members.get(id) === member && enabled.has(id)) callback(...args); };\n },\n };\n}\n\nfunction optionalText(value: unknown, name: string): void {\n if (value !== undefined) requireText(value, name);\n}\n\nfunction optionalBoolean(value: unknown): void {\n if (value !== undefined && typeof value !== \"boolean\") throw new TypeError(\"Field group disabled must be boolean\");\n}\n\nexport function resolveFieldGroup(descriptor: FieldGroupDescriptor): Readonly<{\n label: string;\n description: string | undefined;\n error: string | undefined;\n disabled: boolean;\n fields: readonly ResolvedFieldGroupMember[];\n}> {\n requireText(descriptor.label, \"label\");\n optionalText(descriptor.description, \"description\");\n optionalBoolean(descriptor.disabled);\n if (!Array.isArray(descriptor.fields)) throw new TypeError(\"Field group fields must be an array\");\n const ids = new Set<string>();\n for (const field of descriptor.fields) {\n requireText(field.id, \"field id\");\n requireText(field.label, \"field label\");\n optionalText(field.description, \"field description\");\n optionalText(field.error, \"field error\");\n optionalBoolean(field.disabled);\n if (ids.has(field.id)) throw new TypeError(\"Field group field ids must be unique\");\n ids.add(field.id);\n }\n if (descriptor.error !== undefined) {\n requireText(descriptor.error.message, \"error\");\n const affected = descriptor.error.fieldIds;\n // A typo or removed field must not silently lose its validation feedback.\n // Products update the visible error with their dynamic field list atomically.\n if (!Array.isArray(affected) || new Set(affected).size !== affected.length || affected.some(id => !ids.has(id))) {\n throw new TypeError(\"Field group error must reference distinct current field ids\");\n }\n }\n const disabled = descriptor.disabled ?? false;\n return Object.freeze({\n label: descriptor.label,\n description: descriptor.description,\n error: descriptor.error?.message,\n disabled,\n fields: Object.freeze(descriptor.fields.map(field => {\n const groupError = descriptor.error?.fieldIds.includes(field.id) ? descriptor.error.message : undefined;\n const support: ResolvedFieldGroupMember[\"support\"][number][] = [];\n if (descriptor.description !== undefined) support.push({ scope: \"group\", kind: \"description\", text: descriptor.description });\n if (field.description !== undefined) support.push({ scope: \"field\", kind: \"description\", text: field.description });\n if (field.error !== undefined) support.push({ scope: \"field\", kind: \"error\", text: field.error });\n if (groupError !== undefined) support.push({ scope: \"group\", kind: \"error\", text: groupError });\n return Object.freeze({ id: field.id, label: field.label, groupLabel: descriptor.label,\n // Group unlock restores independently disabled members; it never enables them.\n disabled: disabled || (field.disabled ?? false), invalid: field.error !== undefined || groupError !== undefined,\n support: Object.freeze(support.map(message => Object.freeze(message))) });\n })),\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"field-group.js","sourceRoot":"","sources":["../src/field-group.ts"],"names":[],"mappings":"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","sourcesContent":["import { spacing } from \"./foundations.js\";\n\nexport type FieldGroupLayout = \"stack\" | \"inline\";\n/** Date and duration parts share grouping, spacing and wrapping rather than rebuilding a fieldset. */\nexport const fieldGroupRecipe = {\n defaults: { layout: \"stack\" },\n gap: \"md\",\n headingGap: \"sm\",\n supportGap: \"xs\",\n inline: { minCharacters: 10, minWidth: spacing.xxxl * 3 },\n} as const;\n\n/** Related-input grouping contract. Values and submit/validation timing remain product-owned. */\nexport type FieldGroupMember = Readonly<{\n id: string;\n label: string;\n description?: string;\n error?: string;\n disabled?: boolean;\n}>;\n\nexport type FieldGroupDescriptor = Readonly<{\n label: string;\n description?: string;\n disabled?: boolean;\n /** An empty fieldIds list is a group-only error, not a reason to mark every field invalid. */\n error?: Readonly<{ message: string; fieldIds: readonly string[] }>;\n fields: readonly FieldGroupMember[];\n}>;\n\nexport type ResolvedFieldGroupMember = Readonly<{\n id: string;\n label: string;\n groupLabel: string;\n disabled: boolean;\n invalid: boolean;\n /** Renderers associate these messages without replacing a field's own help or error. */\n support: readonly Readonly<{ scope: \"group\" | \"field\"; kind: \"description\" | \"error\"; text: string }>[];\n}>;\n\nfunction requireText(value: unknown, name: string): asserts value is string {\n if (typeof value !== \"string\" || !value.trim()) throw new TypeError(`Field group ${name} must be nonempty text`);\n}\n\n/** Late native events and retained callbacks must use the current committed group policy. */\nexport function createFieldGroupEditSession(fields: readonly ResolvedFieldGroupMember[]) {\n let enabled = new Set(fields.filter(field => !field.disabled).map(field => field.id));\n const members = new Map(fields.map(field => [field.id, {}]));\n return {\n update(next: readonly ResolvedFieldGroupMember[]) {\n const current = new Set(next.map(field => field.id));\n // A reused id is a new mounted field after removal. Checking only enabled ids\n // would revive queued events from the old field and overwrite the new draft.\n for (const id of members.keys()) if (!current.has(id)) members.delete(id);\n for (const id of current) if (!members.has(id)) members.set(id, {});\n enabled = new Set(next.filter(field => !field.disabled).map(field => field.id));\n },\n /** Effect cleanup blocks events without treating Strict Mode replay as field removal. */\n suspend() { enabled.clear(); },\n guard<Args extends unknown[]>(id: string, callback: (...args: Args) => void): (...args: Args) => void {\n // A new host binds during render, before its committed policy enables it.\n if (!members.has(id)) members.set(id, {});\n const member = members.get(id);\n return (...args) => { if (members.get(id) === member && enabled.has(id)) callback(...args); };\n },\n };\n}\n\nfunction optionalText(value: unknown, name: string): void {\n if (value !== undefined) requireText(value, name);\n}\n\nfunction optionalBoolean(value: unknown): void {\n if (value !== undefined && typeof value !== \"boolean\") throw new TypeError(\"Field group disabled must be boolean\");\n}\n\nexport function resolveFieldGroup(descriptor: FieldGroupDescriptor): Readonly<{\n label: string;\n description: string | undefined;\n error: string | undefined;\n disabled: boolean;\n fields: readonly ResolvedFieldGroupMember[];\n}> {\n requireText(descriptor.label, \"label\");\n optionalText(descriptor.description, \"description\");\n optionalBoolean(descriptor.disabled);\n if (!Array.isArray(descriptor.fields)) throw new TypeError(\"Field group fields must be an array\");\n const ids = new Set<string>();\n for (const field of descriptor.fields) {\n requireText(field.id, \"field id\");\n requireText(field.label, \"field label\");\n optionalText(field.description, \"field description\");\n optionalText(field.error, \"field error\");\n optionalBoolean(field.disabled);\n if (ids.has(field.id)) throw new TypeError(\"Field group field ids must be unique\");\n ids.add(field.id);\n }\n if (descriptor.error !== undefined) {\n requireText(descriptor.error.message, \"error\");\n const affected = descriptor.error.fieldIds;\n // A typo or removed field must not silently lose its validation feedback.\n // Products update the visible error with their dynamic field list atomically.\n if (!Array.isArray(affected) || new Set(affected).size !== affected.length || affected.some(id => !ids.has(id))) {\n throw new TypeError(\"Field group error must reference distinct current field ids\");\n }\n }\n const disabled = descriptor.disabled ?? false;\n return Object.freeze({\n label: descriptor.label,\n description: descriptor.description,\n error: descriptor.error?.message,\n disabled,\n fields: Object.freeze(descriptor.fields.map(field => {\n const groupError = descriptor.error?.fieldIds.includes(field.id) ? descriptor.error.message : undefined;\n const support: ResolvedFieldGroupMember[\"support\"][number][] = [];\n if (descriptor.description !== undefined) support.push({ scope: \"group\", kind: \"description\", text: descriptor.description });\n if (field.description !== undefined) support.push({ scope: \"field\", kind: \"description\", text: field.description });\n if (field.error !== undefined) support.push({ scope: \"field\", kind: \"error\", text: field.error });\n if (groupError !== undefined) support.push({ scope: \"group\", kind: \"error\", text: groupError });\n return Object.freeze({ id: field.id, label: field.label, groupLabel: descriptor.label,\n // Group unlock restores independently disabled members; it never enables them.\n disabled: disabled || (field.disabled ?? false), invalid: field.error !== undefined || groupError !== undefined,\n support: Object.freeze(support.map(message => Object.freeze(message))) });\n })),\n });\n}\n"]}
|
package/dist/form.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAMH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9E,MAAM,MAAM,eAAe,GACvB,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5B,QAAQ,CAAC;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC,GAClC,QAAQ,CAAC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC,GACjC,QAAQ,CAAC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GACzB,QAAQ,CAAC;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC,GAClC,QAAQ,CAAC;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAChD,QAAQ,CAAC;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAAC,GAC9D,QAAQ,CAAC;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC;AAEzC,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjF,MAAM,MAAM,wBAAwB,CAAC,MAAM,IAAI,QAAQ,CAAC;IACtD,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACpC,oGAAoG;IACpG,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CAClD,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,CAAC,MAAM,IAAI,QAAQ,CAAC;IAC/C,WAAW,IAAI,eAAe,CAAC;IAC/B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnD,yFAAyF;IACzF,KAAK,IAAI,OAAO,CAAC;IACjB,OAAO,IAAI,OAAO,CAAC;CACpB,CAAC,CAAC;AAQH,wBAAgB,gCAAgC,CAAC,MAAM,EACrD,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,GACxC,IAAI,CAKN;AAcD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAC5C,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,GACxC,iBAAiB,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAMH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9E,MAAM,MAAM,eAAe,GACvB,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5B,QAAQ,CAAC;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC,GAClC,QAAQ,CAAC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC,GACjC,QAAQ,CAAC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GACzB,QAAQ,CAAC;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC,GAClC,QAAQ,CAAC;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAChD,QAAQ,CAAC;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAAC,GAC9D,QAAQ,CAAC;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC;AAEzC,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjF,MAAM,MAAM,wBAAwB,CAAC,MAAM,IAAI,QAAQ,CAAC;IACtD,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACpC,oGAAoG;IACpG,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CAClD,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,CAAC,MAAM,IAAI,QAAQ,CAAC;IAC/C,WAAW,IAAI,eAAe,CAAC;IAC/B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnD,yFAAyF;IACzF,KAAK,IAAI,OAAO,CAAC;IACjB,OAAO,IAAI,OAAO,CAAC;CACpB,CAAC,CAAC;AAQH,wBAAgB,gCAAgC,CAAC,MAAM,EACrD,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,GACxC,IAAI,CAKN;AAcD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAC5C,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,GACxC,iBAAiB,CAAC,MAAM,CAAC,CA0E3B;AAMD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAW1E;AAED;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CACjD,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,GACvD,MAAM,GAAG,IAAI,CAQf;AAMD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;AAEpD,eAAO,MAAM,YAAY;;CAE8B,CAAC;AAExD;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;CAgBrB,CAAC;AAMH,eAAO,MAAM,oBAAoB;IAC/B,+FAA+F;;CAElB,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;QAT3B,+FAA+F;;;;;;;;;;;;;;;;;;CAsCvF,CAAC"}
|
package/dist/form.js
CHANGED
|
@@ -51,7 +51,6 @@ export function createFormSubmitSession(options) {
|
|
|
51
51
|
if (phase.status === "submitting") {
|
|
52
52
|
return Promise.resolve({ outcome: "blocked", reason: "already-submitting" });
|
|
53
53
|
}
|
|
54
|
-
transition({ status: "submitting" });
|
|
55
54
|
return new Promise((resolve) => {
|
|
56
55
|
let settled = false;
|
|
57
56
|
const settleOnce = (outcome) => {
|
|
@@ -62,20 +61,28 @@ export function createFormSubmitSession(options) {
|
|
|
62
61
|
resolve(outcome);
|
|
63
62
|
};
|
|
64
63
|
interruptCurrentAttempt = settleOnce;
|
|
64
|
+
// Subscribers may dispose synchronously. Install cancellation before notifying.
|
|
65
|
+
transition({ status: "submitting" });
|
|
66
|
+
if (settled)
|
|
67
|
+
return;
|
|
65
68
|
(async () => {
|
|
66
69
|
try {
|
|
67
70
|
await options.onSubmit(values);
|
|
68
71
|
if (settled)
|
|
69
72
|
return;
|
|
70
|
-
|
|
73
|
+
phase = { status: "succeeded" };
|
|
71
74
|
settleOnce({ outcome: "succeeded" });
|
|
75
|
+
// A terminal-state subscriber can start the next attempt; do not clear
|
|
76
|
+
// that new attempt's cancellation handle after notifying it.
|
|
77
|
+
notify();
|
|
72
78
|
}
|
|
73
79
|
catch (error) {
|
|
74
80
|
if (settled)
|
|
75
81
|
return;
|
|
76
82
|
const message = resolveFailureMessage(options, error);
|
|
77
|
-
|
|
83
|
+
phase = { status: "failed", message };
|
|
78
84
|
settleOnce({ outcome: "failed", message });
|
|
85
|
+
notify();
|
|
79
86
|
}
|
|
80
87
|
})();
|
|
81
88
|
});
|
package/dist/form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"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","sourcesContent":["import { spacing } from \"./foundations.js\";\n\n/**\n * Form owns two things only: the vertical rhythm between already-framed\n * Fields, and the repeatable submit session (idle → submitting →\n * succeeded/failed). Field values, registration, dependencies, validateTrigger\n * policy and Form.List-style repeating groups stay product-owned (React Hook\n * Form or equivalent) — see docs/form.md for the full boundary.\n */\n\n// ---------------------------------------------------------------------------\n// Submit session\n// ---------------------------------------------------------------------------\n\nexport type FormSubmitStatus = \"idle\" | \"submitting\" | \"succeeded\" | \"failed\";\n\nexport type FormSubmitPhase =\n | Readonly<{ status: \"idle\" }>\n | Readonly<{ status: \"submitting\" }>\n | Readonly<{ status: \"succeeded\" }>\n | Readonly<{ status: \"failed\"; message: string }>;\n\nexport type FormSubmitOutcome =\n | Readonly<{ outcome: \"succeeded\" }>\n | Readonly<{ outcome: \"failed\"; message: string }>\n | Readonly<{ outcome: \"blocked\"; reason: \"already-submitting\" }>\n | Readonly<{ outcome: \"interrupted\" }>;\n\n/** Rejects to report a submission failure; resolving never implies success. */\nexport type FormSubmitHandler<Values> = (values: Values) => void | Promise<void>;\n\nexport type FormSubmitSessionOptions<Values> = Readonly<{\n onSubmit: FormSubmitHandler<Values>;\n /** Localized fallback shown when `resolveErrorMessage` is absent, throws, or returns empty copy. */\n fallbackErrorMessage: string;\n resolveErrorMessage?: (error: unknown) => string;\n}>;\n\n/**\n * A single submit session is reused across many attempts — unlike\n * AlertDialog's one-shot confirm, a form typically stays mounted and gets\n * resubmitted (edit → retry, or a settings screen saved again later). Each\n * attempt still settles its own returned Promise exactly once, and\n * `submitting` blocks every concurrent attempt the same way AlertDialog's\n * `busy` blocks a second confirm.\n */\nexport type FormSubmitSession<Values> = Readonly<{\n getSnapshot(): FormSubmitPhase;\n subscribe(listener: () => void): () => void;\n submit(values: Values): Promise<FormSubmitOutcome>;\n /** Moves a resting `succeeded`/`failed` phase back to `idle`. No-op while submitting. */\n reset(): boolean;\n dispose(): boolean;\n}>;\n\nfunction assertCopy(value: string, field: string): void {\n if (value.trim().length === 0) {\n throw new TypeError(`Form ${field} must not be empty`);\n }\n}\n\nexport function validateFormSubmitSessionOptions<Values>(\n options: FormSubmitSessionOptions<Values>,\n): void {\n if (typeof options.onSubmit !== \"function\") {\n throw new TypeError(\"Form onSubmit must be a function\");\n }\n assertCopy(options.fallbackErrorMessage, \"fallbackErrorMessage\");\n}\n\nfunction resolveFailureMessage<Values>(\n options: FormSubmitSessionOptions<Values>,\n error: unknown,\n): string {\n try {\n const resolved = options.resolveErrorMessage?.(error)?.trim();\n return resolved || options.fallbackErrorMessage;\n } catch {\n return options.fallbackErrorMessage;\n }\n}\n\n/**\n * Owns submit re-entrancy and exactly-once settlement. Does not own field\n * values (the caller passes `values` at call time), field-level validation,\n * or when submission is allowed to start (the product decides that from its\n * own dirty/valid state before calling `submit`).\n */\nexport function createFormSubmitSession<Values>(\n options: FormSubmitSessionOptions<Values>,\n): FormSubmitSession<Values> {\n validateFormSubmitSessionOptions(options);\n\n let phase: FormSubmitPhase = { status: \"idle\" };\n let disposed = false;\n let interruptCurrentAttempt: ((outcome: FormSubmitOutcome) => void) | null = null;\n const listeners = new Set<() => void>();\n\n const notify = () => {\n for (const listener of listeners) listener();\n };\n const transition = (next: FormSubmitPhase) => {\n phase = next;\n notify();\n };\n\n return {\n getSnapshot: () => phase,\n subscribe(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n submit(values) {\n if (disposed) throw new Error(\"Cannot use a disposed Form submit session\");\n if (phase.status === \"submitting\") {\n return Promise.resolve({ outcome: \"blocked\", reason: \"already-submitting\" });\n }\n\n transition({ status: \"submitting\" });\n\n return new Promise<FormSubmitOutcome>((resolve) => {\n let settled = false;\n const settleOnce = (outcome: FormSubmitOutcome) => {\n if (settled) return;\n settled = true;\n interruptCurrentAttempt = null;\n resolve(outcome);\n };\n interruptCurrentAttempt = settleOnce;\n\n (async () => {\n try {\n await options.onSubmit(values);\n if (settled) return;\n transition({ status: \"succeeded\" });\n settleOnce({ outcome: \"succeeded\" });\n } catch (error) {\n if (settled) return;\n const message = resolveFailureMessage(options, error);\n transition({ status: \"failed\", message });\n settleOnce({ outcome: \"failed\", message });\n }\n })();\n });\n },\n reset() {\n if (disposed) return false;\n if (phase.status === \"idle\" || phase.status === \"submitting\") return false;\n transition({ status: \"idle\" });\n return true;\n },\n dispose() {\n if (disposed) return false;\n disposed = true;\n interruptCurrentAttempt?.({ outcome: \"interrupted\" });\n interruptCurrentAttempt = null;\n return true;\n },\n };\n}\n\n// ---------------------------------------------------------------------------\n// Submit-failure focus\n// ---------------------------------------------------------------------------\n\n/**\n * Form does not register fields or run validation, so it cannot find the\n * first invalid field on its own. The product supplies its own field render\n * order and the ids it currently considers invalid (e.g. React Hook Form's\n * `formState.errors` keys); Form only fixes which one wins the race — first\n * in render order — so every product answers this the same way.\n */\nexport function validateFormFieldOrder(fieldOrder: readonly string[]): void {\n const seen = new Set<string>();\n fieldOrder.forEach((fieldId, index) => {\n if (fieldId.trim().length === 0) {\n throw new TypeError(`Form field id at index ${index} must not be empty`);\n }\n if (seen.has(fieldId)) {\n throw new TypeError(`Duplicate Form field id: ${fieldId}`);\n }\n seen.add(fieldId);\n });\n}\n\n/**\n * Web renderers call `.focus()` on the resolved field's control; React Native\n * renderers move accessibility focus to it (e.g. `AccessibilityInfo.sendAccessibilityEvent`\n * or a focus-trap ref). Returns `null` when there are no fields yet or none\n * are invalid, in which case a failed submit has no field to focus and the\n * form-level error slot below owns the announcement instead.\n */\nexport function resolveFirstInvalidFieldFocusTarget(\n fieldOrder: readonly string[],\n invalidFieldIds: ReadonlySet<string> | readonly string[],\n): string | null {\n validateFormFieldOrder(fieldOrder);\n const invalid =\n invalidFieldIds instanceof Set ? invalidFieldIds : new Set(invalidFieldIds);\n for (const fieldId of fieldOrder) {\n if (invalid.has(fieldId)) return fieldId;\n }\n return null;\n}\n\n// ---------------------------------------------------------------------------\n// Visual recipe — inter-field rhythm only\n// ---------------------------------------------------------------------------\n\nexport type FormDensity = \"compact\" | \"comfortable\";\n\nexport const formDefaults = {\n density: \"comfortable\",\n} as const satisfies Readonly<{ density: FormDensity }>;\n\n/**\n * Anatomy is fixed, not a configurable prop: fields, then the form-level\n * error, then actions. `field` frame styling (background, border, its own\n * label/hint/error gap) belongs to `fieldRecipe`; this recipe only sets the\n * gap *between* one field and the next. `formError` renders as the existing\n * Notice `tone=\"danger\"` contract — Form fixes only its slot position, it\n * does not redeclare Notice's colors. `actions` has no dedicated layout here;\n * composing Button/Stack in that slot is the product's job, same reasoning\n * the roadmap already applies to Stack.\n */\nexport const formRecipe = {\n slots: [\"root\", \"field\", \"formError\", \"actions\"] as const,\n defaults: formDefaults,\n density: {\n compact: { fieldGap: spacing.sm },\n comfortable: { fieldGap: spacing.lg },\n },\n formError: {\n position: \"beforeActions\",\n gap: spacing.sm,\n },\n} as const satisfies Readonly<{\n slots: readonly [\"root\", \"field\", \"formError\", \"actions\"];\n defaults: Readonly<{ density: FormDensity }>;\n density: Record<FormDensity, Readonly<{ fieldGap: number }>>;\n formError: Readonly<{ position: \"beforeActions\"; gap: number }>;\n}>;\n\n// ---------------------------------------------------------------------------\n// Behavior — source for the shared behaviorRegistry wiring\n// ---------------------------------------------------------------------------\n\nexport const formBehaviorDefaults = {\n /** Reuses Toast's own `normal | high` vocabulary: a blocked submission is `high`/assertive. */\n errorAnnouncementPriority: \"high\",\n} as const satisfies Readonly<{ errorAnnouncementPriority: \"normal\" | \"high\" }>;\n\n/**\n * Kept beside the Form contract as the source value wired by\n * `behaviorRegistry.form`; this lets the registry reuse the contract without\n * redeclaring Form's inputs, events, states, or scenarios.\n */\nexport const formBehaviorSpec = {\n /*\n 값은 제품이 소유하므로 controlled prop이 없다. 대신 renderer가 반드시 배선해야 하는\n 것을 `inputs`/`events`로 선언한다 — 공유 불변식이 \"controlled + inputs + events가\n 하나도 없는 behavior는 renderer 테스트가 구동할 대상이 없다\"고 요구하고, 그 지적이\n 옳다. 같은 형태(컨트롤러가 상태를 소유하고 renderer가 구동)인 `loadMore`가 이미\n `controlled: []` + `inputs` + `events`로 선언한 선례를 따른다.\n */\n controlled: [],\n inputs: [\"status\", \"formError\", \"fieldOrder\"],\n events: [\"onSubmit\"],\n defaults: formBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"busy\"],\n content: [\"idle\", \"loading\", \"error\"],\n },\n web: { roles: [\"alert\"], keyboard: [\"Tab\", \"Enter\"], focus: \"native\" },\n native: { roles: [\"alert\"], states: [\"busy\"], actions: [\"submit\"] },\n scenarios: [\n \"submitting-blocks-every-concurrent-submit-attempt\",\n \"each-submit-attempt-settles-its-result-exactly-once\",\n \"failed-submit-returns-to-a-resting-state-that-still-allows-retry\",\n \"succeeded-submit-remains-resting-and-allows-resubmission\",\n \"dispose-during-submit-settles-the-pending-attempt-as-interrupted\",\n \"disposed-session-rejects-further-submit-attempts\",\n \"form-level-error-never-carries-a-per-field-message\",\n \"first-invalid-field-in-render-order-receives-focus-on-submit-failure\",\n \"form-level-error-is-announced-when-no-field-target-exists\",\n ],\n} as const;\n"]}
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAuD3C,SAAS,UAAU,CAAC,KAAa,EAAE,KAAa;IAC9C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CAAC,QAAQ,KAAK,oBAAoB,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,OAAyC;IAEzC,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC3C,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IACD,UAAU,CAAC,OAAO,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAyC,EACzC,KAAc;IAEd,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;QAC9D,OAAO,QAAQ,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,oBAAoB,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAyC;IAEzC,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAE1C,IAAI,KAAK,GAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAChD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,uBAAuB,GAAkD,IAAI,CAAC;IAClF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAExC,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,KAAK,MAAM,QAAQ,IAAI,SAAS;YAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,IAAqB,EAAE,EAAE;QAC3C,KAAK,GAAG,IAAI,CAAC;QACb,MAAM,EAAE,CAAC;IACX,CAAC,CAAC;IAEF,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK;QACxB,SAAS,CAAC,QAAQ;YAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,MAAM;YACX,IAAI,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3E,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBAClC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;YAC/E,CAAC;YAED,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,EAAE;gBAChD,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,MAAM,UAAU,GAAG,CAAC,OAA0B,EAAE,EAAE;oBAChD,IAAI,OAAO;wBAAE,OAAO;oBACpB,OAAO,GAAG,IAAI,CAAC;oBACf,uBAAuB,GAAG,IAAI,CAAC;oBAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;gBACnB,CAAC,CAAC;gBACF,uBAAuB,GAAG,UAAU,CAAC;gBACrC,gFAAgF;gBAChF,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;gBACrC,IAAI,OAAO;oBAAE,OAAO;gBAEpB,CAAC,KAAK,IAAI,EAAE;oBACV,IAAI,CAAC;wBACH,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC/B,IAAI,OAAO;4BAAE,OAAO;wBACpB,KAAK,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;wBAChC,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;wBACrC,uEAAuE;wBACvE,6DAA6D;wBAC7D,MAAM,EAAE,CAAC;oBACX,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,OAAO;4BAAE,OAAO;wBACpB,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;wBACtD,KAAK,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;wBACtC,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;wBAC3C,MAAM,EAAE,CAAC;oBACX,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK;YACH,IAAI,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY;gBAAE,OAAO,KAAK,CAAC;YAC3E,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,IAAI,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC3B,QAAQ,GAAG,IAAI,CAAC;YAChB,uBAAuB,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YACtD,uBAAuB,GAAG,IAAI,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAA6B;IAClE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACpC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,SAAS,CAAC,0BAA0B,KAAK,oBAAoB,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,SAAS,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mCAAmC,CACjD,UAA6B,EAC7B,eAAwD;IAExD,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,OAAO,GACX,eAAe,YAAY,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9E,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAQD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,aAAa;CAC+B,CAAC;AAExD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAU;IACzD,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE;QACP,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE;QACjC,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE;KACtC;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,eAAe;QACzB,GAAG,EAAE,OAAO,CAAC,EAAE;KAChB;CAMD,CAAC;AAEH,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,+FAA+F;IAC/F,yBAAyB,EAAE,MAAM;CAC4C,CAAC;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;;;;;;MAME;IACF,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC;IAC7C,MAAM,EAAE,CAAC,UAAU,CAAC;IACpB,QAAQ,EAAE,oBAAoB;IAC9B,SAAS,EAAE;QACT,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;QACjC,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;KACtC;IACD,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE;IACnE,SAAS,EAAE;QACT,mDAAmD;QACnD,qDAAqD;QACrD,kEAAkE;QAClE,0DAA0D;QAC1D,kEAAkE;QAClE,kDAAkD;QAClD,oDAAoD;QACpD,sEAAsE;QACtE,2DAA2D;KAC5D;CACO,CAAC","sourcesContent":["import { spacing } from \"./foundations.js\";\n\n/**\n * Form owns two things only: the vertical rhythm between already-framed\n * Fields, and the repeatable submit session (idle → submitting →\n * succeeded/failed). Field values, registration, dependencies, validateTrigger\n * policy and Form.List-style repeating groups stay product-owned (React Hook\n * Form or equivalent) — see docs/form.md for the full boundary.\n */\n\n// ---------------------------------------------------------------------------\n// Submit session\n// ---------------------------------------------------------------------------\n\nexport type FormSubmitStatus = \"idle\" | \"submitting\" | \"succeeded\" | \"failed\";\n\nexport type FormSubmitPhase =\n | Readonly<{ status: \"idle\" }>\n | Readonly<{ status: \"submitting\" }>\n | Readonly<{ status: \"succeeded\" }>\n | Readonly<{ status: \"failed\"; message: string }>;\n\nexport type FormSubmitOutcome =\n | Readonly<{ outcome: \"succeeded\" }>\n | Readonly<{ outcome: \"failed\"; message: string }>\n | Readonly<{ outcome: \"blocked\"; reason: \"already-submitting\" }>\n | Readonly<{ outcome: \"interrupted\" }>;\n\n/** Rejects to report a submission failure; resolving never implies success. */\nexport type FormSubmitHandler<Values> = (values: Values) => void | Promise<void>;\n\nexport type FormSubmitSessionOptions<Values> = Readonly<{\n onSubmit: FormSubmitHandler<Values>;\n /** Localized fallback shown when `resolveErrorMessage` is absent, throws, or returns empty copy. */\n fallbackErrorMessage: string;\n resolveErrorMessage?: (error: unknown) => string;\n}>;\n\n/**\n * A single submit session is reused across many attempts — unlike\n * AlertDialog's one-shot confirm, a form typically stays mounted and gets\n * resubmitted (edit → retry, or a settings screen saved again later). Each\n * attempt still settles its own returned Promise exactly once, and\n * `submitting` blocks every concurrent attempt the same way AlertDialog's\n * `busy` blocks a second confirm.\n */\nexport type FormSubmitSession<Values> = Readonly<{\n getSnapshot(): FormSubmitPhase;\n subscribe(listener: () => void): () => void;\n submit(values: Values): Promise<FormSubmitOutcome>;\n /** Moves a resting `succeeded`/`failed` phase back to `idle`. No-op while submitting. */\n reset(): boolean;\n dispose(): boolean;\n}>;\n\nfunction assertCopy(value: string, field: string): void {\n if (value.trim().length === 0) {\n throw new TypeError(`Form ${field} must not be empty`);\n }\n}\n\nexport function validateFormSubmitSessionOptions<Values>(\n options: FormSubmitSessionOptions<Values>,\n): void {\n if (typeof options.onSubmit !== \"function\") {\n throw new TypeError(\"Form onSubmit must be a function\");\n }\n assertCopy(options.fallbackErrorMessage, \"fallbackErrorMessage\");\n}\n\nfunction resolveFailureMessage<Values>(\n options: FormSubmitSessionOptions<Values>,\n error: unknown,\n): string {\n try {\n const resolved = options.resolveErrorMessage?.(error)?.trim();\n return resolved || options.fallbackErrorMessage;\n } catch {\n return options.fallbackErrorMessage;\n }\n}\n\n/**\n * Owns submit re-entrancy and exactly-once settlement. Does not own field\n * values (the caller passes `values` at call time), field-level validation,\n * or when submission is allowed to start (the product decides that from its\n * own dirty/valid state before calling `submit`).\n */\nexport function createFormSubmitSession<Values>(\n options: FormSubmitSessionOptions<Values>,\n): FormSubmitSession<Values> {\n validateFormSubmitSessionOptions(options);\n\n let phase: FormSubmitPhase = { status: \"idle\" };\n let disposed = false;\n let interruptCurrentAttempt: ((outcome: FormSubmitOutcome) => void) | null = null;\n const listeners = new Set<() => void>();\n\n const notify = () => {\n for (const listener of listeners) listener();\n };\n const transition = (next: FormSubmitPhase) => {\n phase = next;\n notify();\n };\n\n return {\n getSnapshot: () => phase,\n subscribe(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n submit(values) {\n if (disposed) throw new Error(\"Cannot use a disposed Form submit session\");\n if (phase.status === \"submitting\") {\n return Promise.resolve({ outcome: \"blocked\", reason: \"already-submitting\" });\n }\n\n return new Promise<FormSubmitOutcome>((resolve) => {\n let settled = false;\n const settleOnce = (outcome: FormSubmitOutcome) => {\n if (settled) return;\n settled = true;\n interruptCurrentAttempt = null;\n resolve(outcome);\n };\n interruptCurrentAttempt = settleOnce;\n // Subscribers may dispose synchronously. Install cancellation before notifying.\n transition({ status: \"submitting\" });\n if (settled) return;\n\n (async () => {\n try {\n await options.onSubmit(values);\n if (settled) return;\n phase = { status: \"succeeded\" };\n settleOnce({ outcome: \"succeeded\" });\n // A terminal-state subscriber can start the next attempt; do not clear\n // that new attempt's cancellation handle after notifying it.\n notify();\n } catch (error) {\n if (settled) return;\n const message = resolveFailureMessage(options, error);\n phase = { status: \"failed\", message };\n settleOnce({ outcome: \"failed\", message });\n notify();\n }\n })();\n });\n },\n reset() {\n if (disposed) return false;\n if (phase.status === \"idle\" || phase.status === \"submitting\") return false;\n transition({ status: \"idle\" });\n return true;\n },\n dispose() {\n if (disposed) return false;\n disposed = true;\n interruptCurrentAttempt?.({ outcome: \"interrupted\" });\n interruptCurrentAttempt = null;\n return true;\n },\n };\n}\n\n// ---------------------------------------------------------------------------\n// Submit-failure focus\n// ---------------------------------------------------------------------------\n\n/**\n * Form does not register fields or run validation, so it cannot find the\n * first invalid field on its own. The product supplies its own field render\n * order and the ids it currently considers invalid (e.g. React Hook Form's\n * `formState.errors` keys); Form only fixes which one wins the race — first\n * in render order — so every product answers this the same way.\n */\nexport function validateFormFieldOrder(fieldOrder: readonly string[]): void {\n const seen = new Set<string>();\n fieldOrder.forEach((fieldId, index) => {\n if (fieldId.trim().length === 0) {\n throw new TypeError(`Form field id at index ${index} must not be empty`);\n }\n if (seen.has(fieldId)) {\n throw new TypeError(`Duplicate Form field id: ${fieldId}`);\n }\n seen.add(fieldId);\n });\n}\n\n/**\n * Web renderers call `.focus()` on the resolved field's control; React Native\n * renderers move accessibility focus to it (e.g. `AccessibilityInfo.sendAccessibilityEvent`\n * or a focus-trap ref). Returns `null` when there are no fields yet or none\n * are invalid, in which case a failed submit has no field to focus and the\n * form-level error slot below owns the announcement instead.\n */\nexport function resolveFirstInvalidFieldFocusTarget(\n fieldOrder: readonly string[],\n invalidFieldIds: ReadonlySet<string> | readonly string[],\n): string | null {\n validateFormFieldOrder(fieldOrder);\n const invalid =\n invalidFieldIds instanceof Set ? invalidFieldIds : new Set(invalidFieldIds);\n for (const fieldId of fieldOrder) {\n if (invalid.has(fieldId)) return fieldId;\n }\n return null;\n}\n\n// ---------------------------------------------------------------------------\n// Visual recipe — inter-field rhythm only\n// ---------------------------------------------------------------------------\n\nexport type FormDensity = \"compact\" | \"comfortable\";\n\nexport const formDefaults = {\n density: \"comfortable\",\n} as const satisfies Readonly<{ density: FormDensity }>;\n\n/**\n * Anatomy is fixed, not a configurable prop: fields, then the form-level\n * error, then actions. `field` frame styling (background, border, its own\n * label/hint/error gap) belongs to `fieldRecipe`; this recipe only sets the\n * gap *between* one field and the next. `formError` renders as the existing\n * Notice `tone=\"danger\"` contract — Form fixes only its slot position, it\n * does not redeclare Notice's colors. `actions` has no dedicated layout here;\n * composing Button/Stack in that slot is the product's job, same reasoning\n * the roadmap already applies to Stack.\n */\nexport const formRecipe = {\n slots: [\"root\", \"field\", \"formError\", \"actions\"] as const,\n defaults: formDefaults,\n density: {\n compact: { fieldGap: spacing.sm },\n comfortable: { fieldGap: spacing.lg },\n },\n formError: {\n position: \"beforeActions\",\n gap: spacing.sm,\n },\n} as const satisfies Readonly<{\n slots: readonly [\"root\", \"field\", \"formError\", \"actions\"];\n defaults: Readonly<{ density: FormDensity }>;\n density: Record<FormDensity, Readonly<{ fieldGap: number }>>;\n formError: Readonly<{ position: \"beforeActions\"; gap: number }>;\n}>;\n\n// ---------------------------------------------------------------------------\n// Behavior — source for the shared behaviorRegistry wiring\n// ---------------------------------------------------------------------------\n\nexport const formBehaviorDefaults = {\n /** Reuses Toast's own `normal | high` vocabulary: a blocked submission is `high`/assertive. */\n errorAnnouncementPriority: \"high\",\n} as const satisfies Readonly<{ errorAnnouncementPriority: \"normal\" | \"high\" }>;\n\n/**\n * Kept beside the Form contract as the source value wired by\n * `behaviorRegistry.form`; this lets the registry reuse the contract without\n * redeclaring Form's inputs, events, states, or scenarios.\n */\nexport const formBehaviorSpec = {\n /*\n 값은 제품이 소유하므로 controlled prop이 없다. 대신 renderer가 반드시 배선해야 하는\n 것을 `inputs`/`events`로 선언한다 — 공유 불변식이 \"controlled + inputs + events가\n 하나도 없는 behavior는 renderer 테스트가 구동할 대상이 없다\"고 요구하고, 그 지적이\n 옳다. 같은 형태(컨트롤러가 상태를 소유하고 renderer가 구동)인 `loadMore`가 이미\n `controlled: []` + `inputs` + `events`로 선언한 선례를 따른다.\n */\n controlled: [],\n inputs: [\"status\", \"formError\", \"fieldOrder\"],\n events: [\"onSubmit\"],\n defaults: formBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"busy\"],\n content: [\"idle\", \"loading\", \"error\"],\n },\n web: { roles: [\"alert\"], keyboard: [\"Tab\", \"Enter\"], focus: \"native\" },\n native: { roles: [\"alert\"], states: [\"busy\"], actions: [\"submit\"] },\n scenarios: [\n \"submitting-blocks-every-concurrent-submit-attempt\",\n \"each-submit-attempt-settles-its-result-exactly-once\",\n \"failed-submit-returns-to-a-resting-state-that-still-allows-retry\",\n \"succeeded-submit-remains-resting-and-allows-resubmission\",\n \"dispose-during-submit-settles-the-pending-attempt-as-interrupted\",\n \"disposed-session-rejects-further-submit-attempts\",\n \"form-level-error-never-carries-a-per-field-message\",\n \"first-invalid-field-in-render-order-receives-focus-on-submit-failure\",\n \"form-level-error-is-announced-when-no-field-target-exists\",\n ],\n} as const;\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";
|
|
@@ -146,6 +150,8 @@ export declare function resolveSearchEmptyCause(count: number | null, appliedFil
|
|
|
146
150
|
export declare function resolveFocusAfterRemoval(removedIndex: number, remaining: number): number;
|
|
147
151
|
/** Recipe for the SearchScreen phase sections; geometry stays on shared spacing tokens. */
|
|
148
152
|
export declare const searchScreenRecipe: {
|
|
153
|
+
/** Debounced typing delay; explicit submit remains a separate host action. */
|
|
154
|
+
readonly debounceMs: 300;
|
|
149
155
|
/** Recent searches shown before the user types; reference services show 5–10 and let the rest scroll away. */
|
|
150
156
|
readonly recentVisible: 5;
|
|
151
157
|
/** Suggestions under the "search for ‘q’" row. */
|
|
@@ -159,4 +165,8 @@ export declare const searchScreenRecipe: {
|
|
|
159
165
|
/** Between chips in applied filters and suggested queries. */
|
|
160
166
|
readonly chipGap: 8;
|
|
161
167
|
};
|
|
168
|
+
/** Keep finite negative delays at zero; reject values whose timer behavior varies by host. */
|
|
169
|
+
export declare function resolveSearchDebounceMs(value?: number): number;
|
|
170
|
+
/** Horizontal intent preserves vertical scrolling and uses one reveal distance across renderers. */
|
|
171
|
+
export declare function timestampRevealOffset(dx: number, dy: number): number;
|
|
162
172
|
//# sourceMappingURL=screen-patterns.d.ts.map
|