@krizaka/ui 3.3.0 → 3.5.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 (477) hide show
  1. package/dist/activity-feed.d.ts +199 -0
  2. package/dist/activity-feed.js +155 -0
  3. package/dist/activity-feed.js.map +1 -0
  4. package/dist/chat.d.ts +187 -0
  5. package/dist/chat.js +132 -0
  6. package/dist/chat.js.map +1 -0
  7. package/dist/chunk-7Z4KHPFC.js +42 -0
  8. package/dist/chunk-7Z4KHPFC.js.map +1 -0
  9. package/dist/chunk-ECSCA3CN.js +128 -0
  10. package/dist/chunk-ECSCA3CN.js.map +1 -0
  11. package/dist/chunk-F2GKFIYK.js +47 -0
  12. package/dist/chunk-F2GKFIYK.js.map +1 -0
  13. package/dist/data-table.js +84 -231
  14. package/dist/data-table.js.map +1 -1
  15. package/dist/description-list.d.ts +105 -0
  16. package/dist/description-list.js +49 -0
  17. package/dist/description-list.js.map +1 -0
  18. package/dist/index.js +13 -66
  19. package/dist/index.js.map +1 -1
  20. package/dist/kanban.d.ts +132 -0
  21. package/dist/kanban.js +187 -0
  22. package/dist/kanban.js.map +1 -0
  23. package/dist/list.d.ts +153 -0
  24. package/dist/list.js +130 -0
  25. package/dist/list.js.map +1 -0
  26. package/dist/map.d.ts +463 -0
  27. package/dist/map.js +952 -0
  28. package/dist/map.js.map +1 -0
  29. package/dist/match-dialog.d.ts +30 -0
  30. package/dist/match-dialog.js +146 -0
  31. package/dist/match-dialog.js.map +1 -0
  32. package/dist/motion.css +12 -1
  33. package/dist/native/map.d.ts +200 -0
  34. package/dist/native/map.js +673 -0
  35. package/dist/native/map.js.map +1 -0
  36. package/dist/native/media-picker.d.ts +58 -0
  37. package/dist/native/media-picker.js +63 -0
  38. package/dist/native/media-picker.js.map +1 -0
  39. package/dist/native.d.ts +952 -75
  40. package/dist/native.js +2572 -889
  41. package/dist/native.js.map +1 -1
  42. package/dist/photo-grid.d.ts +122 -0
  43. package/dist/photo-grid.js +94 -0
  44. package/dist/photo-grid.js.map +1 -0
  45. package/dist/stat.d.ts +31 -2
  46. package/dist/stat.js +21 -4
  47. package/dist/stat.js.map +1 -1
  48. package/dist/step-progress.d.ts +20 -0
  49. package/dist/step-progress.js +17 -0
  50. package/dist/step-progress.js.map +1 -0
  51. package/dist/swipe-deck.d.ts +183 -0
  52. package/dist/swipe-deck.js +144 -0
  53. package/dist/swipe-deck.js.map +1 -0
  54. package/dist/tag-selector.d.ts +26 -0
  55. package/dist/tag-selector.js +21 -0
  56. package/dist/tag-selector.js.map +1 -0
  57. package/dist/tree-view.d.ts +111 -0
  58. package/dist/tree-view.js +154 -0
  59. package/dist/tree-view.js.map +1 -0
  60. package/dist/verified-badge.d.ts +16 -0
  61. package/dist/verified-badge.js +23 -0
  62. package/dist/verified-badge.js.map +1 -0
  63. package/package.json +245 -10
  64. package/registry/achievement.json +1 -1
  65. package/registry/action-bar.json +1 -1
  66. package/registry/action-sheet.json +121 -0
  67. package/registry/activity-feed.json +468 -0
  68. package/registry/alert.json +1 -1
  69. package/registry/app-shell.json +1 -1
  70. package/registry/argument-card.json +1 -1
  71. package/registry/audio-player.json +1 -1
  72. package/registry/auth-layout.json +1 -1
  73. package/registry/avatar.json +58 -3
  74. package/registry/badge.json +1 -1
  75. package/registry/button.json +1 -1
  76. package/registry/card-grid.json +1 -1
  77. package/registry/card.json +1 -1
  78. package/registry/catalogue-page.json +1 -1
  79. package/registry/changelog-page.json +1 -1
  80. package/registry/chat.json +917 -0
  81. package/registry/checkbox.json +1 -1
  82. package/registry/chip-link.json +1 -1
  83. package/registry/chip.json +1 -1
  84. package/registry/choice-grid.json +1 -1
  85. package/registry/code-block.json +1 -1
  86. package/registry/combobox.json +1 -1
  87. package/registry/command.json +1 -1
  88. package/registry/component-page.json +1 -1
  89. package/registry/confirm-button.json +1 -1
  90. package/registry/contact-page.json +1 -1
  91. package/registry/continue-prompt.json +1 -1
  92. package/registry/countdown.json +1 -1
  93. package/registry/cta-panel.json +1 -1
  94. package/registry/dashboard-layout.json +1 -1
  95. package/registry/data-table.json +1 -1
  96. package/registry/date-picker.json +2 -2
  97. package/registry/decision-list.json +1 -1
  98. package/registry/description-list.json +232 -0
  99. package/registry/detail-layout.json +1 -1
  100. package/registry/dialog.json +1 -1
  101. package/registry/docs-article-page.json +1 -1
  102. package/registry/docs-hub-page.json +1 -1
  103. package/registry/docs-layout.json +1 -1
  104. package/registry/dropdown-menu.json +1 -1
  105. package/registry/empty-state.json +1 -1
  106. package/registry/error-page.json +1 -1
  107. package/registry/examples/action-sheet/native/video-actions.d.ts +4 -0
  108. package/registry/examples/action-sheet/native/video-actions.dark.png +0 -0
  109. package/registry/examples/action-sheet/native/video-actions.js +30 -0
  110. package/registry/examples/action-sheet/native/video-actions.light.png +0 -0
  111. package/registry/examples/action-sheet/native/video-actions.tsx +24 -0
  112. package/registry/examples/activity-feed/job-activity.d.ts +4 -0
  113. package/registry/examples/activity-feed/job-activity.js +21 -0
  114. package/registry/examples/activity-feed/job-activity.tsx +17 -0
  115. package/registry/examples/activity-feed/live.d.ts +4 -0
  116. package/registry/examples/activity-feed/live.js +23 -0
  117. package/registry/examples/activity-feed/live.tsx +24 -0
  118. package/registry/examples/activity-feed/native/notifications.d.ts +4 -0
  119. package/registry/examples/activity-feed/native/notifications.dark.png +0 -0
  120. package/registry/examples/activity-feed/native/notifications.js +18 -0
  121. package/registry/examples/activity-feed/native/notifications.light.png +0 -0
  122. package/registry/examples/activity-feed/native/notifications.tsx +18 -0
  123. package/registry/examples/activity-feed/timeline.d.ts +4 -0
  124. package/registry/examples/activity-feed/timeline.js +25 -0
  125. package/registry/examples/activity-feed/timeline.tsx +19 -0
  126. package/registry/examples/avatar/native/presence.d.ts +4 -0
  127. package/registry/examples/avatar/native/presence.dark.png +0 -0
  128. package/registry/examples/avatar/native/presence.js +18 -0
  129. package/registry/examples/avatar/native/presence.light.png +0 -0
  130. package/registry/examples/avatar/native/presence.tsx +15 -0
  131. package/registry/examples/chat/conversation.d.ts +4 -0
  132. package/registry/examples/chat/conversation.js +22 -0
  133. package/registry/examples/chat/conversation.tsx +21 -0
  134. package/registry/examples/chat/inbox.d.ts +4 -0
  135. package/registry/examples/chat/inbox.js +15 -0
  136. package/registry/examples/chat/inbox.tsx +12 -0
  137. package/registry/examples/chat/native/conversation.d.ts +4 -0
  138. package/registry/examples/chat/native/conversation.dark.png +0 -0
  139. package/registry/examples/chat/native/conversation.js +23 -0
  140. package/registry/examples/chat/native/conversation.light.png +0 -0
  141. package/registry/examples/chat/native/conversation.tsx +20 -0
  142. package/registry/examples/chat/native/inbox.d.ts +4 -0
  143. package/registry/examples/chat/native/inbox.dark.png +0 -0
  144. package/registry/examples/chat/native/inbox.js +16 -0
  145. package/registry/examples/chat/native/inbox.light.png +0 -0
  146. package/registry/examples/chat/native/inbox.tsx +13 -0
  147. package/registry/examples/description-list/job-details.d.ts +4 -0
  148. package/registry/examples/description-list/job-details.js +23 -0
  149. package/registry/examples/description-list/job-details.tsx +17 -0
  150. package/registry/examples/description-list/key-value-grid.d.ts +4 -0
  151. package/registry/examples/description-list/key-value-grid.js +22 -0
  152. package/registry/examples/description-list/key-value-grid.tsx +16 -0
  153. package/registry/examples/description-list/native/job-details.d.ts +4 -0
  154. package/registry/examples/description-list/native/job-details.dark.png +0 -0
  155. package/registry/examples/description-list/native/job-details.js +33 -0
  156. package/registry/examples/description-list/native/job-details.light.png +0 -0
  157. package/registry/examples/description-list/native/job-details.tsx +24 -0
  158. package/registry/examples/description-list/receipt.d.ts +4 -0
  159. package/registry/examples/description-list/receipt.js +23 -0
  160. package/registry/examples/description-list/receipt.tsx +17 -0
  161. package/registry/examples/fab/native/extended.d.ts +4 -0
  162. package/registry/examples/fab/native/extended.dark.png +0 -0
  163. package/registry/examples/fab/native/extended.js +18 -0
  164. package/registry/examples/fab/native/extended.light.png +0 -0
  165. package/registry/examples/fab/native/extended.tsx +23 -0
  166. package/registry/examples/header/native/large-title.d.ts +4 -0
  167. package/registry/examples/header/native/large-title.dark.png +0 -0
  168. package/registry/examples/header/native/large-title.js +23 -0
  169. package/registry/examples/header/native/large-title.light.png +0 -0
  170. package/registry/examples/header/native/large-title.tsx +31 -0
  171. package/registry/examples/image-viewer/native/gallery.d.ts +4 -0
  172. package/registry/examples/image-viewer/native/gallery.dark.png +0 -0
  173. package/registry/examples/image-viewer/native/gallery.js +22 -0
  174. package/registry/examples/image-viewer/native/gallery.light.png +0 -0
  175. package/registry/examples/image-viewer/native/gallery.tsx +21 -0
  176. package/registry/examples/kanban/moderation.d.ts +4 -0
  177. package/registry/examples/kanban/moderation.js +35 -0
  178. package/registry/examples/kanban/moderation.tsx +37 -0
  179. package/registry/examples/list/jobs.d.ts +4 -0
  180. package/registry/examples/list/jobs.js +35 -0
  181. package/registry/examples/list/jobs.tsx +33 -0
  182. package/registry/examples/list/selectable.d.ts +4 -0
  183. package/registry/examples/list/selectable.js +33 -0
  184. package/registry/examples/list/selectable.tsx +30 -0
  185. package/registry/examples/list/virtualized.d.ts +4 -0
  186. package/registry/examples/list/virtualized.js +22 -0
  187. package/registry/examples/list/virtualized.tsx +17 -0
  188. package/registry/examples/loader/native/block.d.ts +4 -0
  189. package/registry/examples/loader/native/block.dark.png +0 -0
  190. package/registry/examples/loader/native/block.js +12 -0
  191. package/registry/examples/loader/native/block.light.png +0 -0
  192. package/registry/examples/loader/native/block.tsx +11 -0
  193. package/registry/examples/loader/native/job-wait.d.ts +4 -0
  194. package/registry/examples/loader/native/job-wait.dark.png +0 -0
  195. package/registry/examples/loader/native/job-wait.js +17 -0
  196. package/registry/examples/loader/native/job-wait.light.png +0 -0
  197. package/registry/examples/loader/native/job-wait.tsx +14 -0
  198. package/registry/examples/map/cluster.d.ts +4 -0
  199. package/registry/examples/map/cluster.js +16 -0
  200. package/registry/examples/map/cluster.tsx +18 -0
  201. package/registry/examples/map/location-picker.d.ts +4 -0
  202. package/registry/examples/map/location-picker.js +24 -0
  203. package/registry/examples/map/location-picker.tsx +22 -0
  204. package/registry/examples/map/native/location-picker.d.ts +4 -0
  205. package/registry/examples/map/native/location-picker.dark.png +0 -0
  206. package/registry/examples/map/native/location-picker.js +14 -0
  207. package/registry/examples/map/native/location-picker.light.png +0 -0
  208. package/registry/examples/map/native/location-picker.tsx +13 -0
  209. package/registry/examples/map/native/places.d.ts +4 -0
  210. package/registry/examples/map/native/places.dark.png +0 -0
  211. package/registry/examples/map/native/places.js +25 -0
  212. package/registry/examples/map/native/places.light.png +0 -0
  213. package/registry/examples/map/native/places.tsx +27 -0
  214. package/registry/examples/map/places.d.ts +4 -0
  215. package/registry/examples/map/places.js +28 -0
  216. package/registry/examples/map/places.tsx +28 -0
  217. package/registry/examples/map/static.d.ts +4 -0
  218. package/registry/examples/map/static.js +22 -0
  219. package/registry/examples/map/static.tsx +18 -0
  220. package/registry/examples/match-dialog/its-a-match.d.ts +4 -0
  221. package/registry/examples/match-dialog/its-a-match.js +29 -0
  222. package/registry/examples/match-dialog/its-a-match.tsx +25 -0
  223. package/registry/examples/match-dialog/native/its-a-match.d.ts +4 -0
  224. package/registry/examples/match-dialog/native/its-a-match.dark.png +0 -0
  225. package/registry/examples/match-dialog/native/its-a-match.js +28 -0
  226. package/registry/examples/match-dialog/native/its-a-match.light.png +0 -0
  227. package/registry/examples/match-dialog/native/its-a-match.tsx +22 -0
  228. package/registry/examples/media-picker/native/story.d.ts +4 -0
  229. package/registry/examples/media-picker/native/story.dark.png +0 -0
  230. package/registry/examples/media-picker/native/story.js +30 -0
  231. package/registry/examples/media-picker/native/story.light.png +0 -0
  232. package/registry/examples/media-picker/native/story.tsx +26 -0
  233. package/registry/examples/meter/native/credits.d.ts +4 -0
  234. package/registry/examples/meter/native/credits.dark.png +0 -0
  235. package/registry/examples/meter/native/credits.js +15 -0
  236. package/registry/examples/meter/native/credits.light.png +0 -0
  237. package/registry/examples/meter/native/credits.tsx +12 -0
  238. package/registry/examples/meter/native/split-ring.d.ts +4 -0
  239. package/registry/examples/meter/native/split-ring.dark.png +0 -0
  240. package/registry/examples/meter/native/split-ring.js +24 -0
  241. package/registry/examples/meter/native/split-ring.light.png +0 -0
  242. package/registry/examples/meter/native/split-ring.tsx +19 -0
  243. package/registry/examples/number-ticker/native/balance.d.ts +4 -0
  244. package/registry/examples/number-ticker/native/balance.dark.png +0 -0
  245. package/registry/examples/number-ticker/native/balance.js +18 -0
  246. package/registry/examples/number-ticker/native/balance.light.png +0 -0
  247. package/registry/examples/number-ticker/native/balance.tsx +17 -0
  248. package/registry/examples/onboarding/native/first-launch.d.ts +4 -0
  249. package/registry/examples/onboarding/native/first-launch.dark.png +0 -0
  250. package/registry/examples/onboarding/native/first-launch.js +23 -0
  251. package/registry/examples/onboarding/native/first-launch.light.png +0 -0
  252. package/registry/examples/onboarding/native/first-launch.tsx +19 -0
  253. package/registry/examples/otp-input/native/invalid.d.ts +4 -0
  254. package/registry/examples/otp-input/native/invalid.dark.png +0 -0
  255. package/registry/examples/otp-input/native/invalid.js +15 -0
  256. package/registry/examples/otp-input/native/invalid.light.png +0 -0
  257. package/registry/examples/otp-input/native/invalid.tsx +14 -0
  258. package/registry/examples/otp-input/native/verify.d.ts +4 -0
  259. package/registry/examples/otp-input/native/verify.dark.png +0 -0
  260. package/registry/examples/otp-input/native/verify.js +17 -0
  261. package/registry/examples/otp-input/native/verify.light.png +0 -0
  262. package/registry/examples/otp-input/native/verify.tsx +14 -0
  263. package/registry/examples/permission-prompt/native/blocked.d.ts +4 -0
  264. package/registry/examples/permission-prompt/native/blocked.dark.png +0 -0
  265. package/registry/examples/permission-prompt/native/blocked.js +25 -0
  266. package/registry/examples/permission-prompt/native/blocked.light.png +0 -0
  267. package/registry/examples/permission-prompt/native/blocked.tsx +21 -0
  268. package/registry/examples/permission-prompt/native/camera.d.ts +4 -0
  269. package/registry/examples/permission-prompt/native/camera.dark.png +0 -0
  270. package/registry/examples/permission-prompt/native/camera.js +25 -0
  271. package/registry/examples/permission-prompt/native/camera.light.png +0 -0
  272. package/registry/examples/permission-prompt/native/camera.tsx +21 -0
  273. package/registry/examples/photo-grid/native/profile-photos.d.ts +4 -0
  274. package/registry/examples/photo-grid/native/profile-photos.dark.png +0 -0
  275. package/registry/examples/photo-grid/native/profile-photos.js +27 -0
  276. package/registry/examples/photo-grid/native/profile-photos.light.png +0 -0
  277. package/registry/examples/photo-grid/native/profile-photos.tsx +24 -0
  278. package/registry/examples/photo-grid/profile-photos.d.ts +4 -0
  279. package/registry/examples/photo-grid/profile-photos.js +28 -0
  280. package/registry/examples/photo-grid/profile-photos.tsx +25 -0
  281. package/registry/examples/pull-to-refresh/native/feed.d.ts +4 -0
  282. package/registry/examples/pull-to-refresh/native/feed.dark.png +0 -0
  283. package/registry/examples/pull-to-refresh/native/feed.js +14 -0
  284. package/registry/examples/pull-to-refresh/native/feed.light.png +0 -0
  285. package/registry/examples/pull-to-refresh/native/feed.tsx +19 -0
  286. package/registry/examples/screen/native/app-shell.d.ts +4 -0
  287. package/registry/examples/screen/native/app-shell.dark.png +0 -0
  288. package/registry/examples/screen/native/app-shell.js +25 -0
  289. package/registry/examples/screen/native/app-shell.light.png +0 -0
  290. package/registry/examples/screen/native/app-shell.tsx +33 -0
  291. package/registry/examples/screen/native/auth.d.ts +4 -0
  292. package/registry/examples/screen/native/auth.dark.png +0 -0
  293. package/registry/examples/screen/native/auth.js +24 -0
  294. package/registry/examples/screen/native/auth.light.png +0 -0
  295. package/registry/examples/screen/native/auth.tsx +20 -0
  296. package/registry/examples/screen/native/chat.d.ts +4 -0
  297. package/registry/examples/screen/native/chat.dark.png +0 -0
  298. package/registry/examples/screen/native/chat.js +27 -0
  299. package/registry/examples/screen/native/chat.light.png +0 -0
  300. package/registry/examples/screen/native/chat.tsx +22 -0
  301. package/registry/examples/screen/native/feed.d.ts +4 -0
  302. package/registry/examples/screen/native/feed.dark.png +0 -0
  303. package/registry/examples/screen/native/feed.js +24 -0
  304. package/registry/examples/screen/native/feed.light.png +0 -0
  305. package/registry/examples/screen/native/feed.tsx +34 -0
  306. package/registry/examples/screen/native/profile.d.ts +4 -0
  307. package/registry/examples/screen/native/profile.dark.png +0 -0
  308. package/registry/examples/screen/native/profile.js +29 -0
  309. package/registry/examples/screen/native/profile.light.png +0 -0
  310. package/registry/examples/screen/native/profile.tsx +27 -0
  311. package/registry/examples/screen/native/settings.d.ts +4 -0
  312. package/registry/examples/screen/native/settings.dark.png +0 -0
  313. package/registry/examples/screen/native/settings.js +20 -0
  314. package/registry/examples/screen/native/settings.light.png +0 -0
  315. package/registry/examples/screen/native/settings.tsx +19 -0
  316. package/registry/examples/search-field/native/cancel.d.ts +4 -0
  317. package/registry/examples/search-field/native/cancel.dark.png +0 -0
  318. package/registry/examples/search-field/native/cancel.js +14 -0
  319. package/registry/examples/search-field/native/cancel.light.png +0 -0
  320. package/registry/examples/search-field/native/cancel.tsx +13 -0
  321. package/registry/examples/stat/grid.d.ts +4 -0
  322. package/registry/examples/stat/grid.js +17 -0
  323. package/registry/examples/stat/grid.tsx +14 -0
  324. package/registry/examples/step-progress/native/sign-up.d.ts +4 -0
  325. package/registry/examples/step-progress/native/sign-up.dark.png +0 -0
  326. package/registry/examples/step-progress/native/sign-up.js +12 -0
  327. package/registry/examples/step-progress/native/sign-up.light.png +0 -0
  328. package/registry/examples/step-progress/native/sign-up.tsx +11 -0
  329. package/registry/examples/step-progress/sign-up.d.ts +4 -0
  330. package/registry/examples/step-progress/sign-up.js +22 -0
  331. package/registry/examples/step-progress/sign-up.tsx +16 -0
  332. package/registry/examples/stepper/native/run.d.ts +4 -0
  333. package/registry/examples/stepper/native/run.dark.png +0 -0
  334. package/registry/examples/stepper/native/run.js +24 -0
  335. package/registry/examples/stepper/native/run.light.png +0 -0
  336. package/registry/examples/stepper/native/run.tsx +20 -0
  337. package/registry/examples/swipe-deck/discover.d.ts +4 -0
  338. package/registry/examples/swipe-deck/discover.js +41 -0
  339. package/registry/examples/swipe-deck/discover.tsx +37 -0
  340. package/registry/examples/swipe-deck/native/discover.d.ts +4 -0
  341. package/registry/examples/swipe-deck/native/discover.dark.png +0 -0
  342. package/registry/examples/swipe-deck/native/discover.js +39 -0
  343. package/registry/examples/swipe-deck/native/discover.light.png +0 -0
  344. package/registry/examples/swipe-deck/native/discover.tsx +35 -0
  345. package/registry/examples/swipeable-row/native/conversation.d.ts +4 -0
  346. package/registry/examples/swipeable-row/native/conversation.dark.png +0 -0
  347. package/registry/examples/swipeable-row/native/conversation.js +30 -0
  348. package/registry/examples/swipeable-row/native/conversation.light.png +0 -0
  349. package/registry/examples/swipeable-row/native/conversation.tsx +27 -0
  350. package/registry/examples/tab-bar/native/main-sections.d.ts +4 -0
  351. package/registry/examples/tab-bar/native/main-sections.dark.png +0 -0
  352. package/registry/examples/tab-bar/native/main-sections.js +29 -0
  353. package/registry/examples/tab-bar/native/main-sections.light.png +0 -0
  354. package/registry/examples/tab-bar/native/main-sections.tsx +30 -0
  355. package/registry/examples/tabs/native/sections.d.ts +4 -0
  356. package/registry/examples/tabs/native/sections.dark.png +0 -0
  357. package/registry/examples/tabs/native/sections.js +23 -0
  358. package/registry/examples/tabs/native/sections.light.png +0 -0
  359. package/registry/examples/tabs/native/sections.tsx +19 -0
  360. package/registry/examples/tabs/native/segmented.d.ts +4 -0
  361. package/registry/examples/tabs/native/segmented.dark.png +0 -0
  362. package/registry/examples/tabs/native/segmented.js +22 -0
  363. package/registry/examples/tabs/native/segmented.light.png +0 -0
  364. package/registry/examples/tabs/native/segmented.tsx +18 -0
  365. package/registry/examples/tag-selector/interests.d.ts +4 -0
  366. package/registry/examples/tag-selector/interests.js +14 -0
  367. package/registry/examples/tag-selector/interests.tsx +12 -0
  368. package/registry/examples/tag-selector/native/interests.d.ts +4 -0
  369. package/registry/examples/tag-selector/native/interests.dark.png +0 -0
  370. package/registry/examples/tag-selector/native/interests.js +15 -0
  371. package/registry/examples/tag-selector/native/interests.light.png +0 -0
  372. package/registry/examples/tag-selector/native/interests.tsx +15 -0
  373. package/registry/examples/toast/native/snackbar.d.ts +4 -0
  374. package/registry/examples/toast/native/snackbar.dark.png +0 -0
  375. package/registry/examples/toast/native/snackbar.js +23 -0
  376. package/registry/examples/toast/native/snackbar.light.png +0 -0
  377. package/registry/examples/toast/native/snackbar.tsx +21 -0
  378. package/registry/examples/tree-view/docs.d.ts +4 -0
  379. package/registry/examples/tree-view/docs.js +24 -0
  380. package/registry/examples/tree-view/docs.tsx +22 -0
  381. package/registry/examples/tree-view/lazy.d.ts +4 -0
  382. package/registry/examples/tree-view/lazy.js +21 -0
  383. package/registry/examples/tree-view/lazy.tsx +19 -0
  384. package/registry/examples/verified-badge/native/verified.d.ts +4 -0
  385. package/registry/examples/verified-badge/native/verified.dark.png +0 -0
  386. package/registry/examples/verified-badge/native/verified.js +18 -0
  387. package/registry/examples/verified-badge/native/verified.light.png +0 -0
  388. package/registry/examples/verified-badge/native/verified.tsx +15 -0
  389. package/registry/examples/verified-badge/verified.d.ts +4 -0
  390. package/registry/examples/verified-badge/verified.js +17 -0
  391. package/registry/examples/verified-badge/verified.tsx +13 -0
  392. package/registry/fab.json +122 -0
  393. package/registry/field.json +1 -1
  394. package/registry/file-upload.json +2 -2
  395. package/registry/filter-bar.json +1 -1
  396. package/registry/form.json +2 -2
  397. package/registry/gallery-page.json +1 -1
  398. package/registry/glow-card.json +1 -1
  399. package/registry/goal-gauge.json +1 -1
  400. package/registry/header.json +137 -0
  401. package/registry/how-it-works-page.json +1 -1
  402. package/registry/image-cropper.json +1 -1
  403. package/registry/image-viewer.json +107 -0
  404. package/registry/index.json +441 -25
  405. package/registry/iso.json +1 -1
  406. package/registry/kanban.json +253 -0
  407. package/registry/kbd.json +1 -1
  408. package/registry/landing-page.json +1 -1
  409. package/registry/landscape.json +1 -1
  410. package/registry/legal-page.json +1 -1
  411. package/registry/link-card.json +1 -1
  412. package/registry/list.json +367 -30
  413. package/registry/loader.json +157 -4
  414. package/registry/longform-page.json +1 -1
  415. package/registry/map.json +1368 -0
  416. package/registry/marketing-layout.json +1 -1
  417. package/registry/marquee.json +1 -1
  418. package/registry/mascot-quote.json +1 -1
  419. package/registry/mascot-state.json +1 -1
  420. package/registry/mascots.json +1 -1
  421. package/registry/match-dialog.json +300 -0
  422. package/registry/media-capture.json +1 -1
  423. package/registry/media-picker.json +129 -0
  424. package/registry/meter.json +136 -4
  425. package/registry/nav-bar.json +1 -1
  426. package/registry/number-ticker.json +96 -4
  427. package/registry/onboarding.json +95 -0
  428. package/registry/otp-input.json +150 -0
  429. package/registry/page-header.json +1 -1
  430. package/registry/page-hero.json +1 -1
  431. package/registry/page.json +1 -1
  432. package/registry/pagination.json +1 -1
  433. package/registry/permission-prompt.json +172 -0
  434. package/registry/photo-grid.json +302 -0
  435. package/registry/pointer-light.json +1 -1
  436. package/registry/popover.json +1 -1
  437. package/registry/pricing-page.json +1 -1
  438. package/registry/product-page.json +1 -1
  439. package/registry/profile-card.json +1 -1
  440. package/registry/progress.json +2 -2
  441. package/registry/promise-card.json +1 -1
  442. package/registry/pull-to-refresh.json +74 -0
  443. package/registry/radio-group.json +1 -1
  444. package/registry/screen.json +184 -0
  445. package/registry/scroll-stage.json +1 -1
  446. package/registry/search-field.json +30 -3
  447. package/registry/section-backdrop.json +1 -1
  448. package/registry/separator.json +1 -1
  449. package/registry/settings-layout.json +1 -1
  450. package/registry/skeleton.json +1 -1
  451. package/registry/slider.json +1 -1
  452. package/registry/slot.json +1 -1
  453. package/registry/spinner.json +1 -1
  454. package/registry/split-view.json +1 -1
  455. package/registry/stage-banner.json +1 -1
  456. package/registry/stat.json +68 -5
  457. package/registry/status-page.json +1 -1
  458. package/registry/step-progress.json +255 -0
  459. package/registry/stepper.json +75 -4
  460. package/registry/swipe-deck.json +512 -0
  461. package/registry/swipeable-row.json +124 -0
  462. package/registry/switch.json +1 -1
  463. package/registry/tab-bar.json +115 -0
  464. package/registry/tabs.json +94 -4
  465. package/registry/tag-input.json +1 -1
  466. package/registry/tag-selector.json +276 -0
  467. package/registry/terminal-replay.json +1 -1
  468. package/registry/theme.json +8 -1
  469. package/registry/toast.json +17 -3
  470. package/registry/toc.json +1 -1
  471. package/registry/tooltip.json +1 -1
  472. package/registry/tree-view.json +291 -0
  473. package/registry/verified-badge.json +202 -0
  474. package/registry/video-player.json +1 -1
  475. package/registry/video-trimmer.json +1 -1
  476. package/registry/virtual.json +1 -1
  477. package/skills/map/SKILL.md +35 -0
@@ -0,0 +1,29 @@
1
+ "use client";
2
+
3
+ // registry/examples/tab-bar/native/main-sections.tsx
4
+ import { TabBar } from "@krizaka/ui/native";
5
+ import { useState } from "react";
6
+ import { View } from "react-native";
7
+ import Svg, { Path } from "react-native-svg";
8
+ import { jsx } from "react/jsx-runtime";
9
+ var icon = (d) => (on, color) => /* @__PURE__ */ jsx(Svg, { width: 24, height: 24, viewBox: "0 0 24 24", fill: on ? color : "none", stroke: color, strokeWidth: 2, strokeLinejoin: "round", children: /* @__PURE__ */ jsx(Path, { d }) });
10
+ function NativeTabBarMainSections() {
11
+ const [tab, setTab] = useState("home");
12
+ return /* @__PURE__ */ jsx(View, { style: { width: 360 }, children: /* @__PURE__ */ jsx(
13
+ TabBar,
14
+ {
15
+ "aria-label": "Main sections",
16
+ value: tab,
17
+ onValueChange: setTab,
18
+ items: [
19
+ { value: "home", label: "Home", icon: icon("M3 11 12 4l9 7v9h-6v-6H9v6H3z") },
20
+ { value: "auctions", label: "Auctions", icon: icon("M14 4l6 6-3 3-6-6zM11 7l-8 8 3 3 8-8M4 21h9") },
21
+ { value: "messages", label: "Messages", badge: 3, badgeLabel: "3 unread", icon: icon("M4 5h16v11H8l-4 4z") },
22
+ { value: "me", label: "Me", icon: icon("M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM4 21a8 8 0 0 1 16 0") }
23
+ ]
24
+ }
25
+ ) });
26
+ }
27
+ export {
28
+ NativeTabBarMainSections as default
29
+ };
@@ -0,0 +1,30 @@
1
+ import { TabBar } from "@krizaka/ui/native";
2
+ import { useState } from "react";
3
+ import { View } from "react-native";
4
+ import Svg, { Path } from "react-native-svg";
5
+
6
+ const icon = (d: string) => (on: boolean, color: string) => (
7
+ <Svg width={24} height={24} viewBox="0 0 24 24" fill={on ? color : "none"} stroke={color} strokeWidth={2} strokeLinejoin="round">
8
+ <Path d={d} />
9
+ </Svg>
10
+ );
11
+
12
+ // Orochia's main sections: the current one in the accent, a badge on Messages, a tick on change.
13
+ export default function NativeTabBarMainSections() {
14
+ const [tab, setTab] = useState<"home" | "auctions" | "messages" | "me">("home");
15
+ return (
16
+ <View style={{ width: 360 }}>
17
+ <TabBar
18
+ aria-label="Main sections"
19
+ value={tab}
20
+ onValueChange={setTab}
21
+ items={[
22
+ { value: "home", label: "Home", icon: icon("M3 11 12 4l9 7v9h-6v-6H9v6H3z") },
23
+ { value: "auctions", label: "Auctions", icon: icon("M14 4l6 6-3 3-6-6zM11 7l-8 8 3 3 8-8M4 21h9") },
24
+ { value: "messages", label: "Messages", badge: 3, badgeLabel: "3 unread", icon: icon("M4 5h16v11H8l-4 4z") },
25
+ { value: "me", label: "Me", icon: icon("M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM4 21a8 8 0 0 1 16 0") },
26
+ ]}
27
+ />
28
+ </View>
29
+ );
30
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,23 @@
1
+ "use client";
2
+
3
+ // registry/examples/tabs/native/sections.tsx
4
+ import { Tabs, Txt } from "@krizaka/ui/native";
5
+ import { View } from "react-native";
6
+ import { jsx } from "react/jsx-runtime";
7
+ function NativeTabsSections() {
8
+ return /* @__PURE__ */ jsx(View, { style: { width: 340 }, children: /* @__PURE__ */ jsx(
9
+ Tabs,
10
+ {
11
+ "aria-label": "Elena's page",
12
+ items: [
13
+ { value: "videos", label: "Videos", count: 42, content: /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "42 videos, newest first." }) },
14
+ { value: "auctions", label: "Auctions", count: 3, content: /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "3 auctions running." }) },
15
+ { value: "challenges", label: "Challenges", content: /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "Dares from fans." }) },
16
+ { value: "about", label: "About", content: /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "Covers and live sessions." }) }
17
+ ]
18
+ }
19
+ ) });
20
+ }
21
+ export {
22
+ NativeTabsSections as default
23
+ };
@@ -0,0 +1,19 @@
1
+ import { Tabs, Txt } from "@krizaka/ui/native";
2
+ import { View } from "react-native";
3
+
4
+ // A creator's page: sections that scroll sideways when they do not fit, a count after the words.
5
+ export default function NativeTabsSections() {
6
+ return (
7
+ <View style={{ width: 340 }}>
8
+ <Tabs
9
+ aria-label="Elena's page"
10
+ items={[
11
+ { value: "videos", label: "Videos", count: 42, content: <Txt tone="secondary">42 videos, newest first.</Txt> },
12
+ { value: "auctions", label: "Auctions", count: 3, content: <Txt tone="secondary">3 auctions running.</Txt> },
13
+ { value: "challenges", label: "Challenges", content: <Txt tone="secondary">Dares from fans.</Txt> },
14
+ { value: "about", label: "About", content: <Txt tone="secondary">Covers and live sessions.</Txt> },
15
+ ]}
16
+ />
17
+ </View>
18
+ );
19
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,22 @@
1
+ "use client";
2
+
3
+ // registry/examples/tabs/native/segmented.tsx
4
+ import { Tabs, Txt } from "@krizaka/ui/native";
5
+ import { View } from "react-native";
6
+ import { jsx } from "react/jsx-runtime";
7
+ function NativeTabsSegmented() {
8
+ return /* @__PURE__ */ jsx(View, { style: { width: 320 }, children: /* @__PURE__ */ jsx(
9
+ Tabs,
10
+ {
11
+ variant: "segmented",
12
+ "aria-label": "Story insights",
13
+ items: [
14
+ { value: "viewers", label: "Viewers", content: /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "312 people watched." }) },
15
+ { value: "tips", label: "Tips", content: /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "$46 from 9 fans." }) }
16
+ ]
17
+ }
18
+ ) });
19
+ }
20
+ export {
21
+ NativeTabsSegmented as default
22
+ };
@@ -0,0 +1,18 @@
1
+ import { Tabs, Txt } from "@krizaka/ui/native";
2
+ import { View } from "react-native";
3
+
4
+ // Two views of the same content: `variant="segmented"`.
5
+ export default function NativeTabsSegmented() {
6
+ return (
7
+ <View style={{ width: 320 }}>
8
+ <Tabs
9
+ variant="segmented"
10
+ aria-label="Story insights"
11
+ items={[
12
+ { value: "viewers", label: "Viewers", content: <Txt tone="secondary">312 people watched.</Txt> },
13
+ { value: "tips", label: "Tips", content: <Txt tone="secondary">$46 from 9 fans.</Txt> },
14
+ ]}
15
+ />
16
+ </View>
17
+ );
18
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,14 @@
1
+ "use client";
2
+
3
+ // registry/examples/tag-selector/interests.tsx
4
+ import { TagSelector } from "@krizaka/ui/tag-selector";
5
+ import { useState } from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ var INTERESTS = ["Music", "Surf", "Cooking", "Hiking", "Cinema", "Climbing", "Travel", "Gaming", "Yoga", "Photography"].map((t) => ({ value: t.toLowerCase(), label: t }));
8
+ function TagSelectorInterests() {
9
+ const [chosen, setChosen] = useState(["music", "surf", "travel"]);
10
+ return /* @__PURE__ */ jsx(TagSelector, { className: "max-w-md", label: "Interests", options: INTERESTS, value: chosen, onValueChange: setChosen, max: 5, countLabel: (n, max) => `${n} of ${max} chosen` });
11
+ }
12
+ export {
13
+ TagSelectorInterests as default
14
+ };
@@ -0,0 +1,12 @@
1
+ "use client";
2
+
3
+ import { TagSelector } from "@krizaka/ui/tag-selector";
4
+ import { useState } from "react";
5
+
6
+ const INTERESTS = ["Music", "Surf", "Cooking", "Hiking", "Cinema", "Climbing", "Travel", "Gaming", "Yoga", "Photography"].map((t) => ({ value: t.toLowerCase(), label: t }));
7
+
8
+ // Up to five interests: the others rest once five are chosen.
9
+ export default function TagSelectorInterests() {
10
+ const [chosen, setChosen] = useState<string[]>(["music", "surf", "travel"]);
11
+ return <TagSelector className="max-w-md" label="Interests" options={INTERESTS} value={chosen} onValueChange={setChosen} max={5} countLabel={(n, max) => `${n} of ${max} chosen`} />;
12
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,15 @@
1
+ "use client";
2
+
3
+ // registry/examples/tag-selector/native/interests.tsx
4
+ import { TagSelector } from "@krizaka/ui/native";
5
+ import { useState } from "react";
6
+ import { View } from "react-native";
7
+ import { jsx } from "react/jsx-runtime";
8
+ var INTERESTS = ["Music", "Surf", "Cooking", "Hiking", "Cinema", "Climbing", "Travel", "Gaming", "Yoga", "Photography"].map((t) => ({ value: t.toLowerCase(), label: t }));
9
+ function NativeTagSelectorInterests() {
10
+ const [chosen, setChosen] = useState(["music", "surf", "travel"]);
11
+ return /* @__PURE__ */ jsx(View, { style: { width: 340 }, children: /* @__PURE__ */ jsx(TagSelector, { label: "Interests", options: INTERESTS, value: chosen, onValueChange: setChosen, max: 5, countLabel: (n, max) => `${n} of ${max} chosen` }) });
12
+ }
13
+ export {
14
+ NativeTagSelectorInterests as default
15
+ };
@@ -0,0 +1,15 @@
1
+ import { TagSelector } from "@krizaka/ui/native";
2
+ import { useState } from "react";
3
+ import { View } from "react-native";
4
+
5
+ const INTERESTS = ["Music", "Surf", "Cooking", "Hiking", "Cinema", "Climbing", "Travel", "Gaming", "Yoga", "Photography"].map((t) => ({ value: t.toLowerCase(), label: t }));
6
+
7
+ // Up to five interests: the others rest once five are chosen, the count says so.
8
+ export default function NativeTagSelectorInterests() {
9
+ const [chosen, setChosen] = useState<string[]>(["music", "surf", "travel"]);
10
+ return (
11
+ <View style={{ width: 340 }}>
12
+ <TagSelector label="Interests" options={INTERESTS} value={chosen} onValueChange={setChosen} max={5} countLabel={(n, max) => `${n} of ${max} chosen`} />
13
+ </View>
14
+ );
15
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,23 @@
1
+ "use client";
2
+
3
+ // registry/examples/toast/native/snackbar.tsx
4
+ import { Button, toast, Toaster } from "@krizaka/ui/native";
5
+ import { useEffect } from "react";
6
+ import { View } from "react-native";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ var archive = () => toast("Conversation archived", { id: "archived", action: { label: "Undo", onPress: () => void 0 } });
9
+ function NativeToastSnackbar({ defaultOpen = false }) {
10
+ useEffect(() => {
11
+ if (!defaultOpen) return;
12
+ toast.dismiss();
13
+ archive();
14
+ return () => toast.dismiss();
15
+ }, [defaultOpen]);
16
+ return /* @__PURE__ */ jsxs(View, { style: { width: 360, height: 200 }, children: [
17
+ /* @__PURE__ */ jsx(Button, { variant: "outline", label: "Archive", onPress: archive }),
18
+ /* @__PURE__ */ jsx(Toaster, { closeLabel: "Dismiss", position: "bottom", offset: 16, duration: defaultOpen ? Number.POSITIVE_INFINITY : 5e3 })
19
+ ] });
20
+ }
21
+ export {
22
+ NativeToastSnackbar as default
23
+ };
@@ -0,0 +1,21 @@
1
+ import { Button, toast, Toaster } from "@krizaka/ui/native";
2
+ import { useEffect } from "react";
3
+ import { View } from "react-native";
4
+
5
+ const archive = () => toast("Conversation archived", { id: "archived", action: { label: "Undo", onPress: () => undefined } });
6
+
7
+ // A snackbar: at the bottom, above the tab bar (`offset`), one action; swipe it away, a tick for its tone.
8
+ export default function NativeToastSnackbar({ defaultOpen = false }: { defaultOpen?: boolean }) {
9
+ useEffect(() => {
10
+ if (!defaultOpen) return;
11
+ toast.dismiss();
12
+ archive();
13
+ return () => toast.dismiss();
14
+ }, [defaultOpen]);
15
+ return (
16
+ <View style={{ width: 360, height: 200 }}>
17
+ <Button variant="outline" label="Archive" onPress={archive} />
18
+ <Toaster closeLabel="Dismiss" position="bottom" offset={16} duration={defaultOpen ? Number.POSITIVE_INFINITY : 5000} />
19
+ </View>
20
+ );
21
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,24 @@
1
+ "use client";
2
+
3
+ // registry/examples/tree-view/docs.tsx
4
+ import { TreeView } from "@krizaka/ui/tree-view";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var nodes = [
7
+ {
8
+ id: "orazaka",
9
+ label: "Orazaka",
10
+ children: [
11
+ { id: "getting-started", label: "Getting started" },
12
+ { id: "studios", label: "Studios", meta: "12", children: [{ id: "dubbing", label: "Dubbing" }, { id: "transcript", label: "Transcript" }, { id: "clips", label: "Clips" }] },
13
+ { id: "api", label: "API reference" }
14
+ ]
15
+ },
16
+ { id: "orochia", label: "Orochia", children: [{ id: "auctions", label: "Auctions" }, { id: "challenges", label: "Challenges" }] },
17
+ { id: "ui", label: "Krizaka UI", children: [{ id: "components", label: "Components" }] }
18
+ ];
19
+ function TreeViewDocs() {
20
+ return /* @__PURE__ */ jsx(TreeView, { "aria-label": "Documentation", nodes, defaultExpanded: ["orazaka", "studios"], defaultSelected: "dubbing", className: "max-w-xs" });
21
+ }
22
+ export {
23
+ TreeViewDocs as default
24
+ };
@@ -0,0 +1,22 @@
1
+ "use client";
2
+
3
+ import { TreeView } from "@krizaka/ui/tree-view";
4
+
5
+ const nodes = [
6
+ {
7
+ id: "orazaka",
8
+ label: "Orazaka",
9
+ children: [
10
+ { id: "getting-started", label: "Getting started" },
11
+ { id: "studios", label: "Studios", meta: "12", children: [{ id: "dubbing", label: "Dubbing" }, { id: "transcript", label: "Transcript" }, { id: "clips", label: "Clips" }] },
12
+ { id: "api", label: "API reference" },
13
+ ],
14
+ },
15
+ { id: "orochia", label: "Orochia", children: [{ id: "auctions", label: "Auctions" }, { id: "challenges", label: "Challenges" }] },
16
+ { id: "ui", label: "Krizaka UI", children: [{ id: "components", label: "Components" }] },
17
+ ];
18
+
19
+ // The documentation's sections: one tab stop, the arrows walk and open, a letter jumps.
20
+ export default function TreeViewDocs() {
21
+ return <TreeView aria-label="Documentation" nodes={nodes} defaultExpanded={["orazaka", "studios"]} defaultSelected="dubbing" className="max-w-xs" />;
22
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,21 @@
1
+ "use client";
2
+
3
+ // registry/examples/tree-view/lazy.tsx
4
+ import { TreeView } from "@krizaka/ui/tree-view";
5
+ import { useState } from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ function TreeViewLazy() {
8
+ const [nodes, setNodes] = useState([
9
+ { id: "voices", label: "Voices", hasChildren: true, meta: "3" },
10
+ { id: "glossaries", label: "Glossaries", hasChildren: true, meta: "2" },
11
+ { id: "readme", label: "README.md" }
12
+ ]);
13
+ const load = (node) => setTimeout(() => {
14
+ const files = Array.from({ length: Number(node.meta) }, (_, i) => ({ id: `${node.id}-${i}`, label: `${node.label.toLowerCase()}-${i + 1}.json` }));
15
+ setNodes((all) => all.map((n) => n.id === node.id ? { ...n, children: files } : n));
16
+ }, 600);
17
+ return /* @__PURE__ */ jsx(TreeView, { "aria-label": "Datasets", nodes, onLoadChildren: load, loadingLabel: "Loading the files", className: "max-w-xs" });
18
+ }
19
+ export {
20
+ TreeViewLazy as default
21
+ };
@@ -0,0 +1,19 @@
1
+ "use client";
2
+
3
+ import { type TreeNode, TreeView } from "@krizaka/ui/tree-view";
4
+ import { useState } from "react";
5
+
6
+ // A studio's datasets: a branch loads its files when it opens (here after 600 ms).
7
+ export default function TreeViewLazy() {
8
+ const [nodes, setNodes] = useState<TreeNode[]>([
9
+ { id: "voices", label: "Voices", hasChildren: true, meta: "3" },
10
+ { id: "glossaries", label: "Glossaries", hasChildren: true, meta: "2" },
11
+ { id: "readme", label: "README.md" },
12
+ ]);
13
+ const load = (node: TreeNode) =>
14
+ setTimeout(() => {
15
+ const files = Array.from({ length: Number(node.meta) }, (_, i) => ({ id: `${node.id}-${i}`, label: `${node.label.toLowerCase()}-${i + 1}.json` }));
16
+ setNodes((all) => all.map((n) => (n.id === node.id ? { ...n, children: files } : n)));
17
+ }, 600);
18
+ return <TreeView aria-label="Datasets" nodes={nodes} onLoadChildren={load} loadingLabel="Loading the files" className="max-w-xs" />;
19
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,18 @@
1
+ "use client";
2
+
3
+ // registry/examples/verified-badge/native/verified.tsx
4
+ import { Txt, VerifiedBadge } from "@krizaka/ui/native";
5
+ import { View } from "react-native";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ function NativeVerifiedBadgeVerified() {
8
+ return /* @__PURE__ */ jsxs(View, { style: { gap: 12 }, children: [
9
+ /* @__PURE__ */ jsxs(View, { style: { flexDirection: "row", alignItems: "center", gap: 6 }, children: [
10
+ /* @__PURE__ */ jsx(Txt, { variant: "title", children: "Elena Ruiz" }),
11
+ /* @__PURE__ */ jsx(VerifiedBadge, { label: "Verified profile", size: 18 })
12
+ ] }),
13
+ /* @__PURE__ */ jsx(VerifiedBadge, { label: "Verified with a selfie", showLabel: true })
14
+ ] });
15
+ }
16
+ export {
17
+ NativeVerifiedBadgeVerified as default
18
+ };
@@ -0,0 +1,15 @@
1
+ import { Txt, VerifiedBadge } from "@krizaka/ui/native";
2
+ import { View } from "react-native";
3
+
4
+ // A seal beside a name, or with its words.
5
+ export default function NativeVerifiedBadgeVerified() {
6
+ return (
7
+ <View style={{ gap: 12 }}>
8
+ <View style={{ flexDirection: "row", alignItems: "center", gap: 6 }}>
9
+ <Txt variant="title">Elena Ruiz</Txt>
10
+ <VerifiedBadge label="Verified profile" size={18} />
11
+ </View>
12
+ <VerifiedBadge label="Verified with a selfie" showLabel />
13
+ </View>
14
+ );
15
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,17 @@
1
+ "use client";
2
+
3
+ // registry/examples/verified-badge/verified.tsx
4
+ import { VerifiedBadge } from "@krizaka/ui/verified-badge";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ function VerifiedBadgeVerified() {
7
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", children: [
8
+ /* @__PURE__ */ jsxs("p", { className: "m-0 flex items-center gap-1.5 font-display text-lg font-bold text-fg", children: [
9
+ "Elena Ruiz ",
10
+ /* @__PURE__ */ jsx(VerifiedBadge, { label: "Verified profile", size: "lg" })
11
+ ] }),
12
+ /* @__PURE__ */ jsx(VerifiedBadge, { label: "Verified with a selfie", showLabel: true })
13
+ ] });
14
+ }
15
+ export {
16
+ VerifiedBadgeVerified as default
17
+ };
@@ -0,0 +1,13 @@
1
+ import { VerifiedBadge } from "@krizaka/ui/verified-badge";
2
+
3
+ // A seal beside a name, or with its words.
4
+ export default function VerifiedBadgeVerified() {
5
+ return (
6
+ <div className="flex flex-col gap-3">
7
+ <p className="m-0 flex items-center gap-1.5 font-display text-lg font-bold text-fg">
8
+ Elena Ruiz <VerifiedBadge label="Verified profile" size="lg" />
9
+ </p>
10
+ <VerifiedBadge label="Verified with a selfie" showLabel />
11
+ </div>
12
+ );
13
+ }
@@ -0,0 +1,122 @@
1
+ {
2
+ "name": "fab",
3
+ "type": "native",
4
+ "title": "Floating action button",
5
+ "summary": "The screen's one main action, floating above the content in the accent, clear of the safe area and the tab bar.",
6
+ "description": "The screen's one main action, floating above the content in the accent, clear of the safe area and the tab bar.",
7
+ "status": "beta",
8
+ "category": "actions",
9
+ "platforms": "native",
10
+ "whenToUse": [
11
+ "Create on a list screen: a new challenge, a new message.",
12
+ "Record on a camera-first screen."
13
+ ],
14
+ "whenNotToUse": [
15
+ {
16
+ "when": "For a secondary action or several actions.",
17
+ "use": "button"
18
+ },
19
+ {
20
+ "when": "On a form: its submit button belongs at the bottom of the form.",
21
+ "use": "button"
22
+ }
23
+ ],
24
+ "bestPractices": [
25
+ "One per screen, for the action the screen exists for.",
26
+ "`extended` shows the words; collapse it while the list scrolls down.",
27
+ "Pass the tab bar's height in `offset`."
28
+ ],
29
+ "accessibility": {
30
+ "keyboard": [],
31
+ "notes": [
32
+ "A button named by `label`, extended or not.",
33
+ "56 points high; a light tap when pressed."
34
+ ]
35
+ },
36
+ "related": [
37
+ "button",
38
+ "tab-bar"
39
+ ],
40
+ "web": null,
41
+ "native": {
42
+ "entry": "@krizaka/ui/native",
43
+ "import": "import { Fab } from \"@krizaka/ui/native\";",
44
+ "differences": [],
45
+ "props": [
46
+ {
47
+ "component": "Fab",
48
+ "description": "The screen's main action, floating above the content in the accent — one per screen (create, compose, record). It\nkeeps clear of the safe area and the tab bar (`offset`), shows its words when `extended`, a light tap confirms.",
49
+ "props": [
50
+ {
51
+ "name": "icon",
52
+ "type": "ReactNode",
53
+ "default": null,
54
+ "description": "The icon (decorative).",
55
+ "required": true
56
+ },
57
+ {
58
+ "name": "label",
59
+ "type": "string",
60
+ "default": null,
61
+ "description": "The action in words (“New challenge”) — passed translated: the accessible name, and shown when `extended`.",
62
+ "required": true
63
+ },
64
+ {
65
+ "name": "onPress",
66
+ "type": "() => void",
67
+ "default": null,
68
+ "description": "What it does.",
69
+ "required": true
70
+ },
71
+ {
72
+ "name": "extended",
73
+ "type": "boolean",
74
+ "default": null,
75
+ "description": "Shows the words beside the icon (collapse it while the list scrolls down).",
76
+ "required": false
77
+ },
78
+ {
79
+ "name": "offset",
80
+ "type": "number",
81
+ "default": "0",
82
+ "description": "Extra distance from the bottom, above a tab bar (its height). Default 0.",
83
+ "required": false
84
+ },
85
+ {
86
+ "name": "placement",
87
+ "type": "\"center\" | \"end\" | \"start\"",
88
+ "default": "end",
89
+ "description": "Which corner. Default `end` (bottom right in left-to-right).",
90
+ "required": false
91
+ },
92
+ {
93
+ "name": "style",
94
+ "type": "StyleProp<ViewStyle>",
95
+ "default": null,
96
+ "description": "Styles merged last.",
97
+ "required": false
98
+ }
99
+ ]
100
+ }
101
+ ],
102
+ "examples": [
103
+ {
104
+ "name": "extended",
105
+ "title": "Extended and round",
106
+ "description": "With its words, and the round button alone.",
107
+ "path": "examples/fab/native/extended.tsx",
108
+ "module": "@krizaka/ui/registry/examples/fab/native/extended",
109
+ "code": "import { Fab, useTheme } from \"@krizaka/ui/native\";\nimport { View } from \"react-native\";\nimport Svg, { Path } from \"react-native-svg\";\n\n// The screen's one main action, floating over the list, above the tab bar (`offset`).\nexport default function NativeFabExtended() {\n const { theme } = useTheme();\n const plus = (\n <Svg width={22} height={22} viewBox=\"0 0 24 24\" stroke={theme.onAccent} strokeWidth={2.4} strokeLinecap=\"round\">\n <Path d=\"M12 5v14M5 12h14\" />\n </Svg>\n );\n return (\n <View style={{ width: 360, height: 200, flexDirection: \"row\" }}>\n <View style={{ flex: 1 }}>\n <Fab label=\"New challenge\" icon={plus} extended onPress={() => undefined} />\n </View>\n <View style={{ flex: 1 }}>\n <Fab label=\"New challenge\" icon={plus} onPress={() => undefined} />\n </View>\n </View>\n );\n}\n",
110
+ "screenshots": {
111
+ "dark": "examples/fab/native/extended.dark.png",
112
+ "light": "examples/fab/native/extended.light.png"
113
+ }
114
+ }
115
+ ]
116
+ },
117
+ "files": [],
118
+ "dependencies": [],
119
+ "registryDependencies": [],
120
+ "demo": null,
121
+ "props": []
122
+ }