@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,17 @@
1
+ "use client";
2
+
3
+ // registry/examples/otp-input/native/verify.tsx
4
+ import { OtpInput, Txt } from "@krizaka/ui/native";
5
+ import { useState } from "react";
6
+ import { View } from "react-native";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ function NativeOtpInputVerify() {
9
+ const [code, setCode] = useState("4821");
10
+ return /* @__PURE__ */ jsxs(View, { style: { gap: 12 }, children: [
11
+ /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "Enter the code sent to +33 6 \u2022\u2022 \u2022\u2022 42 18" }),
12
+ /* @__PURE__ */ jsx(OtpInput, { label: "Verification code", value: code, onValueChange: setCode, onComplete: () => void 0 })
13
+ ] });
14
+ }
15
+ export {
16
+ NativeOtpInputVerify as default
17
+ };
@@ -0,0 +1,14 @@
1
+ import { OtpInput, Txt } from "@krizaka/ui/native";
2
+ import { useState } from "react";
3
+ import { View } from "react-native";
4
+
5
+ // The code sent by text message: the keyboard suggests it, one tap fills every box.
6
+ export default function NativeOtpInputVerify() {
7
+ const [code, setCode] = useState("4821");
8
+ return (
9
+ <View style={{ gap: 12 }}>
10
+ <Txt tone="secondary">Enter the code sent to +33 6 •• •• 42 18</Txt>
11
+ <OtpInput label="Verification code" value={code} onValueChange={setCode} onComplete={() => undefined} />
12
+ </View>
13
+ );
14
+ }
@@ -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,25 @@
1
+ "use client";
2
+
3
+ // registry/examples/permission-prompt/native/blocked.tsx
4
+ import { PermissionPrompt } from "@krizaka/ui/native";
5
+ import { View } from "react-native";
6
+ import { jsx } from "react/jsx-runtime";
7
+ function NativePermissionPromptBlocked() {
8
+ return /* @__PURE__ */ jsx(View, { style: { width: 340 }, children: /* @__PURE__ */ jsx(
9
+ PermissionPrompt,
10
+ {
11
+ status: "blocked",
12
+ mascot: "pigeon",
13
+ title: "Know when you are outbid",
14
+ description: "Turn on notifications to hear about your auctions.",
15
+ blockedDescription: "Notifications are off for Orochia. Turn them on in the settings to hear when you are outbid.",
16
+ allowLabel: "Turn on notifications",
17
+ onAllow: () => void 0,
18
+ settingsLabel: "Open the settings",
19
+ onOpenSettings: () => void 0
20
+ }
21
+ ) });
22
+ }
23
+ export {
24
+ NativePermissionPromptBlocked as default
25
+ };
@@ -0,0 +1,21 @@
1
+ import { PermissionPrompt } from "@krizaka/ui/native";
2
+ import { View } from "react-native";
3
+
4
+ // The system will not ask again: the way to the settings, the pigeon for notifications.
5
+ export default function NativePermissionPromptBlocked() {
6
+ return (
7
+ <View style={{ width: 340 }}>
8
+ <PermissionPrompt
9
+ status="blocked"
10
+ mascot="pigeon"
11
+ title="Know when you are outbid"
12
+ description="Turn on notifications to hear about your auctions."
13
+ blockedDescription="Notifications are off for Orochia. Turn them on in the settings to hear when you are outbid."
14
+ allowLabel="Turn on notifications"
15
+ onAllow={() => undefined}
16
+ settingsLabel="Open the settings"
17
+ onOpenSettings={() => undefined}
18
+ />
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,25 @@
1
+ "use client";
2
+
3
+ // registry/examples/permission-prompt/native/camera.tsx
4
+ import { PermissionPrompt } from "@krizaka/ui/native";
5
+ import { useState } from "react";
6
+ import { View } from "react-native";
7
+ import { jsx } from "react/jsx-runtime";
8
+ function NativePermissionPromptCamera() {
9
+ const [status, setStatus] = useState("undetermined");
10
+ return /* @__PURE__ */ jsx(View, { style: { width: 340 }, children: /* @__PURE__ */ jsx(
11
+ PermissionPrompt,
12
+ {
13
+ status,
14
+ title: "Film your answer",
15
+ description: "Orochia uses the camera only while you record a challenge. Nothing is filmed before you press record.",
16
+ allowLabel: "Allow the camera",
17
+ onAllow: () => setStatus("granted"),
18
+ dismissLabel: "Not now",
19
+ onDismiss: () => void 0
20
+ }
21
+ ) });
22
+ }
23
+ export {
24
+ NativePermissionPromptCamera as default
25
+ };
@@ -0,0 +1,21 @@
1
+ import { PermissionPrompt } from "@krizaka/ui/native";
2
+ import { useState } from "react";
3
+ import { View } from "react-native";
4
+
5
+ // Before the system asks: why the camera, the button that asks, a way out.
6
+ export default function NativePermissionPromptCamera() {
7
+ const [status, setStatus] = useState<"undetermined" | "granted">("undetermined");
8
+ return (
9
+ <View style={{ width: 340 }}>
10
+ <PermissionPrompt
11
+ status={status}
12
+ title="Film your answer"
13
+ description="Orochia uses the camera only while you record a challenge. Nothing is filmed before you press record."
14
+ allowLabel="Allow the camera"
15
+ onAllow={() => setStatus("granted")}
16
+ dismissLabel="Not now"
17
+ onDismiss={() => undefined}
18
+ />
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,27 @@
1
+ "use client";
2
+
3
+ // registry/examples/photo-grid/native/profile-photos.tsx
4
+ import { PhotoGrid } from "@krizaka/ui/native";
5
+ import { useState } from "react";
6
+ import { View } from "react-native";
7
+ import { jsx } from "react/jsx-runtime";
8
+ var png = (data) => `data:image/png;base64,${data}`;
9
+ function NativePhotoGridProfilePhotos() {
10
+ const [photos, setPhotos] = useState([
11
+ { id: "1", uri: png("iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAIAAACtAwlQAAABaklEQVR42mWMy24UQQxF7arqlwLhIbJhwZZf5I/4IISEBIsIRSKTMOmZnp7uqrJ9zYIeIeCsrqzjw+vHDwYCCM6wbfy5gABKatsysJqLuoHciZ2dGE4ApSrbnyidVn06lVyQUrweur5pmAJAqVQGSEGnRb79mD5/H6dzuRq6929fv7t5MTSd+6VUK3Zj/XQ7frkblyJ926jwkIab6yZw3Eq58rzaz6nMq1RVA+3nMmd73nMMfCkJiRBA7u5O7g6QCFfhyLyVRJg89U3bxKiGJsQ+te6pCge+lETYPT3rujalotqkNLSdexRhJk6lshjOWXeH+WE6Z1HAi+p+Pr+czuxtG0PKlZesd+P09f5xd5iKqrlX1cfpGCiqhDdXr9Ja8DSX24f9/eG4VDGAiAzIIrvpwJ6C96FUXrId15Ivxm8MKCpzKUvRUCpXJTOHO/2Nu6uhqocqLMr4V9iAkxoHMzZjgP7XnMjBZvQLMEROG5iV3IMAAAAASUVORK5CYII="), alt: "Elena at the beach" },
12
+ { id: "2", uri: png("iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAIAAACtAwlQAAABZklEQVR42m3MzW4TUQyGYZ8zZzJpwp8UiQ0SEvfMLXETICqoKrXQdDohyZwZ258/FpPCAryyrUdv6j99ZDAiSALLFhFkULhcLAAWFEEA7ggEhYkiImQwWNx84WY+Vh0OZzVvcn657bq25MQIFlOLYCDOY/1+23/59uN0mrZX3Yf3u3dvX6+7VvhcMvXH/vT5+u7rzcM02XrVOvyqbXZvNjmlYmoMqtpY5+EwjqOae4CHX7XWWTerktOl5OYwR5AkKSSXp6sxP5fcPJHrVWlLA0Rpctc2iYQ5/5RgEHLTlbY0qt6WZrsuQrp5SlJMzRG16r4/98M4qyM4m/eH+mqzyilWTVNUfZr0bn+8vn16eDqqeZDm2A9jEgawe7Eu8zQPx+nmfrh/PNbZERQRBCf1n0NtkhQym/lU59N5nu0ilkFQDaeqddLsamZwB/+Cy5CEhzuym8M9KP8iEQkSjgwAAP9LhCQB/AYQ5Y+kAv/RXgAAAABJRU5ErkJggg=="), alt: "Elena with her guitar" }
13
+ ]);
14
+ return /* @__PURE__ */ jsx(View, { style: { width: 340 }, children: /* @__PURE__ */ jsx(
15
+ PhotoGrid,
16
+ {
17
+ value: photos,
18
+ onValueChange: setPhotos,
19
+ onAdd: () => void 0,
20
+ required: 2,
21
+ labels: { add: "Add a photo", main: "Main", photo: (n) => `Photo ${n}`, makeMain: "Make it the main photo", moveEarlier: "Move earlier", moveLater: "Move later", remove: "Remove", cancel: "Cancel" }
22
+ }
23
+ ) });
24
+ }
25
+ export {
26
+ NativePhotoGridProfilePhotos as default
27
+ };
@@ -0,0 +1,24 @@
1
+ import { type GridPhoto, PhotoGrid } from "@krizaka/ui/native";
2
+ import { useState } from "react";
3
+ import { View } from "react-native";
4
+
5
+ const png = (data: string) => `data:image/png;base64,${data}`;
6
+
7
+ // A profile's photos: the first is the main one; a tap opens its menu (main, earlier, later, remove).
8
+ export default function NativePhotoGridProfilePhotos() {
9
+ const [photos, setPhotos] = useState<GridPhoto[]>([
10
+ { id: "1", uri: png("iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAIAAACtAwlQAAABaklEQVR42mWMy24UQQxF7arqlwLhIbJhwZZf5I/4IISEBIsIRSKTMOmZnp7uqrJ9zYIeIeCsrqzjw+vHDwYCCM6wbfy5gABKatsysJqLuoHciZ2dGE4ApSrbnyidVn06lVyQUrweur5pmAJAqVQGSEGnRb79mD5/H6dzuRq6929fv7t5MTSd+6VUK3Zj/XQ7frkblyJ926jwkIab6yZw3Eq58rzaz6nMq1RVA+3nMmd73nMMfCkJiRBA7u5O7g6QCFfhyLyVRJg89U3bxKiGJsQ+te6pCge+lETYPT3rujalotqkNLSdexRhJk6lshjOWXeH+WE6Z1HAi+p+Pr+czuxtG0PKlZesd+P09f5xd5iKqrlX1cfpGCiqhDdXr9Ja8DSX24f9/eG4VDGAiAzIIrvpwJ6C96FUXrId15Ivxm8MKCpzKUvRUCpXJTOHO/2Nu6uhqocqLMr4V9iAkxoHMzZjgP7XnMjBZvQLMEROG5iV3IMAAAAASUVORK5CYII="), alt: "Elena at the beach" },
11
+ { id: "2", uri: png("iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAIAAACtAwlQAAABZklEQVR42m3MzW4TUQyGYZ8zZzJpwp8UiQ0SEvfMLXETICqoKrXQdDohyZwZ258/FpPCAryyrUdv6j99ZDAiSALLFhFkULhcLAAWFEEA7ggEhYkiImQwWNx84WY+Vh0OZzVvcn657bq25MQIFlOLYCDOY/1+23/59uN0mrZX3Yf3u3dvX6+7VvhcMvXH/vT5+u7rzcM02XrVOvyqbXZvNjmlYmoMqtpY5+EwjqOae4CHX7XWWTerktOl5OYwR5AkKSSXp6sxP5fcPJHrVWlLA0Rpctc2iYQ5/5RgEHLTlbY0qt6WZrsuQrp5SlJMzRG16r4/98M4qyM4m/eH+mqzyilWTVNUfZr0bn+8vn16eDqqeZDm2A9jEgawe7Eu8zQPx+nmfrh/PNbZERQRBCf1n0NtkhQym/lU59N5nu0ilkFQDaeqddLsamZwB/+Cy5CEhzuym8M9KP8iEQkSjgwAAP9LhCQB/AYQ5Y+kAv/RXgAAAABJRU5ErkJggg=="), alt: "Elena with her guitar" },
12
+ ]);
13
+ return (
14
+ <View style={{ width: 340 }}>
15
+ <PhotoGrid
16
+ value={photos}
17
+ onValueChange={setPhotos}
18
+ onAdd={() => undefined}
19
+ required={2}
20
+ labels={{ add: "Add a photo", main: "Main", photo: (n) => `Photo ${n}`, makeMain: "Make it the main photo", moveEarlier: "Move earlier", moveLater: "Move later", remove: "Remove", cancel: "Cancel" }}
21
+ />
22
+ </View>
23
+ );
24
+ }
@@ -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,28 @@
1
+ "use client";
2
+
3
+ // registry/examples/photo-grid/profile-photos.tsx
4
+ import { PhotoGrid } from "@krizaka/ui/photo-grid";
5
+ import { useState } from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ var png = (data) => `data:image/png;base64,${data}`;
8
+ function PhotoGridProfilePhotos() {
9
+ const [photos, setPhotos] = useState([
10
+ { id: "1", src: png("iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAIAAACtAwlQAAABaklEQVR42mWMy24UQQxF7arqlwLhIbJhwZZf5I/4IISEBIsIRSKTMOmZnp7uqrJ9zYIeIeCsrqzjw+vHDwYCCM6wbfy5gABKatsysJqLuoHciZ2dGE4ApSrbnyidVn06lVyQUrweur5pmAJAqVQGSEGnRb79mD5/H6dzuRq6929fv7t5MTSd+6VUK3Zj/XQ7frkblyJ926jwkIab6yZw3Eq58rzaz6nMq1RVA+3nMmd73nMMfCkJiRBA7u5O7g6QCFfhyLyVRJg89U3bxKiGJsQ+te6pCge+lETYPT3rujalotqkNLSdexRhJk6lshjOWXeH+WE6Z1HAi+p+Pr+czuxtG0PKlZesd+P09f5xd5iKqrlX1cfpGCiqhDdXr9Ja8DSX24f9/eG4VDGAiAzIIrvpwJ6C96FUXrId15Ivxm8MKCpzKUvRUCpXJTOHO/2Nu6uhqocqLMr4V9iAkxoHMzZjgP7XnMjBZvQLMEROG5iV3IMAAAAASUVORK5CYII="), alt: "Elena at the beach" },
11
+ { id: "2", src: png("iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAIAAACtAwlQAAABZklEQVR42m3MzW4TUQyGYZ8zZzJpwp8UiQ0SEvfMLXETICqoKrXQdDohyZwZ258/FpPCAryyrUdv6j99ZDAiSALLFhFkULhcLAAWFEEA7ggEhYkiImQwWNx84WY+Vh0OZzVvcn657bq25MQIFlOLYCDOY/1+23/59uN0mrZX3Yf3u3dvX6+7VvhcMvXH/vT5+u7rzcM02XrVOvyqbXZvNjmlYmoMqtpY5+EwjqOae4CHX7XWWTerktOl5OYwR5AkKSSXp6sxP5fcPJHrVWlLA0Rpctc2iYQ5/5RgEHLTlbY0qt6WZrsuQrp5SlJMzRG16r4/98M4qyM4m/eH+mqzyilWTVNUfZr0bn+8vn16eDqqeZDm2A9jEgawe7Eu8zQPx+nmfrh/PNbZERQRBCf1n0NtkhQym/lU59N5nu0ilkFQDaeqddLsamZwB/+Cy5CEhzuym8M9KP8iEQkSjgwAAP9LhCQB/AYQ5Y+kAv/RXgAAAABJRU5ErkJggg=="), alt: "Elena with her guitar" },
12
+ { id: "3", src: png("iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAIAAACtAwlQAAABaUlEQVR42mWRzW5TQRSDZ+bOTdMoFMGCFWx4SR6OF0EgQVWECmqbNOnNvTPnHNssIn6kemVZn+yF84eP30mKFEWCZwMmnROKrAAIShSIAOECKaWUkhIlkTXMzxDdbT614z7M8jCsNi+G8UI5nyEjKKKfpuOP6931Z5uO4+X26t377Zu3w2otqYY5SZjNu/uHr5/2N1+it7paR0QZLy9evs651DAjCes2n9ph58uMcIH9+Njn07De5jL8bXJ4kJSUJEkU4BFmuQzVzUTCXUplXJdhJFCGWuqFlMIjJ1aYE0SEpLrelDpmtzKMw2ojJpinnGuYMcLavOzv2+MDrItAdHvatc3VKqUyjDV697YsD7fT7bf2eIewJCK8H+6VMoBx86paa/1pP/26WXY/oy+JSCklAt774U65kLm4mS/N5+k8lP5IBMJimaK1AnO6E5HOf/0vSQGElzBHhEilZ1ASRXgUAAD0vOYfhd832o14udpJswAAAABJRU5ErkJggg=="), alt: "Elena at a concert" }
13
+ ]);
14
+ return /* @__PURE__ */ jsx(
15
+ PhotoGrid,
16
+ {
17
+ className: "max-w-sm",
18
+ value: photos,
19
+ onValueChange: setPhotos,
20
+ onAdd: () => void 0,
21
+ required: 2,
22
+ labels: { add: "Add a photo", main: "Main", photo: (n) => `Photo ${n}`, moveEarlier: "Move earlier", moveLater: "Move later", remove: "Remove", moved: (n) => `Moved to place ${n}` }
23
+ }
24
+ );
25
+ }
26
+ export {
27
+ PhotoGridProfilePhotos as default
28
+ };
@@ -0,0 +1,25 @@
1
+ "use client";
2
+
3
+ import { type GridPhoto, PhotoGrid } from "@krizaka/ui/photo-grid";
4
+ import { useState } from "react";
5
+
6
+ const png = (data: string) => `data:image/png;base64,${data}`;
7
+
8
+ // A profile's photos: drag one onto another, or its buttons; the first is the main one.
9
+ export default function PhotoGridProfilePhotos() {
10
+ const [photos, setPhotos] = useState<GridPhoto[]>([
11
+ { id: "1", src: png("iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAIAAACtAwlQAAABaklEQVR42mWMy24UQQxF7arqlwLhIbJhwZZf5I/4IISEBIsIRSKTMOmZnp7uqrJ9zYIeIeCsrqzjw+vHDwYCCM6wbfy5gABKatsysJqLuoHciZ2dGE4ApSrbnyidVn06lVyQUrweur5pmAJAqVQGSEGnRb79mD5/H6dzuRq6929fv7t5MTSd+6VUK3Zj/XQ7frkblyJ926jwkIab6yZw3Eq58rzaz6nMq1RVA+3nMmd73nMMfCkJiRBA7u5O7g6QCFfhyLyVRJg89U3bxKiGJsQ+te6pCge+lETYPT3rujalotqkNLSdexRhJk6lshjOWXeH+WE6Z1HAi+p+Pr+czuxtG0PKlZesd+P09f5xd5iKqrlX1cfpGCiqhDdXr9Ja8DSX24f9/eG4VDGAiAzIIrvpwJ6C96FUXrId15Ivxm8MKCpzKUvRUCpXJTOHO/2Nu6uhqocqLMr4V9iAkxoHMzZjgP7XnMjBZvQLMEROG5iV3IMAAAAASUVORK5CYII="), alt: "Elena at the beach" },
12
+ { id: "2", src: png("iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAIAAACtAwlQAAABZklEQVR42m3MzW4TUQyGYZ8zZzJpwp8UiQ0SEvfMLXETICqoKrXQdDohyZwZ258/FpPCAryyrUdv6j99ZDAiSALLFhFkULhcLAAWFEEA7ggEhYkiImQwWNx84WY+Vh0OZzVvcn657bq25MQIFlOLYCDOY/1+23/59uN0mrZX3Yf3u3dvX6+7VvhcMvXH/vT5+u7rzcM02XrVOvyqbXZvNjmlYmoMqtpY5+EwjqOae4CHX7XWWTerktOl5OYwR5AkKSSXp6sxP5fcPJHrVWlLA0Rpctc2iYQ5/5RgEHLTlbY0qt6WZrsuQrp5SlJMzRG16r4/98M4qyM4m/eH+mqzyilWTVNUfZr0bn+8vn16eDqqeZDm2A9jEgawe7Eu8zQPx+nmfrh/PNbZERQRBCf1n0NtkhQym/lU59N5nu0ilkFQDaeqddLsamZwB/+Cy5CEhzuym8M9KP8iEQkSjgwAAP9LhCQB/AYQ5Y+kAv/RXgAAAABJRU5ErkJggg=="), alt: "Elena with her guitar" },
13
+ { id: "3", src: png("iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAIAAACtAwlQAAABaUlEQVR42mWRzW5TQRSDZ+bOTdMoFMGCFWx4SR6OF0EgQVWECmqbNOnNvTPnHNssIn6kemVZn+yF84eP30mKFEWCZwMmnROKrAAIShSIAOECKaWUkhIlkTXMzxDdbT614z7M8jCsNi+G8UI5nyEjKKKfpuOP6931Z5uO4+X26t377Zu3w2otqYY5SZjNu/uHr5/2N1+it7paR0QZLy9evs651DAjCes2n9ph58uMcIH9+Njn07De5jL8bXJ4kJSUJEkU4BFmuQzVzUTCXUplXJdhJFCGWuqFlMIjJ1aYE0SEpLrelDpmtzKMw2ojJpinnGuYMcLavOzv2+MDrItAdHvatc3VKqUyjDV697YsD7fT7bf2eIewJCK8H+6VMoBx86paa/1pP/26WXY/oy+JSCklAt774U65kLm4mS/N5+k8lP5IBMJimaK1AnO6E5HOf/0vSQGElzBHhEilZ1ASRXgUAAD0vOYfhd832o14udpJswAAAABJRU5ErkJggg=="), alt: "Elena at a concert" },
14
+ ]);
15
+ return (
16
+ <PhotoGrid
17
+ className="max-w-sm"
18
+ value={photos}
19
+ onValueChange={setPhotos}
20
+ onAdd={() => undefined}
21
+ required={2}
22
+ labels={{ add: "Add a photo", main: "Main", photo: (n) => `Photo ${n}`, moveEarlier: "Move earlier", moveLater: "Move later", remove: "Remove", moved: (n) => `Moved to place ${n}` }}
23
+ />
24
+ );
25
+ }
@@ -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/pull-to-refresh/native/feed.tsx
4
+ import { PullToRefresh, Txt } from "@krizaka/ui/native";
5
+ import { useState } from "react";
6
+ import { ScrollView, View } from "react-native";
7
+ import { jsx } from "react/jsx-runtime";
8
+ function NativePullToRefreshFeed() {
9
+ const [refreshing, setRefreshing] = useState(true);
10
+ return /* @__PURE__ */ jsx(View, { style: { width: 360, height: 240 }, children: /* @__PURE__ */ jsx(ScrollView, { refreshControl: /* @__PURE__ */ jsx(PullToRefresh, { refreshing, onRefresh: () => setRefreshing(false), label: "Pull to refresh" }), children: ["Sunset session \xB7 Elena \xB7 2.4K views", "Acoustic dare \xB7 Alex \xB7 918 views"].map((line) => /* @__PURE__ */ jsx(Txt, { style: { padding: 16 }, children: line }, line)) }) });
11
+ }
12
+ export {
13
+ NativePullToRefreshFeed as default
14
+ };
@@ -0,0 +1,19 @@
1
+ import { PullToRefresh, Txt } from "@krizaka/ui/native";
2
+ import { useState } from "react";
3
+ import { ScrollView, View } from "react-native";
4
+
5
+ // The platform's pull to refresh, in the accent: the `refreshControl` of any ScrollView.
6
+ export default function NativePullToRefreshFeed() {
7
+ const [refreshing, setRefreshing] = useState(true);
8
+ return (
9
+ <View style={{ width: 360, height: 240 }}>
10
+ <ScrollView refreshControl={<PullToRefresh refreshing={refreshing} onRefresh={() => setRefreshing(false)} label="Pull to refresh" />}>
11
+ {["Sunset session · Elena · 2.4K views", "Acoustic dare · Alex · 918 views"].map((line) => (
12
+ <Txt key={line} style={{ padding: 16 }}>
13
+ {line}
14
+ </Txt>
15
+ ))}
16
+ </ScrollView>
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,25 @@
1
+ "use client";
2
+
3
+ // registry/examples/screen/native/app-shell.tsx
4
+ import { Header, Screen, TabBar, Txt } 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, jsxs } 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
+ var TABS = [
11
+ { value: "discover", label: "Discover", icon: icon("M12 3l2.6 6.4L21 12l-6.4 2.6L12 21l-2.6-6.4L3 12l6.4-2.6z") },
12
+ { value: "likes", label: "Likes", badge: 4, badgeLabel: "4 new", icon: icon("M12 20s-7-4.4-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.6-7 10-7 10z") },
13
+ { value: "chats", label: "Chats", badge: 2, badgeLabel: "2 unread", icon: icon("M4 5h16v11H8l-4 4z") },
14
+ { 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") }
15
+ ];
16
+ function NativeScreenAppShell() {
17
+ const [tab, setTab] = useState("likes");
18
+ return /* @__PURE__ */ jsx(View, { style: { width: 360, height: 640 }, children: /* @__PURE__ */ jsx(Screen, { header: /* @__PURE__ */ jsx(Header, { title: "Likes", subtitle: "4 people liked you" }), footer: /* @__PURE__ */ jsx(TabBar, { "aria-label": "Main sections", items: TABS, value: tab, onValueChange: setTab }), padding: 0, children: ["Elena, 29", "Noah, 31", "Mina, 27", "Alex, 33"].map((name) => /* @__PURE__ */ jsxs(View, { style: { gap: 2, paddingHorizontal: 16, paddingVertical: 12 }, children: [
19
+ /* @__PURE__ */ jsx(Txt, { variant: "label", children: name }),
20
+ /* @__PURE__ */ jsx(Txt, { variant: "caption", tone: "secondary", children: "Liked you today" })
21
+ ] }, name)) }) });
22
+ }
23
+ export {
24
+ NativeScreenAppShell as default
25
+ };
@@ -0,0 +1,33 @@
1
+ import { Header, Screen, TabBar, Txt } 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
+ const TABS = [
12
+ { value: "discover", label: "Discover", icon: icon("M12 3l2.6 6.4L21 12l-6.4 2.6L12 21l-2.6-6.4L3 12l6.4-2.6z") },
13
+ { value: "likes", label: "Likes", badge: 4, badgeLabel: "4 new", icon: icon("M12 20s-7-4.4-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.6-7 10-7 10z") },
14
+ { value: "chats", label: "Chats", badge: 2, badgeLabel: "2 unread", icon: icon("M4 5h16v11H8l-4 4z") },
15
+ { 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") },
16
+ ];
17
+
18
+ // The app shell: a header with its large title, the section's content, the tab bar clear of the home indicator.
19
+ export default function NativeScreenAppShell() {
20
+ const [tab, setTab] = useState("likes");
21
+ return (
22
+ <View style={{ width: 360, height: 640 }}>
23
+ <Screen header={<Header title="Likes" subtitle="4 people liked you" />} footer={<TabBar aria-label="Main sections" items={TABS} value={tab} onValueChange={setTab} />} padding={0}>
24
+ {["Elena, 29", "Noah, 31", "Mina, 27", "Alex, 33"].map((name) => (
25
+ <View key={name} style={{ gap: 2, paddingHorizontal: 16, paddingVertical: 12 }}>
26
+ <Txt variant="label">{name}</Txt>
27
+ <Txt variant="caption" tone="secondary">Liked you today</Txt>
28
+ </View>
29
+ ))}
30
+ </Screen>
31
+ </View>
32
+ );
33
+ }
@@ -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/screen/native/auth.tsx
4
+ import { Button, KrizakaMark, Screen, TextField, Txt } from "@krizaka/ui/native";
5
+ import { View } from "react-native";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ function NativeScreenAuth() {
8
+ return /* @__PURE__ */ jsx(View, { style: { width: 360, height: 640 }, children: /* @__PURE__ */ jsxs(Screen, { footer: /* @__PURE__ */ jsxs(View, { style: { padding: 16, gap: 8 }, children: [
9
+ /* @__PURE__ */ jsx(Button, { label: "Sign in", variant: "gradient", size: "lg" }),
10
+ /* @__PURE__ */ jsx(Button, { label: "Create an account", variant: "ghost" })
11
+ ] }), children: [
12
+ /* @__PURE__ */ jsxs(View, { style: { alignItems: "center", gap: 8, marginVertical: 24 }, children: [
13
+ /* @__PURE__ */ jsx(KrizakaMark, { size: 64 }),
14
+ /* @__PURE__ */ jsx(Txt, { variant: "display", children: "Welcome back" }),
15
+ /* @__PURE__ */ jsx(Txt, { tone: "secondary", style: { textAlign: "center" }, children: "Meet people who like what you like." })
16
+ ] }),
17
+ /* @__PURE__ */ jsx(TextField, { label: "Email", autoComplete: "email", keyboardType: "email-address", placeholder: "you@example.com" }),
18
+ /* @__PURE__ */ jsx(TextField, { label: "Password", hint: "At least 12 characters", autoComplete: "current-password", secureTextEntry: true }),
19
+ /* @__PURE__ */ jsx(Txt, { variant: "caption", tone: "secondary", style: { textAlign: "center" }, children: "By continuing you accept the terms and the privacy policy." })
20
+ ] }) });
21
+ }
22
+ export {
23
+ NativeScreenAuth as default
24
+ };
@@ -0,0 +1,20 @@
1
+ import { Button, KrizakaMark, Screen, TextField, Txt } from "@krizaka/ui/native";
2
+ import { View } from "react-native";
3
+
4
+ // Sign in: the mark, the promise, two fields, the main action pinned above the keyboard, the legal words.
5
+ export default function NativeScreenAuth() {
6
+ return (
7
+ <View style={{ width: 360, height: 640 }}>
8
+ <Screen footer={<View style={{ padding: 16, gap: 8 }}><Button label="Sign in" variant="gradient" size="lg" /><Button label="Create an account" variant="ghost" /></View>}>
9
+ <View style={{ alignItems: "center", gap: 8, marginVertical: 24 }}>
10
+ <KrizakaMark size={64} />
11
+ <Txt variant="display">Welcome back</Txt>
12
+ <Txt tone="secondary" style={{ textAlign: "center" }}>Meet people who like what you like.</Txt>
13
+ </View>
14
+ <TextField label="Email" autoComplete="email" keyboardType="email-address" placeholder="you@example.com" />
15
+ <TextField label="Password" hint="At least 12 characters" autoComplete="current-password" secureTextEntry />
16
+ <Txt variant="caption" tone="secondary" style={{ textAlign: "center" }}>By continuing you accept the terms and the privacy policy.</Txt>
17
+ </Screen>
18
+ </View>
19
+ );
20
+ }
@@ -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,27 @@
1
+ "use client";
2
+
3
+ // registry/examples/screen/native/chat.tsx
4
+ import { Avatar, Header, MessageBubble, MessageComposer, Screen, TypingIndicator } from "@krizaka/ui/native";
5
+ import { useState } from "react";
6
+ import { View } from "react-native";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ function NativeScreenChat() {
9
+ const [draft, setDraft] = useState("");
10
+ return /* @__PURE__ */ jsx(View, { style: { width: 360, height: 640 }, children: /* @__PURE__ */ jsxs(
11
+ Screen,
12
+ {
13
+ header: /* @__PURE__ */ jsx(Header, { size: "inline", title: "Elena", backLabel: "Chats", onBack: () => void 0, actions: /* @__PURE__ */ jsx(Avatar, { alt: "Elena, online", size: "sm", presence: "online", presenceLabel: "online" }) }),
14
+ footer: /* @__PURE__ */ jsx(MessageComposer, { value: draft, onValueChange: setDraft, onSend: () => setDraft(""), placeholder: "Message", sendLabel: "Send" }),
15
+ contentStyle: { gap: 4, justifyContent: "flex-end", flexGrow: 1 },
16
+ children: [
17
+ /* @__PURE__ */ jsx(MessageBubble, { text: "Hey! Loved your sunset photo \u{1F305}", time: "19:02" }),
18
+ /* @__PURE__ */ jsx(MessageBubble, { mine: true, text: "Thanks! Cabo da Roca, last Sunday", time: "19:05", grouped: "first" }),
19
+ /* @__PURE__ */ jsx(MessageBubble, { mine: true, text: "We should go together", time: "19:05", grouped: "last", status: "delivered", showStatus: true }),
20
+ /* @__PURE__ */ jsx(TypingIndicator, { label: "Elena is typing" })
21
+ ]
22
+ }
23
+ ) });
24
+ }
25
+ export {
26
+ NativeScreenChat as default
27
+ };
@@ -0,0 +1,22 @@
1
+ import { Avatar, Header, MessageBubble, MessageComposer, Screen, TypingIndicator } from "@krizaka/ui/native";
2
+ import { useState } from "react";
3
+ import { View } from "react-native";
4
+
5
+ // A chat: the person in the header with their presence, the messages, the composer above the keyboard.
6
+ export default function NativeScreenChat() {
7
+ const [draft, setDraft] = useState("");
8
+ return (
9
+ <View style={{ width: 360, height: 640 }}>
10
+ <Screen
11
+ header={<Header size="inline" title="Elena" backLabel="Chats" onBack={() => undefined} actions={<Avatar alt="Elena, online" size="sm" presence="online" presenceLabel="online" />} />}
12
+ footer={<MessageComposer value={draft} onValueChange={setDraft} onSend={() => setDraft("")} placeholder="Message" sendLabel="Send" />}
13
+ contentStyle={{ gap: 4, justifyContent: "flex-end", flexGrow: 1 }}
14
+ >
15
+ <MessageBubble text="Hey! Loved your sunset photo 🌅" time="19:02" />
16
+ <MessageBubble mine text="Thanks! Cabo da Roca, last Sunday" time="19:05" grouped="first" />
17
+ <MessageBubble mine text="We should go together" time="19:05" grouped="last" status="delivered" showStatus />
18
+ <TypingIndicator label="Elena is typing" />
19
+ </Screen>
20
+ </View>
21
+ );
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,24 @@
1
+ "use client";
2
+
3
+ // registry/examples/screen/native/feed.tsx
4
+ import { Avatar, Card, Header, Screen, Txt } from "@krizaka/ui/native";
5
+ import { View } from "react-native";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ var POSTS = [
8
+ { id: "1", who: "Elena", what: "Sunset session at Cabo da Roca", when: "2 h" },
9
+ { id: "2", who: "Noah", what: "Best ramen in Porto? I have a list.", when: "5 h" },
10
+ { id: "3", who: "Mina", what: "Free tickets for the jazz night!", when: "Yesterday" }
11
+ ];
12
+ function NativeScreenFeed() {
13
+ return /* @__PURE__ */ jsx(View, { style: { width: 360, height: 640 }, children: /* @__PURE__ */ jsx(Screen, { header: /* @__PURE__ */ jsx(Header, { title: "Moments", subtitle: "From people you matched with" }), children: POSTS.map((p) => /* @__PURE__ */ jsx(Card.Root, { children: /* @__PURE__ */ jsxs(Card.Body, { children: [
14
+ /* @__PURE__ */ jsxs(View, { style: { flexDirection: "row", alignItems: "center", gap: 10 }, children: [
15
+ /* @__PURE__ */ jsx(Avatar, { alt: p.who, size: "sm" }),
16
+ /* @__PURE__ */ jsx(Txt, { variant: "label", style: { flex: 1 }, children: p.who }),
17
+ /* @__PURE__ */ jsx(Txt, { variant: "caption", tone: "secondary", children: p.when })
18
+ ] }),
19
+ /* @__PURE__ */ jsx(Txt, { children: p.what })
20
+ ] }) }, p.id)) }) });
21
+ }
22
+ export {
23
+ NativeScreenFeed as default
24
+ };
@@ -0,0 +1,34 @@
1
+ import { Avatar, Card, Header, Screen, Txt } from "@krizaka/ui/native";
2
+ import { View } from "react-native";
3
+
4
+ const POSTS = [
5
+ { id: "1", who: "Elena", what: "Sunset session at Cabo da Roca", when: "2 h" },
6
+ { id: "2", who: "Noah", what: "Best ramen in Porto? I have a list.", when: "5 h" },
7
+ { id: "3", who: "Mina", what: "Free tickets for the jazz night!", when: "Yesterday" },
8
+ ];
9
+
10
+ // A feed: a large title, cards under it (a long feed uses the list of `@krizaka/ui/native/list` in `scroll={false}`).
11
+ export default function NativeScreenFeed() {
12
+ return (
13
+ <View style={{ width: 360, height: 640 }}>
14
+ <Screen header={<Header title="Moments" subtitle="From people you matched with" />}>
15
+ {POSTS.map((p) => (
16
+ <Card.Root key={p.id}>
17
+ <Card.Body>
18
+ <View style={{ flexDirection: "row", alignItems: "center", gap: 10 }}>
19
+ <Avatar alt={p.who} size="sm" />
20
+ <Txt variant="label" style={{ flex: 1 }}>
21
+ {p.who}
22
+ </Txt>
23
+ <Txt variant="caption" tone="secondary">
24
+ {p.when}
25
+ </Txt>
26
+ </View>
27
+ <Txt>{p.what}</Txt>
28
+ </Card.Body>
29
+ </Card.Root>
30
+ ))}
31
+ </Screen>
32
+ </View>
33
+ );
34
+ }
@@ -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;