@ankhorage/zora 2.4.6 → 2.4.8

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.
Files changed (52) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1540 -3430
  3. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +4 -0
  4. package/dist/components/breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  5. package/dist/components/breadcrumbs/Breadcrumbs.js +77 -0
  6. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
  7. package/dist/components/breadcrumbs/index.d.ts +3 -0
  8. package/dist/components/breadcrumbs/index.d.ts.map +1 -0
  9. package/dist/components/breadcrumbs/index.js +2 -0
  10. package/dist/components/breadcrumbs/index.js.map +1 -0
  11. package/dist/components/breadcrumbs/meta.d.ts +9 -0
  12. package/dist/components/breadcrumbs/meta.d.ts.map +1 -0
  13. package/dist/components/breadcrumbs/meta.js +9 -0
  14. package/dist/components/breadcrumbs/meta.js.map +1 -0
  15. package/dist/components/breadcrumbs/types.d.ts +19 -0
  16. package/dist/components/breadcrumbs/types.d.ts.map +1 -0
  17. package/dist/components/breadcrumbs/types.js +2 -0
  18. package/dist/components/breadcrumbs/types.js.map +1 -0
  19. package/dist/components/pagination/Pagination.d.ts +4 -0
  20. package/dist/components/pagination/Pagination.d.ts.map +1 -0
  21. package/dist/components/pagination/Pagination.js +92 -0
  22. package/dist/components/pagination/Pagination.js.map +1 -0
  23. package/dist/components/pagination/index.d.ts +3 -0
  24. package/dist/components/pagination/index.d.ts.map +1 -0
  25. package/dist/components/pagination/index.js +2 -0
  26. package/dist/components/pagination/index.js.map +1 -0
  27. package/dist/components/pagination/meta.d.ts +9 -0
  28. package/dist/components/pagination/meta.d.ts.map +1 -0
  29. package/dist/components/pagination/meta.js +9 -0
  30. package/dist/components/pagination/meta.js.map +1 -0
  31. package/dist/components/pagination/types.d.ts +18 -0
  32. package/dist/components/pagination/types.d.ts.map +1 -0
  33. package/dist/components/pagination/types.js +2 -0
  34. package/dist/components/pagination/types.js.map +1 -0
  35. package/dist/index.d.ts +4 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/metadata/componentMeta.d.ts.map +1 -1
  40. package/dist/metadata/componentMeta.js +4 -0
  41. package/dist/metadata/componentMeta.js.map +1 -1
  42. package/package.json +3 -1
  43. package/src/components/breadcrumbs/Breadcrumbs.tsx +143 -0
  44. package/src/components/breadcrumbs/index.ts +2 -0
  45. package/src/components/breadcrumbs/meta.ts +10 -0
  46. package/src/components/breadcrumbs/types.ts +21 -0
  47. package/src/components/pagination/Pagination.tsx +189 -0
  48. package/src/components/pagination/index.ts +2 -0
  49. package/src/components/pagination/meta.ts +10 -0
  50. package/src/components/pagination/types.ts +19 -0
  51. package/src/index.ts +4 -0
  52. package/src/metadata/componentMeta.ts +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"componentMeta.js","sourceRoot":"","sources":["../../src/metadata/componentMeta.ts"],"names":[],"mappings":"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","sourcesContent":["import { actionSheetItemMeta, actionSheetMeta } from '../components/action-sheet/meta';\nimport { appBarMeta } from '../components/app-bar/meta';\nimport { avatarMeta } from '../components/avatar/meta';\nimport { avatarGroupMeta } from '../components/avatar-group/meta';\nimport { badgeMeta } from '../components/badge/meta';\nimport { buttonMeta } from '../components/button/meta';\nimport { buttonGroupMeta } from '../components/button-group/meta';\nimport { cardMeta } from '../components/card/meta';\nimport { checkboxGroupMeta, checkboxMeta } from '../components/checkbox/meta';\nimport { chipMeta } from '../components/chip/meta';\nimport { chipGroupMeta } from '../components/chip-group/meta';\nimport { dataTableMeta } from '../components/data-table/meta';\nimport { datePickerMeta } from '../components/date-picker/meta';\nimport { drawerMeta } from '../components/drawer/meta';\nimport { formActionsMeta, formErrorMeta, formFieldMeta, formMeta } from '../components/form/meta';\nimport { headingMeta } from '../components/heading/meta';\nimport { iconMeta } from '../components/icon/meta';\nimport { iconButtonMeta } from '../components/icon-button/meta';\nimport { imageMeta } from '../components/image/meta';\nimport { inputMeta } from '../components/input/meta';\nimport { mediaCardMeta } from '../components/media-card/meta';\nimport { dropdownMenuMeta, menuMeta } from '../components/menu/meta';\nimport { metricCardMeta } from '../components/metric-card/meta';\nimport { modalMeta } from '../components/modal/meta';\nimport { navigationItemMeta } from '../components/navigation-item/meta';\nimport { navigationListMeta } from '../components/navigation-list/meta';\nimport { progressMeta } from '../components/progress/meta';\nimport { radioGroupMeta, radioMeta } from '../components/radio/meta';\nimport { ratingMeta } from '../components/rating/meta';\nimport { searchBarMeta } from '../components/search-bar/meta';\nimport { selectMeta } from '../components/select/meta';\nimport {\n skeletonCardMeta,\n skeletonListMeta,\n skeletonMeta,\n skeletonTextMeta,\n} from '../components/skeleton/meta';\nimport { tabsMeta } from '../components/tabs/meta';\nimport { textMeta } from '../components/text/meta';\nimport { textareaMeta } from '../components/textarea/meta';\nimport { timePickerMeta } from '../components/time-picker/meta';\nimport { toastMeta, toastProviderMeta } from '../components/toast/meta';\nimport { toolbarActionMeta, toolbarMeta } from '../components/toolbar/meta';\nimport { foundationMetas } from '../foundation/meta';\nimport { appShellMeta } from '../layout/app-shell/meta';\nimport { screenMeta } from '../layout/screen/meta';\nimport { screenSectionMeta } from '../layout/screen-section/meta';\nimport { settingsLayoutMeta } from '../layout/settings-layout/meta';\nimport { sidebarLayoutMeta } from '../layout/sidebar-layout/meta';\nimport { topbarLayoutMeta } from '../layout/topbar-layout/meta';\nimport {\n forgotPasswordFormMeta,\n otpFormMeta,\n signInFormMeta,\n signUpFormMeta,\n} from '../patterns/auth/meta';\nimport { chatListItemMeta } from '../patterns/chat-list-item/meta';\nimport { collectionEditorMeta } from '../patterns/collection-editor/meta';\nimport { confirmDialogMeta } from '../patterns/confirm-dialog/meta';\nimport { disclosureSectionMeta } from '../patterns/disclosure-section/meta';\nimport { emptyStateMeta } from '../patterns/empty-state/meta';\nimport { filterBarMeta } from '../patterns/filter-bar/meta';\nimport { heroMeta } from '../patterns/hero/meta';\nimport { imagePreviewMeta } from '../patterns/image-preview/meta';\nimport { imageUploadFieldMeta } from '../patterns/image-upload-field/meta';\nimport { inspectorFieldMeta } from '../patterns/inspector-field/meta';\nimport { listMeta, listRowMeta, listSectionMeta } from '../patterns/list/meta';\nimport { messageBubbleMeta } from '../patterns/message-bubble/meta';\nimport { noticeMeta } from '../patterns/notice/meta';\nimport { panelMeta } from '../patterns/panel/meta';\nimport { postCardMeta } from '../patterns/post-card/meta';\nimport { responsivePanelMeta } from '../patterns/responsive-panel/meta';\nimport { sectionHeaderMeta } from '../patterns/section-header/meta';\nimport { selectableItemMeta, selectionProviderMeta } from '../patterns/selection/meta';\nimport { settingsRowMeta } from '../patterns/settings-row/meta';\nimport { switchFieldMeta } from '../patterns/switch-field/meta';\nimport { themeComposerMeta } from '../patterns/theme-composer/meta';\nimport { paletteItemMeta, tileGridMeta } from '../patterns/tile-grid/meta';\nimport { timelineMeta } from '../patterns/timeline/meta';\nimport { treeItemMeta, treeViewMeta } from '../patterns/tree-view/meta';\nimport { zoraDrawerContentMeta } from '../patterns/zora-drawer-content/meta';\nimport { zoraTabBarMeta } from '../patterns/zora-tab-bar/meta';\nimport type { ZoraComponentMetaRegistry } from './types';\n\nexport const ZORA_COMPONENT_META: ZoraComponentMetaRegistry = {\n ...foundationMetas,\n ActionSheet: actionSheetMeta,\n ActionSheetItem: actionSheetItemMeta,\n AppBar: appBarMeta,\n Avatar: avatarMeta,\n AvatarGroup: avatarGroupMeta,\n Badge: badgeMeta,\n Button: buttonMeta,\n ButtonGroup: buttonGroupMeta,\n Card: cardMeta,\n Checkbox: checkboxMeta,\n CheckboxGroup: checkboxGroupMeta,\n Chip: chipMeta,\n ChipGroup: chipGroupMeta,\n DataTable: dataTableMeta,\n DatePicker: datePickerMeta,\n Drawer: drawerMeta,\n DropdownMenu: dropdownMenuMeta,\n Form: formMeta,\n FormActions: formActionsMeta,\n FormError: formErrorMeta,\n FormField: formFieldMeta,\n Heading: headingMeta,\n Icon: iconMeta,\n IconButton: iconButtonMeta,\n Image: imageMeta,\n Input: inputMeta,\n MediaCard: mediaCardMeta,\n Menu: menuMeta,\n MetricCard: metricCardMeta,\n Modal: modalMeta,\n NavigationItem: navigationItemMeta,\n NavigationList: navigationListMeta,\n Progress: progressMeta,\n Radio: radioMeta,\n RadioGroup: radioGroupMeta,\n Rating: ratingMeta,\n SearchBar: searchBarMeta,\n Select: selectMeta,\n Skeleton: skeletonMeta,\n SkeletonCard: skeletonCardMeta,\n SkeletonList: skeletonListMeta,\n SkeletonText: skeletonTextMeta,\n Tabs: tabsMeta,\n Text: textMeta,\n Textarea: textareaMeta,\n TimePicker: timePickerMeta,\n Toast: toastMeta,\n ToastProvider: toastProviderMeta,\n Toolbar: toolbarMeta,\n ToolbarAction: toolbarActionMeta,\n AppShell: appShellMeta,\n Screen: screenMeta,\n ScreenSection: screenSectionMeta,\n SettingsLayout: settingsLayoutMeta,\n SidebarLayout: sidebarLayoutMeta,\n TopbarLayout: topbarLayoutMeta,\n ForgotPasswordForm: forgotPasswordFormMeta,\n OtpForm: otpFormMeta,\n SignInForm: signInFormMeta,\n SignUpForm: signUpFormMeta,\n ChatListItem: chatListItemMeta,\n CollectionEditor: collectionEditorMeta,\n ConfirmDialog: confirmDialogMeta,\n DisclosureSection: disclosureSectionMeta,\n EmptyState: emptyStateMeta,\n FilterBar: filterBarMeta,\n Hero: heroMeta,\n ImagePreview: imagePreviewMeta,\n ImageUploadField: imageUploadFieldMeta,\n InspectorField: inspectorFieldMeta,\n List: listMeta,\n ListRow: listRowMeta,\n ListSection: listSectionMeta,\n MessageBubble: messageBubbleMeta,\n Notice: noticeMeta,\n Panel: panelMeta,\n PostCard: postCardMeta,\n ResponsivePanel: responsivePanelMeta,\n SectionHeader: sectionHeaderMeta,\n SelectableItem: selectableItemMeta,\n SelectionProvider: selectionProviderMeta,\n SettingsRow: settingsRowMeta,\n SwitchField: switchFieldMeta,\n ThemeComposer: themeComposerMeta,\n PaletteItem: paletteItemMeta,\n TileGrid: tileGridMeta,\n Timeline: timelineMeta,\n TreeItem: treeItemMeta,\n TreeView: treeViewMeta,\n ZoraDrawerContent: zoraDrawerContentMeta,\n ZoraTabBar: zoraTabBarMeta,\n};\n"]}
1
+ {"version":3,"file":"componentMeta.js","sourceRoot":"","sources":["../../src/metadata/componentMeta.ts"],"names":[],"mappings":"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","sourcesContent":["import { actionSheetItemMeta, actionSheetMeta } from '../components/action-sheet/meta';\nimport { appBarMeta } from '../components/app-bar/meta';\nimport { avatarMeta } from '../components/avatar/meta';\nimport { avatarGroupMeta } from '../components/avatar-group/meta';\nimport { badgeMeta } from '../components/badge/meta';\nimport { breadcrumbsMeta } from '../components/breadcrumbs/meta';\nimport { buttonMeta } from '../components/button/meta';\nimport { buttonGroupMeta } from '../components/button-group/meta';\nimport { cardMeta } from '../components/card/meta';\nimport { checkboxGroupMeta, checkboxMeta } from '../components/checkbox/meta';\nimport { chipMeta } from '../components/chip/meta';\nimport { chipGroupMeta } from '../components/chip-group/meta';\nimport { dataTableMeta } from '../components/data-table/meta';\nimport { datePickerMeta } from '../components/date-picker/meta';\nimport { drawerMeta } from '../components/drawer/meta';\nimport { formActionsMeta, formErrorMeta, formFieldMeta, formMeta } from '../components/form/meta';\nimport { headingMeta } from '../components/heading/meta';\nimport { iconMeta } from '../components/icon/meta';\nimport { iconButtonMeta } from '../components/icon-button/meta';\nimport { imageMeta } from '../components/image/meta';\nimport { inputMeta } from '../components/input/meta';\nimport { mediaCardMeta } from '../components/media-card/meta';\nimport { dropdownMenuMeta, menuMeta } from '../components/menu/meta';\nimport { metricCardMeta } from '../components/metric-card/meta';\nimport { modalMeta } from '../components/modal/meta';\nimport { navigationItemMeta } from '../components/navigation-item/meta';\nimport { navigationListMeta } from '../components/navigation-list/meta';\nimport { paginationMeta } from '../components/pagination/meta';\nimport { progressMeta } from '../components/progress/meta';\nimport { radioGroupMeta, radioMeta } from '../components/radio/meta';\nimport { ratingMeta } from '../components/rating/meta';\nimport { searchBarMeta } from '../components/search-bar/meta';\nimport { selectMeta } from '../components/select/meta';\nimport {\n skeletonCardMeta,\n skeletonListMeta,\n skeletonMeta,\n skeletonTextMeta,\n} from '../components/skeleton/meta';\nimport { tabsMeta } from '../components/tabs/meta';\nimport { textMeta } from '../components/text/meta';\nimport { textareaMeta } from '../components/textarea/meta';\nimport { timePickerMeta } from '../components/time-picker/meta';\nimport { toastMeta, toastProviderMeta } from '../components/toast/meta';\nimport { toolbarActionMeta, toolbarMeta } from '../components/toolbar/meta';\nimport { foundationMetas } from '../foundation/meta';\nimport { appShellMeta } from '../layout/app-shell/meta';\nimport { screenMeta } from '../layout/screen/meta';\nimport { screenSectionMeta } from '../layout/screen-section/meta';\nimport { settingsLayoutMeta } from '../layout/settings-layout/meta';\nimport { sidebarLayoutMeta } from '../layout/sidebar-layout/meta';\nimport { topbarLayoutMeta } from '../layout/topbar-layout/meta';\nimport {\n forgotPasswordFormMeta,\n otpFormMeta,\n signInFormMeta,\n signUpFormMeta,\n} from '../patterns/auth/meta';\nimport { chatListItemMeta } from '../patterns/chat-list-item/meta';\nimport { collectionEditorMeta } from '../patterns/collection-editor/meta';\nimport { confirmDialogMeta } from '../patterns/confirm-dialog/meta';\nimport { disclosureSectionMeta } from '../patterns/disclosure-section/meta';\nimport { emptyStateMeta } from '../patterns/empty-state/meta';\nimport { filterBarMeta } from '../patterns/filter-bar/meta';\nimport { heroMeta } from '../patterns/hero/meta';\nimport { imagePreviewMeta } from '../patterns/image-preview/meta';\nimport { imageUploadFieldMeta } from '../patterns/image-upload-field/meta';\nimport { inspectorFieldMeta } from '../patterns/inspector-field/meta';\nimport { listMeta, listRowMeta, listSectionMeta } from '../patterns/list/meta';\nimport { messageBubbleMeta } from '../patterns/message-bubble/meta';\nimport { noticeMeta } from '../patterns/notice/meta';\nimport { panelMeta } from '../patterns/panel/meta';\nimport { postCardMeta } from '../patterns/post-card/meta';\nimport { responsivePanelMeta } from '../patterns/responsive-panel/meta';\nimport { sectionHeaderMeta } from '../patterns/section-header/meta';\nimport { selectableItemMeta, selectionProviderMeta } from '../patterns/selection/meta';\nimport { settingsRowMeta } from '../patterns/settings-row/meta';\nimport { switchFieldMeta } from '../patterns/switch-field/meta';\nimport { themeComposerMeta } from '../patterns/theme-composer/meta';\nimport { paletteItemMeta, tileGridMeta } from '../patterns/tile-grid/meta';\nimport { timelineMeta } from '../patterns/timeline/meta';\nimport { treeItemMeta, treeViewMeta } from '../patterns/tree-view/meta';\nimport { zoraDrawerContentMeta } from '../patterns/zora-drawer-content/meta';\nimport { zoraTabBarMeta } from '../patterns/zora-tab-bar/meta';\nimport type { ZoraComponentMetaRegistry } from './types';\n\nexport const ZORA_COMPONENT_META: ZoraComponentMetaRegistry = {\n ...foundationMetas,\n ActionSheet: actionSheetMeta,\n ActionSheetItem: actionSheetItemMeta,\n AppBar: appBarMeta,\n Avatar: avatarMeta,\n AvatarGroup: avatarGroupMeta,\n Badge: badgeMeta,\n Breadcrumbs: breadcrumbsMeta,\n Button: buttonMeta,\n ButtonGroup: buttonGroupMeta,\n Card: cardMeta,\n Checkbox: checkboxMeta,\n CheckboxGroup: checkboxGroupMeta,\n Chip: chipMeta,\n ChipGroup: chipGroupMeta,\n DataTable: dataTableMeta,\n DatePicker: datePickerMeta,\n Drawer: drawerMeta,\n DropdownMenu: dropdownMenuMeta,\n Form: formMeta,\n FormActions: formActionsMeta,\n FormError: formErrorMeta,\n FormField: formFieldMeta,\n Heading: headingMeta,\n Icon: iconMeta,\n IconButton: iconButtonMeta,\n Image: imageMeta,\n Input: inputMeta,\n MediaCard: mediaCardMeta,\n Menu: menuMeta,\n MetricCard: metricCardMeta,\n Modal: modalMeta,\n NavigationItem: navigationItemMeta,\n NavigationList: navigationListMeta,\n Pagination: paginationMeta,\n Progress: progressMeta,\n Radio: radioMeta,\n RadioGroup: radioGroupMeta,\n Rating: ratingMeta,\n SearchBar: searchBarMeta,\n Select: selectMeta,\n Skeleton: skeletonMeta,\n SkeletonCard: skeletonCardMeta,\n SkeletonList: skeletonListMeta,\n SkeletonText: skeletonTextMeta,\n Tabs: tabsMeta,\n Text: textMeta,\n Textarea: textareaMeta,\n TimePicker: timePickerMeta,\n Toast: toastMeta,\n ToastProvider: toastProviderMeta,\n Toolbar: toolbarMeta,\n ToolbarAction: toolbarActionMeta,\n AppShell: appShellMeta,\n Screen: screenMeta,\n ScreenSection: screenSectionMeta,\n SettingsLayout: settingsLayoutMeta,\n SidebarLayout: sidebarLayoutMeta,\n TopbarLayout: topbarLayoutMeta,\n ForgotPasswordForm: forgotPasswordFormMeta,\n OtpForm: otpFormMeta,\n SignInForm: signInFormMeta,\n SignUpForm: signUpFormMeta,\n ChatListItem: chatListItemMeta,\n CollectionEditor: collectionEditorMeta,\n ConfirmDialog: confirmDialogMeta,\n DisclosureSection: disclosureSectionMeta,\n EmptyState: emptyStateMeta,\n FilterBar: filterBarMeta,\n Hero: heroMeta,\n ImagePreview: imagePreviewMeta,\n ImageUploadField: imageUploadFieldMeta,\n InspectorField: inspectorFieldMeta,\n List: listMeta,\n ListRow: listRowMeta,\n ListSection: listSectionMeta,\n MessageBubble: messageBubbleMeta,\n Notice: noticeMeta,\n Panel: panelMeta,\n PostCard: postCardMeta,\n ResponsivePanel: responsivePanelMeta,\n SectionHeader: sectionHeaderMeta,\n SelectableItem: selectableItemMeta,\n SelectionProvider: selectionProviderMeta,\n SettingsRow: settingsRowMeta,\n SwitchField: switchFieldMeta,\n ThemeComposer: themeComposerMeta,\n PaletteItem: paletteItemMeta,\n TileGrid: tileGridMeta,\n Timeline: timelineMeta,\n TreeItem: treeItemMeta,\n TreeView: treeViewMeta,\n ZoraDrawerContent: zoraDrawerContentMeta,\n ZoraTabBar: zoraTabBarMeta,\n};\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ankhorage/zora",
3
3
  "type": "module",
4
- "version": "2.4.6",
4
+ "version": "2.4.8",
5
5
  "description": "Opinionated React Native and React Native Web UI kit built on @ankhorage/surface.",
6
6
  "homepage": "https://github.com/ankhorage/zora#readme",
7
7
  "bugs": {
@@ -72,6 +72,7 @@
72
72
  "build": "rm -rf dist tsconfig.tsbuildinfo && bun x tsc -p tsconfig.json",
73
73
  "changeset": "changeset",
74
74
  "changeset:status": "changeset status --since=origin/main",
75
+ "docs": "paradox",
75
76
  "knip": "ankhorage-knip",
76
77
  "lint": "ankhorage-eslint . --max-warnings=0",
77
78
  "lint:fix": "ankhorage-eslint . --fix --max-warnings=0",
@@ -84,6 +85,7 @@
84
85
  },
85
86
  "devDependencies": {
86
87
  "@ankhorage/devtools": "^1.0.6",
88
+ "@ankhorage/paradox": "^0.1.7",
87
89
  "@changesets/cli": "^2.31.0",
88
90
  "@expo/vector-icons": "^15.1.1",
89
91
  "@react-native-picker/picker": "^2.11.4",
@@ -0,0 +1,143 @@
1
+ import React from 'react';
2
+
3
+ import { Inline } from '../../foundation';
4
+ import { resolveIconSize } from '../../internal/recipes';
5
+ import { useZoraTheme } from '../../theme/useZoraTheme';
6
+ import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
7
+ import { Button } from '../button';
8
+ import { Icon } from '../icon';
9
+ import { Text } from '../text';
10
+ import type { BreadcrumbItem, BreadcrumbsProps } from './types';
11
+
12
+ type BreadcrumbRenderItem =
13
+ | {
14
+ item: BreadcrumbItem;
15
+ type: 'item';
16
+ }
17
+ | {
18
+ type: 'ellipsis';
19
+ };
20
+
21
+ function normalizeMaxItems(value: number | undefined): number | undefined {
22
+ if (value === undefined || !Number.isFinite(value)) {
23
+ return undefined;
24
+ }
25
+
26
+ return Math.max(0, Math.trunc(value));
27
+ }
28
+
29
+ function createRenderItems(
30
+ items: readonly BreadcrumbItem[],
31
+ maxItems: number | undefined,
32
+ ): readonly BreadcrumbRenderItem[] {
33
+ if (maxItems === undefined || maxItems === 0 || items.length <= maxItems || maxItems < 3) {
34
+ return items.map((item) => ({ item, type: 'item' }));
35
+ }
36
+
37
+ const [firstItem] = items;
38
+ if (firstItem === undefined) {
39
+ return [];
40
+ }
41
+
42
+ const trailingCount = maxItems - 2;
43
+ const trailingItems = items.slice(items.length - trailingCount);
44
+
45
+ return [
46
+ { item: firstItem, type: 'item' },
47
+ { type: 'ellipsis' },
48
+ ...trailingItems.map((item) => ({ item, type: 'item' }) satisfies BreadcrumbRenderItem),
49
+ ];
50
+ }
51
+
52
+ function renderSeparator(separator: React.ReactNode) {
53
+ return (
54
+ <Text emphasis="muted" variant="bodySmall">
55
+ {separator}
56
+ </Text>
57
+ );
58
+ }
59
+
60
+ function BreadcrumbLabel({ item, compact }: { item: BreadcrumbItem; compact: boolean }) {
61
+ const { theme } = useZoraTheme();
62
+
63
+ return (
64
+ <Inline align="center" gap="xs" wrap="nowrap">
65
+ {item.icon ? (
66
+ <Icon
67
+ color={theme.semantics.content.muted}
68
+ name={item.icon.name}
69
+ provider={item.icon.provider}
70
+ size={resolveIconSize(compact ? 's' : 'm')}
71
+ />
72
+ ) : null}
73
+ <Text emphasis="muted" variant={compact ? 'caption' : 'bodySmall'}>
74
+ {item.label}
75
+ </Text>
76
+ </Inline>
77
+ );
78
+ }
79
+
80
+ function BreadcrumbsInner({
81
+ themeId: _themeId,
82
+ mode: _mode,
83
+ items,
84
+ separator = '/',
85
+ maxItems,
86
+ compact = false,
87
+ disabled = false,
88
+ testID,
89
+ }: BreadcrumbsProps) {
90
+ const normalizedMaxItems = normalizeMaxItems(maxItems);
91
+ const renderItems = createRenderItems(items, normalizedMaxItems);
92
+ const currentItemId = items.at(-1)?.id;
93
+
94
+ if (items.length === 0) {
95
+ return null;
96
+ }
97
+
98
+ return (
99
+ <Inline align="center" gap={compact ? 'xs' : 's'} testID={testID} wrap="wrap">
100
+ {renderItems.map((renderItem, index) => {
101
+ const isLastRenderedItem = index === renderItems.length - 1;
102
+ const showSeparator = !isLastRenderedItem;
103
+
104
+ if (renderItem.type === 'ellipsis') {
105
+ return (
106
+ <React.Fragment key="ellipsis">
107
+ <Text emphasis="muted" variant={compact ? 'caption' : 'bodySmall'}>
108
+
109
+ </Text>
110
+ {showSeparator ? renderSeparator(separator) : null}
111
+ </React.Fragment>
112
+ );
113
+ }
114
+
115
+ const { item } = renderItem;
116
+ const current = item.id === currentItemId;
117
+ const interactive = !current && !disabled && !item.disabled && Boolean(item.onPress);
118
+
119
+ return (
120
+ <React.Fragment key={item.id}>
121
+ {interactive ? (
122
+ <Button
123
+ color="neutral"
124
+ leadingIcon={item.icon}
125
+ onPress={item.onPress}
126
+ size={compact ? 's' : 'm'}
127
+ testID={testID ? `${testID}-item-${item.id}` : undefined}
128
+ variant="ghost"
129
+ >
130
+ {item.label}
131
+ </Button>
132
+ ) : (
133
+ <BreadcrumbLabel item={item} compact={compact} />
134
+ )}
135
+ {showSeparator ? renderSeparator(separator) : null}
136
+ </React.Fragment>
137
+ );
138
+ })}
139
+ </Inline>
140
+ );
141
+ }
142
+
143
+ export const Breadcrumbs = withZoraThemeScope(BreadcrumbsInner);
@@ -0,0 +1,2 @@
1
+ export { Breadcrumbs } from './Breadcrumbs';
2
+ export type { BreadcrumbItem, BreadcrumbsProps } from './types';
@@ -0,0 +1,10 @@
1
+ import type { ZoraComponentMeta } from '../../metadata';
2
+
3
+ export const breadcrumbsMeta = {
4
+ name: 'Breadcrumbs',
5
+ category: 'component',
6
+ directManifestNode: false,
7
+ allowedChildren: [],
8
+ note: 'Code-facing route hierarchy component; not represented as a manifest node in v1.',
9
+ props: {},
10
+ } as const satisfies ZoraComponentMeta;
@@ -0,0 +1,21 @@
1
+ import type { ButtonIconSpec } from '@ankhorage/surface';
2
+ import type React from 'react';
3
+
4
+ import type { ZoraBaseProps } from '../../theme/ZoraBaseProps';
5
+
6
+ export interface BreadcrumbItem {
7
+ id: string;
8
+ label: React.ReactNode;
9
+ icon?: ButtonIconSpec;
10
+ onPress?: () => void;
11
+ disabled?: boolean;
12
+ }
13
+
14
+ export interface BreadcrumbsProps extends ZoraBaseProps {
15
+ items: readonly BreadcrumbItem[];
16
+ separator?: React.ReactNode;
17
+ maxItems?: number;
18
+ compact?: boolean;
19
+ disabled?: boolean;
20
+ testID?: string;
21
+ }
@@ -0,0 +1,189 @@
1
+ import React from 'react';
2
+
3
+ import { Stack } from '../../foundation';
4
+ import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
5
+ import { Button } from '../button';
6
+ import { Text } from '../text';
7
+ import type { PaginationProps } from './types';
8
+
9
+ type PaginationItem = number | 'ellipsis';
10
+
11
+ function clampInteger(value: number, min: number, max: number): number {
12
+ if (!Number.isFinite(value)) {
13
+ return min;
14
+ }
15
+
16
+ return Math.min(Math.max(Math.trunc(value), min), max);
17
+ }
18
+
19
+ function createRange(start: number, end: number): number[] {
20
+ if (end < start) {
21
+ return [];
22
+ }
23
+
24
+ return Array.from({ length: end - start + 1 }, (_, index) => start + index);
25
+ }
26
+
27
+ function normalizeCount(value: number | undefined, fallback: number): number {
28
+ if (value === undefined || !Number.isFinite(value)) {
29
+ return fallback;
30
+ }
31
+
32
+ return Math.max(0, Math.trunc(value));
33
+ }
34
+
35
+ function createPaginationItems({
36
+ page,
37
+ pageCount,
38
+ siblingCount,
39
+ boundaryCount,
40
+ compact,
41
+ }: {
42
+ page: number;
43
+ pageCount: number;
44
+ siblingCount: number;
45
+ boundaryCount: number;
46
+ compact: boolean;
47
+ }): readonly PaginationItem[] {
48
+ if (pageCount <= 0) {
49
+ return [];
50
+ }
51
+
52
+ if (compact) {
53
+ return [page];
54
+ }
55
+
56
+ const boundaries = createRange(1, Math.min(boundaryCount, pageCount));
57
+ const trailingBoundaries = createRange(Math.max(pageCount - boundaryCount + 1, 1), pageCount);
58
+ const siblings = createRange(
59
+ Math.max(page - siblingCount, 1),
60
+ Math.min(page + siblingCount, pageCount),
61
+ );
62
+ const pages = [...new Set([...boundaries, ...siblings, ...trailingBoundaries])].sort(
63
+ (left, right) => left - right,
64
+ );
65
+ const items: PaginationItem[] = [];
66
+
67
+ pages.forEach((nextPage, index) => {
68
+ const previousPage = pages[index - 1];
69
+ if (previousPage !== undefined && nextPage - previousPage > 1) {
70
+ items.push('ellipsis');
71
+ }
72
+
73
+ items.push(nextPage);
74
+ });
75
+
76
+ return items;
77
+ }
78
+
79
+ function PaginationInner({
80
+ themeId: _themeId,
81
+ mode: _mode,
82
+ page,
83
+ pageCount,
84
+ onPageChange,
85
+ disabled = false,
86
+ siblingCount = 1,
87
+ boundaryCount = 1,
88
+ showFirstLast = false,
89
+ previousLabel = 'Previous',
90
+ nextLabel = 'Next',
91
+ firstLabel = 'First',
92
+ lastLabel = 'Last',
93
+ compact = false,
94
+ testID,
95
+ }: PaginationProps) {
96
+ const normalizedPageCount = Math.max(0, Math.trunc(Number.isFinite(pageCount) ? pageCount : 0));
97
+ const currentPage = clampInteger(page, 1, Math.max(normalizedPageCount, 1));
98
+ const safeSiblingCount = normalizeCount(siblingCount, 1);
99
+ const safeBoundaryCount = normalizeCount(boundaryCount, 1);
100
+ const items = createPaginationItems({
101
+ boundaryCount: safeBoundaryCount,
102
+ compact,
103
+ page: currentPage,
104
+ pageCount: normalizedPageCount,
105
+ siblingCount: safeSiblingCount,
106
+ });
107
+ const canGoPrevious = currentPage > 1;
108
+ const canGoNext = currentPage < normalizedPageCount;
109
+ const navigationDisabled = disabled || normalizedPageCount <= 1;
110
+
111
+ const changePage = (nextPage: number) => {
112
+ const clampedPage = clampInteger(nextPage, 1, Math.max(normalizedPageCount, 1));
113
+ if (disabled || clampedPage === currentPage) {
114
+ return;
115
+ }
116
+
117
+ onPageChange?.(clampedPage);
118
+ };
119
+
120
+ return (
121
+ <Stack align="center" direction="row" gap="xs" testID={testID}>
122
+ {showFirstLast ? (
123
+ <Button
124
+ disabled={navigationDisabled || currentPage === 1}
125
+ onPress={() => changePage(1)}
126
+ size="s"
127
+ testID={testID ? `${testID}-first` : undefined}
128
+ variant="ghost"
129
+ >
130
+ {firstLabel}
131
+ </Button>
132
+ ) : null}
133
+
134
+ <Button
135
+ disabled={navigationDisabled || !canGoPrevious}
136
+ onPress={() => changePage(currentPage - 1)}
137
+ size="s"
138
+ testID={testID ? `${testID}-previous` : undefined}
139
+ variant="ghost"
140
+ >
141
+ {previousLabel}
142
+ </Button>
143
+
144
+ {items.map((item, index) =>
145
+ item === 'ellipsis' ? (
146
+ <Text key={`ellipsis-${index}`} emphasis="muted" variant="bodySmall">
147
+
148
+ </Text>
149
+ ) : (
150
+ <Button
151
+ color={item === currentPage ? 'primary' : 'neutral'}
152
+ disabled={disabled}
153
+ key={item}
154
+ onPress={() => changePage(item)}
155
+ size="s"
156
+ testID={testID ? `${testID}-page-${item}` : undefined}
157
+ variant={item === currentPage ? 'solid' : 'ghost'}
158
+ >
159
+ {item}
160
+ </Button>
161
+ ),
162
+ )}
163
+
164
+ <Button
165
+ disabled={navigationDisabled || !canGoNext}
166
+ onPress={() => changePage(currentPage + 1)}
167
+ size="s"
168
+ testID={testID ? `${testID}-next` : undefined}
169
+ variant="ghost"
170
+ >
171
+ {nextLabel}
172
+ </Button>
173
+
174
+ {showFirstLast ? (
175
+ <Button
176
+ disabled={navigationDisabled || currentPage === normalizedPageCount}
177
+ onPress={() => changePage(normalizedPageCount)}
178
+ size="s"
179
+ testID={testID ? `${testID}-last` : undefined}
180
+ variant="ghost"
181
+ >
182
+ {lastLabel}
183
+ </Button>
184
+ ) : null}
185
+ </Stack>
186
+ );
187
+ }
188
+
189
+ export const Pagination = withZoraThemeScope(PaginationInner);
@@ -0,0 +1,2 @@
1
+ export { Pagination } from './Pagination';
2
+ export type { PaginationProps } from './types';
@@ -0,0 +1,10 @@
1
+ import type { ZoraComponentMeta } from '../../metadata';
2
+
3
+ export const paginationMeta = {
4
+ name: 'Pagination',
5
+ category: 'component',
6
+ directManifestNode: false,
7
+ allowedChildren: [],
8
+ note: 'Code-facing controlled pagination component; not represented as a manifest node in v1.',
9
+ props: {},
10
+ } as const satisfies ZoraComponentMeta;
@@ -0,0 +1,19 @@
1
+ import type React from 'react';
2
+
3
+ import type { ZoraBaseProps } from '../../theme/ZoraBaseProps';
4
+
5
+ export interface PaginationProps extends ZoraBaseProps {
6
+ page: number;
7
+ pageCount: number;
8
+ onPageChange?: (page: number) => void;
9
+ disabled?: boolean;
10
+ siblingCount?: number;
11
+ boundaryCount?: number;
12
+ showFirstLast?: boolean;
13
+ previousLabel?: React.ReactNode;
14
+ nextLabel?: React.ReactNode;
15
+ firstLabel?: React.ReactNode;
16
+ lastLabel?: React.ReactNode;
17
+ compact?: boolean;
18
+ testID?: string;
19
+ }
package/src/index.ts CHANGED
@@ -8,6 +8,8 @@ export type { AvatarGroupItem, AvatarGroupProps } from './components/avatar-grou
8
8
  export { AvatarGroup } from './components/avatar-group';
9
9
  export type { BadgeProps } from './components/badge';
10
10
  export { Badge } from './components/badge';
11
+ export type { BreadcrumbItem, BreadcrumbsProps } from './components/breadcrumbs';
12
+ export { Breadcrumbs } from './components/breadcrumbs';
11
13
  export type { ButtonProps } from './components/button';
12
14
  export { Button } from './components/button';
13
15
  export type {
@@ -101,6 +103,8 @@ export type {
101
103
  export { NavigationItem } from './components/navigation-item';
102
104
  export type { NavigationListProps, ZoraNavigationRouteMap } from './components/navigation-list';
103
105
  export { NavigationList } from './components/navigation-list';
106
+ export type { PaginationProps } from './components/pagination';
107
+ export { Pagination } from './components/pagination';
104
108
  export type { ProgressProps } from './components/progress';
105
109
  export { Progress } from './components/progress';
106
110
  export type { RadioGroupOption, RadioGroupProps, RadioProps } from './components/radio';
@@ -3,6 +3,7 @@ import { appBarMeta } from '../components/app-bar/meta';
3
3
  import { avatarMeta } from '../components/avatar/meta';
4
4
  import { avatarGroupMeta } from '../components/avatar-group/meta';
5
5
  import { badgeMeta } from '../components/badge/meta';
6
+ import { breadcrumbsMeta } from '../components/breadcrumbs/meta';
6
7
  import { buttonMeta } from '../components/button/meta';
7
8
  import { buttonGroupMeta } from '../components/button-group/meta';
8
9
  import { cardMeta } from '../components/card/meta';
@@ -24,6 +25,7 @@ import { metricCardMeta } from '../components/metric-card/meta';
24
25
  import { modalMeta } from '../components/modal/meta';
25
26
  import { navigationItemMeta } from '../components/navigation-item/meta';
26
27
  import { navigationListMeta } from '../components/navigation-list/meta';
28
+ import { paginationMeta } from '../components/pagination/meta';
27
29
  import { progressMeta } from '../components/progress/meta';
28
30
  import { radioGroupMeta, radioMeta } from '../components/radio/meta';
29
31
  import { ratingMeta } from '../components/rating/meta';
@@ -90,6 +92,7 @@ export const ZORA_COMPONENT_META: ZoraComponentMetaRegistry = {
90
92
  Avatar: avatarMeta,
91
93
  AvatarGroup: avatarGroupMeta,
92
94
  Badge: badgeMeta,
95
+ Breadcrumbs: breadcrumbsMeta,
93
96
  Button: buttonMeta,
94
97
  ButtonGroup: buttonGroupMeta,
95
98
  Card: cardMeta,
@@ -116,6 +119,7 @@ export const ZORA_COMPONENT_META: ZoraComponentMetaRegistry = {
116
119
  Modal: modalMeta,
117
120
  NavigationItem: navigationItemMeta,
118
121
  NavigationList: navigationListMeta,
122
+ Pagination: paginationMeta,
119
123
  Progress: progressMeta,
120
124
  Radio: radioMeta,
121
125
  RadioGroup: radioGroupMeta,