@ankhorage/zora 22.0.73 → 22.0.75

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 (477) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/dist/{features/authoring/allowedChildren.d.ts → constants/authoring.d.ts} +40 -1
  4. package/dist/constants/authoring.d.ts.map +1 -0
  5. package/dist/{features/authoring/allowedChildren.js → constants/authoring.js} +53 -1
  6. package/dist/constants/authoring.js.map +1 -0
  7. package/dist/features/accordion/accordionItemMeta.js +1 -1
  8. package/dist/features/accordion/accordionItemMeta.js.map +1 -1
  9. package/dist/features/accordion/accordionMeta.js.map +1 -1
  10. package/dist/features/activity-indicator/activityIndicatorMeta.js.map +1 -1
  11. package/dist/features/app-bar/appBarMeta.js.map +1 -1
  12. package/dist/features/auth/forgotPasswordFormMeta.js.map +1 -1
  13. package/dist/features/auth/oauthProviderButtonMeta.js.map +1 -1
  14. package/dist/features/auth/oauthProviderListMeta.js.map +1 -1
  15. package/dist/features/auth/otpFormMeta.js.map +1 -1
  16. package/dist/features/auth/signInFormMeta.js.map +1 -1
  17. package/dist/features/auth/signUpFormMeta.js.map +1 -1
  18. package/dist/features/bottom-sheet/bottomSheetMeta.js +1 -1
  19. package/dist/features/bottom-sheet/bottomSheetMeta.js.map +1 -1
  20. package/dist/features/breadcrumbs/breadcrumbsMeta.js.map +1 -1
  21. package/dist/features/button/adapters/inbound/Button.d.ts.map +1 -1
  22. package/dist/features/button/adapters/inbound/Button.js +2 -1
  23. package/dist/features/button/adapters/inbound/Button.js.map +1 -1
  24. package/dist/features/button/buttonGroupMeta.js.map +1 -1
  25. package/dist/features/button/buttonMeta.js +1 -1
  26. package/dist/features/button/buttonMeta.js.map +1 -1
  27. package/dist/features/card/adapters/inbound/Card.d.ts.map +1 -1
  28. package/dist/features/card/adapters/inbound/Card.js +2 -1
  29. package/dist/features/card/adapters/inbound/Card.js.map +1 -1
  30. package/dist/features/card/cardMeta.js +2 -2
  31. package/dist/features/card/cardMeta.js.map +1 -1
  32. package/dist/features/card/mediaCardMeta.js +1 -1
  33. package/dist/features/card/mediaCardMeta.js.map +1 -1
  34. package/dist/features/card/postCardMeta.js +1 -1
  35. package/dist/features/card/postCardMeta.js.map +1 -1
  36. package/dist/features/card/productCardMeta.js.map +1 -1
  37. package/dist/features/chat/chatListItemMeta.js.map +1 -1
  38. package/dist/features/chat/messageBubbleMeta.js +1 -1
  39. package/dist/features/chat/messageBubbleMeta.js.map +1 -1
  40. package/dist/features/collection-editor/meta.js.map +1 -1
  41. package/dist/features/content-rail/contentRailMeta.js +1 -1
  42. package/dist/features/content-rail/contentRailMeta.js.map +1 -1
  43. package/dist/features/date-picker/datePickerMeta.js.map +1 -1
  44. package/dist/features/dialog/dialogMeta.js +1 -1
  45. package/dist/features/dialog/dialogMeta.js.map +1 -1
  46. package/dist/features/empty-state/emptyStateMeta.js.map +1 -1
  47. package/dist/features/form/checkbox/checkboxMeta.js.map +1 -1
  48. package/dist/features/form/field/meta.js.map +1 -1
  49. package/dist/features/form/formActionsMeta.js.map +1 -1
  50. package/dist/features/form/formErrorMeta.js.map +1 -1
  51. package/dist/features/form/formMeta.js.map +1 -1
  52. package/dist/features/form/radio/adapters/inbound/RadioGroup.d.ts.map +1 -1
  53. package/dist/features/form/radio/adapters/inbound/RadioGroup.js +2 -1
  54. package/dist/features/form/radio/adapters/inbound/RadioGroup.js.map +1 -1
  55. package/dist/features/form/radio/radioMeta.js.map +1 -1
  56. package/dist/features/form/select/selectMeta.js.map +1 -1
  57. package/dist/features/form/switch/switchMeta.js.map +1 -1
  58. package/dist/features/form/text-input/textInputMeta.js.map +1 -1
  59. package/dist/features/game/{adapters/inbound → utils}/measureGameEntity.d.ts +1 -1
  60. package/dist/features/game/utils/measureGameEntity.d.ts.map +1 -0
  61. package/dist/features/game/utils/measureGameEntity.js.map +1 -0
  62. package/dist/features/game/utils/useGameEntityMeasurement.js +1 -1
  63. package/dist/features/game/utils/useGameEntityMeasurement.js.map +1 -1
  64. package/dist/features/gradient/gradientMeta.js +1 -1
  65. package/dist/features/gradient/gradientMeta.js.map +1 -1
  66. package/dist/features/graph-view/adapters/inbound/web-artifact/GraphNodeOverlay.d.ts +1 -1
  67. package/dist/features/graph-view/adapters/inbound/web-artifact/GraphNodeOverlay.d.ts.map +1 -1
  68. package/dist/features/graph-view/adapters/inbound/web-artifact/GraphNodeOverlay.js.map +1 -1
  69. package/dist/features/graph-view/adapters/inbound/web-artifact/GraphView.d.ts +1 -96
  70. package/dist/features/graph-view/adapters/inbound/web-artifact/GraphView.d.ts.map +1 -1
  71. package/dist/features/graph-view/adapters/inbound/web-artifact/GraphView.js.map +1 -1
  72. package/dist/features/graph-view/adapters/inbound/web-artifact/bindGraphEvents.d.ts +1 -1
  73. package/dist/features/graph-view/adapters/inbound/web-artifact/bindGraphEvents.d.ts.map +1 -1
  74. package/dist/features/graph-view/adapters/inbound/web-artifact/bindGraphEvents.js.map +1 -1
  75. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphController.d.ts +1 -1
  76. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphController.d.ts.map +1 -1
  77. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphController.js.map +1 -1
  78. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.d.ts +1 -1
  79. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.d.ts.map +1 -1
  80. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.js.map +1 -1
  81. package/dist/features/graph-view/adapters/inbound/web-artifact/createRenderableGraphElements.d.ts +1 -1
  82. package/dist/features/graph-view/adapters/inbound/web-artifact/createRenderableGraphElements.d.ts.map +1 -1
  83. package/dist/features/graph-view/adapters/inbound/web-artifact/createRenderableGraphElements.js.map +1 -1
  84. package/dist/features/graph-view/adapters/inbound/web-artifact/fitGraphViewport.d.ts +1 -1
  85. package/dist/features/graph-view/adapters/inbound/web-artifact/fitGraphViewport.d.ts.map +1 -1
  86. package/dist/features/graph-view/adapters/inbound/web-artifact/fitGraphViewport.js.map +1 -1
  87. package/dist/features/graph-view/adapters/inbound/web-artifact/getGraphTopologyKey.d.ts +1 -1
  88. package/dist/features/graph-view/adapters/inbound/web-artifact/getGraphTopologyKey.d.ts.map +1 -1
  89. package/dist/features/graph-view/adapters/inbound/web-artifact/getGraphTopologyKey.js.map +1 -1
  90. package/dist/features/graph-view/adapters/inbound/web-artifact/readGraphRenderedNodes.d.ts +1 -1
  91. package/dist/features/graph-view/adapters/inbound/web-artifact/readGraphRenderedNodes.d.ts.map +1 -1
  92. package/dist/features/graph-view/adapters/inbound/web-artifact/readGraphRenderedNodes.js.map +1 -1
  93. package/dist/features/graph-view/adapters/inbound/web-artifact/runGraphLayout.d.ts +1 -1
  94. package/dist/features/graph-view/adapters/inbound/web-artifact/runGraphLayout.d.ts.map +1 -1
  95. package/dist/features/graph-view/adapters/inbound/web-artifact/runGraphLayout.js.map +1 -1
  96. package/dist/features/graph-view/adapters/inbound/web-artifact/syncGraphElements.d.ts +1 -1
  97. package/dist/features/graph-view/adapters/inbound/web-artifact/syncGraphElements.d.ts.map +1 -1
  98. package/dist/features/graph-view/adapters/inbound/web-artifact/syncGraphElements.js.map +1 -1
  99. package/dist/features/graph-view/public.d.ts +2 -1
  100. package/dist/features/graph-view/public.d.ts.map +1 -1
  101. package/dist/features/graph-view/public.js +1 -1
  102. package/dist/features/graph-view/public.js.map +1 -1
  103. package/dist/features/hero/heroMeta.js.map +1 -1
  104. package/dist/features/icon/iconMeta.js.map +1 -1
  105. package/dist/features/image/imageMeta.js.map +1 -1
  106. package/dist/features/keyboard-avoiding-view/keyboardAvoidingViewMeta.js +1 -1
  107. package/dist/features/keyboard-avoiding-view/keyboardAvoidingViewMeta.js.map +1 -1
  108. package/dist/features/layout/appShellMeta.js.map +1 -1
  109. package/dist/features/layout/gridMeta.js +1 -1
  110. package/dist/features/layout/gridMeta.js.map +1 -1
  111. package/dist/features/layout/screenMeta.js +1 -1
  112. package/dist/features/layout/screenMeta.js.map +1 -1
  113. package/dist/features/layout/scrollViewMeta.js +1 -1
  114. package/dist/features/layout/scrollViewMeta.js.map +1 -1
  115. package/dist/features/layout/viewMeta.js +1 -1
  116. package/dist/features/layout/viewMeta.js.map +1 -1
  117. package/dist/features/list/flatListMeta.js +1 -1
  118. package/dist/features/list/flatListMeta.js.map +1 -1
  119. package/dist/features/list/meta.js.map +1 -1
  120. package/dist/features/missing-element/missingElementMeta.js.map +1 -1
  121. package/dist/features/palette-item/paletteItemMeta.js.map +1 -1
  122. package/dist/features/popover-menu/popoverMenuMeta.js.map +1 -1
  123. package/dist/features/progress/progressMeta.js.map +1 -1
  124. package/dist/features/reader/meta.js +1 -1
  125. package/dist/features/reader/meta.js.map +1 -1
  126. package/dist/features/{authoring → registry}/bindableComponentMeta.d.ts.map +1 -1
  127. package/dist/features/registry/bindableComponentMeta.js.map +1 -0
  128. package/dist/features/registry/componentMeta.d.ts.map +1 -0
  129. package/dist/features/{authoring → registry}/componentMeta.js +1 -1
  130. package/dist/features/registry/componentMeta.js.map +1 -0
  131. package/dist/features/{authoring/utils → registry}/createManifestBindings.d.ts +1 -1
  132. package/dist/features/registry/createManifestBindings.d.ts.map +1 -0
  133. package/dist/features/registry/createManifestBindings.js.map +1 -0
  134. package/dist/features/{authoring/utils → registry}/finalizeFeatureMetadata.d.ts +1 -1
  135. package/dist/features/registry/finalizeFeatureMetadata.d.ts.map +1 -0
  136. package/dist/features/{authoring/utils → registry}/finalizeFeatureMetadata.js +1 -1
  137. package/dist/features/registry/finalizeFeatureMetadata.js.map +1 -0
  138. package/dist/features/{authoring → registry}/index.d.ts +1 -1
  139. package/dist/features/registry/index.d.ts.map +1 -0
  140. package/dist/features/{authoring → registry}/index.js +1 -1
  141. package/dist/features/registry/index.js.map +1 -0
  142. package/dist/features/registry/themeRecipeMeta.d.ts.map +1 -0
  143. package/dist/features/registry/themeRecipeMeta.js.map +1 -0
  144. package/dist/features/scanner/meta.js +1 -1
  145. package/dist/features/scanner/meta.js.map +1 -1
  146. package/dist/features/section/screenSectionMeta.js +1 -1
  147. package/dist/features/section/screenSectionMeta.js.map +1 -1
  148. package/dist/features/section/sectionHeaderMeta.js.map +1 -1
  149. package/dist/features/selection/meta.js.map +1 -1
  150. package/dist/features/skeleton/skeletonMeta.js.map +1 -1
  151. package/dist/features/surface/surfaceMeta.js +1 -1
  152. package/dist/features/surface/surfaceMeta.js.map +1 -1
  153. package/dist/features/tabs/tabPanelMeta.js +1 -1
  154. package/dist/features/tabs/tabPanelMeta.js.map +1 -1
  155. package/dist/features/theme/ThemeModeToggle.meta.js.map +1 -1
  156. package/dist/features/theme/composition/useZoraThemeRecipe.d.ts +3 -1
  157. package/dist/features/theme/composition/useZoraThemeRecipe.d.ts.map +1 -1
  158. package/dist/features/theme/composition/useZoraThemeRecipe.js +3 -2
  159. package/dist/features/theme/composition/useZoraThemeRecipe.js.map +1 -1
  160. package/dist/features/theme/utils/resolveZoraThemeRecipe.d.ts +3 -1
  161. package/dist/features/theme/utils/resolveZoraThemeRecipe.d.ts.map +1 -1
  162. package/dist/features/theme/utils/resolveZoraThemeRecipe.js +6 -6
  163. package/dist/features/theme/utils/resolveZoraThemeRecipe.js.map +1 -1
  164. package/dist/features/time-picker/timePickerMeta.js.map +1 -1
  165. package/dist/features/timeline/meta.js.map +1 -1
  166. package/dist/features/toast/toastMeta.js.map +1 -1
  167. package/dist/features/toast/toastProviderMeta.js.map +1 -1
  168. package/dist/features/tree-view/meta.js.map +1 -1
  169. package/dist/features/typography/adapters/inbound/Heading.d.ts.map +1 -1
  170. package/dist/features/typography/adapters/inbound/Heading.js +2 -1
  171. package/dist/features/typography/adapters/inbound/Heading.js.map +1 -1
  172. package/dist/features/typography/adapters/inbound/Text.d.ts.map +1 -1
  173. package/dist/features/typography/adapters/inbound/Text.js +2 -1
  174. package/dist/features/typography/adapters/inbound/Text.js.map +1 -1
  175. package/dist/features/typography/headingMeta.js +1 -1
  176. package/dist/features/typography/headingMeta.js.map +1 -1
  177. package/dist/features/typography/textMeta.js +1 -1
  178. package/dist/features/typography/textMeta.js.map +1 -1
  179. package/dist/index.d.ts +2 -2
  180. package/dist/index.d.ts.map +1 -1
  181. package/dist/index.js +1 -1
  182. package/dist/index.js.map +1 -1
  183. package/dist/types/auth.d.ts +1 -1
  184. package/dist/types/auth.d.ts.map +1 -1
  185. package/dist/types/auth.js.map +1 -1
  186. package/dist/types/avatar-group.d.ts +1 -1
  187. package/dist/types/avatar-group.d.ts.map +1 -1
  188. package/dist/types/avatar-group.js.map +1 -1
  189. package/dist/types/button-group.d.ts +1 -1
  190. package/dist/types/button-group.d.ts.map +1 -1
  191. package/dist/types/button-group.js.map +1 -1
  192. package/dist/types/chat.d.ts +1 -1
  193. package/dist/types/chat.d.ts.map +1 -1
  194. package/dist/types/chat.js.map +1 -1
  195. package/dist/types/gradient.d.ts +1 -1
  196. package/dist/types/gradient.d.ts.map +1 -1
  197. package/dist/types/gradient.js.map +1 -1
  198. package/dist/types/graph-view.d.ts +98 -0
  199. package/dist/types/graph-view.d.ts.map +1 -0
  200. package/dist/types/graph-view.js +2 -0
  201. package/dist/types/graph-view.js.map +1 -0
  202. package/dist/types/graphViewRuntime.d.ts +1 -1
  203. package/dist/types/graphViewRuntime.d.ts.map +1 -1
  204. package/dist/types/graphViewRuntime.js.map +1 -1
  205. package/dist/types/post-card.d.ts +1 -1
  206. package/dist/types/post-card.d.ts.map +1 -1
  207. package/dist/types/post-card.js.map +1 -1
  208. package/dist/types/radio.d.ts +1 -1
  209. package/dist/types/radio.d.ts.map +1 -1
  210. package/dist/types/radio.js.map +1 -1
  211. package/dist/types/scanner.d.ts +1 -1
  212. package/dist/types/scanner.d.ts.map +1 -1
  213. package/dist/types/scanner.js.map +1 -1
  214. package/dist/types/skeleton.d.ts +1 -1
  215. package/dist/types/skeleton.d.ts.map +1 -1
  216. package/dist/types/skeleton.js.map +1 -1
  217. package/dist/types/theme-mode-toggle.d.ts +1 -1
  218. package/dist/types/theme-mode-toggle.d.ts.map +1 -1
  219. package/dist/types/theme-mode-toggle.js.map +1 -1
  220. package/package.json +12 -12
  221. package/src/{features/authoring/allowedChildren.ts → constants/authoring.ts} +55 -0
  222. package/src/features/accordion/accordionItemMeta.ts +2 -2
  223. package/src/features/accordion/accordionMeta.ts +1 -1
  224. package/src/features/activity-indicator/activityIndicatorMeta.ts +1 -1
  225. package/src/features/app-bar/appBarMeta.ts +1 -1
  226. package/src/features/auth/forgotPasswordFormMeta.ts +1 -1
  227. package/src/features/auth/oauthProviderButtonMeta.ts +1 -1
  228. package/src/features/auth/oauthProviderListMeta.ts +1 -1
  229. package/src/features/auth/otpFormMeta.ts +1 -1
  230. package/src/features/auth/public.test.ts +21 -18
  231. package/src/features/auth/signInFormMeta.ts +1 -1
  232. package/src/features/auth/signUpFormMeta.ts +1 -1
  233. package/src/features/bottom-sheet/bottomSheetMeta.ts +1 -1
  234. package/src/features/breadcrumbs/breadcrumbsMeta.ts +1 -1
  235. package/src/features/button/adapters/inbound/Button.tsx +2 -1
  236. package/src/features/button/buttonGroupMeta.ts +1 -1
  237. package/src/features/button/buttonMeta.ts +2 -2
  238. package/src/features/card/adapters/inbound/Card.tsx +2 -1
  239. package/src/features/card/adapters/inbound/PostCard.test.tsx +4 -4
  240. package/src/features/card/adapters/inbound/ProductCard.test.tsx +9 -9
  241. package/src/features/card/cardMeta.ts +3 -3
  242. package/src/features/card/mediaCardMeta.ts +1 -1
  243. package/src/features/card/postCardMeta.ts +2 -2
  244. package/src/features/card/productCardMeta.ts +1 -1
  245. package/src/features/chat/adapters/inbound/ChatListItem.test.tsx +4 -4
  246. package/src/features/chat/chatListItemMeta.ts +1 -1
  247. package/src/features/chat/messageBubbleMeta.ts +2 -2
  248. package/src/features/collection-editor/meta.ts +1 -1
  249. package/src/features/content-rail/contentRailMeta.ts +2 -2
  250. package/src/features/date-picker/datePickerMeta.ts +1 -1
  251. package/src/features/date-picker/public.test.ts +4 -6
  252. package/src/features/dialog/dialogMeta.ts +1 -1
  253. package/src/features/empty-state/emptyStateMeta.ts +1 -1
  254. package/src/features/form/checkbox/checkboxMeta.ts +1 -1
  255. package/src/features/form/field/meta.ts +1 -1
  256. package/src/features/form/formActionsMeta.ts +1 -1
  257. package/src/features/form/formErrorMeta.ts +1 -1
  258. package/src/features/form/formMeta.ts +1 -1
  259. package/src/features/form/radio/adapters/inbound/RadioGroup.tsx +2 -1
  260. package/src/features/form/radio/radioMeta.ts +1 -1
  261. package/src/features/form/select/selectMeta.ts +1 -1
  262. package/src/features/form/switch/switchMeta.ts +1 -1
  263. package/src/features/form/text-input/textInputMeta.ts +1 -1
  264. package/src/features/game/{adapters/inbound → utils}/measureGameEntity.ts +1 -1
  265. package/src/features/game/utils/useGameEntityMeasurement.ts +1 -1
  266. package/src/features/gradient/gradientMeta.ts +2 -2
  267. package/src/features/gradient/public.test.ts +4 -6
  268. package/src/features/graph-view/adapters/inbound/web-artifact/GraphNodeOverlay.tsx +1 -1
  269. package/src/features/graph-view/adapters/inbound/web-artifact/GraphView.tsx +6 -116
  270. package/src/features/graph-view/adapters/inbound/web-artifact/bindGraphEvents.ts +1 -1
  271. package/src/features/graph-view/adapters/inbound/web-artifact/createGraphController.ts +1 -1
  272. package/src/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.test.ts +2 -2
  273. package/src/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.ts +8 -8
  274. package/src/features/graph-view/adapters/inbound/web-artifact/createRenderableGraphElements.test.ts +1 -1
  275. package/src/features/graph-view/adapters/inbound/web-artifact/createRenderableGraphElements.ts +1 -1
  276. package/src/features/graph-view/adapters/inbound/web-artifact/fitGraphViewport.ts +1 -1
  277. package/src/features/graph-view/adapters/inbound/web-artifact/getGraphTopologyKey.ts +1 -1
  278. package/src/features/graph-view/adapters/inbound/web-artifact/readGraphRenderedNodes.ts +1 -1
  279. package/src/features/graph-view/adapters/inbound/web-artifact/runGraphLayout.ts +1 -1
  280. package/src/features/graph-view/adapters/inbound/web-artifact/syncGraphElements.ts +1 -1
  281. package/src/features/graph-view/public.ts +18 -18
  282. package/src/features/hero/heroMeta.ts +1 -1
  283. package/src/features/icon/iconMeta.ts +1 -1
  284. package/src/features/icon/utils/meta.test.ts +8 -17
  285. package/src/features/image/imageMeta.ts +1 -1
  286. package/src/features/keyboard-avoiding-view/keyboardAvoidingViewMeta.ts +1 -1
  287. package/src/features/layout/appShellMeta.ts +1 -1
  288. package/src/features/layout/gridMeta.ts +2 -2
  289. package/src/features/layout/screenMeta.ts +2 -2
  290. package/src/features/layout/scrollViewMeta.ts +1 -1
  291. package/src/features/layout/viewMeta.ts +2 -2
  292. package/src/features/list/flatListMeta.ts +1 -1
  293. package/src/features/list/meta.ts +1 -1
  294. package/src/features/missing-element/MissingElement.test.ts +7 -6
  295. package/src/features/missing-element/missingElementMeta.ts +1 -1
  296. package/src/features/palette-item/paletteItemMeta.ts +1 -1
  297. package/src/features/popover-menu/popoverMenuMeta.ts +1 -1
  298. package/src/features/progress/progressMeta.ts +1 -1
  299. package/src/features/reader/meta.ts +2 -2
  300. package/src/features/{authoring → registry}/componentMeta.ts +1 -1
  301. package/src/features/{authoring/utils → registry}/createManifestBindings.ts +1 -1
  302. package/src/features/{authoring → registry}/featureManifest.test.ts +1 -1
  303. package/src/features/{authoring/utils → registry}/finalizeFeatureMetadata.ts +2 -2
  304. package/src/features/{authoring → registry}/index.ts +1 -1
  305. package/src/features/scanner/meta.ts +2 -2
  306. package/src/features/section/screenSectionMeta.ts +2 -2
  307. package/src/features/section/sectionHeaderMeta.ts +1 -1
  308. package/src/features/selection/meta.ts +1 -1
  309. package/src/features/skeleton/public.test.ts +6 -6
  310. package/src/features/skeleton/skeletonMeta.ts +1 -1
  311. package/src/features/surface/surfaceMeta.ts +1 -1
  312. package/src/features/tabs/tabPanelMeta.ts +1 -1
  313. package/src/features/theme/ThemeModeToggle.meta.ts +1 -1
  314. package/src/features/theme/composition/useZoraThemeRecipe.ts +4 -2
  315. package/src/features/theme/utils/resolveZoraThemeRecipe.test.ts +45 -8
  316. package/src/features/theme/utils/resolveZoraThemeRecipe.ts +11 -8
  317. package/src/features/time-picker/public.test.ts +4 -6
  318. package/src/features/time-picker/timePickerMeta.ts +1 -1
  319. package/src/features/timeline/meta.ts +1 -1
  320. package/src/features/toast/public.test.ts +4 -3
  321. package/src/features/toast/toastMeta.ts +1 -1
  322. package/src/features/toast/toastProviderMeta.ts +1 -1
  323. package/src/features/tree-view/meta.ts +1 -1
  324. package/src/features/typography/adapters/inbound/Heading.tsx +2 -1
  325. package/src/features/typography/adapters/inbound/Text.tsx +2 -1
  326. package/src/features/typography/headingMeta.ts +2 -2
  327. package/src/features/typography/textMeta.ts +2 -2
  328. package/src/features/uploader/public.test.ts +1 -1
  329. package/src/index.ts +33 -33
  330. package/src/structureOwnership.test.ts +3 -3
  331. package/src/types/auth.ts +1 -1
  332. package/src/types/avatar-group.ts +1 -1
  333. package/src/types/button-group.ts +1 -1
  334. package/src/types/chat.ts +1 -1
  335. package/src/types/gradient.ts +1 -1
  336. package/src/types/graph-view.ts +117 -0
  337. package/src/types/graphViewRuntime.ts +1 -1
  338. package/src/types/post-card.ts +1 -1
  339. package/src/types/radio.ts +1 -1
  340. package/src/types/scanner.ts +1 -1
  341. package/src/types/skeleton.ts +1 -1
  342. package/src/types/theme-mode-toggle.ts +1 -1
  343. package/web-dist/chunks/{Accordion-jd33dw92.js → Accordion-07rdw2vh.js} +1 -1
  344. package/web-dist/chunks/{Accordion-sn80af3k.js → Accordion-45ej9brb.js} +1 -1
  345. package/web-dist/chunks/{Accordion-qyckg9d2.js → Accordion-555gnfmw.js} +3 -3
  346. package/web-dist/chunks/{Accordion-ypdtx57y.js → Accordion-73m7z73v.js} +3 -3
  347. package/web-dist/chunks/{Accordion-s334j5tf.js → Accordion-8af800ts.js} +2 -2
  348. package/web-dist/chunks/{Accordion-7ycn5332.js → Accordion-9rnepkvk.js} +1 -1
  349. package/web-dist/chunks/{Accordion-1vbm971q.js → Accordion-avmgvcef.js} +1 -1
  350. package/web-dist/chunks/{Accordion-a03xpbc0.js → Accordion-b3qy1trj.js} +39 -7
  351. package/web-dist/chunks/Accordion-e1nn8m46.js +82 -0
  352. package/web-dist/chunks/{Accordion-eps4ej1m.js → Accordion-emczc5rg.js} +33 -5
  353. package/web-dist/chunks/{Accordion-wzybs1e3.js → Accordion-jhwsvx3g.js} +1 -1
  354. package/web-dist/chunks/{Accordion-qy22k9t8.js → Accordion-jj3bg8c1.js} +1 -1
  355. package/web-dist/chunks/{Accordion-nn80tt99.js → Accordion-mpnb4qqw.js} +2 -2
  356. package/web-dist/chunks/{Accordion-z5rdysmt.js → Accordion-nc5gnvnb.js} +33 -4
  357. package/web-dist/chunks/{Accordion-qkrwkab6.js → Accordion-nn38n7q4.js} +1 -1
  358. package/web-dist/chunks/{Accordion-zh8esf04.js → Accordion-pnvt10cv.js} +2 -2
  359. package/web-dist/chunks/{Accordion-4prv90j4.js → Accordion-qvt6qdqm.js} +1 -1
  360. package/web-dist/chunks/{Accordion-hk6zs4dc.js → Accordion-tj61sa5s.js} +2 -2
  361. package/web-dist/chunks/{Accordion-5r2dxq03.js → Accordion-v1dtv6v0.js} +1 -1
  362. package/web-dist/chunks/{Accordion-5t5sw5cp.js → Accordion-vmz8y01b.js} +4 -4
  363. package/web-dist/chunks/{Accordion-pssgp0pq.js → Accordion-ycmg06sq.js} +71 -4
  364. package/web-dist/chunks/{Accordion-h62mzp3n.js → Accordion-yz7b7njb.js} +2 -2
  365. package/web-dist/chunks/{Accordion-2ga47602.js → Accordion-zf3kzvef.js} +1 -1
  366. package/web-dist/components/accordion/Accordion.js +3 -3
  367. package/web-dist/components/accordion-item/AccordionItem.js +3 -3
  368. package/web-dist/components/app-bar/AppBar.js +4 -4
  369. package/web-dist/components/avatar/Avatar.js +3 -3
  370. package/web-dist/components/avatar-group/AvatarGroup.js +3 -3
  371. package/web-dist/components/barcode-scanner-view/BarcodeScannerView.js +6 -6
  372. package/web-dist/components/breadcrumbs/Breadcrumbs.js +3 -3
  373. package/web-dist/components/button/Button.js +2 -2
  374. package/web-dist/components/button-group/ButtonGroup.js +2 -2
  375. package/web-dist/components/camera-permission-view/CameraPermissionView.js +6 -6
  376. package/web-dist/components/card/Card.js +5 -5
  377. package/web-dist/components/chat-list-item/ChatListItem.js +4 -4
  378. package/web-dist/components/checkbox/Checkbox.js +3 -3
  379. package/web-dist/components/checkbox-group/CheckboxGroup.js +3 -3
  380. package/web-dist/components/chip/Chip.js +3 -3
  381. package/web-dist/components/chip-group/ChipGroup.js +3 -3
  382. package/web-dist/components/collection-editor/CollectionEditor.js +5 -5
  383. package/web-dist/components/content-rail/ContentRail.js +3 -3
  384. package/web-dist/components/data-table/DataTable.js +9 -9
  385. package/web-dist/components/date-picker/DatePicker.js +3 -3
  386. package/web-dist/components/dialog/Dialog.js +3 -3
  387. package/web-dist/components/empty-state/EmptyState.js +6 -6
  388. package/web-dist/components/field/Field.js +3 -3
  389. package/web-dist/components/flat-list/FlatList.js +4 -4
  390. package/web-dist/components/forgot-password-form/ForgotPasswordForm.js +7 -7
  391. package/web-dist/components/form/Form.js +5 -5
  392. package/web-dist/components/form-actions/FormActions.js +5 -5
  393. package/web-dist/components/form-error/FormError.js +5 -5
  394. package/web-dist/components/game/Game.js +1 -1
  395. package/web-dist/components/game-entity/GameEntity.js +1 -1
  396. package/web-dist/components/game-field/GameField.js +1 -1
  397. package/web-dist/components/game-input-zone/GameInputZone.js +1 -1
  398. package/web-dist/components/game-measurement-probe/GameMeasurementProbe.js +1 -1
  399. package/web-dist/components/game-overlay/GameOverlay.js +1 -1
  400. package/web-dist/components/graph-view/GraphView.d.ts +1 -96
  401. package/web-dist/components/heading/Heading.js +2 -2
  402. package/web-dist/components/hero/Hero.js +5 -5
  403. package/web-dist/components/icon-button/IconButton.js +2 -2
  404. package/web-dist/components/list/List.js +4 -4
  405. package/web-dist/components/list-item/ListItem.js +4 -4
  406. package/web-dist/components/list-section/ListSection.js +4 -4
  407. package/web-dist/components/media-card/MediaCard.js +5 -5
  408. package/web-dist/components/message-bubble/MessageBubble.js +4 -4
  409. package/web-dist/components/metric-card/MetricCard.js +5 -5
  410. package/web-dist/components/missing-element/MissingElement.js +2 -2
  411. package/web-dist/components/o-auth-provider-button/OAuthProviderButton.js +7 -7
  412. package/web-dist/components/o-auth-provider-list/OAuthProviderList.js +7 -7
  413. package/web-dist/components/otp-form/OtpForm.js +7 -7
  414. package/web-dist/components/pagination/Pagination.js +3 -3
  415. package/web-dist/components/palette-item/PaletteItem.js +5 -5
  416. package/web-dist/components/post-card/PostCard.js +5 -5
  417. package/web-dist/components/product-card/ProductCard.js +5 -5
  418. package/web-dist/components/progress/Progress.js +3 -3
  419. package/web-dist/components/progress-ring/ProgressRing.js +3 -3
  420. package/web-dist/components/radio/Radio.js +3 -3
  421. package/web-dist/components/radio-group/RadioGroup.js +3 -3
  422. package/web-dist/components/reader-surface/ReaderSurface.js +5 -5
  423. package/web-dist/components/scan-overlay/ScanOverlay.js +6 -6
  424. package/web-dist/components/screen-section/ScreenSection.js +3 -3
  425. package/web-dist/components/search-input/SearchInput.js +3 -3
  426. package/web-dist/components/section-header/SectionHeader.js +3 -3
  427. package/web-dist/components/section-list/SectionList.js +4 -4
  428. package/web-dist/components/select/Select.js +2 -2
  429. package/web-dist/components/sign-in-form/SignInForm.js +7 -7
  430. package/web-dist/components/sign-up-form/SignUpForm.js +7 -7
  431. package/web-dist/components/skeleton/Skeleton.js +8 -8
  432. package/web-dist/components/skeleton-card/SkeletonCard.js +8 -8
  433. package/web-dist/components/skeleton-list/SkeletonList.js +8 -8
  434. package/web-dist/components/skeleton-text/SkeletonText.js +8 -8
  435. package/web-dist/components/text/Text.js +2 -2
  436. package/web-dist/components/text-input/TextInput.js +3 -3
  437. package/web-dist/components/time-picker/TimePicker.js +3 -3
  438. package/web-dist/components/timeline/Timeline.js +2 -2
  439. package/web-dist/components/toolbar/Toolbar.js +5 -5
  440. package/web-dist/components/tree-item/TreeItem.js +5 -5
  441. package/web-dist/components/uploader/Uploader.js +7 -7
  442. package/web-dist/manifest.json +354 -354
  443. package/dist/features/authoring/allowedChildren.d.ts.map +0 -1
  444. package/dist/features/authoring/allowedChildren.js.map +0 -1
  445. package/dist/features/authoring/bindableComponentMeta.js.map +0 -1
  446. package/dist/features/authoring/componentMeta.d.ts.map +0 -1
  447. package/dist/features/authoring/componentMeta.js.map +0 -1
  448. package/dist/features/authoring/constants.d.ts +0 -40
  449. package/dist/features/authoring/constants.d.ts.map +0 -1
  450. package/dist/features/authoring/constants.js +0 -53
  451. package/dist/features/authoring/constants.js.map +0 -1
  452. package/dist/features/authoring/index.d.ts.map +0 -1
  453. package/dist/features/authoring/index.js.map +0 -1
  454. package/dist/features/authoring/themeRecipeMeta.d.ts.map +0 -1
  455. package/dist/features/authoring/themeRecipeMeta.js.map +0 -1
  456. package/dist/features/authoring/utils/createManifestBindings.d.ts.map +0 -1
  457. package/dist/features/authoring/utils/createManifestBindings.js.map +0 -1
  458. package/dist/features/authoring/utils/finalizeFeatureMetadata.d.ts.map +0 -1
  459. package/dist/features/authoring/utils/finalizeFeatureMetadata.js.map +0 -1
  460. package/dist/features/game/adapters/inbound/measureGameEntity.d.ts.map +0 -1
  461. package/dist/features/game/adapters/inbound/measureGameEntity.js.map +0 -1
  462. package/src/features/authoring/constants.ts +0 -56
  463. package/web-dist/chunks/Accordion-wvphg9x4.js +0 -246
  464. /package/dist/features/game/{adapters/inbound → utils}/measureGameEntity.js +0 -0
  465. /package/dist/features/{authoring → registry}/bindableComponentMeta.d.ts +0 -0
  466. /package/dist/features/{authoring → registry}/bindableComponentMeta.js +0 -0
  467. /package/dist/features/{authoring → registry}/componentMeta.d.ts +0 -0
  468. /package/dist/features/{authoring/utils → registry}/createManifestBindings.js +0 -0
  469. /package/dist/features/{authoring → registry}/themeRecipeMeta.d.ts +0 -0
  470. /package/dist/features/{authoring → registry}/themeRecipeMeta.js +0 -0
  471. /package/src/features/{authoring → registry}/authoringMeta.test.ts +0 -0
  472. /package/src/features/{authoring → registry}/bindableComponentMeta.test.ts +0 -0
  473. /package/src/features/{authoring → registry}/bindableComponentMeta.ts +0 -0
  474. /package/src/features/{authoring → registry}/componentMeta.test.ts +0 -0
  475. /package/src/features/{authoring → registry}/radioGroupReachability.test.ts +0 -0
  476. /package/src/features/{authoring → registry}/themeRecipeMeta.test.ts +0 -0
  477. /package/src/features/{authoring → registry}/themeRecipeMeta.ts +0 -0
@@ -8,6 +8,7 @@ import { useZoraTheme } from '../../../theme/composition/useZoraTheme';
8
8
  import { useZoraThemeRecipe } from '../../../theme/composition/useZoraThemeRecipe';
9
9
  import { resolveTextStyle } from '../../utils/resolveTextStyle';
10
10
  import { resolveTextThemeRecipe } from '../../utils/resolveTextThemeRecipe';
11
+ import { textThemeRecipeMeta } from '../../utils/textThemeRecipeMeta';
11
12
  /***
12
13
  * Structured copy primitive for theme-aware app text.
13
14
  *
@@ -71,7 +72,7 @@ function TextInner({
71
72
  }: TextProps) {
72
73
  const { theme } = useZoraTheme();
73
74
  const { breakpoint } = useResponsiveRuntime();
74
- const themeRecipe = resolveTextThemeRecipe(useZoraThemeRecipe('Text'));
75
+ const themeRecipe = resolveTextThemeRecipe(useZoraThemeRecipe(textThemeRecipeMeta));
75
76
  const content = resolveTextContent({ children, text, i18nKey });
76
77
  const resolvedVariant = resolveResponsive(variant ?? themeRecipe.variant, breakpoint) ?? 'body';
77
78
  const resolvedStyle = resolveTextStyle({
@@ -1,5 +1,5 @@
1
- import type { ZoraComponentMeta } from '../authoring';
2
- import { COMPONENT_THEME_AUTHORING } from '../authoring/constants';
1
+ import { COMPONENT_THEME_AUTHORING } from '../../constants/authoring';
2
+ import type { ZoraComponentMeta } from '../../types/authoring';
3
3
  import { ZORA_COLORS, ZORA_EMPHASES } from '../theme/colorModel';
4
4
 
5
5
  export const headingMeta = {
@@ -1,5 +1,5 @@
1
- import type { ZoraComponentMeta } from '../authoring';
2
- import { COMPONENT_THEME_AUTHORING } from '../authoring/constants';
1
+ import { COMPONENT_THEME_AUTHORING } from '../../constants/authoring';
2
+ import type { ZoraComponentMeta } from '../../types/authoring';
3
3
  import { ZORA_COLORS, ZORA_EMPHASES } from '../theme/colorModel';
4
4
 
5
5
  export const textMeta = {
@@ -23,7 +23,7 @@ describe('ZORA Uploader public contract', () => {
23
23
  const [rootSource, registrySource, metadataSource] = await Promise.all([
24
24
  Bun.file('src/index.ts').text(),
25
25
  Bun.file('src/features/registry/ZORA_COMPONENT_REGISTRY.ts').text(),
26
- Bun.file('src/features/authoring/componentMeta.ts').text(),
26
+ Bun.file('src/features/registry/componentMeta.ts').text(),
27
27
  ]);
28
28
  const publicSurface = `${rootSource}\n${registrySource}\n${metadataSource}`;
29
29
 
package/src/index.ts CHANGED
@@ -42,39 +42,6 @@ export {
42
42
  SignInForm,
43
43
  SignUpForm,
44
44
  } from './features/auth/public';
45
- export type {
46
- ZoraBindableComponentType,
47
- ZoraComponentBlueprint,
48
- ZoraComponentCategory,
49
- ZoraComponentEventMeta,
50
- ZoraComponentEventPayloadFieldMeta,
51
- ZoraComponentEventPayloadFieldType,
52
- ZoraComponentEventPayloadKind,
53
- ZoraComponentI18nMeta,
54
- ZoraComponentManifestPolicy,
55
- ZoraComponentMeta,
56
- ZoraComponentMetaRegistry,
57
- ZoraComponentPropArrayItemSchema,
58
- ZoraComponentPropAuthoring,
59
- ZoraComponentPropSchema,
60
- ZoraComponentPropType,
61
- ZoraComponentPropValue,
62
- ZoraComponentSlotMeta,
63
- ZoraThemeRecipeBooleanFieldMeta,
64
- ZoraThemeRecipeChoiceFieldMeta,
65
- ZoraThemeRecipeFieldMeta,
66
- ZoraThemeRecipeKind,
67
- ZoraThemeRecipeMeta,
68
- ZoraThemeRecipeMetaRegistry,
69
- ZoraThemeRecipeTokenFieldMeta,
70
- ZoraThemeTokenFamily,
71
- } from './features/authoring';
72
- export {
73
- ZORA_BINDABLE_COMPONENT_META,
74
- ZORA_COMPONENT_META,
75
- ZORA_THEME_RECIPE_META,
76
- ZORA_THEME_TOKEN_FAMILIES,
77
- } from './features/authoring';
78
45
  export type { AvatarProps, AvatarShape, AvatarSize } from './features/avatar/public';
79
46
  export type { AvatarGroupItem, AvatarGroupProps } from './features/avatar/public';
80
47
  export { Avatar, resolveAvatarInitials } from './features/avatar/public';
@@ -350,6 +317,39 @@ export type {
350
317
  ReaderSurfaceProps,
351
318
  } from './features/reader/public';
352
319
  export { ReaderSurface, resolveReaderProgress } from './features/reader/public';
320
+ export type {
321
+ ZoraBindableComponentType,
322
+ ZoraComponentBlueprint,
323
+ ZoraComponentCategory,
324
+ ZoraComponentEventMeta,
325
+ ZoraComponentEventPayloadFieldMeta,
326
+ ZoraComponentEventPayloadFieldType,
327
+ ZoraComponentEventPayloadKind,
328
+ ZoraComponentI18nMeta,
329
+ ZoraComponentManifestPolicy,
330
+ ZoraComponentMeta,
331
+ ZoraComponentMetaRegistry,
332
+ ZoraComponentPropArrayItemSchema,
333
+ ZoraComponentPropAuthoring,
334
+ ZoraComponentPropSchema,
335
+ ZoraComponentPropType,
336
+ ZoraComponentPropValue,
337
+ ZoraComponentSlotMeta,
338
+ ZoraThemeRecipeBooleanFieldMeta,
339
+ ZoraThemeRecipeChoiceFieldMeta,
340
+ ZoraThemeRecipeFieldMeta,
341
+ ZoraThemeRecipeKind,
342
+ ZoraThemeRecipeMeta,
343
+ ZoraThemeRecipeMetaRegistry,
344
+ ZoraThemeRecipeTokenFieldMeta,
345
+ ZoraThemeTokenFamily,
346
+ } from './features/registry';
347
+ export {
348
+ ZORA_BINDABLE_COMPONENT_META,
349
+ ZORA_COMPONENT_META,
350
+ ZORA_THEME_RECIPE_META,
351
+ ZORA_THEME_TOKEN_FAMILIES,
352
+ } from './features/registry';
353
353
  export { ZORA_COMPONENT_REGISTRY } from './features/registry/public';
354
354
  export type {
355
355
  BarcodeScannerViewProps,
@@ -3,19 +3,18 @@ import { existsSync, readdirSync } from 'node:fs';
3
3
  import { describe, expect, test } from 'bun:test';
4
4
 
5
5
  describe('src ownership', () => {
6
- test('keeps the required CLI, feature, and type owner directories at the package source root', () => {
6
+ test('keeps the required package-wide and feature owner directories at the package source root', () => {
7
7
  const directories = readdirSync('src', { withFileTypes: true })
8
8
  .filter((entry) => entry.isDirectory())
9
9
  .map((entry) => entry.name)
10
10
  .sort();
11
11
 
12
- expect(directories).toEqual(['cli', 'features', 'types']);
12
+ expect(directories).toEqual(['cli', 'constants', 'features', 'types']);
13
13
  });
14
14
 
15
15
  test('does not reintroduce technical ownership roots', () => {
16
16
  for (const path of [
17
17
  'src/constants.ts',
18
- 'src/constants',
19
18
  'src/context',
20
19
  'src/internal',
21
20
  'src/metadata',
@@ -37,6 +36,7 @@ describe('src ownership', () => {
37
36
  }
38
37
 
39
38
  for (const path of [
39
+ 'src/features/authoring',
40
40
  'src/features/authoring/types.ts',
41
41
  'src/features/authoring/themeRecipeTypes.ts',
42
42
  'src/features/theme/ZoraBaseProps.ts',
package/src/types/auth.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import type { ButtonIconSpec } from '@ankhorage/surface';
2
2
  import type React from 'react';
3
3
 
4
- import type { ButtonProps } from '../features/button/public';
5
4
  import type { ZoraBaseProps } from './base';
5
+ import type { ButtonProps } from './button';
6
6
  import type { FormFieldConfig, FormValues } from './form';
7
7
 
8
8
  export type AuthIdentifierKind = 'email' | 'phone' | 'username';
@@ -1,7 +1,7 @@
1
1
  import type { ButtonIconSpec } from '@ankhorage/surface';
2
2
  import type { ImageSourcePropType } from 'react-native';
3
3
 
4
- import type { AvatarShape, AvatarSize } from '../features/avatar/public';
4
+ import type { AvatarShape, AvatarSize } from './avatar';
5
5
  import type { ZoraBaseProps } from './base';
6
6
  import type { ZoraColor } from './theme';
7
7
 
@@ -1,7 +1,7 @@
1
1
  import type React from 'react';
2
2
 
3
- import type { ViewProps } from '../features/layout/public';
4
3
  import type { ZoraBaseProps } from './base';
4
+ import type { ViewProps } from './layout';
5
5
 
6
6
  export type ButtonGroupAlign = 'start' | 'center' | 'end' | 'stretch' | 'between';
7
7
  export type ButtonGroupOrientation = 'horizontal' | 'vertical' | 'responsive';
package/src/types/chat.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type React from 'react';
2
2
  import type { ImageSourcePropType } from 'react-native';
3
3
 
4
- import type { AvatarShape, AvatarSize } from '../features/avatar/public';
4
+ import type { AvatarShape, AvatarSize } from './avatar';
5
5
  import type { ZoraBaseProps } from './base';
6
6
  import type { ZoraColor } from './theme';
7
7
 
@@ -1,8 +1,8 @@
1
1
  import type React from 'react';
2
2
  import type { StyleProp, ViewStyle } from 'react-native';
3
3
 
4
- import type { ViewProps } from '../features/layout/public';
5
4
  import type { ZoraBaseProps } from './base';
5
+ import type { ViewProps } from './layout';
6
6
 
7
7
  export type GradientColor = string;
8
8
  export type GradientColors = readonly [GradientColor, GradientColor, ...GradientColor[]];
@@ -0,0 +1,117 @@
1
+ import type React from 'react';
2
+
3
+ export type GraphViewLayoutName = 'breadthfirst' | 'circle' | 'concentric' | 'elk' | 'grid';
4
+ export type GraphViewElementEventType =
5
+ 'press' | 'double-press' | 'select' | 'unselect' | 'pointer-enter' | 'pointer-leave';
6
+
7
+ export interface GraphViewNode {
8
+ readonly id: string;
9
+ readonly label?: string;
10
+ readonly parentId?: string;
11
+ readonly classes?: string;
12
+ readonly data?: Readonly<Record<string, unknown>>;
13
+ }
14
+
15
+ export interface GraphViewEdge {
16
+ readonly id?: string;
17
+ readonly source: string;
18
+ readonly target: string;
19
+ readonly classes?: string;
20
+ readonly data?: Readonly<Record<string, unknown>>;
21
+ }
22
+
23
+ export interface GraphViewStyleRule {
24
+ readonly selector: string;
25
+ readonly style: Readonly<Record<string, unknown>>;
26
+ }
27
+
28
+ export interface GraphViewPoint {
29
+ readonly x: number;
30
+ readonly y: number;
31
+ }
32
+
33
+ export interface GraphViewSize {
34
+ readonly width: number;
35
+ readonly height: number;
36
+ }
37
+
38
+ export interface GraphViewNodeRenderContext {
39
+ readonly hovered: boolean;
40
+ readonly node: GraphViewNode;
41
+ readonly selected: boolean;
42
+ readonly zoom: number;
43
+ }
44
+
45
+ export interface GraphViewRenderedNode {
46
+ readonly hovered: boolean;
47
+ readonly id: string;
48
+ readonly position: GraphViewPoint;
49
+ readonly selected: boolean;
50
+ readonly zoom: number;
51
+ }
52
+
53
+ export interface GraphViewViewport {
54
+ readonly zoom: number;
55
+ readonly pan: GraphViewPoint;
56
+ }
57
+
58
+ export interface GraphViewFitOptions {
59
+ /** Optimize existing layout spacing without rerunning its algorithm; whole-graph fits only. */
60
+ readonly optimizeSpacing?: boolean;
61
+ readonly nodeIds?: readonly string[];
62
+ readonly padding?: number;
63
+ }
64
+
65
+ export interface GraphViewElementEvent {
66
+ readonly id: string;
67
+ readonly type: GraphViewElementEventType;
68
+ }
69
+
70
+ export interface GraphViewController {
71
+ fit(options?: GraphViewFitOptions): void;
72
+ getViewport(): GraphViewViewport;
73
+ getZoomRange(): { readonly min: number; readonly max: number };
74
+ setPan(pan: GraphViewPoint): void;
75
+ setZoom(zoom: number): void;
76
+ zoomBy(factor: number): void;
77
+ }
78
+
79
+ export interface GraphViewProps {
80
+ readonly nodes: readonly GraphViewNode[];
81
+ readonly edges: readonly GraphViewEdge[];
82
+ readonly layout?: GraphViewLayoutName;
83
+ readonly layoutOptions?: Readonly<Record<string, unknown>>;
84
+ readonly spacingFactor?: number;
85
+ readonly styleRules?: readonly GraphViewStyleRule[];
86
+ readonly selectedNodeIds?: readonly string[];
87
+ readonly renderNode?: (context: GraphViewNodeRenderContext) => React.ReactNode;
88
+ readonly getNodeSize?: (node: GraphViewNode) => GraphViewSize | undefined;
89
+ readonly fitPadding?: number;
90
+ readonly minZoom?: number;
91
+ readonly maxZoom?: number;
92
+ readonly minReadableLabelSize?: number;
93
+ readonly maxFitLabelSize?: number;
94
+ /** Zoom values and bounds use the full-node fit as 1 when fit-relative is selected. */
95
+ readonly zoomMode?: 'absolute' | 'fit-relative';
96
+ /** Measure plain labels before layout instead of estimating width from character count. */
97
+ readonly sizeNodesToLabels?: boolean;
98
+ readonly className?: string;
99
+ readonly style?: React.CSSProperties;
100
+ readonly ariaLabel?: string;
101
+ readonly onReady?: (controller: GraphViewController) => void;
102
+ readonly onLayoutComplete?: (controller: GraphViewController) => void;
103
+ readonly onNodeEvent?: (event: GraphViewElementEvent) => void;
104
+ readonly onEdgeEvent?: (event: GraphViewElementEvent) => void;
105
+ readonly onViewportChange?: (viewport: GraphViewViewport) => void;
106
+ readonly onSpacingFactorChange?: (spacingFactor: number) => void;
107
+ }
108
+
109
+ export type GraphViewCallbacks = Pick<
110
+ GraphViewProps,
111
+ | 'onEdgeEvent'
112
+ | 'onLayoutComplete'
113
+ | 'onNodeEvent'
114
+ | 'onReady'
115
+ | 'onViewportChange'
116
+ | 'onSpacingFactorChange'
117
+ >;
@@ -3,7 +3,7 @@ import type {
3
3
  GraphViewLayoutName,
4
4
  GraphViewNode,
5
5
  GraphViewStyleRule,
6
- } from '../features/graph-view/adapters/inbound/web-artifact/GraphView';
6
+ } from './graph-view';
7
7
 
8
8
  export interface GraphRuntimeUpdate {
9
9
  readonly edges: readonly GraphViewEdge[];
@@ -2,7 +2,7 @@ import type { ButtonIconSpec } from '@ankhorage/surface';
2
2
  import type React from 'react';
3
3
  import type { ImageSourcePropType } from 'react-native';
4
4
 
5
- import type { AvatarShape, AvatarSize } from '../features/avatar/public';
5
+ import type { AvatarShape, AvatarSize } from './avatar';
6
6
  import type { ZoraBaseProps } from './base';
7
7
  import type { ZoraCardTone } from './card';
8
8
  import type { ZoraColor } from './theme';
@@ -1,8 +1,8 @@
1
1
  import type { RadioProps as SurfaceRadioProps } from '@ankhorage/surface';
2
2
  import type React from 'react';
3
3
 
4
- import type { IconProps } from '../features/icon/public';
5
4
  import type { ZoraBaseProps } from './base';
5
+ import type { IconProps } from './icon';
6
6
 
7
7
  export interface RadioProps extends ZoraBaseProps, Omit<SurfaceRadioProps, 'mode' | 'themeId'> {}
8
8
 
@@ -1,7 +1,7 @@
1
1
  import type React from 'react';
2
2
 
3
- import type { ButtonProps } from '../features/button/public';
4
3
  import type { ZoraBaseProps } from './base';
4
+ import type { ButtonProps } from './button';
5
5
 
6
6
  export type CameraPermissionStatus = 'unknown' | 'requesting' | 'granted' | 'denied';
7
7
 
@@ -1,5 +1,5 @@
1
- import type { ViewProps } from '../features/layout/public';
2
1
  import type { ZoraBaseProps } from './base';
2
+ import type { ViewProps } from './layout';
3
3
 
4
4
  export type SkeletonRadius = ViewProps['radius'];
5
5
  export type SkeletonDimension = ViewProps['width'];
@@ -1,4 +1,4 @@
1
- import type { IconButtonProps } from '../features/button/public';
1
+ import type { IconButtonProps } from './icon-button';
2
2
 
3
3
  export type ThemeModeToggleProps = Pick<
4
4
  IconButtonProps,
@@ -8,7 +8,7 @@ import {
8
8
  } from "./Accordion-vq462y0x.js";
9
9
  import {
10
10
  IconButton2
11
- } from "./Accordion-z5rdysmt.js";
11
+ } from "./Accordion-nc5gnvnb.js";
12
12
  import {
13
13
  withZoraThemeScope
14
14
  } from "./Accordion-k3bc4kad.js";
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  Heading2,
10
10
  Text2
11
- } from "./Accordion-pssgp0pq.js";
11
+ } from "./Accordion-ycmg06sq.js";
12
12
 
13
13
  // src/features/section/adapters/inbound/SectionHeader.tsx
14
14
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./Accordion-7hn324r1.js";
5
5
  import {
6
6
  Button2
7
- } from "./Accordion-z5rdysmt.js";
7
+ } from "./Accordion-nc5gnvnb.js";
8
8
  import {
9
9
  withZoraThemeScope
10
10
  } from "./Accordion-k3bc4kad.js";
@@ -13,10 +13,10 @@ import {
13
13
  } from "./Accordion-j2aw3d5b.js";
14
14
  import {
15
15
  Card2
16
- } from "./Accordion-a03xpbc0.js";
16
+ } from "./Accordion-b3qy1trj.js";
17
17
  import {
18
18
  Text2
19
- } from "./Accordion-pssgp0pq.js";
19
+ } from "./Accordion-ycmg06sq.js";
20
20
  import {
21
21
  Badge2
22
22
  } from "./Accordion-s1jhv8gk.js";
@@ -7,13 +7,13 @@ import {
7
7
  } from "./Accordion-j2aw3d5b.js";
8
8
  import {
9
9
  ButtonGroup2
10
- } from "./Accordion-z5rdysmt.js";
10
+ } from "./Accordion-nc5gnvnb.js";
11
11
  import {
12
12
  Card2
13
- } from "./Accordion-a03xpbc0.js";
13
+ } from "./Accordion-b3qy1trj.js";
14
14
  import {
15
15
  List2
16
- } from "./Accordion-zh8esf04.js";
16
+ } from "./Accordion-pnvt10cv.js";
17
17
  import {
18
18
  useZoraTheme2
19
19
  } from "./Accordion-7zfskq1s.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./Accordion-7hn324r1.js";
10
10
  import {
11
11
  IconButton2
12
- } from "./Accordion-z5rdysmt.js";
12
+ } from "./Accordion-nc5gnvnb.js";
13
13
  import {
14
14
  withZoraThemeScope
15
15
  } from "./Accordion-k3bc4kad.js";
@@ -22,7 +22,7 @@ import {
22
22
  import {
23
23
  Heading2,
24
24
  Text2
25
- } from "./Accordion-pssgp0pq.js";
25
+ } from "./Accordion-ycmg06sq.js";
26
26
  import {
27
27
  useZoraTheme2
28
28
  } from "./Accordion-7zfskq1s.js";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./Accordion-j2aw3d5b.js";
11
11
  import {
12
12
  Text2
13
- } from "./Accordion-pssgp0pq.js";
13
+ } from "./Accordion-ycmg06sq.js";
14
14
  import {
15
15
  useZoraTheme2
16
16
  } from "./Accordion-7zfskq1s.js";
@@ -22,7 +22,7 @@ import {
22
22
  } from "./Accordion-j2aw3d5b.js";
23
23
  import {
24
24
  Text2
25
- } from "./Accordion-pssgp0pq.js";
25
+ } from "./Accordion-ycmg06sq.js";
26
26
  import {
27
27
  resolveFieldState,
28
28
  resolveIndicatorSize,
@@ -16,13 +16,10 @@ import {
16
16
  View2,
17
17
  Divider2
18
18
  } from "./Accordion-j2aw3d5b.js";
19
- import {
20
- useZoraThemeRecipe
21
- } from "./Accordion-wvphg9x4.js";
22
19
  import {
23
20
  Heading2,
24
21
  Text2
25
- } from "./Accordion-pssgp0pq.js";
22
+ } from "./Accordion-ycmg06sq.js";
26
23
  import {
27
24
  resolveBadgeRecipe,
28
25
  Badge2
@@ -32,16 +29,19 @@ import {
32
29
  } from "./Accordion-1cgz6f8t.js";
33
30
  import {
34
31
  Avatar2
35
- } from "./Accordion-qy22k9t8.js";
32
+ } from "./Accordion-jj3bg8c1.js";
36
33
  import {
37
34
  Button2
38
- } from "./Accordion-z5rdysmt.js";
35
+ } from "./Accordion-nc5gnvnb.js";
39
36
  import {
40
37
  Image2
41
38
  } from "./Accordion-cecn51ry.js";
42
39
  import {
43
40
  resolveIconSize
44
41
  } from "./Accordion-961ncx4e.js";
42
+ import {
43
+ useZoraThemeRecipe
44
+ } from "./Accordion-e1nn8m46.js";
45
45
  import {
46
46
  useZoraTheme2
47
47
  } from "./Accordion-7zfskq1s.js";
@@ -143,6 +143,38 @@ function resolveCardVariant(tone = "default") {
143
143
  }
144
144
  }
145
145
 
146
+ // src/features/card/utils/themeRecipeMeta.ts
147
+ var cardThemeRecipeMeta = {
148
+ name: "Card",
149
+ kind: "component",
150
+ description: "Maps global rhythm and surface tokens into Card presentation.",
151
+ fields: {
152
+ tone: {
153
+ type: "choice",
154
+ label: "Tone",
155
+ options: ["default", "subtle", "outline"],
156
+ default: "default"
157
+ },
158
+ padding: {
159
+ type: "token",
160
+ tokenFamily: "spacing",
161
+ label: "Padding",
162
+ description: "When unset, Card keeps its compact-aware spacing default."
163
+ },
164
+ radius: {
165
+ type: "token",
166
+ tokenFamily: "radii",
167
+ label: "Corner radius",
168
+ default: "l"
169
+ },
170
+ compact: {
171
+ type: "boolean",
172
+ label: "Compact",
173
+ default: false
174
+ }
175
+ }
176
+ };
177
+
146
178
  // src/features/card/adapters/inbound/Card.tsx
147
179
  import { jsx as jsx2, jsxs } from "react/jsx-runtime";
148
180
  var Card2 = withZoraThemeScope(CardInner);
@@ -163,7 +195,7 @@ function CardInner({
163
195
  interactionPolicy,
164
196
  ...props
165
197
  }) {
166
- const themeFields = useZoraThemeRecipe("Card");
198
+ const themeFields = useZoraThemeRecipe(cardThemeRecipeMeta);
167
199
  const recipe = resolveCardThemeRecipe({ tone, compact, padding, radius, themeFields });
168
200
  const hasHeader = [eyebrow, title, description, actions].some((item) => item != null);
169
201
  const hasFooter = footer !== undefined;
@@ -0,0 +1,82 @@
1
+ 'use client';
2
+ import {
3
+ useZoraTheme2
4
+ } from "./Accordion-7zfskq1s.js";
5
+
6
+ // src/features/theme/utils/resolveZoraThemeRecipe.ts
7
+ function resolveZoraThemeRecipe(theme, meta) {
8
+ const recipeName = meta.name;
9
+ const recipes = meta.kind === "component" ? theme.config.recipes?.components : theme.config.recipes?.patterns;
10
+ const overrides = new Map(Object.entries(recipes ?? {})).get(recipeName);
11
+ const overrideByField = new Map(Object.entries(overrides ?? {}));
12
+ const resolved = [];
13
+ for (const [fieldName, fieldMeta] of Object.entries(meta.fields)) {
14
+ const override = overrideByField.get(fieldName);
15
+ if (override !== undefined) {
16
+ validateFieldValue(theme, recipeName, fieldName, fieldMeta, override);
17
+ resolved.push([fieldName, override]);
18
+ } else if (fieldMeta.default !== undefined) {
19
+ resolved.push([fieldName, fieldMeta.default]);
20
+ }
21
+ }
22
+ return Object.fromEntries(resolved);
23
+ }
24
+ function validateFieldValue(theme, recipeName, fieldName, meta, value) {
25
+ if (meta.type === "boolean") {
26
+ if (typeof value !== "boolean") {
27
+ throw new TypeError(`Theme recipe ${recipeName}.${fieldName} must be boolean.`);
28
+ }
29
+ return;
30
+ }
31
+ if (typeof value !== "string") {
32
+ throw new TypeError(`Theme recipe ${recipeName}.${fieldName} must be a string.`);
33
+ }
34
+ if (meta.type === "choice" && !meta.options.includes(value)) {
35
+ throw new RangeError(`Invalid theme recipe choice for ${recipeName}.${fieldName}: ${value}.`);
36
+ }
37
+ if (meta.type === "token" && !hasThemeToken(theme, meta.tokenFamily, value)) {
38
+ throw new RangeError(`Unknown ${meta.tokenFamily} token for ${recipeName}.${fieldName}: ${value}.`);
39
+ }
40
+ }
41
+ function hasThemeToken(theme, family, token) {
42
+ if (family === "colors")
43
+ return hasOwn(theme.colors, token);
44
+ if (family === "spacing")
45
+ return hasOwn(theme.spacing, token);
46
+ if (family === "radii")
47
+ return hasOwn(theme.radii, token);
48
+ if (family === "shadows")
49
+ return hasOwn(theme.shadows, token);
50
+ return hasOwn(theme.typography.sizes, token) || hasOwn(theme.typography.weights, token) || hasOwn(theme.typography.headings, token);
51
+ }
52
+ function hasOwn(value, key) {
53
+ return Object.prototype.hasOwnProperty.call(value, key);
54
+ }
55
+
56
+ // src/features/theme/composition/useZoraThemeRecipe.ts
57
+ function useZoraThemeRecipe(meta) {
58
+ const { theme } = useZoraTheme2();
59
+ return resolveZoraThemeRecipe(theme, meta);
60
+ }
61
+
62
+ // node_modules/@ankhorage/surface/src/constants/surfaceColor.ts
63
+ var SURFACE_PALETTE_COLORS = [
64
+ "primary",
65
+ "secondary",
66
+ "tertiary",
67
+ "quaternary",
68
+ "neutral"
69
+ ];
70
+ var SURFACE_STATUS_COLORS = ["success", "warning", "error", "info"];
71
+ var SURFACE_COLORS = [
72
+ ...SURFACE_PALETTE_COLORS,
73
+ ...SURFACE_STATUS_COLORS,
74
+ "danger"
75
+ ];
76
+ var SURFACE_EMPHASES = ["default", "muted", "subtle", "inverse"];
77
+
78
+ // src/features/theme/colorModel.ts
79
+ var ZORA_COLORS = SURFACE_COLORS;
80
+ var ZORA_EMPHASES = SURFACE_EMPHASES;
81
+
82
+ export { useZoraThemeRecipe, ZORA_COLORS, ZORA_EMPHASES };