@ankhorage/zora 21.0.9 → 21.0.11

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 (45) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/dist/features/list/adapters/inbound/ListItem.d.ts.map +1 -1
  4. package/dist/features/list/adapters/inbound/ListItem.js +2 -1
  5. package/dist/features/list/adapters/inbound/ListItem.js.map +1 -1
  6. package/dist/features/list/utils/resolveListItemTitleLineCount.d.ts +3 -0
  7. package/dist/features/list/utils/resolveListItemTitleLineCount.d.ts.map +1 -0
  8. package/dist/features/list/utils/resolveListItemTitleLineCount.js +5 -0
  9. package/dist/features/list/utils/resolveListItemTitleLineCount.js.map +1 -0
  10. package/dist/features/tabs/adapters/inbound/TabList.js +3 -3
  11. package/dist/features/tabs/adapters/inbound/TabList.js.map +1 -1
  12. package/dist/features/tabs/tabListMeta.d.ts +8 -1
  13. package/dist/features/tabs/tabListMeta.d.ts.map +1 -1
  14. package/dist/features/tabs/tabListMeta.js +3 -1
  15. package/dist/features/tabs/tabListMeta.js.map +1 -1
  16. package/dist/types/tabs.d.ts +3 -7
  17. package/dist/types/tabs.d.ts.map +1 -1
  18. package/dist/types/tabs.js.map +1 -1
  19. package/package.json +2 -2
  20. package/src/features/list/adapters/inbound/ListItem.tsx +6 -1
  21. package/src/features/list/utils/resolveListItemTitleLineCount.test.ts +11 -0
  22. package/src/features/list/utils/resolveListItemTitleLineCount.ts +4 -0
  23. package/src/features/tabs/adapters/inbound/TabList.tsx +3 -4
  24. package/src/features/tabs/adapters/inbound/Tabs.layout.test.tsx +33 -0
  25. package/src/features/tabs/tabListMeta.ts +3 -1
  26. package/src/types/tabs.ts +5 -7
  27. package/web-dist/chunks/{Accordion-kpq8dhze.js → Accordion-fjnck2tg.js} +1 -1
  28. package/web-dist/chunks/{Accordion-j2c7btke.js → Accordion-hz4xaqjf.js} +6 -0
  29. package/web-dist/chunks/{Accordion-aj6fsjhv.js → Accordion-j4d58grp.js} +62 -37
  30. package/web-dist/components/data-table/DataTable.js +2 -2
  31. package/web-dist/components/flat-list/FlatList.js +1 -1
  32. package/web-dist/components/list/List.js +1 -1
  33. package/web-dist/components/list-item/ListItem.js +1 -1
  34. package/web-dist/components/list-section/ListSection.js +1 -1
  35. package/web-dist/components/section-list/SectionList.js +1 -1
  36. package/web-dist/components/skeleton/Skeleton.js +2 -2
  37. package/web-dist/components/skeleton-card/SkeletonCard.js +2 -2
  38. package/web-dist/components/skeleton-list/SkeletonList.js +2 -2
  39. package/web-dist/components/skeleton-text/SkeletonText.js +2 -2
  40. package/web-dist/components/tab/Tab.js +1 -1
  41. package/web-dist/components/tab-list/TabList.js +1 -1
  42. package/web-dist/components/tab-panel/TabPanel.js +1 -1
  43. package/web-dist/components/tabs/Tabs.js +1 -1
  44. package/web-dist/components/tree-item/TreeItem.js +1 -1
  45. package/web-dist/manifest.json +20 -20
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 21.0.11
4
+
5
+ ### Patch Changes
6
+
7
+ - d36063d: Keep compact ListItem titles on one line so dense sidebar rows remain height-stable.
8
+
9
+ ## 21.0.10
10
+
11
+ ### Patch Changes
12
+
13
+ - ebb74d7: Expose Surface-owned equal-width tab filling and trailing tab content through the canonical ZORA Tabs boundary.
14
+
3
15
  ## 21.0.9
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  # @ankhorage/zora
5
5
 
6
- ![license: MIT](././paradox/badges/license.svg) ![npm: v21.0.9](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
6
+ ![license: MIT](././paradox/badges/license.svg) ![npm: v21.0.11](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![docs: paradox](././paradox/badges/docs.svg)
7
7
 
8
8
  Opinionated React Native and React Native Web UI kit built on @ankhorage/surface.
9
9
 
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../../../../src/features/list/adapters/inbound/ListItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,wBAAwB,CAAC;AAoF7E,+FAA+F;AAC/F,eAAO,MAAM,QAAQ,qDAAoC,CAAC"}
1
+ {"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../../../../src/features/list/adapters/inbound/ListItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,wBAAwB,CAAC;AAyF7E,+FAA+F;AAC/F,eAAO,MAAM,QAAQ,qDAAoC,CAAC"}
@@ -4,6 +4,7 @@ import { View } from '../../../layout/public';
4
4
  import { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThemeScope';
5
5
  import { useZoraTheme } from '../../../theme/composition/useZoraTheme';
6
6
  import { Text } from '../../../typography/public';
7
+ import { resolveListItemTitleLineCount } from '../../utils/resolveListItemTitleLineCount';
7
8
  function ListItemInner({ themeId: _themeId, mode: _mode, testID, interactionPolicy, title, description, meta, leading, trailing, action, onPress, selected = false, disabled = false, compact = false, variant = 'divider', }) {
8
9
  const { theme } = useZoraTheme();
9
10
  const trailingContent = renderTrailing(trailing, action);
@@ -14,7 +15,7 @@ function ListItemInner({ themeId: _themeId, mode: _mode, testID, interactionPoli
14
15
  : 'transparent'} borderWidth={variant === 'card' || selected ? 1 : 0} overflow="hidden" radius={resolveRadius(variant)}>
15
16
  <SurfaceListItem compact={compact} disabled={disabled} interactionPolicy={interactionPolicy} leading={leading} onPress={action ? undefined : onPress} selected={selected} testID={testID} trailing={trailingContent}>
16
17
  <View gap="xxs">
17
- <Text variant="body" weight={selected ? 'semiBold' : 'medium'}>
18
+ <Text numberOfLines={resolveListItemTitleLineCount(compact)} variant="body" weight={selected ? 'semiBold' : 'medium'}>
18
19
  {title}
19
20
  </Text>
20
21
  {description ? (<Text emphasis="muted" variant="bodySmall">
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../../../../../src/features/list/adapters/inbound/ListItem.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ListItem as SurfaceListItem } from '@ankhorage/surface';\nimport React from 'react';\n\nimport type { ListItemProps, ListItemVariant } from '../../../../types/list';\nimport { View } from '../../../layout/public';\nimport { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThemeScope';\nimport { useZoraTheme } from '../../../theme/composition/useZoraTheme';\nimport { Text } from '../../../typography/public';\n\nfunction ListItemInner({\n themeId: _themeId,\n mode: _mode,\n testID,\n interactionPolicy,\n title,\n description,\n meta,\n leading,\n trailing,\n action,\n onPress,\n selected = false,\n disabled = false,\n compact = false,\n variant = 'divider',\n}: ListItemProps) {\n const { theme } = useZoraTheme();\n const trailingContent = renderTrailing(trailing, action);\n\n return (\n <View\n bg={variant === 'card' ? theme.semantics.surface.raised : 'transparent'}\n borderColor={\n selected\n ? theme.semantics.border.focus\n : variant === 'card'\n ? theme.semantics.border.default\n : 'transparent'\n }\n borderWidth={variant === 'card' || selected ? 1 : 0}\n overflow=\"hidden\"\n radius={resolveRadius(variant)}\n >\n <SurfaceListItem\n compact={compact}\n disabled={disabled}\n interactionPolicy={interactionPolicy}\n leading={leading}\n onPress={action ? undefined : onPress}\n selected={selected}\n testID={testID}\n trailing={trailingContent}\n >\n <View gap=\"xxs\">\n <Text variant=\"body\" weight={selected ? 'semiBold' : 'medium'}>\n {title}\n </Text>\n {description ? (\n <Text emphasis=\"muted\" variant=\"bodySmall\">\n {description}\n </Text>\n ) : null}\n {meta ? (\n <Text emphasis=\"subtle\" variant=\"caption\">\n {meta}\n </Text>\n ) : null}\n </View>\n </SurfaceListItem>\n </View>\n );\n}\n\nfunction resolveRadius(variant: ListItemVariant) {\n return variant === 'card' ? ('l' as const) : ('m' as const);\n}\n\nfunction renderTrailing(trailing: React.ReactNode, action: React.ReactNode) {\n if (!trailing && !action) return undefined;\n return (\n <View align=\"center\" direction=\"row\" gap=\"s\" wrap=\"nowrap\">\n {trailing}\n {action}\n </View>\n );\n}\n\n/*** Opinionated list item built on the Surface list-item interaction and geometry boundary. */\nexport const ListItem = withZoraThemeScope(ListItemInner);\n"]}
1
+ {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../../../../../src/features/list/adapters/inbound/ListItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAE1F,SAAS,aAAa,CAAC,EACrB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,MAAM,EACN,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,SAAS,GACL;IACd,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEzD,OAAO,CACL,CAAC,IAAI,CACH,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CACxE,WAAW,CAAC,CACV,QAAQ;YACN,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK;YAC9B,CAAC,CAAC,OAAO,KAAK,MAAM;gBAClB,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO;gBAChC,CAAC,CAAC,aACR,CAAC,CACD,WAAW,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,QAAQ,CAAC,QAAQ,CACjB,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAE/B;MAAA,CAAC,eAAe,CACd,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CACtC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,QAAQ,CAAC,CAAC,eAAe,CAAC,CAE1B;QAAA,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CACb;UAAA,CAAC,IAAI,CACH,aAAa,CAAC,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC,CACtD,OAAO,CAAC,MAAM,CACd,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAEzC;YAAA,CAAC,KAAK,CACR;UAAA,EAAE,IAAI,CACN;UAAA,CAAC,WAAW,CAAC,CAAC,CAAC,CACb,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CACxC;cAAA,CAAC,WAAW,CACd;YAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,IAAI,CACR;UAAA,CAAC,IAAI,CAAC,CAAC,CAAC,CACN,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CACvC;cAAA,CAAC,IAAI,CACP;YAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,IAAI,CACV;QAAA,EAAE,IAAI,CACR;MAAA,EAAE,eAAe,CACnB;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAwB;IAC7C,OAAO,OAAO,KAAK,MAAM,CAAC,CAAC,CAAE,GAAa,CAAC,CAAC,CAAE,GAAa,CAAC;AAC9D,CAAC;AAED,SAAS,cAAc,CAAC,QAAyB,EAAE,MAAuB;IACxE,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CACxD;MAAA,CAAC,QAAQ,CACT;MAAA,CAAC,MAAM,CACT;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC","sourcesContent":["import { ListItem as SurfaceListItem } from '@ankhorage/surface';\nimport React from 'react';\n\nimport type { ListItemProps, ListItemVariant } from '../../../../types/list';\nimport { View } from '../../../layout/public';\nimport { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThemeScope';\nimport { useZoraTheme } from '../../../theme/composition/useZoraTheme';\nimport { Text } from '../../../typography/public';\nimport { resolveListItemTitleLineCount } from '../../utils/resolveListItemTitleLineCount';\n\nfunction ListItemInner({\n themeId: _themeId,\n mode: _mode,\n testID,\n interactionPolicy,\n title,\n description,\n meta,\n leading,\n trailing,\n action,\n onPress,\n selected = false,\n disabled = false,\n compact = false,\n variant = 'divider',\n}: ListItemProps) {\n const { theme } = useZoraTheme();\n const trailingContent = renderTrailing(trailing, action);\n\n return (\n <View\n bg={variant === 'card' ? theme.semantics.surface.raised : 'transparent'}\n borderColor={\n selected\n ? theme.semantics.border.focus\n : variant === 'card'\n ? theme.semantics.border.default\n : 'transparent'\n }\n borderWidth={variant === 'card' || selected ? 1 : 0}\n overflow=\"hidden\"\n radius={resolveRadius(variant)}\n >\n <SurfaceListItem\n compact={compact}\n disabled={disabled}\n interactionPolicy={interactionPolicy}\n leading={leading}\n onPress={action ? undefined : onPress}\n selected={selected}\n testID={testID}\n trailing={trailingContent}\n >\n <View gap=\"xxs\">\n <Text\n numberOfLines={resolveListItemTitleLineCount(compact)}\n variant=\"body\"\n weight={selected ? 'semiBold' : 'medium'}\n >\n {title}\n </Text>\n {description ? (\n <Text emphasis=\"muted\" variant=\"bodySmall\">\n {description}\n </Text>\n ) : null}\n {meta ? (\n <Text emphasis=\"subtle\" variant=\"caption\">\n {meta}\n </Text>\n ) : null}\n </View>\n </SurfaceListItem>\n </View>\n );\n}\n\nfunction resolveRadius(variant: ListItemVariant) {\n return variant === 'card' ? ('l' as const) : ('m' as const);\n}\n\nfunction renderTrailing(trailing: React.ReactNode, action: React.ReactNode) {\n if (!trailing && !action) return undefined;\n return (\n <View align=\"center\" direction=\"row\" gap=\"s\" wrap=\"nowrap\">\n {trailing}\n {action}\n </View>\n );\n}\n\n/*** Opinionated list item built on the Surface list-item interaction and geometry boundary. */\nexport const ListItem = withZoraThemeScope(ListItemInner);\n"]}
@@ -0,0 +1,3 @@
1
+ /*** Resolves the title line limit for compact list presentation. */
2
+ export declare function resolveListItemTitleLineCount(compact: boolean): number | undefined;
3
+ //# sourceMappingURL=resolveListItemTitleLineCount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveListItemTitleLineCount.d.ts","sourceRoot":"","sources":["../../../../src/features/list/utils/resolveListItemTitleLineCount.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAElF"}
@@ -0,0 +1,5 @@
1
+ /*** Resolves the title line limit for compact list presentation. */
2
+ export function resolveListItemTitleLineCount(compact) {
3
+ return compact ? 1 : undefined;
4
+ }
5
+ //# sourceMappingURL=resolveListItemTitleLineCount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveListItemTitleLineCount.js","sourceRoot":"","sources":["../../../../src/features/list/utils/resolveListItemTitleLineCount.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,MAAM,UAAU,6BAA6B,CAAC,OAAgB;IAC5D,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjC,CAAC","sourcesContent":["/*** Resolves the title line limit for compact list presentation. */\nexport function resolveListItemTitleLineCount(compact: boolean): number | undefined {\n return compact ? 1 : undefined;\n}\n"]}
@@ -2,8 +2,8 @@ import { TabList as SurfaceTabList } from '@ankhorage/surface';
2
2
  import { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThemeScope';
3
3
  /*** Renders the accessible list of tabs for a Tabs composition. */
4
4
  export const TabList = withZoraThemeScope(TabListInner);
5
- /*** Delegates tablist semantics and keyboard navigation to Surface. */
6
- function TabListInner({ themeId: _themeId, mode: _mode, interactionPolicy: _interactionPolicy, children, testID, }) {
7
- return <SurfaceTabList testID={testID}>{children}</SurfaceTabList>;
5
+ /*** Delegates tablist semantics, keyboard navigation, and fill distribution to Surface. */
6
+ function TabListInner({ themeId: _themeId, mode: _mode, interactionPolicy: _interactionPolicy, ...props }) {
7
+ return <SurfaceTabList {...props}/>;
8
8
  }
9
9
  //# sourceMappingURL=TabList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabList.js","sourceRoot":"","sources":["../../../../../src/features/tabs/adapters/inbound/TabList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAExF,mEAAmE;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAExD,uEAAuE;AACvE,SAAS,YAAY,CAAC,EACpB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,kBAAkB,EACrC,QAAQ,EACR,MAAM,GACO;IACb,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;AACrE,CAAC","sourcesContent":["import { TabList as SurfaceTabList } from '@ankhorage/surface';\n\nimport type { TabListProps } from '../../../../types/tabs';\nimport { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThemeScope';\n\n/*** Renders the accessible list of tabs for a Tabs composition. */\nexport const TabList = withZoraThemeScope(TabListInner);\n\n/*** Delegates tablist semantics and keyboard navigation to Surface. */\nfunction TabListInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy: _interactionPolicy,\n children,\n testID,\n}: TabListProps) {\n return <SurfaceTabList testID={testID}>{children}</SurfaceTabList>;\n}\n"]}
1
+ {"version":3,"file":"TabList.js","sourceRoot":"","sources":["../../../../../src/features/tabs/adapters/inbound/TabList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAExF,mEAAmE;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAExD,2FAA2F;AAC3F,SAAS,YAAY,CAAC,EACpB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,kBAAkB,EACrC,GAAG,KAAK,EACK;IACb,OAAO,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AACvC,CAAC","sourcesContent":["import { TabList as SurfaceTabList } from '@ankhorage/surface';\n\nimport type { TabListProps } from '../../../../types/tabs';\nimport { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThemeScope';\n\n/*** Renders the accessible list of tabs for a Tabs composition. */\nexport const TabList = withZoraThemeScope(TabListInner);\n\n/*** Delegates tablist semantics, keyboard navigation, and fill distribution to Surface. */\nfunction TabListInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy: _interactionPolicy,\n ...props\n}: TabListProps) {\n return <SurfaceTabList {...props} />;\n}\n"]}
@@ -4,6 +4,13 @@ export declare const tabListMeta: {
4
4
  readonly directManifestNode: true;
5
5
  readonly allowedChildren: readonly ["Tab"];
6
6
  readonly description: "Accessible list of selectable tabs.";
7
- readonly props: {};
7
+ readonly props: {
8
+ readonly fill: {
9
+ readonly type: "boolean";
10
+ readonly category: "Layout";
11
+ readonly label: "Fill";
12
+ readonly default: false;
13
+ };
14
+ };
8
15
  };
9
16
  //# sourceMappingURL=tabListMeta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabListMeta.d.ts","sourceRoot":"","sources":["../../../src/features/tabs/tabListMeta.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;CAOc,CAAC"}
1
+ {"version":3,"file":"tabListMeta.d.ts","sourceRoot":"","sources":["../../../src/features/tabs/tabListMeta.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;CASc,CAAC"}
@@ -4,6 +4,8 @@ export const tabListMeta = {
4
4
  directManifestNode: true,
5
5
  allowedChildren: ['Tab'],
6
6
  description: 'Accessible list of selectable tabs.',
7
- props: {},
7
+ props: {
8
+ fill: { type: 'boolean', category: 'Layout', label: 'Fill', default: false },
9
+ },
8
10
  };
9
11
  //# sourceMappingURL=tabListMeta.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabListMeta.js","sourceRoot":"","sources":["../../../src/features/tabs/tabListMeta.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,WAAW;IACrB,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,CAAC,KAAK,CAAC;IACxB,WAAW,EAAE,qCAAqC;IAClD,KAAK,EAAE,EAAE;CAC2B,CAAC","sourcesContent":["import type { ZoraComponentMeta } from '../../types/authoring';\n\nexport const tabListMeta = {\n name: 'TabList',\n category: 'component',\n directManifestNode: true,\n allowedChildren: ['Tab'],\n description: 'Accessible list of selectable tabs.',\n props: {},\n} as const satisfies ZoraComponentMeta;\n"]}
1
+ {"version":3,"file":"tabListMeta.js","sourceRoot":"","sources":["../../../src/features/tabs/tabListMeta.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,WAAW;IACrB,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,CAAC,KAAK,CAAC;IACxB,WAAW,EAAE,qCAAqC;IAClD,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;KAC7E;CACmC,CAAC","sourcesContent":["import type { ZoraComponentMeta } from '../../types/authoring';\n\nexport const tabListMeta = {\n name: 'TabList',\n category: 'component',\n directManifestNode: true,\n allowedChildren: ['Tab'],\n description: 'Accessible list of selectable tabs.',\n props: {\n fill: { type: 'boolean', category: 'Layout', label: 'Fill', default: false },\n },\n} as const satisfies ZoraComponentMeta;\n"]}
@@ -1,15 +1,11 @@
1
- import type { TabPanelProps as SurfaceTabPanelProps, TabsProps as SurfaceTabsProps } from '@ankhorage/surface';
2
- import type React from 'react';
1
+ import type { TabListProps as SurfaceTabListProps, TabPanelProps as SurfaceTabPanelProps, TabProps as SurfaceTabProps, TabsProps as SurfaceTabsProps } from '@ankhorage/surface';
3
2
  import type { ZoraBaseProps } from './base';
4
3
  export interface TabsProps extends ZoraBaseProps, Omit<SurfaceTabsProps, 'testID'> {
5
4
  }
6
- export interface TabListProps extends ZoraBaseProps {
7
- children?: React.ReactNode;
5
+ export interface TabListProps extends ZoraBaseProps, Omit<SurfaceTabListProps, 'testID'> {
8
6
  }
9
- export interface TabProps extends ZoraBaseProps {
10
- value: string;
7
+ export interface TabProps extends ZoraBaseProps, Omit<SurfaceTabProps, 'children' | 'interactionPolicy' | 'testID'> {
11
8
  label: string;
12
- disabled?: boolean;
13
9
  }
14
10
  export interface TabPanelProps extends ZoraBaseProps, Omit<SurfaceTabPanelProps, 'testID'> {
15
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/types/tabs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,IAAI,oBAAoB,EACrC,SAAS,IAAI,gBAAgB,EAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE5C,MAAM,WAAW,SAAU,SAAQ,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC;CAAG;AAErF,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,QAAS,SAAQ,aAAa;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC;CAAG"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/types/tabs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,IAAI,mBAAmB,EACnC,aAAa,IAAI,oBAAoB,EACrC,QAAQ,IAAI,eAAe,EAC3B,SAAS,IAAI,gBAAgB,EAC9B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE5C,MAAM,WAAW,SAAU,SAAQ,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC;CAAG;AAErF,MAAM,WAAW,YAAa,SAAQ,aAAa,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC;CAAG;AAE3F,MAAM,WAAW,QACf,SAAQ,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,mBAAmB,GAAG,QAAQ,CAAC;IACzF,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/types/tabs.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n TabPanelProps as SurfaceTabPanelProps,\n TabsProps as SurfaceTabsProps,\n} from '@ankhorage/surface';\nimport type React from 'react';\n\nimport type { ZoraBaseProps } from './base';\n\nexport interface TabsProps extends ZoraBaseProps, Omit<SurfaceTabsProps, 'testID'> {}\n\nexport interface TabListProps extends ZoraBaseProps {\n children?: React.ReactNode;\n}\n\nexport interface TabProps extends ZoraBaseProps {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface TabPanelProps extends ZoraBaseProps, Omit<SurfaceTabPanelProps, 'testID'> {}\n"]}
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/types/tabs.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n TabListProps as SurfaceTabListProps,\n TabPanelProps as SurfaceTabPanelProps,\n TabProps as SurfaceTabProps,\n TabsProps as SurfaceTabsProps,\n} from '@ankhorage/surface';\n\nimport type { ZoraBaseProps } from './base';\n\nexport interface TabsProps extends ZoraBaseProps, Omit<SurfaceTabsProps, 'testID'> {}\n\nexport interface TabListProps extends ZoraBaseProps, Omit<SurfaceTabListProps, 'testID'> {}\n\nexport interface TabProps\n extends ZoraBaseProps, Omit<SurfaceTabProps, 'children' | 'interactionPolicy' | 'testID'> {\n label: string;\n}\n\nexport interface TabPanelProps extends ZoraBaseProps, Omit<SurfaceTabPanelProps, 'testID'> {}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ankhorage/zora",
3
3
  "type": "module",
4
- "version": "21.0.9",
4
+ "version": "21.0.11",
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.1",
44
44
  "@ankhorage/contracts": "^22.5.0",
45
- "@ankhorage/surface": "^9.0.14",
45
+ "@ankhorage/surface": "^9.1.0",
46
46
  "@ankhorage/utility": "^1.5.0",
47
47
  "expo-document-picker": "~57.0.1",
48
48
  "expo-image-picker": "~57.0.16"
@@ -6,6 +6,7 @@ import { View } from '../../../layout/public';
6
6
  import { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThemeScope';
7
7
  import { useZoraTheme } from '../../../theme/composition/useZoraTheme';
8
8
  import { Text } from '../../../typography/public';
9
+ import { resolveListItemTitleLineCount } from '../../utils/resolveListItemTitleLineCount';
9
10
 
10
11
  function ListItemInner({
11
12
  themeId: _themeId,
@@ -52,7 +53,11 @@ function ListItemInner({
52
53
  trailing={trailingContent}
53
54
  >
54
55
  <View gap="xxs">
55
- <Text variant="body" weight={selected ? 'semiBold' : 'medium'}>
56
+ <Text
57
+ numberOfLines={resolveListItemTitleLineCount(compact)}
58
+ variant="body"
59
+ weight={selected ? 'semiBold' : 'medium'}
60
+ >
56
61
  {title}
57
62
  </Text>
58
63
  {description ? (
@@ -0,0 +1,11 @@
1
+ import { expect, test } from 'bun:test';
2
+
3
+ import { resolveListItemTitleLineCount } from './resolveListItemTitleLineCount';
4
+
5
+ test('keeps compact list item titles to one line', () => {
6
+ expect(resolveListItemTitleLineCount(true)).toBe(1);
7
+ });
8
+
9
+ test('preserves unrestricted non-compact list item titles', () => {
10
+ expect(resolveListItemTitleLineCount(false)).toBeUndefined();
11
+ });
@@ -0,0 +1,4 @@
1
+ /*** Resolves the title line limit for compact list presentation. */
2
+ export function resolveListItemTitleLineCount(compact: boolean): number | undefined {
3
+ return compact ? 1 : undefined;
4
+ }
@@ -6,13 +6,12 @@ import { withZoraThemeScope } from '../../../theme/adapters/inbound/withZoraThem
6
6
  /*** Renders the accessible list of tabs for a Tabs composition. */
7
7
  export const TabList = withZoraThemeScope(TabListInner);
8
8
 
9
- /*** Delegates tablist semantics and keyboard navigation to Surface. */
9
+ /*** Delegates tablist semantics, keyboard navigation, and fill distribution to Surface. */
10
10
  function TabListInner({
11
11
  themeId: _themeId,
12
12
  mode: _mode,
13
13
  interactionPolicy: _interactionPolicy,
14
- children,
15
- testID,
14
+ ...props
16
15
  }: TabListProps) {
17
- return <SurfaceTabList testID={testID}>{children}</SurfaceTabList>;
16
+ return <SurfaceTabList {...props} />;
18
17
  }
@@ -8,6 +8,8 @@ import { renderToStaticMarkup } from 'react-dom/server';
8
8
 
9
9
  import type { ScrollView as ScrollViewComponent } from '../../../layout/adapters/inbound/ScrollView';
10
10
  import type { ZoraProvider as ZoraProviderComponent } from '../../../theme/adapters/inbound/ZoraProvider';
11
+ import type { Tab as TabComponent } from './Tab';
12
+ import type { TabList as TabListComponent } from './TabList';
11
13
  import type { TabPanel as TabPanelComponent } from './TabPanel';
12
14
  import type { Tabs as TabsComponent } from './Tabs';
13
15
 
@@ -55,3 +57,34 @@ test('renders a bounded generated Tabs panel containing the canonical ScrollView
55
57
  expect(browserWindow.document.body.textContent).not.toContain('Hidden rules');
56
58
  browserWindow.close();
57
59
  });
60
+
61
+ test('forwards filled tab distribution and trailing tab content through the generated artifact', async () => {
62
+ const { ZoraProvider } = (await load('runtime/ZoraProvider.js')) as {
63
+ ZoraProvider: typeof ZoraProviderComponent;
64
+ };
65
+ const { Tab, TabList, Tabs } = (await load('components/tabs/index.js')) as {
66
+ Tab: typeof TabComponent;
67
+ TabList: typeof TabListComponent;
68
+ Tabs: typeof TabsComponent;
69
+ };
70
+ const markup = renderToStaticMarkup(
71
+ <ZoraProvider mode="light">
72
+ <Tabs defaultValue="tree">
73
+ <TabList fill testID="tools">
74
+ <Tab label="Tree" trailing={<span data-testid="tree-count">2</span>} value="tree" />
75
+ <Tab label="Rules" value="rules" />
76
+ </TabList>
77
+ </Tabs>
78
+ </ZoraProvider>,
79
+ );
80
+ const browserWindow = new Window();
81
+ browserWindow.document.body.innerHTML = markup;
82
+ const tabList = browserWindow.document.querySelector('[data-testid="tools"]');
83
+ const wrappers = Array.from(tabList?.children ?? []);
84
+
85
+ expect(tabList?.getAttribute('role')).toBe('tablist');
86
+ expect(wrappers).toHaveLength(2);
87
+ expect(wrappers.every((wrapper) => wrapper.getAttribute('style')?.includes('flex:1'))).toBe(true);
88
+ expect(browserWindow.document.querySelector('[data-testid="tree-count"]')?.textContent).toBe('2');
89
+ browserWindow.close();
90
+ });
@@ -6,5 +6,7 @@ export const tabListMeta = {
6
6
  directManifestNode: true,
7
7
  allowedChildren: ['Tab'],
8
8
  description: 'Accessible list of selectable tabs.',
9
- props: {},
9
+ props: {
10
+ fill: { type: 'boolean', category: 'Layout', label: 'Fill', default: false },
11
+ },
10
12
  } as const satisfies ZoraComponentMeta;
package/src/types/tabs.ts CHANGED
@@ -1,21 +1,19 @@
1
1
  import type {
2
+ TabListProps as SurfaceTabListProps,
2
3
  TabPanelProps as SurfaceTabPanelProps,
4
+ TabProps as SurfaceTabProps,
3
5
  TabsProps as SurfaceTabsProps,
4
6
  } from '@ankhorage/surface';
5
- import type React from 'react';
6
7
 
7
8
  import type { ZoraBaseProps } from './base';
8
9
 
9
10
  export interface TabsProps extends ZoraBaseProps, Omit<SurfaceTabsProps, 'testID'> {}
10
11
 
11
- export interface TabListProps extends ZoraBaseProps {
12
- children?: React.ReactNode;
13
- }
12
+ export interface TabListProps extends ZoraBaseProps, Omit<SurfaceTabListProps, 'testID'> {}
14
13
 
15
- export interface TabProps extends ZoraBaseProps {
16
- value: string;
14
+ export interface TabProps
15
+ extends ZoraBaseProps, Omit<SurfaceTabProps, 'children' | 'interactionPolicy' | 'testID'> {
17
16
  label: string;
18
- disabled?: boolean;
19
17
  }
20
18
 
21
19
  export interface TabPanelProps extends ZoraBaseProps, Omit<SurfaceTabPanelProps, 'testID'> {}
@@ -13,7 +13,7 @@ import {
13
13
  } from "./Accordion-qpwhmqzd.js";
14
14
  import {
15
15
  List2
16
- } from "./Accordion-j2c7btke.js";
16
+ } from "./Accordion-hz4xaqjf.js";
17
17
  import {
18
18
  useZoraTheme2
19
19
  } from "./Accordion-7ja4mtbz.js";
@@ -232,6 +232,11 @@ function renderDefaultContent(title, description) {
232
232
  });
233
233
  }
234
234
 
235
+ // src/features/list/utils/resolveListItemTitleLineCount.ts
236
+ function resolveListItemTitleLineCount(compact) {
237
+ return compact ? 1 : undefined;
238
+ }
239
+
235
240
  // src/features/list/adapters/inbound/ListItem.tsx
236
241
  import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
237
242
  function ListItemInner({
@@ -272,6 +277,7 @@ function ListItemInner({
272
277
  gap: "xxs",
273
278
  children: [
274
279
  /* @__PURE__ */ jsx5(Text2, {
280
+ numberOfLines: resolveListItemTitleLineCount(compact),
275
281
  variant: "body",
276
282
  weight: selected ? "semiBold" : "medium",
277
283
  children: title
@@ -62,13 +62,14 @@ function useTabRegistration({ disabled, value }) {
62
62
  }
63
63
 
64
64
  // node_modules/@ankhorage/surface/src/features/tabs/adapters/inbound/Tab.tsx
65
- import { jsx } from "react/jsx-runtime";
65
+ import { jsx, jsxs } from "react/jsx-runtime";
66
66
  function Tab({
67
67
  value,
68
68
  children,
69
69
  disabled = false,
70
70
  interactionPolicy = "enabled",
71
- testID
71
+ testID,
72
+ trailing
72
73
  }) {
73
74
  const { theme } = useTheme();
74
75
  const { activeValue, getPanelId, getTabId, setActiveValue, setFocusedValue } = useTabsContext();
@@ -95,15 +96,29 @@ function Tab({
95
96
  borderColor: selected ? theme.semantics.action.primary.base : theme.semantics.border.default,
96
97
  disabled
97
98
  }),
98
- children: /* @__PURE__ */ jsx(Text3, {
99
- color: selected ? "primary" : undefined,
100
- variant: "label",
101
- weight: "medium",
102
- children
103
- })
99
+ children: renderTabContent(children, trailing, selected)
104
100
  })
105
101
  });
106
102
  }
103
+ function renderTabContent(children, trailing, selected) {
104
+ const label = /* @__PURE__ */ jsx(Text3, {
105
+ color: selected ? "primary" : undefined,
106
+ variant: "label",
107
+ weight: "medium",
108
+ children
109
+ });
110
+ if (trailing === undefined)
111
+ return label;
112
+ return /* @__PURE__ */ jsxs(View3, {
113
+ align: "center",
114
+ direction: "row",
115
+ gap: "xs",
116
+ children: [
117
+ label,
118
+ trailing
119
+ ]
120
+ });
121
+ }
107
122
  function resolveTabStyle({
108
123
  borderColor,
109
124
  disabled
@@ -137,7 +152,7 @@ function TabInner({
137
152
  }
138
153
 
139
154
  // node_modules/@ankhorage/surface/src/features/tabs/adapters/inbound/TabList.tsx
140
- import React5 from "react";
155
+ import React6 from "react";
141
156
 
142
157
  // node_modules/@ankhorage/surface/src/features/tabs/utils/resolveNextTabValue.ts
143
158
  function resolveNextTabValue(tabs, currentValue, key) {
@@ -155,8 +170,20 @@ function resolveNextTabValue(tabs, currentValue, key) {
155
170
  return enabledTabs.at(nextIndex)?.value;
156
171
  }
157
172
 
158
- // node_modules/@ankhorage/surface/src/features/tabs/adapters/inbound/TabList.tsx
173
+ // node_modules/@ankhorage/surface/src/features/tabs/utils/wrapTabListChildren.tsx
174
+ import React5 from "react";
159
175
  import { jsx as jsx3 } from "react/jsx-runtime";
176
+ function wrapTabListChildren(children, fill) {
177
+ if (!fill)
178
+ return children;
179
+ return React5.Children.map(children, (child) => /* @__PURE__ */ jsx3(View3, {
180
+ flex: 1,
181
+ children: child
182
+ }));
183
+ }
184
+
185
+ // node_modules/@ankhorage/surface/src/features/tabs/adapters/inbound/TabList.tsx
186
+ import { jsx as jsx4 } from "react/jsx-runtime";
160
187
  var navigationKeys = [
161
188
  "ArrowLeft",
162
189
  "ArrowRight",
@@ -165,10 +192,10 @@ var navigationKeys = [
165
192
  "Home",
166
193
  "End"
167
194
  ];
168
- function TabList({ children, testID }) {
195
+ function TabList({ children, fill = false, testID }) {
169
196
  const { bindKeydown } = useFocusManager();
170
197
  const { focusedValue, setActiveValue, tabs } = useTabsContext();
171
- React5.useEffect(() => {
198
+ React6.useEffect(() => {
172
199
  if (!focusedValue)
173
200
  return;
174
201
  return bindKeydown((event) => {
@@ -182,11 +209,11 @@ function TabList({ children, testID }) {
182
209
  setActiveValue(nextValue);
183
210
  });
184
211
  }, [bindKeydown, focusedValue, setActiveValue, tabs]);
185
- return /* @__PURE__ */ jsx3(View3, {
212
+ return /* @__PURE__ */ jsx4(View3, {
186
213
  accessibilityRole: "tablist",
187
214
  direction: "row",
188
215
  testID,
189
- children
216
+ children: wrapTabListChildren(children, fill)
190
217
  });
191
218
  }
192
219
  function isTabNavigationKey(key) {
@@ -194,29 +221,27 @@ function isTabNavigationKey(key) {
194
221
  }
195
222
 
196
223
  // src/features/tabs/adapters/inbound/TabList.tsx
197
- import { jsx as jsx4 } from "react/jsx-runtime";
224
+ import { jsx as jsx5 } from "react/jsx-runtime";
198
225
  var TabList2 = withZoraThemeScope(TabListInner);
199
226
  function TabListInner({
200
227
  themeId: _themeId,
201
228
  mode: _mode,
202
229
  interactionPolicy: _interactionPolicy,
203
- children,
204
- testID
230
+ ...props
205
231
  }) {
206
- return /* @__PURE__ */ jsx4(TabList, {
207
- testID,
208
- children
232
+ return /* @__PURE__ */ jsx5(TabList, {
233
+ ...props
209
234
  });
210
235
  }
211
236
 
212
237
  // node_modules/@ankhorage/surface/src/features/tabs/adapters/inbound/TabPanel.tsx
213
- import { jsx as jsx5 } from "react/jsx-runtime";
238
+ import { jsx as jsx6 } from "react/jsx-runtime";
214
239
  var TAB_PANEL_ROLE = "tabpanel";
215
240
  function TabPanel({ value, children, testID, ...layoutProps }) {
216
241
  const { activeValue, getPanelId, getTabId } = useTabsContext();
217
242
  if (activeValue !== value)
218
243
  return null;
219
- return /* @__PURE__ */ jsx5(View3, {
244
+ return /* @__PURE__ */ jsx6(View3, {
220
245
  ...layoutProps,
221
246
  accessibilityLabelledBy: getTabId(value),
222
247
  accessibilityRole: TAB_PANEL_ROLE,
@@ -227,7 +252,7 @@ function TabPanel({ value, children, testID, ...layoutProps }) {
227
252
  }
228
253
 
229
254
  // src/features/tabs/adapters/inbound/TabPanel.tsx
230
- import { jsx as jsx6 } from "react/jsx-runtime";
255
+ import { jsx as jsx7 } from "react/jsx-runtime";
231
256
  var TabPanel2 = withZoraThemeScope(TabPanelInner);
232
257
  function TabPanelInner({
233
258
  themeId: _themeId,
@@ -235,13 +260,13 @@ function TabPanelInner({
235
260
  interactionPolicy: _interactionPolicy,
236
261
  ...props
237
262
  }) {
238
- return /* @__PURE__ */ jsx6(TabPanel, {
263
+ return /* @__PURE__ */ jsx7(TabPanel, {
239
264
  ...props
240
265
  });
241
266
  }
242
267
 
243
268
  // node_modules/@ankhorage/surface/src/features/tabs/composition/useTabsController.ts
244
- import React6 from "react";
269
+ import React7 from "react";
245
270
 
246
271
  // node_modules/@ankhorage/surface/src/features/tabs/utils/resolveTabElementId.ts
247
272
  function resolveTabElementId(kind, testID, value) {
@@ -267,22 +292,22 @@ function useTabsController({
267
292
  },
268
293
  value
269
294
  });
270
- const [focusedValue, setFocusedValue] = React6.useState(undefined);
271
- const [tabs, setTabs] = React6.useState([]);
272
- const registerTab = React6.useCallback((tab) => {
295
+ const [focusedValue, setFocusedValue] = React7.useState(undefined);
296
+ const [tabs, setTabs] = React7.useState([]);
297
+ const registerTab = React7.useCallback((tab) => {
273
298
  setTabs((current) => current.some((entry) => entry.value === tab.value) ? current.map((entry) => entry.value === tab.value ? tab : entry) : [...current, tab]);
274
299
  }, []);
275
- const unregisterTab = React6.useCallback((valueToRemove) => {
300
+ const unregisterTab = React7.useCallback((valueToRemove) => {
276
301
  setTabs((current) => current.filter((entry) => entry.value !== valueToRemove));
277
302
  }, []);
278
- React6.useEffect(() => {
303
+ React7.useEffect(() => {
279
304
  if (activeValue !== undefined)
280
305
  return;
281
306
  const firstEnabledTab = tabs.find((entry) => !entry.disabled);
282
307
  if (firstEnabledTab)
283
308
  setActiveValue(firstEnabledTab.value);
284
309
  }, [activeValue, setActiveValue, tabs]);
285
- return React6.useMemo(() => ({
310
+ return React7.useMemo(() => ({
286
311
  activeValue,
287
312
  focusedValue,
288
313
  getPanelId: (tabValue) => resolveTabElementId("panel", testID, tabValue),
@@ -296,7 +321,7 @@ function useTabsController({
296
321
  }
297
322
 
298
323
  // node_modules/@ankhorage/surface/src/features/tabs/adapters/inbound/Tabs.tsx
299
- import { jsx as jsx7 } from "react/jsx-runtime";
324
+ import { jsx as jsx8 } from "react/jsx-runtime";
300
325
  function Tabs({
301
326
  children,
302
327
  defaultValue,
@@ -306,9 +331,9 @@ function Tabs({
306
331
  ...layoutProps
307
332
  }) {
308
333
  const contextValue = useTabsController({ defaultValue, onValueChange, testID, value });
309
- return /* @__PURE__ */ jsx7(TabsContext, {
334
+ return /* @__PURE__ */ jsx8(TabsContext, {
310
335
  value: contextValue,
311
- children: /* @__PURE__ */ jsx7(View3, {
336
+ children: /* @__PURE__ */ jsx8(View3, {
312
337
  ...layoutProps,
313
338
  testID,
314
339
  children
@@ -317,7 +342,7 @@ function Tabs({
317
342
  }
318
343
 
319
344
  // src/features/tabs/adapters/inbound/Tabs.tsx
320
- import { jsx as jsx8 } from "react/jsx-runtime";
345
+ import { jsx as jsx9 } from "react/jsx-runtime";
321
346
  var Tabs2 = withZoraThemeScope(TabsInner);
322
347
  function TabsInner({
323
348
  themeId: _themeId,
@@ -326,9 +351,9 @@ function TabsInner({
326
351
  children,
327
352
  ...props
328
353
  }) {
329
- return /* @__PURE__ */ jsx8(TabsInteractionPolicyContext, {
354
+ return /* @__PURE__ */ jsx9(TabsInteractionPolicyContext, {
330
355
  value: interactionPolicy,
331
- children: /* @__PURE__ */ jsx8(Tabs, {
356
+ children: /* @__PURE__ */ jsx9(Tabs, {
332
357
  ...props,
333
358
  children
334
359
  })
@@ -46,8 +46,8 @@ import {
46
46
  } from "../../chunks/Accordion-v6ykq9hv.js";
47
47
  import {
48
48
  SkeletonList2
49
- } from "../../chunks/Accordion-kpq8dhze.js";
50
- import"../../chunks/Accordion-j2c7btke.js";
49
+ } from "../../chunks/Accordion-fjnck2tg.js";
50
+ import"../../chunks/Accordion-hz4xaqjf.js";
51
51
  import"../../chunks/Accordion-31aeqxak.js";
52
52
  import"../../chunks/Accordion-eqvdv7tt.js";
53
53
  import"../../chunks/Accordion-61e19g3e.js";
@@ -13,7 +13,7 @@ import {
13
13
  List2,
14
14
  ListSection2,
15
15
  SectionList2
16
- } from "../../chunks/Accordion-j2c7btke.js";
16
+ } from "../../chunks/Accordion-hz4xaqjf.js";
17
17
  import"../../chunks/Accordion-ftjkdjqs.js";
18
18
  import"../../chunks/Accordion-0jkm3y3w.js";
19
19
  import"../../chunks/Accordion-31aeqxak.js";
@@ -13,7 +13,7 @@ import {
13
13
  List2,
14
14
  ListSection2,
15
15
  SectionList2
16
- } from "../../chunks/Accordion-j2c7btke.js";
16
+ } from "../../chunks/Accordion-hz4xaqjf.js";
17
17
  import"../../chunks/Accordion-ftjkdjqs.js";
18
18
  import"../../chunks/Accordion-0jkm3y3w.js";
19
19
  import"../../chunks/Accordion-31aeqxak.js";
@@ -13,7 +13,7 @@ import {
13
13
  List2,
14
14
  ListSection2,
15
15
  SectionList2
16
- } from "../../chunks/Accordion-j2c7btke.js";
16
+ } from "../../chunks/Accordion-hz4xaqjf.js";
17
17
  import"../../chunks/Accordion-ftjkdjqs.js";
18
18
  import"../../chunks/Accordion-0jkm3y3w.js";
19
19
  import"../../chunks/Accordion-31aeqxak.js";
@@ -13,7 +13,7 @@ import {
13
13
  List2,
14
14
  ListSection2,
15
15
  SectionList2
16
- } from "../../chunks/Accordion-j2c7btke.js";
16
+ } from "../../chunks/Accordion-hz4xaqjf.js";
17
17
  import"../../chunks/Accordion-ftjkdjqs.js";
18
18
  import"../../chunks/Accordion-0jkm3y3w.js";
19
19
  import"../../chunks/Accordion-31aeqxak.js";
@@ -13,7 +13,7 @@ import {
13
13
  List2,
14
14
  ListSection2,
15
15
  SectionList2
16
- } from "../../chunks/Accordion-j2c7btke.js";
16
+ } from "../../chunks/Accordion-hz4xaqjf.js";
17
17
  import"../../chunks/Accordion-ftjkdjqs.js";
18
18
  import"../../chunks/Accordion-0jkm3y3w.js";
19
19
  import"../../chunks/Accordion-31aeqxak.js";
@@ -10,7 +10,7 @@ import {
10
10
  SkeletonText2,
11
11
  SkeletonCard2,
12
12
  SkeletonList2
13
- } from "../../chunks/Accordion-kpq8dhze.js";
13
+ } from "../../chunks/Accordion-fjnck2tg.js";
14
14
  import"../../chunks/Accordion-t6sdgmbz.js";
15
15
  import"../../chunks/Accordion-ftjkdjqs.js";
16
16
  import"../../chunks/Accordion-0jkm3y3w.js";
@@ -23,7 +23,7 @@ import"../../chunks/Accordion-1pp37dtg.js";
23
23
  import"../../chunks/Accordion-paha5aje.js";
24
24
  import"../../chunks/Accordion-gbba10rg.js";
25
25
  import"../../chunks/Accordion-x0j8b2by.js";
26
- import"../../chunks/Accordion-j2c7btke.js";
26
+ import"../../chunks/Accordion-hz4xaqjf.js";
27
27
  import"../../chunks/Accordion-31aeqxak.js";
28
28
  import"../../chunks/Accordion-eqvdv7tt.js";
29
29
  import"../../chunks/Accordion-61e19g3e.js";
@@ -10,7 +10,7 @@ import {
10
10
  SkeletonText2,
11
11
  SkeletonCard2,
12
12
  SkeletonList2
13
- } from "../../chunks/Accordion-kpq8dhze.js";
13
+ } from "../../chunks/Accordion-fjnck2tg.js";
14
14
  import"../../chunks/Accordion-t6sdgmbz.js";
15
15
  import"../../chunks/Accordion-ftjkdjqs.js";
16
16
  import"../../chunks/Accordion-0jkm3y3w.js";
@@ -23,7 +23,7 @@ import"../../chunks/Accordion-1pp37dtg.js";
23
23
  import"../../chunks/Accordion-paha5aje.js";
24
24
  import"../../chunks/Accordion-gbba10rg.js";
25
25
  import"../../chunks/Accordion-x0j8b2by.js";
26
- import"../../chunks/Accordion-j2c7btke.js";
26
+ import"../../chunks/Accordion-hz4xaqjf.js";
27
27
  import"../../chunks/Accordion-31aeqxak.js";
28
28
  import"../../chunks/Accordion-eqvdv7tt.js";
29
29
  import"../../chunks/Accordion-61e19g3e.js";
@@ -10,7 +10,7 @@ import {
10
10
  SkeletonText2,
11
11
  SkeletonCard2,
12
12
  SkeletonList2
13
- } from "../../chunks/Accordion-kpq8dhze.js";
13
+ } from "../../chunks/Accordion-fjnck2tg.js";
14
14
  import"../../chunks/Accordion-t6sdgmbz.js";
15
15
  import"../../chunks/Accordion-ftjkdjqs.js";
16
16
  import"../../chunks/Accordion-0jkm3y3w.js";
@@ -23,7 +23,7 @@ import"../../chunks/Accordion-1pp37dtg.js";
23
23
  import"../../chunks/Accordion-paha5aje.js";
24
24
  import"../../chunks/Accordion-gbba10rg.js";
25
25
  import"../../chunks/Accordion-x0j8b2by.js";
26
- import"../../chunks/Accordion-j2c7btke.js";
26
+ import"../../chunks/Accordion-hz4xaqjf.js";
27
27
  import"../../chunks/Accordion-31aeqxak.js";
28
28
  import"../../chunks/Accordion-eqvdv7tt.js";
29
29
  import"../../chunks/Accordion-61e19g3e.js";
@@ -10,7 +10,7 @@ import {
10
10
  SkeletonText2,
11
11
  SkeletonCard2,
12
12
  SkeletonList2
13
- } from "../../chunks/Accordion-kpq8dhze.js";
13
+ } from "../../chunks/Accordion-fjnck2tg.js";
14
14
  import"../../chunks/Accordion-t6sdgmbz.js";
15
15
  import"../../chunks/Accordion-ftjkdjqs.js";
16
16
  import"../../chunks/Accordion-0jkm3y3w.js";
@@ -23,7 +23,7 @@ import"../../chunks/Accordion-1pp37dtg.js";
23
23
  import"../../chunks/Accordion-paha5aje.js";
24
24
  import"../../chunks/Accordion-gbba10rg.js";
25
25
  import"../../chunks/Accordion-x0j8b2by.js";
26
- import"../../chunks/Accordion-j2c7btke.js";
26
+ import"../../chunks/Accordion-hz4xaqjf.js";
27
27
  import"../../chunks/Accordion-31aeqxak.js";
28
28
  import"../../chunks/Accordion-eqvdv7tt.js";
29
29
  import"../../chunks/Accordion-61e19g3e.js";
@@ -8,7 +8,7 @@ import {
8
8
  TabList2,
9
9
  TabPanel2,
10
10
  Tabs2
11
- } from "../../chunks/Accordion-aj6fsjhv.js";
11
+ } from "../../chunks/Accordion-j4d58grp.js";
12
12
  import"../../chunks/Accordion-kcx57mk5.js";
13
13
  import"../../chunks/Accordion-grfbz6f2.js";
14
14
  import"../../chunks/Accordion-6zb9d92y.js";
@@ -8,7 +8,7 @@ import {
8
8
  TabList2,
9
9
  TabPanel2,
10
10
  Tabs2
11
- } from "../../chunks/Accordion-aj6fsjhv.js";
11
+ } from "../../chunks/Accordion-j4d58grp.js";
12
12
  import"../../chunks/Accordion-kcx57mk5.js";
13
13
  import"../../chunks/Accordion-grfbz6f2.js";
14
14
  import"../../chunks/Accordion-6zb9d92y.js";
@@ -8,7 +8,7 @@ import {
8
8
  TabList2,
9
9
  TabPanel2,
10
10
  Tabs2
11
- } from "../../chunks/Accordion-aj6fsjhv.js";
11
+ } from "../../chunks/Accordion-j4d58grp.js";
12
12
  import"../../chunks/Accordion-kcx57mk5.js";
13
13
  import"../../chunks/Accordion-grfbz6f2.js";
14
14
  import"../../chunks/Accordion-6zb9d92y.js";
@@ -8,7 +8,7 @@ import {
8
8
  TabList2,
9
9
  TabPanel2,
10
10
  Tabs2
11
- } from "../../chunks/Accordion-aj6fsjhv.js";
11
+ } from "../../chunks/Accordion-j4d58grp.js";
12
12
  import"../../chunks/Accordion-kcx57mk5.js";
13
13
  import"../../chunks/Accordion-grfbz6f2.js";
14
14
  import"../../chunks/Accordion-6zb9d92y.js";
@@ -22,7 +22,7 @@ import {
22
22
  import"../../chunks/Accordion-f05a7r28.js";
23
23
  import {
24
24
  ListItem2
25
- } from "../../chunks/Accordion-j2c7btke.js";
25
+ } from "../../chunks/Accordion-hz4xaqjf.js";
26
26
  import"../../chunks/Accordion-31aeqxak.js";
27
27
  import {
28
28
  toggleExpandedIds
@@ -867,14 +867,14 @@
867
867
  "chunks/Accordion-eqvdv7tt.js",
868
868
  "chunks/Accordion-f05a7r28.js",
869
869
  "chunks/Accordion-f5swy5bs.js",
870
+ "chunks/Accordion-fjnck2tg.js",
870
871
  "chunks/Accordion-fre84yaq.js",
871
872
  "chunks/Accordion-ftjkdjqs.js",
872
873
  "chunks/Accordion-gbba10rg.js",
873
874
  "chunks/Accordion-grfbz6f2.js",
874
- "chunks/Accordion-j2c7btke.js",
875
+ "chunks/Accordion-hz4xaqjf.js",
875
876
  "chunks/Accordion-jh7nxehr.js",
876
877
  "chunks/Accordion-kcx57mk5.js",
877
- "chunks/Accordion-kpq8dhze.js",
878
878
  "chunks/Accordion-mnac2z83.js",
879
879
  "chunks/Accordion-paha5aje.js",
880
880
  "chunks/Accordion-qpwhmqzd.js",
@@ -1076,7 +1076,7 @@
1076
1076
  "chunks/Accordion-fre84yaq.js",
1077
1077
  "chunks/Accordion-ftjkdjqs.js",
1078
1078
  "chunks/Accordion-grfbz6f2.js",
1079
- "chunks/Accordion-j2c7btke.js",
1079
+ "chunks/Accordion-hz4xaqjf.js",
1080
1080
  "chunks/Accordion-jh7nxehr.js",
1081
1081
  "chunks/Accordion-kcx57mk5.js",
1082
1082
  "chunks/Accordion-sz21xsf4.js",
@@ -1488,7 +1488,7 @@
1488
1488
  "chunks/Accordion-fre84yaq.js",
1489
1489
  "chunks/Accordion-ftjkdjqs.js",
1490
1490
  "chunks/Accordion-grfbz6f2.js",
1491
- "chunks/Accordion-j2c7btke.js",
1491
+ "chunks/Accordion-hz4xaqjf.js",
1492
1492
  "chunks/Accordion-jh7nxehr.js",
1493
1493
  "chunks/Accordion-kcx57mk5.js",
1494
1494
  "chunks/Accordion-sz21xsf4.js",
@@ -1520,7 +1520,7 @@
1520
1520
  "chunks/Accordion-fre84yaq.js",
1521
1521
  "chunks/Accordion-ftjkdjqs.js",
1522
1522
  "chunks/Accordion-grfbz6f2.js",
1523
- "chunks/Accordion-j2c7btke.js",
1523
+ "chunks/Accordion-hz4xaqjf.js",
1524
1524
  "chunks/Accordion-jh7nxehr.js",
1525
1525
  "chunks/Accordion-kcx57mk5.js",
1526
1526
  "chunks/Accordion-sz21xsf4.js",
@@ -1552,7 +1552,7 @@
1552
1552
  "chunks/Accordion-fre84yaq.js",
1553
1553
  "chunks/Accordion-ftjkdjqs.js",
1554
1554
  "chunks/Accordion-grfbz6f2.js",
1555
- "chunks/Accordion-j2c7btke.js",
1555
+ "chunks/Accordion-hz4xaqjf.js",
1556
1556
  "chunks/Accordion-jh7nxehr.js",
1557
1557
  "chunks/Accordion-kcx57mk5.js",
1558
1558
  "chunks/Accordion-sz21xsf4.js",
@@ -2391,7 +2391,7 @@
2391
2391
  "chunks/Accordion-fre84yaq.js",
2392
2392
  "chunks/Accordion-ftjkdjqs.js",
2393
2393
  "chunks/Accordion-grfbz6f2.js",
2394
- "chunks/Accordion-j2c7btke.js",
2394
+ "chunks/Accordion-hz4xaqjf.js",
2395
2395
  "chunks/Accordion-jh7nxehr.js",
2396
2396
  "chunks/Accordion-kcx57mk5.js",
2397
2397
  "chunks/Accordion-sz21xsf4.js",
@@ -2577,14 +2577,14 @@
2577
2577
  "chunks/Accordion-eqvdv7tt.js",
2578
2578
  "chunks/Accordion-f05a7r28.js",
2579
2579
  "chunks/Accordion-f5swy5bs.js",
2580
+ "chunks/Accordion-fjnck2tg.js",
2580
2581
  "chunks/Accordion-fre84yaq.js",
2581
2582
  "chunks/Accordion-ftjkdjqs.js",
2582
2583
  "chunks/Accordion-gbba10rg.js",
2583
2584
  "chunks/Accordion-grfbz6f2.js",
2584
- "chunks/Accordion-j2c7btke.js",
2585
+ "chunks/Accordion-hz4xaqjf.js",
2585
2586
  "chunks/Accordion-jh7nxehr.js",
2586
2587
  "chunks/Accordion-kcx57mk5.js",
2587
- "chunks/Accordion-kpq8dhze.js",
2588
2588
  "chunks/Accordion-paha5aje.js",
2589
2589
  "chunks/Accordion-qpwhmqzd.js",
2590
2590
  "chunks/Accordion-r4c9k9y7.js",
@@ -2620,14 +2620,14 @@
2620
2620
  "chunks/Accordion-eqvdv7tt.js",
2621
2621
  "chunks/Accordion-f05a7r28.js",
2622
2622
  "chunks/Accordion-f5swy5bs.js",
2623
+ "chunks/Accordion-fjnck2tg.js",
2623
2624
  "chunks/Accordion-fre84yaq.js",
2624
2625
  "chunks/Accordion-ftjkdjqs.js",
2625
2626
  "chunks/Accordion-gbba10rg.js",
2626
2627
  "chunks/Accordion-grfbz6f2.js",
2627
- "chunks/Accordion-j2c7btke.js",
2628
+ "chunks/Accordion-hz4xaqjf.js",
2628
2629
  "chunks/Accordion-jh7nxehr.js",
2629
2630
  "chunks/Accordion-kcx57mk5.js",
2630
- "chunks/Accordion-kpq8dhze.js",
2631
2631
  "chunks/Accordion-paha5aje.js",
2632
2632
  "chunks/Accordion-qpwhmqzd.js",
2633
2633
  "chunks/Accordion-r4c9k9y7.js",
@@ -2663,14 +2663,14 @@
2663
2663
  "chunks/Accordion-eqvdv7tt.js",
2664
2664
  "chunks/Accordion-f05a7r28.js",
2665
2665
  "chunks/Accordion-f5swy5bs.js",
2666
+ "chunks/Accordion-fjnck2tg.js",
2666
2667
  "chunks/Accordion-fre84yaq.js",
2667
2668
  "chunks/Accordion-ftjkdjqs.js",
2668
2669
  "chunks/Accordion-gbba10rg.js",
2669
2670
  "chunks/Accordion-grfbz6f2.js",
2670
- "chunks/Accordion-j2c7btke.js",
2671
+ "chunks/Accordion-hz4xaqjf.js",
2671
2672
  "chunks/Accordion-jh7nxehr.js",
2672
2673
  "chunks/Accordion-kcx57mk5.js",
2673
- "chunks/Accordion-kpq8dhze.js",
2674
2674
  "chunks/Accordion-paha5aje.js",
2675
2675
  "chunks/Accordion-qpwhmqzd.js",
2676
2676
  "chunks/Accordion-r4c9k9y7.js",
@@ -2706,14 +2706,14 @@
2706
2706
  "chunks/Accordion-eqvdv7tt.js",
2707
2707
  "chunks/Accordion-f05a7r28.js",
2708
2708
  "chunks/Accordion-f5swy5bs.js",
2709
+ "chunks/Accordion-fjnck2tg.js",
2709
2710
  "chunks/Accordion-fre84yaq.js",
2710
2711
  "chunks/Accordion-ftjkdjqs.js",
2711
2712
  "chunks/Accordion-gbba10rg.js",
2712
2713
  "chunks/Accordion-grfbz6f2.js",
2713
- "chunks/Accordion-j2c7btke.js",
2714
+ "chunks/Accordion-hz4xaqjf.js",
2714
2715
  "chunks/Accordion-jh7nxehr.js",
2715
2716
  "chunks/Accordion-kcx57mk5.js",
2716
- "chunks/Accordion-kpq8dhze.js",
2717
2717
  "chunks/Accordion-paha5aje.js",
2718
2718
  "chunks/Accordion-qpwhmqzd.js",
2719
2719
  "chunks/Accordion-r4c9k9y7.js",
@@ -2790,11 +2790,11 @@
2790
2790
  "chunks/Accordion-59pa0677.js",
2791
2791
  "chunks/Accordion-6zb9d92y.js",
2792
2792
  "chunks/Accordion-9qvmwkxe.js",
2793
- "chunks/Accordion-aj6fsjhv.js",
2794
2793
  "chunks/Accordion-ars389m1.js",
2795
2794
  "chunks/Accordion-f5swy5bs.js",
2796
2795
  "chunks/Accordion-fre84yaq.js",
2797
2796
  "chunks/Accordion-grfbz6f2.js",
2797
+ "chunks/Accordion-j4d58grp.js",
2798
2798
  "chunks/Accordion-jh7nxehr.js",
2799
2799
  "chunks/Accordion-kcx57mk5.js",
2800
2800
  "chunks/Accordion-mnac2z83.js",
@@ -2817,11 +2817,11 @@
2817
2817
  "chunks/Accordion-59pa0677.js",
2818
2818
  "chunks/Accordion-6zb9d92y.js",
2819
2819
  "chunks/Accordion-9qvmwkxe.js",
2820
- "chunks/Accordion-aj6fsjhv.js",
2821
2820
  "chunks/Accordion-ars389m1.js",
2822
2821
  "chunks/Accordion-f5swy5bs.js",
2823
2822
  "chunks/Accordion-fre84yaq.js",
2824
2823
  "chunks/Accordion-grfbz6f2.js",
2824
+ "chunks/Accordion-j4d58grp.js",
2825
2825
  "chunks/Accordion-jh7nxehr.js",
2826
2826
  "chunks/Accordion-kcx57mk5.js",
2827
2827
  "chunks/Accordion-mnac2z83.js",
@@ -2844,11 +2844,11 @@
2844
2844
  "chunks/Accordion-59pa0677.js",
2845
2845
  "chunks/Accordion-6zb9d92y.js",
2846
2846
  "chunks/Accordion-9qvmwkxe.js",
2847
- "chunks/Accordion-aj6fsjhv.js",
2848
2847
  "chunks/Accordion-ars389m1.js",
2849
2848
  "chunks/Accordion-f5swy5bs.js",
2850
2849
  "chunks/Accordion-fre84yaq.js",
2851
2850
  "chunks/Accordion-grfbz6f2.js",
2851
+ "chunks/Accordion-j4d58grp.js",
2852
2852
  "chunks/Accordion-jh7nxehr.js",
2853
2853
  "chunks/Accordion-kcx57mk5.js",
2854
2854
  "chunks/Accordion-mnac2z83.js",
@@ -2871,11 +2871,11 @@
2871
2871
  "chunks/Accordion-59pa0677.js",
2872
2872
  "chunks/Accordion-6zb9d92y.js",
2873
2873
  "chunks/Accordion-9qvmwkxe.js",
2874
- "chunks/Accordion-aj6fsjhv.js",
2875
2874
  "chunks/Accordion-ars389m1.js",
2876
2875
  "chunks/Accordion-f5swy5bs.js",
2877
2876
  "chunks/Accordion-fre84yaq.js",
2878
2877
  "chunks/Accordion-grfbz6f2.js",
2878
+ "chunks/Accordion-j4d58grp.js",
2879
2879
  "chunks/Accordion-jh7nxehr.js",
2880
2880
  "chunks/Accordion-kcx57mk5.js",
2881
2881
  "chunks/Accordion-mnac2z83.js",
@@ -3127,7 +3127,7 @@
3127
3127
  "chunks/Accordion-fre84yaq.js",
3128
3128
  "chunks/Accordion-ftjkdjqs.js",
3129
3129
  "chunks/Accordion-grfbz6f2.js",
3130
- "chunks/Accordion-j2c7btke.js",
3130
+ "chunks/Accordion-hz4xaqjf.js",
3131
3131
  "chunks/Accordion-jh7nxehr.js",
3132
3132
  "chunks/Accordion-kcx57mk5.js",
3133
3133
  "chunks/Accordion-paha5aje.js",