@ankhorage/zora 1.5.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/README.md +125 -123
- package/dist/components/app-bar/AppBar.js +4 -4
- 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 +19 -9
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/types.d.ts +2 -2
- package/dist/components/avatar/types.d.ts.map +1 -1
- package/dist/components/avatar/types.js.map +1 -1
- package/dist/components/avatar-group/AvatarGroup.js +2 -2
- package/dist/components/avatar-group/AvatarGroup.js.map +1 -1
- package/dist/components/avatar-group/types.d.ts +2 -2
- package/dist/components/avatar-group/types.d.ts.map +1 -1
- package/dist/components/avatar-group/types.js.map +1 -1
- package/dist/components/badge/Badge.js +3 -3
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/badge/types.d.ts +4 -4
- package/dist/components/badge/types.d.ts.map +1 -1
- package/dist/components/badge/types.js.map +1 -1
- package/dist/components/button/Button.js +3 -3
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button/meta.d.ts +15 -7
- package/dist/components/button/meta.d.ts.map +1 -1
- package/dist/components/button/meta.js +16 -7
- package/dist/components/button/meta.js.map +1 -1
- package/dist/components/button/types.d.ts +4 -4
- package/dist/components/button/types.d.ts.map +1 -1
- package/dist/components/button/types.js.map +1 -1
- package/dist/components/card/Card.js +2 -2
- package/dist/components/card/Card.js.map +1 -1
- package/dist/components/checkbox/CheckboxGroup.js +5 -5
- package/dist/components/checkbox/CheckboxGroup.js.map +1 -1
- package/dist/components/checkbox/types.d.ts +1 -1
- package/dist/components/checkbox/types.d.ts.map +1 -1
- package/dist/components/checkbox/types.js.map +1 -1
- package/dist/components/chip/Chip.d.ts.map +1 -1
- package/dist/components/chip/Chip.js +9 -10
- package/dist/components/chip/Chip.js.map +1 -1
- package/dist/components/chip/resolveChipColors.d.ts +3 -3
- package/dist/components/chip/resolveChipColors.d.ts.map +1 -1
- package/dist/components/chip/resolveChipColors.js +14 -4
- package/dist/components/chip/resolveChipColors.js.map +1 -1
- package/dist/components/chip/types.d.ts +2 -2
- package/dist/components/chip/types.d.ts.map +1 -1
- package/dist/components/chip/types.js.map +1 -1
- package/dist/components/chip-group/ChipGroup.js +2 -2
- package/dist/components/chip-group/ChipGroup.js.map +1 -1
- package/dist/components/chip-group/types.d.ts +2 -2
- package/dist/components/chip-group/types.d.ts.map +1 -1
- package/dist/components/chip-group/types.js.map +1 -1
- package/dist/components/drawer/Drawer.js +1 -1
- package/dist/components/drawer/Drawer.js.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.js +1 -1
- package/dist/components/form/FormField.js.map +1 -1
- package/dist/components/form/meta.d.ts +13 -0
- package/dist/components/form/meta.d.ts.map +1 -1
- package/dist/components/form/meta.js +15 -0
- package/dist/components/form/meta.js.map +1 -1
- package/dist/components/heading/Heading.d.ts.map +1 -1
- package/dist/components/heading/Heading.js +5 -3
- package/dist/components/heading/Heading.js.map +1 -1
- package/dist/components/heading/index.d.ts +1 -1
- package/dist/components/heading/index.d.ts.map +1 -1
- package/dist/components/heading/index.js.map +1 -1
- package/dist/components/heading/meta.d.ts +9 -3
- package/dist/components/heading/meta.d.ts.map +1 -1
- package/dist/components/heading/meta.js +10 -3
- package/dist/components/heading/meta.js.map +1 -1
- package/dist/components/heading/resolveHeadingRecipe.d.ts +4 -3
- package/dist/components/heading/resolveHeadingRecipe.d.ts.map +1 -1
- package/dist/components/heading/resolveHeadingRecipe.js +33 -12
- package/dist/components/heading/resolveHeadingRecipe.js.map +1 -1
- package/dist/components/heading/types.d.ts +5 -2
- package/dist/components/heading/types.d.ts.map +1 -1
- package/dist/components/heading/types.js.map +1 -1
- package/dist/components/icon-button/IconButton.js +3 -3
- package/dist/components/icon-button/IconButton.js.map +1 -1
- package/dist/components/icon-button/types.d.ts +3 -3
- package/dist/components/icon-button/types.d.ts.map +1 -1
- package/dist/components/icon-button/types.js.map +1 -1
- package/dist/components/input/Input.js +1 -1
- package/dist/components/input/Input.js.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.js +5 -5
- package/dist/components/metric-card/MetricCard.js.map +1 -1
- package/dist/components/metric-card/types.d.ts +2 -2
- package/dist/components/metric-card/types.d.ts.map +1 -1
- package/dist/components/metric-card/types.js.map +1 -1
- package/dist/components/modal/Modal.js +1 -1
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/progress/Progress.js +2 -2
- package/dist/components/progress/Progress.js.map +1 -1
- package/dist/components/progress/types.d.ts +3 -3
- package/dist/components/progress/types.d.ts.map +1 -1
- package/dist/components/progress/types.js +12 -2
- package/dist/components/progress/types.js.map +1 -1
- package/dist/components/radio/RadioGroup.js +5 -5
- package/dist/components/radio/RadioGroup.js.map +1 -1
- package/dist/components/radio/types.d.ts +1 -1
- package/dist/components/radio/types.d.ts.map +1 -1
- package/dist/components/radio/types.js.map +1 -1
- package/dist/components/rating/Rating.js +2 -2
- package/dist/components/rating/Rating.js.map +1 -1
- package/dist/components/rating/types.d.ts +3 -3
- package/dist/components/rating/types.d.ts.map +1 -1
- package/dist/components/rating/types.js +12 -2
- package/dist/components/rating/types.js.map +1 -1
- package/dist/components/tabs/Tabs.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.js +4 -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 +3 -2
- package/dist/components/text/Text.js.map +1 -1
- package/dist/components/text/index.d.ts +1 -1
- package/dist/components/text/index.d.ts.map +1 -1
- package/dist/components/text/index.js.map +1 -1
- package/dist/components/text/meta.d.ts +10 -4
- package/dist/components/text/meta.d.ts.map +1 -1
- package/dist/components/text/meta.js +11 -4
- package/dist/components/text/meta.js.map +1 -1
- package/dist/components/text/resolveTextRecipe.d.ts +4 -3
- package/dist/components/text/resolveTextRecipe.d.ts.map +1 -1
- package/dist/components/text/resolveTextRecipe.js +35 -13
- package/dist/components/text/resolveTextRecipe.js.map +1 -1
- package/dist/components/text/types.d.ts +5 -2
- package/dist/components/text/types.d.ts.map +1 -1
- package/dist/components/text/types.js.map +1 -1
- package/dist/components/toolbar/ToolbarAction.js +1 -1
- package/dist/components/toolbar/ToolbarAction.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/colorModel.d.ts +10 -0
- package/dist/internal/colorModel.d.ts.map +1 -0
- package/dist/internal/colorModel.js +25 -0
- package/dist/internal/colorModel.js.map +1 -0
- package/dist/internal/recipes.d.ts +12 -11
- package/dist/internal/recipes.d.ts.map +1 -1
- package/dist/internal/recipes.js +6 -6
- package/dist/internal/recipes.js.map +1 -1
- package/dist/metadata/index.d.ts +1 -1
- package/dist/metadata/index.d.ts.map +1 -1
- package/dist/metadata/index.js.map +1 -1
- package/dist/metadata/types.d.ts +16 -0
- package/dist/metadata/types.d.ts.map +1 -1
- package/dist/metadata/types.js.map +1 -1
- package/dist/patterns/auth/ForgotPasswordForm.js +2 -2
- package/dist/patterns/auth/ForgotPasswordForm.js.map +1 -1
- package/dist/patterns/auth/OtpForm.js +2 -2
- package/dist/patterns/auth/OtpForm.js.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.js +2 -2
- 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 +6 -6
- package/dist/patterns/chat-list-item/ChatListItem.js.map +1 -1
- package/dist/patterns/chat-list-item/types.d.ts +2 -2
- package/dist/patterns/chat-list-item/types.d.ts.map +1 -1
- package/dist/patterns/chat-list-item/types.js.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.js +3 -3
- package/dist/patterns/confirm-dialog/ConfirmDialog.js.map +1 -1
- package/dist/patterns/confirm-dialog/types.d.ts +3 -3
- package/dist/patterns/confirm-dialog/types.d.ts.map +1 -1
- package/dist/patterns/confirm-dialog/types.js.map +1 -1
- package/dist/patterns/disclosure-section/DisclosureSection.js +1 -1
- package/dist/patterns/disclosure-section/DisclosureSection.js.map +1 -1
- package/dist/patterns/empty-state/EmptyState.js +2 -2
- package/dist/patterns/empty-state/EmptyState.js.map +1 -1
- package/dist/patterns/empty-state/types.d.ts +3 -3
- package/dist/patterns/empty-state/types.d.ts.map +1 -1
- package/dist/patterns/empty-state/types.js.map +1 -1
- package/dist/patterns/form-field/FormField.js +1 -1
- package/dist/patterns/form-field/FormField.js.map +1 -1
- package/dist/patterns/hero/Hero.js +3 -3
- package/dist/patterns/hero/Hero.js.map +1 -1
- package/dist/patterns/hero/types.d.ts +3 -3
- package/dist/patterns/hero/types.d.ts.map +1 -1
- package/dist/patterns/hero/types.js.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.js +7 -7
- package/dist/patterns/image-upload-field/ImageUploadField.js.map +1 -1
- package/dist/patterns/list/ListRow.js +2 -2
- package/dist/patterns/list/ListRow.js.map +1 -1
- package/dist/patterns/list/meta.d.ts +16 -0
- package/dist/patterns/list/meta.d.ts.map +1 -1
- package/dist/patterns/list/meta.js +19 -0
- package/dist/patterns/list/meta.js.map +1 -1
- package/dist/patterns/message-bubble/MessageBubble.d.ts.map +1 -1
- package/dist/patterns/message-bubble/MessageBubble.js +6 -6
- package/dist/patterns/message-bubble/MessageBubble.js.map +1 -1
- package/dist/patterns/message-bubble/types.d.ts +2 -2
- package/dist/patterns/message-bubble/types.d.ts.map +1 -1
- package/dist/patterns/message-bubble/types.js.map +1 -1
- package/dist/patterns/notice/Notice.js +2 -2
- package/dist/patterns/notice/Notice.js.map +1 -1
- package/dist/patterns/notice/types.d.ts +2 -2
- package/dist/patterns/notice/types.d.ts.map +1 -1
- package/dist/patterns/notice/types.js.map +1 -1
- package/dist/patterns/post-card/PostCard.js +4 -4
- package/dist/patterns/post-card/PostCard.js.map +1 -1
- package/dist/patterns/post-card/types.d.ts +2 -2
- package/dist/patterns/post-card/types.d.ts.map +1 -1
- package/dist/patterns/post-card/types.js.map +1 -1
- package/dist/patterns/section-header/SectionHeader.js +2 -2
- package/dist/patterns/section-header/SectionHeader.js.map +1 -1
- package/dist/patterns/settings-row/SettingsRow.js +1 -1
- package/dist/patterns/settings-row/SettingsRow.js.map +1 -1
- package/dist/patterns/theme-composer/ThemeComposer.js +14 -14
- package/dist/patterns/theme-composer/ThemeComposer.js.map +1 -1
- package/dist/patterns/tile-grid/PaletteItem.js +1 -1
- package/dist/patterns/tile-grid/PaletteItem.js.map +1 -1
- package/dist/patterns/timeline/Timeline.d.ts.map +1 -1
- package/dist/patterns/timeline/Timeline.js +14 -4
- package/dist/patterns/timeline/Timeline.js.map +1 -1
- package/dist/patterns/timeline/types.d.ts +2 -2
- package/dist/patterns/timeline/types.d.ts.map +1 -1
- package/dist/patterns/timeline/types.js.map +1 -1
- package/dist/patterns/tree-view/TreeItem.js +1 -1
- package/dist/patterns/tree-view/TreeItem.js.map +1 -1
- package/dist/theme/useZoraTheme.d.ts +1 -1
- package/package.json +3 -3
- package/src/components/app-bar/AppBar.tsx +6 -6
- package/src/components/avatar/Avatar.tsx +21 -11
- package/src/components/avatar/types.ts +2 -2
- package/src/components/avatar-group/AvatarGroup.tsx +2 -2
- package/src/components/avatar-group/types.ts +2 -2
- package/src/components/badge/Badge.tsx +4 -4
- package/src/components/badge/types.ts +4 -4
- package/src/components/button/Button.tsx +4 -4
- package/src/components/button/meta.ts +16 -7
- package/src/components/button/types.ts +4 -4
- package/src/components/card/Card.tsx +2 -2
- package/src/components/checkbox/CheckboxGroup.tsx +6 -6
- package/src/components/checkbox/types.ts +1 -1
- package/src/components/chip/Chip.tsx +9 -10
- package/src/components/chip/resolveChipColors.ts +16 -6
- package/src/components/chip/types.ts +2 -2
- package/src/components/chip-group/ChipGroup.tsx +2 -2
- package/src/components/chip-group/types.ts +2 -2
- package/src/components/drawer/Drawer.tsx +1 -1
- package/src/components/form/FormError.tsx +1 -1
- package/src/components/form/FormField.tsx +1 -1
- package/src/components/form/meta.ts +15 -0
- package/src/components/heading/Heading.tsx +6 -3
- package/src/components/heading/index.ts +2 -1
- package/src/components/heading/meta.ts +10 -3
- package/src/components/heading/resolveHeadingRecipe.test.ts +13 -10
- package/src/components/heading/resolveHeadingRecipe.ts +58 -15
- package/src/components/heading/types.ts +5 -10
- package/src/components/icon-button/IconButton.tsx +4 -4
- package/src/components/icon-button/types.ts +3 -3
- package/src/components/input/Input.tsx +2 -2
- package/src/components/media-card/MediaCard.tsx +2 -2
- package/src/components/metric-card/MetricCard.tsx +6 -6
- package/src/components/metric-card/types.ts +2 -2
- package/src/components/modal/Modal.tsx +1 -1
- package/src/components/progress/Progress.tsx +2 -2
- package/src/components/progress/types.ts +14 -4
- package/src/components/radio/RadioGroup.tsx +6 -6
- package/src/components/radio/types.ts +1 -1
- package/src/components/rating/Rating.tsx +2 -2
- package/src/components/rating/types.ts +14 -4
- package/src/components/tabs/Tabs.tsx +11 -7
- package/src/components/text/Text.tsx +4 -2
- package/src/components/text/index.ts +8 -1
- package/src/components/text/meta.ts +11 -4
- package/src/components/text/resolveTextRecipe.test.ts +18 -14
- package/src/components/text/resolveTextRecipe.ts +42 -15
- package/src/components/text/types.ts +5 -10
- package/src/components/toolbar/ToolbarAction.tsx +2 -2
- package/src/index.ts +26 -2
- package/src/internal/colorModel.ts +39 -0
- package/src/internal/recipes.test.ts +2 -2
- package/src/internal/recipes.ts +18 -18
- package/src/metadata/componentMeta.test.ts +36 -0
- package/src/metadata/index.ts +4 -0
- package/src/metadata/types.ts +27 -0
- package/src/patterns/auth/ForgotPasswordForm.tsx +2 -2
- package/src/patterns/auth/OtpForm.tsx +2 -2
- package/src/patterns/auth/SignInForm.tsx +4 -4
- package/src/patterns/auth/SignUpForm.tsx +2 -2
- package/src/patterns/chat-list-item/ChatListItem.tsx +7 -6
- package/src/patterns/chat-list-item/types.ts +2 -2
- package/src/patterns/collection-editor/CollectionEditor.tsx +6 -6
- package/src/patterns/confirm-dialog/ConfirmDialog.tsx +4 -4
- package/src/patterns/confirm-dialog/types.ts +3 -3
- package/src/patterns/disclosure-section/DisclosureSection.tsx +2 -2
- package/src/patterns/empty-state/EmptyState.tsx +4 -4
- package/src/patterns/empty-state/types.ts +3 -3
- package/src/patterns/form-field/FormField.tsx +1 -1
- package/src/patterns/hero/Hero.tsx +4 -4
- package/src/patterns/hero/types.ts +3 -3
- package/src/patterns/image-preview/ImagePreview.tsx +1 -1
- package/src/patterns/image-upload-field/ImageUploadField.tsx +8 -8
- package/src/patterns/list/ListRow.tsx +2 -2
- package/src/patterns/list/meta.ts +19 -0
- package/src/patterns/message-bubble/MessageBubble.tsx +10 -6
- package/src/patterns/message-bubble/types.ts +2 -2
- package/src/patterns/notice/Notice.tsx +2 -2
- package/src/patterns/notice/types.ts +2 -2
- package/src/patterns/post-card/PostCard.tsx +5 -5
- package/src/patterns/post-card/types.ts +2 -2
- package/src/patterns/section-header/SectionHeader.tsx +2 -2
- package/src/patterns/settings-row/SettingsRow.tsx +1 -1
- package/src/patterns/theme-composer/ThemeComposer.tsx +15 -15
- package/src/patterns/tile-grid/PaletteItem.tsx +1 -1
- package/src/patterns/timeline/Timeline.tsx +15 -5
- package/src/patterns/timeline/types.ts +2 -2
- package/src/patterns/tree-view/TreeItem.tsx +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- cc3d18a: Add component event metadata types and initial event descriptors for form submit, button press, and collection item press events.
|
|
8
|
+
|
|
9
|
+
## 2.0.0
|
|
10
|
+
|
|
11
|
+
### Major Changes
|
|
12
|
+
|
|
13
|
+
- b832d62: Replace ZORA `tone` APIs with Surface-derived `color` and `emphasis` models across components, patterns, and recipes.
|
|
14
|
+
|
|
15
|
+
Breaking changes:
|
|
16
|
+
- Removed `ZoraTone` from the public API.
|
|
17
|
+
- Added Surface-derived public color model exports:
|
|
18
|
+
- `ZoraPaletteColor`, `ZoraStatusColor`, `ZoraColor`, `ZoraEmphasis`
|
|
19
|
+
- `ZORA_PALETTE_COLORS`, `ZORA_STATUS_COLORS`, `ZORA_COLORS`, `ZORA_EMPHASES`
|
|
20
|
+
- Updated semantic props from `tone` to `color` for components and patterns that select semantic color roles.
|
|
21
|
+
- Updated text-like APIs to use `emphasis` for content contrast.
|
|
22
|
+
|
|
23
|
+
Migration:
|
|
24
|
+
- Replace semantic `tone` props with `color`.
|
|
25
|
+
- Replace text/heading contrast values (`default`, `muted`, `subtle`, `inverse`) to `emphasis`.
|
|
26
|
+
- Keep `tone` only where it represents card-style visual treatment (`ZoraCardTone`).
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- 02629b6: Update SURFACE
|
|
31
|
+
|
|
3
32
|
## 1.5.1
|
|
4
33
|
|
|
5
34
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -62,7 +62,7 @@ export function App() {
|
|
|
62
62
|
title="Welcome"
|
|
63
63
|
>
|
|
64
64
|
<Heading level={3}>Next steps</Heading>
|
|
65
|
-
<Text
|
|
65
|
+
<Text emphasis="muted">Structured text comes from ZORA too.</Text>
|
|
66
66
|
</Card>
|
|
67
67
|
</Screen>
|
|
68
68
|
</AppShell>
|
|
@@ -231,9 +231,9 @@ export default function Layout() {
|
|
|
231
231
|
|
|
232
232
|
These unions appear across the catalogue:
|
|
233
233
|
|
|
234
|
-
- `
|
|
235
|
-
- `ZoraEmphasis` comes from Surface `
|
|
236
|
-
- `
|
|
234
|
+
- `ZoraColor` comes from Surface `ButtonProps['color']`.
|
|
235
|
+
- `ZoraEmphasis` comes from Surface `SurfaceEmphasis` (`default | muted | subtle | inverse`).
|
|
236
|
+
- `ButtonProps['variant']` and `BadgeProps['variant']` control visual treatment.
|
|
237
237
|
- `ZoraControlSize` comes from Surface `ButtonProps['size']`.
|
|
238
238
|
- `ZoraCardTone = 'default' | 'subtle' | 'outline'`.
|
|
239
239
|
- `ZoraContentWidth = 'narrow' | 'default' | 'wide'`.
|
|
@@ -385,7 +385,7 @@ Metadata model overview:
|
|
|
385
385
|
|
|
386
386
|
### `Heading`
|
|
387
387
|
|
|
388
|
-
Structured titles with semantic levels, visual sizes, semantic
|
|
388
|
+
Structured titles with semantic levels, visual sizes, semantic color, and
|
|
389
389
|
responsive props. Use `Heading` for titles and `Text` for body copy.
|
|
390
390
|
|
|
391
391
|
```tsx
|
|
@@ -393,7 +393,7 @@ responsive props. Use `Heading` for titles and `Text` for body copy.
|
|
|
393
393
|
Build faster with ZORA
|
|
394
394
|
</Heading>
|
|
395
395
|
|
|
396
|
-
<Heading level={2}
|
|
396
|
+
<Heading level={2} color="primary">
|
|
397
397
|
Create consistent screens
|
|
398
398
|
</Heading>
|
|
399
399
|
```
|
|
@@ -413,7 +413,8 @@ ZORA props:
|
|
|
413
413
|
| `i18nKey` | `string` | - | Runtime-resolved fallback key when no content prop is provided. |
|
|
414
414
|
| `level` | `HeadingLevel` | `2` | Semantic heading level from `1` through `6`. |
|
|
415
415
|
| `size` | `Responsive<HeadingSize>` | level size | Visual scale: `display`, `h1` through `h6`. |
|
|
416
|
-
| `
|
|
416
|
+
| `color` | `Responsive<HeadingColor>` | - | Semantic text color role. |
|
|
417
|
+
| `emphasis` | `Responsive<HeadingEmphasis>` | `'default'` | Content emphasis / contrast. |
|
|
417
418
|
| `align` | `Responsive<HeadingAlign>` | - | Text alignment. |
|
|
418
419
|
| `weight` | `Responsive<HeadingWeight>` | recipe | Optional structured weight override. |
|
|
419
420
|
| `italic` | `boolean` | `false` | Italic style. |
|
|
@@ -429,11 +430,11 @@ usage structured and template-safe.
|
|
|
429
430
|
|
|
430
431
|
### `Text`
|
|
431
432
|
|
|
432
|
-
Structured body text with ZORA typography variants, semantic
|
|
433
|
+
Structured body text with ZORA typography variants, semantic color, and
|
|
433
434
|
responsive props.
|
|
434
435
|
|
|
435
436
|
```tsx
|
|
436
|
-
<Text variant="lead"
|
|
437
|
+
<Text variant="lead" emphasis="muted">
|
|
437
438
|
Build product screens with structured, theme-aware copy.
|
|
438
439
|
</Text>
|
|
439
440
|
|
|
@@ -453,7 +454,8 @@ ZORA props:
|
|
|
453
454
|
| `text` | `string` | - | Manifest-friendly content prop. |
|
|
454
455
|
| `i18nKey` | `string` | - | Runtime-resolved fallback key when no content prop is provided. |
|
|
455
456
|
| `variant` | `Responsive<TextVariant>` | `'body'` | Typography recipe. |
|
|
456
|
-
| `
|
|
457
|
+
| `color` | `Responsive<TextColor>` | - | Semantic text color role. |
|
|
458
|
+
| `emphasis` | `Responsive<TextEmphasis>` | `'default'` | Content emphasis / contrast. |
|
|
457
459
|
| `align` | `Responsive<TextAlign>` | - | Text alignment. |
|
|
458
460
|
| `weight` | `Responsive<TextWeight>` | recipe | Optional structured weight override. |
|
|
459
461
|
| `italic` | `boolean` | `false` | Italic style. |
|
|
@@ -469,7 +471,7 @@ structured and template-safe.
|
|
|
469
471
|
|
|
470
472
|
### `Button`
|
|
471
473
|
|
|
472
|
-
Action button with ZORA defaults for
|
|
474
|
+
Action button with ZORA defaults for color, variant, size, and icons.
|
|
473
475
|
|
|
474
476
|
```tsx
|
|
475
477
|
<Button leadingIcon={{ name: 'checkmark-circle-outline' }}>Save</Button>
|
|
@@ -480,18 +482,18 @@ Action button with ZORA defaults for tone, emphasis, size, and icons.
|
|
|
480
482
|
|
|
481
483
|
ZORA props:
|
|
482
484
|
|
|
483
|
-
| Prop | Type
|
|
484
|
-
| -------------- |
|
|
485
|
-
| `children` | `React.ReactNode`
|
|
486
|
-
| `
|
|
487
|
-
| `
|
|
488
|
-
| `size` | `ZoraControlSize`
|
|
489
|
-
| `leadingIcon` | `ButtonIconSpec`
|
|
490
|
-
| `trailingIcon` | `ButtonIconSpec`
|
|
485
|
+
| Prop | Type | Default | Notes |
|
|
486
|
+
| -------------- | ------------------------ | ----------- | ------------------------------------------ |
|
|
487
|
+
| `children` | `React.ReactNode` | - | Button label or content. |
|
|
488
|
+
| `color` | `ZoraColor` | `'primary'` | Passed to Surface as `color`. |
|
|
489
|
+
| `variant` | `ButtonProps['variant']` | `'solid'` | Visual treatment variant. |
|
|
490
|
+
| `size` | `ZoraControlSize` | `'l'` | Passed to Surface as `size`. |
|
|
491
|
+
| `leadingIcon` | `ButtonIconSpec` | - | Surface icon spec rendered before content. |
|
|
492
|
+
| `trailingIcon` | `ButtonIconSpec` | - | Surface icon spec rendered after content. |
|
|
491
493
|
|
|
492
494
|
Inherited props:
|
|
493
495
|
|
|
494
|
-
Inherits all Surface `ButtonProps` except `children`, `size`, `
|
|
496
|
+
Inherits all Surface `ButtonProps` except `children`, `size`, `color`, and
|
|
495
497
|
`variant`. This includes Surface button behavior such as `loading`,
|
|
496
498
|
`fullWidth`, pressability props, disabled state, accessibility props allowed by
|
|
497
499
|
Surface, and `testID`.
|
|
@@ -503,7 +505,7 @@ Surface, and `testID`.
|
|
|
503
505
|
Compact icon-only button for toolbars, rows, and actions.
|
|
504
506
|
|
|
505
507
|
```tsx
|
|
506
|
-
<IconButton icon={{ name: 'trash-outline' }} label="Delete"
|
|
508
|
+
<IconButton icon={{ name: 'trash-outline' }} label="Delete" color="danger" />
|
|
507
509
|
```
|
|
508
510
|
|
|
509
511
|
<details>
|
|
@@ -511,13 +513,13 @@ Compact icon-only button for toolbars, rows, and actions.
|
|
|
511
513
|
|
|
512
514
|
ZORA props:
|
|
513
515
|
|
|
514
|
-
| Prop
|
|
515
|
-
|
|
|
516
|
-
| `icon`
|
|
517
|
-
| `label`
|
|
518
|
-
| `
|
|
519
|
-
| `
|
|
520
|
-
| `size`
|
|
516
|
+
| Prop | Type | Default | Notes |
|
|
517
|
+
| --------- | ---------------------------- | ----------- | ---------------------------------- |
|
|
518
|
+
| `icon` | `ButtonIconSpec` | - | Required icon to render. |
|
|
519
|
+
| `label` | `string` | - | Required for `accessibilityLabel`. |
|
|
520
|
+
| `color` | `ZoraColor` | `'neutral'` | Button color role. |
|
|
521
|
+
| `variant` | `IconButtonProps['variant']` | `'ghost'` | Visual treatment variant. |
|
|
522
|
+
| `size` | `ZoraControlSize` | `'m'` | Button size. |
|
|
521
523
|
|
|
522
524
|
Inherited props:
|
|
523
525
|
|
|
@@ -532,7 +534,7 @@ User/profile image with name-based initials and optional icon fallback.
|
|
|
532
534
|
|
|
533
535
|
```tsx
|
|
534
536
|
<Avatar name="Zora Kit" />
|
|
535
|
-
<Avatar size="l"
|
|
537
|
+
<Avatar size="l" color="primary" name="Fabio Gartenmann" />
|
|
536
538
|
```
|
|
537
539
|
|
|
538
540
|
<details>
|
|
@@ -549,7 +551,7 @@ ZORA props:
|
|
|
549
551
|
| `label` | `string` | - | Accessibility label for the rendered content. |
|
|
550
552
|
| `size` | `AvatarSize` | `'m'` | `xs`..`xl` size preset. |
|
|
551
553
|
| `shape` | `AvatarShape` | `'circle'` | `circle` or `rounded`. |
|
|
552
|
-
| `
|
|
554
|
+
| `color` | `ZoraColor` | `'neutral'` | Drives background and fallback content color. |
|
|
553
555
|
| `testID` | `string` | - | Test id. |
|
|
554
556
|
|
|
555
557
|
Inherited props:
|
|
@@ -566,7 +568,7 @@ Overlapping avatar stack with optional overflow label.
|
|
|
566
568
|
<AvatarGroup
|
|
567
569
|
items={[
|
|
568
570
|
{ id: '1', name: 'Ada Lovelace' },
|
|
569
|
-
{ id: '2', name: 'Grace Hopper',
|
|
571
|
+
{ id: '2', name: 'Grace Hopper', color: 'success' },
|
|
570
572
|
]}
|
|
571
573
|
/>
|
|
572
574
|
```
|
|
@@ -587,15 +589,15 @@ ZORA props:
|
|
|
587
589
|
|
|
588
590
|
`AvatarGroupItem`:
|
|
589
591
|
|
|
590
|
-
| Prop | Type | Notes
|
|
591
|
-
| -------------- | --------------------- |
|
|
592
|
-
| `id` | `string` | Optional stable key.
|
|
593
|
-
| `source` | `ImageSourcePropType` | Image source for the avatar.
|
|
594
|
-
| `name` | `string` | Used to derive initials.
|
|
595
|
-
| `initials` | `string` | Explicit initials override.
|
|
596
|
-
| `iconFallback` | `ButtonIconSpec` | Optional icon fallback.
|
|
597
|
-
| `label` | `string` | Accessibility label.
|
|
598
|
-
| `
|
|
592
|
+
| Prop | Type | Notes |
|
|
593
|
+
| -------------- | --------------------- | -------------------------------- |
|
|
594
|
+
| `id` | `string` | Optional stable key. |
|
|
595
|
+
| `source` | `ImageSourcePropType` | Image source for the avatar. |
|
|
596
|
+
| `name` | `string` | Used to derive initials. |
|
|
597
|
+
| `initials` | `string` | Explicit initials override. |
|
|
598
|
+
| `iconFallback` | `ButtonIconSpec` | Optional icon fallback. |
|
|
599
|
+
| `label` | `string` | Accessibility label. |
|
|
600
|
+
| `color` | `ZoraColor` | Overrides avatar color per item. |
|
|
599
601
|
|
|
600
602
|
Inherited props:
|
|
601
603
|
|
|
@@ -605,10 +607,10 @@ No inherited props. `AvatarGroupProps` is declared directly by ZORA.
|
|
|
605
607
|
|
|
606
608
|
### `Badge`
|
|
607
609
|
|
|
608
|
-
Small status label with ZORA
|
|
610
|
+
Small status label with ZORA color, variant, and size defaults.
|
|
609
611
|
|
|
610
612
|
```tsx
|
|
611
|
-
<Badge
|
|
613
|
+
<Badge color="success">Active</Badge>
|
|
612
614
|
```
|
|
613
615
|
|
|
614
616
|
<details>
|
|
@@ -616,16 +618,16 @@ Small status label with ZORA tone, emphasis, and size defaults.
|
|
|
616
618
|
|
|
617
619
|
ZORA props:
|
|
618
620
|
|
|
619
|
-
| Prop | Type
|
|
620
|
-
| ---------- |
|
|
621
|
-
| `children` | `React.ReactNode`
|
|
622
|
-
| `
|
|
623
|
-
| `
|
|
624
|
-
| `size` | `ZoraControlSize`
|
|
621
|
+
| Prop | Type | Default | Notes |
|
|
622
|
+
| ---------- | ----------------------- | ----------- | ------------------------------------ |
|
|
623
|
+
| `children` | `React.ReactNode` | - | Rendered as Surface badge `content`. |
|
|
624
|
+
| `color` | `ZoraColor` | `'primary'` | Passed to Surface as `color`. |
|
|
625
|
+
| `variant` | `BadgeProps['variant']` | `'soft'` | Visual treatment variant. |
|
|
626
|
+
| `size` | `ZoraControlSize` | `'m'` | Passed to Surface as `size`. |
|
|
625
627
|
|
|
626
628
|
Inherited props:
|
|
627
629
|
|
|
628
|
-
Inherits all Surface `BadgeProps` except `content`, `size`, `
|
|
630
|
+
Inherits all Surface `BadgeProps` except `content`, `size`, `color`, and
|
|
629
631
|
`variant`. The remaining inherited prop is `testID`.
|
|
630
632
|
|
|
631
633
|
</details>
|
|
@@ -672,7 +674,7 @@ Media-first card surface for listings, content previews, and catalog items.
|
|
|
672
674
|
imageLabel="Cover image"
|
|
673
675
|
title="MediaCard"
|
|
674
676
|
description="Composes an image slot, header content, badges, actions, and footer metadata."
|
|
675
|
-
badges={<Badge
|
|
677
|
+
badges={<Badge color="primary">Featured</Badge>}
|
|
676
678
|
footer={<Rating value={4.5} />}
|
|
677
679
|
onPress={() => undefined}
|
|
678
680
|
/>
|
|
@@ -745,7 +747,7 @@ Compact metric surface for dashboards, stats, and summary cards.
|
|
|
745
747
|
label="Monthly active users"
|
|
746
748
|
value="14.2k"
|
|
747
749
|
delta="+4.1%"
|
|
748
|
-
|
|
750
|
+
deltaColor="success"
|
|
749
751
|
description="Last 30 days"
|
|
750
752
|
/>
|
|
751
753
|
```
|
|
@@ -762,7 +764,7 @@ ZORA props:
|
|
|
762
764
|
| `description` | `React.ReactNode` | - | Optional supporting copy. |
|
|
763
765
|
| `icon` | `ButtonIconSpec` | - | Optional icon shown next to the label. |
|
|
764
766
|
| `delta` | `React.ReactNode` | - | Optional delta badge content. |
|
|
765
|
-
| `
|
|
767
|
+
| `deltaColor` | `ZoraColor` | `'neutral'` | Color used for the delta `Badge`. |
|
|
766
768
|
| `actions` | `React.ReactNode` | - | Optional trailing action area; disables `onPress`. |
|
|
767
769
|
| `tone` | `ZoraCardTone` | `'default'` | Passed to the underlying `Card`. |
|
|
768
770
|
| `compact` | `boolean` | `false` | Uses tighter spacing. |
|
|
@@ -777,11 +779,11 @@ No inherited props. `MetricCardProps` is declared directly by ZORA.
|
|
|
777
779
|
|
|
778
780
|
### `Progress`
|
|
779
781
|
|
|
780
|
-
Linear progress bar with semantic
|
|
782
|
+
Linear progress bar with semantic color.
|
|
781
783
|
|
|
782
784
|
```tsx
|
|
783
785
|
<Progress value={72} />
|
|
784
|
-
<Progress
|
|
786
|
+
<Progress color="success" value={38} />
|
|
785
787
|
```
|
|
786
788
|
|
|
787
789
|
<details>
|
|
@@ -793,7 +795,7 @@ ZORA props:
|
|
|
793
795
|
| -------- | ----------------- | ----------- | ----------------------------- |
|
|
794
796
|
| `value` | `number` | - | Current progress value. |
|
|
795
797
|
| `max` | `number` | `100` | Maximum value for completion. |
|
|
796
|
-
| `
|
|
798
|
+
| `color` | `ZoraColor` | `'primary'` | Fill color role. |
|
|
797
799
|
| `size` | `ZoraControlSize` | `'m'` | Controls bar height. |
|
|
798
800
|
| `testID` | `string` | - | Test id. |
|
|
799
801
|
|
|
@@ -820,7 +822,7 @@ ZORA props:
|
|
|
820
822
|
| -------- | ----------------- | ----------- | ---------------------- |
|
|
821
823
|
| `value` | `number` | - | Current rating value. |
|
|
822
824
|
| `max` | `number` | `5` | Maximum rating value. |
|
|
823
|
-
| `
|
|
825
|
+
| `color` | `ZoraColor` | `'warning'` | Tone for filled icons. |
|
|
824
826
|
| `size` | `ZoraControlSize` | `'m'` | Icon sizing preset. |
|
|
825
827
|
| `testID` | `string` | - | Test id. |
|
|
826
828
|
|
|
@@ -941,7 +943,7 @@ type RadioGroupOption = {
|
|
|
941
943
|
|
|
942
944
|
Inherited props:
|
|
943
945
|
|
|
944
|
-
Passes `
|
|
946
|
+
Passes `color`, `size`, `invalid`, `readOnly`, `disabled`, and `testID`
|
|
945
947
|
to underlying Surface `Radio` components.
|
|
946
948
|
|
|
947
949
|
</details>
|
|
@@ -991,7 +993,7 @@ type CheckboxGroupOption = {
|
|
|
991
993
|
|
|
992
994
|
Inherited props:
|
|
993
995
|
|
|
994
|
-
Passes `
|
|
996
|
+
Passes `color`, `size`, `invalid`, `readOnly`, `disabled`, and `testID`
|
|
995
997
|
to underlying Surface `Checkbox` components.
|
|
996
998
|
|
|
997
999
|
</details>
|
|
@@ -1001,7 +1003,7 @@ to underlying Surface `Checkbox` components.
|
|
|
1001
1003
|
Compact filter/action token with optional icon and selected state.
|
|
1002
1004
|
|
|
1003
1005
|
```tsx
|
|
1004
|
-
<Chip selected
|
|
1006
|
+
<Chip selected color="primary" onPress={() => undefined}>
|
|
1005
1007
|
Selected
|
|
1006
1008
|
</Chip>
|
|
1007
1009
|
```
|
|
@@ -1011,16 +1013,16 @@ Compact filter/action token with optional icon and selected state.
|
|
|
1011
1013
|
|
|
1012
1014
|
ZORA props:
|
|
1013
1015
|
|
|
1014
|
-
| Prop | Type | Default | Notes
|
|
1015
|
-
| ---------- | ----------------- | ----------- |
|
|
1016
|
-
| `children` | `React.ReactNode` | - | Chip label content.
|
|
1017
|
-
| `icon` | `ButtonIconSpec` | - | Optional leading icon spec.
|
|
1018
|
-
| `selected` | `boolean` | `false` | Selected styling state.
|
|
1019
|
-
| `
|
|
1020
|
-
| `size` | `ZoraControlSize` | `'s'` | Padding and icon sizing.
|
|
1021
|
-
| `disabled` | `boolean` | `false` | Disables interaction and mutes
|
|
1022
|
-
| `onPress` | `() => void` | - | Optional press handler.
|
|
1023
|
-
| `testID` | `string` | - | Test id.
|
|
1016
|
+
| Prop | Type | Default | Notes |
|
|
1017
|
+
| ---------- | ----------------- | ----------- | ------------------------------------- |
|
|
1018
|
+
| `children` | `React.ReactNode` | - | Chip label content. |
|
|
1019
|
+
| `icon` | `ButtonIconSpec` | - | Optional leading icon spec. |
|
|
1020
|
+
| `selected` | `boolean` | `false` | Selected styling state. |
|
|
1021
|
+
| `color` | `ZoraColor` | `'neutral'` | Selected color. |
|
|
1022
|
+
| `size` | `ZoraControlSize` | `'s'` | Padding and icon sizing. |
|
|
1023
|
+
| `disabled` | `boolean` | `false` | Disables interaction and mutes color. |
|
|
1024
|
+
| `onPress` | `() => void` | - | Optional press handler. |
|
|
1025
|
+
| `testID` | `string` | - | Test id. |
|
|
1024
1026
|
|
|
1025
1027
|
Inherited props:
|
|
1026
1028
|
|
|
@@ -1054,7 +1056,7 @@ ZORA props:
|
|
|
1054
1056
|
| `value` | `string \| string[]` | - | Selected value(s). |
|
|
1055
1057
|
| `onValueChange` | `(value) => void` | - | Selection change handler. |
|
|
1056
1058
|
| `multiple` | `boolean` | `false` | Enables multi-select mode. |
|
|
1057
|
-
| `
|
|
1059
|
+
| `color` | `ZoraColor` | `'neutral'` | Color for selected chips. |
|
|
1058
1060
|
| `size` | `ZoraControlSize` | `'s'` | Chip size. |
|
|
1059
1061
|
| `wrap` | `boolean` | `true` | Wrap chips on smaller screens. |
|
|
1060
1062
|
| `disabled` | `boolean` | - | Disables all chips. |
|
|
@@ -1149,7 +1151,7 @@ Selection mode is generic and prop-driven:
|
|
|
1149
1151
|
<AppBar
|
|
1150
1152
|
appMode={{ type: 'selection', label: 'Selected', count: 3, onCancel: exitSelection }}
|
|
1151
1153
|
actions={
|
|
1152
|
-
<IconButton icon={{ name: 'trash-outline' }} label="Delete"
|
|
1154
|
+
<IconButton icon={{ name: 'trash-outline' }} label="Delete" color="danger" onPress={del} />
|
|
1153
1155
|
}
|
|
1154
1156
|
/>
|
|
1155
1157
|
```
|
|
@@ -1585,7 +1587,7 @@ export function ChatsPreview() {
|
|
|
1585
1587
|
<Stack gap="none">
|
|
1586
1588
|
<ChatListItem
|
|
1587
1589
|
accessibilityLabel="Ada Lovelace, unread, 3 new messages, Can you review the new PostCard API?, 2 minutes ago"
|
|
1588
|
-
avatar={{ name: 'Ada Lovelace',
|
|
1590
|
+
avatar={{ name: 'Ada Lovelace', color: 'primary' }}
|
|
1589
1591
|
preview="Can you review the new PostCard API?"
|
|
1590
1592
|
timestamp="2m"
|
|
1591
1593
|
title="Ada Lovelace"
|
|
@@ -1595,7 +1597,7 @@ export function ChatsPreview() {
|
|
|
1595
1597
|
/>
|
|
1596
1598
|
|
|
1597
1599
|
<ChatListItem
|
|
1598
|
-
avatar={{ name: 'Grace Hopper',
|
|
1600
|
+
avatar={{ name: 'Grace Hopper', color: 'success' }}
|
|
1599
1601
|
preview="The build is green."
|
|
1600
1602
|
timestamp="1h"
|
|
1601
1603
|
title="Grace Hopper"
|
|
@@ -1603,7 +1605,7 @@ export function ChatsPreview() {
|
|
|
1603
1605
|
/>
|
|
1604
1606
|
|
|
1605
1607
|
<ChatListItem
|
|
1606
|
-
avatar={{ initials: 'CI', label: 'Build system',
|
|
1608
|
+
avatar={{ initials: 'CI', label: 'Build system', color: 'neutral' }}
|
|
1607
1609
|
compact
|
|
1608
1610
|
meta="Release automation"
|
|
1609
1611
|
preview="Version packages completed for @ankhorage/zora."
|
|
@@ -1675,7 +1677,7 @@ ZORA props:
|
|
|
1675
1677
|
| `label` | `string` | Accessibility label. |
|
|
1676
1678
|
| `size` | `AvatarSize` | Optional avatar size override. |
|
|
1677
1679
|
| `shape` | `AvatarShape` | Optional avatar shape override. |
|
|
1678
|
-
| `
|
|
1680
|
+
| `color` | `ZoraColor` | Optional fallback color. |
|
|
1679
1681
|
|
|
1680
1682
|
Inherited props:
|
|
1681
1683
|
|
|
@@ -1740,7 +1742,7 @@ With media:
|
|
|
1740
1742
|
secondaryAction={{ label: 'Browse patterns', onPress: () => undefined }}
|
|
1741
1743
|
media={
|
|
1742
1744
|
<Card title="Theme-aware by default" tone="outline">
|
|
1743
|
-
<Text
|
|
1745
|
+
<Text emphasis="muted">
|
|
1744
1746
|
Use the media slot for previews, screenshots, metrics, or illustration cards.
|
|
1745
1747
|
</Text>
|
|
1746
1748
|
</Card>
|
|
@@ -1770,13 +1772,13 @@ ZORA props:
|
|
|
1770
1772
|
|
|
1771
1773
|
`HeroAction`:
|
|
1772
1774
|
|
|
1773
|
-
| Prop | Type
|
|
1774
|
-
| ---------- |
|
|
1775
|
-
| `label` | `React.ReactNode`
|
|
1776
|
-
| `onPress` | `() => void`
|
|
1777
|
-
| `
|
|
1778
|
-
| `
|
|
1779
|
-
| `disabled` | `boolean`
|
|
1775
|
+
| Prop | Type | Default | Notes |
|
|
1776
|
+
| ---------- | ------------------------ | ------------------------- | --------------------------------- |
|
|
1777
|
+
| `label` | `React.ReactNode` | - | Button label/content. |
|
|
1778
|
+
| `onPress` | `() => void` | - | Press handler. |
|
|
1779
|
+
| `color` | `ZoraColor` | primary / neutral by role | Optional button color override. |
|
|
1780
|
+
| `variant` | `ButtonProps['variant']` | solid / soft by role | Optional button variant override. |
|
|
1781
|
+
| `disabled` | `boolean` | `false` | Disables the rendered action. |
|
|
1780
1782
|
|
|
1781
1783
|
Inherited props:
|
|
1782
1784
|
|
|
@@ -1868,7 +1870,7 @@ No inherited props. `ImageUploadFieldProps` is declared directly by ZORA.
|
|
|
1868
1870
|
Semantic notice surface with badge eyebrow, optional body, and actions.
|
|
1869
1871
|
|
|
1870
1872
|
```tsx
|
|
1871
|
-
<Notice actions={<Button>Review</Button>} title="Publish pipeline ready"
|
|
1873
|
+
<Notice actions={<Button>Review</Button>} title="Publish pipeline ready" color="success" />
|
|
1872
1874
|
```
|
|
1873
1875
|
|
|
1874
1876
|
<details>
|
|
@@ -1882,7 +1884,7 @@ ZORA props:
|
|
|
1882
1884
|
| `description` | `React.ReactNode` | - | Notice description. |
|
|
1883
1885
|
| `children` | `React.ReactNode` | - | Optional body content. |
|
|
1884
1886
|
| `actions` | `React.ReactNode` | - | Optional action area. |
|
|
1885
|
-
| `
|
|
1887
|
+
| `color` | `ZoraColor` | `'primary'` | Drives the badge eyebrow color. |
|
|
1886
1888
|
| `testID` | `string` | - | Forwarded to the underlying `Card`. |
|
|
1887
1889
|
|
|
1888
1890
|
Inherited props:
|
|
@@ -1944,7 +1946,7 @@ export function PostsPreview() {
|
|
|
1944
1946
|
author={{
|
|
1945
1947
|
name: 'Ada Lovelace',
|
|
1946
1948
|
subtitle: '@ada · 2h',
|
|
1947
|
-
avatar: { name: 'Ada Lovelace',
|
|
1949
|
+
avatar: { name: 'Ada Lovelace', color: 'primary' },
|
|
1948
1950
|
}}
|
|
1949
1951
|
headerAction={
|
|
1950
1952
|
<IconButton icon={{ name: 'ellipsis-horizontal-outline' }} label="More post options" />
|
|
@@ -1966,7 +1968,7 @@ export function PostsPreview() {
|
|
|
1966
1968
|
author: {
|
|
1967
1969
|
name: 'Grace Hopper',
|
|
1968
1970
|
subtitle: '1h',
|
|
1969
|
-
avatar: { name: 'Grace Hopper',
|
|
1971
|
+
avatar: { name: 'Grace Hopper', color: 'success' },
|
|
1970
1972
|
},
|
|
1971
1973
|
text: 'The card/list boundary feels right.',
|
|
1972
1974
|
},
|
|
@@ -1979,7 +1981,7 @@ export function PostsPreview() {
|
|
|
1979
1981
|
author={{
|
|
1980
1982
|
name: 'Build system',
|
|
1981
1983
|
subtitle: 'Today · release notes',
|
|
1982
|
-
avatar: { initials: 'CI', label: 'Build system',
|
|
1984
|
+
avatar: { initials: 'CI', label: 'Build system', color: 'neutral' },
|
|
1983
1985
|
}}
|
|
1984
1986
|
text="Compact density works well for notification-style posts."
|
|
1985
1987
|
/>
|
|
@@ -2026,7 +2028,7 @@ ZORA props:
|
|
|
2026
2028
|
| `label` | `string` | Accessibility label. |
|
|
2027
2029
|
| `size` | `AvatarSize` | Optional avatar size override. |
|
|
2028
2030
|
| `shape` | `AvatarShape` | Optional avatar shape override. |
|
|
2029
|
-
| `
|
|
2031
|
+
| `color` | `ZoraColor` | Optional fallback color. |
|
|
2030
2032
|
|
|
2031
2033
|
`PostCardMedia`:
|
|
2032
2034
|
|
|
@@ -2328,7 +2330,7 @@ type TimelineItem = {
|
|
|
2328
2330
|
title: React.ReactNode;
|
|
2329
2331
|
description?: React.ReactNode;
|
|
2330
2332
|
meta?: React.ReactNode;
|
|
2331
|
-
status?:
|
|
2333
|
+
status?: ZoraColor;
|
|
2332
2334
|
icon?: ButtonIconSpec;
|
|
2333
2335
|
};
|
|
2334
2336
|
```
|
|
@@ -2384,24 +2386,24 @@ No-data surface with title, optional supporting text, actions, and footer.
|
|
|
2384
2386
|
|
|
2385
2387
|
ZORA props:
|
|
2386
2388
|
|
|
2387
|
-
| Prop | Type | Default | Notes
|
|
2388
|
-
| ----------------- | ------------------ | ------- |
|
|
2389
|
-
| `title` | `React.ReactNode` | - | Required empty-state title.
|
|
2390
|
-
| `description` | `React.ReactNode` | - | Supporting copy.
|
|
2391
|
-
| `eyebrow` | `React.ReactNode` | - | Card eyebrow.
|
|
2392
|
-
| `primaryAction` | `EmptyStateAction` | - | Primary action button.
|
|
2393
|
-
| `secondaryAction` | `EmptyStateAction` | - | Secondary action button; defaults to `
|
|
2394
|
-
| `footer` | `React.ReactNode` | - | Footer content below actions.
|
|
2395
|
-
| `testID` | `string` | - | Forwarded to the underlying card.
|
|
2389
|
+
| Prop | Type | Default | Notes |
|
|
2390
|
+
| ----------------- | ------------------ | ------- | -------------------------------------------------------------------------------------------------------- |
|
|
2391
|
+
| `title` | `React.ReactNode` | - | Required empty-state title. |
|
|
2392
|
+
| `description` | `React.ReactNode` | - | Supporting copy. |
|
|
2393
|
+
| `eyebrow` | `React.ReactNode` | - | Card eyebrow. |
|
|
2394
|
+
| `primaryAction` | `EmptyStateAction` | - | Primary action button. |
|
|
2395
|
+
| `secondaryAction` | `EmptyStateAction` | - | Secondary action button; defaults to `color="neutral"` and `emphasis="soft"` when omitted on the action. |
|
|
2396
|
+
| `footer` | `React.ReactNode` | - | Footer content below actions. |
|
|
2397
|
+
| `testID` | `string` | - | Forwarded to the underlying card. |
|
|
2396
2398
|
|
|
2397
2399
|
`EmptyStateAction`:
|
|
2398
2400
|
|
|
2399
|
-
| Prop
|
|
2400
|
-
|
|
|
2401
|
-
| `label`
|
|
2402
|
-
| `onPress`
|
|
2403
|
-
| `
|
|
2404
|
-
| `
|
|
2401
|
+
| Prop | Type | Default | Notes |
|
|
2402
|
+
| --------- | ------------------------ | ------- | --------------- |
|
|
2403
|
+
| `label` | `React.ReactNode` | - | Button label. |
|
|
2404
|
+
| `onPress` | `() => void` | - | Button handler. |
|
|
2405
|
+
| `color` | `ZoraColor` | - | Button color. |
|
|
2406
|
+
| `variant` | `ButtonProps['variant']` | - | Button variant. |
|
|
2405
2407
|
|
|
2406
2408
|
Inherited props:
|
|
2407
2409
|
|
|
@@ -2417,7 +2419,7 @@ Narrow confirmation modal for destructive or high-signal decisions.
|
|
|
2417
2419
|
```tsx
|
|
2418
2420
|
<ConfirmDialog
|
|
2419
2421
|
confirmLabel="Archive"
|
|
2420
|
-
|
|
2422
|
+
confirmColor="danger"
|
|
2421
2423
|
onCancel={close}
|
|
2422
2424
|
onConfirm={archive}
|
|
2423
2425
|
title="Archive project?"
|
|
@@ -2430,21 +2432,21 @@ Narrow confirmation modal for destructive or high-signal decisions.
|
|
|
2430
2432
|
|
|
2431
2433
|
ZORA props:
|
|
2432
2434
|
|
|
2433
|
-
| Prop | Type
|
|
2434
|
-
| ----------------- |
|
|
2435
|
-
| `visible` | `boolean`
|
|
2436
|
-
| `title` | `React.ReactNode`
|
|
2437
|
-
| `description` | `React.ReactNode`
|
|
2438
|
-
| `children` | `React.ReactNode`
|
|
2439
|
-
| `confirmLabel` | `React.ReactNode`
|
|
2440
|
-
| `cancelLabel` | `React.ReactNode`
|
|
2441
|
-
| `
|
|
2442
|
-
| `
|
|
2443
|
-
| `busy` | `boolean`
|
|
2444
|
-
| `closeOnBackdrop` | `boolean`
|
|
2445
|
-
| `onConfirm` | `() => void`
|
|
2446
|
-
| `onCancel` | `() => void`
|
|
2447
|
-
| `testID` | `string`
|
|
2435
|
+
| Prop | Type | Default | Notes |
|
|
2436
|
+
| ----------------- | ------------------------ | ----------- | ------------------------------------------ |
|
|
2437
|
+
| `visible` | `boolean` | - | Required modal visibility. |
|
|
2438
|
+
| `title` | `React.ReactNode` | - | Required dialog title. |
|
|
2439
|
+
| `description` | `React.ReactNode` | - | Dialog description. |
|
|
2440
|
+
| `children` | `React.ReactNode` | - | Dialog body. |
|
|
2441
|
+
| `confirmLabel` | `React.ReactNode` | `'Confirm'` | Confirm button label. |
|
|
2442
|
+
| `cancelLabel` | `React.ReactNode` | `'Cancel'` | Cancel button label. |
|
|
2443
|
+
| `confirmColor` | `ZoraColor` | `'danger'` | Confirm button color. |
|
|
2444
|
+
| `confirmVariant` | `ButtonProps['variant']` | `'solid'` | Confirm button variant. |
|
|
2445
|
+
| `busy` | `boolean` | `false` | Passed to the confirm button as `loading`. |
|
|
2446
|
+
| `closeOnBackdrop` | `boolean` | `true` | Passed to the underlying modal. |
|
|
2447
|
+
| `onConfirm` | `() => void` | - | Confirm button handler. |
|
|
2448
|
+
| `onCancel` | `() => void` | - | Cancel button and modal dismiss handler. |
|
|
2449
|
+
| `testID` | `string` | - | Forwarded to the underlying modal. |
|
|
2448
2450
|
|
|
2449
2451
|
Confirm dialogs always use `Modal` with `width="narrow"`.
|
|
2450
2452
|
|
|
@@ -2545,7 +2547,7 @@ import { MessageBubble, Stack } from '@ankhorage/zora';
|
|
|
2545
2547
|
direction="incoming"
|
|
2546
2548
|
author={{
|
|
2547
2549
|
name: 'Ada Lovelace',
|
|
2548
|
-
avatar: { name: 'Ada Lovelace',
|
|
2550
|
+
avatar: { name: 'Ada Lovelace', color: 'primary' },
|
|
2549
2551
|
}}
|
|
2550
2552
|
text="Can you review the new ChatListItem API?"
|
|
2551
2553
|
timestamp="10:41"
|
|
@@ -2626,7 +2628,7 @@ type MessageBubbleStatus = 'sending' | 'sent' | 'delivered' | 'read' | 'failed';
|
|
|
2626
2628
|
| `label` | `string` | Accessibility label. |
|
|
2627
2629
|
| `size` | `AvatarSize` | Optional avatar size override. |
|
|
2628
2630
|
| `shape` | `AvatarShape` | Optional avatar shape override. |
|
|
2629
|
-
| `
|
|
2631
|
+
| `color` | `ZoraColor` | Optional avatar color. |
|
|
2630
2632
|
|
|
2631
2633
|
Inherited props:
|
|
2632
2634
|
|