@ankhorage/zora 2.8.6 → 2.9.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/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/dist/components/app-bar/AppBar.d.ts.map +1 -1
- package/dist/components/app-bar/AppBar.js +3 -3
- package/dist/components/app-bar/AppBar.js.map +1 -1
- package/dist/components/avatar/Avatar.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.js +1 -1
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar-group/AvatarGroup.d.ts.map +1 -1
- package/dist/components/avatar-group/AvatarGroup.js +1 -1
- package/dist/components/avatar-group/AvatarGroup.js.map +1 -1
- package/dist/components/badge/Badge.d.ts.map +1 -1
- package/dist/components/badge/Badge.js +1 -1
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/components/breadcrumbs/Breadcrumbs.js +2 -2
- package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/components/button/Button.d.ts.map +1 -1
- package/dist/components/button/Button.js +2 -2
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button-group/ButtonGroup.d.ts.map +1 -1
- package/dist/components/button-group/ButtonGroup.js +1 -1
- package/dist/components/button-group/ButtonGroup.js.map +1 -1
- package/dist/components/card/Card.d.ts.map +1 -1
- package/dist/components/card/Card.js +3 -2
- package/dist/components/card/Card.js.map +1 -1
- package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/Checkbox.js +2 -2
- package/dist/components/checkbox/Checkbox.js.map +1 -1
- package/dist/components/checkbox/CheckboxGroup.d.ts.map +1 -1
- package/dist/components/checkbox/CheckboxGroup.js +7 -4
- package/dist/components/checkbox/CheckboxGroup.js.map +1 -1
- package/dist/components/chip/Chip.d.ts.map +1 -1
- package/dist/components/chip/Chip.js +2 -2
- package/dist/components/chip/Chip.js.map +1 -1
- package/dist/components/chip-group/ChipGroup.d.ts.map +1 -1
- package/dist/components/chip-group/ChipGroup.js +5 -2
- package/dist/components/chip-group/ChipGroup.js.map +1 -1
- package/dist/components/data-table/DataTable.d.ts.map +1 -1
- package/dist/components/data-table/DataTable.js +20 -14
- package/dist/components/data-table/DataTable.js.map +1 -1
- package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
- package/dist/components/date-picker/DatePicker.js +23 -6
- package/dist/components/date-picker/DatePicker.js.map +1 -1
- package/dist/components/drawer/Drawer.d.ts.map +1 -1
- package/dist/components/drawer/Drawer.js +2 -2
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components/form/Form.d.ts.map +1 -1
- package/dist/components/form/Form.js +5 -3
- package/dist/components/form/Form.js.map +1 -1
- package/dist/components/form/FormActions.d.ts.map +1 -1
- package/dist/components/form/FormActions.js +2 -2
- package/dist/components/form/FormActions.js.map +1 -1
- package/dist/components/form/FormError.d.ts.map +1 -1
- package/dist/components/form/FormError.js +1 -1
- package/dist/components/form/FormError.js.map +1 -1
- package/dist/components/form/FormField.d.ts.map +1 -1
- package/dist/components/form/FormField.js +3 -3
- package/dist/components/form/FormField.js.map +1 -1
- package/dist/components/gradient/Gradient.d.ts.map +1 -1
- package/dist/components/gradient/Gradient.js +1 -1
- package/dist/components/gradient/Gradient.js.map +1 -1
- package/dist/components/heading/Heading.d.ts.map +1 -1
- package/dist/components/heading/Heading.js +2 -2
- package/dist/components/heading/Heading.js.map +1 -1
- package/dist/components/icon/Icon.d.ts.map +1 -1
- package/dist/components/icon/Icon.js +1 -1
- package/dist/components/icon/Icon.js.map +1 -1
- package/dist/components/icon-button/IconButton.d.ts.map +1 -1
- package/dist/components/icon-button/IconButton.js +2 -2
- package/dist/components/icon-button/IconButton.js.map +1 -1
- package/dist/components/image/Image.d.ts.map +1 -1
- package/dist/components/image/Image.js +1 -1
- package/dist/components/image/Image.js.map +1 -1
- package/dist/components/input/Input.d.ts.map +1 -1
- package/dist/components/input/Input.js +2 -2
- package/dist/components/input/Input.js.map +1 -1
- package/dist/components/media-card/MediaCard.d.ts.map +1 -1
- package/dist/components/media-card/MediaCard.js +2 -2
- package/dist/components/media-card/MediaCard.js.map +1 -1
- package/dist/components/metric-card/MetricCard.d.ts.map +1 -1
- package/dist/components/metric-card/MetricCard.js +2 -2
- package/dist/components/metric-card/MetricCard.js.map +1 -1
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/modal/Modal.js +2 -2
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/navigation-item/NavigationItem.d.ts.map +1 -1
- package/dist/components/navigation-item/NavigationItem.js +2 -2
- package/dist/components/navigation-item/NavigationItem.js.map +1 -1
- package/dist/components/navigation-list/NavigationList.d.ts.map +1 -1
- package/dist/components/navigation-list/NavigationList.js +3 -3
- package/dist/components/navigation-list/NavigationList.js.map +1 -1
- package/dist/components/pagination/Pagination.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.js +8 -7
- package/dist/components/pagination/Pagination.js.map +1 -1
- package/dist/components/progress/Progress.d.ts.map +1 -1
- package/dist/components/progress/Progress.js +1 -1
- package/dist/components/progress/Progress.js.map +1 -1
- package/dist/components/radio/Radio.js +2 -2
- package/dist/components/radio/Radio.js.map +1 -1
- package/dist/components/radio/RadioGroup.d.ts.map +1 -1
- package/dist/components/radio/RadioGroup.js +7 -4
- package/dist/components/radio/RadioGroup.js.map +1 -1
- package/dist/components/rating/Rating.d.ts.map +1 -1
- package/dist/components/rating/Rating.js +1 -1
- package/dist/components/rating/Rating.js.map +1 -1
- package/dist/components/search-bar/SearchBar.d.ts.map +1 -1
- package/dist/components/search-bar/SearchBar.js +5 -2
- package/dist/components/search-bar/SearchBar.js.map +1 -1
- package/dist/components/select/Select.d.ts.map +1 -1
- package/dist/components/select/Select.js +12 -4
- package/dist/components/select/Select.js.map +1 -1
- package/dist/components/tabs/Tabs.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.js +17 -4
- package/dist/components/tabs/Tabs.js.map +1 -1
- package/dist/components/text/Text.d.ts.map +1 -1
- package/dist/components/text/Text.js +1 -1
- package/dist/components/text/Text.js.map +1 -1
- package/dist/components/textarea/Textarea.d.ts.map +1 -1
- package/dist/components/textarea/Textarea.js +2 -2
- package/dist/components/textarea/Textarea.js.map +1 -1
- package/dist/components/time-picker/TimePicker.d.ts.map +1 -1
- package/dist/components/time-picker/TimePicker.js +16 -4
- package/dist/components/time-picker/TimePicker.js.map +1 -1
- package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
- package/dist/components/toolbar/Toolbar.js +1 -1
- package/dist/components/toolbar/Toolbar.js.map +1 -1
- package/dist/foundation/Box.d.ts.map +1 -1
- package/dist/foundation/Box.js +1 -1
- package/dist/foundation/Box.js.map +1 -1
- package/dist/foundation/Center.d.ts.map +1 -1
- package/dist/foundation/Center.js +1 -1
- package/dist/foundation/Center.js.map +1 -1
- package/dist/foundation/Container.d.ts.map +1 -1
- package/dist/foundation/Container.js +1 -1
- package/dist/foundation/Container.js.map +1 -1
- package/dist/foundation/Divider.d.ts.map +1 -1
- package/dist/foundation/Divider.js +1 -1
- package/dist/foundation/Divider.js.map +1 -1
- package/dist/foundation/Grid.d.ts.map +1 -1
- package/dist/foundation/Grid.js +1 -1
- package/dist/foundation/Grid.js.map +1 -1
- package/dist/foundation/Inline.d.ts.map +1 -1
- package/dist/foundation/Inline.js +1 -1
- package/dist/foundation/Inline.js.map +1 -1
- package/dist/foundation/Show.d.ts.map +1 -1
- package/dist/foundation/Show.js +1 -1
- package/dist/foundation/Show.js.map +1 -1
- package/dist/foundation/Spacer.d.ts.map +1 -1
- package/dist/foundation/Spacer.js +1 -1
- package/dist/foundation/Spacer.js.map +1 -1
- package/dist/foundation/Stack.d.ts.map +1 -1
- package/dist/foundation/Stack.js +1 -1
- package/dist/foundation/Stack.js.map +1 -1
- package/dist/foundation/Surface.d.ts.map +1 -1
- package/dist/foundation/Surface.js +1 -1
- package/dist/foundation/Surface.js.map +1 -1
- package/dist/layout/app-shell/AppShell.d.ts.map +1 -1
- package/dist/layout/app-shell/AppShell.js +1 -1
- package/dist/layout/app-shell/AppShell.js.map +1 -1
- package/dist/layout/screen/Screen.d.ts.map +1 -1
- package/dist/layout/screen/Screen.js +1 -1
- package/dist/layout/screen/Screen.js.map +1 -1
- package/dist/layout/screen-section/ScreenSection.d.ts.map +1 -1
- package/dist/layout/screen-section/ScreenSection.js +1 -1
- package/dist/layout/screen-section/ScreenSection.js.map +1 -1
- package/dist/layout/settings-layout/SettingsLayout.d.ts.map +1 -1
- package/dist/layout/settings-layout/SettingsLayout.js +1 -1
- package/dist/layout/settings-layout/SettingsLayout.js.map +1 -1
- package/dist/layout/sidebar-layout/SidebarLayout.d.ts.map +1 -1
- package/dist/layout/sidebar-layout/SidebarLayout.js +1 -1
- package/dist/layout/sidebar-layout/SidebarLayout.js.map +1 -1
- package/dist/layout/topbar-layout/TopbarLayout.d.ts.map +1 -1
- package/dist/layout/topbar-layout/TopbarLayout.js +1 -1
- package/dist/layout/topbar-layout/TopbarLayout.js.map +1 -1
- package/dist/patterns/auth/ForgotPasswordForm.d.ts.map +1 -1
- package/dist/patterns/auth/ForgotPasswordForm.js +3 -3
- package/dist/patterns/auth/ForgotPasswordForm.js.map +1 -1
- package/dist/patterns/auth/OAuthProviderButton.d.ts.map +1 -1
- package/dist/patterns/auth/OAuthProviderButton.js +2 -2
- package/dist/patterns/auth/OAuthProviderButton.js.map +1 -1
- package/dist/patterns/auth/OAuthProviderList.d.ts.map +1 -1
- package/dist/patterns/auth/OAuthProviderList.js +2 -2
- package/dist/patterns/auth/OAuthProviderList.js.map +1 -1
- package/dist/patterns/auth/OtpForm.d.ts.map +1 -1
- package/dist/patterns/auth/OtpForm.js +3 -3
- package/dist/patterns/auth/OtpForm.js.map +1 -1
- package/dist/patterns/auth/SignInForm.d.ts.map +1 -1
- package/dist/patterns/auth/SignInForm.js +4 -4
- package/dist/patterns/auth/SignInForm.js.map +1 -1
- package/dist/patterns/auth/SignUpForm.d.ts.map +1 -1
- package/dist/patterns/auth/SignUpForm.js +3 -3
- package/dist/patterns/auth/SignUpForm.js.map +1 -1
- package/dist/patterns/chat-list-item/ChatListItem.d.ts.map +1 -1
- package/dist/patterns/chat-list-item/ChatListItem.js +2 -2
- package/dist/patterns/chat-list-item/ChatListItem.js.map +1 -1
- package/dist/patterns/collection-editor/CollectionEditor.d.ts.map +1 -1
- package/dist/patterns/collection-editor/CollectionEditor.js +5 -5
- package/dist/patterns/collection-editor/CollectionEditor.js.map +1 -1
- package/dist/patterns/confirm-dialog/ConfirmDialog.d.ts.map +1 -1
- package/dist/patterns/confirm-dialog/ConfirmDialog.js +4 -4
- package/dist/patterns/confirm-dialog/ConfirmDialog.js.map +1 -1
- package/dist/patterns/disclosure-section/DisclosureSection.d.ts.map +1 -1
- package/dist/patterns/disclosure-section/DisclosureSection.js +4 -3
- package/dist/patterns/disclosure-section/DisclosureSection.js.map +1 -1
- package/dist/patterns/empty-state/EmptyState.d.ts.map +1 -1
- package/dist/patterns/empty-state/EmptyState.js +4 -4
- package/dist/patterns/empty-state/EmptyState.js.map +1 -1
- package/dist/patterns/filter-bar/FilterBar.d.ts.map +1 -1
- package/dist/patterns/filter-bar/FilterBar.js +1 -1
- package/dist/patterns/filter-bar/FilterBar.js.map +1 -1
- package/dist/patterns/hero/Hero.d.ts.map +1 -1
- package/dist/patterns/hero/Hero.js +10 -6
- package/dist/patterns/hero/Hero.js.map +1 -1
- package/dist/patterns/image-preview/ImagePreview.d.ts.map +1 -1
- package/dist/patterns/image-preview/ImagePreview.js +1 -1
- package/dist/patterns/image-preview/ImagePreview.js.map +1 -1
- package/dist/patterns/image-upload-field/ImageUploadField.d.ts.map +1 -1
- package/dist/patterns/image-upload-field/ImageUploadField.js +19 -13
- package/dist/patterns/image-upload-field/ImageUploadField.js.map +1 -1
- package/dist/patterns/inspector-field/InspectorField.d.ts.map +1 -1
- package/dist/patterns/inspector-field/InspectorField.js +1 -1
- package/dist/patterns/inspector-field/InspectorField.js.map +1 -1
- package/dist/patterns/message-bubble/MessageBubble.d.ts.map +1 -1
- package/dist/patterns/message-bubble/MessageBubble.js +2 -2
- package/dist/patterns/message-bubble/MessageBubble.js.map +1 -1
- package/dist/patterns/notice/Notice.d.ts.map +1 -1
- package/dist/patterns/notice/Notice.js +1 -1
- package/dist/patterns/notice/Notice.js.map +1 -1
- package/dist/patterns/post-card/PostCard.d.ts.map +1 -1
- package/dist/patterns/post-card/PostCard.js +2 -2
- package/dist/patterns/post-card/PostCard.js.map +1 -1
- package/dist/patterns/product-card/ProductCard.d.ts.map +1 -1
- package/dist/patterns/product-card/ProductCard.js +4 -4
- package/dist/patterns/product-card/ProductCard.js.map +1 -1
- package/dist/patterns/product-card/types.d.ts +2 -1
- package/dist/patterns/product-card/types.d.ts.map +1 -1
- package/dist/patterns/product-card/types.js.map +1 -1
- package/dist/patterns/responsive-panel/ResponsivePanel.d.ts.map +1 -1
- package/dist/patterns/responsive-panel/ResponsivePanel.js +13 -4
- package/dist/patterns/responsive-panel/ResponsivePanel.js.map +1 -1
- package/dist/patterns/scanner/BarcodeScannerView.d.ts.map +1 -1
- package/dist/patterns/scanner/BarcodeScannerView.js +3 -3
- package/dist/patterns/scanner/BarcodeScannerView.js.map +1 -1
- package/dist/patterns/scanner/CameraPermissionView.d.ts.map +1 -1
- package/dist/patterns/scanner/CameraPermissionView.js +4 -4
- package/dist/patterns/scanner/CameraPermissionView.js.map +1 -1
- package/dist/patterns/scanner/ScanOverlay.d.ts.map +1 -1
- package/dist/patterns/scanner/ScanOverlay.js +1 -1
- package/dist/patterns/scanner/ScanOverlay.js.map +1 -1
- package/dist/patterns/section-header/SectionHeader.d.ts.map +1 -1
- package/dist/patterns/section-header/SectionHeader.js +1 -1
- package/dist/patterns/section-header/SectionHeader.js.map +1 -1
- package/dist/patterns/selection/SelectableItem.d.ts +1 -1
- package/dist/patterns/selection/SelectableItem.d.ts.map +1 -1
- package/dist/patterns/selection/SelectableItem.js +15 -5
- package/dist/patterns/selection/SelectableItem.js.map +1 -1
- package/dist/patterns/selection/SelectionProvider.d.ts +1 -1
- package/dist/patterns/selection/SelectionProvider.d.ts.map +1 -1
- package/dist/patterns/selection/SelectionProvider.js +4 -2
- package/dist/patterns/selection/SelectionProvider.js.map +1 -1
- package/dist/patterns/selection/types.d.ts +3 -0
- package/dist/patterns/selection/types.d.ts.map +1 -1
- package/dist/patterns/selection/types.js.map +1 -1
- package/dist/patterns/settings-row/SettingsRow.d.ts.map +1 -1
- package/dist/patterns/settings-row/SettingsRow.js +3 -3
- package/dist/patterns/settings-row/SettingsRow.js.map +1 -1
- package/dist/patterns/switch-field/SwitchField.d.ts.map +1 -1
- package/dist/patterns/switch-field/SwitchField.js +2 -2
- package/dist/patterns/switch-field/SwitchField.js.map +1 -1
- package/dist/patterns/tile-grid/TileGrid.d.ts.map +1 -1
- package/dist/patterns/tile-grid/TileGrid.js +1 -1
- package/dist/patterns/tile-grid/TileGrid.js.map +1 -1
- package/dist/patterns/timeline/Timeline.d.ts.map +1 -1
- package/dist/patterns/timeline/Timeline.js +1 -1
- package/dist/patterns/timeline/Timeline.js.map +1 -1
- package/dist/patterns/tree-view/TreeItem.d.ts.map +1 -1
- package/dist/patterns/tree-view/TreeItem.js +3 -3
- package/dist/patterns/tree-view/TreeItem.js.map +1 -1
- package/dist/patterns/tree-view/TreeView.d.ts.map +1 -1
- package/dist/patterns/tree-view/TreeView.js +4 -2
- package/dist/patterns/tree-view/TreeView.js.map +1 -1
- package/dist/patterns/zora-drawer-content/ZoraDrawerContent.d.ts.map +1 -1
- package/dist/patterns/zora-drawer-content/ZoraDrawerContent.js +2 -2
- package/dist/patterns/zora-drawer-content/ZoraDrawerContent.js.map +1 -1
- package/dist/patterns/zora-tab-bar/ZoraTabBar.d.ts.map +1 -1
- package/dist/patterns/zora-tab-bar/ZoraTabBar.js +5 -3
- package/dist/patterns/zora-tab-bar/ZoraTabBar.js.map +1 -1
- package/dist/registry.d.ts +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +2 -1
- package/dist/registry.js.map +1 -1
- package/dist/theme/ZoraBaseProps.d.ts +6 -0
- package/dist/theme/ZoraBaseProps.d.ts.map +1 -1
- package/dist/theme/ZoraBaseProps.js.map +1 -1
- package/package.json +2 -2
- package/src/components/app-bar/AppBar.tsx +3 -0
- package/src/components/avatar/Avatar.tsx +1 -0
- package/src/components/avatar-group/AvatarGroup.tsx +1 -0
- package/src/components/badge/Badge.tsx +1 -0
- package/src/components/breadcrumbs/Breadcrumbs.tsx +2 -0
- package/src/components/button/Button.tsx +8 -1
- package/src/components/button-group/ButtonGroup.tsx +1 -0
- package/src/components/card/Card.tsx +3 -1
- package/src/components/checkbox/Checkbox.tsx +7 -2
- package/src/components/checkbox/CheckboxGroup.tsx +8 -0
- package/src/components/chip/Chip.tsx +8 -1
- package/src/components/chip-group/ChipGroup.tsx +5 -0
- package/src/components/data-table/DataTable.tsx +25 -8
- package/src/components/date-picker/DatePicker.tsx +26 -3
- package/src/components/drawer/Drawer.tsx +2 -1
- package/src/components/form/Form.tsx +5 -0
- package/src/components/form/FormActions.tsx +8 -1
- package/src/components/form/FormError.tsx +7 -1
- package/src/components/form/FormField.tsx +3 -0
- package/src/components/gradient/Gradient.tsx +1 -0
- package/src/components/heading/Heading.tsx +3 -2
- package/src/components/icon/Icon.tsx +6 -1
- package/src/components/icon-button/IconButton.tsx +2 -0
- package/src/components/image/Image.tsx +6 -1
- package/src/components/input/Input.tsx +3 -0
- package/src/components/media-card/MediaCard.tsx +2 -0
- package/src/components/metric-card/MetricCard.tsx +2 -0
- package/src/components/modal/Modal.tsx +2 -1
- package/src/components/navigation-item/NavigationItem.tsx +2 -0
- package/src/components/navigation-list/NavigationList.tsx +3 -0
- package/src/components/pagination/Pagination.tsx +8 -1
- package/src/components/progress/Progress.tsx +1 -0
- package/src/components/radio/Radio.tsx +2 -2
- package/src/components/radio/RadioGroup.tsx +8 -0
- package/src/components/rating/Rating.tsx +1 -0
- package/src/components/search-bar/SearchBar.tsx +7 -1
- package/src/components/select/Select.tsx +30 -21
- package/src/components/tabs/Tabs.tsx +17 -3
- package/src/components/text/Text.tsx +1 -0
- package/src/components/textarea/Textarea.tsx +2 -0
- package/src/components/time-picker/TimePicker.tsx +19 -2
- package/src/components/toolbar/Toolbar.tsx +1 -0
- package/src/foundation/Box.tsx +6 -1
- package/src/foundation/Center.tsx +6 -1
- package/src/foundation/Container.tsx +6 -1
- package/src/foundation/Divider.tsx +6 -1
- package/src/foundation/Grid.tsx +6 -1
- package/src/foundation/Inline.tsx +6 -1
- package/src/foundation/Show.tsx +6 -1
- package/src/foundation/Spacer.tsx +6 -1
- package/src/foundation/Stack.tsx +6 -1
- package/src/foundation/Surface.tsx +6 -1
- package/src/interactionPolicy.test.ts +226 -0
- package/src/layout/app-shell/AppShell.tsx +1 -0
- package/src/layout/screen/Screen.tsx +1 -0
- package/src/layout/screen-section/ScreenSection.tsx +1 -0
- package/src/layout/settings-layout/SettingsLayout.tsx +1 -0
- package/src/layout/sidebar-layout/SidebarLayout.tsx +1 -0
- package/src/layout/topbar-layout/TopbarLayout.tsx +1 -0
- package/src/patterns/auth/ForgotPasswordForm.tsx +3 -0
- package/src/patterns/auth/OAuthProviderButton.tsx +2 -0
- package/src/patterns/auth/OAuthProviderList.tsx +2 -0
- package/src/patterns/auth/OtpForm.tsx +3 -0
- package/src/patterns/auth/SignInForm.tsx +4 -0
- package/src/patterns/auth/SignUpForm.tsx +3 -0
- package/src/patterns/chat-list-item/ChatListItem.tsx +2 -0
- package/src/patterns/collection-editor/CollectionEditor.tsx +12 -1
- package/src/patterns/confirm-dialog/ConfirmDialog.tsx +15 -2
- package/src/patterns/disclosure-section/DisclosureSection.tsx +4 -1
- package/src/patterns/empty-state/EmptyState.tsx +4 -0
- package/src/patterns/filter-bar/FilterBar.tsx +1 -0
- package/src/patterns/hero/Hero.tsx +14 -4
- package/src/patterns/image-preview/ImagePreview.tsx +1 -0
- package/src/patterns/image-upload-field/ImageUploadField.tsx +30 -9
- package/src/patterns/inspector-field/InspectorField.tsx +1 -0
- package/src/patterns/message-bubble/MessageBubble.tsx +2 -0
- package/src/patterns/notice/Notice.tsx +1 -0
- package/src/patterns/post-card/PostCard.tsx +2 -0
- package/src/patterns/product-card/ProductCard.tsx +19 -3
- package/src/patterns/product-card/types.ts +3 -1
- package/src/patterns/responsive-panel/ResponsivePanel.tsx +15 -2
- package/src/patterns/scanner/BarcodeScannerView.tsx +3 -0
- package/src/patterns/scanner/CameraPermissionView.tsx +4 -0
- package/src/patterns/scanner/ScanOverlay.tsx +1 -0
- package/src/patterns/section-header/SectionHeader.tsx +1 -0
- package/src/patterns/selection/SelectableItem.tsx +16 -4
- package/src/patterns/selection/SelectionProvider.tsx +3 -1
- package/src/patterns/selection/types.ts +3 -0
- package/src/patterns/settings-row/SettingsRow.tsx +4 -2
- package/src/patterns/switch-field/SwitchField.tsx +9 -1
- package/src/patterns/tile-grid/TileGrid.tsx +1 -0
- package/src/patterns/timeline/Timeline.tsx +1 -0
- package/src/patterns/tree-view/TreeItem.tsx +3 -0
- package/src/patterns/tree-view/TreeView.tsx +3 -0
- package/src/patterns/zora-drawer-content/ZoraDrawerContent.tsx +2 -0
- package/src/patterns/zora-tab-bar/ZoraTabBar.tsx +11 -2
- package/src/registry.test.ts +47 -14
- package/src/registry.ts +29 -3
- package/src/theme/ZoraBaseProps.ts +8 -0
|
@@ -9,7 +9,12 @@ import type { ZoraBaseProps } from '../theme/ZoraBaseProps';
|
|
|
9
9
|
|
|
10
10
|
export interface CenterProps extends ZoraBaseProps, Omit<SurfaceCenterProps, 'mode' | 'themeId'> {}
|
|
11
11
|
|
|
12
|
-
function CenterInner({
|
|
12
|
+
function CenterInner({
|
|
13
|
+
themeId: _themeId,
|
|
14
|
+
mode: _mode,
|
|
15
|
+
interactionPolicy: _interactionPolicy,
|
|
16
|
+
...props
|
|
17
|
+
}: CenterProps) {
|
|
13
18
|
return <SurfaceCenter {...props} />;
|
|
14
19
|
}
|
|
15
20
|
|
|
@@ -10,7 +10,12 @@ import type { ZoraBaseProps } from '../theme/ZoraBaseProps';
|
|
|
10
10
|
export interface ContainerProps
|
|
11
11
|
extends ZoraBaseProps, Omit<SurfaceContainerProps, 'mode' | 'themeId'> {}
|
|
12
12
|
|
|
13
|
-
function ContainerInner({
|
|
13
|
+
function ContainerInner({
|
|
14
|
+
themeId: _themeId,
|
|
15
|
+
mode: _mode,
|
|
16
|
+
interactionPolicy: _interactionPolicy,
|
|
17
|
+
...props
|
|
18
|
+
}: ContainerProps) {
|
|
14
19
|
return <SurfaceContainer {...props} />;
|
|
15
20
|
}
|
|
16
21
|
|
|
@@ -10,7 +10,12 @@ import type { ZoraBaseProps } from '../theme/ZoraBaseProps';
|
|
|
10
10
|
export interface DividerProps
|
|
11
11
|
extends ZoraBaseProps, Omit<SurfaceDividerProps, 'mode' | 'themeId'> {}
|
|
12
12
|
|
|
13
|
-
function DividerInner({
|
|
13
|
+
function DividerInner({
|
|
14
|
+
themeId: _themeId,
|
|
15
|
+
mode: _mode,
|
|
16
|
+
interactionPolicy: _interactionPolicy,
|
|
17
|
+
...props
|
|
18
|
+
}: DividerProps) {
|
|
14
19
|
return <SurfaceDivider {...props} />;
|
|
15
20
|
}
|
|
16
21
|
|
package/src/foundation/Grid.tsx
CHANGED
|
@@ -6,7 +6,12 @@ import type { ZoraBaseProps } from '../theme/ZoraBaseProps';
|
|
|
6
6
|
|
|
7
7
|
export interface GridProps extends ZoraBaseProps, Omit<SurfaceGridProps, 'mode' | 'themeId'> {}
|
|
8
8
|
|
|
9
|
-
function GridInner({
|
|
9
|
+
function GridInner({
|
|
10
|
+
themeId: _themeId,
|
|
11
|
+
mode: _mode,
|
|
12
|
+
interactionPolicy: _interactionPolicy,
|
|
13
|
+
...props
|
|
14
|
+
}: GridProps) {
|
|
10
15
|
return <SurfaceGrid {...props} />;
|
|
11
16
|
}
|
|
12
17
|
|
|
@@ -9,7 +9,12 @@ import type { ZoraBaseProps } from '../theme/ZoraBaseProps';
|
|
|
9
9
|
|
|
10
10
|
export interface InlineProps extends ZoraBaseProps, Omit<SurfaceInlineProps, 'mode' | 'themeId'> {}
|
|
11
11
|
|
|
12
|
-
function InlineInner({
|
|
12
|
+
function InlineInner({
|
|
13
|
+
themeId: _themeId,
|
|
14
|
+
mode: _mode,
|
|
15
|
+
interactionPolicy: _interactionPolicy,
|
|
16
|
+
...props
|
|
17
|
+
}: InlineProps) {
|
|
13
18
|
return <SurfaceInline {...props} />;
|
|
14
19
|
}
|
|
15
20
|
|
package/src/foundation/Show.tsx
CHANGED
|
@@ -6,7 +6,12 @@ import type { ZoraBaseProps } from '../theme/ZoraBaseProps';
|
|
|
6
6
|
|
|
7
7
|
export interface ShowProps extends ZoraBaseProps, Omit<SurfaceShowProps, 'mode' | 'themeId'> {}
|
|
8
8
|
|
|
9
|
-
function ShowInner({
|
|
9
|
+
function ShowInner({
|
|
10
|
+
themeId: _themeId,
|
|
11
|
+
mode: _mode,
|
|
12
|
+
interactionPolicy: _interactionPolicy,
|
|
13
|
+
...props
|
|
14
|
+
}: ShowProps) {
|
|
10
15
|
return <SurfaceShow {...props} />;
|
|
11
16
|
}
|
|
12
17
|
|
|
@@ -9,7 +9,12 @@ import type { ZoraBaseProps } from '../theme/ZoraBaseProps';
|
|
|
9
9
|
|
|
10
10
|
export interface SpacerProps extends ZoraBaseProps, Omit<SurfaceSpacerProps, 'mode' | 'themeId'> {}
|
|
11
11
|
|
|
12
|
-
function SpacerInner({
|
|
12
|
+
function SpacerInner({
|
|
13
|
+
themeId: _themeId,
|
|
14
|
+
mode: _mode,
|
|
15
|
+
interactionPolicy: _interactionPolicy,
|
|
16
|
+
...props
|
|
17
|
+
}: SpacerProps) {
|
|
13
18
|
return <SurfaceSpacer {...props} />;
|
|
14
19
|
}
|
|
15
20
|
|
package/src/foundation/Stack.tsx
CHANGED
|
@@ -6,7 +6,12 @@ import type { ZoraBaseProps } from '../theme/ZoraBaseProps';
|
|
|
6
6
|
|
|
7
7
|
export interface StackProps extends ZoraBaseProps, Omit<SurfaceStackProps, 'mode' | 'themeId'> {}
|
|
8
8
|
|
|
9
|
-
function StackInner({
|
|
9
|
+
function StackInner({
|
|
10
|
+
themeId: _themeId,
|
|
11
|
+
mode: _mode,
|
|
12
|
+
interactionPolicy: _interactionPolicy,
|
|
13
|
+
...props
|
|
14
|
+
}: StackProps) {
|
|
10
15
|
return <SurfaceStack {...props} />;
|
|
11
16
|
}
|
|
12
17
|
|
|
@@ -13,7 +13,12 @@ export type { SurfaceVariant };
|
|
|
13
13
|
export interface SurfaceProps
|
|
14
14
|
extends ZoraBaseProps, Omit<SurfaceSurfaceProps, 'mode' | 'themeId'> {}
|
|
15
15
|
|
|
16
|
-
function SurfaceInner({
|
|
16
|
+
function SurfaceInner({
|
|
17
|
+
themeId: _themeId,
|
|
18
|
+
mode: _mode,
|
|
19
|
+
interactionPolicy: _interactionPolicy,
|
|
20
|
+
...props
|
|
21
|
+
}: SurfaceProps) {
|
|
17
22
|
return <SurfaceSurface {...props} />;
|
|
18
23
|
}
|
|
19
24
|
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interaction policy regression guards.
|
|
3
|
+
*
|
|
4
|
+
* These tests verify that internally owned interactions respect the passive
|
|
5
|
+
* policy returned by the canonical Surface type. They use static source
|
|
6
|
+
* inspection so they run fast and do not require a renderer.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { readFileSync } from 'node:fs';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
|
|
12
|
+
import { describe, expect, test } from 'bun:test';
|
|
13
|
+
|
|
14
|
+
const ROOT = join(import.meta.dir, '..');
|
|
15
|
+
const SRC_ROOT = join(ROOT, 'src');
|
|
16
|
+
|
|
17
|
+
function readSource(relativePath: string): string {
|
|
18
|
+
return readFileSync(join(SRC_ROOT, relativePath), 'utf8');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function readComponent(...segments: string[]): string {
|
|
22
|
+
return readSource(join('components', ...segments));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function readPattern(...segments: string[]): string {
|
|
26
|
+
return readSource(join('patterns', ...segments));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
describe('InteractionPolicy declaration', () => {
|
|
30
|
+
test('ZoraBaseProps uses the canonical Surface type', () => {
|
|
31
|
+
const source = readSource('theme/ZoraBaseProps.ts');
|
|
32
|
+
|
|
33
|
+
expect(source).toContain("import type { InteractionPolicy } from '@ankhorage/surface';");
|
|
34
|
+
expect(source).toContain('interactionPolicy?: InteractionPolicy;');
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test('no duplicate local InteractionPolicy type declarations in ZORA source', () => {
|
|
38
|
+
const files = [
|
|
39
|
+
readSource('theme/ZoraBaseProps.ts'),
|
|
40
|
+
readComponent('app-bar', 'types.ts'),
|
|
41
|
+
readComponent('breadcrumbs', 'types.ts'),
|
|
42
|
+
readPattern('empty-state', 'types.ts'),
|
|
43
|
+
readPattern('hero', 'types.ts'),
|
|
44
|
+
readPattern('product-card', 'types.ts'),
|
|
45
|
+
readPattern('scanner', 'types.ts'),
|
|
46
|
+
readPattern('zora-tab-bar', 'types.ts'),
|
|
47
|
+
readComponent('select', 'types.ts'),
|
|
48
|
+
readPattern('tree-view', 'types.ts'),
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
for (const source of files) {
|
|
52
|
+
expect(source).not.toMatch(/interface.*InteractionPolicy|type\s+InteractionPolicy/);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
test('registry contract is compile-time only', () => {
|
|
57
|
+
const registrySource = readSource('registry.ts');
|
|
58
|
+
|
|
59
|
+
expect(registrySource).not.toMatch(/type\s+InteractionPolicy/);
|
|
60
|
+
expect(registrySource).toContain(
|
|
61
|
+
"import type { InteractionPolicyProps } from '@ankhorage/surface';",
|
|
62
|
+
);
|
|
63
|
+
expect(registrySource).toMatch(/type\s+AcceptsSurfaceInteractionPolicyProps/);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
describe('Surface wrapper propagation', () => {
|
|
68
|
+
test('foundation Surface forwards interactionPolicy to Surface', () => {
|
|
69
|
+
const source = readSource('foundation/Surface.tsx');
|
|
70
|
+
|
|
71
|
+
expect(source).toContain('interactionPolicy: _interactionPolicy,');
|
|
72
|
+
expect(source).toContain('<SurfaceSurface');
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
describe('AppBar', () => {
|
|
77
|
+
test('forwards interactionPolicy to internal IconButtons', () => {
|
|
78
|
+
const source = readComponent('app-bar', 'AppBar.tsx');
|
|
79
|
+
|
|
80
|
+
expect(source).not.toMatch(/interactionPolicy:\s*_interactionPolicy/);
|
|
81
|
+
expect(source).toMatch(
|
|
82
|
+
/<IconButton[\s\S]*?interactionPolicy=\{interactionPolicy\}[\s\S]*?onPress=\{resolvedMode\.onCancel\}/,
|
|
83
|
+
);
|
|
84
|
+
expect(source).toMatch(
|
|
85
|
+
/<IconButton[\s\S]*?interactionPolicy=\{interactionPolicy\}[\s\S]*?onPress=\{overflow\.onPress\}/,
|
|
86
|
+
);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
describe('Breadcrumbs', () => {
|
|
91
|
+
test('forwards interactionPolicy to internal Buttons', () => {
|
|
92
|
+
const source = readComponent('breadcrumbs', 'Breadcrumbs.tsx');
|
|
93
|
+
|
|
94
|
+
expect(source).not.toMatch(/interactionPolicy:\s*_interactionPolicy/);
|
|
95
|
+
expect(source).toMatch(
|
|
96
|
+
/<Button[\s\S]*?interactionPolicy=\{interactionPolicy\}[\s\S]*?onPress=\{item\.onPress\}/,
|
|
97
|
+
);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
describe('EmptyState', () => {
|
|
102
|
+
test('forwards interactionPolicy to Card and internal Buttons', () => {
|
|
103
|
+
const source = readPattern('empty-state', 'EmptyState.tsx');
|
|
104
|
+
|
|
105
|
+
expect(source).not.toMatch(/interactionPolicy:\s*_interactionPolicy/);
|
|
106
|
+
expect(source).toMatch(/<Card[\s\S]*?interactionPolicy=\{interactionPolicy\}/);
|
|
107
|
+
expect(source).toMatch(
|
|
108
|
+
/<Button[\s\S]*?interactionPolicy=\{interactionPolicy\}[\s\S]*?variant=\{primaryAction\.variant\}/,
|
|
109
|
+
);
|
|
110
|
+
expect(source).toMatch(
|
|
111
|
+
/<Button[\s\S]*?interactionPolicy=\{interactionPolicy\}[\s\S]*?variant=\{secondaryAction\.variant/,
|
|
112
|
+
);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
describe('Hero', () => {
|
|
117
|
+
test('forwards interactionPolicy to Card', () => {
|
|
118
|
+
const source = readPattern('hero', 'Hero.tsx');
|
|
119
|
+
|
|
120
|
+
expect(source).not.toMatch(/interactionPolicy:\s*_interactionPolicy/);
|
|
121
|
+
expect(source).toMatch(/<Card[\s\S]*?interactionPolicy=\{interactionPolicy\}/);
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
test('passes interactionPolicy through renderAction to internal Buttons', () => {
|
|
125
|
+
const source = readPattern('hero', 'Hero.tsx');
|
|
126
|
+
|
|
127
|
+
expect(source).toMatch(
|
|
128
|
+
/function renderAction\([\s\S]*?interactionPolicy: HeroProps\['interactionPolicy'\]/,
|
|
129
|
+
);
|
|
130
|
+
expect(source).toMatch(
|
|
131
|
+
/<Button[\s\S]*?interactionPolicy=\{interactionPolicy\}[\s\S]*?variant=\{action\.variant/,
|
|
132
|
+
);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
describe('ProductCard', () => {
|
|
137
|
+
test('types extend ZoraBaseProps instead of duplicating InteractionPolicy', () => {
|
|
138
|
+
const source = readPattern('product-card', 'types.ts');
|
|
139
|
+
|
|
140
|
+
expect(source).not.toMatch(
|
|
141
|
+
/import type \{\s*InteractionPolicy\s*\} from '@ankhorage\/surface';/,
|
|
142
|
+
);
|
|
143
|
+
expect(source).toMatch(/export interface ProductCardProps extends ZoraBaseProps/);
|
|
144
|
+
expect(source).not.toMatch(/interactionPolicy\?: InteractionPolicy;/);
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
test('forwards interactionPolicy to internal Buttons', () => {
|
|
148
|
+
const source = readPattern('product-card', 'ProductCard.tsx');
|
|
149
|
+
|
|
150
|
+
expect(source).toMatch(
|
|
151
|
+
/<Button[\s\S]*?interactionPolicy=\{interactionPolicy\}[\s\S]*?onPress=\{onPrimaryAction/,
|
|
152
|
+
);
|
|
153
|
+
expect(source).toMatch(
|
|
154
|
+
/<Button[\s\S]*?interactionPolicy=\{interactionPolicy\}[\s\S]*?onPress=\{onSecondaryAction/,
|
|
155
|
+
);
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
describe('CameraPermissionView', () => {
|
|
160
|
+
test('forwards interactionPolicy to internal Buttons after prop spreads', () => {
|
|
161
|
+
const source = readPattern('scanner', 'CameraPermissionView.tsx');
|
|
162
|
+
|
|
163
|
+
expect(source).toMatch(
|
|
164
|
+
/<Button[\s\S]*?\{\s*\.\.\.requestButtonProps\s*\}[\s\S]*?interactionPolicy=\{interactionPolicy\}/,
|
|
165
|
+
);
|
|
166
|
+
expect(source).toMatch(
|
|
167
|
+
/<Button[\s\S]*?\{\s*\.\.\.manualEntryButtonProps\s*\}[\s\S]*?interactionPolicy=\{interactionPolicy\}/,
|
|
168
|
+
);
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
describe('BarcodeScannerView', () => {
|
|
173
|
+
test('passes interactionPolicy to CameraPermissionView in non-granted states', () => {
|
|
174
|
+
const source = readPattern('scanner', 'BarcodeScannerView.tsx');
|
|
175
|
+
|
|
176
|
+
expect(source).toMatch(/<CameraPermissionView[\s\S]*?interactionPolicy=\{interactionPolicy\}/);
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
describe('ZoraTabBar', () => {
|
|
181
|
+
test('does not discard interactionPolicy', () => {
|
|
182
|
+
const source = readPattern('zora-tab-bar', 'ZoraTabBar.tsx');
|
|
183
|
+
|
|
184
|
+
expect(source).not.toMatch(/interactionPolicy:\s*_interactionPolicy/);
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
test('prevents navigation under passive without disabled semantics', () => {
|
|
188
|
+
const source = readPattern('zora-tab-bar', 'ZoraTabBar.tsx');
|
|
189
|
+
|
|
190
|
+
expect(source).toMatch(/onPress=\{[\s\S]*?interactionPolicy === 'passive'\s*\?\s*undefined/);
|
|
191
|
+
expect(source).not.toMatch(/disabled:\s*interactionPolicy === 'passive'/);
|
|
192
|
+
expect(source).not.toMatch(/accessibilityState.*disabled.*interactionPolicy === 'passive'/);
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
describe('Select', () => {
|
|
197
|
+
test('keeps Picker enabled controlled only by real disabled prop', () => {
|
|
198
|
+
const source = readComponent('select', 'Select.tsx');
|
|
199
|
+
|
|
200
|
+
expect(source).toMatch(/enabled=\{!disabled\}/);
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
test('prevents pointer/touch interaction with Picker subtree while passive', () => {
|
|
204
|
+
const source = readComponent('select', 'Select.tsx');
|
|
205
|
+
|
|
206
|
+
expect(source).toMatch(/pointerEvents=\{passive \? 'none' : 'auto'\}/);
|
|
207
|
+
expect(source).toMatch(
|
|
208
|
+
/onValueChange=\{\s*\(\s*itemValue\s*\)\s*=>\s*\{\s*if\s*\(\s*!passive\s*\)/,
|
|
209
|
+
);
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
describe('TreeItem', () => {
|
|
214
|
+
test('accepts and forwards interactionPolicy to owned and recursive controls', () => {
|
|
215
|
+
const source = readPattern('tree-view', 'TreeItem.tsx');
|
|
216
|
+
|
|
217
|
+
expect(source).toMatch(/interface TreeItemProps[\s\S]*?extends ZoraBaseProps/);
|
|
218
|
+
expect(source).toMatch(/function TreeItemInner[\s\S]*?interactionPolicy,/);
|
|
219
|
+
expect(source).toMatch(
|
|
220
|
+
/<IconButton[\s\S]*?interactionPolicy=\{interactionPolicy\}[\s\S]*?onPress=\{\(\) => onToggleExpand\(node\.id\)\}/,
|
|
221
|
+
);
|
|
222
|
+
expect(source).toMatch(
|
|
223
|
+
/node\.children\?\.map[\s\S]*?<TreeItem[\s\S]*?interactionPolicy=\{interactionPolicy\}[\s\S]*?node=\{child\}/,
|
|
224
|
+
);
|
|
225
|
+
});
|
|
226
|
+
});
|
|
@@ -18,6 +18,7 @@ type ForgotPasswordFieldName = 'identifier';
|
|
|
18
18
|
function ForgotPasswordFormInner({
|
|
19
19
|
themeId: _themeId,
|
|
20
20
|
mode: _mode,
|
|
21
|
+
interactionPolicy,
|
|
21
22
|
identifiers = defaultIdentifiers,
|
|
22
23
|
identifierLabel,
|
|
23
24
|
signInLabel = 'Sign in',
|
|
@@ -67,6 +68,7 @@ function ForgotPasswordFormInner({
|
|
|
67
68
|
}}
|
|
68
69
|
size="s"
|
|
69
70
|
color="neutral"
|
|
71
|
+
interactionPolicy={interactionPolicy}
|
|
70
72
|
>
|
|
71
73
|
{signInLabel}
|
|
72
74
|
</Button>
|
|
@@ -76,6 +78,7 @@ function ForgotPasswordFormInner({
|
|
|
76
78
|
disabled={disabled}
|
|
77
79
|
error={error}
|
|
78
80
|
fields={fields}
|
|
81
|
+
interactionPolicy={interactionPolicy}
|
|
79
82
|
loading={loading}
|
|
80
83
|
onChange={setValues}
|
|
81
84
|
onSubmit={handleSubmit}
|
|
@@ -8,6 +8,7 @@ import type { OAuthProviderButtonProps } from './types';
|
|
|
8
8
|
function OAuthProviderButtonInner({
|
|
9
9
|
themeId: _themeId,
|
|
10
10
|
mode: _mode,
|
|
11
|
+
interactionPolicy,
|
|
11
12
|
providerId,
|
|
12
13
|
label,
|
|
13
14
|
icon,
|
|
@@ -28,6 +29,7 @@ function OAuthProviderButtonInner({
|
|
|
28
29
|
color={color}
|
|
29
30
|
disabled={disabled || loading || onPress === undefined}
|
|
30
31
|
fullWidth={fullWidth}
|
|
32
|
+
interactionPolicy={interactionPolicy}
|
|
31
33
|
leadingIcon={resolvedIcon}
|
|
32
34
|
loading={loading}
|
|
33
35
|
onPress={() => {
|
|
@@ -8,6 +8,7 @@ import type { OAuthProviderListProps } from './types';
|
|
|
8
8
|
function OAuthProviderListInner({
|
|
9
9
|
themeId: _themeId,
|
|
10
10
|
mode: _mode,
|
|
11
|
+
interactionPolicy,
|
|
11
12
|
providers,
|
|
12
13
|
disabled = false,
|
|
13
14
|
loading = false,
|
|
@@ -42,6 +43,7 @@ function OAuthProviderListInner({
|
|
|
42
43
|
providerId={provider.id}
|
|
43
44
|
size={size}
|
|
44
45
|
variant={variant}
|
|
46
|
+
interactionPolicy={interactionPolicy}
|
|
45
47
|
/>
|
|
46
48
|
))}
|
|
47
49
|
</Stack>
|
|
@@ -11,6 +11,7 @@ type OtpFieldName = 'otp';
|
|
|
11
11
|
function OtpFormInner({
|
|
12
12
|
themeId: _themeId,
|
|
13
13
|
mode: _mode,
|
|
14
|
+
interactionPolicy,
|
|
14
15
|
length = 6,
|
|
15
16
|
otpLabel = 'Code',
|
|
16
17
|
resendLabel = 'Resend code',
|
|
@@ -63,6 +64,7 @@ function OtpFormInner({
|
|
|
63
64
|
}}
|
|
64
65
|
size="s"
|
|
65
66
|
color="neutral"
|
|
67
|
+
interactionPolicy={interactionPolicy}
|
|
66
68
|
>
|
|
67
69
|
{resendLabel}
|
|
68
70
|
</Button>
|
|
@@ -72,6 +74,7 @@ function OtpFormInner({
|
|
|
72
74
|
disabled={disabled}
|
|
73
75
|
error={error}
|
|
74
76
|
fields={fields}
|
|
77
|
+
interactionPolicy={interactionPolicy}
|
|
75
78
|
loading={loading}
|
|
76
79
|
onChange={setValues}
|
|
77
80
|
onSubmit={handleSubmit}
|
|
@@ -17,6 +17,7 @@ type SignInFieldName = 'identifier' | 'secret';
|
|
|
17
17
|
|
|
18
18
|
function SignInFormInner({
|
|
19
19
|
themeId: _themeId,
|
|
20
|
+
interactionPolicy,
|
|
20
21
|
mode: _mode,
|
|
21
22
|
identifiers = defaultIdentifiers,
|
|
22
23
|
identifierLabel,
|
|
@@ -80,6 +81,7 @@ function SignInFormInner({
|
|
|
80
81
|
}}
|
|
81
82
|
size="s"
|
|
82
83
|
color="neutral"
|
|
84
|
+
interactionPolicy={interactionPolicy}
|
|
83
85
|
>
|
|
84
86
|
{forgotPasswordLabel}
|
|
85
87
|
</Button>
|
|
@@ -93,6 +95,7 @@ function SignInFormInner({
|
|
|
93
95
|
}}
|
|
94
96
|
size="s"
|
|
95
97
|
color="neutral"
|
|
98
|
+
interactionPolicy={interactionPolicy}
|
|
96
99
|
>
|
|
97
100
|
{signUpLabel}
|
|
98
101
|
</Button>
|
|
@@ -103,6 +106,7 @@ function SignInFormInner({
|
|
|
103
106
|
disabled={disabled}
|
|
104
107
|
error={error}
|
|
105
108
|
fields={fields}
|
|
109
|
+
interactionPolicy={interactionPolicy}
|
|
106
110
|
loading={loading}
|
|
107
111
|
onChange={setValues}
|
|
108
112
|
onSubmit={handleSubmit}
|
|
@@ -33,6 +33,7 @@ function createValues(fields: readonly FormFieldConfig[]): FormValues {
|
|
|
33
33
|
|
|
34
34
|
function SignUpFormInner({
|
|
35
35
|
themeId: _themeId,
|
|
36
|
+
interactionPolicy,
|
|
36
37
|
mode: _mode,
|
|
37
38
|
fields = defaultSignUpFields,
|
|
38
39
|
signInLabel = 'Sign in',
|
|
@@ -59,6 +60,7 @@ function SignUpFormInner({
|
|
|
59
60
|
}}
|
|
60
61
|
size="s"
|
|
61
62
|
color="neutral"
|
|
63
|
+
interactionPolicy={interactionPolicy}
|
|
62
64
|
>
|
|
63
65
|
{signInLabel}
|
|
64
66
|
</Button>
|
|
@@ -68,6 +70,7 @@ function SignUpFormInner({
|
|
|
68
70
|
disabled={disabled}
|
|
69
71
|
error={error}
|
|
70
72
|
fields={fields}
|
|
73
|
+
interactionPolicy={interactionPolicy}
|
|
71
74
|
loading={loading}
|
|
72
75
|
onChange={setValues}
|
|
73
76
|
onSubmit={onSubmit}
|
|
@@ -71,6 +71,7 @@ function renderUnreadCount(unreadCount: React.ReactNode) {
|
|
|
71
71
|
function ChatListItemInner({
|
|
72
72
|
themeId: _themeId,
|
|
73
73
|
mode: _mode,
|
|
74
|
+
interactionPolicy,
|
|
74
75
|
testID,
|
|
75
76
|
title,
|
|
76
77
|
preview,
|
|
@@ -203,6 +204,7 @@ function ChatListItemInner({
|
|
|
203
204
|
accessibilityRole="button"
|
|
204
205
|
accessibilityState={{ disabled, selected }}
|
|
205
206
|
disabled={disabled}
|
|
207
|
+
interactionPolicy={interactionPolicy}
|
|
206
208
|
onPress={onPress}
|
|
207
209
|
radius="m"
|
|
208
210
|
testID={testID}
|
|
@@ -22,6 +22,7 @@ function CollectionEditorInner<TItem>({
|
|
|
22
22
|
emptyLabel = 'No items yet.',
|
|
23
23
|
disabled,
|
|
24
24
|
testID,
|
|
25
|
+
interactionPolicy,
|
|
25
26
|
}: CollectionEditorProps<TItem>) {
|
|
26
27
|
const isEmpty = items.length === 0;
|
|
27
28
|
|
|
@@ -29,11 +30,18 @@ function CollectionEditorInner<TItem>({
|
|
|
29
30
|
<Panel
|
|
30
31
|
compact
|
|
31
32
|
description={description}
|
|
33
|
+
interactionPolicy={interactionPolicy}
|
|
32
34
|
testID={testID}
|
|
33
35
|
title={title}
|
|
34
36
|
actions={
|
|
35
37
|
onAdd ? (
|
|
36
|
-
<Button
|
|
38
|
+
<Button
|
|
39
|
+
variant="soft"
|
|
40
|
+
size="s"
|
|
41
|
+
disabled={disabled}
|
|
42
|
+
interactionPolicy={interactionPolicy}
|
|
43
|
+
onPress={onAdd}
|
|
44
|
+
>
|
|
37
45
|
{addLabel}
|
|
38
46
|
</Button>
|
|
39
47
|
) : null
|
|
@@ -68,6 +76,7 @@ function CollectionEditorInner<TItem>({
|
|
|
68
76
|
icon={{ name: 'arrow-up-outline' }}
|
|
69
77
|
label="Move Up"
|
|
70
78
|
disabled={disabled ?? index === 0}
|
|
79
|
+
interactionPolicy={interactionPolicy}
|
|
71
80
|
onPress={() => onMove(index, index - 1)}
|
|
72
81
|
size="s"
|
|
73
82
|
variant="ghost"
|
|
@@ -76,6 +85,7 @@ function CollectionEditorInner<TItem>({
|
|
|
76
85
|
icon={{ name: 'arrow-down-outline' }}
|
|
77
86
|
label="Move Down"
|
|
78
87
|
disabled={disabled ?? index === items.length - 1}
|
|
88
|
+
interactionPolicy={interactionPolicy}
|
|
79
89
|
onPress={() => onMove(index, index + 1)}
|
|
80
90
|
size="s"
|
|
81
91
|
variant="ghost"
|
|
@@ -88,6 +98,7 @@ function CollectionEditorInner<TItem>({
|
|
|
88
98
|
label="Remove"
|
|
89
99
|
color="danger"
|
|
90
100
|
disabled={disabled}
|
|
101
|
+
interactionPolicy={interactionPolicy}
|
|
91
102
|
onPress={() => onRemove(index)}
|
|
92
103
|
size="s"
|
|
93
104
|
variant="ghost"
|
|
@@ -22,17 +22,30 @@ function ConfirmDialogInner({
|
|
|
22
22
|
onConfirm,
|
|
23
23
|
onCancel,
|
|
24
24
|
testID,
|
|
25
|
+
interactionPolicy,
|
|
25
26
|
}: ConfirmDialogProps) {
|
|
26
27
|
return (
|
|
27
28
|
<Modal
|
|
28
29
|
closeOnBackdrop={closeOnBackdrop}
|
|
29
30
|
description={description}
|
|
31
|
+
interactionPolicy={interactionPolicy}
|
|
30
32
|
footer={
|
|
31
33
|
<Stack direction={{ base: 'column', md: 'row' }} gap="s" justify="flex-end">
|
|
32
|
-
<Button
|
|
34
|
+
<Button
|
|
35
|
+
variant="soft"
|
|
36
|
+
interactionPolicy={interactionPolicy}
|
|
37
|
+
onPress={onCancel}
|
|
38
|
+
color="neutral"
|
|
39
|
+
>
|
|
33
40
|
{cancelLabel}
|
|
34
41
|
</Button>
|
|
35
|
-
<Button
|
|
42
|
+
<Button
|
|
43
|
+
variant={confirmVariant}
|
|
44
|
+
loading={busy}
|
|
45
|
+
interactionPolicy={interactionPolicy}
|
|
46
|
+
onPress={onConfirm}
|
|
47
|
+
color={confirmColor}
|
|
48
|
+
>
|
|
36
49
|
{confirmLabel}
|
|
37
50
|
</Button>
|
|
38
51
|
</Stack>
|