@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
package/dist/action-session.d.ts
CHANGED
|
@@ -44,4 +44,20 @@ export type ActionSession<T> = Readonly<{
|
|
|
44
44
|
* See docs/action-session.md for retry, persistence and ownership boundaries.
|
|
45
45
|
*/
|
|
46
46
|
export declare function createActionSession<T>(initialValue: T): ActionSession<T>;
|
|
47
|
+
/** Product-owned comparisons against the last confirmed value, never an optimistic value. */
|
|
48
|
+
export type SaveFeedbackInput = Readonly<{
|
|
49
|
+
phase: ActionSnapshot<unknown>["status"];
|
|
50
|
+
dirty: boolean;
|
|
51
|
+
valid: boolean;
|
|
52
|
+
hasSaved: boolean;
|
|
53
|
+
disabled?: boolean;
|
|
54
|
+
}>;
|
|
55
|
+
export type SaveFeedback = Readonly<{
|
|
56
|
+
feedback: "pending" | "error" | "saved" | "saved-with-changes" | "unsaved" | "unchanged";
|
|
57
|
+
pending: boolean;
|
|
58
|
+
currentSaved: boolean;
|
|
59
|
+
canSubmit: boolean;
|
|
60
|
+
}>;
|
|
61
|
+
/** Classifies current-draft feedback without owning requests, equality, validation or copy. */
|
|
62
|
+
export declare function resolveSaveFeedback({ phase, dirty, valid, hasSaved, disabled }: SaveFeedbackInput): SaveFeedback;
|
|
47
63
|
//# sourceMappingURL=action-session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-session.d.ts","sourceRoot":"","sources":["../src/action-session.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,MAAM,MAAM,cAAc,CAAC,CAAC,IACxB,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,GACtC,QAAQ,CAAC;IAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1E,QAAQ,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACjF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3F,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,QAAQ,CAAC;IAAE,eAAe,CAAC,EAAE,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACtF,MAAM,MAAM,aAAa,CAAC,CAAC,IACvB,QAAQ,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9D,QAAQ,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GAClE,QAAQ,CAAC;IAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAC,CAAC;AAChD,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,QAAQ,CAAC;IACtC,WAAW,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;IACjC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,oFAAoF;IACpF,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CACvB,CAAC,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"action-session.d.ts","sourceRoot":"","sources":["../src/action-session.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,MAAM,MAAM,cAAc,CAAC,CAAC,IACxB,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,GACtC,QAAQ,CAAC;IAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1E,QAAQ,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACjF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3F,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,QAAQ,CAAC;IAAE,eAAe,CAAC,EAAE,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACtF,MAAM,MAAM,aAAa,CAAC,CAAC,IACvB,QAAQ,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9D,QAAQ,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,GAClE,QAAQ,CAAC;IAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAC,CAAC;AAChD,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,QAAQ,CAAC;IACtC,WAAW,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;IACjC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,oFAAoF;IACpF,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CACvB,CAAC,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAkDxE;AAED,6FAA6F;AAC7F,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,oBAAoB,GAAG,SAAS,GAAG,WAAW,CAAC;IACzF,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAEH,+FAA+F;AAC/F,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAgB,EAAE,EAAE,iBAAiB,GAAG,YAAY,CAUxH"}
|
package/dist/action-session.js
CHANGED
|
@@ -34,11 +34,17 @@ export function createActionSession(initialValue) {
|
|
|
34
34
|
// Retrying a mutation must be authorized by the product adapter (idempotency).
|
|
35
35
|
failedAttempt = proposal.retryable ? { task, options: proposal } : undefined;
|
|
36
36
|
publish({ status: "error", value: previous, operationId, error });
|
|
37
|
+
if (generation !== operationId)
|
|
38
|
+
return { status: "ignored" };
|
|
37
39
|
return { status: "error", error, operationId };
|
|
38
40
|
}
|
|
39
41
|
if (generation !== operationId)
|
|
40
42
|
return { status: "ignored" };
|
|
41
43
|
publish({ status: "success", value, operationId });
|
|
44
|
+
// Subscribers may synchronously switch entities; their new session must not
|
|
45
|
+
// receive a stale continuation such as closing the editor after this save.
|
|
46
|
+
if (generation !== operationId)
|
|
47
|
+
return { status: "ignored" };
|
|
42
48
|
return { status: "success", value, operationId };
|
|
43
49
|
};
|
|
44
50
|
return {
|
|
@@ -57,4 +63,16 @@ export function createActionSession(initialValue) {
|
|
|
57
63
|
},
|
|
58
64
|
};
|
|
59
65
|
}
|
|
66
|
+
/** Classifies current-draft feedback without owning requests, equality, validation or copy. */
|
|
67
|
+
export function resolveSaveFeedback({ phase, dirty, valid, hasSaved, disabled = false }) {
|
|
68
|
+
const pending = phase === "pending";
|
|
69
|
+
const currentSaved = hasSaved && !dirty;
|
|
70
|
+
// A response confirms its submitted snapshot, not edits made after submission.
|
|
71
|
+
// Reverting to the confirmed value also clears an obsolete failure notice.
|
|
72
|
+
const feedback = pending ? "pending"
|
|
73
|
+
: !dirty ? phase === "success" && hasSaved ? "saved" : "unchanged"
|
|
74
|
+
: phase === "error" ? "error"
|
|
75
|
+
: phase === "success" && hasSaved ? "saved-with-changes" : "unsaved";
|
|
76
|
+
return { feedback, pending, currentSaved, canSubmit: !pending && !disabled && valid && dirty };
|
|
77
|
+
}
|
|
60
78
|
//# sourceMappingURL=action-session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-session.js","sourceRoot":"","sources":["../src/action-session.ts"],"names":[],"mappings":"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","sourcesContent":["/** Optional behavior adapter: no React, networking, storage or animation dependency. */\nexport type ActionSnapshot<T> =\n | Readonly<{ status: \"idle\"; value: T }>\n | Readonly<{ status: \"pending\" | \"success\"; value: T; operationId: number }>\n | Readonly<{ status: \"error\"; value: T; operationId: number; error: unknown }>;\nexport type ActionTask<T> = (context: Readonly<{ operationId: number }>) => T | Promise<T>;\nexport type ActionOptions<T> = Readonly<{ optimisticValue?: T; retryable?: boolean }>;\nexport type ActionOutcome<T> =\n | Readonly<{ status: \"success\"; value: T; operationId: number }>\n | Readonly<{ status: \"error\"; error: unknown; operationId: number }>\n | Readonly<{ status: \"blocked\" | \"ignored\" }>;\nexport type ActionSession<T> = Readonly<{\n getSnapshot(): ActionSnapshot<T>;\n subscribe(listener: () => void): () => void;\n run(task: ActionTask<T>, options?: ActionOptions<T>): Promise<ActionOutcome<T>>;\n retry(): Promise<ActionOutcome<T>>;\n /** Detach stale results; this does NOT cancel work already accepted by a server. */\n reset(value: T): void;\n}>;\n\n/**\n * One session per editable entity/action. Serialize mutations instead of guessing\n * how overlapping server writes should merge; applications own reconciliation.\n * See docs/action-session.md for retry, persistence and ownership boundaries.\n */\nexport function createActionSession<T>(initialValue: T): ActionSession<T> {\n let snapshot: ActionSnapshot<T> = { status: \"idle\", value: initialValue };\n let generation = 0;\n let failedAttempt: { task: ActionTask<T>; options: ActionOptions<T> } | undefined;\n const listeners = new Set<() => void>();\n const publish = (next: ActionSnapshot<T>) => {\n snapshot = next;\n for (const listener of [...listeners]) listener();\n };\n const run: ActionSession<T>[\"run\"] = async (task, options = {}) => {\n if (snapshot.status === \"pending\") return { status: \"blocked\" };\n const operationId = ++generation;\n const previous = snapshot.value;\n // Capture the proposal now so retry cannot pick up a caller-mutated options object.\n const proposal = { ...options };\n failedAttempt = undefined;\n publish({ status: \"pending\", value: \"optimisticValue\" in proposal ? proposal.optimisticValue as T : previous, operationId });\n if (generation !== operationId) return { status: \"ignored\" };\n let value: T;\n try {\n value = await task({ operationId });\n } catch (error) {\n if (generation !== operationId) return { status: \"ignored\" };\n // Retrying a mutation must be authorized by the product adapter (idempotency).\n failedAttempt = proposal.retryable ? { task, options: proposal } : undefined;\n publish({ status: \"error\", value: previous, operationId, error });\n return { status: \"error\", error, operationId };\n }\n if (generation !== operationId) return { status: \"ignored\" };\n publish({ status: \"success\", value, operationId });\n return { status: \"success\", value, operationId };\n };\n return {\n getSnapshot: () => snapshot,\n subscribe(listener) { listeners.add(listener); return () => { listeners.delete(listener); }; },\n run,\n retry() {\n if (snapshot.status !== \"error\" || !failedAttempt) return Promise.resolve({ status: \"blocked\" });\n return run(failedAttempt.task, failedAttempt.options);\n },\n reset(value) {\n ++generation;\n failedAttempt = undefined;\n publish({ status: \"idle\", value });\n },\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"action-session.js","sourceRoot":"","sources":["../src/action-session.ts"],"names":[],"mappings":"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","sourcesContent":["/** Optional behavior adapter: no React, networking, storage or animation dependency. */\nexport type ActionSnapshot<T> =\n | Readonly<{ status: \"idle\"; value: T }>\n | Readonly<{ status: \"pending\" | \"success\"; value: T; operationId: number }>\n | Readonly<{ status: \"error\"; value: T; operationId: number; error: unknown }>;\nexport type ActionTask<T> = (context: Readonly<{ operationId: number }>) => T | Promise<T>;\nexport type ActionOptions<T> = Readonly<{ optimisticValue?: T; retryable?: boolean }>;\nexport type ActionOutcome<T> =\n | Readonly<{ status: \"success\"; value: T; operationId: number }>\n | Readonly<{ status: \"error\"; error: unknown; operationId: number }>\n | Readonly<{ status: \"blocked\" | \"ignored\" }>;\nexport type ActionSession<T> = Readonly<{\n getSnapshot(): ActionSnapshot<T>;\n subscribe(listener: () => void): () => void;\n run(task: ActionTask<T>, options?: ActionOptions<T>): Promise<ActionOutcome<T>>;\n retry(): Promise<ActionOutcome<T>>;\n /** Detach stale results; this does NOT cancel work already accepted by a server. */\n reset(value: T): void;\n}>;\n\n/**\n * One session per editable entity/action. Serialize mutations instead of guessing\n * how overlapping server writes should merge; applications own reconciliation.\n * See docs/action-session.md for retry, persistence and ownership boundaries.\n */\nexport function createActionSession<T>(initialValue: T): ActionSession<T> {\n let snapshot: ActionSnapshot<T> = { status: \"idle\", value: initialValue };\n let generation = 0;\n let failedAttempt: { task: ActionTask<T>; options: ActionOptions<T> } | undefined;\n const listeners = new Set<() => void>();\n const publish = (next: ActionSnapshot<T>) => {\n snapshot = next;\n for (const listener of [...listeners]) listener();\n };\n const run: ActionSession<T>[\"run\"] = async (task, options = {}) => {\n if (snapshot.status === \"pending\") return { status: \"blocked\" };\n const operationId = ++generation;\n const previous = snapshot.value;\n // Capture the proposal now so retry cannot pick up a caller-mutated options object.\n const proposal = { ...options };\n failedAttempt = undefined;\n publish({ status: \"pending\", value: \"optimisticValue\" in proposal ? proposal.optimisticValue as T : previous, operationId });\n if (generation !== operationId) return { status: \"ignored\" };\n let value: T;\n try {\n value = await task({ operationId });\n } catch (error) {\n if (generation !== operationId) return { status: \"ignored\" };\n // Retrying a mutation must be authorized by the product adapter (idempotency).\n failedAttempt = proposal.retryable ? { task, options: proposal } : undefined;\n publish({ status: \"error\", value: previous, operationId, error });\n if (generation !== operationId) return { status: \"ignored\" };\n return { status: \"error\", error, operationId };\n }\n if (generation !== operationId) return { status: \"ignored\" };\n publish({ status: \"success\", value, operationId });\n // Subscribers may synchronously switch entities; their new session must not\n // receive a stale continuation such as closing the editor after this save.\n if (generation !== operationId) return { status: \"ignored\" };\n return { status: \"success\", value, operationId };\n };\n return {\n getSnapshot: () => snapshot,\n subscribe(listener) { listeners.add(listener); return () => { listeners.delete(listener); }; },\n run,\n retry() {\n if (snapshot.status !== \"error\" || !failedAttempt) return Promise.resolve({ status: \"blocked\" });\n return run(failedAttempt.task, failedAttempt.options);\n },\n reset(value) {\n ++generation;\n failedAttempt = undefined;\n publish({ status: \"idle\", value });\n },\n };\n}\n\n/** Product-owned comparisons against the last confirmed value, never an optimistic value. */\nexport type SaveFeedbackInput = Readonly<{\n phase: ActionSnapshot<unknown>[\"status\"];\n dirty: boolean;\n valid: boolean;\n hasSaved: boolean;\n disabled?: boolean;\n}>;\nexport type SaveFeedback = Readonly<{\n feedback: \"pending\" | \"error\" | \"saved\" | \"saved-with-changes\" | \"unsaved\" | \"unchanged\";\n pending: boolean;\n currentSaved: boolean;\n canSubmit: boolean;\n}>;\n\n/** Classifies current-draft feedback without owning requests, equality, validation or copy. */\nexport function resolveSaveFeedback({ phase, dirty, valid, hasSaved, disabled = false }: SaveFeedbackInput): SaveFeedback {\n const pending = phase === \"pending\";\n const currentSaved = hasSaved && !dirty;\n // A response confirms its submitted snapshot, not edits made after submission.\n // Reverting to the confirmed value also clears an obsolete failure notice.\n const feedback: SaveFeedback[\"feedback\"] = pending ? \"pending\"\n : !dirty ? phase === \"success\" && hasSaved ? \"saved\" : \"unchanged\"\n : phase === \"error\" ? \"error\"\n : phase === \"success\" && hasSaved ? \"saved-with-changes\" : \"unsaved\";\n return { feedback, pending, currentSaved, canSubmit: !pending && !disabled && valid && dirty };\n}\n"]}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { ColorReference } from "./color-references.js";
|
|
2
|
+
import { radius, type FontWeightValue, type TextVariant } from "./foundations.js";
|
|
3
|
+
/**
|
|
4
|
+
* ActivityChip — a compact pressable status for one running background task (a review, an upload,
|
|
5
|
+
* a sync). It shows a small decorative media and a short label in an otherwise empty header slot,
|
|
6
|
+
* and opens the matching panel toast for details (composition `activity-status`).
|
|
7
|
+
*
|
|
8
|
+
* Why a new component (2026-10-10, BurnTok "똑쟁이" request): `Chip` is a selection/action control
|
|
9
|
+
* with pressed/checked semantics; a status that toggles a details panel is a disclosure trigger with
|
|
10
|
+
* `aria-expanded`, so reusing Chip would announce the wrong role. The name differs because Chip exists.
|
|
11
|
+
* The task state, its copy and the panel content stay product-owned; HJM owns the trigger shape,
|
|
12
|
+
* disclosure semantics and the panel (Toast) lifecycle.
|
|
13
|
+
*/
|
|
14
|
+
export type ActivityChipEmphasis = "default" | "emphasis";
|
|
15
|
+
export type ActivityChipDescriptor = Readonly<{
|
|
16
|
+
/** Short visible status, for example "다듬는 중". */
|
|
17
|
+
label: string;
|
|
18
|
+
/** Full spoken status; defaults to `label`. */
|
|
19
|
+
accessibilityLabel?: string;
|
|
20
|
+
/** `emphasis` marks a result that waits for the user (e.g. a ready version to apply). */
|
|
21
|
+
emphasis?: ActivityChipEmphasis;
|
|
22
|
+
/** Whether the details panel it controls is open. */
|
|
23
|
+
expanded?: boolean;
|
|
24
|
+
}>;
|
|
25
|
+
export type ResolvedActivityChipDescriptor = Readonly<{
|
|
26
|
+
label: string;
|
|
27
|
+
accessibilityLabel: string;
|
|
28
|
+
emphasis: ActivityChipEmphasis;
|
|
29
|
+
expanded: boolean;
|
|
30
|
+
}>;
|
|
31
|
+
export declare const activityChipDefaults: {
|
|
32
|
+
readonly emphasis: "default";
|
|
33
|
+
readonly expanded: false;
|
|
34
|
+
};
|
|
35
|
+
/** Validates product copy once so Web and Native reject the same empty labels. */
|
|
36
|
+
export declare function resolveActivityChipDescriptor(descriptor: ActivityChipDescriptor): ResolvedActivityChipDescriptor;
|
|
37
|
+
export type ActivityChipRecipe = Readonly<{
|
|
38
|
+
slots: readonly ["root", "media", "label"];
|
|
39
|
+
defaults: typeof activityChipDefaults;
|
|
40
|
+
root: Readonly<{
|
|
41
|
+
minHeight: number;
|
|
42
|
+
maxWidth: number;
|
|
43
|
+
radius: keyof typeof radius;
|
|
44
|
+
borderWidth: number;
|
|
45
|
+
gap: number;
|
|
46
|
+
paddingStart: number;
|
|
47
|
+
paddingEnd: number;
|
|
48
|
+
pressedOpacity: number;
|
|
49
|
+
}>;
|
|
50
|
+
media: Readonly<{
|
|
51
|
+
size: number;
|
|
52
|
+
radius: keyof typeof radius;
|
|
53
|
+
}>;
|
|
54
|
+
label: Readonly<{
|
|
55
|
+
textVariant: TextVariant;
|
|
56
|
+
fontWeight: FontWeightValue;
|
|
57
|
+
maxLines: number;
|
|
58
|
+
}>;
|
|
59
|
+
emphasis: Readonly<Record<ActivityChipEmphasis, Readonly<{
|
|
60
|
+
background: ColorReference;
|
|
61
|
+
foreground: ColorReference;
|
|
62
|
+
border: ColorReference;
|
|
63
|
+
}>>>;
|
|
64
|
+
}>;
|
|
65
|
+
export declare const activityChipRecipe: {
|
|
66
|
+
readonly slots: readonly ["root", "media", "label"];
|
|
67
|
+
readonly defaults: {
|
|
68
|
+
readonly emphasis: "default";
|
|
69
|
+
readonly expanded: false;
|
|
70
|
+
};
|
|
71
|
+
readonly root: {
|
|
72
|
+
readonly minHeight: 44;
|
|
73
|
+
readonly maxWidth: 180;
|
|
74
|
+
readonly radius: "full";
|
|
75
|
+
readonly borderWidth: 1;
|
|
76
|
+
readonly gap: 4;
|
|
77
|
+
readonly paddingStart: 4;
|
|
78
|
+
readonly paddingEnd: 12;
|
|
79
|
+
readonly pressedOpacity: 0.86;
|
|
80
|
+
};
|
|
81
|
+
readonly media: {
|
|
82
|
+
readonly size: 28;
|
|
83
|
+
readonly radius: "full";
|
|
84
|
+
};
|
|
85
|
+
readonly label: {
|
|
86
|
+
readonly textVariant: "label";
|
|
87
|
+
readonly fontWeight: "700";
|
|
88
|
+
readonly maxLines: 1;
|
|
89
|
+
};
|
|
90
|
+
readonly emphasis: {
|
|
91
|
+
readonly default: {
|
|
92
|
+
readonly background: Readonly<{
|
|
93
|
+
source: "theme";
|
|
94
|
+
key: "surface";
|
|
95
|
+
alpha?: number;
|
|
96
|
+
}>;
|
|
97
|
+
readonly foreground: Readonly<{
|
|
98
|
+
source: "theme";
|
|
99
|
+
key: "text";
|
|
100
|
+
alpha?: number;
|
|
101
|
+
}>;
|
|
102
|
+
readonly border: Readonly<{
|
|
103
|
+
source: "theme";
|
|
104
|
+
key: "border";
|
|
105
|
+
alpha?: number;
|
|
106
|
+
}>;
|
|
107
|
+
};
|
|
108
|
+
readonly emphasis: {
|
|
109
|
+
readonly background: Readonly<{
|
|
110
|
+
source: "theme";
|
|
111
|
+
key: "primary";
|
|
112
|
+
alpha?: number;
|
|
113
|
+
}>;
|
|
114
|
+
readonly foreground: Readonly<{
|
|
115
|
+
source: "theme";
|
|
116
|
+
key: "onPrimary";
|
|
117
|
+
alpha?: number;
|
|
118
|
+
}>;
|
|
119
|
+
readonly border: Readonly<{
|
|
120
|
+
source: "theme";
|
|
121
|
+
key: "primary";
|
|
122
|
+
alpha?: number;
|
|
123
|
+
}>;
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=activity-chip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-chip.d.ts","sourceRoot":"","sources":["../src/activity-chip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAIL,MAAM,EAGN,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAG1B;;;;;;;;;;GAUG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1D,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;CAGmD,CAAC;AAErF,kFAAkF;AAClF,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,sBAAsB,GACjC,8BAA8B,CAuBhC;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,EAAE,OAAO,oBAAoB,CAAC;IACtC,IAAI,EAAE,QAAQ,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,OAAO,MAAM,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,KAAK,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,OAAO,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,KAAK,EAAE,QAAQ,CAAC;QAAE,WAAW,EAAE,WAAW,CAAC;QAAC,UAAU,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7F,QAAQ,EAAE,QAAQ,CAChB,MAAM,CAAC,oBAAoB,EAAE,QAAQ,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC,CAC3H,CAAC;CACH,CAAC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCQ,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { control, fontWeight, opacity, radius, spacing, stroke, } from "./foundations.js";
|
|
2
|
+
import { semanticColors } from "./semantic-colors.js";
|
|
3
|
+
export const activityChipDefaults = {
|
|
4
|
+
emphasis: "default",
|
|
5
|
+
expanded: false,
|
|
6
|
+
};
|
|
7
|
+
/** Validates product copy once so Web and Native reject the same empty labels. */
|
|
8
|
+
export function resolveActivityChipDescriptor(descriptor) {
|
|
9
|
+
if (typeof descriptor.label !== "string" || !descriptor.label.trim()) {
|
|
10
|
+
throw new TypeError("ActivityChip label must not be empty");
|
|
11
|
+
}
|
|
12
|
+
if (descriptor.accessibilityLabel !== undefined &&
|
|
13
|
+
(typeof descriptor.accessibilityLabel !== "string" || !descriptor.accessibilityLabel.trim())) {
|
|
14
|
+
throw new TypeError("ActivityChip accessibilityLabel must not be empty");
|
|
15
|
+
}
|
|
16
|
+
const emphasis = descriptor.emphasis ?? activityChipDefaults.emphasis;
|
|
17
|
+
if (emphasis !== "default" && emphasis !== "emphasis") {
|
|
18
|
+
throw new TypeError(`Unsupported ActivityChip emphasis: ${String(emphasis)}`);
|
|
19
|
+
}
|
|
20
|
+
if (descriptor.expanded !== undefined && typeof descriptor.expanded !== "boolean") {
|
|
21
|
+
throw new TypeError("ActivityChip expanded must be a boolean");
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
label: descriptor.label,
|
|
25
|
+
accessibilityLabel: descriptor.accessibilityLabel ?? descriptor.label,
|
|
26
|
+
emphasis,
|
|
27
|
+
expanded: descriptor.expanded ?? activityChipDefaults.expanded,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export const activityChipRecipe = {
|
|
31
|
+
slots: ["root", "media", "label"],
|
|
32
|
+
defaults: activityChipDefaults,
|
|
33
|
+
// The 44pt minimum keeps the whole chip one touch target; the width cap keeps a header's side
|
|
34
|
+
// controls visible on a 320pt screen (BurnTok header: back 44 + three actions ~150).
|
|
35
|
+
root: {
|
|
36
|
+
minHeight: control.minTouchTarget,
|
|
37
|
+
maxWidth: 180,
|
|
38
|
+
radius: "full",
|
|
39
|
+
borderWidth: stroke.default,
|
|
40
|
+
gap: spacing.xxs,
|
|
41
|
+
// The media hugs the start edge like an avatar chip; the label end keeps the wider pill inset.
|
|
42
|
+
paddingStart: spacing.xxs,
|
|
43
|
+
paddingEnd: spacing.sm,
|
|
44
|
+
pressedOpacity: opacity.pressed,
|
|
45
|
+
},
|
|
46
|
+
// 28 keeps a mascot legible inside the 44 row with 8pt of air; it is decorative (hidden from AT).
|
|
47
|
+
media: { size: 28, radius: "full" },
|
|
48
|
+
// One line: the chip is a glance status, the panel carries the long copy.
|
|
49
|
+
label: { textVariant: "label", fontWeight: fontWeight.bold, maxLines: 1 },
|
|
50
|
+
emphasis: {
|
|
51
|
+
// A resting status sits on the header like a quiet surface; the border keeps its edge on canvas.
|
|
52
|
+
default: {
|
|
53
|
+
background: semanticColors.surface.default,
|
|
54
|
+
foreground: semanticColors.content.primary,
|
|
55
|
+
border: semanticColors.border.default,
|
|
56
|
+
},
|
|
57
|
+
// The brand action pair is the contrast-checked fill/content couple (same as a primary Button).
|
|
58
|
+
emphasis: {
|
|
59
|
+
background: semanticColors.action.brand.background,
|
|
60
|
+
foreground: semanticColors.action.brand.content,
|
|
61
|
+
border: semanticColors.action.brand.background,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=activity-chip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-chip.js","sourceRoot":"","sources":["../src/activity-chip.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ColorReference } from \"./color-references.js\";\nimport {\n control,\n fontWeight,\n opacity,\n radius,\n spacing,\n stroke,\n type FontWeightValue,\n type TextVariant,\n} from \"./foundations.js\";\nimport { semanticColors } from \"./semantic-colors.js\";\n\n/**\n * ActivityChip — a compact pressable status for one running background task (a review, an upload,\n * a sync). It shows a small decorative media and a short label in an otherwise empty header slot,\n * and opens the matching panel toast for details (composition `activity-status`).\n *\n * Why a new component (2026-10-10, BurnTok \"똑쟁이\" request): `Chip` is a selection/action control\n * with pressed/checked semantics; a status that toggles a details panel is a disclosure trigger with\n * `aria-expanded`, so reusing Chip would announce the wrong role. The name differs because Chip exists.\n * The task state, its copy and the panel content stay product-owned; HJM owns the trigger shape,\n * disclosure semantics and the panel (Toast) lifecycle.\n */\nexport type ActivityChipEmphasis = \"default\" | \"emphasis\";\n\nexport type ActivityChipDescriptor = Readonly<{\n /** Short visible status, for example \"다듬는 중\". */\n label: string;\n /** Full spoken status; defaults to `label`. */\n accessibilityLabel?: string;\n /** `emphasis` marks a result that waits for the user (e.g. a ready version to apply). */\n emphasis?: ActivityChipEmphasis;\n /** Whether the details panel it controls is open. */\n expanded?: boolean;\n}>;\n\nexport type ResolvedActivityChipDescriptor = Readonly<{\n label: string;\n accessibilityLabel: string;\n emphasis: ActivityChipEmphasis;\n expanded: boolean;\n}>;\n\nexport const activityChipDefaults = {\n emphasis: \"default\",\n expanded: false,\n} as const satisfies Readonly<{ emphasis: ActivityChipEmphasis; expanded: boolean }>;\n\n/** Validates product copy once so Web and Native reject the same empty labels. */\nexport function resolveActivityChipDescriptor(\n descriptor: ActivityChipDescriptor,\n): ResolvedActivityChipDescriptor {\n if (typeof descriptor.label !== \"string\" || !descriptor.label.trim()) {\n throw new TypeError(\"ActivityChip label must not be empty\");\n }\n if (\n descriptor.accessibilityLabel !== undefined &&\n (typeof descriptor.accessibilityLabel !== \"string\" || !descriptor.accessibilityLabel.trim())\n ) {\n throw new TypeError(\"ActivityChip accessibilityLabel must not be empty\");\n }\n const emphasis = descriptor.emphasis ?? activityChipDefaults.emphasis;\n if (emphasis !== \"default\" && emphasis !== \"emphasis\") {\n throw new TypeError(`Unsupported ActivityChip emphasis: ${String(emphasis)}`);\n }\n if (descriptor.expanded !== undefined && typeof descriptor.expanded !== \"boolean\") {\n throw new TypeError(\"ActivityChip expanded must be a boolean\");\n }\n return {\n label: descriptor.label,\n accessibilityLabel: descriptor.accessibilityLabel ?? descriptor.label,\n emphasis,\n expanded: descriptor.expanded ?? activityChipDefaults.expanded,\n };\n}\n\nexport type ActivityChipRecipe = Readonly<{\n slots: readonly [\"root\", \"media\", \"label\"];\n defaults: typeof activityChipDefaults;\n root: Readonly<{\n minHeight: number;\n maxWidth: number;\n radius: keyof typeof radius;\n borderWidth: number;\n gap: number;\n paddingStart: number;\n paddingEnd: number;\n pressedOpacity: number;\n }>;\n media: Readonly<{ size: number; radius: keyof typeof radius }>;\n label: Readonly<{ textVariant: TextVariant; fontWeight: FontWeightValue; maxLines: number }>;\n emphasis: Readonly<\n Record<ActivityChipEmphasis, Readonly<{ background: ColorReference; foreground: ColorReference; border: ColorReference }>>\n >;\n}>;\n\nexport const activityChipRecipe = {\n slots: [\"root\", \"media\", \"label\"] as const,\n defaults: activityChipDefaults,\n // The 44pt minimum keeps the whole chip one touch target; the width cap keeps a header's side\n // controls visible on a 320pt screen (BurnTok header: back 44 + three actions ~150).\n root: {\n minHeight: control.minTouchTarget,\n maxWidth: 180,\n radius: \"full\",\n borderWidth: stroke.default,\n gap: spacing.xxs,\n // The media hugs the start edge like an avatar chip; the label end keeps the wider pill inset.\n paddingStart: spacing.xxs,\n paddingEnd: spacing.sm,\n pressedOpacity: opacity.pressed,\n },\n // 28 keeps a mascot legible inside the 44 row with 8pt of air; it is decorative (hidden from AT).\n media: { size: 28, radius: \"full\" },\n // One line: the chip is a glance status, the panel carries the long copy.\n label: { textVariant: \"label\", fontWeight: fontWeight.bold, maxLines: 1 },\n emphasis: {\n // A resting status sits on the header like a quiet surface; the border keeps its edge on canvas.\n default: {\n background: semanticColors.surface.default,\n foreground: semanticColors.content.primary,\n border: semanticColors.border.default,\n },\n // The brand action pair is the contrast-checked fill/content couple (same as a primary Button).\n emphasis: {\n background: semanticColors.action.brand.background,\n foreground: semanticColors.action.brand.content,\n border: semanticColors.action.brand.background,\n },\n },\n} as const satisfies ActivityChipRecipe;\n"]}
|
package/dist/base-recipes.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-recipes.d.ts","sourceRoot":"","sources":["../src/base-recipes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAc,MAAM,EAAE,OAAO,EAAc,MAAM,kBAAkB,CAAC;AAGpF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC/E,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAC7C;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAChF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,OAAO,OAAO,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,MAAM,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAErD,4EAA4E;AAC5E,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcvB;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"base-recipes.d.ts","sourceRoot":"","sources":["../src/base-recipes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAc,MAAM,EAAE,OAAO,EAAc,MAAM,kBAAkB,CAAC;AAGpF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC/E,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAC7C;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAC,YAAY,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAChF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,OAAO,OAAO,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,MAAM,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAErD,4EAA4E;AAC5E,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcvB;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BH;;;;;;;;;;;OAWG;;;;;;CAmCJ,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEzE;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDzB,CAAC;AAEF,6CAA6C;AAC7C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6BtB;;;;OAIG;uCAC+B,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;IAqB/C;;;;;;;;;;;;OAYG;;;;;CAyCJ,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;CAU3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAM3B,CAAC"}
|
package/dist/base-recipes.js
CHANGED
|
@@ -20,7 +20,8 @@ export const buttonRecipe = {
|
|
|
20
20
|
* consumer painted the selected background in product styles.
|
|
21
21
|
*/
|
|
22
22
|
states: {
|
|
23
|
-
|
|
23
|
+
// Selected reactions use content color, without adding an outline (2026-10-10 user request).
|
|
24
|
+
selected: { background: "bg", content: "contentBrand", border: null },
|
|
24
25
|
},
|
|
25
26
|
sizes: {
|
|
26
27
|
small: {
|
package/dist/base-recipes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-recipes.js","sourceRoot":"","sources":["../src/base-recipes.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ThemeColors } from \"./colors.js\";\nimport { control, fontWeight, radius, spacing, typography } from \"./foundations.js\";\nimport type { FontWeightValue, TextVariant } from \"./foundations.js\";\n\nexport type ButtonTone = \"primary\" | \"secondary\" | \"ghost\" | \"danger\" | \"link\";\n/** Corner geometry of the control frame. Mirrors `IconButtonShape`. */\nexport type ButtonShape = \"rounded\" | \"pill\";\n/**\n * Where the label sits inside the frame. `center` is the action default;\n * `leading` is for a full-width row action whose label reads as list copy.\n */\nexport type ButtonAlign = \"center\" | \"leading\";\nexport type ButtonSize = keyof typeof control.buttonHeight;\nexport type SurfaceTone = \"default\" | \"raised\" | \"accent\" | \"sunken\" | \"subtle\";\nexport type SurfacePadding = \"none\" | keyof typeof spacing;\nexport type SurfaceRadius = keyof typeof radius;\nexport type FieldVariant = \"surface\" | \"inset\";\nexport type FieldShape = \"medium\" | \"large\" | \"full\";\n\n/** Small renderer entry point for the three foundational visual recipes. */\nexport const buttonRecipe = {\n slots: [\"root\", \"leading\", \"label\", \"trailing\", \"spinner\"] as const,\n defaults: { tone: \"primary\", size: \"medium\", shape: \"rounded\", align: \"center\" } as const,\n tones: {\n primary: { background: \"primary\", content: \"onPrimary\", border: null, paddingHorizontal: null },\n // The outline is a border role, not a text color. Drawing it in `textSub`\n // made a resting control read heavier than the selected one beside it.\n secondary: { background: \"bg\", content: \"text\", border: \"borderControl\", paddingHorizontal: null },\n ghost: { background: null, content: \"textMuted\", border: null, paddingHorizontal: null },\n danger: { background: \"dangerFill\", content: \"onDanger\", border: null, paddingHorizontal: null },\n // A link-tone control is inline copy, so the size axis' horizontal padding\n // would push it out of alignment with the text around it.\n link: { background: null, content: \"contentBrand\", border: null, paddingHorizontal: 0 },\n },\n /**\n * Visual treatment for a control that is also a toggle. `accessibilityState`\n * / `aria-pressed` already expressed the state; without a paired visual every\n * consumer painted the selected background in product styles.\n */\n states: {\n selected: { background: \"bg\", content: \"contentBrand\", border: \"contentBrand\" },\n },\n sizes: {\n small: {\n height: control.buttonHeight.small,\n hitSlop: control.buttonHitSlop.small,\n paddingHorizontal: spacing.sm,\n textVariant: \"label\",\n },\n medium: {\n height: control.buttonHeight.medium,\n hitSlop: control.buttonHitSlop.medium,\n paddingHorizontal: spacing.md,\n textVariant: \"body\",\n },\n large: {\n height: control.buttonHeight.large,\n hitSlop: control.buttonHitSlop.large,\n paddingHorizontal: spacing.lg,\n textVariant: \"bodyLarge\",\n },\n },\n shapes: { rounded: \"md\", pill: \"full\" },\n aligns: { center: \"center\", leading: \"flex-start\" },\n opacity: { disabled: 0.5, pressed: 0.86 },\n /**\n * 긴 라벨의 처리 규칙. 지금까지 이 판단이 없어서 Web은 무한히 줄바꿈하고 RN은 한 줄로\n * 잘렸다 — 같은 번역문이 두 표면에서 다르게 보였다.\n *\n * 자르지 않고 **두 줄까지 접는다**. 잘린 행동 라벨(\"삭제하...\"))은 무엇을 하는 버튼인지\n * 잃는다. 대신 무제한 줄바꿈도 막는다 — 하단 CTA 행처럼 버튼이 남의 레이아웃을 밀어내는\n * 자리가 있고, 두 줄을 넘는 라벨은 레이아웃이 아니라 카피의 문제다.\n *\n * 큰 글자 설정에서는 상한을 **푼다**. 사용자가 키운 글자에서 두 줄로 자르면 내용이\n * 사라지고, 그건 WCAG 1.4.4를 어긴다. 제품 카피가 아니라 사용자 설정이 원인이기 때문에\n * 같은 규칙을 적용할 수 없다.\n */\n label: { overflow: \"wrap\", maxLines: 2, liftCapOnLargeText: true },\n} as const satisfies {\n slots: readonly string[];\n defaults: { tone: ButtonTone; size: ButtonSize; shape: ButtonShape; align: ButtonAlign };\n tones: Record<\n ButtonTone,\n {\n background: keyof ThemeColors | null;\n content: keyof ThemeColors;\n border: keyof ThemeColors | null;\n /** `null` keeps the size axis' padding. */\n paddingHorizontal: number | null;\n }\n >;\n states: {\n selected: {\n background: keyof ThemeColors;\n content: keyof ThemeColors;\n border: keyof ThemeColors;\n };\n };\n sizes: Record<\n ButtonSize,\n {\n height: number;\n hitSlop: number;\n paddingHorizontal: number;\n textVariant: TextVariant;\n }\n >;\n shapes: Record<ButtonShape, keyof typeof radius>;\n aligns: Record<ButtonAlign, \"center\" | \"flex-start\">;\n opacity: { disabled: number; pressed: number };\n label: { overflow: \"wrap\"; maxLines: number; liftCapOnLargeText: boolean };\n};\n\n/** Resolves the label's line cap for one resolved environment. `null` means uncapped. */\nexport function resolveButtonLabelLines(largeText: boolean): number | null {\n return largeText && buttonRecipe.label.liftCapOnLargeText ? null : buttonRecipe.label.maxLines;\n}\n\nexport const surfaceRecipe = {\n default: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n raised: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: true,\n borderAlways: true,\n // An elevated surface must not clip: `overflow: hidden` cuts off its own\n // shadow. Every other tone clips so a child image cannot spill past the\n // rounded corner, which consumers were fixing in product styles.\n clipsContent: false,\n },\n // White surfaces retain a boundary; tonal fills were removed at the user\n // review, so elevation and border now carry hierarchy.\n sunken: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n accent: {\n background: \"bg\",\n border: \"primary\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n subtle: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n} as const satisfies Record<\n SurfaceTone,\n {\n background: keyof ThemeColors;\n border: keyof ThemeColors;\n borderAlpha: number;\n elevated: boolean;\n clipsContent: boolean;\n borderAlways: boolean;\n }\n>;\n\n/** Text placement inside a field control. */\nexport type FieldAlign = \"start\" | \"center\";\n\nexport const fieldRecipe = {\n slots: [\n \"root\",\n \"label\",\n \"control\",\n \"leading\",\n \"input\",\n \"trailing\",\n \"hint\",\n \"error\",\n ] as const,\n defaults: { variant: \"surface\", shape: \"medium\", align: \"start\" } as const,\n variants: {\n // Input interiors stay on the canvas; focus is conveyed by the blue outline, not a grey or blue fill.\n surface: { background: \"bg\" },\n inset: { background: \"bg\" },\n },\n shapes: {\n medium: \"md\",\n large: \"lg\",\n full: \"full\",\n },\n states: {\n idle: { border: \"borderControl\" },\n focused: { border: \"contentBrand\" },\n invalid: { border: \"danger\" },\n },\n minHeight: control.minTouchTarget,\n multilineMinHeight: 80,\n /**\n * Upper bound for a growing multiline field, expressed in visible lines. A\n * consumer otherwise reaches for `inputStyle={{ maxHeight }}`, which moves a\n * recipe-owned dimension into product code. `null` keeps unbounded growth.\n */\n multilineMaxVisibleLines: null as number | null,\n borderWidth: 1,\n focusRingWidth: 2,\n focusRingOffset: 2,\n paddingHorizontal: spacing.md,\n paddingVertical: spacing.sm,\n textVariant: \"body\",\n label: {\n color: \"textBody\",\n textVariant: \"body\",\n fontWeight: fontWeight.semibold,\n gap: spacing.xs,\n },\n support: {\n hintColor: \"textMuted\",\n errorColor: \"danger\",\n textVariant: \"label\",\n gap: 6,\n },\n placeholder: { color: \"textMuted\" },\n disabledOpacity: 0.6,\n /**\n * Which slots `disabledOpacity` fades (2026-10-06). Label and control dim; the\n * hint and the error keep their contrast, because they are the text that says\n * why the field is locked or what to fix. Renderers used to fade the whole\n * frame, so the small support text (`support.textVariant`) — already the\n * lowest-contrast text in the field — lost contrast too. Fading nothing was\n * rejected: the label and the control are what tell the user the field is off.\n *\n * Every field-family input follows this scope. The amount is the component\n * recipe's own `states.disabledOpacity` where it has one (SearchField,\n * PasswordField, OtpField, NumberField, Select); otherwise this recipe's\n * `disabledOpacity` (TextField, TextArea, Field, Combobox, DatePicker, TagsInput).\n */\n disabledScope: {\n dimmed: [\"label\", \"control\"],\n unchanged: [\"hint\", \"error\"],\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: { variant: FieldVariant; shape: FieldShape; align: FieldAlign };\n variants: Record<FieldVariant, { background: keyof ThemeColors }>;\n shapes: Record<FieldShape, keyof typeof radius>;\n states: Record<\n \"idle\" | \"focused\" | \"invalid\",\n { border: keyof ThemeColors }\n >;\n minHeight: number;\n multilineMinHeight: number;\n multilineMaxVisibleLines: number | null;\n borderWidth: number;\n focusRingWidth: number;\n focusRingOffset: number;\n paddingHorizontal: number;\n paddingVertical: number;\n textVariant: keyof typeof typography;\n label: {\n color: keyof ThemeColors;\n textVariant: keyof typeof typography;\n fontWeight: FontWeightValue;\n gap: number;\n };\n support: {\n hintColor: keyof ThemeColors;\n errorColor: keyof ThemeColors;\n textVariant: keyof typeof typography;\n gap: number;\n };\n placeholder: { color: keyof ThemeColors };\n disabledOpacity: number;\n disabledScope: {\n dimmed: readonly (\"label\" | \"control\")[];\n unchanged: readonly (\"hint\" | \"error\")[];\n };\n};\n\n/**\n * Renderer-neutral Surface geometry. Tone colors stay in `surfaceRecipe` for\n * compatibility; these axes make the previously implicit Web/Native defaults\n * explicit without changing that public recipe shape.\n */\nexport const surfaceDefaults = {\n tone: \"default\",\n padding: \"none\",\n radius: \"lg\",\n bordered: false,\n} as const satisfies {\n tone: SurfaceTone;\n padding: SurfacePadding;\n radius: SurfaceRadius;\n bordered: boolean;\n};\n\nexport const surfaceGeometry = {\n paddings: { none: 0, ...spacing },\n radii: radius,\n} as const satisfies {\n paddings: Record<SurfacePadding, number>;\n radii: Record<SurfaceRadius, number>;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"base-recipes.js","sourceRoot":"","sources":["../src/base-recipes.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ThemeColors } from \"./colors.js\";\nimport { control, fontWeight, radius, spacing, typography } from \"./foundations.js\";\nimport type { FontWeightValue, TextVariant } from \"./foundations.js\";\n\nexport type ButtonTone = \"primary\" | \"secondary\" | \"ghost\" | \"danger\" | \"link\";\n/** Corner geometry of the control frame. Mirrors `IconButtonShape`. */\nexport type ButtonShape = \"rounded\" | \"pill\";\n/**\n * Where the label sits inside the frame. `center` is the action default;\n * `leading` is for a full-width row action whose label reads as list copy.\n */\nexport type ButtonAlign = \"center\" | \"leading\";\nexport type ButtonSize = keyof typeof control.buttonHeight;\nexport type SurfaceTone = \"default\" | \"raised\" | \"accent\" | \"sunken\" | \"subtle\";\nexport type SurfacePadding = \"none\" | keyof typeof spacing;\nexport type SurfaceRadius = keyof typeof radius;\nexport type FieldVariant = \"surface\" | \"inset\";\nexport type FieldShape = \"medium\" | \"large\" | \"full\";\n\n/** Small renderer entry point for the three foundational visual recipes. */\nexport const buttonRecipe = {\n slots: [\"root\", \"leading\", \"label\", \"trailing\", \"spinner\"] as const,\n defaults: { tone: \"primary\", size: \"medium\", shape: \"rounded\", align: \"center\" } as const,\n tones: {\n primary: { background: \"primary\", content: \"onPrimary\", border: null, paddingHorizontal: null },\n // The outline is a border role, not a text color. Drawing it in `textSub`\n // made a resting control read heavier than the selected one beside it.\n secondary: { background: \"bg\", content: \"text\", border: \"borderControl\", paddingHorizontal: null },\n ghost: { background: null, content: \"textMuted\", border: null, paddingHorizontal: null },\n danger: { background: \"dangerFill\", content: \"onDanger\", border: null, paddingHorizontal: null },\n // A link-tone control is inline copy, so the size axis' horizontal padding\n // would push it out of alignment with the text around it.\n link: { background: null, content: \"contentBrand\", border: null, paddingHorizontal: 0 },\n },\n /**\n * Visual treatment for a control that is also a toggle. `accessibilityState`\n * / `aria-pressed` already expressed the state; without a paired visual every\n * consumer painted the selected background in product styles.\n */\n states: {\n // Selected reactions use content color, without adding an outline (2026-10-10 user request).\n selected: { background: \"bg\", content: \"contentBrand\", border: null },\n },\n sizes: {\n small: {\n height: control.buttonHeight.small,\n hitSlop: control.buttonHitSlop.small,\n paddingHorizontal: spacing.sm,\n textVariant: \"label\",\n },\n medium: {\n height: control.buttonHeight.medium,\n hitSlop: control.buttonHitSlop.medium,\n paddingHorizontal: spacing.md,\n textVariant: \"body\",\n },\n large: {\n height: control.buttonHeight.large,\n hitSlop: control.buttonHitSlop.large,\n paddingHorizontal: spacing.lg,\n textVariant: \"bodyLarge\",\n },\n },\n shapes: { rounded: \"md\", pill: \"full\" },\n aligns: { center: \"center\", leading: \"flex-start\" },\n opacity: { disabled: 0.5, pressed: 0.86 },\n /**\n * 긴 라벨의 처리 규칙. 지금까지 이 판단이 없어서 Web은 무한히 줄바꿈하고 RN은 한 줄로\n * 잘렸다 — 같은 번역문이 두 표면에서 다르게 보였다.\n *\n * 자르지 않고 **두 줄까지 접는다**. 잘린 행동 라벨(\"삭제하...\"))은 무엇을 하는 버튼인지\n * 잃는다. 대신 무제한 줄바꿈도 막는다 — 하단 CTA 행처럼 버튼이 남의 레이아웃을 밀어내는\n * 자리가 있고, 두 줄을 넘는 라벨은 레이아웃이 아니라 카피의 문제다.\n *\n * 큰 글자 설정에서는 상한을 **푼다**. 사용자가 키운 글자에서 두 줄로 자르면 내용이\n * 사라지고, 그건 WCAG 1.4.4를 어긴다. 제품 카피가 아니라 사용자 설정이 원인이기 때문에\n * 같은 규칙을 적용할 수 없다.\n */\n label: { overflow: \"wrap\", maxLines: 2, liftCapOnLargeText: true },\n} as const satisfies {\n slots: readonly string[];\n defaults: { tone: ButtonTone; size: ButtonSize; shape: ButtonShape; align: ButtonAlign };\n tones: Record<\n ButtonTone,\n {\n background: keyof ThemeColors | null;\n content: keyof ThemeColors;\n border: keyof ThemeColors | null;\n /** `null` keeps the size axis' padding. */\n paddingHorizontal: number | null;\n }\n >;\n states: {\n selected: {\n background: keyof ThemeColors;\n content: keyof ThemeColors;\n border: keyof ThemeColors | null;\n };\n };\n sizes: Record<\n ButtonSize,\n {\n height: number;\n hitSlop: number;\n paddingHorizontal: number;\n textVariant: TextVariant;\n }\n >;\n shapes: Record<ButtonShape, keyof typeof radius>;\n aligns: Record<ButtonAlign, \"center\" | \"flex-start\">;\n opacity: { disabled: number; pressed: number };\n label: { overflow: \"wrap\"; maxLines: number; liftCapOnLargeText: boolean };\n};\n\n/** Resolves the label's line cap for one resolved environment. `null` means uncapped. */\nexport function resolveButtonLabelLines(largeText: boolean): number | null {\n return largeText && buttonRecipe.label.liftCapOnLargeText ? null : buttonRecipe.label.maxLines;\n}\n\nexport const surfaceRecipe = {\n default: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n raised: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: true,\n borderAlways: true,\n // An elevated surface must not clip: `overflow: hidden` cuts off its own\n // shadow. Every other tone clips so a child image cannot spill past the\n // rounded corner, which consumers were fixing in product styles.\n clipsContent: false,\n },\n // White surfaces retain a boundary; tonal fills were removed at the user\n // review, so elevation and border now carry hierarchy.\n sunken: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n accent: {\n background: \"bg\",\n border: \"primary\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n subtle: {\n background: \"bg\",\n border: \"border\",\n borderAlpha: 1,\n elevated: false,\n borderAlways: true,\n clipsContent: true,\n },\n} as const satisfies Record<\n SurfaceTone,\n {\n background: keyof ThemeColors;\n border: keyof ThemeColors;\n borderAlpha: number;\n elevated: boolean;\n clipsContent: boolean;\n borderAlways: boolean;\n }\n>;\n\n/** Text placement inside a field control. */\nexport type FieldAlign = \"start\" | \"center\";\n\nexport const fieldRecipe = {\n slots: [\n \"root\",\n \"label\",\n \"control\",\n \"leading\",\n \"input\",\n \"trailing\",\n \"hint\",\n \"error\",\n ] as const,\n defaults: { variant: \"surface\", shape: \"medium\", align: \"start\" } as const,\n variants: {\n // Input interiors stay on the canvas; focus is conveyed by the blue outline, not a grey or blue fill.\n surface: { background: \"bg\" },\n inset: { background: \"bg\" },\n },\n shapes: {\n medium: \"md\",\n large: \"lg\",\n full: \"full\",\n },\n states: {\n idle: { border: \"borderControl\" },\n focused: { border: \"contentBrand\" },\n invalid: { border: \"danger\" },\n },\n minHeight: control.minTouchTarget,\n multilineMinHeight: 80,\n /**\n * Upper bound for a growing multiline field, expressed in visible lines. A\n * consumer otherwise reaches for `inputStyle={{ maxHeight }}`, which moves a\n * recipe-owned dimension into product code. `null` keeps unbounded growth.\n */\n multilineMaxVisibleLines: null as number | null,\n borderWidth: 1,\n focusRingWidth: 2,\n focusRingOffset: 2,\n paddingHorizontal: spacing.md,\n paddingVertical: spacing.sm,\n textVariant: \"body\",\n label: {\n color: \"textBody\",\n textVariant: \"body\",\n fontWeight: fontWeight.semibold,\n gap: spacing.xs,\n },\n support: {\n hintColor: \"textMuted\",\n errorColor: \"danger\",\n textVariant: \"label\",\n gap: 6,\n },\n placeholder: { color: \"textMuted\" },\n disabledOpacity: 0.6,\n /**\n * Which slots `disabledOpacity` fades (2026-10-06). Label and control dim; the\n * hint and the error keep their contrast, because they are the text that says\n * why the field is locked or what to fix. Renderers used to fade the whole\n * frame, so the small support text (`support.textVariant`) — already the\n * lowest-contrast text in the field — lost contrast too. Fading nothing was\n * rejected: the label and the control are what tell the user the field is off.\n *\n * Every field-family input follows this scope. The amount is the component\n * recipe's own `states.disabledOpacity` where it has one (SearchField,\n * PasswordField, OtpField, NumberField, Select); otherwise this recipe's\n * `disabledOpacity` (TextField, TextArea, Field, Combobox, DatePicker, TagsInput).\n */\n disabledScope: {\n dimmed: [\"label\", \"control\"],\n unchanged: [\"hint\", \"error\"],\n },\n} as const satisfies {\n slots: readonly string[];\n defaults: { variant: FieldVariant; shape: FieldShape; align: FieldAlign };\n variants: Record<FieldVariant, { background: keyof ThemeColors }>;\n shapes: Record<FieldShape, keyof typeof radius>;\n states: Record<\n \"idle\" | \"focused\" | \"invalid\",\n { border: keyof ThemeColors }\n >;\n minHeight: number;\n multilineMinHeight: number;\n multilineMaxVisibleLines: number | null;\n borderWidth: number;\n focusRingWidth: number;\n focusRingOffset: number;\n paddingHorizontal: number;\n paddingVertical: number;\n textVariant: keyof typeof typography;\n label: {\n color: keyof ThemeColors;\n textVariant: keyof typeof typography;\n fontWeight: FontWeightValue;\n gap: number;\n };\n support: {\n hintColor: keyof ThemeColors;\n errorColor: keyof ThemeColors;\n textVariant: keyof typeof typography;\n gap: number;\n };\n placeholder: { color: keyof ThemeColors };\n disabledOpacity: number;\n disabledScope: {\n dimmed: readonly (\"label\" | \"control\")[];\n unchanged: readonly (\"hint\" | \"error\")[];\n };\n};\n\n/**\n * Renderer-neutral Surface geometry. Tone colors stay in `surfaceRecipe` for\n * compatibility; these axes make the previously implicit Web/Native defaults\n * explicit without changing that public recipe shape.\n */\nexport const surfaceDefaults = {\n tone: \"default\",\n padding: \"none\",\n radius: \"lg\",\n bordered: false,\n} as const satisfies {\n tone: SurfaceTone;\n padding: SurfacePadding;\n radius: SurfaceRadius;\n bordered: boolean;\n};\n\nexport const surfaceGeometry = {\n paddings: { none: 0, ...spacing },\n radii: radius,\n} as const satisfies {\n paddings: Record<SurfacePadding, number>;\n radii: Record<SurfaceRadius, number>;\n};\n"]}
|
package/dist/behaviors.d.ts
CHANGED
|
@@ -135,13 +135,13 @@ export type BehaviorContract = Readonly<{
|
|
|
135
135
|
roles: readonly string[];
|
|
136
136
|
keyboard: readonly WebKeyboardKey[];
|
|
137
137
|
focus: "native" | "roving" | "activeDescendant" | "trap" | "restore" | "none";
|
|
138
|
-
dismiss?: readonly ("escape" | "outside" | "selection" | "blur" | "timeout" | "action" | "close-action" | "swipe" | "programmatic")[];
|
|
138
|
+
dismiss?: readonly ("escape" | "outside" | "selection" | "blur" | "timeout" | "action" | "press" | "close-action" | "swipe" | "programmatic")[];
|
|
139
139
|
}>;
|
|
140
140
|
native: Readonly<{
|
|
141
141
|
roles: readonly string[];
|
|
142
142
|
states: readonly NativeAccessibilityState[];
|
|
143
143
|
actions: readonly string[];
|
|
144
|
-
dismiss?: readonly ("back" | "swipe" | "outside" | "selection" | "timeout" | "action" | "close-action" | "programmatic")[];
|
|
144
|
+
dismiss?: readonly ("back" | "swipe" | "outside" | "selection" | "timeout" | "action" | "press" | "close-action" | "programmatic")[];
|
|
145
145
|
}>;
|
|
146
146
|
scenarios: readonly string[];
|
|
147
147
|
}>;
|
|
@@ -393,10 +393,13 @@ export declare const behaviorRegistry: {
|
|
|
393
393
|
readonly configuration: {
|
|
394
394
|
readonly direction: readonly ["ltr", "rtl"];
|
|
395
395
|
readonly keyboardBehavior: readonly ["hide", "remain"];
|
|
396
|
+
readonly labels: readonly ["visible", "hidden"];
|
|
396
397
|
};
|
|
397
398
|
readonly defaults: {
|
|
398
399
|
readonly direction: "ltr";
|
|
399
400
|
readonly keyboardBehavior: "hide";
|
|
401
|
+
readonly labels: "visible";
|
|
402
|
+
readonly selection: "emphasis";
|
|
400
403
|
readonly minItems: 2;
|
|
401
404
|
readonly maxItems: 6;
|
|
402
405
|
};
|
|
@@ -590,7 +593,7 @@ export declare const behaviorRegistry: {
|
|
|
590
593
|
readonly toast: {
|
|
591
594
|
readonly controlled: readonly [];
|
|
592
595
|
readonly inputs: readonly ["descriptor", "queueSnapshot", "visibleSnapshot"];
|
|
593
|
-
readonly events: readonly ["onAction", "onDismiss"];
|
|
596
|
+
readonly events: readonly ["onAction", "onPress", "onDismiss"];
|
|
594
597
|
readonly configuration: {
|
|
595
598
|
readonly priority: readonly ["normal", "high"];
|
|
596
599
|
readonly duplicatePolicy: readonly ["update", "ignore"];
|
|
@@ -616,15 +619,15 @@ export declare const behaviorRegistry: {
|
|
|
616
619
|
readonly roles: readonly ["region", "status", "alert", "button"];
|
|
617
620
|
readonly keyboard: readonly ["Tab", "Enter", "Space", "Escape", "F8"];
|
|
618
621
|
readonly focus: "native";
|
|
619
|
-
readonly dismiss: readonly ["timeout", "action", "close-action", "escape", "swipe", "programmatic"];
|
|
622
|
+
readonly dismiss: readonly ["timeout", "action", "press", "close-action", "escape", "swipe", "programmatic"];
|
|
620
623
|
};
|
|
621
624
|
readonly native: {
|
|
622
625
|
readonly roles: readonly ["alert", "button"];
|
|
623
626
|
readonly states: readonly [];
|
|
624
627
|
readonly actions: readonly ["announce", "activate", "dismiss"];
|
|
625
|
-
readonly dismiss: readonly ["timeout", "action", "close-action", "swipe", "programmatic"];
|
|
628
|
+
readonly dismiss: readonly ["timeout", "action", "press", "close-action", "swipe", "programmatic"];
|
|
626
629
|
};
|
|
627
|
-
readonly scenarios: readonly ["stable-id-duplicate-updates-in-place-without-reordering", "bounded-queue-promotes-items-in-fifo-order", "queued-time-never-consumes-auto-dismiss-duration", "visible-timer-pauses-for-pointer-focus-window-and-gesture", "actionable-toast-is-persistent-unless-duration-is-explicit", "auto-dismiss-duration-is-never-shorter-than-five-seconds", "action-and-dismiss-callbacks-run-exactly-once", "programmatic-close-reports-its-own-dismiss-reason", "normal-and-high-announcements-use-the-visible-copy-or-explicit-override", "tone-is-always-paired-with-a-non-color-mark", "web-hotkey-focuses-the-labelled-viewport-and-last-close-restores-focus", "exit-completes-once-with-and-without-reduced-motion", "provider-teardown-interrupts-every-session-without-leaking-a-timer"];
|
|
630
|
+
readonly scenarios: readonly ["stable-id-duplicate-updates-in-place-without-reordering", "bounded-queue-promotes-items-in-fifo-order", "queued-time-never-consumes-auto-dismiss-duration", "visible-timer-pauses-for-pointer-focus-window-and-gesture", "actionable-toast-is-persistent-unless-duration-is-explicit", "auto-dismiss-duration-is-never-shorter-than-five-seconds", "action-and-dismiss-callbacks-run-exactly-once", "card-press-runs-once-before-dismiss-and-excludes-action-close-and-swipe", "programmatic-close-reports-its-own-dismiss-reason", "normal-and-high-announcements-use-the-visible-copy-or-explicit-override", "tone-is-always-paired-with-a-non-color-mark", "web-hotkey-focuses-the-labelled-viewport-and-last-close-restores-focus", "exit-completes-once-with-and-without-reduced-motion", "provider-teardown-interrupts-every-session-without-leaking-a-timer"];
|
|
628
631
|
};
|
|
629
632
|
readonly loadMore: {
|
|
630
633
|
readonly controlled: readonly [];
|
package/dist/behaviors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"behaviors.d.ts","sourceRoot":"","sources":["../src/behaviors.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"behaviors.d.ts","sourceRoot":"","sources":["../src/behaviors.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,OAAO,GACP,cAAc,GACd,SAAS,GACT,SAAS,CAAC;AACd,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAC7E,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,QAAQ,GACR,SAAS,GACT,OAAO,GACP,UAAU,GACV,MAAM,GACN,UAAU,CAAC;AACf,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,CAAC;AAClD,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,SAAS,GACT,aAAa,GACb,OAAO,GACP,OAAO,GACP,UAAU,CAAC;AACf,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,QAAQ,CAAC;AACxD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAChD,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,UAAU,CAAC;AAC7D,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEvD,8EAA8E;AAC9E,MAAM,MAAM,uBAAuB,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IAC1E,EAAE,EAAE,GAAG,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAEH,wEAAwE;AACxE,MAAM,MAAM,mBAAmB,GAC3B,QAAQ,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACxD,QAAQ,CAAC;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE5D,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,OAAO,EAAE,aAAa,CAAC;IACvB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzC,CAAC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC/C,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C,CAAC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GAAG,yBAAyB,CAAC;AAEpF,MAAM,MAAM,gCAAgC,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IACnF,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IACxB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;CAC9C,CAAC,CAAC;AACH,MAAM,MAAM,kCAAkC,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IACrF,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CACnD,CAAC,CAAC;AACH,MAAM,MAAM,sBAAsB,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IAC1D,gCAAgC,CAAC,GAAG,CAAC,GACrC,kCAAkC,CAAC,GAAG,CAAC,CAAC;AAE5C,MAAM,MAAM,6BAA6B,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IAChF,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAClB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CACjC,CAAC,CAAC;AACH,MAAM,MAAM,+BAA+B,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IAClF,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACtC,CAAC,CAAC;AACH,MAAM,MAAM,mBAAmB,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IACvD,6BAA6B,CAAC,GAAG,CAAC,GAClC,+BAA+B,CAAC,GAAG,CAAC,CAAC;AAEzC,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAE/E,iFAAiF;AACjF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,WAAW,SAAY,GACtB,MAAM,CAeR;AAED,eAAO,MAAM,8BAA8B;;;CAMzC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;CAOrC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;CAMjC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;CAMnC,CAAC;AAEH,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,GAAG,SAAS,MAAM,EACvD,KAAK,EAAE,SAAS,uBAAuB,CAAC,GAAG,CAAC,EAAE,GAC7C,IAAI,CAuBN;AAED,wBAAgB,yBAAyB,CAAC,GAAG,SAAS,MAAM,EAC1D,KAAK,EAAE,SAAS,uBAAuB,CAAC,GAAG,CAAC,EAAE,EAC9C,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,GACxB,IAAI,CAQN;AAED,wBAAgB,wBAAwB,CAAC,GAAG,SAAS,MAAM,EACzD,KAAK,EAAE,SAAS,uBAAuB,CAAC,GAAG,CAAC,EAAE,EAC9C,cAAc,EAAE,GAAG,GAAG,IAAI,GAAG,SAAS,EACtC,QAAQ,UAAQ,GACf,GAAG,GAAG,IAAI,CASZ;AAED,wBAAgB,sBAAsB,CAAC,GAAG,SAAS,MAAM,EACvD,KAAK,EAAE,SAAS,uBAAuB,CAAC,GAAG,CAAC,EAAE,EAC9C,OAAO,EAAE,GAAG,GAAG,IAAI,GAClB,IAAI,CAKN;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,GAAG,SAAS,MAAM,EACpD,KAAK,EAAE,SAAS,uBAAuB,CAAC,GAAG,CAAC,EAAE,EAC9C,aAAa,EAAE,GAAG,GAAG,IAAI,GACxB,GAAG,GAAG,SAAS,CAKjB;AAED,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,GAAG,SAAS,MAAM,EACxD,KAAK,EAAE,SAAS,uBAAuB,CAAC,GAAG,CAAC,EAAE,EAC9C,OAAO,EAAE,GAAG,GAAG,IAAI,EACnB,QAAQ,UAAQ,GACf,GAAG,GAAG,IAAI,CAIZ;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,oBAAoB,EACjC,SAAS,EAAE,kBAAkB,GAC5B,yBAAyB,GAAG,SAAS,CAWvC;AAED,wBAAgB,wBAAwB,CAAC,GAAG,SAAS,MAAM,EACzD,KAAK,EAAE,SAAS,uBAAuB,CAAC,GAAG,CAAC,EAAE,EAC9C,SAAS,EAAE,GAAG,GAAG,IAAI,GAAG,SAAS,EACjC,MAAM,EAAE,yBAAyB,EACjC,IAAI,UAAO,GACV,GAAG,GAAG,SAAS,CAYjB;AAED,6EAA6E;AAC7E,MAAM,MAAM,aAAa,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IAChE,EAAE,EAAE,GAAG,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AACH,MAAM,MAAM,uBAAuB,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IAC1E,KAAK,EAAE,GAAG,CAAC;IACX,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CACjC,CAAC,CAAC;AACH,MAAM,MAAM,yBAAyB,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IAC5E,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACtC,CAAC,CAAC;AACH,MAAM,MAAM,aAAa,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IACjD,uBAAuB,CAAC,GAAG,CAAC,GAC5B,yBAAyB,CAAC,GAAG,CAAC,CAAC;AACnC,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzE,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,aAAa,GACvB,mBAAmB,GAAG,SAAS,CAWjC;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,GAAG,SAAS,MAAM,EACvD,KAAK,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,EACpC,cAAc,CAAC,EAAE,GAAG,GACnB,GAAG,GAAG,SAAS,CAgBjB;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CAAC,GAAG,SAAS,MAAM,EACvD,KAAK,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,EACpC,SAAS,EAAE,GAAG,EACd,MAAM,EAAE,mBAAmB,EAC3B,IAAI,UAAO,GACV,GAAG,GAAG,SAAS,CAWjB;AAED,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,cAAc,GACd,OAAO,GACP,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,MAAM,cAAc,GACtB,KAAK,GACL,OAAO,GACP,OAAO,GACP,QAAQ,GACR,SAAS,GACT,WAAW,GACX,WAAW,GACX,YAAY,GACZ,MAAM,GACN,KAAK;AACP,sFAAsF;GACpF,WAAW,GACX,QAAQ,GACR,UAAU,GACV,IAAI,GACJ,WAAW,CAAC;AAEhB,MAAM,MAAM,wBAAwB,GAChC,UAAU,GACV,UAAU,GACV,SAAS,GACT,MAAM,GACN,UAAU,CAAC;AAEf,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,mDAAmD;IACnD,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,kEAAkE;IAClE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,wDAAwD;IACxD,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAC/D,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,GAAG,EAAE,QAAQ,CAAC;QACZ,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QACzB,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;QACpC,KAAK,EACD,QAAQ,GACR,QAAQ,GACR,kBAAkB,GAClB,MAAM,GACN,SAAS,GACT,MAAM,CAAC;QACX,OAAO,CAAC,EAAE,SAAS,CACf,QAAQ,GACR,SAAS,GACT,WAAW,GACX,MAAM,GACN,SAAS,GACT,QAAQ,GACR,OAAO,GACP,cAAc,GACd,OAAO,GACP,cAAc,CACjB,EAAE,CAAC;KACL,CAAC,CAAC;IACH,MAAM,EAAE,QAAQ,CAAC;QACf,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QACzB,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;QAC5C,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,EAAE,SAAS,CACf,MAAM,GACN,OAAO,GACP,SAAS,GACT,WAAW,GACX,SAAS,GACT,QAAQ,GACR,OAAO,GACP,cAAc,GACd,cAAc,CACjB,EAAE,CAAC;KACL,CAAC,CAAC;IACH,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAAC,CAAC;AAEH,iFAAiF;AACjF,eAAO,MAAM,oBAAoB;;;;;;;CAc/B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
package/dist/behaviors.js
CHANGED
|
@@ -491,6 +491,7 @@ export const behaviorRegistry = {
|
|
|
491
491
|
configuration: {
|
|
492
492
|
direction: ["ltr", "rtl"],
|
|
493
493
|
keyboardBehavior: ["hide", "remain"],
|
|
494
|
+
labels: ["visible", "hidden"],
|
|
494
495
|
},
|
|
495
496
|
defaults: bottomNavigationBehaviorDefaults,
|
|
496
497
|
stateAxes: {
|
|
@@ -752,7 +753,7 @@ export const behaviorRegistry = {
|
|
|
752
753
|
toast: {
|
|
753
754
|
controlled: [],
|
|
754
755
|
inputs: ["descriptor", "queueSnapshot", "visibleSnapshot"],
|
|
755
|
-
events: ["onAction", "onDismiss"],
|
|
756
|
+
events: ["onAction", "onPress", "onDismiss"],
|
|
756
757
|
configuration: {
|
|
757
758
|
priority: ["normal", "high"],
|
|
758
759
|
duplicatePolicy: ["update", "ignore"],
|
|
@@ -768,13 +769,13 @@ export const behaviorRegistry = {
|
|
|
768
769
|
roles: ["region", "status", "alert", "button"],
|
|
769
770
|
keyboard: ["Tab", "Enter", "Space", "Escape", "F8"],
|
|
770
771
|
focus: "native",
|
|
771
|
-
dismiss: ["timeout", "action", "close-action", "escape", "swipe", "programmatic"],
|
|
772
|
+
dismiss: ["timeout", "action", "press", "close-action", "escape", "swipe", "programmatic"],
|
|
772
773
|
},
|
|
773
774
|
native: {
|
|
774
775
|
roles: ["alert", "button"],
|
|
775
776
|
states: [],
|
|
776
777
|
actions: ["announce", "activate", "dismiss"],
|
|
777
|
-
dismiss: ["timeout", "action", "close-action", "swipe", "programmatic"],
|
|
778
|
+
dismiss: ["timeout", "action", "press", "close-action", "swipe", "programmatic"],
|
|
778
779
|
},
|
|
779
780
|
scenarios: [
|
|
780
781
|
"stable-id-duplicate-updates-in-place-without-reordering",
|
|
@@ -784,6 +785,7 @@ export const behaviorRegistry = {
|
|
|
784
785
|
"actionable-toast-is-persistent-unless-duration-is-explicit",
|
|
785
786
|
"auto-dismiss-duration-is-never-shorter-than-five-seconds",
|
|
786
787
|
"action-and-dismiss-callbacks-run-exactly-once",
|
|
788
|
+
"card-press-runs-once-before-dismiss-and-excludes-action-close-and-swipe",
|
|
787
789
|
"programmatic-close-reports-its-own-dismiss-reason",
|
|
788
790
|
"normal-and-high-announcements-use-the-visible-copy-or-explicit-override",
|
|
789
791
|
"tone-is-always-paired-with-a-non-color-mark",
|