@ankhorage/zora 2.8.7 → 2.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -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.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 +4 -4
- 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 +53 -102
- package/src/registry.ts +28 -2
- package/src/theme/ZoraBaseProps.ts +8 -0
|
@@ -12,7 +12,7 @@ function isRenderProp(children) {
|
|
|
12
12
|
*
|
|
13
13
|
|
|
14
14
|
*/
|
|
15
|
-
export function SelectableItem({ id, trigger, disabled = false, children }) {
|
|
15
|
+
export function SelectableItem({ id, trigger, disabled = false, interactionPolicy, children, }) {
|
|
16
16
|
const selection = useSelection();
|
|
17
17
|
const resolvedTrigger = resolveTrigger(trigger);
|
|
18
18
|
const resolvedDisabled = selection.disabled || disabled;
|
|
@@ -20,18 +20,24 @@ export function SelectableItem({ id, trigger, disabled = false, children }) {
|
|
|
20
20
|
const select = React.useCallback(() => {
|
|
21
21
|
if (resolvedDisabled)
|
|
22
22
|
return;
|
|
23
|
+
if (interactionPolicy === 'passive')
|
|
24
|
+
return;
|
|
23
25
|
selection.select(id);
|
|
24
|
-
}, [id, resolvedDisabled, selection]);
|
|
26
|
+
}, [id, resolvedDisabled, interactionPolicy, selection]);
|
|
25
27
|
const toggle = React.useCallback(() => {
|
|
26
28
|
if (resolvedDisabled)
|
|
27
29
|
return;
|
|
30
|
+
if (interactionPolicy === 'passive')
|
|
31
|
+
return;
|
|
28
32
|
selection.toggle(id);
|
|
29
|
-
}, [id, resolvedDisabled, selection]);
|
|
33
|
+
}, [id, resolvedDisabled, interactionPolicy, selection]);
|
|
30
34
|
const clear = React.useCallback(() => {
|
|
31
35
|
if (selection.disabled)
|
|
32
36
|
return;
|
|
37
|
+
if (interactionPolicy === 'passive')
|
|
38
|
+
return;
|
|
33
39
|
selection.clear();
|
|
34
|
-
}, [selection]);
|
|
40
|
+
}, [interactionPolicy, selection]);
|
|
35
41
|
const itemState = React.useMemo(() => {
|
|
36
42
|
return {
|
|
37
43
|
id,
|
|
@@ -54,6 +60,8 @@ export function SelectableItem({ id, trigger, disabled = false, children }) {
|
|
|
54
60
|
event.stopPropagation();
|
|
55
61
|
if (resolvedDisabled)
|
|
56
62
|
return;
|
|
63
|
+
if (interactionPolicy === 'passive')
|
|
64
|
+
return;
|
|
57
65
|
if (selection.mode === 'single') {
|
|
58
66
|
selection.select(id);
|
|
59
67
|
return;
|
|
@@ -64,13 +72,15 @@ export function SelectableItem({ id, trigger, disabled = false, children }) {
|
|
|
64
72
|
event.stopPropagation();
|
|
65
73
|
if (resolvedDisabled)
|
|
66
74
|
return;
|
|
75
|
+
if (interactionPolicy === 'passive')
|
|
76
|
+
return;
|
|
67
77
|
if (selection.mode === 'single') {
|
|
68
78
|
selection.select(id);
|
|
69
79
|
return;
|
|
70
80
|
}
|
|
71
81
|
selection.toggle(id);
|
|
72
82
|
};
|
|
73
|
-
return (<ButtonBase accessibilityRole="button" accessibilityState={{ disabled: resolvedDisabled, selected }} disabled={resolvedDisabled} onLongPress={resolvedTrigger === 'longPress' ? handleLongPress : undefined} onPress={resolvedTrigger === 'press' ? handlePress : undefined}>
|
|
83
|
+
return (<ButtonBase interactionPolicy={interactionPolicy} accessibilityRole="button" accessibilityState={{ disabled: resolvedDisabled, selected }} disabled={resolvedDisabled} onLongPress={resolvedTrigger === 'longPress' ? handleLongPress : undefined} onPress={resolvedTrigger === 'press' ? handlePress : undefined}>
|
|
74
84
|
{content}
|
|
75
85
|
</ButtonBase>);
|
|
76
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectableItem.js","sourceRoot":"","sources":["../../../src/patterns/selection/SelectableItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,SAAS,cAAc,CAAC,OAAqC;IAC3D,OAAO,OAAO,IAAI,QAAQ,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CACnB,QAAyC;IAEzC,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"SelectableItem.js","sourceRoot":"","sources":["../../../src/patterns/selection/SelectableItem.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ButtonBase } from '@ankhorage/surface';\nimport React from 'react';\nimport type { GestureResponderEvent } from 'react-native';\n\nimport { useSelection } from './SelectionProvider';\nimport type { SelectableItemProps, SelectableItemState, SelectionTrigger } from './types';\n\nfunction resolveTrigger(trigger: SelectionTrigger | undefined): SelectionTrigger {\n return trigger ?? 'manual';\n}\n\nfunction isRenderProp(\n children: SelectableItemProps['children'],\n): children is (state: SelectableItemState) => React.ReactNode {\n return typeof children === 'function';\n}\n\n/***\n * Adds selection behavior to arbitrary child content via render props.\n *\n \n */\nexport function SelectableItem({\n id,\n trigger,\n disabled = false,\n interactionPolicy,\n children,\n}: SelectableItemProps) {\n const selection = useSelection();\n const resolvedTrigger = resolveTrigger(trigger);\n const resolvedDisabled = selection.disabled || disabled;\n const selected = selection.isSelected(id);\n\n const select = React.useCallback(() => {\n if (resolvedDisabled) return;\n if (interactionPolicy === 'passive') return;\n selection.select(id);\n }, [id, resolvedDisabled, interactionPolicy, selection]);\n\n const toggle = React.useCallback(() => {\n if (resolvedDisabled) return;\n if (interactionPolicy === 'passive') return;\n selection.toggle(id);\n }, [id, resolvedDisabled, interactionPolicy, selection]);\n\n const clear = React.useCallback(() => {\n if (selection.disabled) return;\n if (interactionPolicy === 'passive') return;\n selection.clear();\n }, [interactionPolicy, selection]);\n\n const itemState = React.useMemo<SelectableItemState>(() => {\n return {\n id,\n selected,\n disabled: resolvedDisabled,\n mode: selection.mode,\n select,\n toggle,\n clear,\n };\n }, [clear, id, resolvedDisabled, select, selected, selection.mode, toggle]);\n\n // IMPORTANT:\n // Do not pass `children` directly into ButtonBase. ButtonBase also supports function children,\n // but its function signature receives interaction state, not SelectableItemState.\n const content = isRenderProp(children) ? children(itemState) : children;\n\n if (resolvedTrigger === 'manual') {\n return <>{content}</>;\n }\n\n const handlePress = (event: GestureResponderEvent) => {\n event.stopPropagation();\n if (resolvedDisabled) return;\n if (interactionPolicy === 'passive') return;\n if (selection.mode === 'single') {\n selection.select(id);\n return;\n }\n\n selection.toggle(id);\n };\n\n const handleLongPress = (event: GestureResponderEvent) => {\n event.stopPropagation();\n if (resolvedDisabled) return;\n if (interactionPolicy === 'passive') return;\n if (selection.mode === 'single') {\n selection.select(id);\n return;\n }\n\n selection.toggle(id);\n };\n\n return (\n <ButtonBase\n interactionPolicy={interactionPolicy}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: resolvedDisabled, selected }}\n disabled={resolvedDisabled}\n onLongPress={resolvedTrigger === 'longPress' ? handleLongPress : undefined}\n onPress={resolvedTrigger === 'press' ? handlePress : undefined}\n >\n {content}\n </ButtonBase>\n );\n}\n"]}
|
|
@@ -11,5 +11,5 @@ export declare function useSelection(): UseSelectionResult;
|
|
|
11
11
|
*
|
|
12
12
|
|
|
13
13
|
*/
|
|
14
|
-
export declare function SelectionProvider({ children, selectedIds, defaultSelectedIds, mode, disabled, onSelectionChange, }: SelectionProviderProps): React.JSX.Element;
|
|
14
|
+
export declare function SelectionProvider({ children, selectedIds, defaultSelectedIds, mode, disabled, onSelectionChange, interactionPolicy, }: SelectionProviderProps): React.JSX.Element;
|
|
15
15
|
//# sourceMappingURL=SelectionProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionProvider.d.ts","sourceRoot":"","sources":["../../../src/patterns/selection/SelectionProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAiB,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAiBzF;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,kBAAkB,CAOjD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,IAAI,EACJ,QAAQ,EACR,iBAAiB,GAClB,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"SelectionProvider.d.ts","sourceRoot":"","sources":["../../../src/patterns/selection/SelectionProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAiB,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAiBzF;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,kBAAkB,CAOjD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,IAAI,EACJ,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,GAClB,EAAE,sBAAsB,qBAkExB"}
|
|
@@ -25,7 +25,7 @@ export function useSelection() {
|
|
|
25
25
|
*
|
|
26
26
|
|
|
27
27
|
*/
|
|
28
|
-
export function SelectionProvider({ children, selectedIds, defaultSelectedIds, mode, disabled, onSelectionChange, }) {
|
|
28
|
+
export function SelectionProvider({ children, selectedIds, defaultSelectedIds, mode, disabled, onSelectionChange, interactionPolicy, }) {
|
|
29
29
|
const resolvedMode = resolveMode(mode);
|
|
30
30
|
const resolvedDisabled = resolveDisabled(disabled);
|
|
31
31
|
const isControlled = selectedIds !== undefined;
|
|
@@ -36,13 +36,15 @@ export function SelectionProvider({ children, selectedIds, defaultSelectedIds, m
|
|
|
36
36
|
const commitSelectionChange = React.useCallback((nextNormalizedIds) => {
|
|
37
37
|
if (resolvedDisabled)
|
|
38
38
|
return;
|
|
39
|
+
if (interactionPolicy === 'passive')
|
|
40
|
+
return;
|
|
39
41
|
if (areIdsEqual(nextNormalizedIds, currentNormalizedIds))
|
|
40
42
|
return;
|
|
41
43
|
onSelectionChange?.(nextNormalizedIds);
|
|
42
44
|
if (!isControlled) {
|
|
43
45
|
setUncontrolledIds(nextNormalizedIds);
|
|
44
46
|
}
|
|
45
|
-
}, [currentNormalizedIds, isControlled, onSelectionChange, resolvedDisabled]);
|
|
47
|
+
}, [currentNormalizedIds, interactionPolicy, isControlled, onSelectionChange, resolvedDisabled]);
|
|
46
48
|
const clear = React.useCallback(() => {
|
|
47
49
|
commitSelectionChange(normalizeIds(clearIds(), resolvedMode));
|
|
48
50
|
}, [commitSelectionChange, resolvedMode]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionProvider.js","sourceRoot":"","sources":["../../../src/patterns/selection/SelectionProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGpG,MAAM,uBAAuB,GAC3B,2EAA2E,CAAC;AAI9E,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAA+B,IAAI,CAAC,CAAC;AAEjF,SAAS,WAAW,CAAC,IAA+B;IAClD,OAAO,IAAI,IAAI,QAAQ,CAAC;AAC1B,CAAC;AAED,SAAS,eAAe,CAAC,QAA6B;IACpD,OAAO,QAAQ,IAAI,KAAK,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,IAAI,EACJ,QAAQ,EACR,iBAAiB,GACM;IACvB,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,WAAW,KAAK,SAAS,CAAC;IAE/C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC1D,kBAAkB,IAAI,EAAE,CACzB,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC;IAC5D,MAAM,oBAAoB,GAAG,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAEhE,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAEjG,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAC7C,CAAC,iBAAoC,EAAE,EAAE;QACvC,IAAI,gBAAgB;YAAE,OAAO;QAC7B,IAAI,WAAW,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;YAAE,OAAO;QAEjE,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAEvC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,EACD,CAAC,oBAAoB,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"SelectionProvider.js","sourceRoot":"","sources":["../../../src/patterns/selection/SelectionProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { areIdsEqual, clearIds, normalizeIds, selectId, toggleId } from './resolveSelectionNextIds';\nimport type { SelectionMode, SelectionProviderProps, UseSelectionResult } from './types';\n\nconst MISSING_CONTEXT_MESSAGE =\n 'ZORA selection context is missing. Wrap this tree in <SelectionProvider>.';\n\ntype SelectionContextValue = UseSelectionResult;\n\nconst SelectionContext = React.createContext<SelectionContextValue | null>(null);\n\nfunction resolveMode(mode: SelectionMode | undefined): SelectionMode {\n return mode ?? 'single';\n}\n\nfunction resolveDisabled(disabled: boolean | undefined): boolean {\n return disabled ?? false;\n}\n\n/***\n * Accesses selection state provided by `SelectionProvider`.\n *\n \n */\nexport function useSelection(): UseSelectionResult {\n const value = React.useContext(SelectionContext);\n if (!value) {\n throw new Error(MISSING_CONTEXT_MESSAGE);\n }\n\n return value;\n}\n\n/***\n * Provides selection state for building selectable lists and grids.\n *\n \n */\nexport function SelectionProvider({\n children,\n selectedIds,\n defaultSelectedIds,\n mode,\n disabled,\n onSelectionChange,\n interactionPolicy,\n}: SelectionProviderProps) {\n const resolvedMode = resolveMode(mode);\n const resolvedDisabled = resolveDisabled(disabled);\n const isControlled = selectedIds !== undefined;\n\n const [uncontrolledIds, setUncontrolledIds] = React.useState<readonly string[]>(\n defaultSelectedIds ?? [],\n );\n\n const rawIds = isControlled ? selectedIds : uncontrolledIds;\n const currentNormalizedIds = normalizeIds(rawIds, resolvedMode);\n\n const selectedIdSet = React.useMemo(() => new Set(currentNormalizedIds), [currentNormalizedIds]);\n\n const commitSelectionChange = React.useCallback(\n (nextNormalizedIds: readonly string[]) => {\n if (resolvedDisabled) return;\n if (interactionPolicy === 'passive') return;\n if (areIdsEqual(nextNormalizedIds, currentNormalizedIds)) return;\n\n onSelectionChange?.(nextNormalizedIds);\n\n if (!isControlled) {\n setUncontrolledIds(nextNormalizedIds);\n }\n },\n [currentNormalizedIds, interactionPolicy, isControlled, onSelectionChange, resolvedDisabled],\n );\n\n const clear = React.useCallback(() => {\n commitSelectionChange(normalizeIds(clearIds(), resolvedMode));\n }, [commitSelectionChange, resolvedMode]);\n\n const select = React.useCallback(\n (id: string) => {\n const nextIds = selectId({ mode: resolvedMode, ids: currentNormalizedIds, id });\n const nextNormalizedIds = normalizeIds(nextIds, resolvedMode);\n commitSelectionChange(nextNormalizedIds);\n },\n [commitSelectionChange, currentNormalizedIds, resolvedMode],\n );\n\n const toggle = React.useCallback(\n (id: string) => {\n const nextIds = toggleId({ mode: resolvedMode, ids: currentNormalizedIds, id });\n const nextNormalizedIds = normalizeIds(nextIds, resolvedMode);\n commitSelectionChange(nextNormalizedIds);\n },\n [commitSelectionChange, currentNormalizedIds, resolvedMode],\n );\n\n const value = React.useMemo<UseSelectionResult>(() => {\n return {\n mode: resolvedMode,\n disabled: resolvedDisabled,\n selectedIds: currentNormalizedIds,\n selectedCount: currentNormalizedIds.length,\n hasSelection: currentNormalizedIds.length > 0,\n isSelected: (id: string) => selectedIdSet.has(id),\n select,\n toggle,\n clear,\n };\n }, [clear, currentNormalizedIds, resolvedDisabled, resolvedMode, select, selectedIdSet, toggle]);\n\n return <SelectionContext.Provider value={value}>{children}</SelectionContext.Provider>;\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { InteractionPolicy } from '@ankhorage/surface';
|
|
1
2
|
import type React from 'react';
|
|
2
3
|
export type SelectionMode = 'single' | 'multi';
|
|
3
4
|
export type SelectionTrigger = 'press' | 'longPress' | 'manual';
|
|
@@ -8,6 +9,7 @@ export interface SelectionProviderProps {
|
|
|
8
9
|
mode?: SelectionMode;
|
|
9
10
|
disabled?: boolean;
|
|
10
11
|
onSelectionChange?: (ids: readonly string[]) => void;
|
|
12
|
+
interactionPolicy?: InteractionPolicy;
|
|
11
13
|
}
|
|
12
14
|
export interface UseSelectionResult {
|
|
13
15
|
mode: SelectionMode;
|
|
@@ -33,6 +35,7 @@ export interface SelectableItemProps {
|
|
|
33
35
|
id: string;
|
|
34
36
|
trigger?: SelectionTrigger;
|
|
35
37
|
disabled?: boolean;
|
|
38
|
+
interactionPolicy?: InteractionPolicy;
|
|
36
39
|
children: React.ReactNode | ((state: SelectableItemState) => React.ReactNode);
|
|
37
40
|
}
|
|
38
41
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/selection/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/selection/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;IACrD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;CAC/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/selection/types.ts"],"names":[],"mappings":"","sourcesContent":["import type React from 'react';\n\nexport type SelectionMode = 'single' | 'multi';\n\nexport type SelectionTrigger = 'press' | 'longPress' | 'manual';\n\nexport interface SelectionProviderProps {\n children: React.ReactNode;\n selectedIds?: readonly string[];\n defaultSelectedIds?: readonly string[];\n mode?: SelectionMode;\n disabled?: boolean;\n onSelectionChange?: (ids: readonly string[]) => void;\n}\n\nexport interface UseSelectionResult {\n mode: SelectionMode;\n disabled: boolean;\n selectedIds: readonly string[];\n selectedCount: number;\n hasSelection: boolean;\n isSelected: (id: string) => boolean;\n select: (id: string) => void;\n toggle: (id: string) => void;\n clear: () => void;\n}\n\nexport interface SelectableItemState {\n id: string;\n selected: boolean;\n disabled: boolean;\n mode: SelectionMode;\n select: () => void;\n toggle: () => void;\n clear: () => void;\n}\n\nexport interface SelectableItemProps {\n id: string;\n trigger?: SelectionTrigger;\n disabled?: boolean;\n children: React.ReactNode | ((state: SelectableItemState) => React.ReactNode);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/patterns/selection/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { InteractionPolicy } from '@ankhorage/surface';\nimport type React from 'react';\n\nexport type SelectionMode = 'single' | 'multi';\n\nexport type SelectionTrigger = 'press' | 'longPress' | 'manual';\n\nexport interface SelectionProviderProps {\n children: React.ReactNode;\n selectedIds?: readonly string[];\n defaultSelectedIds?: readonly string[];\n mode?: SelectionMode;\n disabled?: boolean;\n onSelectionChange?: (ids: readonly string[]) => void;\n interactionPolicy?: InteractionPolicy;\n}\n\nexport interface UseSelectionResult {\n mode: SelectionMode;\n disabled: boolean;\n selectedIds: readonly string[];\n selectedCount: number;\n hasSelection: boolean;\n isSelected: (id: string) => boolean;\n select: (id: string) => void;\n toggle: (id: string) => void;\n clear: () => void;\n}\n\nexport interface SelectableItemState {\n id: string;\n selected: boolean;\n disabled: boolean;\n mode: SelectionMode;\n select: () => void;\n toggle: () => void;\n clear: () => void;\n}\n\nexport interface SelectableItemProps {\n id: string;\n trigger?: SelectionTrigger;\n disabled?: boolean;\n interactionPolicy?: InteractionPolicy;\n children: React.ReactNode | ((state: SelectableItemState) => React.ReactNode);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsRow.d.ts","sourceRoot":"","sources":["../../../src/patterns/settings-row/SettingsRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingsRow.d.ts","sourceRoot":"","sources":["../../../src/patterns/settings-row/SettingsRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAyChD;;;;GAIG;AACH,eAAO,MAAM,WAAW,wDAAuC,CAAC"}
|
|
@@ -3,11 +3,11 @@ import { Card } from '../../components/card';
|
|
|
3
3
|
import { Text } from '../../components/text';
|
|
4
4
|
import { Box } from '../../foundation';
|
|
5
5
|
import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
|
|
6
|
-
function SettingsRowInner({ themeId: _themeId, mode: _mode, title, description, meta, control, onPress, disabled = false, testID, }) {
|
|
6
|
+
function SettingsRowInner({ themeId: _themeId, mode: _mode, title, description, meta, control, onPress, disabled = false, testID, interactionPolicy, }) {
|
|
7
|
+
const isInteractive = Boolean(onPress) && !control;
|
|
7
8
|
// Prevent nested interactive elements:
|
|
8
9
|
// If a control is present (likely contains buttons), the row itself must not be clickable
|
|
9
|
-
|
|
10
|
-
return (<Card compact actions={control} description={description} disabled={disabled} onPress={isInteractive ? onPress : undefined} testID={testID} title={title} tone="subtle">
|
|
10
|
+
return (<Card compact actions={control} description={description} disabled={disabled} interactionPolicy={interactionPolicy} onPress={isInteractive ? onPress : undefined} testID={testID} title={title} tone="subtle">
|
|
11
11
|
{meta ? (<Box pt="xs">
|
|
12
12
|
<Text emphasis="muted" variant="caption">
|
|
13
13
|
{meta}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsRow.js","sourceRoot":"","sources":["../../../src/patterns/settings-row/SettingsRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,gBAAgB,CAAC,EACxB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"SettingsRow.js","sourceRoot":"","sources":["../../../src/patterns/settings-row/SettingsRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,gBAAgB,CAAC,EACxB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,MAAM,EACN,iBAAiB,GACA;IACjB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;IAEnD,uCAAuC;IACvC,0FAA0F;IAC1F,OAAO,CACL,CAAC,IAAI,CACH,OAAO,CACP,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAC7C,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,IAAI,CAAC,QAAQ,CAEb;MAAA,CAAC,IAAI,CAAC,CAAC,CAAC,CACN,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CACV;UAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CACtC;YAAA,CAAC,IAAI,CACP;UAAA,EAAE,IAAI,CACR;QAAA,EAAE,GAAG,CAAC,CACP,CAAC,CAAC,CAAC,IAAI,CACV;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { Card } from '../../components/card';\nimport { Text } from '../../components/text';\nimport { Box } from '../../foundation';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { SettingsRowProps } from './types';\n\nfunction SettingsRowInner({\n themeId: _themeId,\n mode: _mode,\n title,\n description,\n meta,\n control,\n onPress,\n disabled = false,\n testID,\n interactionPolicy,\n}: SettingsRowProps) {\n const isInteractive = Boolean(onPress) && !control;\n\n // Prevent nested interactive elements:\n // If a control is present (likely contains buttons), the row itself must not be clickable\n return (\n <Card\n compact\n actions={control}\n description={description}\n disabled={disabled}\n interactionPolicy={interactionPolicy}\n onPress={isInteractive ? onPress : undefined}\n testID={testID}\n title={title}\n tone=\"subtle\"\n >\n {meta ? (\n <Box pt=\"xs\">\n <Text emphasis=\"muted\" variant=\"caption\">\n {meta}\n </Text>\n </Box>\n ) : null}\n </Card>\n );\n}\n\n/***\n * Settings row pattern with title, description/meta, and optional trailing content.\n *\n \n */\nexport const SettingsRow = withZoraThemeScope(SettingsRowInner);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitchField.d.ts","sourceRoot":"","sources":["../../../src/patterns/switch-field/SwitchField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"SwitchField.d.ts","sourceRoot":"","sources":["../../../src/patterns/switch-field/SwitchField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AA+BhD;;;;GAIG;AACH,eAAO,MAAM,WAAW,wDAAuC,CAAC"}
|
|
@@ -2,8 +2,8 @@ import { Switch } from '@ankhorage/surface';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
|
|
4
4
|
import { SettingsRow } from '../settings-row';
|
|
5
|
-
function SwitchFieldInner({ themeId: _themeId, mode: _mode, label, description, value, onValueChange, disabled, testID, }) {
|
|
6
|
-
return (<SettingsRow title={label} description={description} disabled={disabled} testID={testID} control={<Switch checked={value}
|
|
5
|
+
function SwitchFieldInner({ themeId: _themeId, mode: _mode, label, description, value, onValueChange, disabled, testID, interactionPolicy, }) {
|
|
6
|
+
return (<SettingsRow title={label} description={description} disabled={disabled} testID={testID} control={<Switch checked={value} disabled={disabled} interactionPolicy={interactionPolicy} onCheckedChange={onValueChange}/>}/>);
|
|
7
7
|
}
|
|
8
8
|
/***
|
|
9
9
|
* Labeled switch field pattern built on `SettingsRow`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitchField.js","sourceRoot":"","sources":["../../../src/patterns/switch-field/SwitchField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,SAAS,gBAAgB,CAAC,EACxB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,KAAK,EACL,WAAW,EACX,KAAK,EACL,aAAa,EACb,QAAQ,EACR,MAAM,
|
|
1
|
+
{"version":3,"file":"SwitchField.js","sourceRoot":"","sources":["../../../src/patterns/switch-field/SwitchField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,SAAS,gBAAgB,CAAC,EACxB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,KAAK,EACL,WAAW,EACX,KAAK,EACL,aAAa,EACb,QAAQ,EACR,MAAM,EACN,iBAAiB,GACA;IACjB,OAAO,CACL,CAAC,WAAW,CACV,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,OAAO,CAAC,CACN,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,KAAK,CAAC,CACf,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,eAAe,CAAC,CAAC,aAAa,CAAC,EAEnC,CAAC,EACD,CACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC","sourcesContent":["import { Switch } from '@ankhorage/surface';\nimport React from 'react';\n\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { SettingsRow } from '../settings-row';\nimport type { SwitchFieldProps } from './types';\n\nfunction SwitchFieldInner({\n themeId: _themeId,\n mode: _mode,\n label,\n description,\n value,\n onValueChange,\n disabled,\n testID,\n interactionPolicy,\n}: SwitchFieldProps) {\n return (\n <SettingsRow\n title={label}\n description={description}\n disabled={disabled}\n testID={testID}\n control={\n <Switch\n checked={value}\n disabled={disabled}\n interactionPolicy={interactionPolicy}\n onCheckedChange={onValueChange}\n />\n }\n />\n );\n}\n\n/***\n * Labeled switch field pattern built on `SettingsRow`.\n *\n \n */\nexport const SwitchField = withZoraThemeScope(SwitchFieldInner);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileGrid.d.ts","sourceRoot":"","sources":["../../../src/patterns/tile-grid/TileGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"TileGrid.d.ts","sourceRoot":"","sources":["../../../src/patterns/tile-grid/TileGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA6C7C;;;;GAIG;AACH,eAAO,MAAM,QAAQ,qDAAoC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Box } from '../../foundation';
|
|
3
3
|
import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
|
|
4
|
-
function TileGridInner({ themeId: _themeId, mode: _mode, children, columns = 'responsive', compact = false, testID, }) {
|
|
4
|
+
function TileGridInner({ themeId: _themeId, mode: _mode, interactionPolicy: _interactionPolicy, children, columns = 'responsive', compact = false, testID, }) {
|
|
5
5
|
return (<Box testID={testID} style={{
|
|
6
6
|
flexDirection: 'row',
|
|
7
7
|
flexWrap: 'wrap',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileGrid.js","sourceRoot":"","sources":["../../../src/patterns/tile-grid/TileGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,aAAa,CAAC,EACrB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,QAAQ,EACR,OAAO,GAAG,YAAY,EACtB,OAAO,GAAG,KAAK,EACf,MAAM,GACQ;IACd,OAAO,CACL,CAAC,GAAG,CACF,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC;YACL,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,MAAM;YAChB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;SACtB,CAAC,CAEF;MAAA,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAExB,OAAO,CACL,CAAC,GAAG,CACF,KAAK,CAAC,CACJ,OAAO,KAAK,YAAY;oBACtB,CAAC,CAAC;wBACE,SAAS,EAAE,KAAK;wBAChB,QAAQ,EAAE,CAAC;wBACX,QAAQ,EAAE,GAAG;qBACd;oBACH,CAAC,CAAC;wBACE,KAAK,EAAE,GAAG,GAAG,GAAG,OAAO,GAAG;qBAElC,CAAC,CAED;YAAA,CAAC,KAAK,CACR;UAAA,EAAE,GAAG,CAAC,CACP,CAAC;QACJ,CAAC,CAAC,CACJ;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { Box } from '../../foundation';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { TileGridProps } from './types';\n\nfunction TileGridInner({\n themeId: _themeId,\n mode: _mode,\n children,\n columns = 'responsive',\n compact = false,\n testID,\n}: TileGridProps) {\n return (\n <Box\n testID={testID}\n style={{\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: compact ? 8 : 16,\n }}\n >\n {React.Children.map(children, (child) => {\n if (!child) return null;\n\n return (\n <Box\n style={\n columns === 'responsive'\n ? {\n flexBasis: '30%',\n flexGrow: 1,\n minWidth: 120,\n }\n : {\n width: `${100 / columns}%`,\n }\n }\n >\n {child}\n </Box>\n );\n })}\n </Box>\n );\n}\n\n/***\n * Responsive grid layout for arranging tile content.\n *\n \n */\nexport const TileGrid = withZoraThemeScope(TileGridInner);\n"]}
|
|
1
|
+
{"version":3,"file":"TileGrid.js","sourceRoot":"","sources":["../../../src/patterns/tile-grid/TileGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,aAAa,CAAC,EACrB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,kBAAkB,EACrC,QAAQ,EACR,OAAO,GAAG,YAAY,EACtB,OAAO,GAAG,KAAK,EACf,MAAM,GACQ;IACd,OAAO,CACL,CAAC,GAAG,CACF,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC;YACL,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,MAAM;YAChB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;SACtB,CAAC,CAEF;MAAA,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAExB,OAAO,CACL,CAAC,GAAG,CACF,KAAK,CAAC,CACJ,OAAO,KAAK,YAAY;oBACtB,CAAC,CAAC;wBACE,SAAS,EAAE,KAAK;wBAChB,QAAQ,EAAE,CAAC;wBACX,QAAQ,EAAE,GAAG;qBACd;oBACH,CAAC,CAAC;wBACE,KAAK,EAAE,GAAG,GAAG,GAAG,OAAO,GAAG;qBAElC,CAAC,CAED;YAAA,CAAC,KAAK,CACR;UAAA,EAAE,GAAG,CAAC,CACP,CAAC;QACJ,CAAC,CAAC,CACJ;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { Box } from '../../foundation';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { TileGridProps } from './types';\n\nfunction TileGridInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy: _interactionPolicy,\n children,\n columns = 'responsive',\n compact = false,\n testID,\n}: TileGridProps) {\n return (\n <Box\n testID={testID}\n style={{\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: compact ? 8 : 16,\n }}\n >\n {React.Children.map(children, (child) => {\n if (!child) return null;\n\n return (\n <Box\n style={\n columns === 'responsive'\n ? {\n flexBasis: '30%',\n flexGrow: 1,\n minWidth: 120,\n }\n : {\n width: `${100 / columns}%`,\n }\n }\n >\n {child}\n </Box>\n );\n })}\n </Box>\n );\n}\n\n/***\n * Responsive grid layout for arranging tile content.\n *\n \n */\nexport const TileGrid = withZoraThemeScope(TileGridInner);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timeline.d.ts","sourceRoot":"","sources":["../../../src/patterns/timeline/Timeline.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Timeline.d.ts","sourceRoot":"","sources":["../../../src/patterns/timeline/Timeline.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,SAAS,CAAC;AAwG3D;;;;GAIG;AACH,eAAO,MAAM,QAAQ,qDAAoC,CAAC"}
|
|
@@ -31,7 +31,7 @@ function resolveRoleSemantics(theme, color) {
|
|
|
31
31
|
return theme.semantics.action.neutral;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
function TimelineInner({ themeId: _themeId, mode: _mode, testID, items, compact = false, }) {
|
|
34
|
+
function TimelineInner({ themeId: _themeId, mode: _mode, interactionPolicy: _interactionPolicy, testID, items, compact = false, }) {
|
|
35
35
|
const { theme } = useZoraTheme();
|
|
36
36
|
const gap = compact ? 'm' : 'l';
|
|
37
37
|
const connectorHeight = compact ? 20 : 36;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timeline.js","sourceRoot":"","sources":["../../../src/patterns/timeline/Timeline.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,oBAAoB,CAAC,KAAmB,EAAE,KAAgB;IACjE,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;QACnC,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;QAChC,KAAK,YAAY;YACf,OAAO,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;QACnC,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;QAC/B,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;QAC9B,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QACxC,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;QACjC,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;QACjC,KAAK,SAAS,CAAC;QACf;YACE,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,MAAM,EACN,KAAK,EACL,OAAO,GAAG,KAAK,GACD;IACd,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAChC,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1C,MAAM,UAAU,GAAG,CAAC,IAAkB,EAAE,KAAa,EAAE,EAAE;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC;QACxC,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAEpD,OAAO,CACL,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CACjF;QAAA,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACjE;UAAA,CAAC,GAAG,CACF,EAAE,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CACzE,WAAW,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChF,WAAW,CAAC,CAAC,CAAC,CAAC,CACf,MAAM,CAAC,CAAC,EAAE,CAAC,CACX,MAAM,CAAC,MAAM,CACb,KAAK,CAAC,CAAC,EAAE,CAAC,CACV,KAAK,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAE1D;YAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,CAAC,IAAI,CACH,KAAK,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACxE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CACrB,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC7B,IAAI,CAAC,CAAC,QAAQ,CAAC,EACf,CACH,CAAC,CAAC,CAAC,IAAI,CACV;UAAA,EAAE,GAAG,CAEL;;UAAA,CAAC,aAAa,CAAC,CAAC,CAAC,CACf,CAAC,GAAG,CACF,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CACpC,MAAM,CAAC,CAAC,eAAe,CAAC,CACxB,MAAM,CAAC,MAAM,CACb,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EACpB,CACH,CAAC,CAAC,CAAC,IAAI,CACV;QAAA,EAAE,KAAK,CAEP;;QAAA,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CACtC;UAAA,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CACpE;YAAA,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CACtD;YAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CACtC;gBAAA,CAAC,IAAI,CAAC,IAAI,CACZ;cAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,IAAI,CACV;UAAA,EAAE,MAAM,CACR;UAAA,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAClB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CACxC;cAAA,CAAC,IAAI,CAAC,WAAW,CACnB;YAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,IAAI,CACV;QAAA,EAAE,KAAK,CACT;MAAA,EAAE,MAAM,CAAC,CACV,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC9B;MAAA,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACxB;IAAA,EAAE,KAAK,CAAC,CACT,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC","sourcesContent":["import type { RoleSemantics, SurfaceTheme } from '@ankhorage/surface';\nimport React from 'react';\n\nimport { Heading } from '../../components/heading';\nimport { Icon } from '../../components/icon';\nimport { Text } from '../../components/text';\nimport { Box, Inline, Stack } from '../../foundation';\nimport type { ZoraColor } from '../../internal/recipes';\nimport { resolveIconSize } from '../../internal/recipes';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { TimelineItem, TimelineProps } from './types';\n\nfunction resolveRoleSemantics(theme: SurfaceTheme, color: ZoraColor): RoleSemantics {\n switch (color) {\n case 'secondary':\n return theme.semantics.secondary;\n case 'tertiary':\n return theme.semantics.accent;\n case 'quaternary':\n return theme.semantics.highlight;\n case 'error':\n return theme.semantics.error;\n case 'info':\n return theme.semantics.info;\n case 'primary':\n return theme.semantics.action.primary;\n case 'danger':\n return theme.semantics.action.danger;\n case 'success':\n return theme.semantics.success;\n case 'warning':\n return theme.semantics.warning;\n case 'neutral':\n default:\n return theme.semantics.action.neutral;\n }\n}\n\nfunction TimelineInner({\n themeId: _themeId,\n mode: _mode,\n testID,\n items,\n compact = false,\n}: TimelineProps) {\n const { theme } = useZoraTheme();\n const gap = compact ? 'm' : 'l';\n const connectorHeight = compact ? 20 : 36;\n\n const renderItem = (item: TimelineItem, index: number) => {\n const status = item.status ?? 'neutral';\n const role = resolveRoleSemantics(theme, status);\n const showConnector = index < items.length - 1;\n const iconSize = Math.max(12, resolveIconSize('s'));\n\n return (\n <Inline key={item.id} align=\"flex-start\" gap=\"m\" testID={item.testID} wrap=\"nowrap\">\n <Stack align=\"center\" flexShrink={0} gap=\"xs\" style={{ width: 24 }}>\n <Box\n bg={status === 'neutral' ? theme.semantics.neutral.surface : role.softBg}\n borderColor={status === 'neutral' ? theme.semantics.neutral.divider : role.base}\n borderWidth={1}\n height={20}\n radius=\"full\"\n width={20}\n style={{ alignItems: 'center', justifyContent: 'center' }}\n >\n {item.icon ? (\n <Icon\n color={status === 'neutral' ? theme.semantics.content.muted : role.base}\n name={item.icon.name}\n provider={item.icon.provider}\n size={iconSize}\n />\n ) : null}\n </Box>\n\n {showConnector ? (\n <Box\n bg={theme.semantics.neutral.divider}\n height={connectorHeight}\n radius=\"full\"\n style={{ width: 2 }}\n />\n ) : null}\n </Stack>\n\n <Stack flex={1} gap=\"xs\" testID={testID}>\n <Inline align=\"flex-start\" gap=\"s\" justify=\"space-between\" wrap=\"wrap\">\n <Heading level={compact ? 4 : 3}>{item.title}</Heading>\n {item.meta ? (\n <Text emphasis=\"muted\" variant=\"caption\">\n {item.meta}\n </Text>\n ) : null}\n </Inline>\n {item.description ? (\n <Text emphasis=\"muted\" variant=\"bodySmall\">\n {item.description}\n </Text>\n ) : null}\n </Stack>\n </Inline>\n );\n };\n\n return (\n <Stack gap={gap} testID={testID}>\n {items.map(renderItem)}\n </Stack>\n );\n}\n\n/***\n * Timeline pattern for displaying a sequence of events.\n *\n \n */\nexport const Timeline = withZoraThemeScope(TimelineInner);\n"]}
|
|
1
|
+
{"version":3,"file":"Timeline.js","sourceRoot":"","sources":["../../../src/patterns/timeline/Timeline.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { RoleSemantics, SurfaceTheme } from '@ankhorage/surface';\nimport React from 'react';\n\nimport { Heading } from '../../components/heading';\nimport { Icon } from '../../components/icon';\nimport { Text } from '../../components/text';\nimport { Box, Inline, Stack } from '../../foundation';\nimport type { ZoraColor } from '../../internal/recipes';\nimport { resolveIconSize } from '../../internal/recipes';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { TimelineItem, TimelineProps } from './types';\n\nfunction resolveRoleSemantics(theme: SurfaceTheme, color: ZoraColor): RoleSemantics {\n switch (color) {\n case 'secondary':\n return theme.semantics.secondary;\n case 'tertiary':\n return theme.semantics.accent;\n case 'quaternary':\n return theme.semantics.highlight;\n case 'error':\n return theme.semantics.error;\n case 'info':\n return theme.semantics.info;\n case 'primary':\n return theme.semantics.action.primary;\n case 'danger':\n return theme.semantics.action.danger;\n case 'success':\n return theme.semantics.success;\n case 'warning':\n return theme.semantics.warning;\n case 'neutral':\n default:\n return theme.semantics.action.neutral;\n }\n}\n\nfunction TimelineInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy: _interactionPolicy,\n testID,\n items,\n compact = false,\n}: TimelineProps) {\n const { theme } = useZoraTheme();\n const gap = compact ? 'm' : 'l';\n const connectorHeight = compact ? 20 : 36;\n\n const renderItem = (item: TimelineItem, index: number) => {\n const status = item.status ?? 'neutral';\n const role = resolveRoleSemantics(theme, status);\n const showConnector = index < items.length - 1;\n const iconSize = Math.max(12, resolveIconSize('s'));\n\n return (\n <Inline key={item.id} align=\"flex-start\" gap=\"m\" testID={item.testID} wrap=\"nowrap\">\n <Stack align=\"center\" flexShrink={0} gap=\"xs\" style={{ width: 24 }}>\n <Box\n bg={status === 'neutral' ? theme.semantics.neutral.surface : role.softBg}\n borderColor={status === 'neutral' ? theme.semantics.neutral.divider : role.base}\n borderWidth={1}\n height={20}\n radius=\"full\"\n width={20}\n style={{ alignItems: 'center', justifyContent: 'center' }}\n >\n {item.icon ? (\n <Icon\n color={status === 'neutral' ? theme.semantics.content.muted : role.base}\n name={item.icon.name}\n provider={item.icon.provider}\n size={iconSize}\n />\n ) : null}\n </Box>\n\n {showConnector ? (\n <Box\n bg={theme.semantics.neutral.divider}\n height={connectorHeight}\n radius=\"full\"\n style={{ width: 2 }}\n />\n ) : null}\n </Stack>\n\n <Stack flex={1} gap=\"xs\" testID={testID}>\n <Inline align=\"flex-start\" gap=\"s\" justify=\"space-between\" wrap=\"wrap\">\n <Heading level={compact ? 4 : 3}>{item.title}</Heading>\n {item.meta ? (\n <Text emphasis=\"muted\" variant=\"caption\">\n {item.meta}\n </Text>\n ) : null}\n </Inline>\n {item.description ? (\n <Text emphasis=\"muted\" variant=\"bodySmall\">\n {item.description}\n </Text>\n ) : null}\n </Stack>\n </Inline>\n );\n };\n\n return (\n <Stack gap={gap} testID={testID}>\n {items.map(renderItem)}\n </Stack>\n );\n}\n\n/***\n * Timeline pattern for displaying a sequence of events.\n *\n \n */\nexport const Timeline = withZoraThemeScope(TimelineInner);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeItem.d.ts","sourceRoot":"","sources":["../../../src/patterns/tree-view/TreeItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEjE,UAAU,aAAa,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa;IACxE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,WAAW,EAAE,SAAS,GAAG,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7B,cAAc,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;CACnE;
|
|
1
|
+
{"version":3,"file":"TreeItem.d.ts","sourceRoot":"","sources":["../../../src/patterns/tree-view/TreeItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEjE,UAAU,aAAa,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa;IACxE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,WAAW,EAAE,SAAS,GAAG,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7B,cAAc,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;CACnE;AA8ED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAjFE,GAAG,SAAS,MAAM,kEAiFgB,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { IconButton } from '../../components/icon-button';
|
|
|
3
3
|
import { Box, Stack } from '../../foundation';
|
|
4
4
|
import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
|
|
5
5
|
import { SettingsRow } from '../settings-row';
|
|
6
|
-
function TreeItemInner({ themeId: _themeId, mode: _mode, node, depth, selectedId, expandedIds, onSelect, onToggleExpand, renderItem, testID, }) {
|
|
6
|
+
function TreeItemInner({ themeId: _themeId, mode: _mode, node, depth, selectedId, expandedIds, onSelect, onToggleExpand, renderItem, testID, interactionPolicy, }) {
|
|
7
7
|
const hasChildren = node.children !== undefined && node.children.length > 0;
|
|
8
8
|
const isExpanded = expandedIds.includes(node.id);
|
|
9
9
|
const isSelected = selectedId === node.id;
|
|
@@ -19,13 +19,13 @@ function TreeItemInner({ themeId: _themeId, mode: _mode, node, depth, selectedId
|
|
|
19
19
|
}
|
|
20
20
|
return (<SettingsRow title={node.label} control={<Stack direction="row" gap="xs" align="center">
|
|
21
21
|
{node.actions}
|
|
22
|
-
{hasChildren ? (<IconButton icon={{ name: isExpanded ? 'chevron-down-outline' : 'chevron-forward-outline' }} label={isExpanded ? 'Collapse' : 'Expand'} onPress={() => onToggleExpand(node.id)} size="s" variant="ghost"/>) : null}
|
|
22
|
+
{hasChildren ? (<IconButton icon={{ name: isExpanded ? 'chevron-down-outline' : 'chevron-forward-outline' }} interactionPolicy={interactionPolicy} label={isExpanded ? 'Collapse' : 'Expand'} onPress={() => onToggleExpand(node.id)} size="s" variant="ghost"/>) : null}
|
|
23
23
|
</Stack>} meta={node.meta} disabled={node.disabled}/>);
|
|
24
24
|
};
|
|
25
25
|
return (<Box testID={testID}>
|
|
26
26
|
<Box style={{ paddingLeft: depth * 16 }}>{renderContent()}</Box>
|
|
27
27
|
{hasChildren && isExpanded ? (<Box>
|
|
28
|
-
{node.children?.map((child) => (<TreeItem key={child.id} depth={depth + 1} expandedIds={expandedIds} node={child} onSelect={onSelect} onToggleExpand={onToggleExpand} renderItem={renderItem} selectedId={selectedId}/>))}
|
|
28
|
+
{node.children?.map((child) => (<TreeItem key={child.id} depth={depth + 1} expandedIds={expandedIds} interactionPolicy={interactionPolicy} node={child} onSelect={onSelect} onToggleExpand={onToggleExpand} renderItem={renderItem} selectedId={selectedId}/>))}
|
|
29
29
|
</Box>) : null}
|
|
30
30
|
</Box>);
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeItem.js","sourceRoot":"","sources":["../../../src/patterns/tree-view/TreeItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAa9C,SAAS,aAAa,CAA8B,EAClD,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,IAAI,EACJ,KAAK,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,cAAc,EACd,UAAU,EACV,MAAM,
|
|
1
|
+
{"version":3,"file":"TreeItem.js","sourceRoot":"","sources":["../../../src/patterns/tree-view/TreeItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAa9C,SAAS,aAAa,CAA8B,EAClD,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,IAAI,EACJ,KAAK,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,cAAc,EACd,UAAU,EACV,MAAM,EACN,iBAAiB,GACE;IACnB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,UAAU,KAAK,IAAI,CAAC,EAAE,CAAC;IAE1C,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC;gBAChB,IAAI;gBACJ,KAAK;gBACL,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,UAAU;gBACpB,WAAW;aACZ,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CACL,CAAC,WAAW,CACV,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAClB,OAAO,CAAC,CACN,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC5C;YAAA,CAAC,IAAI,CAAC,OAAO,CACb;YAAA,CAAC,WAAW,CAAC,CAAC,CAAC,CACb,CAAC,UAAU,CACT,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAChF,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC1C,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CACvC,IAAI,CAAC,GAAG,CACR,OAAO,CAAC,OAAO,EACf,CACH,CAAC,CAAC,CAAC,IAAI,CACV;UAAA,EAAE,KAAK,CACT,CAAC,CACD,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChB,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxB,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAClB;MAAA,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,CAC/D;MAAA,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC,CAAC,CAC3B,CAAC,GAAG,CACF;UAAA,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC7B,CAAC,QAAQ,CACP,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CACd,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CACjB,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,IAAI,CAAC,CAAC,KAAK,CAAC,CACZ,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,cAAc,CAAC,CAAC,cAAc,CAAC,CAC/B,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,UAAU,CAAC,CAAC,UAAU,CAAC,EACvB,CACH,CAAC,CACJ;QAAA,EAAE,GAAG,CAAC,CACP,CAAC,CAAC,CAAC,IAAI,CACV;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { IconButton } from '../../components/icon-button';\nimport { Box, Stack } from '../../foundation';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { ZoraBaseProps } from '../../theme/ZoraBaseProps';\nimport { SettingsRow } from '../settings-row';\nimport type { TreeItemNode, TreeItemRenderProps } from './types';\n\ninterface TreeItemProps<TId extends string = string> extends ZoraBaseProps {\n node: TreeItemNode<TId>;\n depth: number;\n selectedId?: TId;\n expandedIds: readonly TId[];\n onSelect?: (id: TId) => void;\n onToggleExpand: (id: TId) => void;\n renderItem?: (props: TreeItemRenderProps<TId>) => React.ReactNode;\n}\n\nfunction TreeItemInner<TId extends string = string>({\n themeId: _themeId,\n mode: _mode,\n node,\n depth,\n selectedId,\n expandedIds,\n onSelect,\n onToggleExpand,\n renderItem,\n testID,\n interactionPolicy,\n}: TreeItemProps<TId>) {\n const hasChildren = node.children !== undefined && node.children.length > 0;\n const isExpanded = expandedIds.includes(node.id);\n const isSelected = selectedId === node.id;\n\n const renderContent = () => {\n if (renderItem) {\n return renderItem({\n node,\n depth,\n selected: isSelected,\n expanded: isExpanded,\n hasChildren,\n });\n }\n\n return (\n <SettingsRow\n title={node.label}\n control={\n <Stack direction=\"row\" gap=\"xs\" align=\"center\">\n {node.actions}\n {hasChildren ? (\n <IconButton\n icon={{ name: isExpanded ? 'chevron-down-outline' : 'chevron-forward-outline' }}\n interactionPolicy={interactionPolicy}\n label={isExpanded ? 'Collapse' : 'Expand'}\n onPress={() => onToggleExpand(node.id)}\n size=\"s\"\n variant=\"ghost\"\n />\n ) : null}\n </Stack>\n }\n meta={node.meta}\n disabled={node.disabled}\n />\n );\n };\n\n return (\n <Box testID={testID}>\n <Box style={{ paddingLeft: depth * 16 }}>{renderContent()}</Box>\n {hasChildren && isExpanded ? (\n <Box>\n {node.children?.map((child) => (\n <TreeItem\n key={child.id}\n depth={depth + 1}\n expandedIds={expandedIds}\n interactionPolicy={interactionPolicy}\n node={child}\n onSelect={onSelect}\n onToggleExpand={onToggleExpand}\n renderItem={renderItem}\n selectedId={selectedId}\n />\n ))}\n </Box>\n ) : null}\n </Box>\n );\n}\n\n/***\n * Single tree node row used within `TreeView`.\n *\n \n */\nexport const TreeItem = withZoraThemeScope(TreeItemInner);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../../src/patterns/tree-view/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../../src/patterns/tree-view/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAoD7C;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAvDE,GAAG,SAAS,MAAM,kEAuDgB,CAAC"}
|
|
@@ -2,11 +2,13 @@ import React from 'react';
|
|
|
2
2
|
import { Stack } from '../../foundation';
|
|
3
3
|
import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
|
|
4
4
|
import { TreeItem } from './TreeItem';
|
|
5
|
-
function TreeViewInner({ themeId: _themeId, mode: _mode, nodes, selectedId, expandedIds: controlledExpandedIds, defaultExpandedIds, onSelect, onExpandedChange, renderItem, testID, }) {
|
|
5
|
+
function TreeViewInner({ themeId: _themeId, mode: _mode, nodes, selectedId, expandedIds: controlledExpandedIds, defaultExpandedIds, onSelect, onExpandedChange, renderItem, testID, interactionPolicy, }) {
|
|
6
6
|
const [internalExpandedIds, setInternalExpandedIds] = React.useState(defaultExpandedIds ?? []);
|
|
7
7
|
const isControlled = controlledExpandedIds !== undefined;
|
|
8
8
|
const expandedIds = isControlled ? controlledExpandedIds : internalExpandedIds;
|
|
9
9
|
const handleToggleExpand = (id) => {
|
|
10
|
+
if (interactionPolicy === 'passive')
|
|
11
|
+
return;
|
|
10
12
|
const isExpanded = expandedIds.includes(id);
|
|
11
13
|
const newIds = isExpanded ? expandedIds.filter((eid) => eid !== id) : [...expandedIds, id];
|
|
12
14
|
if (!isControlled) {
|
|
@@ -15,7 +17,7 @@ function TreeViewInner({ themeId: _themeId, mode: _mode, nodes, selectedId, expa
|
|
|
15
17
|
onExpandedChange?.(newIds);
|
|
16
18
|
};
|
|
17
19
|
return (<Stack gap="none" testID={testID}>
|
|
18
|
-
{nodes.map((node) => (<TreeItem key={node.id} depth={0} expandedIds={expandedIds} node={node} onSelect={onSelect} onToggleExpand={handleToggleExpand} renderItem={renderItem} selectedId={selectedId}/>))}
|
|
20
|
+
{nodes.map((node) => (<TreeItem key={node.id} depth={0} expandedIds={expandedIds} node={node} onSelect={onSelect} onToggleExpand={handleToggleExpand} renderItem={renderItem} selectedId={selectedId} interactionPolicy={interactionPolicy}/>))}
|
|
19
21
|
</Stack>);
|
|
20
22
|
}
|
|
21
23
|
/***
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeView.js","sourceRoot":"","sources":["../../../src/patterns/tree-view/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,SAAS,aAAa,CAA8B,EAClD,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,KAAK,EACL,UAAU,EACV,WAAW,EAAE,qBAAqB,EAClC,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,MAAM,
|
|
1
|
+
{"version":3,"file":"TreeView.js","sourceRoot":"","sources":["../../../src/patterns/tree-view/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,SAAS,aAAa,CAA8B,EAClD,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,KAAK,EACL,UAAU,EACV,WAAW,EAAE,qBAAqB,EAClC,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,MAAM,EACN,iBAAiB,GACE;IACnB,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAClE,kBAAkB,IAAI,EAAE,CACzB,CAAC;IAEF,MAAM,YAAY,GAAG,qBAAqB,KAAK,SAAS,CAAC;IACzD,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAE/E,MAAM,kBAAkB,GAAG,CAAC,EAAO,EAAE,EAAE;QACrC,IAAI,iBAAiB,KAAK,SAAS;YAAE,OAAO;QAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC;QAE3F,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC/B;MAAA,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,CAAC,QAAQ,CACP,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,KAAK,CAAC,CAAC,CAAC,CAAC,CACT,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,cAAc,CAAC,CAAC,kBAAkB,CAAC,CACnC,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,EACrC,CACH,CAAC,CACJ;IAAA,EAAE,KAAK,CAAC,CACT,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { Stack } from '../../foundation';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { TreeItem } from './TreeItem';\nimport type { TreeViewProps } from './types';\n\nfunction TreeViewInner<TId extends string = string>({\n themeId: _themeId,\n mode: _mode,\n nodes,\n selectedId,\n expandedIds: controlledExpandedIds,\n defaultExpandedIds,\n onSelect,\n onExpandedChange,\n renderItem,\n testID,\n interactionPolicy,\n}: TreeViewProps<TId>) {\n const [internalExpandedIds, setInternalExpandedIds] = React.useState<readonly TId[]>(\n defaultExpandedIds ?? [],\n );\n\n const isControlled = controlledExpandedIds !== undefined;\n const expandedIds = isControlled ? controlledExpandedIds : internalExpandedIds;\n\n const handleToggleExpand = (id: TId) => {\n if (interactionPolicy === 'passive') return;\n const isExpanded = expandedIds.includes(id);\n const newIds = isExpanded ? expandedIds.filter((eid) => eid !== id) : [...expandedIds, id];\n\n if (!isControlled) {\n setInternalExpandedIds(newIds);\n }\n onExpandedChange?.(newIds);\n };\n\n return (\n <Stack gap=\"none\" testID={testID}>\n {nodes.map((node) => (\n <TreeItem\n key={node.id}\n depth={0}\n expandedIds={expandedIds}\n node={node}\n onSelect={onSelect}\n onToggleExpand={handleToggleExpand}\n renderItem={renderItem}\n selectedId={selectedId}\n interactionPolicy={interactionPolicy}\n />\n ))}\n </Stack>\n );\n}\n\n/***\n * Tree view pattern for hierarchical navigation and expandable lists.\n *\n \n */\nexport const TreeView = withZoraThemeScope(TreeViewInner);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZoraDrawerContent.d.ts","sourceRoot":"","sources":["../../../src/patterns/zora-drawer-content/ZoraDrawerContent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ZoraDrawerContent.d.ts","sourceRoot":"","sources":["../../../src/patterns/zora-drawer-content/ZoraDrawerContent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AA8CtD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,8DAA6C,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { DrawerNavigation as SurfaceDrawerNavigation } from '@ankhorage/surface'
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { createDrawerItemPressHandler, resolveNavigationItems, } from '../../internal/resolveZoraNavigationItems';
|
|
4
4
|
import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
|
|
5
|
-
function ZoraDrawerContentInner({ themeId: _themeId, mode: _mode, state, navigation, descriptors, routeMap, compact = false, header, footer, testID, }) {
|
|
5
|
+
function ZoraDrawerContentInner({ themeId: _themeId, mode: _mode, interactionPolicy, state, navigation, descriptors, routeMap, compact = false, header, footer, testID, }) {
|
|
6
6
|
const resolved = resolveNavigationItems({
|
|
7
7
|
state,
|
|
8
8
|
descriptors,
|
|
@@ -20,7 +20,7 @@ function ZoraDrawerContentInner({ themeId: _themeId, mode: _mode, state, navigat
|
|
|
20
20
|
accessibilityLabel: item.metadata?.accessibilityLabel,
|
|
21
21
|
testID: item.metadata?.testID,
|
|
22
22
|
}));
|
|
23
|
-
return (<SurfaceDrawerNavigation compact={compact} footer={footer} header={header} items={items} testID={testID}/>);
|
|
23
|
+
return (<SurfaceDrawerNavigation compact={compact} footer={footer} header={header} interactionPolicy={interactionPolicy} items={items} testID={testID}/>);
|
|
24
24
|
}
|
|
25
25
|
/***
|
|
26
26
|
* Standard drawer content pattern for ZORA navigation lists.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZoraDrawerContent.js","sourceRoot":"","sources":["../../../src/patterns/zora-drawer-content/ZoraDrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,sBAAsB,CAAC,EAC9B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,KAAK,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,MAAM,EACN,MAAM,EACN,MAAM,GACiB;IACvB,MAAM,QAAQ,GAAG,sBAAsB,CAAC;QACtC,KAAK;QACL,WAAW;QACX,QAAQ;QACR,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;QAClB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI;QACzB,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,4BAA4B,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC3D,kBAAkB,EAAE,IAAI,CAAC,QAAQ,EAAE,kBAAkB;QACrD,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM;KAC9B,CAAC,CAAC,CAAC;IAEJ,OAAO,CACL,CAAC,uBAAuB,CACtB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,MAAM,CAAC,CAAC,MAAM,CAAC,EACf,CACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,CAAC","sourcesContent":["import { DrawerNavigation as SurfaceDrawerNavigation } from '@ankhorage/surface';\nimport React from 'react';\n\nimport {\n createDrawerItemPressHandler,\n resolveNavigationItems,\n} from '../../internal/resolveZoraNavigationItems';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { ZoraDrawerContentProps } from './types';\n\nfunction ZoraDrawerContentInner({\n themeId: _themeId,\n mode: _mode,\n state,\n navigation,\n descriptors,\n routeMap,\n compact = false,\n header,\n footer,\n testID,\n}: ZoraDrawerContentProps) {\n const resolved = resolveNavigationItems({\n state,\n descriptors,\n routeMap,\n kind: 'drawer',\n });\n\n const items = resolved.map((item) => ({\n id: item.route.key,\n label: item.label,\n icon: item.metadata?.icon,\n badge: item.metadata?.badge,\n active: item.active,\n disabled: item.disabled,\n onPress: createDrawerItemPressHandler({ item, navigation }),\n accessibilityLabel: item.metadata?.accessibilityLabel,\n testID: item.metadata?.testID,\n }));\n\n return (\n <SurfaceDrawerNavigation\n compact={compact}\n footer={footer}\n header={header}\n items={items}\n testID={testID}\n />\n );\n}\n\n/***\n * Standard drawer content pattern for ZORA navigation lists.\n *\n \n */\nexport const ZoraDrawerContent = withZoraThemeScope(ZoraDrawerContentInner);\n"]}
|
|
1
|
+
{"version":3,"file":"ZoraDrawerContent.js","sourceRoot":"","sources":["../../../src/patterns/zora-drawer-content/ZoraDrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,sBAAsB,CAAC,EAC9B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,iBAAiB,EACjB,KAAK,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,MAAM,EACN,MAAM,EACN,MAAM,GACiB;IACvB,MAAM,QAAQ,GAAG,sBAAsB,CAAC;QACtC,KAAK;QACL,WAAW;QACX,QAAQ;QACR,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;QAClB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI;QACzB,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,4BAA4B,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC3D,kBAAkB,EAAE,IAAI,CAAC,QAAQ,EAAE,kBAAkB;QACrD,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM;KAC9B,CAAC,CAAC,CAAC;IAEJ,OAAO,CACL,CAAC,uBAAuB,CACtB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,MAAM,CAAC,CAAC,MAAM,CAAC,EACf,CACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,CAAC","sourcesContent":["import { DrawerNavigation as SurfaceDrawerNavigation } from '@ankhorage/surface';\nimport React from 'react';\n\nimport {\n createDrawerItemPressHandler,\n resolveNavigationItems,\n} from '../../internal/resolveZoraNavigationItems';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { ZoraDrawerContentProps } from './types';\n\nfunction ZoraDrawerContentInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy,\n state,\n navigation,\n descriptors,\n routeMap,\n compact = false,\n header,\n footer,\n testID,\n}: ZoraDrawerContentProps) {\n const resolved = resolveNavigationItems({\n state,\n descriptors,\n routeMap,\n kind: 'drawer',\n });\n\n const items = resolved.map((item) => ({\n id: item.route.key,\n label: item.label,\n icon: item.metadata?.icon,\n badge: item.metadata?.badge,\n active: item.active,\n disabled: item.disabled,\n onPress: createDrawerItemPressHandler({ item, navigation }),\n accessibilityLabel: item.metadata?.accessibilityLabel,\n testID: item.metadata?.testID,\n }));\n\n return (\n <SurfaceDrawerNavigation\n compact={compact}\n footer={footer}\n header={header}\n interactionPolicy={interactionPolicy}\n items={items}\n testID={testID}\n />\n );\n}\n\n/***\n * Standard drawer content pattern for ZORA navigation lists.\n *\n \n */\nexport const ZoraDrawerContent = withZoraThemeScope(ZoraDrawerContentInner);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZoraTabBar.d.ts","sourceRoot":"","sources":["../../../src/patterns/zora-tab-bar/ZoraTabBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ZoraTabBar.d.ts","sourceRoot":"","sources":["../../../src/patterns/zora-tab-bar/ZoraTabBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA6I/C;;;;GAIG;AACH,eAAO,MAAM,UAAU,uDAAsC,CAAC"}
|
|
@@ -17,7 +17,7 @@ function resolveAccessibilityLabel(label, explicitLabel) {
|
|
|
17
17
|
}
|
|
18
18
|
return undefined;
|
|
19
19
|
}
|
|
20
|
-
function ZoraTabBarInner({ themeId: _themeId, mode: _mode, state, navigation, descriptors, insets, routeMap, compact = false, chrome = 'raised', testID, }) {
|
|
20
|
+
function ZoraTabBarInner({ themeId: _themeId, mode: _mode, interactionPolicy, state, navigation, descriptors, insets, routeMap, compact = false, chrome = 'raised', testID, }) {
|
|
21
21
|
const { theme } = useZoraTheme();
|
|
22
22
|
const resolved = resolveNavigationItems({
|
|
23
23
|
state,
|
|
@@ -47,7 +47,9 @@ function ZoraTabBarInner({ themeId: _themeId, mode: _mode, state, navigation, de
|
|
|
47
47
|
const backgroundColor = active
|
|
48
48
|
? theme.semantics.action.primary.softBg
|
|
49
49
|
: theme.semantics.surface.default;
|
|
50
|
-
return (<Pressable accessibilityLabel={resolveAccessibilityLabel(item.label, item.metadata?.accessibilityLabel)} accessibilityRole="tab" accessibilityState={{ selected: active, disabled }} disabled={disabled} key={item.route.key} onPress={
|
|
50
|
+
return (<Pressable accessibilityLabel={resolveAccessibilityLabel(item.label, item.metadata?.accessibilityLabel)} accessibilityRole="tab" accessibilityState={{ selected: active, disabled }} disabled={disabled} key={item.route.key} onPress={interactionPolicy === 'passive'
|
|
51
|
+
? undefined
|
|
52
|
+
: createTabBarItemPressHandler({ item, navigation })} style={{
|
|
51
53
|
alignItems: 'center',
|
|
52
54
|
backgroundColor,
|
|
53
55
|
flex: 1,
|
|
@@ -74,7 +76,7 @@ function ZoraTabBarInner({ themeId: _themeId, mode: _mode, state, navigation, de
|
|
|
74
76
|
if (chrome === 'none') {
|
|
75
77
|
return content;
|
|
76
78
|
}
|
|
77
|
-
return (<Surface
|
|
79
|
+
return (<Surface interactionPolicy={interactionPolicy} testID={testID ? `${testID}-chrome` : undefined} variant="raised">
|
|
78
80
|
{content}
|
|
79
81
|
</Surface>);
|
|
80
82
|
}
|