@krizaka/ui 3.2.0 → 3.4.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 (498) 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/argument-card.js +3 -3
  5. package/dist/{chunk-I5RVM5CW.js → chunk-2FRWNSRO.js} +2 -6
  6. package/dist/chunk-2FRWNSRO.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-BTMFZ66D.js +135 -0
  10. package/dist/chunk-BTMFZ66D.js.map +1 -0
  11. package/dist/chunk-C2BRIFJG.js +13 -0
  12. package/dist/chunk-C2BRIFJG.js.map +1 -0
  13. package/dist/chunk-KDXRYUD3.js +39 -0
  14. package/dist/chunk-KDXRYUD3.js.map +1 -0
  15. package/dist/{chunk-2PUDI7JS.js → chunk-ZKVQGXLD.js} +5 -3
  16. package/dist/{chunk-2PUDI7JS.js.map → chunk-ZKVQGXLD.js.map} +1 -1
  17. package/dist/command.js +1 -1
  18. package/dist/confirm-button.js +1 -1
  19. package/dist/data-table.js +101 -133
  20. package/dist/data-table.js.map +1 -1
  21. package/dist/date-picker.d.ts +3 -1
  22. package/dist/date-picker.js +13 -13
  23. package/dist/date-picker.js.map +1 -1
  24. package/dist/description-list.d.ts +105 -0
  25. package/dist/description-list.js +49 -0
  26. package/dist/description-list.js.map +1 -0
  27. package/dist/dropdown-menu.js +1 -1
  28. package/dist/filter-bar.js +3 -2
  29. package/dist/form.d.ts +23 -12
  30. package/dist/form.js +11 -47
  31. package/dist/form.js.map +1 -1
  32. package/dist/glow-card.js +1 -1
  33. package/dist/image-cropper.js +3 -1
  34. package/dist/image-cropper.js.map +1 -1
  35. package/dist/index.js +13 -66
  36. package/dist/index.js.map +1 -1
  37. package/dist/kanban.d.ts +132 -0
  38. package/dist/kanban.js +187 -0
  39. package/dist/kanban.js.map +1 -0
  40. package/dist/list.d.ts +153 -0
  41. package/dist/list.js +130 -0
  42. package/dist/list.js.map +1 -0
  43. package/dist/map.d.ts +463 -0
  44. package/dist/map.js +952 -0
  45. package/dist/map.js.map +1 -0
  46. package/dist/marquee.js +1 -1
  47. package/dist/motion.css +12 -1
  48. package/dist/native/form.d.ts +60 -15
  49. package/dist/native/form.js +103 -42
  50. package/dist/native/form.js.map +1 -1
  51. package/dist/native/map.d.ts +200 -0
  52. package/dist/native/map.js +673 -0
  53. package/dist/native/map.js.map +1 -0
  54. package/dist/native/media-picker.d.ts +58 -0
  55. package/dist/native/media-picker.js +63 -0
  56. package/dist/native/media-picker.js.map +1 -0
  57. package/dist/native.d.ts +772 -6
  58. package/dist/native.js +2493 -741
  59. package/dist/native.js.map +1 -1
  60. package/dist/nav-bar.js +1 -1
  61. package/dist/page-hero.js +3 -3
  62. package/dist/popover.js +1 -1
  63. package/dist/radio-group.d.ts +66 -32
  64. package/dist/radio-group.js +54 -10
  65. package/dist/radio-group.js.map +1 -1
  66. package/dist/slider.d.ts +96 -35
  67. package/dist/slider.js +67 -13
  68. package/dist/slider.js.map +1 -1
  69. package/dist/stat.d.ts +31 -2
  70. package/dist/stat.js +21 -4
  71. package/dist/stat.js.map +1 -1
  72. package/dist/terminal-replay.js +34 -60
  73. package/dist/terminal-replay.js.map +1 -1
  74. package/dist/toast.js +1 -1
  75. package/dist/tooltip.js +1 -1
  76. package/dist/tree-view.d.ts +111 -0
  77. package/dist/tree-view.js +154 -0
  78. package/dist/tree-view.js.map +1 -0
  79. package/dist/video-player.js +3 -1
  80. package/dist/video-player.js.map +1 -1
  81. package/package.json +148 -11
  82. package/registry/achievement.json +1 -1
  83. package/registry/action-bar.json +1 -1
  84. package/registry/action-sheet.json +121 -0
  85. package/registry/activity-feed.json +468 -0
  86. package/registry/alert.json +1 -1
  87. package/registry/app-shell.json +1 -1
  88. package/registry/argument-card.json +1 -1
  89. package/registry/audio-player.json +1 -1
  90. package/registry/auth-layout.json +1 -1
  91. package/registry/avatar.json +58 -3
  92. package/registry/badge.json +1 -1
  93. package/registry/button.json +1 -1
  94. package/registry/card-grid.json +1 -1
  95. package/registry/card.json +1 -1
  96. package/registry/catalogue-page.json +1 -1
  97. package/registry/changelog-page.json +1 -1
  98. package/registry/checkbox.json +1 -1
  99. package/registry/chip-link.json +1 -1
  100. package/registry/chip.json +1 -1
  101. package/registry/choice-grid.json +1 -1
  102. package/registry/code-block.json +1 -1
  103. package/registry/combobox.json +226 -4
  104. package/registry/command.json +1 -1
  105. package/registry/component-page.json +1 -1
  106. package/registry/confirm-button.json +1 -1
  107. package/registry/contact-page.json +1 -1
  108. package/registry/continue-prompt.json +1 -1
  109. package/registry/countdown.json +1 -1
  110. package/registry/cta-panel.json +1 -1
  111. package/registry/dashboard-layout.json +1 -1
  112. package/registry/data-table.json +1 -1
  113. package/registry/date-picker.json +18 -4
  114. package/registry/decision-list.json +1 -1
  115. package/registry/description-list.json +232 -0
  116. package/registry/detail-layout.json +1 -1
  117. package/registry/dialog.json +75 -4
  118. package/registry/docs-article-page.json +1 -1
  119. package/registry/docs-hub-page.json +1 -1
  120. package/registry/docs-layout.json +1 -1
  121. package/registry/dropdown-menu.json +1 -1
  122. package/registry/empty-state.json +1 -1
  123. package/registry/error-page.json +1 -1
  124. package/registry/examples/action-sheet/native/video-actions.d.ts +4 -0
  125. package/registry/examples/action-sheet/native/video-actions.dark.png +0 -0
  126. package/registry/examples/action-sheet/native/video-actions.js +30 -0
  127. package/registry/examples/action-sheet/native/video-actions.light.png +0 -0
  128. package/registry/examples/action-sheet/native/video-actions.tsx +24 -0
  129. package/registry/examples/activity-feed/job-activity.d.ts +4 -0
  130. package/registry/examples/activity-feed/job-activity.js +21 -0
  131. package/registry/examples/activity-feed/job-activity.tsx +17 -0
  132. package/registry/examples/activity-feed/live.d.ts +4 -0
  133. package/registry/examples/activity-feed/live.js +23 -0
  134. package/registry/examples/activity-feed/live.tsx +24 -0
  135. package/registry/examples/activity-feed/native/notifications.d.ts +4 -0
  136. package/registry/examples/activity-feed/native/notifications.dark.png +0 -0
  137. package/registry/examples/activity-feed/native/notifications.js +18 -0
  138. package/registry/examples/activity-feed/native/notifications.light.png +0 -0
  139. package/registry/examples/activity-feed/native/notifications.tsx +18 -0
  140. package/registry/examples/activity-feed/timeline.d.ts +4 -0
  141. package/registry/examples/activity-feed/timeline.js +25 -0
  142. package/registry/examples/activity-feed/timeline.tsx +19 -0
  143. package/registry/examples/avatar/native/presence.d.ts +4 -0
  144. package/registry/examples/avatar/native/presence.dark.png +0 -0
  145. package/registry/examples/avatar/native/presence.js +18 -0
  146. package/registry/examples/avatar/native/presence.light.png +0 -0
  147. package/registry/examples/avatar/native/presence.tsx +15 -0
  148. package/registry/examples/combobox/native/multiple.d.ts +4 -0
  149. package/registry/examples/combobox/native/multiple.dark.png +0 -0
  150. package/registry/examples/combobox/native/multiple.js +15 -0
  151. package/registry/examples/combobox/native/multiple.light.png +0 -0
  152. package/registry/examples/combobox/native/multiple.tsx +15 -0
  153. package/registry/examples/combobox/native/search.d.ts +4 -0
  154. package/registry/examples/combobox/native/search.dark.png +0 -0
  155. package/registry/examples/combobox/native/search.js +15 -0
  156. package/registry/examples/combobox/native/search.light.png +0 -0
  157. package/registry/examples/combobox/native/search.tsx +15 -0
  158. package/registry/examples/description-list/job-details.d.ts +4 -0
  159. package/registry/examples/description-list/job-details.js +23 -0
  160. package/registry/examples/description-list/job-details.tsx +17 -0
  161. package/registry/examples/description-list/key-value-grid.d.ts +4 -0
  162. package/registry/examples/description-list/key-value-grid.js +22 -0
  163. package/registry/examples/description-list/key-value-grid.tsx +16 -0
  164. package/registry/examples/description-list/native/job-details.d.ts +4 -0
  165. package/registry/examples/description-list/native/job-details.dark.png +0 -0
  166. package/registry/examples/description-list/native/job-details.js +33 -0
  167. package/registry/examples/description-list/native/job-details.light.png +0 -0
  168. package/registry/examples/description-list/native/job-details.tsx +24 -0
  169. package/registry/examples/description-list/receipt.d.ts +4 -0
  170. package/registry/examples/description-list/receipt.js +23 -0
  171. package/registry/examples/description-list/receipt.tsx +17 -0
  172. package/registry/examples/dialog/native/sheet.d.ts +4 -0
  173. package/registry/examples/dialog/native/sheet.dark.png +0 -0
  174. package/registry/examples/dialog/native/sheet.js +21 -0
  175. package/registry/examples/dialog/native/sheet.light.png +0 -0
  176. package/registry/examples/dialog/native/sheet.tsx +18 -0
  177. package/registry/examples/fab/native/extended.d.ts +4 -0
  178. package/registry/examples/fab/native/extended.dark.png +0 -0
  179. package/registry/examples/fab/native/extended.js +18 -0
  180. package/registry/examples/fab/native/extended.light.png +0 -0
  181. package/registry/examples/fab/native/extended.tsx +23 -0
  182. package/registry/examples/field/native/select.d.ts +4 -0
  183. package/registry/examples/field/native/select.dark.png +0 -0
  184. package/registry/examples/field/native/select.js +29 -0
  185. package/registry/examples/field/native/select.light.png +0 -0
  186. package/registry/examples/field/native/select.tsx +25 -0
  187. package/registry/examples/form/native/audience.dark.png +0 -0
  188. package/registry/examples/form/native/audience.light.png +0 -0
  189. package/registry/examples/form/native/profile.dark.png +0 -0
  190. package/registry/examples/form/native/profile.light.png +0 -0
  191. package/registry/examples/form/native/settings.dark.png +0 -0
  192. package/registry/examples/form/native/settings.light.png +0 -0
  193. package/registry/examples/form/native/sign-up.dark.png +0 -0
  194. package/registry/examples/form/native/sign-up.light.png +0 -0
  195. package/registry/examples/form/native/upload.dark.png +0 -0
  196. package/registry/examples/form/native/upload.light.png +0 -0
  197. package/registry/examples/header/native/large-title.d.ts +4 -0
  198. package/registry/examples/header/native/large-title.dark.png +0 -0
  199. package/registry/examples/header/native/large-title.js +23 -0
  200. package/registry/examples/header/native/large-title.light.png +0 -0
  201. package/registry/examples/header/native/large-title.tsx +31 -0
  202. package/registry/examples/image-viewer/native/gallery.d.ts +4 -0
  203. package/registry/examples/image-viewer/native/gallery.dark.png +0 -0
  204. package/registry/examples/image-viewer/native/gallery.js +22 -0
  205. package/registry/examples/image-viewer/native/gallery.light.png +0 -0
  206. package/registry/examples/image-viewer/native/gallery.tsx +21 -0
  207. package/registry/examples/kanban/moderation.d.ts +4 -0
  208. package/registry/examples/kanban/moderation.js +35 -0
  209. package/registry/examples/kanban/moderation.tsx +37 -0
  210. package/registry/examples/list/jobs.d.ts +4 -0
  211. package/registry/examples/list/jobs.js +35 -0
  212. package/registry/examples/list/jobs.tsx +33 -0
  213. package/registry/examples/list/selectable.d.ts +4 -0
  214. package/registry/examples/list/selectable.js +33 -0
  215. package/registry/examples/list/selectable.tsx +30 -0
  216. package/registry/examples/list/virtualized.d.ts +4 -0
  217. package/registry/examples/list/virtualized.js +22 -0
  218. package/registry/examples/list/virtualized.tsx +17 -0
  219. package/registry/examples/loader/native/block.d.ts +4 -0
  220. package/registry/examples/loader/native/block.dark.png +0 -0
  221. package/registry/examples/loader/native/block.js +12 -0
  222. package/registry/examples/loader/native/block.light.png +0 -0
  223. package/registry/examples/loader/native/block.tsx +11 -0
  224. package/registry/examples/loader/native/job-wait.d.ts +4 -0
  225. package/registry/examples/loader/native/job-wait.dark.png +0 -0
  226. package/registry/examples/loader/native/job-wait.js +17 -0
  227. package/registry/examples/loader/native/job-wait.light.png +0 -0
  228. package/registry/examples/loader/native/job-wait.tsx +14 -0
  229. package/registry/examples/map/cluster.d.ts +4 -0
  230. package/registry/examples/map/cluster.js +16 -0
  231. package/registry/examples/map/cluster.tsx +18 -0
  232. package/registry/examples/map/location-picker.d.ts +4 -0
  233. package/registry/examples/map/location-picker.js +24 -0
  234. package/registry/examples/map/location-picker.tsx +22 -0
  235. package/registry/examples/map/native/location-picker.d.ts +4 -0
  236. package/registry/examples/map/native/location-picker.dark.png +0 -0
  237. package/registry/examples/map/native/location-picker.js +14 -0
  238. package/registry/examples/map/native/location-picker.light.png +0 -0
  239. package/registry/examples/map/native/location-picker.tsx +13 -0
  240. package/registry/examples/map/native/places.d.ts +4 -0
  241. package/registry/examples/map/native/places.dark.png +0 -0
  242. package/registry/examples/map/native/places.js +25 -0
  243. package/registry/examples/map/native/places.light.png +0 -0
  244. package/registry/examples/map/native/places.tsx +27 -0
  245. package/registry/examples/map/places.d.ts +4 -0
  246. package/registry/examples/map/places.js +28 -0
  247. package/registry/examples/map/places.tsx +28 -0
  248. package/registry/examples/map/static.d.ts +4 -0
  249. package/registry/examples/map/static.js +22 -0
  250. package/registry/examples/map/static.tsx +18 -0
  251. package/registry/examples/media-picker/native/story.d.ts +4 -0
  252. package/registry/examples/media-picker/native/story.dark.png +0 -0
  253. package/registry/examples/media-picker/native/story.js +30 -0
  254. package/registry/examples/media-picker/native/story.light.png +0 -0
  255. package/registry/examples/media-picker/native/story.tsx +26 -0
  256. package/registry/examples/meter/native/credits.d.ts +4 -0
  257. package/registry/examples/meter/native/credits.dark.png +0 -0
  258. package/registry/examples/meter/native/credits.js +15 -0
  259. package/registry/examples/meter/native/credits.light.png +0 -0
  260. package/registry/examples/meter/native/credits.tsx +12 -0
  261. package/registry/examples/meter/native/split-ring.d.ts +4 -0
  262. package/registry/examples/meter/native/split-ring.dark.png +0 -0
  263. package/registry/examples/meter/native/split-ring.js +24 -0
  264. package/registry/examples/meter/native/split-ring.light.png +0 -0
  265. package/registry/examples/meter/native/split-ring.tsx +19 -0
  266. package/registry/examples/number-ticker/native/balance.d.ts +4 -0
  267. package/registry/examples/number-ticker/native/balance.dark.png +0 -0
  268. package/registry/examples/number-ticker/native/balance.js +18 -0
  269. package/registry/examples/number-ticker/native/balance.light.png +0 -0
  270. package/registry/examples/number-ticker/native/balance.tsx +17 -0
  271. package/registry/examples/onboarding/native/first-launch.d.ts +4 -0
  272. package/registry/examples/onboarding/native/first-launch.dark.png +0 -0
  273. package/registry/examples/onboarding/native/first-launch.js +23 -0
  274. package/registry/examples/onboarding/native/first-launch.light.png +0 -0
  275. package/registry/examples/onboarding/native/first-launch.tsx +19 -0
  276. package/registry/examples/otp-input/native/invalid.d.ts +4 -0
  277. package/registry/examples/otp-input/native/invalid.dark.png +0 -0
  278. package/registry/examples/otp-input/native/invalid.js +15 -0
  279. package/registry/examples/otp-input/native/invalid.light.png +0 -0
  280. package/registry/examples/otp-input/native/invalid.tsx +14 -0
  281. package/registry/examples/otp-input/native/verify.d.ts +4 -0
  282. package/registry/examples/otp-input/native/verify.dark.png +0 -0
  283. package/registry/examples/otp-input/native/verify.js +17 -0
  284. package/registry/examples/otp-input/native/verify.light.png +0 -0
  285. package/registry/examples/otp-input/native/verify.tsx +14 -0
  286. package/registry/examples/permission-prompt/native/blocked.d.ts +4 -0
  287. package/registry/examples/permission-prompt/native/blocked.dark.png +0 -0
  288. package/registry/examples/permission-prompt/native/blocked.js +25 -0
  289. package/registry/examples/permission-prompt/native/blocked.light.png +0 -0
  290. package/registry/examples/permission-prompt/native/blocked.tsx +21 -0
  291. package/registry/examples/permission-prompt/native/camera.d.ts +4 -0
  292. package/registry/examples/permission-prompt/native/camera.dark.png +0 -0
  293. package/registry/examples/permission-prompt/native/camera.js +25 -0
  294. package/registry/examples/permission-prompt/native/camera.light.png +0 -0
  295. package/registry/examples/permission-prompt/native/camera.tsx +21 -0
  296. package/registry/examples/pull-to-refresh/native/feed.d.ts +4 -0
  297. package/registry/examples/pull-to-refresh/native/feed.dark.png +0 -0
  298. package/registry/examples/pull-to-refresh/native/feed.js +14 -0
  299. package/registry/examples/pull-to-refresh/native/feed.light.png +0 -0
  300. package/registry/examples/pull-to-refresh/native/feed.tsx +19 -0
  301. package/registry/examples/radio-group/buttons.d.ts +4 -0
  302. package/registry/examples/radio-group/buttons.js +17 -0
  303. package/registry/examples/radio-group/buttons.tsx +21 -0
  304. package/registry/examples/radio-group/cards.js +1 -1
  305. package/registry/examples/radio-group/cards.tsx +2 -2
  306. package/registry/examples/radio-group/native/buttons.d.ts +4 -0
  307. package/registry/examples/radio-group/native/buttons.dark.png +0 -0
  308. package/registry/examples/radio-group/native/buttons.js +25 -0
  309. package/registry/examples/radio-group/native/buttons.light.png +0 -0
  310. package/registry/examples/radio-group/native/buttons.tsx +21 -0
  311. package/registry/examples/radio-group/native/cards.d.ts +4 -0
  312. package/registry/examples/radio-group/native/cards.dark.png +0 -0
  313. package/registry/examples/radio-group/native/cards.js +23 -0
  314. package/registry/examples/radio-group/native/cards.light.png +0 -0
  315. package/registry/examples/radio-group/native/cards.tsx +19 -0
  316. package/registry/examples/radio-group/native/list.d.ts +4 -0
  317. package/registry/examples/radio-group/native/list.dark.png +0 -0
  318. package/registry/examples/radio-group/native/list.js +24 -0
  319. package/registry/examples/radio-group/native/list.light.png +0 -0
  320. package/registry/examples/radio-group/native/list.tsx +20 -0
  321. package/registry/examples/radio-group/native/segmented.d.ts +4 -0
  322. package/registry/examples/radio-group/native/segmented.dark.png +0 -0
  323. package/registry/examples/radio-group/native/segmented.js +24 -0
  324. package/registry/examples/radio-group/native/segmented.light.png +0 -0
  325. package/registry/examples/radio-group/native/segmented.tsx +20 -0
  326. package/registry/examples/radio-group/segmented.d.ts +4 -0
  327. package/registry/examples/radio-group/segmented.js +15 -0
  328. package/registry/examples/radio-group/segmented.tsx +12 -0
  329. package/registry/examples/search-field/native/cancel.d.ts +4 -0
  330. package/registry/examples/search-field/native/cancel.dark.png +0 -0
  331. package/registry/examples/search-field/native/cancel.js +14 -0
  332. package/registry/examples/search-field/native/cancel.light.png +0 -0
  333. package/registry/examples/search-field/native/cancel.tsx +13 -0
  334. package/registry/examples/slider/floating.d.ts +4 -0
  335. package/registry/examples/slider/floating.js +11 -0
  336. package/registry/examples/slider/floating.tsx +12 -0
  337. package/registry/examples/slider/native/default.d.ts +4 -0
  338. package/registry/examples/slider/native/default.dark.png +0 -0
  339. package/registry/examples/slider/native/default.js +14 -0
  340. package/registry/examples/slider/native/default.light.png +0 -0
  341. package/registry/examples/slider/native/default.tsx +13 -0
  342. package/registry/examples/slider/native/range.d.ts +4 -0
  343. package/registry/examples/slider/native/range.dark.png +0 -0
  344. package/registry/examples/slider/native/range.js +12 -0
  345. package/registry/examples/slider/native/range.light.png +0 -0
  346. package/registry/examples/slider/native/range.tsx +11 -0
  347. package/registry/examples/slider/native/stepped.d.ts +4 -0
  348. package/registry/examples/slider/native/stepped.dark.png +0 -0
  349. package/registry/examples/slider/native/stepped.js +28 -0
  350. package/registry/examples/slider/native/stepped.light.png +0 -0
  351. package/registry/examples/slider/native/stepped.tsx +24 -0
  352. package/registry/examples/slider/native/vertical.d.ts +4 -0
  353. package/registry/examples/slider/native/vertical.dark.png +0 -0
  354. package/registry/examples/slider/native/vertical.js +16 -0
  355. package/registry/examples/slider/native/vertical.light.png +0 -0
  356. package/registry/examples/slider/native/vertical.tsx +13 -0
  357. package/registry/examples/slider/price-range.d.ts +4 -0
  358. package/registry/examples/slider/price-range.js +29 -0
  359. package/registry/examples/slider/price-range.tsx +27 -0
  360. package/registry/examples/slider/stepped.d.ts +4 -0
  361. package/registry/examples/slider/stepped.js +28 -0
  362. package/registry/examples/slider/stepped.tsx +24 -0
  363. package/registry/examples/slider/vertical.d.ts +4 -0
  364. package/registry/examples/slider/vertical.js +15 -0
  365. package/registry/examples/slider/vertical.tsx +14 -0
  366. package/registry/examples/stat/grid.d.ts +4 -0
  367. package/registry/examples/stat/grid.js +17 -0
  368. package/registry/examples/stat/grid.tsx +14 -0
  369. package/registry/examples/stepper/native/run.d.ts +4 -0
  370. package/registry/examples/stepper/native/run.dark.png +0 -0
  371. package/registry/examples/stepper/native/run.js +24 -0
  372. package/registry/examples/stepper/native/run.light.png +0 -0
  373. package/registry/examples/stepper/native/run.tsx +20 -0
  374. package/registry/examples/swipeable-row/native/conversation.d.ts +4 -0
  375. package/registry/examples/swipeable-row/native/conversation.dark.png +0 -0
  376. package/registry/examples/swipeable-row/native/conversation.js +30 -0
  377. package/registry/examples/swipeable-row/native/conversation.light.png +0 -0
  378. package/registry/examples/swipeable-row/native/conversation.tsx +27 -0
  379. package/registry/examples/switch/native/default.d.ts +4 -0
  380. package/registry/examples/switch/native/default.dark.png +0 -0
  381. package/registry/examples/switch/native/default.js +16 -0
  382. package/registry/examples/switch/native/default.light.png +0 -0
  383. package/registry/examples/switch/native/default.tsx +13 -0
  384. package/registry/examples/switch/native/settings.d.ts +4 -0
  385. package/registry/examples/switch/native/settings.dark.png +0 -0
  386. package/registry/examples/switch/native/settings.js +20 -0
  387. package/registry/examples/switch/native/settings.light.png +0 -0
  388. package/registry/examples/switch/native/settings.tsx +17 -0
  389. package/registry/examples/tab-bar/native/main-sections.d.ts +4 -0
  390. package/registry/examples/tab-bar/native/main-sections.dark.png +0 -0
  391. package/registry/examples/tab-bar/native/main-sections.js +29 -0
  392. package/registry/examples/tab-bar/native/main-sections.light.png +0 -0
  393. package/registry/examples/tab-bar/native/main-sections.tsx +30 -0
  394. package/registry/examples/tabs/native/sections.d.ts +4 -0
  395. package/registry/examples/tabs/native/sections.dark.png +0 -0
  396. package/registry/examples/tabs/native/sections.js +23 -0
  397. package/registry/examples/tabs/native/sections.light.png +0 -0
  398. package/registry/examples/tabs/native/sections.tsx +19 -0
  399. package/registry/examples/tabs/native/segmented.d.ts +4 -0
  400. package/registry/examples/tabs/native/segmented.dark.png +0 -0
  401. package/registry/examples/tabs/native/segmented.js +22 -0
  402. package/registry/examples/tabs/native/segmented.light.png +0 -0
  403. package/registry/examples/tabs/native/segmented.tsx +18 -0
  404. package/registry/examples/toast/native/snackbar.d.ts +4 -0
  405. package/registry/examples/toast/native/snackbar.dark.png +0 -0
  406. package/registry/examples/toast/native/snackbar.js +23 -0
  407. package/registry/examples/toast/native/snackbar.light.png +0 -0
  408. package/registry/examples/toast/native/snackbar.tsx +21 -0
  409. package/registry/examples/tree-view/docs.d.ts +4 -0
  410. package/registry/examples/tree-view/docs.js +24 -0
  411. package/registry/examples/tree-view/docs.tsx +22 -0
  412. package/registry/examples/tree-view/lazy.d.ts +4 -0
  413. package/registry/examples/tree-view/lazy.js +21 -0
  414. package/registry/examples/tree-view/lazy.tsx +19 -0
  415. package/registry/fab.json +122 -0
  416. package/registry/field.json +16 -4
  417. package/registry/file-upload.json +2 -2
  418. package/registry/filter-bar.json +1 -1
  419. package/registry/form.json +252 -44
  420. package/registry/gallery-page.json +1 -1
  421. package/registry/glow-card.json +1 -1
  422. package/registry/goal-gauge.json +1 -1
  423. package/registry/header.json +137 -0
  424. package/registry/how-it-works-page.json +1 -1
  425. package/registry/image-cropper.json +1 -1
  426. package/registry/image-viewer.json +107 -0
  427. package/registry/index.json +322 -44
  428. package/registry/iso.json +1 -1
  429. package/registry/kanban.json +253 -0
  430. package/registry/kbd.json +1 -1
  431. package/registry/landing-page.json +1 -1
  432. package/registry/landscape.json +1 -1
  433. package/registry/legal-page.json +1 -1
  434. package/registry/link-card.json +1 -1
  435. package/registry/list.json +367 -30
  436. package/registry/loader.json +157 -4
  437. package/registry/longform-page.json +1 -1
  438. package/registry/map.json +1368 -0
  439. package/registry/marketing-layout.json +1 -1
  440. package/registry/marquee.json +1 -1
  441. package/registry/mascot-quote.json +1 -1
  442. package/registry/mascot-state.json +1 -1
  443. package/registry/mascots.json +1 -1
  444. package/registry/media-capture.json +1 -1
  445. package/registry/media-picker.json +129 -0
  446. package/registry/meter.json +136 -4
  447. package/registry/nav-bar.json +1 -1
  448. package/registry/number-ticker.json +96 -4
  449. package/registry/onboarding.json +95 -0
  450. package/registry/otp-input.json +150 -0
  451. package/registry/page-header.json +1 -1
  452. package/registry/page-hero.json +1 -1
  453. package/registry/page.json +1 -1
  454. package/registry/pagination.json +1 -1
  455. package/registry/permission-prompt.json +172 -0
  456. package/registry/pointer-light.json +1 -1
  457. package/registry/popover.json +1 -1
  458. package/registry/pricing-page.json +1 -1
  459. package/registry/product-page.json +1 -1
  460. package/registry/profile-card.json +1 -1
  461. package/registry/progress.json +2 -2
  462. package/registry/promise-card.json +1 -1
  463. package/registry/pull-to-refresh.json +74 -0
  464. package/registry/radio-group.json +228 -16
  465. package/registry/scroll-stage.json +1 -1
  466. package/registry/search-field.json +30 -3
  467. package/registry/section-backdrop.json +1 -1
  468. package/registry/separator.json +1 -1
  469. package/registry/settings-layout.json +1 -1
  470. package/registry/skeleton.json +1 -1
  471. package/registry/slider.json +315 -14
  472. package/registry/slot.json +1 -1
  473. package/registry/spinner.json +1 -1
  474. package/registry/split-view.json +1 -1
  475. package/registry/stage-banner.json +1 -1
  476. package/registry/stat.json +68 -5
  477. package/registry/status-page.json +1 -1
  478. package/registry/stepper.json +75 -4
  479. package/registry/swipeable-row.json +124 -0
  480. package/registry/switch.json +116 -4
  481. package/registry/tab-bar.json +115 -0
  482. package/registry/tabs.json +96 -6
  483. package/registry/tag-input.json +1 -1
  484. package/registry/terminal-replay.json +1 -1
  485. package/registry/theme.json +8 -1
  486. package/registry/toast.json +17 -3
  487. package/registry/toc.json +1 -1
  488. package/registry/tooltip.json +1 -1
  489. package/registry/tree-view.json +291 -0
  490. package/registry/video-player.json +1 -1
  491. package/registry/video-trimmer.json +1 -1
  492. package/registry/virtual.json +1 -1
  493. package/skills/choice-controls/SKILL.md +39 -0
  494. package/skills/form/SKILL.md +3 -0
  495. package/skills/map/SKILL.md +35 -0
  496. package/dist/chunk-I5RVM5CW.js.map +0 -1
  497. package/dist/chunk-RUPRYJ45.js +0 -82
  498. package/dist/chunk-RUPRYJ45.js.map +0 -1
@@ -0,0 +1,15 @@
1
+ import { Combobox } from "@krizaka/ui/native";
2
+ import * as React from "react";
3
+ import { View } from "react-native";
4
+
5
+ const CITIES = ["Montréal", "Québec", "Laval", "Gatineau", "Sherbrooke", "Trois-Rivières"].map((c) => ({ value: c.toLowerCase(), label: c }));
6
+
7
+ // A choice among many, searched in a sheet: what is typed filters the options.
8
+ export default function NativeComboboxSearch() {
9
+ const [city, setCity] = React.useState<string>("montréal");
10
+ return (
11
+ <View style={{ width: 300 }}>
12
+ <Combobox label="City" placeholder="Choose a city" options={CITIES} value={city} onValueChange={(v) => setCity(String(v))} />
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/description-list/job-details.tsx
4
+ import { Badge } from "@krizaka/ui/badge";
5
+ import { DescriptionList } from "@krizaka/ui/description-list";
6
+ import { jsx } from "react/jsx-runtime";
7
+ function DescriptionListJobDetails() {
8
+ return /* @__PURE__ */ jsx(
9
+ DescriptionList,
10
+ {
11
+ className: "max-w-sm",
12
+ items: [
13
+ { term: "Status", details: /* @__PURE__ */ jsx(Badge, { tone: "accent", children: "Running" }) },
14
+ { term: "Studio", details: "Dubbing \xB7 English, Spanish" },
15
+ { term: "Started", details: "Oct 11, 2026, 14:02", hint: "by Elena Ruiz" },
16
+ { term: "Credits", details: "120", hint: "estimated, charged at the end" }
17
+ ]
18
+ }
19
+ );
20
+ }
21
+ export {
22
+ DescriptionListJobDetails as default
23
+ };
@@ -0,0 +1,17 @@
1
+ import { Badge } from "@krizaka/ui/badge";
2
+ import { DescriptionList } from "@krizaka/ui/description-list";
3
+
4
+ // A job's details, stacked: what a side panel shows.
5
+ export default function DescriptionListJobDetails() {
6
+ return (
7
+ <DescriptionList
8
+ className="max-w-sm"
9
+ items={[
10
+ { term: "Status", details: <Badge tone="accent">Running</Badge> },
11
+ { term: "Studio", details: "Dubbing · English, Spanish" },
12
+ { term: "Started", details: "Oct 11, 2026, 14:02", hint: "by Elena Ruiz" },
13
+ { term: "Credits", details: "120", hint: "estimated, charged at the end" },
14
+ ]}
15
+ />
16
+ );
17
+ }
@@ -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/description-list/key-value-grid.tsx
4
+ import { KeyValueGrid } from "@krizaka/ui/description-list";
5
+ import { jsx } from "react/jsx-runtime";
6
+ function DescriptionListKeyValueGrid() {
7
+ return /* @__PURE__ */ jsx(
8
+ KeyValueGrid,
9
+ {
10
+ minWidth: 9,
11
+ items: [
12
+ { term: "Requests / min", details: "600" },
13
+ { term: "Concurrent jobs", details: "8" },
14
+ { term: "Storage", details: "50 GB", hint: "18 GB used" },
15
+ { term: "Retention", details: "30 days" }
16
+ ]
17
+ }
18
+ );
19
+ }
20
+ export {
21
+ DescriptionListKeyValueGrid as default
22
+ };
@@ -0,0 +1,16 @@
1
+ import { KeyValueGrid } from "@krizaka/ui/description-list";
2
+
3
+ // Key figures as cards that wrap: an account's limits in the console.
4
+ export default function DescriptionListKeyValueGrid() {
5
+ return (
6
+ <KeyValueGrid
7
+ minWidth={9}
8
+ items={[
9
+ { term: "Requests / min", details: "600" },
10
+ { term: "Concurrent jobs", details: "8" },
11
+ { term: "Storage", details: "50 GB", hint: "18 GB used" },
12
+ { term: "Retention", details: "30 days" },
13
+ ]}
14
+ />
15
+ );
16
+ }
@@ -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,33 @@
1
+ "use client";
2
+
3
+ // registry/examples/description-list/native/job-details.tsx
4
+ import { Badge, DescriptionList } from "@krizaka/ui/native";
5
+ import { View } from "react-native";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ function NativeDescriptionListJobDetails() {
8
+ return /* @__PURE__ */ jsxs(View, { style: { width: 320, gap: 24 }, children: [
9
+ /* @__PURE__ */ jsx(
10
+ DescriptionList,
11
+ {
12
+ items: [
13
+ { term: "Status", details: /* @__PURE__ */ jsx(Badge, { tone: "accent", children: "Running" }) },
14
+ { term: "Studio", details: "Dubbing \xB7 English, Spanish" },
15
+ { term: "Started", details: "Oct 11, 14:02", hint: "by Elena Ruiz" }
16
+ ]
17
+ }
18
+ ),
19
+ /* @__PURE__ */ jsx(
20
+ DescriptionList,
21
+ {
22
+ layout: "inline",
23
+ items: [
24
+ { term: "Estimated", details: "120 credits" },
25
+ { term: "Left this month", details: "1,880 credits" }
26
+ ]
27
+ }
28
+ )
29
+ ] });
30
+ }
31
+ export {
32
+ NativeDescriptionListJobDetails as default
33
+ };
@@ -0,0 +1,24 @@
1
+ import { Badge, DescriptionList } from "@krizaka/ui/native";
2
+ import { View } from "react-native";
3
+
4
+ // A job's details on a phone: stacked, then a receipt inline.
5
+ export default function NativeDescriptionListJobDetails() {
6
+ return (
7
+ <View style={{ width: 320, gap: 24 }}>
8
+ <DescriptionList
9
+ items={[
10
+ { term: "Status", details: <Badge tone="accent">Running</Badge> },
11
+ { term: "Studio", details: "Dubbing · English, Spanish" },
12
+ { term: "Started", details: "Oct 11, 14:02", hint: "by Elena Ruiz" },
13
+ ]}
14
+ />
15
+ <DescriptionList
16
+ layout="inline"
17
+ items={[
18
+ { term: "Estimated", details: "120 credits" },
19
+ { term: "Left this month", details: "1,880 credits" },
20
+ ]}
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,23 @@
1
+ "use client";
2
+
3
+ // registry/examples/description-list/receipt.tsx
4
+ import { DescriptionList } from "@krizaka/ui/description-list";
5
+ import { jsx } from "react/jsx-runtime";
6
+ function DescriptionListReceipt() {
7
+ return /* @__PURE__ */ jsx(
8
+ DescriptionList,
9
+ {
10
+ layout: "inline",
11
+ className: "max-w-sm",
12
+ items: [
13
+ { term: "Tip from @mina", details: "$10.00" },
14
+ { term: "Payment fees", details: "\u2212$0.50" },
15
+ { term: "Platform", details: "\u2212$1.00" },
16
+ { term: "To you", details: "$8.50", hint: "paid on Oct 15" }
17
+ ]
18
+ }
19
+ );
20
+ }
21
+ export {
22
+ DescriptionListReceipt as default
23
+ };
@@ -0,0 +1,17 @@
1
+ import { DescriptionList } from "@krizaka/ui/description-list";
2
+
3
+ // Inline: a tip's breakdown, read like a receipt.
4
+ export default function DescriptionListReceipt() {
5
+ return (
6
+ <DescriptionList
7
+ layout="inline"
8
+ className="max-w-sm"
9
+ items={[
10
+ { term: "Tip from @mina", details: "$10.00" },
11
+ { term: "Payment fees", details: "−$0.50" },
12
+ { term: "Platform", details: "−$1.00" },
13
+ { term: "To you", details: "$8.50", hint: "paid on Oct 15" },
14
+ ]}
15
+ />
16
+ );
17
+ }
@@ -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/dialog/native/sheet.tsx
4
+ import { Button, Sheet, Txt } from "@krizaka/ui/native";
5
+ import * as React from "react";
6
+ import { View } from "react-native";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ function NativeDialogSheet({ defaultOpen }) {
9
+ const [open, setOpen] = React.useState(Boolean(defaultOpen));
10
+ return /* @__PURE__ */ jsxs(View, { children: [
11
+ /* @__PURE__ */ jsx(Button, { label: "Show the pick-up point", onPress: () => setOpen(true) }),
12
+ /* @__PURE__ */ jsxs(Sheet, { open, onOpenChange: setOpen, title: "Caf\xE9 Olimpico", children: [
13
+ /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "124 Rue Saint-Viateur O, Montr\xE9al \xB7 350 m away" }),
14
+ /* @__PURE__ */ jsx(Txt, { children: "Open until 10 pm. Ask for the order under your name at the counter." }),
15
+ /* @__PURE__ */ jsx(Button, { label: "Get directions", variant: "primary", onPress: () => setOpen(false) })
16
+ ] })
17
+ ] });
18
+ }
19
+ export {
20
+ NativeDialogSheet as default
21
+ };
@@ -0,0 +1,18 @@
1
+ import { Button, Sheet, Txt } from "@krizaka/ui/native";
2
+ import * as React from "react";
3
+ import { View } from "react-native";
4
+
5
+ // A bottom sheet: it rises over the dimmed screen, the scrim or the back button closes it.
6
+ export default function NativeDialogSheet({ defaultOpen }: { defaultOpen?: boolean }) {
7
+ const [open, setOpen] = React.useState(Boolean(defaultOpen));
8
+ return (
9
+ <View>
10
+ <Button label="Show the pick-up point" onPress={() => setOpen(true)} />
11
+ <Sheet open={open} onOpenChange={setOpen} title="Café Olimpico">
12
+ <Txt tone="secondary">124 Rue Saint-Viateur O, Montréal · 350 m away</Txt>
13
+ <Txt>Open until 10 pm. Ask for the order under your name at the counter.</Txt>
14
+ <Button label="Get directions" variant="primary" onPress={() => setOpen(false)} />
15
+ </Sheet>
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,18 @@
1
+ "use client";
2
+
3
+ // registry/examples/fab/native/extended.tsx
4
+ import { Fab, useTheme } from "@krizaka/ui/native";
5
+ import { View } from "react-native";
6
+ import Svg, { Path } from "react-native-svg";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ function NativeFabExtended() {
9
+ const { theme } = useTheme();
10
+ const plus = /* @__PURE__ */ jsx(Svg, { width: 22, height: 22, viewBox: "0 0 24 24", stroke: theme.onAccent, strokeWidth: 2.4, strokeLinecap: "round", children: /* @__PURE__ */ jsx(Path, { d: "M12 5v14M5 12h14" }) });
11
+ return /* @__PURE__ */ jsxs(View, { style: { width: 360, height: 200, flexDirection: "row" }, children: [
12
+ /* @__PURE__ */ jsx(View, { style: { flex: 1 }, children: /* @__PURE__ */ jsx(Fab, { label: "New challenge", icon: plus, extended: true, onPress: () => void 0 }) }),
13
+ /* @__PURE__ */ jsx(View, { style: { flex: 1 }, children: /* @__PURE__ */ jsx(Fab, { label: "New challenge", icon: plus, onPress: () => void 0 }) })
14
+ ] });
15
+ }
16
+ export {
17
+ NativeFabExtended as default
18
+ };
@@ -0,0 +1,23 @@
1
+ import { Fab, useTheme } from "@krizaka/ui/native";
2
+ import { View } from "react-native";
3
+ import Svg, { Path } from "react-native-svg";
4
+
5
+ // The screen's one main action, floating over the list, above the tab bar (`offset`).
6
+ export default function NativeFabExtended() {
7
+ const { theme } = useTheme();
8
+ const plus = (
9
+ <Svg width={22} height={22} viewBox="0 0 24 24" stroke={theme.onAccent} strokeWidth={2.4} strokeLinecap="round">
10
+ <Path d="M12 5v14M5 12h14" />
11
+ </Svg>
12
+ );
13
+ return (
14
+ <View style={{ width: 360, height: 200, flexDirection: "row" }}>
15
+ <View style={{ flex: 1 }}>
16
+ <Fab label="New challenge" icon={plus} extended onPress={() => undefined} />
17
+ </View>
18
+ <View style={{ flex: 1 }}>
19
+ <Fab label="New challenge" icon={plus} onPress={() => undefined} />
20
+ </View>
21
+ </View>
22
+ );
23
+ }
@@ -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,29 @@
1
+ "use client";
2
+
3
+ // registry/examples/field/native/select.tsx
4
+ import { Select } from "@krizaka/ui/native";
5
+ import * as React from "react";
6
+ import { View } from "react-native";
7
+ import { jsx } from "react/jsx-runtime";
8
+ function NativeFieldSelect() {
9
+ const [category, setCategory] = React.useState(null);
10
+ return /* @__PURE__ */ jsx(View, { style: { width: 300 }, children: /* @__PURE__ */ jsx(
11
+ Select,
12
+ {
13
+ label: "Category",
14
+ placeholder: "Choose a category",
15
+ value: category,
16
+ onValueChange: setCategory,
17
+ hint: "Where your video is listed.",
18
+ options: [
19
+ { value: "music", label: "Music" },
20
+ { value: "sport", label: "Sport", description: "Training, matches, challenges" },
21
+ { value: "art", label: "Art" },
22
+ { value: "talk", label: "Talk" }
23
+ ]
24
+ }
25
+ ) });
26
+ }
27
+ export {
28
+ NativeFieldSelect as default
29
+ };
@@ -0,0 +1,25 @@
1
+ import { Select } from "@krizaka/ui/native";
2
+ import * as React from "react";
3
+ import { View } from "react-native";
4
+
5
+ // One choice among many: the field opens a sheet of options; picking one closes it.
6
+ export default function NativeFieldSelect() {
7
+ const [category, setCategory] = React.useState<string | null>(null);
8
+ return (
9
+ <View style={{ width: 300 }}>
10
+ <Select
11
+ label="Category"
12
+ placeholder="Choose a category"
13
+ value={category}
14
+ onValueChange={setCategory}
15
+ hint="Where your video is listed."
16
+ options={[
17
+ { value: "music", label: "Music" },
18
+ { value: "sport", label: "Sport", description: "Training, matches, challenges" },
19
+ { value: "art", label: "Art" },
20
+ { value: "talk", label: "Talk" },
21
+ ]}
22
+ />
23
+ </View>
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,23 @@
1
+ "use client";
2
+
3
+ // registry/examples/header/native/large-title.tsx
4
+ import { Header, IconButton, SearchField, Txt, useCollapsingHeader, useTheme } from "@krizaka/ui/native";
5
+ import { Animated, View } from "react-native";
6
+ import Svg, { Path } from "react-native-svg";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ var DAYS = ["Today", "Yesterday", "Monday", "Sunday", "Saturday", "Friday", "Thursday"];
9
+ function NativeHeaderLargeTitle() {
10
+ const { scrollY, onScroll } = useCollapsingHeader();
11
+ const { theme } = useTheme();
12
+ const plus = /* @__PURE__ */ jsx(Svg, { width: 20, height: 20, viewBox: "0 0 24 24", stroke: theme.textPrimary, strokeWidth: 2.4, strokeLinecap: "round", children: /* @__PURE__ */ jsx(Path, { d: "M12 5v14M5 12h14" }) });
13
+ return /* @__PURE__ */ jsxs(View, { style: { width: 360, height: 420 }, children: [
14
+ /* @__PURE__ */ jsx(Header, { title: "Earnings", subtitle: "$1,990.40 this year", scrollY, actions: /* @__PURE__ */ jsx(IconButton, { label: "Withdraw", icon: plus, variant: "ghost" }), children: /* @__PURE__ */ jsx(SearchField, { label: "Search payouts", placeholder: "Search payouts", clearLabel: "Clear" }) }),
15
+ /* @__PURE__ */ jsx(Animated.ScrollView, { tabIndex: 0, onScroll, scrollEventThrottle: 16, children: DAYS.map((day) => /* @__PURE__ */ jsxs(View, { style: { flexDirection: "row", justifyContent: "space-between", paddingHorizontal: 16, paddingVertical: 14 }, children: [
16
+ /* @__PURE__ */ jsx(Txt, { variant: "label", children: `Tips \xB7 ${day}` }),
17
+ /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "$24.00" })
18
+ ] }, day)) })
19
+ ] });
20
+ }
21
+ export {
22
+ NativeHeaderLargeTitle as default
23
+ };
@@ -0,0 +1,31 @@
1
+ import { Header, IconButton, SearchField, Txt, useCollapsingHeader, useTheme } from "@krizaka/ui/native";
2
+ import { Animated, View } from "react-native";
3
+ import Svg, { Path } from "react-native-svg";
4
+
5
+ const DAYS = ["Today", "Yesterday", "Monday", "Sunday", "Saturday", "Friday", "Thursday"];
6
+
7
+ // A large title that folds into the bar as the list scrolls under it.
8
+ export default function NativeHeaderLargeTitle() {
9
+ const { scrollY, onScroll } = useCollapsingHeader();
10
+ const { theme } = useTheme();
11
+ const plus = (
12
+ <Svg width={20} height={20} viewBox="0 0 24 24" stroke={theme.textPrimary} strokeWidth={2.4} strokeLinecap="round">
13
+ <Path d="M12 5v14M5 12h14" />
14
+ </Svg>
15
+ );
16
+ return (
17
+ <View style={{ width: 360, height: 420 }}>
18
+ <Header title="Earnings" subtitle="$1,990.40 this year" scrollY={scrollY} actions={<IconButton label="Withdraw" icon={plus} variant="ghost" />}>
19
+ <SearchField label="Search payouts" placeholder="Search payouts" clearLabel="Clear" />
20
+ </Header>
21
+ <Animated.ScrollView tabIndex={0} onScroll={onScroll} scrollEventThrottle={16}>
22
+ {DAYS.map((day) => (
23
+ <View key={day} style={{ flexDirection: "row", justifyContent: "space-between", paddingHorizontal: 16, paddingVertical: 14 }}>
24
+ <Txt variant="label">{`Tips · ${day}`}</Txt>
25
+ <Txt tone="secondary">$24.00</Txt>
26
+ </View>
27
+ ))}
28
+ </Animated.ScrollView>
29
+ </View>
30
+ );
31
+ }
@@ -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/image-viewer/native/gallery.tsx
4
+ import { Button, ImageViewer } from "@krizaka/ui/native";
5
+ import { useState } from "react";
6
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
+ var png = (data) => `data:image/png;base64,${data}`;
8
+ var PHOTOS = [
9
+ { uri: png("iVBORw0KGgoAAAANSUhEUgAAABgAAAAQCAIAAACDRijCAAAB90lEQVR42nVU247TMBCdGU/s3CilhdXy0C28sRLfwf//BLtspV6gbZzYjoeHdFOnLNI82Nbo6Nxk/P7xB5EwwesIEzACM2iFRa4Ko0xGKFFCkNATRobpMgEhsCIhAnUZGQ6MoBVWZbb8UCwWRZlnvffnP4092t55kjhuDkMorBVQgj3Q0Qx1yXd39Xq9WK3m72rT2W7ztN/83B33x945upIChUIEA5CMEAPh0qjlovj6ZfHt8f5hvawq3Vo3n+VGwbOE8yFI3w8QF2kErJXQFUWYQDNWOX9alKvV/GG9vP/83hh2LigQb607nqS1oYsEcSRFNEjDiXNaQa6xKnhWm7rSxmRZRohYVaauTJmz0UhBEnWDNIJpaqAJFIgE79qus513noCDC67tQttJ7xkiKiBIUptIu5IS7EN7ara/9puZUYRlqZ1126ftYbN3pwZjYBROnB3NnjaIQEnfnezueZsrCbarau2sO7zsDi9b3zRKeqXSfG5Sw4QXinh/Ppw2Errjucg5+tCezu7cgPcZpvsylYa3ZWWM4p39HaRtG0aEiH3AGBljGnHiEU2lJTVjEIoxdn0IwChEwjghMk3t32YnTWMCpnjli7ebTDKanaZ2A5EqfYPI+H5lpC7b8gbE/4lMmq1oABJFoPD2G7gMptfXM16vRPAXAU4Dl1f5CK8AAAAASUVORK5CYII="), alt: "Elena on stage, backlit", caption: "Sunset session \xB7 Lisbon" },
10
+ { uri: png("iVBORw0KGgoAAAANSUhEUgAAABgAAAAQCAIAAACDRijCAAAB6klEQVR42o2T3W4TQQyF7eOZnexmq2wiaLmgrbgB2ifgjvd/AwrlCokmNEXpNtn/8XCR5q/dApIvrNGx9dnjw6PzzwSwCEQYAhGIEIRYWIQYDGEIi2wTwrNHwDCwDiPiXDRwxlirxI3nVtkzmLHVbEIOAwQYNoYBa0yauNfj5GScDOOobMPtspsvu6INSo+VdMi1l4ABA7Fikcbu9Pjo4ix7/zbLjlxe+G/T1Zeb8ud9UzRBaVtw0IX2R4MxA2ePJ8OL88mnj68uz8ajYZQX3WQUs31ofzxM77vaM/WD7HIjNooH0ckk/XCaXZ6N371JE2fKxhNkUdFsqYu66poQCD0gh0TWRFGSuCx1ozRKnHFWiHk0tFnqkjiykYduNtU34CMRiwSWynNeaV5q2SgTl63mteZVqD0rG5YAQi/IJocJkEZ5vvTXv6rJqCAgi21e+6tZ9X1ez1ehURD4BRCh3R2JbQl3hV5NK5blogrZMMorvZ43X2/b3yV1W5YeENkRQUxglB3f5F1L5WwVhgNbepqv9K7Q0nOA4CWQTRcGDBvLgDKKDrOlX7SNNeoZjXKnrPx3kINlr10iCqlV2obZE4MJIP4XyMH3rxttnsLasfhPkK1y47Ve0Ra776yfLxt7UqAvnnp9bfcnsj/xIr3biGqZngAAAABJRU5ErkJggg=="), alt: "The crowd at the front" },
11
+ { uri: png("iVBORw0KGgoAAAANSUhEUgAAABgAAAAQCAIAAACDRijCAAABrklEQVR42o1Ty3LbMAwEFiCpR5vY1iVOT+2pP9H//5lOHfklmc8ebDmexEpyIQEMZrmLBfnXn98Aq7CAFSy3sUyVmeI1BljPF6b8zSlgAeSTBgZYjQKYfW2OwpWgCiYgYdxvwnuZc9pfGX2RiBFMDRCQTLgAq5WL2k+JGIUzWhk1KqBSKDMV5qKTNOALE7EitbOPbbNo2sqZnOLgx5Mfc44MOks7z+ijiRhB4+zq+8Nz1z0tlk3lQvD/dv1mvzkMh1wiM6m9YTRnTWV00bY/uu7n03q97GpnQ/APTe0M/nIZ/DGXfMf+NyhG0Ti7/NauV8vnVdc9PFrRmCKAlH0IA1EIKX5g/2VHjMCpNM62VdU4a9UowMy1s42ramsGL0zp1f65HTHKIlRKitH7EGKKzJJyCjHE5Imzgkjx3v4LkVtcpuTD0B/6za4W4crYmML28LI/bkMcmbMKXey/8yevuGBw8fHUH3qrSDnUzsXkt4ft/tindBIuLLjazyK4a9w5oJLG03GzKzGO1hgqyccxhBOVbIQZrAJg/ltfU2bKOY6noeSoCmEiSkwZYAAA/wd2L6cjlMdGoAAAAABJRU5ErkJggg=="), alt: "The band packing up" }
12
+ ];
13
+ function NativeImageViewerGallery({ defaultOpen = false }) {
14
+ const [index, setIndex] = useState(defaultOpen ? 0 : null);
15
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
16
+ /* @__PURE__ */ jsx(Button, { label: "Open the photos", onPress: () => setIndex(0) }),
17
+ /* @__PURE__ */ jsx(ImageViewer, { images: PHOTOS, index, onIndexChange: setIndex, closeLabel: "Close", positionLabel: (n, total) => `${n} of ${total}` })
18
+ ] });
19
+ }
20
+ export {
21
+ NativeImageViewerGallery as default
22
+ };
@@ -0,0 +1,21 @@
1
+ import { Button, ImageViewer } from "@krizaka/ui/native";
2
+ import { useState } from "react";
3
+
4
+ // Stand-in photos (an app passes its CDN's URIs): tiny PNGs, so the example runs offline.
5
+ const png = (data: string) => `data:image/png;base64,${data}`;
6
+ const PHOTOS = [
7
+ { uri: png("iVBORw0KGgoAAAANSUhEUgAAABgAAAAQCAIAAACDRijCAAAB90lEQVR42nVU247TMBCdGU/s3CilhdXy0C28sRLfwf//BLtspV6gbZzYjoeHdFOnLNI82Nbo6Nxk/P7xB5EwwesIEzACM2iFRa4Ko0xGKFFCkNATRobpMgEhsCIhAnUZGQ6MoBVWZbb8UCwWRZlnvffnP4092t55kjhuDkMorBVQgj3Q0Qx1yXd39Xq9WK3m72rT2W7ztN/83B33x945upIChUIEA5CMEAPh0qjlovj6ZfHt8f5hvawq3Vo3n+VGwbOE8yFI3w8QF2kErJXQFUWYQDNWOX9alKvV/GG9vP/83hh2LigQb607nqS1oYsEcSRFNEjDiXNaQa6xKnhWm7rSxmRZRohYVaauTJmz0UhBEnWDNIJpaqAJFIgE79qus513noCDC67tQttJ7xkiKiBIUptIu5IS7EN7ara/9puZUYRlqZ1126ftYbN3pwZjYBROnB3NnjaIQEnfnezueZsrCbarau2sO7zsDi9b3zRKeqXSfG5Sw4QXinh/Ppw2Errjucg5+tCezu7cgPcZpvsylYa3ZWWM4p39HaRtG0aEiH3AGBljGnHiEU2lJTVjEIoxdn0IwChEwjghMk3t32YnTWMCpnjli7ebTDKanaZ2A5EqfYPI+H5lpC7b8gbE/4lMmq1oABJFoPD2G7gMptfXM16vRPAXAU4Dl1f5CK8AAAAASUVORK5CYII="), alt: "Elena on stage, backlit", caption: "Sunset session · Lisbon" },
8
+ { uri: png("iVBORw0KGgoAAAANSUhEUgAAABgAAAAQCAIAAACDRijCAAAB6klEQVR42o2T3W4TQQyF7eOZnexmq2wiaLmgrbgB2ifgjvd/AwrlCokmNEXpNtn/8XCR5q/dApIvrNGx9dnjw6PzzwSwCEQYAhGIEIRYWIQYDGEIi2wTwrNHwDCwDiPiXDRwxlirxI3nVtkzmLHVbEIOAwQYNoYBa0yauNfj5GScDOOobMPtspsvu6INSo+VdMi1l4ABA7Fikcbu9Pjo4ix7/zbLjlxe+G/T1Zeb8ud9UzRBaVtw0IX2R4MxA2ePJ8OL88mnj68uz8ajYZQX3WQUs31ofzxM77vaM/WD7HIjNooH0ckk/XCaXZ6N371JE2fKxhNkUdFsqYu66poQCD0gh0TWRFGSuCx1ozRKnHFWiHk0tFnqkjiykYduNtU34CMRiwSWynNeaV5q2SgTl63mteZVqD0rG5YAQi/IJocJkEZ5vvTXv6rJqCAgi21e+6tZ9X1ez1ehURD4BRCh3R2JbQl3hV5NK5blogrZMMorvZ43X2/b3yV1W5YeENkRQUxglB3f5F1L5WwVhgNbepqv9K7Q0nOA4CWQTRcGDBvLgDKKDrOlX7SNNeoZjXKnrPx3kINlr10iCqlV2obZE4MJIP4XyMH3rxttnsLasfhPkK1y47Ve0Ra776yfLxt7UqAvnnp9bfcnsj/xIr3biGqZngAAAABJRU5ErkJggg=="), alt: "The crowd at the front" },
9
+ { uri: png("iVBORw0KGgoAAAANSUhEUgAAABgAAAAQCAIAAACDRijCAAABrklEQVR42o1Ty3LbMAwEFiCpR5vY1iVOT+2pP9H//5lOHfklmc8ebDmexEpyIQEMZrmLBfnXn98Aq7CAFSy3sUyVmeI1BljPF6b8zSlgAeSTBgZYjQKYfW2OwpWgCiYgYdxvwnuZc9pfGX2RiBFMDRCQTLgAq5WL2k+JGIUzWhk1KqBSKDMV5qKTNOALE7EitbOPbbNo2sqZnOLgx5Mfc44MOks7z+ijiRhB4+zq+8Nz1z0tlk3lQvD/dv1mvzkMh1wiM6m9YTRnTWV00bY/uu7n03q97GpnQ/APTe0M/nIZ/DGXfMf+NyhG0Ti7/NauV8vnVdc9PFrRmCKAlH0IA1EIKX5g/2VHjMCpNM62VdU4a9UowMy1s42ramsGL0zp1f65HTHKIlRKitH7EGKKzJJyCjHE5Imzgkjx3v4LkVtcpuTD0B/6za4W4crYmML28LI/bkMcmbMKXey/8yevuGBw8fHUH3qrSDnUzsXkt4ft/tindBIuLLjazyK4a9w5oJLG03GzKzGO1hgqyccxhBOVbIQZrAJg/ltfU2bKOY6noeSoCmEiSkwZYAAA/wd2L6cjlMdGoAAAAABJRU5ErkJggg=="), alt: "The band packing up" },
10
+ ];
11
+
12
+ // Full screen: pinch or double tap to zoom, swipe between photos, swipe down to close.
13
+ export default function NativeImageViewerGallery({ defaultOpen = false }: { defaultOpen?: boolean }) {
14
+ const [index, setIndex] = useState<number | null>(defaultOpen ? 0 : null);
15
+ return (
16
+ <>
17
+ <Button label="Open the photos" onPress={() => setIndex(0)} />
18
+ <ImageViewer images={PHOTOS} index={index} onIndexChange={setIndex} closeLabel="Close" positionLabel={(n, total) => `${n} of ${total}`} />
19
+ </>
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,35 @@
1
+ "use client";
2
+
3
+ // registry/examples/kanban/moderation.tsx
4
+ import { Badge } from "@krizaka/ui/badge";
5
+ import { Kanban } from "@krizaka/ui/kanban";
6
+ import { useState } from "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ var columns = [
9
+ { id: "open", title: "To review", limit: 3 },
10
+ { id: "reviewing", title: "Reviewing" },
11
+ { id: "resolved", title: "Resolved" }
12
+ ];
13
+ function KanbanModeration() {
14
+ const [reports, setReports] = useState([
15
+ { id: "r1", video: "Backflip on the beach", reason: "Dangerous act", status: "open" },
16
+ { id: "r2", video: "Cover of the summer hit", reason: "Copyright", status: "open" },
17
+ { id: "r3", video: "Night drive", reason: "Copyright", status: "reviewing" },
18
+ { id: "r4", video: "Q&A with fans", reason: "Spam", status: "resolved" }
19
+ ]);
20
+ const move = ({ cardId, to, index }) => setReports((all) => {
21
+ const card = { ...all.find((r) => r.id === cardId), status: to };
22
+ const rest = all.filter((r) => r.id !== cardId);
23
+ const before = rest.filter((r) => r.status === to).slice(0, index);
24
+ const at = before.length ? rest.indexOf(before[before.length - 1]) + 1 : rest.findIndex((r) => r.status === to);
25
+ return [...rest.slice(0, Math.max(0, at)), card, ...rest.slice(Math.max(0, at))];
26
+ });
27
+ const render = (r) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-1.5", children: [
28
+ /* @__PURE__ */ jsx("span", { className: "font-semibold", children: r.video }),
29
+ /* @__PURE__ */ jsx(Badge, { tone: r.reason === "Copyright" ? "warning" : "neutral", children: r.reason })
30
+ ] });
31
+ return /* @__PURE__ */ jsx(Kanban, { "aria-label": "Moderation queue", columns, cards: reports, getId: (r) => r.id, getColumn: (r) => r.status, getTitle: (r) => r.video, renderCard: render, onMove: move });
32
+ }
33
+ export {
34
+ KanbanModeration as default
35
+ };