@ankhorage/zora 12.1.0 → 13.0.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.
Files changed (100) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +1 -1
  3. package/dist/features/accordion/accordionItemMeta.d.ts +53 -0
  4. package/dist/features/accordion/accordionItemMeta.d.ts.map +1 -0
  5. package/dist/features/accordion/accordionItemMeta.js +45 -0
  6. package/dist/features/accordion/accordionItemMeta.js.map +1 -0
  7. package/dist/features/accordion/accordionMeta.d.ts +36 -0
  8. package/dist/features/accordion/accordionMeta.d.ts.map +1 -0
  9. package/dist/features/accordion/accordionMeta.js +33 -0
  10. package/dist/features/accordion/accordionMeta.js.map +1 -0
  11. package/dist/features/accordion/adapters/inbound/Accordion.d.ts +5 -0
  12. package/dist/features/accordion/adapters/inbound/Accordion.d.ts.map +1 -0
  13. package/dist/features/accordion/adapters/inbound/Accordion.js +41 -0
  14. package/dist/features/accordion/adapters/inbound/Accordion.js.map +1 -0
  15. package/dist/features/accordion/adapters/inbound/AccordionItem.d.ts +5 -0
  16. package/dist/features/accordion/adapters/inbound/AccordionItem.d.ts.map +1 -0
  17. package/dist/features/accordion/adapters/inbound/AccordionItem.js +52 -0
  18. package/dist/features/accordion/adapters/inbound/AccordionItem.js.map +1 -0
  19. package/dist/features/accordion/composition/AccordionPresentationContext.d.ts +4 -0
  20. package/dist/features/accordion/composition/AccordionPresentationContext.d.ts.map +1 -0
  21. package/dist/features/accordion/composition/AccordionPresentationContext.js +3 -0
  22. package/dist/features/accordion/composition/AccordionPresentationContext.js.map +1 -0
  23. package/dist/features/accordion/public.d.ts +4 -0
  24. package/dist/features/accordion/public.d.ts.map +1 -0
  25. package/dist/features/accordion/public.js +3 -0
  26. package/dist/features/accordion/public.js.map +1 -0
  27. package/dist/features/bottom-sheet/bottomSheetMeta.d.ts +1 -1
  28. package/dist/features/card/cardMeta.d.ts +1 -1
  29. package/dist/features/card/mediaCardMeta.d.ts +1 -1
  30. package/dist/features/card/postCardMeta.d.ts +1 -1
  31. package/dist/features/gradient/gradientMeta.d.ts +1 -1
  32. package/dist/features/keyboard-avoiding-view/keyboardAvoidingViewMeta.d.ts +1 -1
  33. package/dist/features/layout/boxMeta.d.ts +1 -1
  34. package/dist/features/layout/containerMeta.d.ts +1 -1
  35. package/dist/features/layout/gridMeta.d.ts +1 -1
  36. package/dist/features/layout/stackMeta.d.ts +1 -1
  37. package/dist/features/list/flatListMeta.d.ts +1 -1
  38. package/dist/features/list/sectionListMeta.d.ts +1 -1
  39. package/dist/features/surface/surfaceMeta.d.ts +1 -1
  40. package/dist/index.d.ts +1 -2
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +1 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/layout/screen/meta.d.ts +1 -1
  45. package/dist/layout/screen-section/meta.d.ts +1 -1
  46. package/dist/metadata/allowedChildren.d.ts +3 -3
  47. package/dist/metadata/allowedChildren.d.ts.map +1 -1
  48. package/dist/metadata/allowedChildren.js +1 -0
  49. package/dist/metadata/allowedChildren.js.map +1 -1
  50. package/dist/metadata/bindableComponentMeta.d.ts +2 -2
  51. package/dist/metadata/componentMeta.d.ts.map +1 -1
  52. package/dist/metadata/componentMeta.js +4 -2
  53. package/dist/metadata/componentMeta.js.map +1 -1
  54. package/dist/patterns/message-bubble/meta.d.ts +1 -1
  55. package/dist/patterns/notice/meta.d.ts +1 -1
  56. package/dist/patterns/panel/meta.d.ts +1 -1
  57. package/dist/patterns/reader/meta.d.ts +2 -2
  58. package/dist/patterns/scanner/meta.d.ts +2 -2
  59. package/dist/registry.d.ts.map +1 -1
  60. package/dist/registry.js +3 -2
  61. package/dist/registry.js.map +1 -1
  62. package/dist/types/accordion.d.ts +23 -0
  63. package/dist/types/accordion.d.ts.map +1 -0
  64. package/dist/types/accordion.js +2 -0
  65. package/dist/types/accordion.js.map +1 -0
  66. package/package.json +2 -2
  67. package/src/features/accordion/accordionItemMeta.ts +46 -0
  68. package/src/features/accordion/accordionMeta.ts +34 -0
  69. package/src/features/accordion/adapters/inbound/Accordion.tsx +94 -0
  70. package/src/features/accordion/adapters/inbound/AccordionItem.tsx +86 -0
  71. package/src/features/accordion/composition/AccordionPresentationContext.ts +6 -0
  72. package/src/features/accordion/public.ts +9 -0
  73. package/src/index.ts +9 -2
  74. package/src/metadata/allowedChildren.ts +1 -0
  75. package/src/metadata/componentMeta.test.ts +9 -0
  76. package/src/metadata/componentMeta.ts +4 -2
  77. package/src/registry.ts +3 -2
  78. package/src/showcaseCoverage.test.ts +2 -1
  79. package/src/theme/themeScopeStructure.test.ts +3 -2
  80. package/src/types/accordion.ts +38 -0
  81. package/dist/patterns/disclosure-section/DisclosureSection.d.ts +0 -9
  82. package/dist/patterns/disclosure-section/DisclosureSection.d.ts.map +0 -1
  83. package/dist/patterns/disclosure-section/DisclosureSection.js +0 -86
  84. package/dist/patterns/disclosure-section/DisclosureSection.js.map +0 -1
  85. package/dist/patterns/disclosure-section/index.d.ts +0 -3
  86. package/dist/patterns/disclosure-section/index.d.ts.map +0 -1
  87. package/dist/patterns/disclosure-section/index.js +0 -3
  88. package/dist/patterns/disclosure-section/index.js.map +0 -1
  89. package/dist/patterns/disclosure-section/meta.d.ts +0 -9
  90. package/dist/patterns/disclosure-section/meta.d.ts.map +0 -1
  91. package/dist/patterns/disclosure-section/meta.js +0 -9
  92. package/dist/patterns/disclosure-section/meta.js.map +0 -1
  93. package/dist/patterns/disclosure-section/types.d.ts +0 -15
  94. package/dist/patterns/disclosure-section/types.d.ts.map +0 -1
  95. package/dist/patterns/disclosure-section/types.js +0 -2
  96. package/dist/patterns/disclosure-section/types.js.map +0 -1
  97. package/src/patterns/disclosure-section/DisclosureSection.tsx +0 -130
  98. package/src/patterns/disclosure-section/index.ts +0 -2
  99. package/src/patterns/disclosure-section/meta.ts +0 -10
  100. package/src/patterns/disclosure-section/types.ts +0 -16
package/dist/registry.js CHANGED
@@ -9,6 +9,7 @@ import { Select } from './components/select';
9
9
  import { Tabs } from './components/tabs';
10
10
  import { Toast } from './components/toast';
11
11
  import { Toolbar, ToolbarAction } from './components/toolbar';
12
+ import { Accordion, AccordionItem } from './features/accordion/public';
12
13
  import { ActivityIndicator } from './features/activity-indicator/public';
13
14
  import { ForgotPasswordForm, OAuthProviderButton, OAuthProviderList, OtpForm, SignInForm, SignUpForm, } from './features/auth/public';
14
15
  import { Avatar } from './features/avatar/public';
@@ -58,7 +59,6 @@ import { TopbarLayout } from './layout/topbar-layout';
58
59
  import { ChatListItem } from './patterns/chat-list-item';
59
60
  import { CollectionEditor } from './patterns/collection-editor';
60
61
  import { ConfirmDialog } from './patterns/confirm-dialog';
61
- import { DisclosureSection } from './patterns/disclosure-section';
62
62
  import { FilterBar } from './patterns/filter-bar';
63
63
  import { InspectorField } from './patterns/inspector-field';
64
64
  import { List, ListRow, ListSection } from './patterns/list';
@@ -77,6 +77,8 @@ import { Timeline } from './patterns/timeline';
77
77
  import { TreeItem, TreeView } from './patterns/tree-view';
78
78
  import { ThemeModeToggle } from './theme/ThemeModeToggle';
79
79
  const _ZORA_COMPONENT_REGISTRY = {
80
+ Accordion,
81
+ AccordionItem,
80
82
  ActivityIndicator,
81
83
  AppBar,
82
84
  Avatar,
@@ -157,7 +159,6 @@ const _ZORA_COMPONENT_REGISTRY = {
157
159
  CollectionEditor,
158
160
  ConfirmDialog,
159
161
  ContentRail,
160
- DisclosureSection,
161
162
  EmptyState,
162
163
  FilterBar,
163
164
  Hero,
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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","sourcesContent":["import type { InteractionPolicyProps } from '@ankhorage/surface';\nimport type React from 'react';\n\nimport { AppBar } from './components/app-bar';\nimport { Breadcrumbs } from './components/breadcrumbs';\nimport { DropdownMenu, Menu } from './components/menu';\nimport { Modal } from './components/modal';\nimport { Pagination } from './components/pagination';\nimport { Rating } from './components/rating';\nimport { SearchBar } from './components/search-bar';\nimport { Select } from './components/select';\nimport { Tabs } from './components/tabs';\nimport { Toast } from './components/toast';\nimport { Toolbar, ToolbarAction } from './components/toolbar';\nimport { ActivityIndicator } from './features/activity-indicator/public';\nimport {\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n SignInForm,\n SignUpForm,\n} from './features/auth/public';\nimport { Avatar } from './features/avatar/public';\nimport { AvatarGroup } from './features/avatar/public';\nimport { Badge } from './features/badge/public';\nimport { BottomSheet } from './features/bottom-sheet/public';\nimport { Button } from './features/button/public';\nimport { ButtonGroup } from './features/button/public';\nimport { IconButton } from './features/button/public';\nimport { Card } from './features/card/public';\nimport { MediaCard } from './features/card/public';\nimport { MetricCard } from './features/card/public';\nimport { PostCard } from './features/card/public';\nimport { ProductCard } from './features/card/public';\nimport { Chip } from './features/chip/public';\nimport { ChipGroup } from './features/chip/public';\nimport { DataTable } from './features/data-table/public';\nimport { DatePicker } from './features/date-picker/public';\nimport { EmptyState } from './features/empty-state/public';\nimport { Checkbox, CheckboxGroup } from './features/form/checkbox/public';\nimport { Form, FormActions, FormError, FormField } from './features/form/public';\nimport { Radio, RadioGroup } from './features/form/radio/public';\nimport { TextInput } from './features/form/text-input/public';\nimport { Gradient } from './features/gradient/public';\nimport { Hero } from './features/hero/public';\nimport { Icon } from './features/icon/public';\nimport { Image } from './features/image/public';\nimport { KeyboardAvoidingView } from './features/keyboard-avoiding-view/public';\nimport { Box, Container, Divider, Grid, Stack } from './features/layout/public';\nimport { ContentRail } from './features/layout/public';\nimport { FlatList, SectionList } from './features/list/public';\nimport { MissingElement } from './features/missing-element/public';\nimport { Progress, ProgressRing } from './features/progress/public';\nimport { Skeleton, SkeletonCard, SkeletonList, SkeletonText } from './features/skeleton/public';\nimport { Surface } from './features/surface/public';\nimport { TimePicker } from './features/time-picker/public';\nimport { Heading } from './features/typography/public';\nimport { Text } from './features/typography/public';\nimport { Uploader } from './features/uploader/public';\nimport { Center, Inline, Show, Spacer } from './foundation';\nimport { AppShell } from './layout/app-shell';\nimport { Screen } from './layout/screen';\nimport { ScreenSection } from './layout/screen-section';\nimport { SettingsLayout } from './layout/settings-layout';\nimport { SidebarLayout } from './layout/sidebar-layout';\nimport { TopbarLayout } from './layout/topbar-layout';\nimport { ChatListItem } from './patterns/chat-list-item';\nimport { CollectionEditor } from './patterns/collection-editor';\nimport { ConfirmDialog } from './patterns/confirm-dialog';\nimport { DisclosureSection } from './patterns/disclosure-section';\nimport { FilterBar } from './patterns/filter-bar';\nimport { InspectorField } from './patterns/inspector-field';\nimport { List, ListRow, ListSection } from './patterns/list';\nimport { MessageBubble } from './patterns/message-bubble';\nimport { Notice } from './patterns/notice';\nimport { Panel } from './patterns/panel';\nimport { ReaderSurface } from './patterns/reader';\nimport { BarcodeScannerView, CameraPermissionView, ScanOverlay } from './patterns/scanner';\nimport { SectionHeader } from './patterns/section-header';\nimport { SelectableItem } from './patterns/selection';\nimport { SettingsRow } from './patterns/settings-row';\nimport { SwitchField } from './patterns/switch-field';\nimport { ThemeComposer } from './patterns/theme-composer';\nimport { PaletteItem, TileGrid } from './patterns/tile-grid';\nimport { Timeline } from './patterns/timeline';\nimport { TreeItem, TreeView } from './patterns/tree-view';\nimport { ThemeModeToggle } from './theme/ThemeModeToggle';\n\nexport type ZoraComponentRegistry = Readonly<Record<string, React.ElementType>>;\n\ntype ComponentPropsFor<K extends keyof typeof _ZORA_COMPONENT_REGISTRY> = React.ComponentProps<\n (typeof _ZORA_COMPONENT_REGISTRY)[K]\n>;\n\ntype AcceptsSurfaceInteractionPolicyProps<P> = 'interactionPolicy' extends keyof P\n ? InteractionPolicyProps extends Pick<P, 'interactionPolicy'>\n ? Pick<P, 'interactionPolicy'> extends InteractionPolicyProps\n ? true\n : false\n : false\n : false;\n\ntype RegistryInteractionPolicyContract = {\n [K in keyof typeof _ZORA_COMPONENT_REGISTRY]: AcceptsSurfaceInteractionPolicyProps<\n ComponentPropsFor<K>\n >;\n};\n\ntype _AssertTrue<T extends true> = T;\ntype _RegistryInteractionPolicyCheck = _AssertTrue<\n RegistryInteractionPolicyContract[keyof typeof _ZORA_COMPONENT_REGISTRY]\n>;\n\nconst _ZORA_COMPONENT_REGISTRY = {\n ActivityIndicator,\n AppBar,\n Avatar,\n AvatarGroup,\n Badge,\n Breadcrumbs,\n Button,\n ButtonGroup,\n Card,\n Checkbox,\n CheckboxGroup,\n Chip,\n ChipGroup,\n DataTable,\n DatePicker,\n DropdownMenu,\n Form,\n FormActions,\n FormError,\n FormField,\n Gradient,\n Heading,\n Icon,\n IconButton,\n Image,\n KeyboardAvoidingView,\n TextInput,\n MediaCard,\n Menu,\n MetricCard,\n Modal,\n Pagination,\n Progress,\n ProgressRing,\n Radio,\n RadioGroup,\n Rating,\n SearchBar,\n Select,\n Skeleton,\n SkeletonCard,\n SkeletonList,\n SkeletonText,\n Tabs,\n Text,\n TimePicker,\n Toast,\n Toolbar,\n ToolbarAction,\n Uploader,\n BottomSheet,\n FlatList,\n SectionList,\n ThemeModeToggle,\n Box,\n Center,\n Container,\n Divider,\n Grid,\n Inline,\n Show,\n Spacer,\n Stack,\n Surface,\n AppShell,\n Screen,\n ScreenSection,\n SettingsLayout,\n SidebarLayout,\n TopbarLayout,\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n SignInForm,\n SignUpForm,\n ChatListItem,\n CollectionEditor,\n ConfirmDialog,\n ContentRail,\n DisclosureSection,\n EmptyState,\n FilterBar,\n Hero,\n InspectorField,\n List,\n ListRow,\n ListSection,\n MessageBubble,\n MissingElement,\n Notice,\n Panel,\n PostCard,\n ProductCard,\n ReaderSurface,\n BarcodeScannerView,\n CameraPermissionView,\n ScanOverlay,\n SectionHeader,\n SelectableItem,\n SettingsRow,\n SwitchField,\n ThemeComposer,\n PaletteItem,\n TileGrid,\n Timeline,\n TreeItem,\n TreeView,\n} as const satisfies ZoraComponentRegistry;\n\nexport const ZORA_COMPONENT_REGISTRY: ZoraComponentRegistry = _ZORA_COMPONENT_REGISTRY;\n"]}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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","sourcesContent":["import type { InteractionPolicyProps } from '@ankhorage/surface';\nimport type React from 'react';\n\nimport { AppBar } from './components/app-bar';\nimport { Breadcrumbs } from './components/breadcrumbs';\nimport { DropdownMenu, Menu } from './components/menu';\nimport { Modal } from './components/modal';\nimport { Pagination } from './components/pagination';\nimport { Rating } from './components/rating';\nimport { SearchBar } from './components/search-bar';\nimport { Select } from './components/select';\nimport { Tabs } from './components/tabs';\nimport { Toast } from './components/toast';\nimport { Toolbar, ToolbarAction } from './components/toolbar';\nimport { Accordion, AccordionItem } from './features/accordion/public';\nimport { ActivityIndicator } from './features/activity-indicator/public';\nimport {\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n SignInForm,\n SignUpForm,\n} from './features/auth/public';\nimport { Avatar } from './features/avatar/public';\nimport { AvatarGroup } from './features/avatar/public';\nimport { Badge } from './features/badge/public';\nimport { BottomSheet } from './features/bottom-sheet/public';\nimport { Button } from './features/button/public';\nimport { ButtonGroup } from './features/button/public';\nimport { IconButton } from './features/button/public';\nimport { Card } from './features/card/public';\nimport { MediaCard } from './features/card/public';\nimport { MetricCard } from './features/card/public';\nimport { PostCard } from './features/card/public';\nimport { ProductCard } from './features/card/public';\nimport { Chip } from './features/chip/public';\nimport { ChipGroup } from './features/chip/public';\nimport { DataTable } from './features/data-table/public';\nimport { DatePicker } from './features/date-picker/public';\nimport { EmptyState } from './features/empty-state/public';\nimport { Checkbox, CheckboxGroup } from './features/form/checkbox/public';\nimport { Form, FormActions, FormError, FormField } from './features/form/public';\nimport { Radio, RadioGroup } from './features/form/radio/public';\nimport { TextInput } from './features/form/text-input/public';\nimport { Gradient } from './features/gradient/public';\nimport { Hero } from './features/hero/public';\nimport { Icon } from './features/icon/public';\nimport { Image } from './features/image/public';\nimport { KeyboardAvoidingView } from './features/keyboard-avoiding-view/public';\nimport { Box, Container, Divider, Grid, Stack } from './features/layout/public';\nimport { ContentRail } from './features/layout/public';\nimport { FlatList, SectionList } from './features/list/public';\nimport { MissingElement } from './features/missing-element/public';\nimport { Progress, ProgressRing } from './features/progress/public';\nimport { Skeleton, SkeletonCard, SkeletonList, SkeletonText } from './features/skeleton/public';\nimport { Surface } from './features/surface/public';\nimport { TimePicker } from './features/time-picker/public';\nimport { Heading } from './features/typography/public';\nimport { Text } from './features/typography/public';\nimport { Uploader } from './features/uploader/public';\nimport { Center, Inline, Show, Spacer } from './foundation';\nimport { AppShell } from './layout/app-shell';\nimport { Screen } from './layout/screen';\nimport { ScreenSection } from './layout/screen-section';\nimport { SettingsLayout } from './layout/settings-layout';\nimport { SidebarLayout } from './layout/sidebar-layout';\nimport { TopbarLayout } from './layout/topbar-layout';\nimport { ChatListItem } from './patterns/chat-list-item';\nimport { CollectionEditor } from './patterns/collection-editor';\nimport { ConfirmDialog } from './patterns/confirm-dialog';\nimport { FilterBar } from './patterns/filter-bar';\nimport { InspectorField } from './patterns/inspector-field';\nimport { List, ListRow, ListSection } from './patterns/list';\nimport { MessageBubble } from './patterns/message-bubble';\nimport { Notice } from './patterns/notice';\nimport { Panel } from './patterns/panel';\nimport { ReaderSurface } from './patterns/reader';\nimport { BarcodeScannerView, CameraPermissionView, ScanOverlay } from './patterns/scanner';\nimport { SectionHeader } from './patterns/section-header';\nimport { SelectableItem } from './patterns/selection';\nimport { SettingsRow } from './patterns/settings-row';\nimport { SwitchField } from './patterns/switch-field';\nimport { ThemeComposer } from './patterns/theme-composer';\nimport { PaletteItem, TileGrid } from './patterns/tile-grid';\nimport { Timeline } from './patterns/timeline';\nimport { TreeItem, TreeView } from './patterns/tree-view';\nimport { ThemeModeToggle } from './theme/ThemeModeToggle';\n\nexport type ZoraComponentRegistry = Readonly<Record<string, React.ElementType>>;\n\ntype ComponentPropsFor<K extends keyof typeof _ZORA_COMPONENT_REGISTRY> = React.ComponentProps<\n (typeof _ZORA_COMPONENT_REGISTRY)[K]\n>;\n\ntype AcceptsSurfaceInteractionPolicyProps<P> = 'interactionPolicy' extends keyof P\n ? InteractionPolicyProps extends Pick<P, 'interactionPolicy'>\n ? Pick<P, 'interactionPolicy'> extends InteractionPolicyProps\n ? true\n : false\n : false\n : false;\n\ntype RegistryInteractionPolicyContract = {\n [K in keyof typeof _ZORA_COMPONENT_REGISTRY]: AcceptsSurfaceInteractionPolicyProps<\n ComponentPropsFor<K>\n >;\n};\n\ntype _AssertTrue<T extends true> = T;\ntype _RegistryInteractionPolicyCheck = _AssertTrue<\n RegistryInteractionPolicyContract[keyof typeof _ZORA_COMPONENT_REGISTRY]\n>;\n\nconst _ZORA_COMPONENT_REGISTRY = {\n Accordion,\n AccordionItem,\n ActivityIndicator,\n AppBar,\n Avatar,\n AvatarGroup,\n Badge,\n Breadcrumbs,\n Button,\n ButtonGroup,\n Card,\n Checkbox,\n CheckboxGroup,\n Chip,\n ChipGroup,\n DataTable,\n DatePicker,\n DropdownMenu,\n Form,\n FormActions,\n FormError,\n FormField,\n Gradient,\n Heading,\n Icon,\n IconButton,\n Image,\n KeyboardAvoidingView,\n TextInput,\n MediaCard,\n Menu,\n MetricCard,\n Modal,\n Pagination,\n Progress,\n ProgressRing,\n Radio,\n RadioGroup,\n Rating,\n SearchBar,\n Select,\n Skeleton,\n SkeletonCard,\n SkeletonList,\n SkeletonText,\n Tabs,\n Text,\n TimePicker,\n Toast,\n Toolbar,\n ToolbarAction,\n Uploader,\n BottomSheet,\n FlatList,\n SectionList,\n ThemeModeToggle,\n Box,\n Center,\n Container,\n Divider,\n Grid,\n Inline,\n Show,\n Spacer,\n Stack,\n Surface,\n AppShell,\n Screen,\n ScreenSection,\n SettingsLayout,\n SidebarLayout,\n TopbarLayout,\n ForgotPasswordForm,\n OAuthProviderButton,\n OAuthProviderList,\n OtpForm,\n SignInForm,\n SignUpForm,\n ChatListItem,\n CollectionEditor,\n ConfirmDialog,\n ContentRail,\n EmptyState,\n FilterBar,\n Hero,\n InspectorField,\n List,\n ListRow,\n ListSection,\n MessageBubble,\n MissingElement,\n Notice,\n Panel,\n PostCard,\n ProductCard,\n ReaderSurface,\n BarcodeScannerView,\n CameraPermissionView,\n ScanOverlay,\n SectionHeader,\n SelectableItem,\n SettingsRow,\n SwitchField,\n ThemeComposer,\n PaletteItem,\n TileGrid,\n Timeline,\n TreeItem,\n TreeView,\n} as const satisfies ZoraComponentRegistry;\n\nexport const ZORA_COMPONENT_REGISTRY: ZoraComponentRegistry = _ZORA_COMPONENT_REGISTRY;\n"]}
@@ -0,0 +1,23 @@
1
+ import type { AccordionItemProps as SurfaceAccordionItemProps, AccordionMode, AccordionMultipleProps as SurfaceAccordionMultipleProps, AccordionSingleProps as SurfaceAccordionSingleProps, ButtonIconSpec } from '@ankhorage/surface';
2
+ import type React from 'react';
3
+ import type { ZoraBaseProps } from '../theme/ZoraBaseProps';
4
+ export type { AccordionMode } from '@ankhorage/surface';
5
+ export type AccordionSingleProps = ZoraBaseProps & Omit<SurfaceAccordionSingleProps, 'children'> & {
6
+ children?: React.ReactNode;
7
+ };
8
+ export type AccordionMultipleProps = ZoraBaseProps & Omit<SurfaceAccordionMultipleProps, 'children'> & {
9
+ children?: React.ReactNode;
10
+ };
11
+ export type AccordionProps = AccordionSingleProps | AccordionMultipleProps;
12
+ export type AccordionItemProps = ZoraBaseProps & Omit<SurfaceAccordionItemProps, 'children'> & {
13
+ title: React.ReactNode;
14
+ description?: React.ReactNode;
15
+ icon?: ButtonIconSpec;
16
+ actions?: React.ReactNode;
17
+ children?: React.ReactNode;
18
+ };
19
+ export interface AccordionPresentationContextValue {
20
+ mode: AccordionMode;
21
+ openValues: readonly string[];
22
+ }
23
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../src/types/accordion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,IAAI,yBAAyB,EAC/C,aAAa,EACb,sBAAsB,IAAI,6BAA6B,EACvD,oBAAoB,IAAI,2BAA2B,EACnD,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAC9C,IAAI,CAAC,2BAA2B,EAAE,UAAU,CAAC,GAAG;IAC9C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEJ,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAChD,IAAI,CAAC,6BAA6B,EAAE,UAAU,CAAC,GAAG;IAChD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEJ,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAC5C,IAAI,CAAC,yBAAyB,EAAE,UAAU,CAAC,GAAG;IAC5C,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEJ,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../src/types/accordion.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n AccordionItemProps as SurfaceAccordionItemProps,\n AccordionMode,\n AccordionMultipleProps as SurfaceAccordionMultipleProps,\n AccordionSingleProps as SurfaceAccordionSingleProps,\n ButtonIconSpec,\n} from '@ankhorage/surface';\nimport type React from 'react';\n\nimport type { ZoraBaseProps } from '../theme/ZoraBaseProps';\n\nexport type { AccordionMode } from '@ankhorage/surface';\n\nexport type AccordionSingleProps = ZoraBaseProps &\n Omit<SurfaceAccordionSingleProps, 'children'> & {\n children?: React.ReactNode;\n };\n\nexport type AccordionMultipleProps = ZoraBaseProps &\n Omit<SurfaceAccordionMultipleProps, 'children'> & {\n children?: React.ReactNode;\n };\n\nexport type AccordionProps = AccordionSingleProps | AccordionMultipleProps;\n\nexport type AccordionItemProps = ZoraBaseProps &\n Omit<SurfaceAccordionItemProps, 'children'> & {\n title: React.ReactNode;\n description?: React.ReactNode;\n icon?: ButtonIconSpec;\n actions?: React.ReactNode;\n children?: React.ReactNode;\n };\n\nexport interface AccordionPresentationContextValue {\n mode: AccordionMode;\n openValues: readonly string[];\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ankhorage/zora",
3
3
  "type": "module",
4
- "version": "12.1.0",
4
+ "version": "13.0.0",
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": {
@@ -42,7 +42,7 @@
42
42
  "dependencies": {
43
43
  "@ankhorage/color-theory": "^0.3.0",
44
44
  "@ankhorage/contracts": "^12.0.1",
45
- "@ankhorage/surface": "^4.2.0",
45
+ "@ankhorage/surface": "^4.3.0",
46
46
  "@ankhorage/utility": "^0.8.0",
47
47
  "expo-document-picker": "~57.0.1",
48
48
  "expo-image-picker": "~57.0.16"
@@ -0,0 +1,46 @@
1
+ import type { ZoraComponentMeta } from '../../metadata';
2
+ import { CONTAINER_ALLOWED_CHILDREN } from '../../metadata/allowedChildren';
3
+
4
+ export const accordionItemMeta = {
5
+ name: 'AccordionItem',
6
+ category: 'component',
7
+ description: 'One expandable accordion item with authored content and optional actions.',
8
+ directManifestNode: true,
9
+ allowedChildren: [...CONTAINER_ALLOWED_CHILDREN],
10
+ blueprint: {
11
+ label: 'Accordion item',
12
+ defaultProps: { value: 'item', title: 'Accordion item' },
13
+ },
14
+ slots: {
15
+ actions: {
16
+ label: 'Actions',
17
+ allowedChildren: ['Button', 'ButtonGroup', 'IconButton'],
18
+ },
19
+ },
20
+ props: {
21
+ value: {
22
+ type: 'string',
23
+ category: 'Behavior',
24
+ label: 'Value',
25
+ authoring: { authority: 'instance' },
26
+ },
27
+ title: {
28
+ type: 'string',
29
+ category: 'Content',
30
+ label: 'Title',
31
+ authoring: { authority: 'instance' },
32
+ },
33
+ description: {
34
+ type: 'string',
35
+ category: 'Content',
36
+ label: 'Description',
37
+ authoring: { authority: 'instance' },
38
+ },
39
+ disabled: {
40
+ type: 'boolean',
41
+ category: 'State',
42
+ label: 'Disabled',
43
+ default: false,
44
+ },
45
+ },
46
+ } as const satisfies ZoraComponentMeta;
@@ -0,0 +1,34 @@
1
+ import type { ZoraComponentMeta } from '../../metadata';
2
+
3
+ export const accordionMeta = {
4
+ name: 'Accordion',
5
+ category: 'component',
6
+ description: 'Groups expandable content items with single or multiple expansion behavior.',
7
+ directManifestNode: true,
8
+ allowedChildren: ['AccordionItem'],
9
+ blueprint: {
10
+ label: 'Accordion',
11
+ defaultProps: { type: 'single', collapsible: true },
12
+ },
13
+ props: {
14
+ type: {
15
+ type: 'enum',
16
+ category: 'Behavior',
17
+ label: 'Expansion mode',
18
+ enum: ['single', 'multiple'],
19
+ default: 'single',
20
+ },
21
+ collapsible: {
22
+ type: 'boolean',
23
+ category: 'Behavior',
24
+ label: 'Collapsible',
25
+ default: true,
26
+ },
27
+ disabled: {
28
+ type: 'boolean',
29
+ category: 'State',
30
+ label: 'Disabled',
31
+ default: false,
32
+ },
33
+ },
34
+ } as const satisfies ZoraComponentMeta;
@@ -0,0 +1,94 @@
1
+ import { Accordion as SurfaceAccordion } from '@ankhorage/surface';
2
+ import React from 'react';
3
+
4
+ import { withZoraThemeScope } from '../../../../theme/withZoraThemeScope';
5
+ import type {
6
+ AccordionMultipleProps,
7
+ AccordionProps,
8
+ AccordionSingleProps,
9
+ } from '../../../../types/accordion';
10
+ import { AccordionPresentationContext } from '../../composition/AccordionPresentationContext';
11
+
12
+ /*** Renders a ZORA accordion backed by Surface expansion and accessibility mechanics. */
13
+ export const Accordion = withZoraThemeScope(AccordionInner);
14
+
15
+ /*** Routes the public accordion union to its single or multiple Surface contract. */
16
+ function AccordionInner(props: AccordionProps) {
17
+ if (props.type === 'multiple') {
18
+ return <MultipleAccordion {...props} />;
19
+ }
20
+
21
+ return <SingleAccordion {...props} />;
22
+ }
23
+
24
+ /*** Mirrors Surface multiple-value state for ZORA presentation only. */
25
+ function MultipleAccordion({
26
+ themeId: _themeId,
27
+ mode: _mode,
28
+ children,
29
+ defaultValue,
30
+ interactionPolicy,
31
+ onValueChange,
32
+ value,
33
+ ...surfaceProps
34
+ }: AccordionMultipleProps) {
35
+ const [presentationValues, setPresentationValues] = React.useState<readonly string[]>(
36
+ () => value ?? defaultValue ?? [],
37
+ );
38
+ const openValues = value ?? presentationValues;
39
+
40
+ return (
41
+ <AccordionPresentationContext.Provider value={{ mode: 'multiple', openValues }}>
42
+ <SurfaceAccordion
43
+ {...surfaceProps}
44
+ defaultValue={defaultValue}
45
+ interactionPolicy={interactionPolicy}
46
+ onValueChange={(nextValues) => {
47
+ setPresentationValues(nextValues);
48
+ onValueChange?.(nextValues);
49
+ }}
50
+ type="multiple"
51
+ value={value}
52
+ >
53
+ {children}
54
+ </SurfaceAccordion>
55
+ </AccordionPresentationContext.Provider>
56
+ );
57
+ }
58
+
59
+ /*** Mirrors Surface single-value state for ZORA presentation only. */
60
+ function SingleAccordion({
61
+ themeId: _themeId,
62
+ mode: _mode,
63
+ children,
64
+ defaultValue,
65
+ interactionPolicy,
66
+ onValueChange,
67
+ type: _type,
68
+ value,
69
+ ...surfaceProps
70
+ }: AccordionSingleProps) {
71
+ const [presentationValue, setPresentationValue] = React.useState<string | undefined>(
72
+ () => value ?? defaultValue,
73
+ );
74
+ const openValue = value ?? presentationValue;
75
+ const openValues = openValue === undefined ? [] : [openValue];
76
+
77
+ return (
78
+ <AccordionPresentationContext.Provider value={{ mode: 'single', openValues }}>
79
+ <SurfaceAccordion
80
+ {...surfaceProps}
81
+ defaultValue={defaultValue}
82
+ interactionPolicy={interactionPolicy}
83
+ onValueChange={(nextValue) => {
84
+ setPresentationValue(nextValue);
85
+ onValueChange?.(nextValue);
86
+ }}
87
+ type="single"
88
+ value={value}
89
+ >
90
+ {children}
91
+ </SurfaceAccordion>
92
+ </AccordionPresentationContext.Provider>
93
+ );
94
+ }
@@ -0,0 +1,86 @@
1
+ import {
2
+ AccordionContent as SurfaceAccordionContent,
3
+ AccordionItem as SurfaceAccordionItem,
4
+ AccordionTrigger as SurfaceAccordionTrigger,
5
+ } from '@ankhorage/surface';
6
+ import React from 'react';
7
+ import type { ViewStyle } from 'react-native';
8
+
9
+ import { withZoraThemeScope } from '../../../../theme/withZoraThemeScope';
10
+ import type { AccordionItemProps } from '../../../../types/accordion';
11
+ import { Icon } from '../../../icon/public';
12
+ import { Box, Divider, Stack } from '../../../layout/public';
13
+ import { Heading, Text } from '../../../typography/public';
14
+ import { AccordionPresentationContext } from '../../composition/AccordionPresentationContext';
15
+
16
+ /*** Renders one opinionated ZORA accordion item over Surface trigger/content primitives. */
17
+ export const AccordionItem = withZoraThemeScope(AccordionItemInner);
18
+
19
+ const triggerStyle: ViewStyle = { flex: 1 };
20
+
21
+ /*** Composes the item header, optional actions, expanded content, and separator. */
22
+ function AccordionItemInner({
23
+ themeId: _themeId,
24
+ mode: _mode,
25
+ actions,
26
+ children,
27
+ description,
28
+ disabled,
29
+ icon,
30
+ interactionPolicy,
31
+ testID,
32
+ title,
33
+ value,
34
+ ...surfaceItemProps
35
+ }: AccordionItemProps) {
36
+ const presentation = React.useContext(AccordionPresentationContext);
37
+ if (!presentation) {
38
+ throw new Error('AccordionItem must be rendered inside Accordion.');
39
+ }
40
+
41
+ const open = presentation.openValues.includes(value);
42
+
43
+ return (
44
+ <SurfaceAccordionItem
45
+ {...surfaceItemProps}
46
+ disabled={disabled}
47
+ interactionPolicy={interactionPolicy}
48
+ testID={testID}
49
+ value={value}
50
+ >
51
+ <Stack gap="none">
52
+ <Stack align="center" direction="row" gap="s">
53
+ <Box flex={1}>
54
+ <SurfaceAccordionTrigger interactionPolicy={interactionPolicy} style={triggerStyle}>
55
+ <Box px="m" py="m">
56
+ <Stack align="center" direction="row" gap="m">
57
+ {icon ? <Icon {...icon} /> : null}
58
+ <Box flex={1}>
59
+ <Stack gap="xs">
60
+ <Heading level={4}>{title}</Heading>
61
+ {description ? (
62
+ <Text emphasis="muted" variant="bodySmall">
63
+ {description}
64
+ </Text>
65
+ ) : null}
66
+ </Stack>
67
+ </Box>
68
+ <Icon name={open ? 'chevron-up-outline' : 'chevron-down-outline'} size="m" />
69
+ </Stack>
70
+ </Box>
71
+ </SurfaceAccordionTrigger>
72
+ </Box>
73
+ {actions ? <Box pr="m">{actions}</Box> : null}
74
+ </Stack>
75
+
76
+ <SurfaceAccordionContent>
77
+ <Box px="m" pb="m">
78
+ <Stack gap="m">{children}</Stack>
79
+ </Box>
80
+ </SurfaceAccordionContent>
81
+
82
+ <Divider />
83
+ </Stack>
84
+ </SurfaceAccordionItem>
85
+ );
86
+ }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+
3
+ import type { AccordionPresentationContextValue } from '../../../types/accordion';
4
+
5
+ export const AccordionPresentationContext =
6
+ React.createContext<AccordionPresentationContextValue | null>(null);
@@ -0,0 +1,9 @@
1
+ export type {
2
+ AccordionItemProps,
3
+ AccordionMode,
4
+ AccordionMultipleProps,
5
+ AccordionProps,
6
+ AccordionSingleProps,
7
+ } from '../../types/accordion';
8
+ export { Accordion } from './adapters/inbound/Accordion';
9
+ export { AccordionItem } from './adapters/inbound/AccordionItem';
package/src/index.ts CHANGED
@@ -22,6 +22,15 @@ export type { ToolbarActionProps, ToolbarPosition, ToolbarProps } from './compon
22
22
  export { Toolbar, ToolbarAction } from './components/toolbar';
23
23
  export { ZORA_CORE_PLUGIN } from './corePlugin';
24
24
  export { ZORA_CORE_PLUGIN_METADATA } from './corePluginMetadata';
25
+ export {
26
+ Accordion,
27
+ AccordionItem,
28
+ type AccordionItemProps,
29
+ type AccordionMode,
30
+ type AccordionMultipleProps,
31
+ type AccordionProps,
32
+ type AccordionSingleProps,
33
+ } from './features/accordion/public';
25
34
  export {
26
35
  ActivityIndicator,
27
36
  type ActivityIndicatorProps,
@@ -334,8 +343,6 @@ export type {
334
343
  export { CollectionEditor } from './patterns/collection-editor';
335
344
  export type { ConfirmDialogProps } from './patterns/confirm-dialog';
336
345
  export { ConfirmDialog } from './patterns/confirm-dialog';
337
- export type { DisclosureSectionProps } from './patterns/disclosure-section';
338
- export { DisclosureSection } from './patterns/disclosure-section';
339
346
  export type { FilterBarProps } from './patterns/filter-bar';
340
347
  export { FilterBar } from './patterns/filter-bar';
341
348
  export type { InspectorFieldProps } from './patterns/inspector-field';
@@ -6,6 +6,7 @@ export const CONTAINER_ALLOWED_CHILDREN = [
6
6
  'OtpForm',
7
7
  'SignInForm',
8
8
  'SignUpForm',
9
+ 'Accordion',
9
10
  'Surface',
10
11
  'Avatar',
11
12
  'AvatarGroup',
@@ -186,6 +186,8 @@ describe('ZORA_COMPONENT_META invariants', () => {
186
186
  ]);
187
187
 
188
188
  const expectedContainerNodes = new Set([
189
+ 'Accordion',
190
+ 'AccordionItem',
189
191
  'Form',
190
192
  'Gradient',
191
193
  'Surface',
@@ -234,6 +236,13 @@ describe('ZORA_COMPONENT_META invariants', () => {
234
236
  }
235
237
  });
236
238
 
239
+ test('Accordion constrains authored items to its canonical hierarchy', () => {
240
+ expect(ZORA_COMPONENT_META.Accordion.directManifestNode).toBe(true);
241
+ expect(ZORA_COMPONENT_META.Accordion.allowedChildren).toEqual(['AccordionItem']);
242
+ expect(ZORA_COMPONENT_META.AccordionItem.directManifestNode).toBe(true);
243
+ expect(ZORA_COMPONENT_META.AccordionItem.allowedChildren).not.toContain('AccordionItem');
244
+ });
245
+
237
246
  test('Image is a direct manifest leaf with canonical media authoring metadata', () => {
238
247
  expect(ZORA_COMPONENT_META.Image.directManifestNode).toBe(true);
239
248
  expect(ZORA_COMPONENT_META.Image.allowedChildren).toEqual([]);
@@ -9,6 +9,8 @@ import { selectMeta } from '../components/select/meta';
9
9
  import { tabsMeta } from '../components/tabs/meta';
10
10
  import { toastMeta, toastProviderMeta } from '../components/toast/meta';
11
11
  import { toolbarActionMeta, toolbarMeta } from '../components/toolbar/meta';
12
+ import { accordionItemMeta } from '../features/accordion/accordionItemMeta';
13
+ import { accordionMeta } from '../features/accordion/accordionMeta';
12
14
  import { activityIndicatorMeta } from '../features/activity-indicator/activityIndicatorMeta';
13
15
  import { forgotPasswordFormMeta } from '../features/auth/forgotPasswordFormMeta';
14
16
  import { oauthProviderButtonMeta } from '../features/auth/oauthProviderButtonMeta';
@@ -76,7 +78,6 @@ import { topbarLayoutMeta } from '../layout/topbar-layout/meta';
76
78
  import { chatListItemMeta } from '../patterns/chat-list-item/meta';
77
79
  import { collectionEditorMeta } from '../patterns/collection-editor/meta';
78
80
  import { confirmDialogMeta } from '../patterns/confirm-dialog/meta';
79
- import { disclosureSectionMeta } from '../patterns/disclosure-section/meta';
80
81
  import { filterBarMeta } from '../patterns/filter-bar/meta';
81
82
  import { inspectorFieldMeta } from '../patterns/inspector-field/meta';
82
83
  import { listMeta, listRowMeta, listSectionMeta } from '../patterns/list/meta';
@@ -103,6 +104,8 @@ import type { ZoraComponentMetaRegistry } from './types';
103
104
 
104
105
  export const ZORA_COMPONENT_META: ZoraComponentMetaRegistry = finalizeFeatureMetadata({
105
106
  ...foundationMetas,
107
+ Accordion: accordionMeta,
108
+ AccordionItem: accordionItemMeta,
106
109
  ActivityIndicator: activityIndicatorMeta,
107
110
  Box: boxMeta,
108
111
  Container: containerMeta,
@@ -180,7 +183,6 @@ export const ZORA_COMPONENT_META: ZoraComponentMetaRegistry = finalizeFeatureMet
180
183
  CollectionEditor: collectionEditorMeta,
181
184
  ConfirmDialog: confirmDialogMeta,
182
185
  ContentRail: contentRailMeta,
183
- DisclosureSection: disclosureSectionMeta,
184
186
  EmptyState: emptyStateMeta,
185
187
  FilterBar: filterBarMeta,
186
188
  Hero: heroMeta,
package/src/registry.ts CHANGED
@@ -12,6 +12,7 @@ import { Select } from './components/select';
12
12
  import { Tabs } from './components/tabs';
13
13
  import { Toast } from './components/toast';
14
14
  import { Toolbar, ToolbarAction } from './components/toolbar';
15
+ import { Accordion, AccordionItem } from './features/accordion/public';
15
16
  import { ActivityIndicator } from './features/activity-indicator/public';
16
17
  import {
17
18
  ForgotPasswordForm,
@@ -68,7 +69,6 @@ import { TopbarLayout } from './layout/topbar-layout';
68
69
  import { ChatListItem } from './patterns/chat-list-item';
69
70
  import { CollectionEditor } from './patterns/collection-editor';
70
71
  import { ConfirmDialog } from './patterns/confirm-dialog';
71
- import { DisclosureSection } from './patterns/disclosure-section';
72
72
  import { FilterBar } from './patterns/filter-bar';
73
73
  import { InspectorField } from './patterns/inspector-field';
74
74
  import { List, ListRow, ListSection } from './patterns/list';
@@ -113,6 +113,8 @@ type _RegistryInteractionPolicyCheck = _AssertTrue<
113
113
  >;
114
114
 
115
115
  const _ZORA_COMPONENT_REGISTRY = {
116
+ Accordion,
117
+ AccordionItem,
116
118
  ActivityIndicator,
117
119
  AppBar,
118
120
  Avatar,
@@ -193,7 +195,6 @@ const _ZORA_COMPONENT_REGISTRY = {
193
195
  CollectionEditor,
194
196
  ConfirmDialog,
195
197
  ContentRail,
196
- DisclosureSection,
197
198
  EmptyState,
198
199
  FilterBar,
199
200
  Hero,
@@ -17,6 +17,8 @@ const IGNORED_DIRECTORY_NAMES = new Set([
17
17
 
18
18
  const REQUIRED_SHOWCASE_COVERAGE = {
19
19
  components: [
20
+ 'Accordion',
21
+ 'AccordionItem',
20
22
  'AppBar',
21
23
  'Avatar',
22
24
  'AvatarGroup',
@@ -81,7 +83,6 @@ const REQUIRED_SHOWCASE_COVERAGE = {
81
83
  'SignUpForm',
82
84
  'CollectionEditor',
83
85
  'ConfirmDialog',
84
- 'DisclosureSection',
85
86
  'EmptyState',
86
87
  'FilterBar',
87
88
  'SelectableItem',
@@ -57,6 +57,8 @@ const scopedComponentFiles = [
57
57
  join(srcDir, 'features', 'list', 'adapters', 'inbound', 'SectionList.tsx'),
58
58
  join(srcDir, 'features', 'bottom-sheet', 'adapters', 'inbound', 'BottomSheet.tsx'),
59
59
  join(srcDir, 'components', 'app-bar', 'AppBar.tsx'),
60
+ join(srcDir, 'features', 'accordion', 'adapters', 'inbound', 'Accordion.tsx'),
61
+ join(srcDir, 'features', 'accordion', 'adapters', 'inbound', 'AccordionItem.tsx'),
60
62
  join(srcDir, 'features', 'badge', 'adapters', 'inbound', 'Badge.tsx'),
61
63
  join(srcDir, 'features', 'button', 'adapters', 'inbound', 'Button.tsx'),
62
64
  join(srcDir, 'features', 'button', 'adapters', 'inbound', 'ButtonGroup.tsx'),
@@ -98,7 +100,6 @@ const scopedComponentFiles = [
98
100
  join(srcDir, 'features', 'gradient', 'adapters', 'inbound', 'Gradient.tsx'),
99
101
  join(srcDir, 'patterns', 'collection-editor', 'CollectionEditor.tsx'),
100
102
  join(srcDir, 'patterns', 'confirm-dialog', 'ConfirmDialog.tsx'),
101
- join(srcDir, 'patterns', 'disclosure-section', 'DisclosureSection.tsx'),
102
103
  join(srcDir, 'features', 'empty-state', 'adapters', 'inbound', 'EmptyState.tsx'),
103
104
  join(srcDir, 'patterns', 'inspector-field', 'InspectorField.tsx'),
104
105
  join(srcDir, 'patterns', 'list', 'List.tsx'),
@@ -129,6 +130,7 @@ const scopedComponentFiles = [
129
130
 
130
131
  const scopedPropTypeFiles = [
131
132
  join(srcDir, 'components', 'app-bar', 'types.ts'),
133
+ join(srcDir, 'types', 'accordion.ts'),
132
134
  join(srcDir, 'types', 'badge.ts'),
133
135
  join(srcDir, 'types', 'button.ts'),
134
136
  join(srcDir, 'types', 'button-group.ts'),
@@ -161,7 +163,6 @@ const scopedPropTypeFiles = [
161
163
  join(srcDir, 'types', 'gradient.ts'),
162
164
  join(srcDir, 'patterns', 'collection-editor', 'types.ts'),
163
165
  join(srcDir, 'patterns', 'confirm-dialog', 'types.ts'),
164
- join(srcDir, 'patterns', 'disclosure-section', 'types.ts'),
165
166
  join(srcDir, 'types', 'empty-state.ts'),
166
167
  join(srcDir, 'patterns', 'inspector-field', 'types.ts'),
167
168
  join(srcDir, 'patterns', 'list', 'types.ts'),
@@ -0,0 +1,38 @@
1
+ import type {
2
+ AccordionItemProps as SurfaceAccordionItemProps,
3
+ AccordionMode,
4
+ AccordionMultipleProps as SurfaceAccordionMultipleProps,
5
+ AccordionSingleProps as SurfaceAccordionSingleProps,
6
+ ButtonIconSpec,
7
+ } from '@ankhorage/surface';
8
+ import type React from 'react';
9
+
10
+ import type { ZoraBaseProps } from '../theme/ZoraBaseProps';
11
+
12
+ export type { AccordionMode } from '@ankhorage/surface';
13
+
14
+ export type AccordionSingleProps = ZoraBaseProps &
15
+ Omit<SurfaceAccordionSingleProps, 'children'> & {
16
+ children?: React.ReactNode;
17
+ };
18
+
19
+ export type AccordionMultipleProps = ZoraBaseProps &
20
+ Omit<SurfaceAccordionMultipleProps, 'children'> & {
21
+ children?: React.ReactNode;
22
+ };
23
+
24
+ export type AccordionProps = AccordionSingleProps | AccordionMultipleProps;
25
+
26
+ export type AccordionItemProps = ZoraBaseProps &
27
+ Omit<SurfaceAccordionItemProps, 'children'> & {
28
+ title: React.ReactNode;
29
+ description?: React.ReactNode;
30
+ icon?: ButtonIconSpec;
31
+ actions?: React.ReactNode;
32
+ children?: React.ReactNode;
33
+ };
34
+
35
+ export interface AccordionPresentationContextValue {
36
+ mode: AccordionMode;
37
+ openValues: readonly string[];
38
+ }