@ankhorage/zora 15.0.0 → 16.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 (374) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/dist/constants.d.ts +5 -0
  4. package/dist/constants.d.ts.map +1 -1
  5. package/dist/constants.js +5 -0
  6. package/dist/constants.js.map +1 -1
  7. package/dist/features/accordion/accordionItemMeta.d.ts +1 -1
  8. package/dist/features/bottom-sheet/bottomSheetMeta.d.ts +1 -1
  9. package/dist/features/button/utils/resolveButtonThemeRecipe.d.ts +1 -1
  10. package/dist/features/card/cardMeta.d.ts +1 -1
  11. package/dist/features/card/mediaCardMeta.d.ts +1 -1
  12. package/dist/features/card/postCardMeta.d.ts +1 -1
  13. package/dist/features/dialog/adapters/inbound/Dialog.d.ts +5 -0
  14. package/dist/features/dialog/adapters/inbound/Dialog.d.ts.map +1 -0
  15. package/dist/features/dialog/adapters/inbound/Dialog.js +45 -0
  16. package/dist/features/dialog/adapters/inbound/Dialog.js.map +1 -0
  17. package/dist/features/dialog/dialogMeta.d.ts +87 -0
  18. package/dist/features/dialog/dialogMeta.d.ts.map +1 -0
  19. package/dist/features/dialog/dialogMeta.js +59 -0
  20. package/dist/features/dialog/dialogMeta.js.map +1 -0
  21. package/dist/features/dialog/public.d.ts +3 -0
  22. package/dist/features/dialog/public.d.ts.map +1 -0
  23. package/dist/features/dialog/public.js +2 -0
  24. package/dist/features/dialog/public.js.map +1 -0
  25. package/dist/features/form/formFieldMeta.d.ts +1 -1
  26. package/dist/features/form/formFieldMeta.d.ts.map +1 -1
  27. package/dist/features/form/formFieldMeta.js +8 -1
  28. package/dist/features/form/formFieldMeta.js.map +1 -1
  29. package/dist/features/form/radio/utils/resolveRadioGroupThemeRecipe.d.ts +1 -1
  30. package/dist/features/form/search-input/adapters/inbound/SearchInput.d.ts +4 -0
  31. package/dist/features/form/search-input/adapters/inbound/SearchInput.d.ts.map +1 -0
  32. package/dist/{components/search-bar/SearchBar.js → features/form/search-input/adapters/inbound/SearchInput.js} +8 -10
  33. package/dist/features/form/search-input/adapters/inbound/SearchInput.js.map +1 -0
  34. package/dist/features/form/search-input/public.d.ts +3 -0
  35. package/dist/features/form/search-input/public.d.ts.map +1 -0
  36. package/dist/features/form/search-input/public.js +2 -0
  37. package/dist/features/form/search-input/public.js.map +1 -0
  38. package/dist/features/form/search-input/searchInputMeta.d.ts +126 -0
  39. package/dist/features/form/search-input/searchInputMeta.d.ts.map +1 -0
  40. package/dist/features/form/search-input/searchInputMeta.js +67 -0
  41. package/dist/features/form/search-input/searchInputMeta.js.map +1 -0
  42. package/dist/features/gradient/gradientMeta.d.ts +1 -1
  43. package/dist/features/keyboard-avoiding-view/keyboardAvoidingViewMeta.d.ts +1 -1
  44. package/dist/features/layout/boxMeta.d.ts +1 -1
  45. package/dist/features/layout/containerMeta.d.ts +1 -1
  46. package/dist/features/layout/gridMeta.d.ts +1 -1
  47. package/dist/features/layout/stackMeta.d.ts +1 -1
  48. package/dist/features/list/flatListMeta.d.ts +1 -1
  49. package/dist/features/list/sectionListMeta.d.ts +1 -1
  50. package/dist/features/pagination/adapters/inbound/Pagination.d.ts +5 -0
  51. package/dist/features/pagination/adapters/inbound/Pagination.d.ts.map +1 -0
  52. package/dist/features/pagination/adapters/inbound/Pagination.js +43 -0
  53. package/dist/features/pagination/adapters/inbound/Pagination.js.map +1 -0
  54. package/dist/features/pagination/paginationMeta.d.ts +118 -0
  55. package/dist/features/pagination/paginationMeta.d.ts.map +1 -0
  56. package/dist/features/pagination/paginationMeta.js +53 -0
  57. package/dist/features/pagination/paginationMeta.js.map +1 -0
  58. package/dist/features/pagination/public.d.ts +3 -0
  59. package/dist/features/pagination/public.d.ts.map +1 -0
  60. package/dist/features/pagination/public.js +2 -0
  61. package/dist/features/pagination/public.js.map +1 -0
  62. package/dist/features/pagination/utils/resolvePaginationPage.d.ts +3 -0
  63. package/dist/features/pagination/utils/resolvePaginationPage.d.ts.map +1 -0
  64. package/dist/features/pagination/utils/resolvePaginationPage.js +7 -0
  65. package/dist/features/pagination/utils/resolvePaginationPage.js.map +1 -0
  66. package/dist/features/pagination/utils/resolvePaginationState.d.ts +17 -0
  67. package/dist/features/pagination/utils/resolvePaginationState.d.ts.map +1 -0
  68. package/dist/features/pagination/utils/resolvePaginationState.js +34 -0
  69. package/dist/features/pagination/utils/resolvePaginationState.js.map +1 -0
  70. package/dist/features/rating/adapters/inbound/Rating.d.ts +4 -0
  71. package/dist/features/rating/adapters/inbound/Rating.d.ts.map +1 -0
  72. package/dist/features/rating/adapters/inbound/Rating.js +49 -0
  73. package/dist/features/rating/adapters/inbound/Rating.js.map +1 -0
  74. package/dist/features/rating/public.d.ts +3 -0
  75. package/dist/features/rating/public.d.ts.map +1 -0
  76. package/dist/features/rating/public.js +2 -0
  77. package/dist/features/rating/public.js.map +1 -0
  78. package/dist/features/rating/ratingMeta.d.ts +57 -0
  79. package/dist/features/rating/ratingMeta.d.ts.map +1 -0
  80. package/dist/features/rating/ratingMeta.js +43 -0
  81. package/dist/features/rating/ratingMeta.js.map +1 -0
  82. package/dist/features/rating/utils/resolveRatingSegments.d.ts +9 -0
  83. package/dist/features/rating/utils/resolveRatingSegments.d.ts.map +1 -0
  84. package/dist/features/rating/utils/resolveRatingSegments.js +14 -0
  85. package/dist/features/rating/utils/resolveRatingSegments.js.map +1 -0
  86. package/dist/features/surface/surfaceMeta.d.ts +1 -1
  87. package/dist/features/tabs/adapters/inbound/Tab.d.ts +5 -0
  88. package/dist/features/tabs/adapters/inbound/Tab.d.ts.map +1 -0
  89. package/dist/features/tabs/adapters/inbound/Tab.js +14 -0
  90. package/dist/features/tabs/adapters/inbound/Tab.js.map +1 -0
  91. package/dist/features/tabs/adapters/inbound/TabList.d.ts +4 -0
  92. package/dist/features/tabs/adapters/inbound/TabList.d.ts.map +1 -0
  93. package/dist/features/tabs/adapters/inbound/TabList.js +9 -0
  94. package/dist/features/tabs/adapters/inbound/TabList.js.map +1 -0
  95. package/dist/features/tabs/adapters/inbound/TabPanel.d.ts +4 -0
  96. package/dist/features/tabs/adapters/inbound/TabPanel.d.ts.map +1 -0
  97. package/dist/features/tabs/adapters/inbound/TabPanel.js +11 -0
  98. package/dist/features/tabs/adapters/inbound/TabPanel.js.map +1 -0
  99. package/dist/features/tabs/adapters/inbound/Tabs.d.ts +4 -0
  100. package/dist/features/tabs/adapters/inbound/Tabs.d.ts.map +1 -0
  101. package/dist/features/tabs/adapters/inbound/Tabs.js +12 -0
  102. package/dist/features/tabs/adapters/inbound/Tabs.js.map +1 -0
  103. package/dist/features/tabs/composition/TabsInteractionPolicyContext.d.ts +3 -0
  104. package/dist/features/tabs/composition/TabsInteractionPolicyContext.d.ts.map +1 -0
  105. package/dist/features/tabs/composition/TabsInteractionPolicyContext.js +3 -0
  106. package/dist/features/tabs/composition/TabsInteractionPolicyContext.js.map +1 -0
  107. package/dist/features/tabs/public.d.ts +6 -0
  108. package/dist/features/tabs/public.d.ts.map +1 -0
  109. package/dist/features/tabs/public.js +5 -0
  110. package/dist/features/tabs/public.js.map +1 -0
  111. package/dist/features/tabs/tabListMeta.d.ts +9 -0
  112. package/dist/features/tabs/tabListMeta.d.ts.map +1 -0
  113. package/dist/features/tabs/tabListMeta.js +9 -0
  114. package/dist/features/tabs/tabListMeta.js.map +1 -0
  115. package/dist/features/tabs/tabMeta.d.ts +32 -0
  116. package/dist/features/tabs/tabMeta.d.ts.map +1 -0
  117. package/dist/features/tabs/tabMeta.js +14 -0
  118. package/dist/features/tabs/tabMeta.js.map +1 -0
  119. package/dist/features/tabs/tabPanelMeta.d.ts +15 -0
  120. package/dist/features/tabs/tabPanelMeta.d.ts.map +1 -0
  121. package/dist/features/tabs/tabPanelMeta.js +12 -0
  122. package/dist/features/tabs/tabPanelMeta.js.map +1 -0
  123. package/dist/features/tabs/tabsMeta.d.ts +58 -0
  124. package/dist/features/tabs/tabsMeta.d.ts.map +1 -0
  125. package/dist/features/tabs/tabsMeta.js +40 -0
  126. package/dist/features/tabs/tabsMeta.js.map +1 -0
  127. package/dist/features/toolbar/adapters/inbound/Toolbar.d.ts +4 -0
  128. package/dist/features/toolbar/adapters/inbound/Toolbar.d.ts.map +1 -0
  129. package/dist/features/toolbar/adapters/inbound/Toolbar.js +14 -0
  130. package/dist/features/toolbar/adapters/inbound/Toolbar.js.map +1 -0
  131. package/dist/features/toolbar/public.d.ts +3 -0
  132. package/dist/features/toolbar/public.d.ts.map +1 -0
  133. package/dist/features/toolbar/public.js +2 -0
  134. package/dist/features/toolbar/public.js.map +1 -0
  135. package/dist/features/toolbar/toolbarMeta.d.ts +29 -0
  136. package/dist/features/toolbar/toolbarMeta.d.ts.map +1 -0
  137. package/dist/features/toolbar/toolbarMeta.js +22 -0
  138. package/dist/features/toolbar/toolbarMeta.js.map +1 -0
  139. package/dist/features/typography/utils/resolveHeadingThemeRecipe.d.ts +1 -1
  140. package/dist/features/typography/utils/resolveTextThemeRecipe.d.ts +1 -1
  141. package/dist/features/uploader/adapters/inbound/Uploader.d.ts.map +1 -1
  142. package/dist/features/uploader/adapters/inbound/Uploader.js +3 -3
  143. package/dist/features/uploader/adapters/inbound/Uploader.js.map +1 -1
  144. package/dist/index.d.ts +6 -12
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +6 -6
  147. package/dist/index.js.map +1 -1
  148. package/dist/layout/screen/meta.d.ts +1 -1
  149. package/dist/layout/screen-section/meta.d.ts +1 -1
  150. package/dist/metadata/allowedChildren.d.ts +3 -3
  151. package/dist/metadata/allowedChildren.d.ts.map +1 -1
  152. package/dist/metadata/allowedChildren.js +6 -0
  153. package/dist/metadata/allowedChildren.js.map +1 -1
  154. package/dist/metadata/bindableComponentMeta.d.ts +2 -2
  155. package/dist/metadata/componentMeta.d.ts.map +1 -1
  156. package/dist/metadata/componentMeta.js +14 -9
  157. package/dist/metadata/componentMeta.js.map +1 -1
  158. package/dist/patterns/confirm-dialog/ConfirmDialog.js +3 -3
  159. package/dist/patterns/confirm-dialog/ConfirmDialog.js.map +1 -1
  160. package/dist/patterns/message-bubble/meta.d.ts +1 -1
  161. package/dist/patterns/notice/meta.d.ts +1 -1
  162. package/dist/patterns/panel/meta.d.ts +1 -1
  163. package/dist/patterns/reader/meta.d.ts +2 -2
  164. package/dist/patterns/scanner/meta.d.ts +2 -2
  165. package/dist/patterns/theme-composer/ThemeComposer.d.ts.map +1 -1
  166. package/dist/patterns/theme-composer/ThemeComposer.js +3 -3
  167. package/dist/patterns/theme-composer/ThemeComposer.js.map +1 -1
  168. package/dist/registry.d.ts.map +1 -1
  169. package/dist/registry.js +11 -9
  170. package/dist/registry.js.map +1 -1
  171. package/dist/types/dialog.d.ts +14 -0
  172. package/dist/types/dialog.d.ts.map +1 -0
  173. package/dist/types/dialog.js +2 -0
  174. package/dist/types/dialog.js.map +1 -0
  175. package/dist/types/pagination.d.ts +16 -0
  176. package/dist/types/pagination.d.ts.map +1 -0
  177. package/dist/types/pagination.js +2 -0
  178. package/dist/types/pagination.js.map +1 -0
  179. package/dist/types/rating.d.ts +9 -0
  180. package/dist/types/rating.d.ts.map +1 -0
  181. package/dist/types/rating.js +2 -0
  182. package/dist/types/rating.js.map +1 -0
  183. package/dist/types/search-input.d.ts +14 -0
  184. package/dist/types/search-input.d.ts.map +1 -0
  185. package/dist/types/search-input.js +2 -0
  186. package/dist/types/search-input.js.map +1 -0
  187. package/dist/types/tabs.d.ts +21 -0
  188. package/dist/types/tabs.d.ts.map +1 -0
  189. package/dist/types/tabs.js +2 -0
  190. package/dist/types/tabs.js.map +1 -0
  191. package/dist/types/toolbar.d.ts +8 -0
  192. package/dist/types/toolbar.d.ts.map +1 -0
  193. package/dist/types/toolbar.js +2 -0
  194. package/dist/types/toolbar.js.map +1 -0
  195. package/package.json +1 -1
  196. package/src/audit.test.ts +8 -47
  197. package/src/constants.ts +5 -0
  198. package/src/featureManifest.test.ts +31 -2
  199. package/src/features/dialog/adapters/inbound/Dialog.tsx +70 -0
  200. package/src/features/dialog/dialogMeta.ts +60 -0
  201. package/src/features/dialog/public.ts +2 -0
  202. package/src/features/form/formFieldMeta.ts +8 -1
  203. package/src/{components/search-bar/SearchBar.tsx → features/form/search-input/adapters/inbound/SearchInput.tsx} +10 -15
  204. package/src/features/form/search-input/public.ts +2 -0
  205. package/src/features/form/search-input/searchInputMeta.ts +68 -0
  206. package/src/features/pagination/adapters/inbound/Pagination.tsx +116 -0
  207. package/src/features/pagination/paginationMeta.ts +54 -0
  208. package/src/features/pagination/public.ts +2 -0
  209. package/src/features/pagination/utils/resolvePaginationPage.ts +6 -0
  210. package/src/features/pagination/utils/resolvePaginationState.test.ts +29 -0
  211. package/src/features/pagination/utils/resolvePaginationState.ts +70 -0
  212. package/src/features/rating/adapters/inbound/Rating.tsx +70 -0
  213. package/src/features/rating/public.ts +2 -0
  214. package/src/features/rating/ratingMeta.ts +44 -0
  215. package/src/features/rating/utils/resolveRatingSegments.test.ts +20 -0
  216. package/src/features/rating/utils/resolveRatingSegments.ts +19 -0
  217. package/src/features/tabs/adapters/inbound/Tab.tsx +26 -0
  218. package/src/features/tabs/adapters/inbound/TabList.tsx +18 -0
  219. package/src/features/tabs/adapters/inbound/TabPanel.tsx +23 -0
  220. package/src/features/tabs/adapters/inbound/Tabs.tsx +23 -0
  221. package/src/features/tabs/composition/TabsInteractionPolicyContext.ts +4 -0
  222. package/src/features/tabs/public.ts +5 -0
  223. package/src/features/tabs/tabListMeta.ts +10 -0
  224. package/src/features/tabs/tabMeta.ts +15 -0
  225. package/src/features/tabs/tabPanelMeta.ts +13 -0
  226. package/src/features/tabs/tabsMeta.ts +41 -0
  227. package/src/features/toolbar/adapters/inbound/Toolbar.tsx +31 -0
  228. package/src/features/toolbar/public.ts +2 -0
  229. package/src/features/toolbar/toolbarMeta.ts +24 -0
  230. package/src/{components → features/typography}/contentFallback.test.ts +2 -8
  231. package/src/features/uploader/adapters/inbound/Uploader.tsx +3 -3
  232. package/src/index.ts +15 -12
  233. package/src/metadata/allowedChildren.ts +6 -0
  234. package/src/metadata/componentMeta.test.ts +18 -1
  235. package/src/metadata/componentMeta.ts +14 -9
  236. package/src/patterns/confirm-dialog/ConfirmDialog.tsx +3 -3
  237. package/src/patterns/theme-composer/ThemeComposer.tsx +6 -7
  238. package/src/registry.ts +11 -9
  239. package/src/showcaseCoverage.test.ts +6 -3
  240. package/src/theme/themeScopeStructure.test.ts +16 -11
  241. package/src/types/dialog.ts +15 -0
  242. package/src/{components/pagination/types.ts → types/pagination.ts} +5 -8
  243. package/src/types/rating.ts +9 -0
  244. package/src/types/search-input.ts +14 -0
  245. package/src/types/tabs.ts +25 -0
  246. package/src/types/toolbar.ts +9 -0
  247. package/dist/components/modal/Modal.d.ts +0 -7
  248. package/dist/components/modal/Modal.d.ts.map +0 -1
  249. package/dist/components/modal/Modal.js +0 -39
  250. package/dist/components/modal/Modal.js.map +0 -1
  251. package/dist/components/modal/index.d.ts +0 -3
  252. package/dist/components/modal/index.d.ts.map +0 -1
  253. package/dist/components/modal/index.js +0 -2
  254. package/dist/components/modal/index.js.map +0 -1
  255. package/dist/components/modal/meta.d.ts +0 -9
  256. package/dist/components/modal/meta.d.ts.map +0 -1
  257. package/dist/components/modal/meta.js +0 -9
  258. package/dist/components/modal/meta.js.map +0 -1
  259. package/dist/components/modal/types.d.ts +0 -12
  260. package/dist/components/modal/types.d.ts.map +0 -1
  261. package/dist/components/modal/types.js +0 -2
  262. package/dist/components/modal/types.js.map +0 -1
  263. package/dist/components/pagination/Pagination.d.ts +0 -7
  264. package/dist/components/pagination/Pagination.d.ts.map +0 -1
  265. package/dist/components/pagination/Pagination.js +0 -96
  266. package/dist/components/pagination/Pagination.js.map +0 -1
  267. package/dist/components/pagination/index.d.ts +0 -3
  268. package/dist/components/pagination/index.d.ts.map +0 -1
  269. package/dist/components/pagination/index.js +0 -2
  270. package/dist/components/pagination/index.js.map +0 -1
  271. package/dist/components/pagination/meta.d.ts +0 -9
  272. package/dist/components/pagination/meta.d.ts.map +0 -1
  273. package/dist/components/pagination/meta.js +0 -9
  274. package/dist/components/pagination/meta.js.map +0 -1
  275. package/dist/components/pagination/types.d.ts +0 -18
  276. package/dist/components/pagination/types.d.ts.map +0 -1
  277. package/dist/components/pagination/types.js +0 -2
  278. package/dist/components/pagination/types.js.map +0 -1
  279. package/dist/components/rating/Rating.d.ts +0 -7
  280. package/dist/components/rating/Rating.d.ts.map +0 -1
  281. package/dist/components/rating/Rating.js +0 -26
  282. package/dist/components/rating/Rating.js.map +0 -1
  283. package/dist/components/rating/index.d.ts +0 -3
  284. package/dist/components/rating/index.d.ts.map +0 -1
  285. package/dist/components/rating/index.js +0 -2
  286. package/dist/components/rating/index.js.map +0 -1
  287. package/dist/components/rating/meta.d.ts +0 -9
  288. package/dist/components/rating/meta.d.ts.map +0 -1
  289. package/dist/components/rating/meta.js +0 -9
  290. package/dist/components/rating/meta.js.map +0 -1
  291. package/dist/components/rating/resolveRatingSegments.d.ts +0 -7
  292. package/dist/components/rating/resolveRatingSegments.d.ts.map +0 -1
  293. package/dist/components/rating/resolveRatingSegments.js +0 -22
  294. package/dist/components/rating/resolveRatingSegments.js.map +0 -1
  295. package/dist/components/rating/types.d.ts +0 -11
  296. package/dist/components/rating/types.d.ts.map +0 -1
  297. package/dist/components/rating/types.js +0 -26
  298. package/dist/components/rating/types.js.map +0 -1
  299. package/dist/components/search-bar/SearchBar.d.ts +0 -7
  300. package/dist/components/search-bar/SearchBar.d.ts.map +0 -1
  301. package/dist/components/search-bar/SearchBar.js.map +0 -1
  302. package/dist/components/search-bar/index.d.ts +0 -3
  303. package/dist/components/search-bar/index.d.ts.map +0 -1
  304. package/dist/components/search-bar/index.js +0 -2
  305. package/dist/components/search-bar/index.js.map +0 -1
  306. package/dist/components/search-bar/meta.d.ts +0 -9
  307. package/dist/components/search-bar/meta.d.ts.map +0 -1
  308. package/dist/components/search-bar/meta.js +0 -9
  309. package/dist/components/search-bar/meta.js.map +0 -1
  310. package/dist/components/search-bar/types.d.ts +0 -14
  311. package/dist/components/search-bar/types.d.ts.map +0 -1
  312. package/dist/components/search-bar/types.js +0 -2
  313. package/dist/components/search-bar/types.js.map +0 -1
  314. package/dist/components/tabs/Tabs.d.ts +0 -9
  315. package/dist/components/tabs/Tabs.d.ts.map +0 -1
  316. package/dist/components/tabs/Tabs.js +0 -59
  317. package/dist/components/tabs/Tabs.js.map +0 -1
  318. package/dist/components/tabs/index.d.ts +0 -3
  319. package/dist/components/tabs/index.d.ts.map +0 -1
  320. package/dist/components/tabs/index.js +0 -3
  321. package/dist/components/tabs/index.js.map +0 -1
  322. package/dist/components/tabs/meta.d.ts +0 -9
  323. package/dist/components/tabs/meta.d.ts.map +0 -1
  324. package/dist/components/tabs/meta.js +0 -9
  325. package/dist/components/tabs/meta.js.map +0 -1
  326. package/dist/components/tabs/types.d.ts +0 -22
  327. package/dist/components/tabs/types.d.ts.map +0 -1
  328. package/dist/components/tabs/types.js +0 -2
  329. package/dist/components/tabs/types.js.map +0 -1
  330. package/dist/components/toolbar/Toolbar.d.ts +0 -9
  331. package/dist/components/toolbar/Toolbar.d.ts.map +0 -1
  332. package/dist/components/toolbar/Toolbar.js +0 -26
  333. package/dist/components/toolbar/Toolbar.js.map +0 -1
  334. package/dist/components/toolbar/ToolbarAction.d.ts +0 -9
  335. package/dist/components/toolbar/ToolbarAction.d.ts.map +0 -1
  336. package/dist/components/toolbar/ToolbarAction.js +0 -13
  337. package/dist/components/toolbar/ToolbarAction.js.map +0 -1
  338. package/dist/components/toolbar/index.d.ts +0 -4
  339. package/dist/components/toolbar/index.d.ts.map +0 -1
  340. package/dist/components/toolbar/index.js +0 -4
  341. package/dist/components/toolbar/index.js.map +0 -1
  342. package/dist/components/toolbar/meta.d.ts +0 -17
  343. package/dist/components/toolbar/meta.d.ts.map +0 -1
  344. package/dist/components/toolbar/meta.js +0 -17
  345. package/dist/components/toolbar/meta.js.map +0 -1
  346. package/dist/components/toolbar/types.d.ts +0 -18
  347. package/dist/components/toolbar/types.d.ts.map +0 -1
  348. package/dist/components/toolbar/types.js +0 -2
  349. package/dist/components/toolbar/types.js.map +0 -1
  350. package/src/components/modal/Modal.tsx +0 -63
  351. package/src/components/modal/index.ts +0 -2
  352. package/src/components/modal/meta.ts +0 -10
  353. package/src/components/modal/types.ts +0 -16
  354. package/src/components/pagination/Pagination.tsx +0 -199
  355. package/src/components/pagination/index.ts +0 -2
  356. package/src/components/pagination/meta.ts +0 -10
  357. package/src/components/rating/Rating.tsx +0 -42
  358. package/src/components/rating/index.ts +0 -2
  359. package/src/components/rating/meta.ts +0 -10
  360. package/src/components/rating/resolveRatingSegments.test.ts +0 -60
  361. package/src/components/rating/resolveRatingSegments.ts +0 -34
  362. package/src/components/rating/types.ts +0 -37
  363. package/src/components/search-bar/index.ts +0 -2
  364. package/src/components/search-bar/meta.ts +0 -10
  365. package/src/components/search-bar/types.ts +0 -14
  366. package/src/components/tabs/Tabs.tsx +0 -129
  367. package/src/components/tabs/index.ts +0 -2
  368. package/src/components/tabs/meta.ts +0 -10
  369. package/src/components/tabs/types.ts +0 -25
  370. package/src/components/toolbar/Toolbar.tsx +0 -48
  371. package/src/components/toolbar/ToolbarAction.tsx +0 -28
  372. package/src/components/toolbar/index.ts +0 -3
  373. package/src/components/toolbar/meta.ts +0 -19
  374. package/src/components/toolbar/types.ts +0 -21
@@ -0,0 +1,7 @@
1
+ /*** Clamps a requested pagination page to the valid one-based page range. */
2
+ export function resolvePaginationPage(value, pageCount) {
3
+ if (!Number.isFinite(value))
4
+ return 1;
5
+ return Math.min(Math.max(Math.trunc(value), 1), Math.max(pageCount, 1));
6
+ }
7
+ //# sourceMappingURL=resolvePaginationPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvePaginationPage.js","sourceRoot":"","sources":["../../../../src/features/pagination/utils/resolvePaginationPage.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,SAAiB;IACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEtC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC","sourcesContent":["/*** Clamps a requested pagination page to the valid one-based page range. */\nexport function resolvePaginationPage(value: number, pageCount: number): number {\n if (!Number.isFinite(value)) return 1;\n\n return Math.min(Math.max(Math.trunc(value), 1), Math.max(pageCount, 1));\n}\n"]}
@@ -0,0 +1,17 @@
1
+ /*** Normalizes pagination input and resolves visible page and ellipsis items. */
2
+ export declare function resolvePaginationState({ page, pageCount, siblingCount, boundaryCount, compact, }: PaginationStateInput): PaginationState;
3
+ type PaginationItem = number | 'ellipsis';
4
+ interface PaginationStateInput {
5
+ page: number;
6
+ pageCount: number;
7
+ siblingCount: number | undefined;
8
+ boundaryCount: number | undefined;
9
+ compact: boolean;
10
+ }
11
+ interface PaginationState {
12
+ currentPage: number;
13
+ pageCount: number;
14
+ items: readonly PaginationItem[];
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=resolvePaginationState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvePaginationState.d.ts","sourceRoot":"","sources":["../../../../src/features/pagination/utils/resolvePaginationState.ts"],"names":[],"mappings":"AAEA,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,aAAa,EACb,OAAO,GACR,EAAE,oBAAoB,GAAG,eAAe,CAkCxC;AAED,KAAK,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC;AAE1C,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;CAClC"}
@@ -0,0 +1,34 @@
1
+ import { resolvePaginationPage } from './resolvePaginationPage';
2
+ /*** Normalizes pagination input and resolves visible page and ellipsis items. */
3
+ export function resolvePaginationState({ page, pageCount, siblingCount, boundaryCount, compact, }) {
4
+ const normalizedPageCount = Math.max(0, Math.trunc(Number.isFinite(pageCount) ? pageCount : 0));
5
+ const currentPage = resolvePaginationPage(page, normalizedPageCount);
6
+ const safeSiblingCount = normalizeCount(siblingCount, 1);
7
+ const safeBoundaryCount = normalizeCount(boundaryCount, 1);
8
+ if (normalizedPageCount <= 0) {
9
+ return { currentPage, items: [], pageCount: normalizedPageCount };
10
+ }
11
+ if (compact) {
12
+ return { currentPage, items: [currentPage], pageCount: normalizedPageCount };
13
+ }
14
+ const boundaries = createRange(1, Math.min(safeBoundaryCount, normalizedPageCount));
15
+ const trailingBoundaries = createRange(Math.max(normalizedPageCount - safeBoundaryCount + 1, 1), normalizedPageCount);
16
+ const siblings = createRange(Math.max(currentPage - safeSiblingCount, 1), Math.min(currentPage + safeSiblingCount, normalizedPageCount));
17
+ const pages = [...new Set([...boundaries, ...siblings, ...trailingBoundaries])].sort((left, right) => left - right);
18
+ const items = pages.flatMap((nextPage, index) => {
19
+ const previousPage = index > 0 ? pages.at(index - 1) : undefined;
20
+ return previousPage !== undefined && nextPage - previousPage > 1
21
+ ? ['ellipsis', nextPage]
22
+ : [nextPage];
23
+ });
24
+ return { currentPage, items, pageCount: normalizedPageCount };
25
+ }
26
+ /*** Creates an inclusive numeric range for pagination boundaries and siblings. */
27
+ function createRange(start, end) {
28
+ return end < start ? [] : Array.from({ length: end - start + 1 }, (_, index) => start + index);
29
+ }
30
+ /*** Normalizes optional pagination counts to finite non-negative integers. */
31
+ function normalizeCount(value, fallback) {
32
+ return value === undefined || !Number.isFinite(value) ? fallback : Math.max(0, Math.trunc(value));
33
+ }
34
+ //# sourceMappingURL=resolvePaginationState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvePaginationState.js","sourceRoot":"","sources":["../../../../src/features/pagination/utils/resolvePaginationState.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolvePaginationPage } from './resolvePaginationPage';\n\n/*** Normalizes pagination input and resolves visible page and ellipsis items. */\nexport function resolvePaginationState({\n page,\n pageCount,\n siblingCount,\n boundaryCount,\n compact,\n}: PaginationStateInput): PaginationState {\n const normalizedPageCount = Math.max(0, Math.trunc(Number.isFinite(pageCount) ? pageCount : 0));\n const currentPage = resolvePaginationPage(page, normalizedPageCount);\n const safeSiblingCount = normalizeCount(siblingCount, 1);\n const safeBoundaryCount = normalizeCount(boundaryCount, 1);\n\n if (normalizedPageCount <= 0) {\n return { currentPage, items: [], pageCount: normalizedPageCount };\n }\n\n if (compact) {\n return { currentPage, items: [currentPage], pageCount: normalizedPageCount };\n }\n\n const boundaries = createRange(1, Math.min(safeBoundaryCount, normalizedPageCount));\n const trailingBoundaries = createRange(\n Math.max(normalizedPageCount - safeBoundaryCount + 1, 1),\n normalizedPageCount,\n );\n const siblings = createRange(\n Math.max(currentPage - safeSiblingCount, 1),\n Math.min(currentPage + safeSiblingCount, normalizedPageCount),\n );\n const pages = [...new Set([...boundaries, ...siblings, ...trailingBoundaries])].sort(\n (left, right) => left - right,\n );\n const items = pages.flatMap<PaginationItem>((nextPage, index) => {\n const previousPage = index > 0 ? pages.at(index - 1) : undefined;\n return previousPage !== undefined && nextPage - previousPage > 1\n ? ['ellipsis', nextPage]\n : [nextPage];\n });\n\n return { currentPage, items, pageCount: normalizedPageCount };\n}\n\ntype PaginationItem = number | 'ellipsis';\n\ninterface PaginationStateInput {\n page: number;\n pageCount: number;\n siblingCount: number | undefined;\n boundaryCount: number | undefined;\n compact: boolean;\n}\n\ninterface PaginationState {\n currentPage: number;\n pageCount: number;\n items: readonly PaginationItem[];\n}\n\n/*** Creates an inclusive numeric range for pagination boundaries and siblings. */\nfunction createRange(start: number, end: number): number[] {\n return end < start ? [] : Array.from({ length: end - start + 1 }, (_, index) => start + index);\n}\n\n/*** Normalizes optional pagination counts to finite non-negative integers. */\nfunction normalizeCount(value: number | undefined, fallback: number): number {\n return value === undefined || !Number.isFinite(value) ? fallback : Math.max(0, Math.trunc(value));\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { RatingProps } from '../../../../types/rating';
2
+ /*** Displays a read-only star rating with optional half steps. */
3
+ export declare const Rating: (props: RatingProps) => React.ReactElement | null;
4
+ //# sourceMappingURL=Rating.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rating.d.ts","sourceRoot":"","sources":["../../../../../src/features/rating/adapters/inbound/Rating.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI5D,kEAAkE;AAClE,eAAO,MAAM,MAAM,mDAAkC,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { Inline } from '../../../../foundation';
2
+ import { resolveIconSize } from '../../../../internal/recipes';
3
+ import { useZoraTheme } from '../../../../theme/useZoraTheme';
4
+ import { withZoraThemeScope } from '../../../../theme/withZoraThemeScope';
5
+ import { Icon } from '../../../icon/public';
6
+ import { resolveRatingSegments } from '../../utils/resolveRatingSegments';
7
+ /*** Displays a read-only star rating with optional half steps. */
8
+ export const Rating = withZoraThemeScope(RatingInner);
9
+ /*** Resolves rating visuals from the active ZORA theme. */
10
+ function RatingInner({ themeId: _themeId, mode: _mode, interactionPolicy: _interactionPolicy, testID, value, max = 5, color = 'warning', size = 'm', }) {
11
+ const { theme } = useZoraTheme();
12
+ const role = resolveRatingRole(theme, color);
13
+ const segments = resolveRatingSegments({ value, max });
14
+ const iconSize = resolveIconSize(size);
15
+ return (<Inline align="center" gap="xxs" testID={testID} wrap="nowrap">
16
+ {segments.map((segment, index) => {
17
+ const name = segment === 'full' ? 'star' : segment === 'half' ? 'star-half' : 'star-outline';
18
+ const segmentColor = segment === 'empty' ? theme.semantics.content.muted : role.base;
19
+ return (<Icon key={`${index}-${segment}`} color={segmentColor} name={name} size={iconSize}/>);
20
+ })}
21
+ </Inline>);
22
+ }
23
+ /*** Resolves the semantic theme role for a ZORA rating color. */
24
+ function resolveRatingRole(theme, color) {
25
+ switch (color) {
26
+ case 'secondary':
27
+ return theme.semantics.secondary;
28
+ case 'tertiary':
29
+ return theme.semantics.accent;
30
+ case 'quaternary':
31
+ return theme.semantics.highlight;
32
+ case 'error':
33
+ return theme.semantics.error;
34
+ case 'info':
35
+ return theme.semantics.info;
36
+ case 'primary':
37
+ return theme.semantics.action.primary;
38
+ case 'danger':
39
+ return theme.semantics.action.danger;
40
+ case 'success':
41
+ return theme.semantics.success;
42
+ case 'warning':
43
+ return theme.semantics.warning;
44
+ case 'neutral':
45
+ default:
46
+ return theme.semantics.action.neutral;
47
+ }
48
+ }
49
+ //# sourceMappingURL=Rating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rating.js","sourceRoot":"","sources":["../../../../../src/features/rating/adapters/inbound/Rating.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { RoleSemantics, SurfaceTheme } from '@ankhorage/surface';\n\nimport { Inline } from '../../../../foundation';\nimport type { ZoraColor } from '../../../../internal/recipes';\nimport { resolveIconSize } from '../../../../internal/recipes';\nimport { useZoraTheme } from '../../../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../../../theme/withZoraThemeScope';\nimport type { RatingProps } from '../../../../types/rating';\nimport { Icon } from '../../../icon/public';\nimport { resolveRatingSegments } from '../../utils/resolveRatingSegments';\n\n/*** Displays a read-only star rating with optional half steps. */\nexport const Rating = withZoraThemeScope(RatingInner);\n\n/*** Resolves rating visuals from the active ZORA theme. */\nfunction RatingInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy: _interactionPolicy,\n testID,\n value,\n max = 5,\n color = 'warning',\n size = 'm',\n}: RatingProps) {\n const { theme } = useZoraTheme();\n const role = resolveRatingRole(theme, color);\n const segments = resolveRatingSegments({ value, max });\n const iconSize = resolveIconSize(size);\n\n return (\n <Inline align=\"center\" gap=\"xxs\" testID={testID} wrap=\"nowrap\">\n {segments.map((segment, index) => {\n const name =\n segment === 'full' ? 'star' : segment === 'half' ? 'star-half' : 'star-outline';\n const segmentColor = segment === 'empty' ? theme.semantics.content.muted : role.base;\n return (\n <Icon key={`${index}-${segment}`} color={segmentColor} name={name} size={iconSize} />\n );\n })}\n </Inline>\n );\n}\n\n/*** Resolves the semantic theme role for a ZORA rating color. */\nfunction resolveRatingRole(theme: SurfaceTheme, color: ZoraColor): RoleSemantics {\n switch (color) {\n case 'secondary':\n return theme.semantics.secondary;\n case 'tertiary':\n return theme.semantics.accent;\n case 'quaternary':\n return theme.semantics.highlight;\n case 'error':\n return theme.semantics.error;\n case 'info':\n return theme.semantics.info;\n case 'primary':\n return theme.semantics.action.primary;\n case 'danger':\n return theme.semantics.action.danger;\n case 'success':\n return theme.semantics.success;\n case 'warning':\n return theme.semantics.warning;\n case 'neutral':\n default:\n return theme.semantics.action.neutral;\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export type { RatingProps } from '../../types/rating';
2
+ export { Rating } from './adapters/inbound/Rating';
3
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/features/rating/public.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Rating } from './adapters/inbound/Rating';
2
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/features/rating/public.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC","sourcesContent":["export type { RatingProps } from '../../types/rating';\nexport { Rating } from './adapters/inbound/Rating';\n"]}
@@ -0,0 +1,57 @@
1
+ export declare const ratingMeta: {
2
+ readonly name: "Rating";
3
+ readonly category: "component";
4
+ readonly directManifestNode: true;
5
+ readonly allowedChildren: readonly [];
6
+ readonly description: "Displays a read-only star-based rating value.";
7
+ readonly blueprint: {
8
+ readonly label: "Rating";
9
+ readonly defaultProps: {
10
+ readonly color: "warning";
11
+ readonly max: 5;
12
+ readonly size: "m";
13
+ readonly value: 4.5;
14
+ };
15
+ };
16
+ readonly bindings: {
17
+ readonly props: {
18
+ readonly value: {
19
+ readonly label: "Value";
20
+ readonly description: "Current rating value.";
21
+ readonly value: {
22
+ readonly type: "number";
23
+ };
24
+ readonly acceptsFallback: true;
25
+ readonly acceptsTransforms: true;
26
+ };
27
+ };
28
+ };
29
+ readonly props: {
30
+ readonly value: {
31
+ readonly type: "number";
32
+ readonly category: "Data";
33
+ readonly label: "Value";
34
+ };
35
+ readonly max: {
36
+ readonly type: "number";
37
+ readonly category: "Data";
38
+ readonly label: "Maximum";
39
+ readonly default: 5;
40
+ };
41
+ readonly color: {
42
+ readonly type: "enum";
43
+ readonly category: "Style";
44
+ readonly label: "Color";
45
+ readonly enum: readonly ["neutral", "primary", "secondary", "tertiary", "quaternary", "success", "warning", "danger", "error", "info"];
46
+ readonly default: "warning";
47
+ };
48
+ readonly size: {
49
+ readonly type: "enum";
50
+ readonly category: "Style";
51
+ readonly label: "Size";
52
+ readonly enum: readonly ["s", "m", "l"];
53
+ readonly default: "m";
54
+ };
55
+ };
56
+ };
57
+ //# sourceMappingURL=ratingMeta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ratingMeta.d.ts","sourceRoot":"","sources":["../../../src/features/rating/ratingMeta.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCe,CAAC"}
@@ -0,0 +1,43 @@
1
+ export const ratingMeta = {
2
+ name: 'Rating',
3
+ category: 'component',
4
+ directManifestNode: true,
5
+ allowedChildren: [],
6
+ description: 'Displays a read-only star-based rating value.',
7
+ blueprint: { label: 'Rating', defaultProps: { color: 'warning', max: 5, size: 'm', value: 4.5 } },
8
+ bindings: {
9
+ props: {
10
+ value: {
11
+ label: 'Value',
12
+ description: 'Current rating value.',
13
+ value: { type: 'number' },
14
+ acceptsFallback: true,
15
+ acceptsTransforms: true,
16
+ },
17
+ },
18
+ },
19
+ props: {
20
+ value: { type: 'number', category: 'Data', label: 'Value' },
21
+ max: { type: 'number', category: 'Data', label: 'Maximum', default: 5 },
22
+ color: {
23
+ type: 'enum',
24
+ category: 'Style',
25
+ label: 'Color',
26
+ enum: [
27
+ 'neutral',
28
+ 'primary',
29
+ 'secondary',
30
+ 'tertiary',
31
+ 'quaternary',
32
+ 'success',
33
+ 'warning',
34
+ 'danger',
35
+ 'error',
36
+ 'info',
37
+ ],
38
+ default: 'warning',
39
+ },
40
+ size: { type: 'enum', category: 'Style', label: 'Size', enum: ['s', 'm', 'l'], default: 'm' },
41
+ },
42
+ };
43
+ //# sourceMappingURL=ratingMeta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ratingMeta.js","sourceRoot":"","sources":["../../../src/features/rating/ratingMeta.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,WAAW;IACrB,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,EAAE;IACnB,WAAW,EAAE,+CAA+C;IAC5D,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IACjG,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,KAAK,EAAE;gBACL,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,uBAAuB;gBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,eAAe,EAAE,IAAI;gBACrB,iBAAiB,EAAE,IAAI;aACxB;SACF;KACF;IACD,KAAK,EAAE;QACL,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAC3D,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QACvE,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE;gBACJ,SAAS;gBACT,SAAS;gBACT,WAAW;gBACX,UAAU;gBACV,YAAY;gBACZ,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,OAAO;gBACP,MAAM;aACP;YACD,OAAO,EAAE,SAAS;SACnB;QACD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;KAC9F;CACmC,CAAC","sourcesContent":["import type { ZoraComponentMeta } from '../../metadata/types';\n\nexport const ratingMeta = {\n name: 'Rating',\n category: 'component',\n directManifestNode: true,\n allowedChildren: [],\n description: 'Displays a read-only star-based rating value.',\n blueprint: { label: 'Rating', defaultProps: { color: 'warning', max: 5, size: 'm', value: 4.5 } },\n bindings: {\n props: {\n value: {\n label: 'Value',\n description: 'Current rating value.',\n value: { type: 'number' },\n acceptsFallback: true,\n acceptsTransforms: true,\n },\n },\n },\n props: {\n value: { type: 'number', category: 'Data', label: 'Value' },\n max: { type: 'number', category: 'Data', label: 'Maximum', default: 5 },\n color: {\n type: 'enum',\n category: 'Style',\n label: 'Color',\n enum: [\n 'neutral',\n 'primary',\n 'secondary',\n 'tertiary',\n 'quaternary',\n 'success',\n 'warning',\n 'danger',\n 'error',\n 'info',\n ],\n default: 'warning',\n },\n size: { type: 'enum', category: 'Style', label: 'Size', enum: ['s', 'm', 'l'], default: 'm' },\n },\n} as const satisfies ZoraComponentMeta;\n"]}
@@ -0,0 +1,9 @@
1
+ export type RatingSegment = 'empty' | 'full' | 'half';
2
+ /*** Resolves a numeric rating into full, half, and empty visual segments. */
3
+ export declare function resolveRatingSegments({ value, max }: ResolveRatingSegmentsInput): RatingSegment[];
4
+ interface ResolveRatingSegmentsInput {
5
+ value: number;
6
+ max: number;
7
+ }
8
+ export {};
9
+ //# sourceMappingURL=resolveRatingSegments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveRatingSegments.d.ts","sourceRoot":"","sources":["../../../../src/features/rating/utils/resolveRatingSegments.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtD,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,0BAA0B,GAAG,aAAa,EAAE,CAUjG;AAED,UAAU,0BAA0B;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb"}
@@ -0,0 +1,14 @@
1
+ /*** Resolves a numeric rating into full, half, and empty visual segments. */
2
+ export function resolveRatingSegments({ value, max }) {
3
+ const normalizedMax = Math.max(0, Math.trunc(Number.isFinite(max) ? max : 0));
4
+ const normalizedValue = Math.min(Math.max(Number.isFinite(value) ? value : 0, 0), normalizedMax);
5
+ return Array.from({ length: normalizedMax }, (_, index) => {
6
+ const remaining = normalizedValue - index;
7
+ if (remaining >= 1)
8
+ return 'full';
9
+ if (remaining >= 0.5)
10
+ return 'half';
11
+ return 'empty';
12
+ });
13
+ }
14
+ //# sourceMappingURL=resolveRatingSegments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveRatingSegments.js","sourceRoot":"","sources":["../../../../src/features/rating/utils/resolveRatingSegments.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB,CAAC,EAAE,KAAK,EAAE,GAAG,EAA8B;IAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IAEjG,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACxD,MAAM,SAAS,GAAG,eAAe,GAAG,KAAK,CAAC;QAC1C,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QAClC,IAAI,SAAS,IAAI,GAAG;YAAE,OAAO,MAAM,CAAC;QACpC,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["export type RatingSegment = 'empty' | 'full' | 'half';\n\n/*** Resolves a numeric rating into full, half, and empty visual segments. */\nexport function resolveRatingSegments({ value, max }: ResolveRatingSegmentsInput): RatingSegment[] {\n const normalizedMax = Math.max(0, Math.trunc(Number.isFinite(max) ? max : 0));\n const normalizedValue = Math.min(Math.max(Number.isFinite(value) ? value : 0, 0), normalizedMax);\n\n return Array.from({ length: normalizedMax }, (_, index) => {\n const remaining = normalizedValue - index;\n if (remaining >= 1) return 'full';\n if (remaining >= 0.5) return 'half';\n return 'empty';\n });\n}\n\ninterface ResolveRatingSegmentsInput {\n value: number;\n max: number;\n}\n"]}
@@ -2,7 +2,7 @@ export declare const surfaceMeta: {
2
2
  readonly name: "Surface";
3
3
  readonly category: "foundation";
4
4
  readonly directManifestNode: true;
5
- readonly allowedChildren: readonly ["ActivityIndicator", "ForgotPasswordForm", "OAuthProviderButton", "OAuthProviderList", "OtpForm", "SignInForm", "SignUpForm", "Accordion", "Surface", "Avatar", "AvatarGroup", "Badge", "MediaCard", "MetricCard", "Chip", "ChipGroup", "DataTable", "DatePicker", "Skeleton", "SkeletonCard", "SkeletonList", "SkeletonText", "IconButton", "Uploader", "FlatList", "SectionList", "BottomSheet", "ProductCard", "Box", "Stack", "Grid", "Gradient", "Container", "Divider", "Text", "Heading", "Icon", "Image", "Hero", "KeyboardAvoidingView", "Button", "ButtonGroup", "RadioGroup", "ThemeModeToggle", "TextInput", "TimePicker", "Form", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface", "ContentRail", "MissingElement"];
5
+ readonly allowedChildren: readonly ["ActivityIndicator", "ForgotPasswordForm", "OAuthProviderButton", "OAuthProviderList", "OtpForm", "SignInForm", "SignUpForm", "Accordion", "Surface", "Avatar", "AvatarGroup", "Badge", "MediaCard", "MetricCard", "Chip", "ChipGroup", "DataTable", "DatePicker", "Dialog", "Pagination", "Rating", "SearchInput", "Tabs", "Toolbar", "Skeleton", "SkeletonCard", "SkeletonList", "SkeletonText", "IconButton", "Uploader", "FlatList", "SectionList", "BottomSheet", "ProductCard", "Box", "Stack", "Grid", "Gradient", "Container", "Divider", "Text", "Heading", "Icon", "Image", "Hero", "KeyboardAvoidingView", "Button", "ButtonGroup", "RadioGroup", "ThemeModeToggle", "TextInput", "TimePicker", "Form", "Card", "Panel", "Notice", "EmptyState", "SectionHeader", "SettingsRow", "PostCard", "ChatListItem", "MessageBubble", "ProgressRing", "ReaderSurface", "ContentRail", "MissingElement"];
6
6
  readonly props: {
7
7
  readonly variant: {
8
8
  readonly type: "enum";
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { TabProps } from '../../../../types/tabs';
3
+ /*** Renders one labeled selectable tab backed by Surface accessibility semantics. */
4
+ export declare const Tab: (props: TabProps) => React.ReactElement | null;
5
+ //# sourceMappingURL=Tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tab.d.ts","sourceRoot":"","sources":["../../../../../src/features/tabs/adapters/inbound/Tab.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,qFAAqF;AACrF,eAAO,MAAM,GAAG,gDAA+B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Tab as SurfaceTab } from '@ankhorage/surface';
2
+ import React from 'react';
3
+ import { withZoraThemeScope } from '../../../../theme/withZoraThemeScope';
4
+ import { TabsInteractionPolicyContext } from '../../composition/TabsInteractionPolicyContext';
5
+ /*** Renders one labeled selectable tab backed by Surface accessibility semantics. */
6
+ export const Tab = withZoraThemeScope(TabInner);
7
+ /*** Resolves inherited interaction policy before delegating tab behavior to Surface. */
8
+ function TabInner({ themeId: _themeId, mode: _mode, interactionPolicy, label, ...props }) {
9
+ const inheritedInteractionPolicy = React.use(TabsInteractionPolicyContext);
10
+ return (<SurfaceTab {...props} interactionPolicy={interactionPolicy ?? inheritedInteractionPolicy}>
11
+ {label}
12
+ </SurfaceTab>);
13
+ }
14
+ //# sourceMappingURL=Tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../../../src/features/tabs/adapters/inbound/Tab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAE9F,qFAAqF;AACrF,MAAM,CAAC,MAAM,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAEhD,wFAAwF;AACxF,SAAS,QAAQ,CAAC,EAChB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,iBAAiB,EACjB,KAAK,EACL,GAAG,KAAK,EACC;IACT,MAAM,0BAA0B,GAAG,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAE3E,OAAO,CACL,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,iBAAiB,IAAI,0BAA0B,CAAC,CACxF;MAAA,CAAC,KAAK,CACR;IAAA,EAAE,UAAU,CAAC,CACd,CAAC;AACJ,CAAC","sourcesContent":["import { Tab as SurfaceTab } from '@ankhorage/surface';\nimport React from 'react';\n\nimport { withZoraThemeScope } from '../../../../theme/withZoraThemeScope';\nimport type { TabProps } from '../../../../types/tabs';\nimport { TabsInteractionPolicyContext } from '../../composition/TabsInteractionPolicyContext';\n\n/*** Renders one labeled selectable tab backed by Surface accessibility semantics. */\nexport const Tab = withZoraThemeScope(TabInner);\n\n/*** Resolves inherited interaction policy before delegating tab behavior to Surface. */\nfunction TabInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy,\n label,\n ...props\n}: TabProps) {\n const inheritedInteractionPolicy = React.use(TabsInteractionPolicyContext);\n\n return (\n <SurfaceTab {...props} interactionPolicy={interactionPolicy ?? inheritedInteractionPolicy}>\n {label}\n </SurfaceTab>\n );\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { TabListProps } from '../../../../types/tabs';
2
+ /*** Renders the accessible list of tabs for a Tabs composition. */
3
+ export declare const TabList: (props: TabListProps) => React.ReactElement | null;
4
+ //# sourceMappingURL=TabList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabList.d.ts","sourceRoot":"","sources":["../../../../../src/features/tabs/adapters/inbound/TabList.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,mEAAmE;AACnE,eAAO,MAAM,OAAO,oDAAmC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { TabList as SurfaceTabList } from '@ankhorage/surface';
2
+ import { withZoraThemeScope } from '../../../../theme/withZoraThemeScope';
3
+ /*** Renders the accessible list of tabs for a Tabs composition. */
4
+ export const TabList = withZoraThemeScope(TabListInner);
5
+ /*** Delegates tablist semantics and keyboard navigation to Surface. */
6
+ function TabListInner({ themeId: _themeId, mode: _mode, interactionPolicy: _interactionPolicy, children, testID, }) {
7
+ return <SurfaceTabList testID={testID}>{children}</SurfaceTabList>;
8
+ }
9
+ //# sourceMappingURL=TabList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabList.js","sourceRoot":"","sources":["../../../../../src/features/tabs/adapters/inbound/TabList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,mEAAmE;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAExD,uEAAuE;AACvE,SAAS,YAAY,CAAC,EACpB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,kBAAkB,EACrC,QAAQ,EACR,MAAM,GACO;IACb,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;AACrE,CAAC","sourcesContent":["import { TabList as SurfaceTabList } from '@ankhorage/surface';\n\nimport { withZoraThemeScope } from '../../../../theme/withZoraThemeScope';\nimport type { TabListProps } from '../../../../types/tabs';\n\n/*** Renders the accessible list of tabs for a Tabs composition. */\nexport const TabList = withZoraThemeScope(TabListInner);\n\n/*** Delegates tablist semantics and keyboard navigation to Surface. */\nfunction TabListInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy: _interactionPolicy,\n children,\n testID,\n}: TabListProps) {\n return <SurfaceTabList testID={testID}>{children}</SurfaceTabList>;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { TabPanelProps } from '../../../../types/tabs';
2
+ /*** Renders content associated with one selected Tab. */
3
+ export declare const TabPanel: (props: TabPanelProps) => React.ReactElement | null;
4
+ //# sourceMappingURL=TabPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabPanel.d.ts","sourceRoot":"","sources":["../../../../../src/features/tabs/adapters/inbound/TabPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,yDAAyD;AACzD,eAAO,MAAM,QAAQ,qDAAoC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { TabPanel as SurfaceTabPanel } from '@ankhorage/surface';
2
+ import { withZoraThemeScope } from '../../../../theme/withZoraThemeScope';
3
+ /*** Renders content associated with one selected Tab. */
4
+ export const TabPanel = withZoraThemeScope(TabPanelInner);
5
+ /*** Delegates tabpanel visibility and accessibility linkage to Surface. */
6
+ function TabPanelInner({ themeId: _themeId, mode: _mode, interactionPolicy: _interactionPolicy, children, value, testID, }) {
7
+ return (<SurfaceTabPanel testID={testID} value={value}>
8
+ {children}
9
+ </SurfaceTabPanel>);
10
+ }
11
+ //# sourceMappingURL=TabPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabPanel.js","sourceRoot":"","sources":["../../../../../src/features/tabs/adapters/inbound/TabPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,yDAAyD;AACzD,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAE1D,2EAA2E;AAC3E,SAAS,aAAa,CAAC,EACrB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,kBAAkB,EACrC,QAAQ,EACR,KAAK,EACL,MAAM,GACQ;IACd,OAAO,CACL,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAC5C;MAAA,CAAC,QAAQ,CACX;IAAA,EAAE,eAAe,CAAC,CACnB,CAAC;AACJ,CAAC","sourcesContent":["import { TabPanel as SurfaceTabPanel } from '@ankhorage/surface';\n\nimport { withZoraThemeScope } from '../../../../theme/withZoraThemeScope';\nimport type { TabPanelProps } from '../../../../types/tabs';\n\n/*** Renders content associated with one selected Tab. */\nexport const TabPanel = withZoraThemeScope(TabPanelInner);\n\n/*** Delegates tabpanel visibility and accessibility linkage to Surface. */\nfunction TabPanelInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy: _interactionPolicy,\n children,\n value,\n testID,\n}: TabPanelProps) {\n return (\n <SurfaceTabPanel testID={testID} value={value}>\n {children}\n </SurfaceTabPanel>\n );\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { TabsProps } from '../../../../types/tabs';
2
+ /*** Provides accessible tab state and interaction policy through the Surface Tabs primitive. */
3
+ export declare const Tabs: (props: TabsProps) => React.ReactElement | null;
4
+ //# sourceMappingURL=Tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../../src/features/tabs/adapters/inbound/Tabs.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGxD,gGAAgG;AAChG,eAAO,MAAM,IAAI,iDAAgC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Tabs as SurfaceTabs } from '@ankhorage/surface';
2
+ import { withZoraThemeScope } from '../../../../theme/withZoraThemeScope';
3
+ import { TabsInteractionPolicyContext } from '../../composition/TabsInteractionPolicyContext';
4
+ /*** Provides accessible tab state and interaction policy through the Surface Tabs primitive. */
5
+ export const Tabs = withZoraThemeScope(TabsInner);
6
+ /*** Connects ZORA tab composition to the Surface tab state owner. */
7
+ function TabsInner({ themeId: _themeId, mode: _mode, interactionPolicy = 'enabled', children, ...props }) {
8
+ return (<TabsInteractionPolicyContext value={interactionPolicy}>
9
+ <SurfaceTabs {...props}>{children}</SurfaceTabs>
10
+ </TabsInteractionPolicyContext>);
11
+ }
12
+ //# sourceMappingURL=Tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../../../src/features/tabs/adapters/inbound/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAE9F,gGAAgG;AAChG,MAAM,CAAC,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAElD,qEAAqE;AACrE,SAAS,SAAS,CAAC,EACjB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,iBAAiB,GAAG,SAAS,EAC7B,QAAQ,EACR,GAAG,KAAK,EACE;IACV,OAAO,CACL,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CACrD;MAAA,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,WAAW,CACjD;IAAA,EAAE,4BAA4B,CAAC,CAChC,CAAC;AACJ,CAAC","sourcesContent":["import { Tabs as SurfaceTabs } from '@ankhorage/surface';\n\nimport { withZoraThemeScope } from '../../../../theme/withZoraThemeScope';\nimport type { TabsProps } from '../../../../types/tabs';\nimport { TabsInteractionPolicyContext } from '../../composition/TabsInteractionPolicyContext';\n\n/*** Provides accessible tab state and interaction policy through the Surface Tabs primitive. */\nexport const Tabs = withZoraThemeScope(TabsInner);\n\n/*** Connects ZORA tab composition to the Surface tab state owner. */\nfunction TabsInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy = 'enabled',\n children,\n ...props\n}: TabsProps) {\n return (\n <TabsInteractionPolicyContext value={interactionPolicy}>\n <SurfaceTabs {...props}>{children}</SurfaceTabs>\n </TabsInteractionPolicyContext>\n );\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { InteractionPolicy } from '@ankhorage/surface';
2
+ export declare const TabsInteractionPolicyContext: import("react").Context<InteractionPolicy>;
3
+ //# sourceMappingURL=TabsInteractionPolicyContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsInteractionPolicyContext.d.ts","sourceRoot":"","sources":["../../../../src/features/tabs/composition/TabsInteractionPolicyContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,eAAO,MAAM,4BAA4B,4CAA8C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { createContext } from 'react';
2
+ export const TabsInteractionPolicyContext = createContext('enabled');
3
+ //# sourceMappingURL=TabsInteractionPolicyContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsInteractionPolicyContext.js","sourceRoot":"","sources":["../../../../src/features/tabs/composition/TabsInteractionPolicyContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,4BAA4B,GAAG,aAAa,CAAoB,SAAS,CAAC,CAAC","sourcesContent":["import type { InteractionPolicy } from '@ankhorage/surface';\nimport { createContext } from 'react';\n\nexport const TabsInteractionPolicyContext = createContext<InteractionPolicy>('enabled');\n"]}
@@ -0,0 +1,6 @@
1
+ export type { TabListProps, TabPanelProps, TabProps, TabsProps } from '../../types/tabs';
2
+ export { Tab } from './adapters/inbound/Tab';
3
+ export { TabList } from './adapters/inbound/TabList';
4
+ export { TabPanel } from './adapters/inbound/TabPanel';
5
+ export { Tabs } from './adapters/inbound/Tabs';
6
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/features/tabs/public.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { Tab } from './adapters/inbound/Tab';
2
+ export { TabList } from './adapters/inbound/TabList';
3
+ export { TabPanel } from './adapters/inbound/TabPanel';
4
+ export { Tabs } from './adapters/inbound/Tabs';
5
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/features/tabs/public.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["export type { TabListProps, TabPanelProps, TabProps, TabsProps } from '../../types/tabs';\nexport { Tab } from './adapters/inbound/Tab';\nexport { TabList } from './adapters/inbound/TabList';\nexport { TabPanel } from './adapters/inbound/TabPanel';\nexport { Tabs } from './adapters/inbound/Tabs';\n"]}
@@ -0,0 +1,9 @@
1
+ export declare const tabListMeta: {
2
+ readonly name: "TabList";
3
+ readonly category: "component";
4
+ readonly directManifestNode: true;
5
+ readonly allowedChildren: readonly ["Tab"];
6
+ readonly description: "Accessible list of selectable tabs.";
7
+ readonly props: {};
8
+ };
9
+ //# sourceMappingURL=tabListMeta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabListMeta.d.ts","sourceRoot":"","sources":["../../../src/features/tabs/tabListMeta.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;CAOc,CAAC"}
@@ -0,0 +1,9 @@
1
+ export const tabListMeta = {
2
+ name: 'TabList',
3
+ category: 'component',
4
+ directManifestNode: true,
5
+ allowedChildren: ['Tab'],
6
+ description: 'Accessible list of selectable tabs.',
7
+ props: {},
8
+ };
9
+ //# sourceMappingURL=tabListMeta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabListMeta.js","sourceRoot":"","sources":["../../../src/features/tabs/tabListMeta.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,WAAW;IACrB,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,CAAC,KAAK,CAAC;IACxB,WAAW,EAAE,qCAAqC;IAClD,KAAK,EAAE,EAAE;CAC2B,CAAC","sourcesContent":["import type { ZoraComponentMeta } from '../../metadata/types';\n\nexport const tabListMeta = {\n name: 'TabList',\n category: 'component',\n directManifestNode: true,\n allowedChildren: ['Tab'],\n description: 'Accessible list of selectable tabs.',\n props: {},\n} as const satisfies ZoraComponentMeta;\n"]}
@@ -0,0 +1,32 @@
1
+ export declare const tabMeta: {
2
+ readonly name: "Tab";
3
+ readonly category: "component";
4
+ readonly directManifestNode: true;
5
+ readonly allowedChildren: readonly [];
6
+ readonly description: "One labeled selectable tab within a TabList.";
7
+ readonly blueprint: {
8
+ readonly label: "Tab";
9
+ readonly defaultProps: {
10
+ readonly label: "Tab";
11
+ readonly value: "tab";
12
+ };
13
+ };
14
+ readonly props: {
15
+ readonly value: {
16
+ readonly type: "string";
17
+ readonly category: "State";
18
+ readonly label: "Value";
19
+ };
20
+ readonly label: {
21
+ readonly type: "string";
22
+ readonly category: "Content";
23
+ readonly label: "Label";
24
+ };
25
+ readonly disabled: {
26
+ readonly type: "boolean";
27
+ readonly category: "State";
28
+ readonly label: "Disabled";
29
+ };
30
+ };
31
+ };
32
+ //# sourceMappingURL=tabMeta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabMeta.d.ts","sourceRoot":"","sources":["../../../src/features/tabs/tabMeta.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYkB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export const tabMeta = {
2
+ name: 'Tab',
3
+ category: 'component',
4
+ directManifestNode: true,
5
+ allowedChildren: [],
6
+ description: 'One labeled selectable tab within a TabList.',
7
+ blueprint: { label: 'Tab', defaultProps: { label: 'Tab', value: 'tab' } },
8
+ props: {
9
+ value: { type: 'string', category: 'State', label: 'Value' },
10
+ label: { type: 'string', category: 'Content', label: 'Label' },
11
+ disabled: { type: 'boolean', category: 'State', label: 'Disabled' },
12
+ },
13
+ };
14
+ //# sourceMappingURL=tabMeta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabMeta.js","sourceRoot":"","sources":["../../../src/features/tabs/tabMeta.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,WAAW;IACrB,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,EAAE;IACnB,WAAW,EAAE,8CAA8C;IAC3D,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IACzE,KAAK,EAAE;QACL,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;QAC5D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;QAC9D,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;KACpE;CACmC,CAAC","sourcesContent":["import type { ZoraComponentMeta } from '../../metadata/types';\n\nexport const tabMeta = {\n name: 'Tab',\n category: 'component',\n directManifestNode: true,\n allowedChildren: [],\n description: 'One labeled selectable tab within a TabList.',\n blueprint: { label: 'Tab', defaultProps: { label: 'Tab', value: 'tab' } },\n props: {\n value: { type: 'string', category: 'State', label: 'Value' },\n label: { type: 'string', category: 'Content', label: 'Label' },\n disabled: { type: 'boolean', category: 'State', label: 'Disabled' },\n },\n} as const satisfies ZoraComponentMeta;\n"]}