@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.
- package/CHANGELOG.md +8 -0
- package/README.md +1 -1
- package/dist/features/accordion/accordionItemMeta.d.ts +53 -0
- package/dist/features/accordion/accordionItemMeta.d.ts.map +1 -0
- package/dist/features/accordion/accordionItemMeta.js +45 -0
- package/dist/features/accordion/accordionItemMeta.js.map +1 -0
- package/dist/features/accordion/accordionMeta.d.ts +36 -0
- package/dist/features/accordion/accordionMeta.d.ts.map +1 -0
- package/dist/features/accordion/accordionMeta.js +33 -0
- package/dist/features/accordion/accordionMeta.js.map +1 -0
- package/dist/features/accordion/adapters/inbound/Accordion.d.ts +5 -0
- package/dist/features/accordion/adapters/inbound/Accordion.d.ts.map +1 -0
- package/dist/features/accordion/adapters/inbound/Accordion.js +41 -0
- package/dist/features/accordion/adapters/inbound/Accordion.js.map +1 -0
- package/dist/features/accordion/adapters/inbound/AccordionItem.d.ts +5 -0
- package/dist/features/accordion/adapters/inbound/AccordionItem.d.ts.map +1 -0
- package/dist/features/accordion/adapters/inbound/AccordionItem.js +52 -0
- package/dist/features/accordion/adapters/inbound/AccordionItem.js.map +1 -0
- package/dist/features/accordion/composition/AccordionPresentationContext.d.ts +4 -0
- package/dist/features/accordion/composition/AccordionPresentationContext.d.ts.map +1 -0
- package/dist/features/accordion/composition/AccordionPresentationContext.js +3 -0
- package/dist/features/accordion/composition/AccordionPresentationContext.js.map +1 -0
- package/dist/features/accordion/public.d.ts +4 -0
- package/dist/features/accordion/public.d.ts.map +1 -0
- package/dist/features/accordion/public.js +3 -0
- package/dist/features/accordion/public.js.map +1 -0
- package/dist/features/bottom-sheet/bottomSheetMeta.d.ts +1 -1
- package/dist/features/card/cardMeta.d.ts +1 -1
- package/dist/features/card/mediaCardMeta.d.ts +1 -1
- package/dist/features/card/postCardMeta.d.ts +1 -1
- package/dist/features/gradient/gradientMeta.d.ts +1 -1
- package/dist/features/keyboard-avoiding-view/keyboardAvoidingViewMeta.d.ts +1 -1
- package/dist/features/layout/boxMeta.d.ts +1 -1
- package/dist/features/layout/containerMeta.d.ts +1 -1
- package/dist/features/layout/gridMeta.d.ts +1 -1
- package/dist/features/layout/stackMeta.d.ts +1 -1
- package/dist/features/list/flatListMeta.d.ts +1 -1
- package/dist/features/list/sectionListMeta.d.ts +1 -1
- package/dist/features/surface/surfaceMeta.d.ts +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/layout/screen/meta.d.ts +1 -1
- package/dist/layout/screen-section/meta.d.ts +1 -1
- package/dist/metadata/allowedChildren.d.ts +3 -3
- package/dist/metadata/allowedChildren.d.ts.map +1 -1
- package/dist/metadata/allowedChildren.js +1 -0
- package/dist/metadata/allowedChildren.js.map +1 -1
- package/dist/metadata/bindableComponentMeta.d.ts +2 -2
- package/dist/metadata/componentMeta.d.ts.map +1 -1
- package/dist/metadata/componentMeta.js +4 -2
- package/dist/metadata/componentMeta.js.map +1 -1
- package/dist/patterns/message-bubble/meta.d.ts +1 -1
- package/dist/patterns/notice/meta.d.ts +1 -1
- package/dist/patterns/panel/meta.d.ts +1 -1
- package/dist/patterns/reader/meta.d.ts +2 -2
- package/dist/patterns/scanner/meta.d.ts +2 -2
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +3 -2
- package/dist/registry.js.map +1 -1
- package/dist/types/accordion.d.ts +23 -0
- package/dist/types/accordion.d.ts.map +1 -0
- package/dist/types/accordion.js +2 -0
- package/dist/types/accordion.js.map +1 -0
- package/package.json +2 -2
- package/src/features/accordion/accordionItemMeta.ts +46 -0
- package/src/features/accordion/accordionMeta.ts +34 -0
- package/src/features/accordion/adapters/inbound/Accordion.tsx +94 -0
- package/src/features/accordion/adapters/inbound/AccordionItem.tsx +86 -0
- package/src/features/accordion/composition/AccordionPresentationContext.ts +6 -0
- package/src/features/accordion/public.ts +9 -0
- package/src/index.ts +9 -2
- package/src/metadata/allowedChildren.ts +1 -0
- package/src/metadata/componentMeta.test.ts +9 -0
- package/src/metadata/componentMeta.ts +4 -2
- package/src/registry.ts +3 -2
- package/src/showcaseCoverage.test.ts +2 -1
- package/src/theme/themeScopeStructure.test.ts +3 -2
- package/src/types/accordion.ts +38 -0
- package/dist/patterns/disclosure-section/DisclosureSection.d.ts +0 -9
- package/dist/patterns/disclosure-section/DisclosureSection.d.ts.map +0 -1
- package/dist/patterns/disclosure-section/DisclosureSection.js +0 -86
- package/dist/patterns/disclosure-section/DisclosureSection.js.map +0 -1
- package/dist/patterns/disclosure-section/index.d.ts +0 -3
- package/dist/patterns/disclosure-section/index.d.ts.map +0 -1
- package/dist/patterns/disclosure-section/index.js +0 -3
- package/dist/patterns/disclosure-section/index.js.map +0 -1
- package/dist/patterns/disclosure-section/meta.d.ts +0 -9
- package/dist/patterns/disclosure-section/meta.d.ts.map +0 -1
- package/dist/patterns/disclosure-section/meta.js +0 -9
- package/dist/patterns/disclosure-section/meta.js.map +0 -1
- package/dist/patterns/disclosure-section/types.d.ts +0 -15
- package/dist/patterns/disclosure-section/types.d.ts.map +0 -1
- package/dist/patterns/disclosure-section/types.js +0 -2
- package/dist/patterns/disclosure-section/types.js.map +0 -1
- package/src/patterns/disclosure-section/DisclosureSection.tsx +0 -130
- package/src/patterns/disclosure-section/index.ts +0 -2
- package/src/patterns/disclosure-section/meta.ts +0 -10
- 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,
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,OAAO,EACP,UAAU,EACV,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AA2B1D,MAAM,wBAAwB,GAAG;IAC/B,iBAAiB;IACjB,MAAM;IACN,MAAM;IACN,WAAW;IACX,KAAK;IACL,WAAW;IACX,MAAM;IACN,WAAW;IACX,IAAI;IACJ,QAAQ;IACR,aAAa;IACb,IAAI;IACJ,SAAS;IACT,SAAS;IACT,UAAU;IACV,YAAY;IACZ,IAAI;IACJ,WAAW;IACX,SAAS;IACT,SAAS;IACT,QAAQ;IACR,OAAO;IACP,IAAI;IACJ,UAAU;IACV,KAAK;IACL,oBAAoB;IACpB,SAAS;IACT,SAAS;IACT,IAAI;IACJ,UAAU;IACV,KAAK;IACL,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,KAAK;IACL,UAAU;IACV,MAAM;IACN,SAAS;IACT,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,IAAI;IACJ,IAAI;IACJ,UAAU;IACV,KAAK;IACL,OAAO;IACP,aAAa;IACb,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,WAAW;IACX,eAAe;IACf,GAAG;IACH,MAAM;IACN,SAAS;IACT,OAAO;IACP,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,MAAM;IACN,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,aAAa;IACb,cAAc;IACd,aAAa;IACb,YAAY;IACZ,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,OAAO;IACP,UAAU;IACV,UAAU;IACV,YAAY;IACZ,gBAAgB;IAChB,aAAa;IACb,WAAW;IACX,iBAAiB;IACjB,UAAU;IACV,SAAS;IACT,IAAI;IACJ,cAAc;IACd,IAAI;IACJ,OAAO;IACP,WAAW;IACX,aAAa;IACb,cAAc;IACd,MAAM;IACN,KAAK;IACL,QAAQ;IACR,WAAW;IACX,aAAa;IACb,kBAAkB;IAClB,oBAAoB;IACpB,WAAW;IACX,aAAa;IACb,cAAc;IACd,WAAW;IACX,WAAW;IACX,aAAa;IACb,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACgC,CAAC;AAE3C,MAAM,CAAC,MAAM,uBAAuB,GAA0B,wBAAwB,CAAC","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 @@
|
|
|
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": "
|
|
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.
|
|
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,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';
|
|
@@ -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
|
+
}
|