@ankhorage/zora 4.4.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +1 -1
  3. package/dist/components/radio/RadioGroup.d.ts +1 -3
  4. package/dist/components/radio/RadioGroup.d.ts.map +1 -1
  5. package/dist/components/radio/RadioGroup.js +52 -40
  6. package/dist/components/radio/RadioGroup.js.map +1 -1
  7. package/dist/components/radio/RadioOptionControl.d.ts +15 -0
  8. package/dist/components/radio/RadioOptionControl.d.ts.map +1 -0
  9. package/dist/components/radio/RadioOptionControl.js +105 -0
  10. package/dist/components/radio/RadioOptionControl.js.map +1 -0
  11. package/dist/components/radio/handleRadioOptionKeyDown.d.ts +13 -0
  12. package/dist/components/radio/handleRadioOptionKeyDown.d.ts.map +1 -0
  13. package/dist/components/radio/handleRadioOptionKeyDown.js +22 -0
  14. package/dist/components/radio/handleRadioOptionKeyDown.js.map +1 -0
  15. package/dist/components/radio/meta.d.ts +38 -3
  16. package/dist/components/radio/meta.d.ts.map +1 -1
  17. package/dist/components/radio/meta.js +28 -3
  18. package/dist/components/radio/meta.js.map +1 -1
  19. package/dist/components/radio/resolveRadioOptionColors.d.ts +10 -0
  20. package/dist/components/radio/resolveRadioOptionColors.d.ts.map +1 -0
  21. package/dist/components/radio/resolveRadioOptionColors.js +27 -0
  22. package/dist/components/radio/resolveRadioOptionColors.js.map +1 -0
  23. package/dist/components/radio/types.d.ts +12 -2
  24. package/dist/components/radio/types.d.ts.map +1 -1
  25. package/dist/components/radio/types.js.map +1 -1
  26. package/dist/constants/keyboard.d.ts +3 -0
  27. package/dist/constants/keyboard.d.ts.map +1 -0
  28. package/dist/constants/keyboard.js +8 -0
  29. package/dist/constants/keyboard.js.map +1 -0
  30. package/dist/index.d.ts +0 -12
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +0 -6
  33. package/dist/index.js.map +1 -1
  34. package/dist/metadata/componentMeta.d.ts.map +1 -1
  35. package/dist/metadata/componentMeta.js +0 -12
  36. package/dist/metadata/componentMeta.js.map +1 -1
  37. package/dist/registry.d.ts.map +1 -1
  38. package/dist/registry.js +0 -12
  39. package/dist/registry.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/audit.test.ts +0 -29
  42. package/src/components/radio/RadioGroup.test.ts +13 -9
  43. package/src/components/radio/RadioGroup.tsx +85 -111
  44. package/src/components/radio/RadioOptionControl.tsx +192 -0
  45. package/src/components/radio/handleRadioOptionKeyDown.test.ts +47 -0
  46. package/src/components/radio/handleRadioOptionKeyDown.ts +37 -0
  47. package/src/components/radio/meta.ts +28 -3
  48. package/src/components/radio/resolveRadioOptionColors.test.ts +29 -0
  49. package/src/components/radio/resolveRadioOptionColors.ts +37 -0
  50. package/src/components/radio/types.ts +10 -2
  51. package/src/constants/keyboard.ts +7 -0
  52. package/src/index.ts +0 -23
  53. package/src/interactionPolicy.test.ts +0 -17
  54. package/src/metadata/componentMeta.test.ts +1 -0
  55. package/src/metadata/componentMeta.ts +0 -12
  56. package/src/registry.ts +0 -12
  57. package/src/showcaseCoverage.test.ts +0 -6
  58. package/src/theme/themeScopeStructure.test.ts +0 -4
  59. package/dist/components/drawer/Drawer.d.ts +0 -7
  60. package/dist/components/drawer/Drawer.d.ts.map +0 -1
  61. package/dist/components/drawer/Drawer.js +0 -36
  62. package/dist/components/drawer/Drawer.js.map +0 -1
  63. package/dist/components/drawer/index.d.ts +0 -3
  64. package/dist/components/drawer/index.d.ts.map +0 -1
  65. package/dist/components/drawer/index.js +0 -2
  66. package/dist/components/drawer/index.js.map +0 -1
  67. package/dist/components/drawer/meta.d.ts +0 -9
  68. package/dist/components/drawer/meta.d.ts.map +0 -1
  69. package/dist/components/drawer/meta.js +0 -9
  70. package/dist/components/drawer/meta.js.map +0 -1
  71. package/dist/components/drawer/types.d.ts +0 -10
  72. package/dist/components/drawer/types.d.ts.map +0 -1
  73. package/dist/components/drawer/types.js +0 -2
  74. package/dist/components/drawer/types.js.map +0 -1
  75. package/dist/components/navigation-item/NavigationItem.d.ts +0 -7
  76. package/dist/components/navigation-item/NavigationItem.d.ts.map +0 -1
  77. package/dist/components/navigation-item/NavigationItem.js +0 -21
  78. package/dist/components/navigation-item/NavigationItem.js.map +0 -1
  79. package/dist/components/navigation-item/index.d.ts +0 -3
  80. package/dist/components/navigation-item/index.d.ts.map +0 -1
  81. package/dist/components/navigation-item/index.js +0 -2
  82. package/dist/components/navigation-item/index.js.map +0 -1
  83. package/dist/components/navigation-item/meta.d.ts +0 -9
  84. package/dist/components/navigation-item/meta.d.ts.map +0 -1
  85. package/dist/components/navigation-item/meta.js +0 -9
  86. package/dist/components/navigation-item/meta.js.map +0 -1
  87. package/dist/components/navigation-item/types.d.ts +0 -23
  88. package/dist/components/navigation-item/types.d.ts.map +0 -1
  89. package/dist/components/navigation-item/types.js +0 -2
  90. package/dist/components/navigation-item/types.js.map +0 -1
  91. package/dist/components/navigation-list/NavigationList.d.ts +0 -7
  92. package/dist/components/navigation-list/NavigationList.d.ts.map +0 -1
  93. package/dist/components/navigation-list/NavigationList.js +0 -29
  94. package/dist/components/navigation-list/NavigationList.js.map +0 -1
  95. package/dist/components/navigation-list/index.d.ts +0 -3
  96. package/dist/components/navigation-list/index.d.ts.map +0 -1
  97. package/dist/components/navigation-list/index.js +0 -2
  98. package/dist/components/navigation-list/index.js.map +0 -1
  99. package/dist/components/navigation-list/meta.d.ts +0 -9
  100. package/dist/components/navigation-list/meta.d.ts.map +0 -1
  101. package/dist/components/navigation-list/meta.js +0 -9
  102. package/dist/components/navigation-list/meta.js.map +0 -1
  103. package/dist/components/navigation-list/types.d.ts +0 -15
  104. package/dist/components/navigation-list/types.d.ts.map +0 -1
  105. package/dist/components/navigation-list/types.js +0 -2
  106. package/dist/components/navigation-list/types.js.map +0 -1
  107. package/dist/internal/resolveZoraNavigationItems.d.ts +0 -65
  108. package/dist/internal/resolveZoraNavigationItems.d.ts.map +0 -1
  109. package/dist/internal/resolveZoraNavigationItems.js +0 -56
  110. package/dist/internal/resolveZoraNavigationItems.js.map +0 -1
  111. package/dist/patterns/responsive-panel/ResponsivePanel.d.ts +0 -16
  112. package/dist/patterns/responsive-panel/ResponsivePanel.d.ts.map +0 -1
  113. package/dist/patterns/responsive-panel/ResponsivePanel.js +0 -101
  114. package/dist/patterns/responsive-panel/ResponsivePanel.js.map +0 -1
  115. package/dist/patterns/responsive-panel/index.d.ts +0 -3
  116. package/dist/patterns/responsive-panel/index.d.ts.map +0 -1
  117. package/dist/patterns/responsive-panel/index.js +0 -3
  118. package/dist/patterns/responsive-panel/index.js.map +0 -1
  119. package/dist/patterns/responsive-panel/meta.d.ts +0 -9
  120. package/dist/patterns/responsive-panel/meta.d.ts.map +0 -1
  121. package/dist/patterns/responsive-panel/meta.js +0 -9
  122. package/dist/patterns/responsive-panel/meta.js.map +0 -1
  123. package/dist/patterns/responsive-panel/types.d.ts +0 -23
  124. package/dist/patterns/responsive-panel/types.d.ts.map +0 -1
  125. package/dist/patterns/responsive-panel/types.js +0 -2
  126. package/dist/patterns/responsive-panel/types.js.map +0 -1
  127. package/dist/patterns/zora-drawer-content/ZoraDrawerContent.d.ts +0 -9
  128. package/dist/patterns/zora-drawer-content/ZoraDrawerContent.d.ts.map +0 -1
  129. package/dist/patterns/zora-drawer-content/ZoraDrawerContent.js +0 -31
  130. package/dist/patterns/zora-drawer-content/ZoraDrawerContent.js.map +0 -1
  131. package/dist/patterns/zora-drawer-content/index.d.ts +0 -3
  132. package/dist/patterns/zora-drawer-content/index.d.ts.map +0 -1
  133. package/dist/patterns/zora-drawer-content/index.js +0 -2
  134. package/dist/patterns/zora-drawer-content/index.js.map +0 -1
  135. package/dist/patterns/zora-drawer-content/meta.d.ts +0 -9
  136. package/dist/patterns/zora-drawer-content/meta.d.ts.map +0 -1
  137. package/dist/patterns/zora-drawer-content/meta.js +0 -9
  138. package/dist/patterns/zora-drawer-content/meta.js.map +0 -1
  139. package/dist/patterns/zora-drawer-content/types.d.ts +0 -15
  140. package/dist/patterns/zora-drawer-content/types.d.ts.map +0 -1
  141. package/dist/patterns/zora-drawer-content/types.js +0 -2
  142. package/dist/patterns/zora-drawer-content/types.js.map +0 -1
  143. package/dist/patterns/zora-tab-bar/ZoraTabBar.d.ts +0 -9
  144. package/dist/patterns/zora-tab-bar/ZoraTabBar.d.ts.map +0 -1
  145. package/dist/patterns/zora-tab-bar/ZoraTabBar.js +0 -89
  146. package/dist/patterns/zora-tab-bar/ZoraTabBar.js.map +0 -1
  147. package/dist/patterns/zora-tab-bar/index.d.ts +0 -3
  148. package/dist/patterns/zora-tab-bar/index.d.ts.map +0 -1
  149. package/dist/patterns/zora-tab-bar/index.js +0 -2
  150. package/dist/patterns/zora-tab-bar/index.js.map +0 -1
  151. package/dist/patterns/zora-tab-bar/meta.d.ts +0 -9
  152. package/dist/patterns/zora-tab-bar/meta.d.ts.map +0 -1
  153. package/dist/patterns/zora-tab-bar/meta.js +0 -9
  154. package/dist/patterns/zora-tab-bar/meta.js.map +0 -1
  155. package/dist/patterns/zora-tab-bar/types.d.ts +0 -19
  156. package/dist/patterns/zora-tab-bar/types.d.ts.map +0 -1
  157. package/dist/patterns/zora-tab-bar/types.js +0 -2
  158. package/dist/patterns/zora-tab-bar/types.js.map +0 -1
  159. package/src/components/drawer/Drawer.tsx +0 -59
  160. package/src/components/drawer/index.ts +0 -2
  161. package/src/components/drawer/meta.ts +0 -10
  162. package/src/components/drawer/types.ts +0 -17
  163. package/src/components/navigation-item/NavigationItem.tsx +0 -41
  164. package/src/components/navigation-item/index.ts +0 -6
  165. package/src/components/navigation-item/meta.ts +0 -10
  166. package/src/components/navigation-item/types.ts +0 -26
  167. package/src/components/navigation-list/NavigationList.tsx +0 -68
  168. package/src/components/navigation-list/index.ts +0 -2
  169. package/src/components/navigation-list/meta.ts +0 -10
  170. package/src/components/navigation-list/types.ts +0 -17
  171. package/src/internal/resolveZoraNavigationItems.test.ts +0 -174
  172. package/src/internal/resolveZoraNavigationItems.ts +0 -157
  173. package/src/navigationExports.test.ts +0 -15
  174. package/src/patterns/responsive-panel/ResponsivePanel.tsx +0 -172
  175. package/src/patterns/responsive-panel/index.ts +0 -2
  176. package/src/patterns/responsive-panel/meta.ts +0 -10
  177. package/src/patterns/responsive-panel/types.ts +0 -25
  178. package/src/patterns/zora-drawer-content/ZoraDrawerContent.tsx +0 -60
  179. package/src/patterns/zora-drawer-content/index.ts +0 -2
  180. package/src/patterns/zora-drawer-content/meta.ts +0 -10
  181. package/src/patterns/zora-drawer-content/types.ts +0 -20
  182. package/src/patterns/zora-tab-bar/ZoraTabBar.tsx +0 -157
  183. package/src/patterns/zora-tab-bar/index.ts +0 -2
  184. package/src/patterns/zora-tab-bar/meta.ts +0 -10
  185. package/src/patterns/zora-tab-bar/types.ts +0 -18
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../src/components/drawer/meta.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,WAAW;IACrB,kBAAkB,EAAE,KAAK;IACzB,eAAe,EAAE,EAAE;IACnB,IAAI,EAAE,uEAAuE;IAC7E,KAAK,EAAE,EAAE;CAC2B,CAAC","sourcesContent":["import type { ZoraComponentMeta } from '../../metadata';\n\nexport const drawerMeta = {\n name: 'Drawer',\n category: 'component',\n directManifestNode: false,\n allowedChildren: [],\n note: 'Shell/navigation component; not represented as a manifest node in v1.',\n props: {},\n} as const satisfies ZoraComponentMeta;\n"]}
@@ -1,10 +0,0 @@
1
- import type { DrawerProps as SurfaceDrawerProps } from '@ankhorage/surface';
2
- import type React from 'react';
3
- import type { ZoraBaseProps } from '../../theme/ZoraBaseProps';
4
- export interface DrawerProps extends ZoraBaseProps, Pick<Omit<SurfaceDrawerProps, 'mode' | 'themeId'>, 'closeOnBackdrop' | 'onDismiss' | 'position' | 'visible'> {
5
- children?: React.ReactNode;
6
- title?: React.ReactNode;
7
- description?: React.ReactNode;
8
- footer?: React.ReactNode;
9
- }
10
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,WAAW,WACf,SACE,aAAa,EACb,IAAI,CACF,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC,EAC5C,iBAAiB,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CACzD;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/drawer/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { DrawerProps as SurfaceDrawerProps } from '@ankhorage/surface';\nimport type React from 'react';\n\nimport type { ZoraBaseProps } from '../../theme/ZoraBaseProps';\n\nexport interface DrawerProps\n extends\n ZoraBaseProps,\n Pick<\n Omit<SurfaceDrawerProps, 'mode' | 'themeId'>,\n 'closeOnBackdrop' | 'onDismiss' | 'position' | 'visible'\n > {\n children?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n footer?: React.ReactNode;\n}\n"]}
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import type { NavigationItemProps } from './types';
3
- /***
4
- * Renders a single navigation entry with active/disabled state support.
5
- */
6
- export declare const NavigationItem: (props: NavigationItemProps) => React.ReactElement | null;
7
- //# sourceMappingURL=NavigationItem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavigationItem.d.ts","sourceRoot":"","sources":["../../../src/components/navigation-item/NavigationItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAiCnD;;GAEG;AACH,eAAO,MAAM,cAAc,2DAA0C,CAAC"}
@@ -1,21 +0,0 @@
1
- import { NavigationItem as SurfaceNavigationItem } from '@ankhorage/surface';
2
- import React from 'react';
3
- import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
4
- function NavigationItemInner({ themeId: _themeId, mode: _mode, route, metadata, active = false, compact = false, onPress, testID, interactionPolicy, }) {
5
- return (<SurfaceNavigationItem compact={compact} interactionPolicy={interactionPolicy} item={{
6
- id: route.key,
7
- label: metadata?.label ?? route.name,
8
- icon: metadata?.icon,
9
- badge: metadata?.badge,
10
- active,
11
- disabled: metadata?.disabled,
12
- onPress,
13
- accessibilityLabel: metadata?.accessibilityLabel,
14
- testID: metadata?.testID,
15
- }} testID={testID}/>);
16
- }
17
- /***
18
- * Renders a single navigation entry with active/disabled state support.
19
- */
20
- export const NavigationItem = withZoraThemeScope(NavigationItemInner);
21
- //# sourceMappingURL=NavigationItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavigationItem.js","sourceRoot":"","sources":["../../../src/components/navigation-item/NavigationItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,mBAAmB,CAAC,EAC3B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,KAAK,EACL,QAAQ,EACR,MAAM,GAAG,KAAK,EACd,OAAO,GAAG,KAAK,EACf,OAAO,EACP,MAAM,EACN,iBAAiB,GACG;IACpB,OAAO,CACL,CAAC,qBAAqB,CACpB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,IAAI,CAAC,CAAC;YACJ,EAAE,EAAE,KAAK,CAAC,GAAG;YACb,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI;YACpC,IAAI,EAAE,QAAQ,EAAE,IAAI;YACpB,KAAK,EAAE,QAAQ,EAAE,KAAK;YACtB,MAAM;YACN,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,OAAO;YACP,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB;YAChD,MAAM,EAAE,QAAQ,EAAE,MAAM;SACzB,CAAC,CACF,MAAM,CAAC,CAAC,MAAM,CAAC,EACf,CACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAC","sourcesContent":["import { NavigationItem as SurfaceNavigationItem } from '@ankhorage/surface';\nimport React from 'react';\n\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { NavigationItemProps } from './types';\n\nfunction NavigationItemInner({\n themeId: _themeId,\n mode: _mode,\n route,\n metadata,\n active = false,\n compact = false,\n onPress,\n testID,\n interactionPolicy,\n}: NavigationItemProps) {\n return (\n <SurfaceNavigationItem\n compact={compact}\n interactionPolicy={interactionPolicy}\n item={{\n id: route.key,\n label: metadata?.label ?? route.name,\n icon: metadata?.icon,\n badge: metadata?.badge,\n active,\n disabled: metadata?.disabled,\n onPress,\n accessibilityLabel: metadata?.accessibilityLabel,\n testID: metadata?.testID,\n }}\n testID={testID}\n />\n );\n}\n\n/***\n * Renders a single navigation entry with active/disabled state support.\n */\nexport const NavigationItem = withZoraThemeScope(NavigationItemInner);\n"]}
@@ -1,3 +0,0 @@
1
- export { NavigationItem } from './NavigationItem';
2
- export type { NavigationItemProps, ZoraNavigationRouteMetadata, ZoraNavigationRouteState, } from './types';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/navigation-item/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,SAAS,CAAC"}
@@ -1,2 +0,0 @@
1
- export { NavigationItem } from './NavigationItem';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/navigation-item/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["export { NavigationItem } from './NavigationItem';\nexport type {\n NavigationItemProps,\n ZoraNavigationRouteMetadata,\n ZoraNavigationRouteState,\n} from './types';\n"]}
@@ -1,9 +0,0 @@
1
- export declare const navigationItemMeta: {
2
- readonly name: "NavigationItem";
3
- readonly category: "component";
4
- readonly directManifestNode: false;
5
- readonly allowedChildren: readonly [];
6
- readonly note: "Navigation chrome component; not represented as a manifest node in v1.";
7
- readonly props: {};
8
- };
9
- //# sourceMappingURL=meta.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/components/navigation-item/meta.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB;;;;;;;CAOO,CAAC"}
@@ -1,9 +0,0 @@
1
- export const navigationItemMeta = {
2
- name: 'NavigationItem',
3
- category: 'component',
4
- directManifestNode: false,
5
- allowedChildren: [],
6
- note: 'Navigation chrome component; not represented as a manifest node in v1.',
7
- props: {},
8
- };
9
- //# sourceMappingURL=meta.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../src/components/navigation-item/meta.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,WAAW;IACrB,kBAAkB,EAAE,KAAK;IACzB,eAAe,EAAE,EAAE;IACnB,IAAI,EAAE,wEAAwE;IAC9E,KAAK,EAAE,EAAE;CAC2B,CAAC","sourcesContent":["import type { ZoraComponentMeta } from '../../metadata';\n\nexport const navigationItemMeta = {\n name: 'NavigationItem',\n category: 'component',\n directManifestNode: false,\n allowedChildren: [],\n note: 'Navigation chrome component; not represented as a manifest node in v1.',\n props: {},\n} as const satisfies ZoraComponentMeta;\n"]}
@@ -1,23 +0,0 @@
1
- import type { ButtonIconSpec } from '@ankhorage/surface';
2
- import type React from 'react';
3
- import type { ZoraBaseProps } from '../../theme/ZoraBaseProps';
4
- export interface ZoraNavigationRouteMetadata {
5
- label?: React.ReactNode;
6
- icon?: ButtonIconSpec;
7
- badge?: React.ReactNode;
8
- disabled?: boolean;
9
- testID?: string;
10
- accessibilityLabel?: string;
11
- }
12
- export interface ZoraNavigationRouteState {
13
- key: string;
14
- name: string;
15
- }
16
- export interface NavigationItemProps extends ZoraBaseProps {
17
- route: ZoraNavigationRouteState;
18
- metadata?: ZoraNavigationRouteMetadata;
19
- active?: boolean;
20
- compact?: boolean;
21
- onPress?: () => void;
22
- }
23
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/navigation-item/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,KAAK,EAAE,wBAAwB,CAAC;IAChC,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/navigation-item/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ButtonIconSpec } from '@ankhorage/surface';\nimport type React from 'react';\n\nimport type { ZoraBaseProps } from '../../theme/ZoraBaseProps';\n\nexport interface ZoraNavigationRouteMetadata {\n label?: React.ReactNode;\n icon?: ButtonIconSpec;\n badge?: React.ReactNode;\n disabled?: boolean;\n testID?: string;\n accessibilityLabel?: string;\n}\n\nexport interface ZoraNavigationRouteState {\n key: string;\n name: string;\n}\n\nexport interface NavigationItemProps extends ZoraBaseProps {\n route: ZoraNavigationRouteState;\n metadata?: ZoraNavigationRouteMetadata;\n active?: boolean;\n compact?: boolean;\n onPress?: () => void;\n}\n"]}
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import type { NavigationListProps } from './types';
3
- /***
4
- * Renders a navigation list from route metadata with active state mapping.
5
- */
6
- export declare const NavigationList: (props: NavigationListProps) => React.ReactElement | null;
7
- //# sourceMappingURL=NavigationList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavigationList.d.ts","sourceRoot":"","sources":["../../../src/components/navigation-list/NavigationList.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAyDnD;;GAEG;AACH,eAAO,MAAM,cAAc,2DAA0C,CAAC"}
@@ -1,29 +0,0 @@
1
- import { DrawerNavigation as SurfaceDrawerNavigation, NavigationList as SurfaceNavigationList, } from '@ankhorage/surface';
2
- import React from 'react';
3
- import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
4
- function NavigationListInner({ themeId: _themeId, mode: _mode, routes, routeMap, activeRouteKey, orientation = 'vertical', compact = false, onRoutePress, header, footer, testID, interactionPolicy, }) {
5
- const items = routes.map((route) => {
6
- const metadata = routeMap?.[route.name];
7
- const active = activeRouteKey ? route.key === activeRouteKey : false;
8
- return {
9
- id: route.key,
10
- label: metadata?.label ?? route.name,
11
- icon: metadata?.icon,
12
- badge: metadata?.badge,
13
- active,
14
- disabled: metadata?.disabled,
15
- onPress: metadata?.disabled ? undefined : () => onRoutePress?.(route),
16
- accessibilityLabel: metadata?.accessibilityLabel,
17
- testID: metadata?.testID,
18
- };
19
- });
20
- if (header || footer) {
21
- return (<SurfaceDrawerNavigation compact={compact} footer={footer} header={header} interactionPolicy={interactionPolicy} items={items} testID={testID}/>);
22
- }
23
- return (<SurfaceNavigationList compact={compact} interactionPolicy={interactionPolicy} items={items} orientation={orientation} testID={testID}/>);
24
- }
25
- /***
26
- * Renders a navigation list from route metadata with active state mapping.
27
- */
28
- export const NavigationList = withZoraThemeScope(NavigationListInner);
29
- //# sourceMappingURL=NavigationList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavigationList.js","sourceRoot":"","sources":["../../../src/components/navigation-list/NavigationList.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,IAAI,uBAAuB,EAC3C,cAAc,IAAI,qBAAqB,GACxC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,mBAAmB,CAAC,EAC3B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,MAAM,EACN,QAAQ,EACR,cAAc,EACd,WAAW,GAAG,UAAU,EACxB,OAAO,GAAG,KAAK,EACf,YAAY,EACZ,MAAM,EACN,MAAM,EACN,MAAM,EACN,iBAAiB,GACG;IACpB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;QAErE,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,GAAG;YACb,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI;YACpC,IAAI,EAAE,QAAQ,EAAE,IAAI;YACpB,KAAK,EAAE,QAAQ,EAAE,KAAK;YACtB,MAAM;YACN,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;YACrE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB;YAChD,MAAM,EAAE,QAAQ,EAAE,MAAM;SACzB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACrB,OAAO,CACL,CAAC,uBAAuB,CACtB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,MAAM,CAAC,CAAC,MAAM,CAAC,EACf,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,CAAC,qBAAqB,CACpB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,MAAM,CAAC,CAAC,MAAM,CAAC,EACf,CACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAC","sourcesContent":["import {\n DrawerNavigation as SurfaceDrawerNavigation,\n NavigationList as SurfaceNavigationList,\n} from '@ankhorage/surface';\nimport React from 'react';\n\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { NavigationListProps } from './types';\n\nfunction NavigationListInner({\n themeId: _themeId,\n mode: _mode,\n routes,\n routeMap,\n activeRouteKey,\n orientation = 'vertical',\n compact = false,\n onRoutePress,\n header,\n footer,\n testID,\n interactionPolicy,\n}: NavigationListProps) {\n const items = routes.map((route) => {\n const metadata = routeMap?.[route.name];\n const active = activeRouteKey ? route.key === activeRouteKey : false;\n\n return {\n id: route.key,\n label: metadata?.label ?? route.name,\n icon: metadata?.icon,\n badge: metadata?.badge,\n active,\n disabled: metadata?.disabled,\n onPress: metadata?.disabled ? undefined : () => onRoutePress?.(route),\n accessibilityLabel: metadata?.accessibilityLabel,\n testID: metadata?.testID,\n };\n });\n\n if (header || footer) {\n return (\n <SurfaceDrawerNavigation\n compact={compact}\n footer={footer}\n header={header}\n interactionPolicy={interactionPolicy}\n items={items}\n testID={testID}\n />\n );\n }\n\n return (\n <SurfaceNavigationList\n compact={compact}\n interactionPolicy={interactionPolicy}\n items={items}\n orientation={orientation}\n testID={testID}\n />\n );\n}\n\n/***\n * Renders a navigation list from route metadata with active state mapping.\n */\nexport const NavigationList = withZoraThemeScope(NavigationListInner);\n"]}
@@ -1,3 +0,0 @@
1
- export { NavigationList } from './NavigationList';
2
- export type { NavigationListProps, ZoraNavigationRouteMap } from './types';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/navigation-list/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC"}
@@ -1,2 +0,0 @@
1
- export { NavigationList } from './NavigationList';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/navigation-list/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["export { NavigationList } from './NavigationList';\nexport type { NavigationListProps, ZoraNavigationRouteMap } from './types';\n"]}
@@ -1,9 +0,0 @@
1
- export declare const navigationListMeta: {
2
- readonly name: "NavigationList";
3
- readonly category: "component";
4
- readonly directManifestNode: false;
5
- readonly allowedChildren: readonly [];
6
- readonly note: "Navigation chrome component; not represented as a manifest node in v1.";
7
- readonly props: {};
8
- };
9
- //# sourceMappingURL=meta.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/components/navigation-list/meta.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB;;;;;;;CAOO,CAAC"}
@@ -1,9 +0,0 @@
1
- export const navigationListMeta = {
2
- name: 'NavigationList',
3
- category: 'component',
4
- directManifestNode: false,
5
- allowedChildren: [],
6
- note: 'Navigation chrome component; not represented as a manifest node in v1.',
7
- props: {},
8
- };
9
- //# sourceMappingURL=meta.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../src/components/navigation-list/meta.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,WAAW;IACrB,kBAAkB,EAAE,KAAK;IACzB,eAAe,EAAE,EAAE;IACnB,IAAI,EAAE,wEAAwE;IAC9E,KAAK,EAAE,EAAE;CAC2B,CAAC","sourcesContent":["import type { ZoraComponentMeta } from '../../metadata';\n\nexport const navigationListMeta = {\n name: 'NavigationList',\n category: 'component',\n directManifestNode: false,\n allowedChildren: [],\n note: 'Navigation chrome component; not represented as a manifest node in v1.',\n props: {},\n} as const satisfies ZoraComponentMeta;\n"]}
@@ -1,15 +0,0 @@
1
- import type React from 'react';
2
- import type { ZoraBaseProps } from '../../theme/ZoraBaseProps';
3
- import type { ZoraNavigationRouteMetadata, ZoraNavigationRouteState } from '../navigation-item';
4
- export type ZoraNavigationRouteMap = Partial<Record<string, ZoraNavigationRouteMetadata>>;
5
- export interface NavigationListProps extends ZoraBaseProps {
6
- routes: readonly ZoraNavigationRouteState[];
7
- routeMap?: ZoraNavigationRouteMap;
8
- activeRouteKey?: string;
9
- orientation?: 'vertical' | 'horizontal';
10
- compact?: boolean;
11
- onRoutePress?: (route: ZoraNavigationRouteState) => void;
12
- header?: React.ReactNode;
13
- footer?: React.ReactNode;
14
- }
15
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/navigation-list/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEhG,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC;AAE1F,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC5C,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACzD,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/navigation-list/types.ts"],"names":[],"mappings":"","sourcesContent":["import type React from 'react';\n\nimport type { ZoraBaseProps } from '../../theme/ZoraBaseProps';\nimport type { ZoraNavigationRouteMetadata, ZoraNavigationRouteState } from '../navigation-item';\n\nexport type ZoraNavigationRouteMap = Partial<Record<string, ZoraNavigationRouteMetadata>>;\n\nexport interface NavigationListProps extends ZoraBaseProps {\n routes: readonly ZoraNavigationRouteState[];\n routeMap?: ZoraNavigationRouteMap;\n activeRouteKey?: string;\n orientation?: 'vertical' | 'horizontal';\n compact?: boolean;\n onRoutePress?: (route: ZoraNavigationRouteState) => void;\n header?: React.ReactNode;\n footer?: React.ReactNode;\n}\n"]}
@@ -1,65 +0,0 @@
1
- import type React from 'react';
2
- import type { ZoraNavigationRouteMetadata, ZoraNavigationRouteState } from '../components/navigation-item';
3
- import type { ZoraNavigationRouteMap } from '../components/navigation-list';
4
- interface ZoraNavigationDescriptorOptions {
5
- title?: string;
6
- tabBarLabel?: unknown;
7
- drawerLabel?: unknown;
8
- }
9
- export interface ZoraNavigationDescriptor {
10
- options?: ZoraNavigationDescriptorOptions;
11
- }
12
- export type ZoraNavigationDescriptors = Readonly<Record<string, ZoraNavigationDescriptor | undefined>>;
13
- export interface ZoraNavigationState {
14
- index: number;
15
- routes: readonly ZoraNavigationRouteState[];
16
- }
17
- interface ZoraTabPressEvent {
18
- type: 'tabPress';
19
- target: string;
20
- canPreventDefault: true;
21
- }
22
- interface ZoraTabPressEventResult {
23
- defaultPrevented: boolean;
24
- }
25
- export interface ZoraTabBarNavigation {
26
- emit?: (event: ZoraTabPressEvent) => ZoraTabPressEventResult;
27
- navigate: (name: string) => void;
28
- }
29
- export interface ZoraDrawerNavigation {
30
- navigate: (name: string) => void;
31
- closeDrawer?: () => void;
32
- }
33
- export interface ZoraResolvedNavigationItem {
34
- route: ZoraNavigationRouteState;
35
- metadata?: ZoraNavigationRouteMetadata;
36
- label: React.ReactNode;
37
- active: boolean;
38
- disabled: boolean;
39
- }
40
- export type ZoraRouteLabelSource = 'routeMap' | 'descriptor' | 'name';
41
- export declare function resolveRouteLabel({ route, metadata, descriptor, kind, }: {
42
- route: ZoraNavigationRouteState;
43
- metadata: ZoraNavigationRouteMetadata | undefined;
44
- descriptor: ZoraNavigationDescriptor | undefined;
45
- kind: 'tab' | 'drawer';
46
- }): {
47
- label: React.ReactNode;
48
- source: ZoraRouteLabelSource;
49
- };
50
- export declare function resolveNavigationItems({ state, descriptors, routeMap, kind, }: {
51
- state: ZoraNavigationState;
52
- descriptors?: ZoraNavigationDescriptors | undefined;
53
- routeMap?: ZoraNavigationRouteMap | undefined;
54
- kind: 'tab' | 'drawer';
55
- }): readonly ZoraResolvedNavigationItem[];
56
- export declare function createTabBarItemPressHandler({ item, navigation, }: {
57
- item: ZoraResolvedNavigationItem;
58
- navigation: ZoraTabBarNavigation;
59
- }): (() => void) | undefined;
60
- export declare function createDrawerItemPressHandler({ item, navigation, }: {
61
- item: ZoraResolvedNavigationItem;
62
- navigation: ZoraDrawerNavigation;
63
- }): (() => void) | undefined;
64
- export {};
65
- //# sourceMappingURL=resolveZoraNavigationItems.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolveZoraNavigationItems.d.ts","sourceRoot":"","sources":["../../src/internal/resolveZoraNavigationItems.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- export function resolveRouteLabel({ route, metadata, descriptor, kind, }) {
2
- if (metadata?.label !== undefined) {
3
- return { label: metadata.label, source: 'routeMap' };
4
- }
5
- const options = descriptor?.options;
6
- const configuredLabel = kind === 'tab' ? options?.tabBarLabel : options?.drawerLabel;
7
- const fallback = configuredLabel === undefined || typeof configuredLabel === 'function'
8
- ? options?.title
9
- : configuredLabel;
10
- if (fallback !== undefined) {
11
- return { label: fallback, source: 'descriptor' };
12
- }
13
- return { label: route.name, source: 'name' };
14
- }
15
- export function resolveNavigationItems({ state, descriptors, routeMap, kind, }) {
16
- const activeRoute = state.routes[state.index];
17
- return state.routes.map((route) => {
18
- const metadata = routeMap?.[route.name];
19
- const descriptor = descriptors?.[route.key];
20
- const { label } = resolveRouteLabel({ route, metadata, descriptor, kind });
21
- const disabled = Boolean(metadata?.disabled);
22
- return {
23
- route,
24
- metadata,
25
- label,
26
- active: activeRoute ? activeRoute.key === route.key : false,
27
- disabled,
28
- };
29
- });
30
- }
31
- export function createTabBarItemPressHandler({ item, navigation, }) {
32
- if (item.disabled || item.active) {
33
- return undefined;
34
- }
35
- return () => {
36
- const result = navigation.emit?.({
37
- type: 'tabPress',
38
- target: item.route.key,
39
- canPreventDefault: true,
40
- });
41
- if (result?.defaultPrevented) {
42
- return;
43
- }
44
- navigation.navigate(item.route.name);
45
- };
46
- }
47
- export function createDrawerItemPressHandler({ item, navigation, }) {
48
- if (item.disabled) {
49
- return undefined;
50
- }
51
- return () => {
52
- navigation.navigate(item.route.name);
53
- navigation.closeDrawer?.();
54
- };
55
- }
56
- //# sourceMappingURL=resolveZoraNavigationItems.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolveZoraNavigationItems.js","sourceRoot":"","sources":["../../src/internal/resolveZoraNavigationItems.ts"],"names":[],"mappings":"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","sourcesContent":["import type React from 'react';\n\nimport type {\n ZoraNavigationRouteMetadata,\n ZoraNavigationRouteState,\n} from '../components/navigation-item';\nimport type { ZoraNavigationRouteMap } from '../components/navigation-list';\n\ninterface ZoraNavigationDescriptorOptions {\n title?: string;\n tabBarLabel?: unknown;\n drawerLabel?: unknown;\n}\n\nexport interface ZoraNavigationDescriptor {\n options?: ZoraNavigationDescriptorOptions;\n}\n\nexport type ZoraNavigationDescriptors = Readonly<\n Record<string, ZoraNavigationDescriptor | undefined>\n>;\n\nexport interface ZoraNavigationState {\n index: number;\n routes: readonly ZoraNavigationRouteState[];\n}\n\ninterface ZoraTabPressEvent {\n type: 'tabPress';\n target: string;\n canPreventDefault: true;\n}\n\ninterface ZoraTabPressEventResult {\n defaultPrevented: boolean;\n}\n\nexport interface ZoraTabBarNavigation {\n emit?: (event: ZoraTabPressEvent) => ZoraTabPressEventResult;\n navigate: (name: string) => void;\n}\n\nexport interface ZoraDrawerNavigation {\n navigate: (name: string) => void;\n closeDrawer?: () => void;\n}\n\nexport interface ZoraResolvedNavigationItem {\n route: ZoraNavigationRouteState;\n metadata?: ZoraNavigationRouteMetadata;\n label: React.ReactNode;\n active: boolean;\n disabled: boolean;\n}\n\nexport type ZoraRouteLabelSource = 'routeMap' | 'descriptor' | 'name';\n\nexport function resolveRouteLabel({\n route,\n metadata,\n descriptor,\n kind,\n}: {\n route: ZoraNavigationRouteState;\n metadata: ZoraNavigationRouteMetadata | undefined;\n descriptor: ZoraNavigationDescriptor | undefined;\n kind: 'tab' | 'drawer';\n}): { label: React.ReactNode; source: ZoraRouteLabelSource } {\n if (metadata?.label !== undefined) {\n return { label: metadata.label, source: 'routeMap' };\n }\n\n const options = descriptor?.options;\n const configuredLabel = kind === 'tab' ? options?.tabBarLabel : options?.drawerLabel;\n const fallback =\n configuredLabel === undefined || typeof configuredLabel === 'function'\n ? options?.title\n : configuredLabel;\n\n if (fallback !== undefined) {\n return { label: fallback as React.ReactNode, source: 'descriptor' };\n }\n\n return { label: route.name, source: 'name' };\n}\n\nexport function resolveNavigationItems({\n state,\n descriptors,\n routeMap,\n kind,\n}: {\n state: ZoraNavigationState;\n descriptors?: ZoraNavigationDescriptors | undefined;\n routeMap?: ZoraNavigationRouteMap | undefined;\n kind: 'tab' | 'drawer';\n}): readonly ZoraResolvedNavigationItem[] {\n const activeRoute = state.routes[state.index];\n\n return state.routes.map((route) => {\n const metadata = routeMap?.[route.name];\n const descriptor = descriptors?.[route.key];\n const { label } = resolveRouteLabel({ route, metadata, descriptor, kind });\n const disabled = Boolean(metadata?.disabled);\n\n return {\n route,\n metadata,\n label,\n active: activeRoute ? activeRoute.key === route.key : false,\n disabled,\n };\n });\n}\n\nexport function createTabBarItemPressHandler({\n item,\n navigation,\n}: {\n item: ZoraResolvedNavigationItem;\n navigation: ZoraTabBarNavigation;\n}): (() => void) | undefined {\n if (item.disabled || item.active) {\n return undefined;\n }\n\n return () => {\n const result = navigation.emit?.({\n type: 'tabPress',\n target: item.route.key,\n canPreventDefault: true,\n });\n\n if (result?.defaultPrevented) {\n return;\n }\n\n navigation.navigate(item.route.name);\n };\n}\n\nexport function createDrawerItemPressHandler({\n item,\n navigation,\n}: {\n item: ZoraResolvedNavigationItem;\n navigation: ZoraDrawerNavigation;\n}): (() => void) | undefined {\n if (item.disabled) {\n return undefined;\n }\n\n return () => {\n navigation.navigate(item.route.name);\n navigation.closeDrawer?.();\n };\n}\n"]}
@@ -1,16 +0,0 @@
1
- import React from 'react';
2
- import type { ResponsivePanelProps } from './types';
3
- /***
4
- * Adaptive secondary surface that can render as an inline panel, drawer, or modal.
5
- *
6
- * Use `ResponsivePanel` for tool panes and admin/detail flows that need the same
7
- * content to work across compact mobile screens and wider desktop layouts.
8
- *
9
-
10
- * @example Scrollable wide panel
11
- * ```tsx
12
- * <ResponsivePanel open title="APIs" size="wide" scroll="content">...</ResponsivePanel>
13
- * ```
14
- */
15
- export declare const ResponsivePanel: (props: ResponsivePanelProps) => React.ReactElement | null;
16
- //# sourceMappingURL=ResponsivePanel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResponsivePanel.d.ts","sourceRoot":"","sources":["../../../src/patterns/responsive-panel/ResponsivePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,KAAK,EAAE,oBAAoB,EAA8C,MAAM,SAAS,CAAC;AAuJhG;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,4DAA2C,CAAC"}
@@ -1,101 +0,0 @@
1
- import React from 'react';
2
- import { ScrollView, StyleSheet, View } from 'react-native';
3
- import { Drawer } from '../../components/drawer';
4
- import { Modal } from '../../components/modal';
5
- import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
6
- import { Panel } from '../panel';
7
- function resolvePanelWidth(size) {
8
- switch (size) {
9
- case 'compact':
10
- return 300;
11
- case 'wide':
12
- return 420;
13
- case 'extraWide':
14
- return 560;
15
- case 'default':
16
- default:
17
- return 360;
18
- }
19
- }
20
- function resolveModalWidth(size) {
21
- switch (size) {
22
- case 'compact':
23
- return 'narrow';
24
- case 'wide':
25
- case 'extraWide':
26
- return 'wide';
27
- case 'default':
28
- return 'default';
29
- default:
30
- return undefined;
31
- }
32
- }
33
- function renderPanelBody(children, scroll) {
34
- if (children == null)
35
- return null;
36
- if (scroll === 'content') {
37
- return (<ScrollView contentContainerStyle={styles.scrollContent} keyboardShouldPersistTaps="handled" showsVerticalScrollIndicator style={styles.scrollBody}>
38
- {children}
39
- </ScrollView>);
40
- }
41
- return children;
42
- }
43
- function ResponsivePanelInner({ themeId: _themeId, mode: _mode, title, description, actions, footer, children, open, onOpenChange, side = 'right', desktopMode = 'inline', mobileMode = 'drawer', compact = true, size, scroll = 'none', testID, interactionPolicy, }) {
44
- if (!open)
45
- return null;
46
- const passive = interactionPolicy === 'passive';
47
- const body = renderPanelBody(children, scroll);
48
- // For now, we assume desktopMode determines the rendering.
49
- // In a real app, this would react to window size.
50
- if (desktopMode === 'floating') {
51
- if (mobileMode === 'modal') {
52
- const modalWidth = resolveModalWidth(size);
53
- return (<Modal description={description} footer={footer} interactionPolicy={interactionPolicy} onDismiss={() => {
54
- if (passive)
55
- return;
56
- onOpenChange(false);
57
- }} testID={testID} title={title} visible={open} width={modalWidth}>
58
- {body}
59
- </Modal>);
60
- }
61
- return (<Drawer description={description} footer={footer} interactionPolicy={interactionPolicy} onDismiss={() => {
62
- if (passive)
63
- return;
64
- onOpenChange(false);
65
- }} position={side} testID={testID} title={title} visible={open}>
66
- {body}
67
- </Drawer>);
68
- }
69
- const panel = (<Panel actions={actions} compact={compact} description={description} footer={footer} interactionPolicy={interactionPolicy} testID={testID} title={title}>
70
- {body}
71
- </Panel>);
72
- if (size === undefined)
73
- return panel;
74
- return <View style={[styles.inlineSizedPanel, { width: resolvePanelWidth(size) }]}>{panel}</View>;
75
- }
76
- const styles = StyleSheet.create({
77
- inlineSizedPanel: {
78
- maxWidth: '100%',
79
- },
80
- scrollBody: {
81
- flexGrow: 0,
82
- maxHeight: '100%',
83
- },
84
- scrollContent: {
85
- flexGrow: 1,
86
- },
87
- });
88
- /***
89
- * Adaptive secondary surface that can render as an inline panel, drawer, or modal.
90
- *
91
- * Use `ResponsivePanel` for tool panes and admin/detail flows that need the same
92
- * content to work across compact mobile screens and wider desktop layouts.
93
- *
94
-
95
- * @example Scrollable wide panel
96
- * ```tsx
97
- * <ResponsivePanel open title="APIs" size="wide" scroll="content">...</ResponsivePanel>
98
- * ```
99
- */
100
- export const ResponsivePanel = withZoraThemeScope(ResponsivePanelInner);
101
- //# sourceMappingURL=ResponsivePanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResponsivePanel.js","sourceRoot":"","sources":["../../../src/patterns/responsive-panel/ResponsivePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,SAAS,iBAAiB,CAAC,IAAyB;IAClD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,SAAS,CAAC;QACf;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAqC;IAC9D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC;QAClB,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW;YACd,OAAO,MAAM,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,QAAyB,EAAE,MAA6B;IAC/E,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAElC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,CACL,CAAC,UAAU,CACT,qBAAqB,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAC5C,yBAAyB,CAAC,SAAS,CACnC,4BAA4B,CAC5B,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAEzB;QAAA,CAAC,QAAQ,CACX;MAAA,EAAE,UAAU,CAAC,CACd,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB,CAAC,EAC5B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,KAAK,EACL,WAAW,EACX,OAAO,EACP,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,IAAI,GAAG,OAAO,EACd,WAAW,GAAG,QAAQ,EACtB,UAAU,GAAG,QAAQ,EACrB,OAAO,GAAG,IAAI,EACd,IAAI,EACJ,MAAM,GAAG,MAAM,EACf,MAAM,EACN,iBAAiB,GACI;IACrB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,OAAO,GAAG,iBAAiB,KAAK,SAAS,CAAC;IAChD,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE/C,2DAA2D;IAC3D,kDAAkD;IAClD,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QAC/B,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAE3C,OAAO,CACL,CAAC,KAAK,CACJ,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,SAAS,CAAC,CAAC,GAAG,EAAE;oBACd,IAAI,OAAO;wBAAE,OAAO;oBAEpB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC,CAAC,CACF,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,OAAO,CAAC,CAAC,IAAI,CAAC,CACd,KAAK,CAAC,CAAC,UAAU,CAAC,CAElB;UAAA,CAAC,IAAI,CACP;QAAA,EAAE,KAAK,CAAC,CACT,CAAC;QACJ,CAAC;QAED,OAAO,CACL,CAAC,MAAM,CACL,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,SAAS,CAAC,CAAC,GAAG,EAAE;gBACd,IAAI,OAAO;oBAAE,OAAO;gBAEpB,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC,CAAC,CACF,QAAQ,CAAC,CAAC,IAAI,CAAC,CACf,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,OAAO,CAAC,CAAC,IAAI,CAAC,CAEd;QAAA,CAAC,IAAI,CACP;MAAA,EAAE,MAAM,CAAC,CACV,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,CACZ,CAAC,KAAK,CACJ,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC,KAAK,CAAC,CAEb;MAAA,CAAC,IAAI,CACP;IAAA,EAAE,KAAK,CAAC,CACT,CAAC;IAEF,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAErC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,gBAAgB,EAAE;QAChB,QAAQ,EAAE,MAAM;KACjB;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,MAAM;KAClB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,CAAC;KACZ;CACF,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { ScrollView, StyleSheet, View } from 'react-native';\n\nimport { Drawer } from '../../components/drawer';\nimport { Modal } from '../../components/modal';\nimport type { ZoraContentWidth } from '../../internal/recipes';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { Panel } from '../panel';\nimport type { ResponsivePanelProps, ResponsivePanelScroll, ResponsivePanelSize } from './types';\n\nfunction resolvePanelWidth(size: ResponsivePanelSize): number {\n switch (size) {\n case 'compact':\n return 300;\n case 'wide':\n return 420;\n case 'extraWide':\n return 560;\n case 'default':\n default:\n return 360;\n }\n}\n\nfunction resolveModalWidth(size: ResponsivePanelSize | undefined): ZoraContentWidth | undefined {\n switch (size) {\n case 'compact':\n return 'narrow';\n case 'wide':\n case 'extraWide':\n return 'wide';\n case 'default':\n return 'default';\n default:\n return undefined;\n }\n}\n\nfunction renderPanelBody(children: React.ReactNode, scroll: ResponsivePanelScroll) {\n if (children == null) return null;\n\n if (scroll === 'content') {\n return (\n <ScrollView\n contentContainerStyle={styles.scrollContent}\n keyboardShouldPersistTaps=\"handled\"\n showsVerticalScrollIndicator\n style={styles.scrollBody}\n >\n {children}\n </ScrollView>\n );\n }\n\n return children;\n}\n\nfunction ResponsivePanelInner({\n themeId: _themeId,\n mode: _mode,\n title,\n description,\n actions,\n footer,\n children,\n open,\n onOpenChange,\n side = 'right',\n desktopMode = 'inline',\n mobileMode = 'drawer',\n compact = true,\n size,\n scroll = 'none',\n testID,\n interactionPolicy,\n}: ResponsivePanelProps) {\n if (!open) return null;\n\n const passive = interactionPolicy === 'passive';\n const body = renderPanelBody(children, scroll);\n\n // For now, we assume desktopMode determines the rendering.\n // In a real app, this would react to window size.\n if (desktopMode === 'floating') {\n if (mobileMode === 'modal') {\n const modalWidth = resolveModalWidth(size);\n\n return (\n <Modal\n description={description}\n footer={footer}\n interactionPolicy={interactionPolicy}\n onDismiss={() => {\n if (passive) return;\n\n onOpenChange(false);\n }}\n testID={testID}\n title={title}\n visible={open}\n width={modalWidth}\n >\n {body}\n </Modal>\n );\n }\n\n return (\n <Drawer\n description={description}\n footer={footer}\n interactionPolicy={interactionPolicy}\n onDismiss={() => {\n if (passive) return;\n\n onOpenChange(false);\n }}\n position={side}\n testID={testID}\n title={title}\n visible={open}\n >\n {body}\n </Drawer>\n );\n }\n\n const panel = (\n <Panel\n actions={actions}\n compact={compact}\n description={description}\n footer={footer}\n interactionPolicy={interactionPolicy}\n testID={testID}\n title={title}\n >\n {body}\n </Panel>\n );\n\n if (size === undefined) return panel;\n\n return <View style={[styles.inlineSizedPanel, { width: resolvePanelWidth(size) }]}>{panel}</View>;\n}\n\nconst styles = StyleSheet.create({\n inlineSizedPanel: {\n maxWidth: '100%',\n },\n scrollBody: {\n flexGrow: 0,\n maxHeight: '100%',\n },\n scrollContent: {\n flexGrow: 1,\n },\n});\n\n/***\n * Adaptive secondary surface that can render as an inline panel, drawer, or modal.\n *\n * Use `ResponsivePanel` for tool panes and admin/detail flows that need the same\n * content to work across compact mobile screens and wider desktop layouts.\n *\n \n * @example Scrollable wide panel\n * ```tsx\n * <ResponsivePanel open title=\"APIs\" size=\"wide\" scroll=\"content\">...</ResponsivePanel>\n * ```\n */\nexport const ResponsivePanel = withZoraThemeScope(ResponsivePanelInner);\n"]}
@@ -1,3 +0,0 @@
1
- export * from './ResponsivePanel';
2
- export * from './types';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/patterns/responsive-panel/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './ResponsivePanel';
2
- export * from './types';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/patterns/responsive-panel/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC","sourcesContent":["export * from './ResponsivePanel';\nexport * from './types';\n"]}
@@ -1,9 +0,0 @@
1
- export declare const responsivePanelMeta: {
2
- readonly name: "ResponsivePanel";
3
- readonly category: "pattern";
4
- readonly directManifestNode: false;
5
- readonly allowedChildren: readonly [];
6
- readonly note: "Responsive panel pattern; not represented as a manifest node in v1.";
7
- readonly props: {};
8
- };
9
- //# sourceMappingURL=meta.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/patterns/responsive-panel/meta.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;CAOM,CAAC"}