@krizaka/ui 2.2.0 → 2.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/README.md +33 -8
  2. package/dist/audio-player.d.ts +113 -0
  3. package/dist/audio-player.js +207 -0
  4. package/dist/audio-player.js.map +1 -0
  5. package/dist/{button-Cgfkg_3y.d.ts → button-BMAO7dKF.d.ts} +29 -2
  6. package/dist/button.d.ts +32 -5
  7. package/dist/button.js +62 -9
  8. package/dist/button.js.map +1 -1
  9. package/dist/chip-link.d.ts +53 -0
  10. package/dist/chip-link.js +32 -0
  11. package/dist/chip-link.js.map +1 -0
  12. package/dist/chunk-2USC2YT6.js +17 -0
  13. package/dist/chunk-2USC2YT6.js.map +1 -0
  14. package/dist/chunk-43PTCDTL.js +31 -0
  15. package/dist/chunk-43PTCDTL.js.map +1 -0
  16. package/dist/chunk-6ISW63JI.js +11 -0
  17. package/dist/chunk-6ISW63JI.js.map +1 -0
  18. package/dist/chunk-EUPTXKH7.js +95 -0
  19. package/dist/chunk-EUPTXKH7.js.map +1 -0
  20. package/dist/chunk-HAQWKORZ.js +117 -0
  21. package/dist/chunk-HAQWKORZ.js.map +1 -0
  22. package/dist/{chunk-FHYZSO2S.js → chunk-R6SDS7JM.js} +5 -3
  23. package/dist/chunk-R6SDS7JM.js.map +1 -0
  24. package/dist/chunk-RUPNPMP3.js +103 -0
  25. package/dist/chunk-RUPNPMP3.js.map +1 -0
  26. package/dist/chunk-RUPRYJ45.js +82 -0
  27. package/dist/chunk-RUPRYJ45.js.map +1 -0
  28. package/dist/chunk-VDR2EP6K.js +49 -0
  29. package/dist/chunk-VDR2EP6K.js.map +1 -0
  30. package/dist/chunk-WEVYKZIF.js +33 -0
  31. package/dist/chunk-WEVYKZIF.js.map +1 -0
  32. package/dist/chunk-XUMJA5ZI.js +283 -0
  33. package/dist/chunk-XUMJA5ZI.js.map +1 -0
  34. package/dist/chunk-YH4LMWRU.js +92 -0
  35. package/dist/chunk-YH4LMWRU.js.map +1 -0
  36. package/dist/chunk-YX6CNVJA.js +94 -0
  37. package/dist/chunk-YX6CNVJA.js.map +1 -0
  38. package/dist/chunk-ZIXB33X7.js +95 -0
  39. package/dist/chunk-ZIXB33X7.js.map +1 -0
  40. package/dist/combobox.d.ts +188 -0
  41. package/dist/combobox.js +16 -0
  42. package/dist/combobox.js.map +1 -0
  43. package/dist/command.d.ts +7 -7
  44. package/dist/command.js +3 -2
  45. package/dist/command.js.map +1 -1
  46. package/dist/confirm-button.d.ts +1 -1
  47. package/dist/confirm-button.js +2 -1
  48. package/dist/confirm-button.js.map +1 -1
  49. package/dist/data-table.d.ts +246 -0
  50. package/dist/data-table.js +290 -0
  51. package/dist/data-table.js.map +1 -0
  52. package/dist/date-picker.d.ts +288 -0
  53. package/dist/date-picker.js +364 -0
  54. package/dist/date-picker.js.map +1 -0
  55. package/dist/{dialog-GQ4Nvuyf.d.ts → dialog-D42QwYb_.d.ts} +11 -1
  56. package/dist/dialog.d.ts +1 -1
  57. package/dist/dialog.js +3 -2
  58. package/dist/dialog.js.map +1 -1
  59. package/dist/file-upload.d.ts +238 -0
  60. package/dist/file-upload.js +437 -0
  61. package/dist/file-upload.js.map +1 -0
  62. package/dist/filter-bar.d.ts +139 -0
  63. package/dist/filter-bar.js +155 -0
  64. package/dist/filter-bar.js.map +1 -0
  65. package/dist/glow-card.d.ts +20 -0
  66. package/dist/glow-card.js +30 -0
  67. package/dist/glow-card.js.map +1 -0
  68. package/dist/image-cropper.d.ts +115 -0
  69. package/dist/image-cropper.js +166 -0
  70. package/dist/image-cropper.js.map +1 -0
  71. package/dist/index.d.ts +2 -20
  72. package/dist/index.js +7 -64
  73. package/dist/index.js.map +1 -1
  74. package/dist/iso.d.ts +400 -0
  75. package/dist/iso.js +363 -0
  76. package/dist/iso.js.map +1 -0
  77. package/dist/loader.d.ts +206 -0
  78. package/dist/loader.js +138 -0
  79. package/dist/loader.js.map +1 -0
  80. package/dist/marquee.d.ts +33 -0
  81. package/dist/marquee.js +52 -0
  82. package/dist/marquee.js.map +1 -0
  83. package/dist/media-capture.d.ts +155 -0
  84. package/dist/media-capture.js +242 -0
  85. package/dist/media-capture.js.map +1 -0
  86. package/dist/meter.d.ts +146 -0
  87. package/dist/meter.js +107 -0
  88. package/dist/meter.js.map +1 -0
  89. package/dist/motion.css +394 -3
  90. package/dist/motion.d.ts +46 -0
  91. package/dist/motion.js +10 -0
  92. package/dist/motion.js.map +1 -0
  93. package/dist/native/media-capture.d.ts +49 -0
  94. package/dist/native/media-capture.js +113 -0
  95. package/dist/native/media-capture.js.map +1 -0
  96. package/dist/native/video-player.d.ts +50 -0
  97. package/dist/native/video-player.js +69 -0
  98. package/dist/native/video-player.js.map +1 -0
  99. package/dist/native.d.ts +66 -2
  100. package/dist/native.js +166 -68
  101. package/dist/native.js.map +1 -1
  102. package/dist/nav-bar.d.ts +178 -0
  103. package/dist/nav-bar.js +157 -0
  104. package/dist/nav-bar.js.map +1 -0
  105. package/dist/number-ticker.d.ts +32 -0
  106. package/dist/number-ticker.js +61 -0
  107. package/dist/number-ticker.js.map +1 -0
  108. package/dist/pagination.d.ts +141 -0
  109. package/dist/pagination.js +165 -0
  110. package/dist/pagination.js.map +1 -0
  111. package/dist/progress.d.ts +56 -1
  112. package/dist/progress.js +72 -25
  113. package/dist/progress.js.map +1 -1
  114. package/dist/search-field.d.ts +100 -0
  115. package/dist/search-field.js +167 -0
  116. package/dist/search-field.js.map +1 -0
  117. package/dist/skeleton.d.ts +18 -3
  118. package/dist/skeleton.js +9 -1
  119. package/dist/skeleton.js.map +1 -1
  120. package/dist/spinner.d.ts +21 -5
  121. package/dist/spinner.js +13 -12
  122. package/dist/spinner.js.map +1 -1
  123. package/dist/stepper.d.ts +112 -0
  124. package/dist/stepper.js +67 -0
  125. package/dist/stepper.js.map +1 -0
  126. package/dist/tabs.d.ts +1 -1
  127. package/dist/tabs.js +14 -8
  128. package/dist/tabs.js.map +1 -1
  129. package/dist/tag-input.d.ts +44 -0
  130. package/dist/tag-input.js +67 -0
  131. package/dist/tag-input.js.map +1 -0
  132. package/dist/theme.d.ts +1 -1
  133. package/dist/theme.js +2 -1
  134. package/dist/theme.js.map +1 -1
  135. package/dist/toast.d.ts +39 -4
  136. package/dist/toast.js +81 -7
  137. package/dist/toast.js.map +1 -1
  138. package/dist/video-player.d.ts +204 -0
  139. package/dist/video-player.js +371 -0
  140. package/dist/video-player.js.map +1 -0
  141. package/dist/video-trimmer.d.ts +142 -0
  142. package/dist/video-trimmer.js +193 -0
  143. package/dist/video-trimmer.js.map +1 -0
  144. package/package.json +375 -7
  145. package/registry/alert.json +1 -1
  146. package/registry/audio-player.json +282 -0
  147. package/registry/avatar.json +1 -1
  148. package/registry/badge.json +1 -1
  149. package/registry/button.json +232 -26
  150. package/registry/card.json +1 -1
  151. package/registry/checkbox.json +1 -1
  152. package/registry/chip-link.json +158 -0
  153. package/registry/chip.json +1 -1
  154. package/registry/combobox.json +475 -0
  155. package/registry/command.json +1 -1
  156. package/registry/confirm-button.json +91 -7
  157. package/registry/countdown.json +1 -1
  158. package/registry/data-table.json +500 -0
  159. package/registry/date-picker.json +978 -0
  160. package/registry/dialog.json +15 -7
  161. package/registry/dropdown-menu.json +1 -1
  162. package/registry/empty-state.json +1 -1
  163. package/registry/examples/audio-player/podcast.js +22 -0
  164. package/registry/examples/audio-player/podcast.tsx +19 -0
  165. package/registry/examples/audio-player/voice-note.d.ts +4 -0
  166. package/registry/examples/audio-player/voice-note.js +12 -0
  167. package/registry/examples/audio-player/voice-note.tsx +12 -0
  168. package/registry/examples/button/error.d.ts +4 -0
  169. package/registry/examples/button/error.js +11 -0
  170. package/registry/examples/button/error.tsx +10 -0
  171. package/registry/examples/button/loading.tsx +1 -1
  172. package/registry/examples/button/save-flow.d.ts +4 -0
  173. package/registry/examples/button/save-flow.js +28 -0
  174. package/registry/examples/button/save-flow.tsx +24 -0
  175. package/registry/examples/button/signature.d.ts +4 -0
  176. package/registry/examples/button/signature.js +17 -0
  177. package/registry/examples/button/signature.tsx +19 -0
  178. package/registry/examples/button/upload-progress.d.ts +4 -0
  179. package/registry/examples/button/upload-progress.js +23 -0
  180. package/registry/examples/button/upload-progress.tsx +26 -0
  181. package/registry/examples/chip-link/filters.d.ts +4 -0
  182. package/registry/examples/chip-link/filters.js +12 -0
  183. package/registry/examples/chip-link/filters.tsx +17 -0
  184. package/registry/examples/combobox/async.d.ts +4 -0
  185. package/registry/examples/combobox/async.js +23 -0
  186. package/registry/examples/combobox/async.tsx +22 -0
  187. package/registry/examples/combobox/creatable.d.ts +4 -0
  188. package/registry/examples/combobox/creatable.js +32 -0
  189. package/registry/examples/combobox/creatable.tsx +28 -0
  190. package/registry/examples/combobox/invalid.d.ts +4 -0
  191. package/registry/examples/combobox/invalid.js +23 -0
  192. package/registry/examples/combobox/invalid.tsx +17 -0
  193. package/registry/examples/combobox/multiple.d.ts +4 -0
  194. package/registry/examples/combobox/multiple.js +29 -0
  195. package/registry/examples/combobox/multiple.tsx +26 -0
  196. package/registry/examples/data-table/cards.d.ts +4 -0
  197. package/registry/examples/data-table/cards.js +21 -0
  198. package/registry/examples/data-table/cards.tsx +20 -0
  199. package/registry/examples/data-table/empty.d.ts +4 -0
  200. package/registry/examples/data-table/empty.js +26 -0
  201. package/registry/examples/data-table/empty.tsx +21 -0
  202. package/registry/examples/data-table/error.d.ts +4 -0
  203. package/registry/examples/data-table/error.js +28 -0
  204. package/registry/examples/data-table/error.tsx +29 -0
  205. package/registry/examples/data-table/jobs.d.ts +4 -0
  206. package/registry/examples/data-table/jobs.js +37 -0
  207. package/registry/examples/data-table/jobs.tsx +36 -0
  208. package/registry/examples/data-table/loading.d.ts +4 -0
  209. package/registry/examples/data-table/loading.js +16 -0
  210. package/registry/examples/data-table/loading.tsx +12 -0
  211. package/registry/examples/data-table/virtualized.d.ts +4 -0
  212. package/registry/examples/data-table/virtualized.js +21 -0
  213. package/registry/examples/data-table/virtualized.tsx +20 -0
  214. package/registry/examples/date-picker/calendar.d.ts +4 -0
  215. package/registry/examples/date-picker/calendar.js +14 -0
  216. package/registry/examples/date-picker/calendar.tsx +16 -0
  217. package/registry/examples/date-picker/french.d.ts +4 -0
  218. package/registry/examples/date-picker/french.js +20 -0
  219. package/registry/examples/date-picker/french.tsx +14 -0
  220. package/registry/examples/date-picker/open.d.ts +4 -0
  221. package/registry/examples/date-picker/open.js +11 -0
  222. package/registry/examples/date-picker/open.tsx +8 -0
  223. package/registry/examples/date-picker/range.d.ts +4 -0
  224. package/registry/examples/date-picker/range.js +29 -0
  225. package/registry/examples/date-picker/range.tsx +25 -0
  226. package/registry/examples/date-picker/schedule.d.ts +4 -0
  227. package/registry/examples/date-picker/schedule.js +26 -0
  228. package/registry/examples/date-picker/schedule.tsx +22 -0
  229. package/registry/examples/dialog/left.d.ts +4 -0
  230. package/registry/examples/dialog/left.js +22 -0
  231. package/registry/examples/dialog/left.tsx +32 -0
  232. package/registry/examples/file-upload/images.d.ts +4 -0
  233. package/registry/examples/file-upload/images.js +32 -0
  234. package/registry/examples/file-upload/images.tsx +25 -0
  235. package/registry/examples/file-upload/states.d.ts +4 -0
  236. package/registry/examples/file-upload/states.js +28 -0
  237. package/registry/examples/file-upload/states.tsx +23 -0
  238. package/registry/examples/file-upload/tus.d.ts +4 -0
  239. package/registry/examples/file-upload/tus.js +23 -0
  240. package/registry/examples/file-upload/tus.tsx +26 -0
  241. package/registry/examples/file-upload/video.d.ts +4 -0
  242. package/registry/examples/file-upload/video.js +39 -0
  243. package/registry/examples/file-upload/video.tsx +36 -0
  244. package/registry/examples/filter-bar/address.d.ts +4 -0
  245. package/registry/examples/filter-bar/address.js +29 -0
  246. package/registry/examples/filter-bar/address.tsx +27 -0
  247. package/registry/examples/filter-bar/jobs.d.ts +4 -0
  248. package/registry/examples/filter-bar/jobs.js +37 -0
  249. package/registry/examples/filter-bar/jobs.tsx +37 -0
  250. package/registry/examples/filter-bar/menu.d.ts +4 -0
  251. package/registry/examples/filter-bar/menu.js +27 -0
  252. package/registry/examples/filter-bar/menu.tsx +23 -0
  253. package/registry/examples/glow-card/link-card.d.ts +4 -0
  254. package/registry/examples/glow-card/link-card.js +14 -0
  255. package/registry/examples/glow-card/link-card.tsx +13 -0
  256. package/registry/examples/glow-card/plans.d.ts +4 -0
  257. package/registry/examples/glow-card/plans.js +25 -0
  258. package/registry/examples/glow-card/plans.tsx +26 -0
  259. package/registry/examples/glow-card/spotlight.d.ts +4 -0
  260. package/registry/examples/glow-card/spotlight.js +14 -0
  261. package/registry/examples/glow-card/spotlight.tsx +15 -0
  262. package/registry/examples/image-cropper/avatar.d.ts +4 -0
  263. package/registry/examples/image-cropper/avatar.js +13 -0
  264. package/registry/examples/image-cropper/avatar.tsx +14 -0
  265. package/registry/examples/image-cropper/banner.d.ts +4 -0
  266. package/registry/examples/image-cropper/banner.js +11 -0
  267. package/registry/examples/image-cropper/banner.tsx +10 -0
  268. package/registry/examples/image-cropper/vertical-video.d.ts +4 -0
  269. package/registry/examples/image-cropper/vertical-video.js +12 -0
  270. package/registry/examples/image-cropper/vertical-video.tsx +16 -0
  271. package/registry/examples/iso/compose.d.ts +4 -0
  272. package/registry/examples/iso/compose.js +22 -0
  273. package/registry/examples/iso/compose.tsx +19 -0
  274. package/registry/examples/iso/orazaka-hero.d.ts +4 -0
  275. package/registry/examples/iso/orazaka-hero.js +26 -0
  276. package/registry/examples/iso/orazaka-hero.tsx +21 -0
  277. package/registry/examples/iso/orochia-hero.d.ts +4 -0
  278. package/registry/examples/iso/orochia-hero.js +29 -0
  279. package/registry/examples/iso/orochia-hero.tsx +23 -0
  280. package/registry/examples/iso/still.d.ts +4 -0
  281. package/registry/examples/iso/still.js +21 -0
  282. package/registry/examples/iso/still.tsx +15 -0
  283. package/registry/examples/loader/endings.d.ts +4 -0
  284. package/registry/examples/loader/endings.js +14 -0
  285. package/registry/examples/loader/endings.tsx +11 -0
  286. package/registry/examples/loader/fetch-flow.d.ts +4 -0
  287. package/registry/examples/loader/fetch-flow.js +24 -0
  288. package/registry/examples/loader/fetch-flow.tsx +24 -0
  289. package/registry/examples/loader/minimal.d.ts +4 -0
  290. package/registry/examples/loader/minimal.js +11 -0
  291. package/registry/examples/loader/minimal.tsx +6 -0
  292. package/registry/examples/loader/overlay.d.ts +4 -0
  293. package/registry/examples/loader/overlay.js +16 -0
  294. package/registry/examples/loader/overlay.tsx +13 -0
  295. package/registry/examples/loader/region-handover.d.ts +4 -0
  296. package/registry/examples/loader/region-handover.js +42 -0
  297. package/registry/examples/loader/region-handover.tsx +29 -0
  298. package/registry/examples/loader/upload-eta.d.ts +4 -0
  299. package/registry/examples/loader/upload-eta.js +11 -0
  300. package/registry/examples/loader/upload-eta.tsx +10 -0
  301. package/registry/examples/marquee/cards.d.ts +4 -0
  302. package/registry/examples/marquee/cards.js +23 -0
  303. package/registry/examples/marquee/cards.tsx +21 -0
  304. package/registry/examples/marquee/logos.d.ts +4 -0
  305. package/registry/examples/marquee/logos.js +12 -0
  306. package/registry/examples/marquee/logos.tsx +17 -0
  307. package/registry/examples/media-capture/clip.d.ts +4 -0
  308. package/registry/examples/media-capture/clip.js +20 -0
  309. package/registry/examples/media-capture/clip.tsx +18 -0
  310. package/registry/examples/media-capture/native/photo.d.ts +4 -0
  311. package/registry/examples/media-capture/native/photo.dark.png +0 -0
  312. package/registry/examples/media-capture/native/photo.js +27 -0
  313. package/registry/examples/media-capture/native/photo.light.png +0 -0
  314. package/registry/examples/media-capture/native/photo.tsx +20 -0
  315. package/registry/examples/media-capture/profile-photo.d.ts +4 -0
  316. package/registry/examples/media-capture/profile-photo.js +24 -0
  317. package/registry/examples/media-capture/profile-photo.tsx +20 -0
  318. package/registry/examples/meter/balance.d.ts +4 -0
  319. package/registry/examples/meter/balance.js +14 -0
  320. package/registry/examples/meter/balance.tsx +15 -0
  321. package/registry/examples/meter/quota.d.ts +4 -0
  322. package/registry/examples/meter/quota.js +15 -0
  323. package/registry/examples/meter/quota.tsx +12 -0
  324. package/registry/examples/meter/split.d.ts +4 -0
  325. package/registry/examples/meter/split.js +18 -0
  326. package/registry/examples/meter/split.tsx +18 -0
  327. package/registry/examples/nav-bar/app-bar.d.ts +4 -0
  328. package/registry/examples/nav-bar/app-bar.js +22 -0
  329. package/registry/examples/nav-bar/app-bar.tsx +21 -0
  330. package/registry/examples/nav-bar/menu-open.d.ts +4 -0
  331. package/registry/examples/nav-bar/menu-open.js +26 -0
  332. package/registry/examples/nav-bar/menu-open.tsx +26 -0
  333. package/registry/examples/nav-bar/site.d.ts +4 -0
  334. package/registry/examples/nav-bar/site.js +31 -0
  335. package/registry/examples/nav-bar/site.tsx +36 -0
  336. package/registry/examples/number-ticker/gradient.d.ts +4 -0
  337. package/registry/examples/number-ticker/gradient.js +11 -0
  338. package/registry/examples/number-ticker/gradient.tsx +10 -0
  339. package/registry/examples/number-ticker/live-total.d.ts +4 -0
  340. package/registry/examples/number-ticker/live-total.js +17 -0
  341. package/registry/examples/number-ticker/live-total.tsx +21 -0
  342. package/registry/examples/number-ticker/stats.d.ts +4 -0
  343. package/registry/examples/number-ticker/stats.js +19 -0
  344. package/registry/examples/number-ticker/stats.tsx +23 -0
  345. package/registry/examples/pagination/cursor.d.ts +4 -0
  346. package/registry/examples/pagination/cursor.js +24 -0
  347. package/registry/examples/pagination/cursor.tsx +20 -0
  348. package/registry/examples/pagination/links.d.ts +4 -0
  349. package/registry/examples/pagination/links.js +11 -0
  350. package/registry/examples/pagination/links.tsx +6 -0
  351. package/registry/examples/pagination/native/cursor.d.ts +4 -0
  352. package/registry/examples/pagination/native/cursor.dark.png +0 -0
  353. package/registry/examples/pagination/native/cursor.js +19 -0
  354. package/registry/examples/pagination/native/cursor.light.png +0 -0
  355. package/registry/examples/pagination/native/cursor.tsx +13 -0
  356. package/registry/examples/pagination/native/pages.d.ts +4 -0
  357. package/registry/examples/pagination/native/pages.dark.png +0 -0
  358. package/registry/examples/pagination/native/pages.js +21 -0
  359. package/registry/examples/pagination/native/pages.light.png +0 -0
  360. package/registry/examples/pagination/native/pages.tsx +14 -0
  361. package/registry/examples/pagination/results.d.ts +4 -0
  362. package/registry/examples/pagination/results.js +23 -0
  363. package/registry/examples/pagination/results.tsx +19 -0
  364. package/registry/examples/pagination/table-footer.d.ts +4 -0
  365. package/registry/examples/pagination/table-footer.js +31 -0
  366. package/registry/examples/pagination/table-footer.tsx +27 -0
  367. package/registry/examples/progress/buffer.d.ts +4 -0
  368. package/registry/examples/progress/buffer.js +11 -0
  369. package/registry/examples/progress/buffer.tsx +10 -0
  370. package/registry/examples/progress/statuses.d.ts +4 -0
  371. package/registry/examples/progress/statuses.js +14 -0
  372. package/registry/examples/progress/statuses.tsx +11 -0
  373. package/registry/examples/progress/steps.d.ts +4 -0
  374. package/registry/examples/progress/steps.js +14 -0
  375. package/registry/examples/progress/steps.tsx +13 -0
  376. package/registry/examples/progress/upload.d.ts +4 -0
  377. package/registry/examples/progress/upload.js +11 -0
  378. package/registry/examples/progress/upload.tsx +10 -0
  379. package/registry/examples/search-field/global.d.ts +4 -0
  380. package/registry/examples/search-field/global.js +19 -0
  381. package/registry/examples/search-field/global.tsx +15 -0
  382. package/registry/examples/search-field/native/default.d.ts +4 -0
  383. package/registry/examples/search-field/native/default.dark.png +0 -0
  384. package/registry/examples/search-field/native/default.js +13 -0
  385. package/registry/examples/search-field/native/default.light.png +0 -0
  386. package/registry/examples/search-field/native/default.tsx +7 -0
  387. package/registry/examples/search-field/suggestions.d.ts +4 -0
  388. package/registry/examples/search-field/suggestions.js +30 -0
  389. package/registry/examples/search-field/suggestions.tsx +27 -0
  390. package/registry/examples/search-field/toolbar.d.ts +4 -0
  391. package/registry/examples/search-field/toolbar.js +17 -0
  392. package/registry/examples/search-field/toolbar.tsx +21 -0
  393. package/registry/examples/skeleton/paragraph.d.ts +4 -0
  394. package/registry/examples/skeleton/paragraph.js +14 -0
  395. package/registry/examples/skeleton/paragraph.tsx +12 -0
  396. package/registry/examples/skeleton/shape-of-content.d.ts +4 -0
  397. package/registry/examples/skeleton/shape-of-content.js +23 -0
  398. package/registry/examples/skeleton/shape-of-content.tsx +26 -0
  399. package/registry/examples/spinner/default.js +5 -2
  400. package/registry/examples/spinner/default.tsx +7 -1
  401. package/registry/examples/spinner/sizes.js +2 -1
  402. package/registry/examples/spinner/sizes.tsx +2 -0
  403. package/registry/examples/spinner/value.d.ts +4 -0
  404. package/registry/examples/spinner/value.js +11 -0
  405. package/registry/examples/spinner/value.tsx +12 -0
  406. package/registry/examples/stepper/checkout.d.ts +4 -0
  407. package/registry/examples/stepper/checkout.js +22 -0
  408. package/registry/examples/stepper/checkout.tsx +17 -0
  409. package/registry/examples/stepper/failed.d.ts +4 -0
  410. package/registry/examples/stepper/failed.js +26 -0
  411. package/registry/examples/stepper/failed.tsx +21 -0
  412. package/registry/examples/stepper/job.d.ts +4 -0
  413. package/registry/examples/stepper/job.js +32 -0
  414. package/registry/examples/stepper/job.tsx +28 -0
  415. package/registry/examples/tag-input/recipients.d.ts +4 -0
  416. package/registry/examples/tag-input/recipients.js +23 -0
  417. package/registry/examples/tag-input/recipients.tsx +20 -0
  418. package/registry/examples/tag-input/video-tags.d.ts +4 -0
  419. package/registry/examples/tag-input/video-tags.js +26 -0
  420. package/registry/examples/tag-input/video-tags.tsx +22 -0
  421. package/registry/examples/toast/grouped.d.ts +4 -0
  422. package/registry/examples/toast/grouped.js +21 -0
  423. package/registry/examples/toast/grouped.tsx +23 -0
  424. package/registry/examples/toast/undo.d.ts +4 -0
  425. package/registry/examples/toast/undo.js +29 -0
  426. package/registry/examples/toast/undo.tsx +30 -0
  427. package/registry/examples/toast/upload-progress.d.ts +4 -0
  428. package/registry/examples/toast/upload-progress.js +29 -0
  429. package/registry/examples/toast/upload-progress.tsx +31 -0
  430. package/registry/examples/video-player/default.d.ts +4 -0
  431. package/registry/examples/video-player/default.js +12 -0
  432. package/registry/examples/video-player/default.tsx +8 -0
  433. package/registry/examples/video-player/gated.d.ts +4 -0
  434. package/registry/examples/video-player/gated.js +26 -0
  435. package/registry/examples/video-player/gated.tsx +23 -0
  436. package/registry/examples/video-player/native/default.d.ts +4 -0
  437. package/registry/examples/video-player/native/default.dark.png +0 -0
  438. package/registry/examples/video-player/native/default.js +18 -0
  439. package/registry/examples/video-player/native/default.light.png +0 -0
  440. package/registry/examples/video-player/native/default.tsx +12 -0
  441. package/registry/examples/video-player/signed-source.d.ts +4 -0
  442. package/registry/examples/video-player/signed-source.js +16 -0
  443. package/registry/examples/video-player/signed-source.tsx +15 -0
  444. package/registry/examples/video-player/vertical.d.ts +4 -0
  445. package/registry/examples/video-player/vertical.js +12 -0
  446. package/registry/examples/video-player/vertical.tsx +12 -0
  447. package/registry/examples/video-trimmer/custom.d.ts +4 -0
  448. package/registry/examples/video-trimmer/custom.js +24 -0
  449. package/registry/examples/video-trimmer/custom.tsx +26 -0
  450. package/registry/examples/video-trimmer/filmstrip.d.ts +4 -0
  451. package/registry/examples/video-trimmer/filmstrip.js +15 -0
  452. package/registry/examples/video-trimmer/filmstrip.tsx +13 -0
  453. package/registry/examples/video-trimmer/playhead.d.ts +4 -0
  454. package/registry/examples/video-trimmer/playhead.js +15 -0
  455. package/registry/examples/video-trimmer/playhead.tsx +13 -0
  456. package/registry/field.json +1 -1
  457. package/registry/file-upload.json +471 -0
  458. package/registry/filter-bar.json +347 -0
  459. package/registry/glow-card.json +162 -0
  460. package/registry/image-cropper.json +313 -0
  461. package/registry/index.json +445 -20
  462. package/registry/iso.json +1355 -0
  463. package/registry/kbd.json +1 -1
  464. package/registry/loader.json +399 -0
  465. package/registry/marquee.json +225 -0
  466. package/registry/mascots.json +3 -3
  467. package/registry/media-capture.json +347 -0
  468. package/registry/meter.json +324 -0
  469. package/registry/nav-bar.json +480 -0
  470. package/registry/number-ticker.json +219 -0
  471. package/registry/page-header.json +1 -1
  472. package/registry/pagination.json +475 -0
  473. package/registry/popover.json +1 -1
  474. package/registry/progress.json +114 -9
  475. package/registry/radio-group.json +1 -1
  476. package/registry/search-field.json +436 -0
  477. package/registry/section-backdrop.json +1 -1
  478. package/registry/separator.json +1 -1
  479. package/registry/skeleton.json +69 -13
  480. package/registry/slider.json +1 -1
  481. package/registry/slot.json +1 -1
  482. package/registry/spinner.json +91 -27
  483. package/registry/stat.json +1 -1
  484. package/registry/stepper.json +174 -0
  485. package/registry/switch.json +1 -1
  486. package/registry/tabs.json +11 -7
  487. package/registry/tag-input.json +363 -0
  488. package/registry/theme.json +3 -3
  489. package/registry/toast.json +41 -13
  490. package/registry/tooltip.json +1 -1
  491. package/registry/video-player.json +598 -0
  492. package/registry/video-trimmer.json +385 -0
  493. package/dist/chunk-FHYZSO2S.js.map +0 -1
  494. package/dist/chunk-PESA2R4U.js +0 -51
  495. package/dist/chunk-PESA2R4U.js.map +0 -1
  496. package/registry/examples/spinner/muted.js +0 -11
  497. package/registry/examples/spinner/muted.tsx +0 -6
  498. /package/registry/examples/{spinner/muted.d.ts → audio-player/podcast.d.ts} +0 -0
@@ -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,13 @@
1
+ "use client";
2
+
3
+ // registry/examples/search-field/native/default.tsx
4
+ import { SearchField } from "@krizaka/ui/native";
5
+ import * as React from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ function NativeSearchFieldDefault() {
8
+ const [query, setQuery] = React.useState("sunset");
9
+ return /* @__PURE__ */ jsx(SearchField, { label: "Search videos", placeholder: "Search videos", value: query, onValueChange: setQuery, clearLabel: "Clear search" });
10
+ }
11
+ export {
12
+ NativeSearchFieldDefault as default
13
+ };
@@ -0,0 +1,7 @@
1
+ import { SearchField } from "@krizaka/ui/native";
2
+ import * as React from "react";
3
+
4
+ export default function NativeSearchFieldDefault() {
5
+ const [query, setQuery] = React.useState("sunset");
6
+ return <SearchField label="Search videos" placeholder="Search videos" value={query} onValueChange={setQuery} clearLabel="Clear search" />;
7
+ }
@@ -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,30 @@
1
+ "use client";
2
+
3
+ // registry/examples/search-field/suggestions.tsx
4
+ import { SearchField } from "@krizaka/ui/search-field";
5
+ import * as React from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ var RECENT = [
8
+ { value: "sunset", label: "sunset timelapse", meta: "Tag" },
9
+ { value: "eric", label: "Eric Tremblay", meta: "Creator" },
10
+ { value: "studio", label: "studio lighting", meta: "2 days ago" }
11
+ ];
12
+ function SearchFieldSuggestions() {
13
+ const [query, setQuery] = React.useState("");
14
+ const shown = RECENT.filter((s) => s.label.includes(query.toLowerCase()));
15
+ return /* @__PURE__ */ jsx(
16
+ SearchField,
17
+ {
18
+ label: "Search videos",
19
+ placeholder: "Search videos",
20
+ value: query,
21
+ onValueChange: setQuery,
22
+ suggestions: shown,
23
+ suggestionsLabel: "Recent searches",
24
+ onSuggestionSelect: (s) => setQuery(s.label)
25
+ }
26
+ );
27
+ }
28
+ export {
29
+ SearchFieldSuggestions as default
30
+ };
@@ -0,0 +1,27 @@
1
+ "use client";
2
+
3
+ import { SearchField } from "@krizaka/ui/search-field";
4
+ import * as React from "react";
5
+
6
+ const RECENT = [
7
+ { value: "sunset", label: "sunset timelapse", meta: "Tag" },
8
+ { value: "eric", label: "Eric Tremblay", meta: "Creator" },
9
+ { value: "studio", label: "studio lighting", meta: "2 days ago" },
10
+ ];
11
+
12
+ // Recent searches under the field: the arrows walk them, Enter picks one.
13
+ export default function SearchFieldSuggestions() {
14
+ const [query, setQuery] = React.useState("");
15
+ const shown = RECENT.filter((s) => s.label.includes(query.toLowerCase()));
16
+ return (
17
+ <SearchField
18
+ label="Search videos"
19
+ placeholder="Search videos"
20
+ value={query}
21
+ onValueChange={setQuery}
22
+ suggestions={shown}
23
+ suggestionsLabel="Recent searches"
24
+ onSuggestionSelect={(s) => setQuery(s.label)}
25
+ />
26
+ );
27
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,17 @@
1
+ "use client";
2
+
3
+ // registry/examples/search-field/toolbar.tsx
4
+ import { SearchField } from "@krizaka/ui/search-field";
5
+ import * as React from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ var MODELS = ["Flux 1.1", "Whisper large", "XTTS v2", "Llama 3.3", "Qwen 2.5"];
8
+ function SearchFieldToolbar() {
9
+ const [query, setQuery] = React.useState("");
10
+ return /* @__PURE__ */ jsxs("div", { className: "flex w-72 flex-col gap-2", children: [
11
+ /* @__PURE__ */ jsx(SearchField, { label: "Filter models", placeholder: "Filter models", size: "sm", landmark: false, onSearch: setQuery, debounce: 150 }),
12
+ /* @__PURE__ */ jsx("ul", { className: "text-sm text-fg-secondary", children: MODELS.filter((m) => m.toLowerCase().includes(query.toLowerCase())).map((m) => /* @__PURE__ */ jsx("li", { children: m }, m)) })
13
+ ] });
14
+ }
15
+ export {
16
+ SearchFieldToolbar as default
17
+ };
@@ -0,0 +1,21 @@
1
+ "use client";
2
+
3
+ import { SearchField } from "@krizaka/ui/search-field";
4
+ import * as React from "react";
5
+
6
+ const MODELS = ["Flux 1.1", "Whisper large", "XTTS v2", "Llama 3.3", "Qwen 2.5"];
7
+
8
+ // A small field that filters a list as you type (debounced).
9
+ export default function SearchFieldToolbar() {
10
+ const [query, setQuery] = React.useState("");
11
+ return (
12
+ <div className="flex w-72 flex-col gap-2">
13
+ <SearchField label="Filter models" placeholder="Filter models" size="sm" landmark={false} onSearch={setQuery} debounce={150} />
14
+ <ul className="text-sm text-fg-secondary">
15
+ {MODELS.filter((m) => m.toLowerCase().includes(query.toLowerCase())).map((m) => (
16
+ <li key={m}>{m}</li>
17
+ ))}
18
+ </ul>
19
+ </div>
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,14 @@
1
+ "use client";
2
+
3
+ // registry/examples/skeleton/paragraph.tsx
4
+ import { Skeleton, SkeletonText } from "@krizaka/ui/skeleton";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ function SkeletonParagraph() {
7
+ return /* @__PURE__ */ jsxs("div", { className: "flex w-full max-w-sm flex-col gap-3", children: [
8
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-2/3" }),
9
+ /* @__PURE__ */ jsx(SkeletonText, { lines: 4 })
10
+ ] });
11
+ }
12
+ export {
13
+ SkeletonParagraph as default
14
+ };
@@ -0,0 +1,12 @@
1
+ import { Skeleton, SkeletonText } from "@krizaka/ui/skeleton";
2
+
3
+ // An article on its way: a title, then `SkeletonText` — lines that wrap, the last one shorter. One reflection crosses
4
+ // all of them together, like light across a page, rather than each one pulsing on its own.
5
+ export default function SkeletonParagraph() {
6
+ return (
7
+ <div className="flex w-full max-w-sm flex-col gap-3">
8
+ <Skeleton className="h-5 w-2/3" />
9
+ <SkeletonText lines={4} />
10
+ </div>
11
+ );
12
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,23 @@
1
+ "use client";
2
+
3
+ // registry/examples/skeleton/shape-of-content.tsx
4
+ import { SkeletonShape } from "@krizaka/ui/skeleton";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ function CreatorCard({ name, line }) {
7
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 rounded-xl border border-border-default bg-surface-1 p-4", children: [
8
+ /* @__PURE__ */ jsx("span", { "data-skeleton": true, "aria-hidden": true, className: "h-10 w-10 shrink-0 rounded-full bg-accent-soft" }),
9
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
10
+ /* @__PURE__ */ jsx("p", { className: "font-semibold text-fg", children: name }),
11
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-fg-secondary", children: line })
12
+ ] })
13
+ ] });
14
+ }
15
+ function SkeletonShapeOfContent() {
16
+ return /* @__PURE__ */ jsxs("div", { className: "flex w-full max-w-sm flex-col gap-3", children: [
17
+ /* @__PURE__ */ jsx(SkeletonShape, { children: /* @__PURE__ */ jsx(CreatorCard, { name: "Placeholder name", line: "Placeholder supporters line" }) }),
18
+ /* @__PURE__ */ jsx(CreatorCard, { name: "Eric Moreau", line: "1,204 supporters \xB7 Paris" })
19
+ ] });
20
+ }
21
+ export {
22
+ SkeletonShapeOfContent as default
23
+ };
@@ -0,0 +1,26 @@
1
+ import { SkeletonShape } from "@krizaka/ui/skeleton";
2
+
3
+ function CreatorCard({ name, line }: { name: string; line: string }) {
4
+ return (
5
+ <div className="flex items-center gap-3 rounded-xl border border-border-default bg-surface-1 p-4">
6
+ <span data-skeleton aria-hidden className="h-10 w-10 shrink-0 rounded-full bg-accent-soft" />
7
+ <div className="min-w-0">
8
+ <p className="font-semibold text-fg">{name}</p>
9
+ <p className="text-sm text-fg-secondary">{line}</p>
10
+ </div>
11
+ </div>
12
+ );
13
+ }
14
+
15
+ // The skeleton of the real card: the same component with placeholder words, its text and media turned into shapes.
16
+ // The layout is exact — nothing drawn twice, nothing jumps when the data arrives. `data-skeleton` marks any other shape.
17
+ export default function SkeletonShapeOfContent() {
18
+ return (
19
+ <div className="flex w-full max-w-sm flex-col gap-3">
20
+ <SkeletonShape>
21
+ <CreatorCard name="Placeholder name" line="Placeholder supporters line" />
22
+ </SkeletonShape>
23
+ <CreatorCard name="Eric Moreau" line="1,204 supporters · Paris" />
24
+ </div>
25
+ );
26
+ }
@@ -2,9 +2,12 @@
2
2
 
3
3
  // registry/examples/spinner/default.tsx
4
4
  import { Spinner } from "@krizaka/ui/spinner";
5
- import { jsx } from "react/jsx-runtime";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
6
  function SpinnerDefault() {
7
- return /* @__PURE__ */ jsx(Spinner, { label: "Loading" });
7
+ return /* @__PURE__ */ jsxs("p", { className: "flex items-center gap-2 text-sm text-fg-secondary", children: [
8
+ /* @__PURE__ */ jsx(Spinner, { label: "Searching", size: "sm" }),
9
+ /* @__PURE__ */ jsx("span", { "aria-hidden": true, children: "Searching your library\u2026" })
10
+ ] });
8
11
  }
9
12
  export {
10
13
  SpinnerDefault as default
@@ -1,5 +1,11 @@
1
1
  import { Spinner } from "@krizaka/ui/spinner";
2
2
 
3
+ // A short wait in place: light travels around the hexagon, the node breathes. Still and legible under reduced motion.
3
4
  export default function SpinnerDefault() {
4
- return <Spinner label="Loading" />;
5
+ return (
6
+ <p className="flex items-center gap-2 text-sm text-fg-secondary">
7
+ <Spinner label="Searching" size="sm" />
8
+ <span aria-hidden>Searching your library…</span>
9
+ </p>
10
+ );
5
11
  }
@@ -7,7 +7,8 @@ function SpinnerSizes() {
7
7
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
8
8
  /* @__PURE__ */ jsx(Spinner, { label: "Loading", size: "sm" }),
9
9
  /* @__PURE__ */ jsx(Spinner, { label: "Loading", size: "md" }),
10
- /* @__PURE__ */ jsx(Spinner, { label: "Loading", size: "lg" })
10
+ /* @__PURE__ */ jsx(Spinner, { label: "Loading", size: "lg" }),
11
+ /* @__PURE__ */ jsx(Spinner, { label: "Loading", size: "lg", className: "text-fg-secondary" })
11
12
  ] });
12
13
  }
13
14
  export {
@@ -1,11 +1,13 @@
1
1
  import { Spinner } from "@krizaka/ui/spinner";
2
2
 
3
+ // The minimal API, last: `size` sm · md · lg; the colour is `currentColor` (the accent by default, or `className`).
3
4
  export default function SpinnerSizes() {
4
5
  return (
5
6
  <div className="flex items-center gap-4">
6
7
  <Spinner label="Loading" size="sm" />
7
8
  <Spinner label="Loading" size="md" />
8
9
  <Spinner label="Loading" size="lg" />
10
+ <Spinner label="Loading" size="lg" className="text-fg-secondary" />
9
11
  </div>
10
12
  );
11
13
  }
@@ -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,11 @@
1
+ "use client";
2
+
3
+ // registry/examples/spinner/value.tsx
4
+ import { Spinner } from "@krizaka/ui/spinner";
5
+ import { jsx } from "react/jsx-runtime";
6
+ function SpinnerValue() {
7
+ return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-4", children: [0.25, 0.6, 0.9].map((value) => /* @__PURE__ */ jsx(Spinner, { label: `Uploading, ${Math.round(value * 100)} %`, value, size: "lg" }, value)) });
8
+ }
9
+ export {
10
+ SpinnerValue as default
11
+ };
@@ -0,0 +1,12 @@
1
+ import { Spinner } from "@krizaka/ui/spinner";
2
+
3
+ // `value` (0–1): the trace grows to what is done — a determinate wait in the same small footprint.
4
+ export default function SpinnerValue() {
5
+ return (
6
+ <div className="flex items-center gap-4">
7
+ {[0.25, 0.6, 0.9].map((value) => (
8
+ <Spinner key={value} label={`Uploading, ${Math.round(value * 100)} %`} value={value} size="lg" />
9
+ ))}
10
+ </div>
11
+ );
12
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,22 @@
1
+ "use client";
2
+
3
+ // registry/examples/stepper/checkout.tsx
4
+ import { Stepper } from "@krizaka/ui/stepper";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var labels = { done: "Done", current: "Current step", upcoming: "Upcoming", error: "Failed" };
7
+ function StepperCheckout() {
8
+ return /* @__PURE__ */ jsx(
9
+ Stepper,
10
+ {
11
+ "aria-label": "Checkout",
12
+ orientation: "horizontal",
13
+ labels,
14
+ current: 1,
15
+ className: "w-full max-w-xl",
16
+ steps: [{ title: "Plan" }, { title: "Payment" }, { title: "Confirmation" }]
17
+ }
18
+ );
19
+ }
20
+ export {
21
+ StepperCheckout as default
22
+ };
@@ -0,0 +1,17 @@
1
+ import { Stepper } from "@krizaka/ui/stepper";
2
+
3
+ const labels = { done: "Done", current: "Current step", upcoming: "Upcoming", error: "Failed" };
4
+
5
+ // A short journey, horizontal: the connectors fill as it advances.
6
+ export default function StepperCheckout() {
7
+ return (
8
+ <Stepper
9
+ aria-label="Checkout"
10
+ orientation="horizontal"
11
+ labels={labels}
12
+ current={1}
13
+ className="w-full max-w-xl"
14
+ steps={[{ title: "Plan" }, { title: "Payment" }, { title: "Confirmation" }]}
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,26 @@
1
+ "use client";
2
+
3
+ // registry/examples/stepper/failed.tsx
4
+ import { Button } from "@krizaka/ui/button";
5
+ import { Stepper } from "@krizaka/ui/stepper";
6
+ import { jsx } from "react/jsx-runtime";
7
+ var labels = { done: "Done", current: "In progress", upcoming: "Upcoming", error: "Failed" };
8
+ function StepperFailed() {
9
+ return /* @__PURE__ */ jsx(
10
+ Stepper,
11
+ {
12
+ "aria-label": "Payout",
13
+ labels,
14
+ current: 1,
15
+ className: "w-full max-w-sm",
16
+ steps: [
17
+ { title: "Requested", description: "\u20AC1,240.00" },
18
+ { title: "Bank transfer", description: "The bank refused the account number", status: "error", content: /* @__PURE__ */ jsx(Button, { size: "sm", variant: "outline", children: "Update the account" }) },
19
+ { title: "Received" }
20
+ ]
21
+ }
22
+ );
23
+ }
24
+ export {
25
+ StepperFailed as default
26
+ };
@@ -0,0 +1,21 @@
1
+ import { Button } from "@krizaka/ui/button";
2
+ import { Stepper } from "@krizaka/ui/stepper";
3
+
4
+ const labels = { done: "Done", current: "In progress", upcoming: "Upcoming", error: "Failed" };
5
+
6
+ // A step that failed says so (a cross, the danger colour, “Failed” in words) and offers what to do next.
7
+ export default function StepperFailed() {
8
+ return (
9
+ <Stepper
10
+ aria-label="Payout"
11
+ labels={labels}
12
+ current={1}
13
+ className="w-full max-w-sm"
14
+ steps={[
15
+ { title: "Requested", description: "€1,240.00" },
16
+ { title: "Bank transfer", description: "The bank refused the account number", status: "error", content: <Button size="sm" variant="outline">Update the account</Button> },
17
+ { title: "Received" },
18
+ ]}
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,32 @@
1
+ "use client";
2
+
3
+ // registry/examples/stepper/job.tsx
4
+ import { Progress } from "@krizaka/ui/progress";
5
+ import { Stepper } from "@krizaka/ui/stepper";
6
+ import { jsx } from "react/jsx-runtime";
7
+ var labels = { done: "Done", current: "In progress", upcoming: "Upcoming", error: "Failed" };
8
+ function StepperJob() {
9
+ return /* @__PURE__ */ jsx(
10
+ Stepper,
11
+ {
12
+ "aria-label": "Publishing \u201CNight walk\u201D",
13
+ labels,
14
+ current: 2,
15
+ className: "w-full max-w-sm",
16
+ steps: [
17
+ { title: "Uploaded", description: "1.2 GB in 48 s" },
18
+ { title: "Checked", description: "Format, rights, safety" },
19
+ {
20
+ title: "Transcoding",
21
+ description: "4K, 1080p, 720p",
22
+ value: 0.58,
23
+ content: /* @__PURE__ */ jsx(Progress, { label: "Transcoding", value: 58, eta: "About 2 min left", showLabel: true, size: "sm" })
24
+ },
25
+ { title: "Published", description: "Visible to your supporters" }
26
+ ]
27
+ }
28
+ );
29
+ }
30
+ export {
31
+ StepperJob as default
32
+ };
@@ -0,0 +1,28 @@
1
+ import { Progress } from "@krizaka/ui/progress";
2
+ import { Stepper } from "@krizaka/ui/stepper";
3
+
4
+ const labels = { done: "Done", current: "In progress", upcoming: "Upcoming", error: "Failed" };
5
+
6
+ // A video job in steps: done ones checked, the current one traced and growing to its value with its own progress and
7
+ // time left, the next ones waiting. Every state is said in words for assistive technology.
8
+ export default function StepperJob() {
9
+ return (
10
+ <Stepper
11
+ aria-label="Publishing “Night walk”"
12
+ labels={labels}
13
+ current={2}
14
+ className="w-full max-w-sm"
15
+ steps={[
16
+ { title: "Uploaded", description: "1.2 GB in 48 s" },
17
+ { title: "Checked", description: "Format, rights, safety" },
18
+ {
19
+ title: "Transcoding",
20
+ description: "4K, 1080p, 720p",
21
+ value: 0.58,
22
+ content: <Progress label="Transcoding" value={58} eta="About 2 min left" showLabel size="sm" />,
23
+ },
24
+ { title: "Published", description: "Visible to your supporters" },
25
+ ]}
26
+ />
27
+ );
28
+ }
@@ -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/tag-input/recipients.tsx
4
+ import { TagInput } from "@krizaka/ui/tag-input";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var EMAIL = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
7
+ function TagInputRecipients() {
8
+ return /* @__PURE__ */ jsx(
9
+ TagInput,
10
+ {
11
+ label: "Invite by e-mail",
12
+ placeholder: "name@example.com",
13
+ defaultValue: ["ines@krizaka.com"],
14
+ separators: [",", " "],
15
+ normalize: (value) => value.trim().toLowerCase(),
16
+ validate: (value) => EMAIL.test(value) ? null : `\u201C${value}\u201D is not an e-mail address.`,
17
+ labels: { create: (value) => `Invite ${value}` }
18
+ }
19
+ );
20
+ }
21
+ export {
22
+ TagInputRecipients as default
23
+ };
@@ -0,0 +1,20 @@
1
+ "use client";
2
+
3
+ import { TagInput } from "@krizaka/ui/tag-input";
4
+
5
+ const EMAIL = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
6
+
7
+ // Paste “a@x.com, b@y.org” and both are added; what is not an address is refused, with the reason.
8
+ export default function TagInputRecipients() {
9
+ return (
10
+ <TagInput
11
+ label="Invite by e-mail"
12
+ placeholder="name@example.com"
13
+ defaultValue={["ines@krizaka.com"]}
14
+ separators={[",", " "]}
15
+ normalize={(value) => value.trim().toLowerCase()}
16
+ validate={(value) => (EMAIL.test(value) ? null : `“${value}” is not an e-mail address.`)}
17
+ labels={{ create: (value) => `Invite ${value}` }}
18
+ />
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,26 @@
1
+ "use client";
2
+
3
+ // registry/examples/tag-input/video-tags.tsx
4
+ import { TagInput } from "@krizaka/ui/tag-input";
5
+ import * as React from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ function TagInputVideoTags() {
8
+ const [tags, setTags] = React.useState(["montreal", "sunset"]);
9
+ return /* @__PURE__ */ jsx(
10
+ TagInput,
11
+ {
12
+ label: "Tags",
13
+ placeholder: "Add a tag",
14
+ value: tags,
15
+ onValueChange: setTags,
16
+ suggestions: ["timelapse", "travel", "skyline", "golden hour", "drone"],
17
+ normalize: (tag) => tag.trim().toLowerCase().replace(/^#/, ""),
18
+ max: 10,
19
+ hint: "Up to 10 tags, separated by commas.",
20
+ labels: { create: (tag) => `Add \u201C${tag}\u201D`, remove: (tag) => `Remove ${tag}` }
21
+ }
22
+ );
23
+ }
24
+ export {
25
+ TagInputVideoTags as default
26
+ };
@@ -0,0 +1,22 @@
1
+ "use client";
2
+
3
+ import { TagInput } from "@krizaka/ui/tag-input";
4
+ import * as React from "react";
5
+
6
+ // Lower case, no “#”: “#Sunset” and “sunset” are one tag.
7
+ export default function TagInputVideoTags() {
8
+ const [tags, setTags] = React.useState(["montreal", "sunset"]);
9
+ return (
10
+ <TagInput
11
+ label="Tags"
12
+ placeholder="Add a tag"
13
+ value={tags}
14
+ onValueChange={setTags}
15
+ suggestions={["timelapse", "travel", "skyline", "golden hour", "drone"]}
16
+ normalize={(tag) => tag.trim().toLowerCase().replace(/^#/, "")}
17
+ max={10}
18
+ hint="Up to 10 tags, separated by commas."
19
+ labels={{ create: (tag) => `Add “${tag}”`, remove: (tag) => `Remove ${tag}` }}
20
+ />
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,21 @@
1
+ "use client";
2
+
3
+ // registry/examples/toast/grouped.tsx
4
+ import { Button } from "@krizaka/ui/button";
5
+ import { groupedToast, Toaster } from "@krizaka/ui/toast";
6
+ import { useEffect } from "react";
7
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
+ var toasterId = "grouped";
9
+ var message = () => groupedToast("messages", "New message from @maya", { toasterId, countLabel: (n) => `${n} new messages` });
10
+ function ToastGrouped({ defaultOpen = false }) {
11
+ useEffect(() => {
12
+ if (defaultOpen) for (let i = 0; i < 5; i++) message();
13
+ }, [defaultOpen]);
14
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
15
+ /* @__PURE__ */ jsx(Toaster, { id: toasterId, label: "Notifications", closeLabel: "Dismiss" }),
16
+ /* @__PURE__ */ jsx(Button, { variant: "outline", onClick: message, children: "Receive a message" })
17
+ ] });
18
+ }
19
+ export {
20
+ ToastGrouped as default
21
+ };