@krizaka/ui 3.22.0 → 3.23.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 (447) hide show
  1. package/README.md +4 -0
  2. package/dist/achievement.js +1 -1
  3. package/dist/action-bar.js +4 -4
  4. package/dist/app-header.d.ts +79 -0
  5. package/dist/app-header.js +32 -0
  6. package/dist/app-header.js.map +1 -0
  7. package/dist/app-shell.d.ts +20 -2
  8. package/dist/app-shell.js +34 -19
  9. package/dist/app-shell.js.map +1 -1
  10. package/dist/argument-card.d.ts +4 -1
  11. package/dist/argument-card.js +10 -7
  12. package/dist/argument-card.js.map +1 -1
  13. package/dist/audio-player.d.ts +3 -2
  14. package/dist/audio-player.js +14 -10
  15. package/dist/audio-player.js.map +1 -1
  16. package/dist/blocks.css +28 -0
  17. package/dist/button.js +2 -1
  18. package/dist/captcha.d.ts +81 -0
  19. package/dist/captcha.js +162 -0
  20. package/dist/captcha.js.map +1 -0
  21. package/dist/card-grid.d.ts +10 -1
  22. package/dist/card-grid.js +3 -2
  23. package/dist/card-grid.js.map +1 -1
  24. package/dist/card.js +3 -3
  25. package/dist/changelog-page.d.ts +57 -3
  26. package/dist/changelog-page.js +117 -1
  27. package/dist/changelog-page.js.map +1 -1
  28. package/dist/choice-grid.js +1 -1
  29. package/dist/{chunk-3IN6TOPM.js → chunk-6ZYRUOTA.js} +6 -3
  30. package/dist/chunk-6ZYRUOTA.js.map +1 -0
  31. package/dist/chunk-APNIVNIX.js +54 -0
  32. package/dist/chunk-APNIVNIX.js.map +1 -0
  33. package/dist/{chunk-FKBHWS4N.js → chunk-CEJDH6SA.js} +2 -2
  34. package/dist/{chunk-OWC2LZD2.js → chunk-CHOJUCVE.js} +6 -3
  35. package/dist/chunk-CHOJUCVE.js.map +1 -0
  36. package/dist/{chunk-3BC4XQ6C.js → chunk-DZU6RMYD.js} +6 -3
  37. package/dist/chunk-DZU6RMYD.js.map +1 -0
  38. package/dist/{chunk-R6NK6ZNY.js → chunk-F7FVPPBB.js} +4 -4
  39. package/dist/{chunk-5Z7FWCV2.js → chunk-HBZPJ3EP.js} +2 -2
  40. package/dist/{chunk-C2BRIFJG.js → chunk-HJFRHYCI.js} +2 -2
  41. package/dist/{chunk-ZNMFG62E.js → chunk-KH3JOEPY.js} +3 -2
  42. package/dist/chunk-KH3JOEPY.js.map +1 -0
  43. package/dist/{chunk-BTMFZ66D.js → chunk-KM6VAKIE.js} +2 -2
  44. package/dist/{chunk-DGQMDJXK.js → chunk-LZNZLCOE.js} +2 -2
  45. package/dist/{chunk-AQSZJJAJ.js → chunk-MQPC3P4T.js} +2 -2
  46. package/dist/{chunk-2FRWNSRO.js → chunk-NSLXEDIS.js} +3 -2
  47. package/dist/chunk-NSLXEDIS.js.map +1 -0
  48. package/dist/{chunk-4LOMIQVX.js → chunk-W675RFOA.js} +3 -2
  49. package/dist/chunk-W675RFOA.js.map +1 -0
  50. package/dist/{chunk-G3ETON2A.js → chunk-WU4VLSEA.js} +3 -2
  51. package/dist/chunk-WU4VLSEA.js.map +1 -0
  52. package/dist/{chunk-IZ7MV6HM.js → chunk-XVFQZ3ZG.js} +3 -2
  53. package/dist/chunk-XVFQZ3ZG.js.map +1 -0
  54. package/dist/cn.js +1 -1
  55. package/dist/code-block.js +2 -2
  56. package/dist/code-block.js.map +1 -1
  57. package/dist/command.js +3 -3
  58. package/dist/comparison-table.js +1 -1
  59. package/dist/confirm-button.js +2 -2
  60. package/dist/continue-prompt.js +3 -3
  61. package/dist/continue-prompt.js.map +1 -1
  62. package/dist/cta-panel.js +1 -1
  63. package/dist/data-table.js +4 -4
  64. package/dist/date-picker.js +2 -2
  65. package/dist/decision-list.js +1 -1
  66. package/dist/dialog.js +3 -2
  67. package/dist/dialog.js.map +1 -1
  68. package/dist/docs-nav.d.ts +36 -0
  69. package/dist/docs-nav.js +44 -0
  70. package/dist/docs-nav.js.map +1 -0
  71. package/dist/dropdown-menu.js +1 -1
  72. package/dist/error-page.js +1 -1
  73. package/dist/field.js +1 -1
  74. package/dist/filter-bar.js +2 -2
  75. package/dist/force-update-screen.js +2 -1
  76. package/dist/force-update-screen.js.map +1 -1
  77. package/dist/gallery-page.js +1 -1
  78. package/dist/genui.d.ts +3 -1
  79. package/dist/genui.js +33 -6
  80. package/dist/genui.js.map +1 -1
  81. package/dist/glow-card.js +1 -1
  82. package/dist/goal-gauge.js +1 -1
  83. package/dist/how-it-works-page.js +1 -1
  84. package/dist/image-cropper.js +3 -3
  85. package/dist/index.js +3 -3
  86. package/dist/landscape.js +1 -1
  87. package/dist/link-card.d.ts +9 -2
  88. package/dist/link-card.js +5 -44
  89. package/dist/link-card.js.map +1 -1
  90. package/dist/longform-page.js +1 -1
  91. package/dist/maintenance-screen.js +2 -1
  92. package/dist/maintenance-screen.js.map +1 -1
  93. package/dist/map.js +3 -3
  94. package/dist/map.js.map +1 -1
  95. package/dist/markdown.js +2 -1
  96. package/dist/markdown.js.map +1 -1
  97. package/dist/marquee.js +1 -1
  98. package/dist/mascot-quote.js +1 -1
  99. package/dist/match-dialog.js +2 -1
  100. package/dist/match-dialog.js.map +1 -1
  101. package/dist/media-grid.d.ts +26 -4
  102. package/dist/media-grid.js +144 -77
  103. package/dist/media-grid.js.map +1 -1
  104. package/dist/native/map.js +3 -3
  105. package/dist/native/map.js.map +1 -1
  106. package/dist/native.d.ts +18 -1
  107. package/dist/native.js +105 -24
  108. package/dist/native.js.map +1 -1
  109. package/dist/nav-bar.js +1 -1
  110. package/dist/page-hero.js +6 -6
  111. package/dist/page.js +2 -2
  112. package/dist/popover.js +1 -1
  113. package/dist/pricing-page.js +1 -1
  114. package/dist/product-page.js +1 -1
  115. package/dist/profile-card.js +1 -1
  116. package/dist/promise-card.js +1 -1
  117. package/dist/radio-group.js +2 -2
  118. package/dist/rail-nav.d.ts +149 -0
  119. package/dist/rail-nav.js +177 -0
  120. package/dist/rail-nav.js.map +1 -0
  121. package/dist/scroll-stage.js +1 -1
  122. package/dist/settings-layout.d.ts +75 -62
  123. package/dist/settings-layout.js +39 -6
  124. package/dist/settings-layout.js.map +1 -1
  125. package/dist/showcase.js +1 -1
  126. package/dist/site-footer.d.ts +48 -67
  127. package/dist/site-footer.js +34 -10
  128. package/dist/site-footer.js.map +1 -1
  129. package/dist/slider.js +2 -2
  130. package/dist/stage-banner.js +1 -1
  131. package/dist/step-showcase.js +1 -1
  132. package/dist/tabs.js +1 -1
  133. package/dist/tabs.js.map +1 -1
  134. package/dist/terminal-replay.js +1 -1
  135. package/dist/theme.js +2 -1
  136. package/dist/theme.js.map +1 -1
  137. package/dist/toast.js +1 -1
  138. package/dist/toc.js +1 -1
  139. package/dist/tooltip.js +1 -1
  140. package/dist/update-prompt.js +2 -1
  141. package/dist/update-prompt.js.map +1 -1
  142. package/dist/vertical-video.js +2 -2
  143. package/dist/video-player.js +3 -3
  144. package/dist/waveform.d.ts +93 -0
  145. package/dist/waveform.js +95 -0
  146. package/dist/waveform.js.map +1 -0
  147. package/package.json +81 -10
  148. package/registry/achievement.json +1 -1
  149. package/registry/action-bar.json +1 -1
  150. package/registry/activity-feed.json +1 -1
  151. package/registry/alert.json +1 -1
  152. package/registry/app-header.json +202 -0
  153. package/registry/app-shell.json +33 -9
  154. package/registry/argument-card.json +37 -5
  155. package/registry/audio-player.json +5 -3
  156. package/registry/auth-layout.json +1 -1
  157. package/registry/avatar.json +1 -1
  158. package/registry/badge.json +1 -1
  159. package/registry/button.json +3 -2
  160. package/registry/captcha.json +300 -0
  161. package/registry/card-grid.json +27 -3
  162. package/registry/card.json +1 -1
  163. package/registry/catalogue-page.json +1 -1
  164. package/registry/changelog-page.json +11 -7
  165. package/registry/chat.json +1 -1
  166. package/registry/checkbox.json +1 -1
  167. package/registry/chip-link.json +1 -1
  168. package/registry/chip.json +1 -1
  169. package/registry/choice-grid.json +1 -1
  170. package/registry/cn.json +1 -1
  171. package/registry/code-block.json +1 -1
  172. package/registry/combobox.json +1 -1
  173. package/registry/command.json +1 -1
  174. package/registry/comparison-table.json +1 -1
  175. package/registry/component-page.json +1 -1
  176. package/registry/confirm-button.json +1 -1
  177. package/registry/contact-page.json +1 -1
  178. package/registry/continue-prompt.json +1 -1
  179. package/registry/countdown.json +1 -1
  180. package/registry/cta-panel.json +1 -1
  181. package/registry/dashboard-layout.json +1 -1
  182. package/registry/data-table.json +1 -1
  183. package/registry/date-picker.json +1 -1
  184. package/registry/decision-list.json +1 -1
  185. package/registry/description-list.json +1 -1
  186. package/registry/detail-layout.json +1 -1
  187. package/registry/dialog.json +1 -1
  188. package/registry/docs-article-page.json +1 -1
  189. package/registry/docs-hub-page.json +1 -1
  190. package/registry/docs-layout.json +1 -1
  191. package/registry/docs-nav.json +177 -0
  192. package/registry/document-viewer.json +1 -1
  193. package/registry/dropdown-menu.json +1 -1
  194. package/registry/empty-state.json +1 -1
  195. package/registry/error-page.json +1 -1
  196. package/registry/examples/activity-feed/native/notifications.light.png +0 -0
  197. package/registry/examples/app-header/basic.d.ts +4 -0
  198. package/registry/examples/app-header/basic.js +23 -0
  199. package/registry/examples/app-header/basic.tsx +17 -0
  200. package/registry/examples/app-shell/desktop.d.ts +4 -0
  201. package/registry/examples/app-shell/desktop.js +41 -0
  202. package/registry/examples/app-shell/desktop.tsx +37 -0
  203. package/registry/examples/argument-card/hover-light.d.ts +4 -0
  204. package/registry/examples/argument-card/hover-light.js +17 -0
  205. package/registry/examples/argument-card/hover-light.tsx +19 -0
  206. package/registry/examples/argument-card/hover-quiet.d.ts +4 -0
  207. package/registry/examples/argument-card/hover-quiet.js +17 -0
  208. package/registry/examples/argument-card/hover-quiet.tsx +19 -0
  209. package/registry/examples/avatar/native/group.light.png +0 -0
  210. package/registry/examples/avatar/native/presence.light.png +0 -0
  211. package/registry/examples/avatar/native/sizes.light.png +0 -0
  212. package/registry/examples/badge/native/tones.light.png +0 -0
  213. package/registry/examples/button/native/ghost.light.png +0 -0
  214. package/registry/examples/captcha/disclosure.d.ts +4 -0
  215. package/registry/examples/captcha/disclosure.js +14 -0
  216. package/registry/examples/captcha/disclosure.tsx +11 -0
  217. package/registry/examples/captcha/form.d.ts +4 -0
  218. package/registry/examples/captcha/form.js +18 -0
  219. package/registry/examples/captcha/form.tsx +17 -0
  220. package/registry/examples/card/native/body.light.png +0 -0
  221. package/registry/examples/card/native/default.light.png +0 -0
  222. package/registry/examples/card/native/elevated.light.png +0 -0
  223. package/registry/examples/card/native/pressable.light.png +0 -0
  224. package/registry/examples/card-grid/hover-quiet.d.ts +4 -0
  225. package/registry/examples/card-grid/hover-quiet.js +18 -0
  226. package/registry/examples/card-grid/hover-quiet.tsx +20 -0
  227. package/registry/examples/changelog-page/releases.js +1 -1
  228. package/registry/examples/changelog-page/releases.tsx +1 -1
  229. package/registry/examples/chat/native/conversation.light.png +0 -0
  230. package/registry/examples/chat/native/inbox.light.png +0 -0
  231. package/registry/examples/chip/native/multiple.light.png +0 -0
  232. package/registry/examples/chip/native/removable.light.png +0 -0
  233. package/registry/examples/chip/native/single.light.png +0 -0
  234. package/registry/examples/chip/native/toggle.light.png +0 -0
  235. package/registry/examples/combobox/native/multiple.light.png +0 -0
  236. package/registry/examples/combobox/native/search.light.png +0 -0
  237. package/registry/examples/countdown/native/days.light.png +0 -0
  238. package/registry/examples/countdown/native/hours.light.png +0 -0
  239. package/registry/examples/countdown/native/sizes.light.png +0 -0
  240. package/registry/examples/countdown/native/urgent.light.png +0 -0
  241. package/registry/examples/countdown/native/with-label.light.png +0 -0
  242. package/registry/examples/date-picker/native/birth-date-wheel.light.png +0 -0
  243. package/registry/examples/date-picker/native/birth-date.light.png +0 -0
  244. package/registry/examples/date-picker/native/calendar.dark.png +0 -0
  245. package/registry/examples/date-picker/native/calendar.light.png +0 -0
  246. package/registry/examples/date-picker/native/day-strip.dark.png +0 -0
  247. package/registry/examples/date-picker/native/day-strip.light.png +0 -0
  248. package/registry/examples/date-picker/native/time-slots.dark.png +0 -0
  249. package/registry/examples/date-picker/native/time-slots.light.png +0 -0
  250. package/registry/examples/date-picker/native/time-wheel.light.png +0 -0
  251. package/registry/examples/description-list/native/job-details.light.png +0 -0
  252. package/registry/examples/docs-nav/groups.d.ts +4 -0
  253. package/registry/examples/docs-nav/groups.js +21 -0
  254. package/registry/examples/docs-nav/groups.tsx +15 -0
  255. package/registry/examples/empty-state/native/default.light.png +0 -0
  256. package/registry/examples/field/native/default.light.png +0 -0
  257. package/registry/examples/field/native/select.light.png +0 -0
  258. package/registry/examples/force-update-screen/native/default.light.png +0 -0
  259. package/registry/examples/form/native/amount.light.png +0 -0
  260. package/registry/examples/form/native/audience.light.png +0 -0
  261. package/registry/examples/form/native/profile.light.png +0 -0
  262. package/registry/examples/form/native/settings.light.png +0 -0
  263. package/registry/examples/form/native/sign-up.light.png +0 -0
  264. package/registry/examples/form/native/upload.dark.png +0 -0
  265. package/registry/examples/form/native/upload.light.png +0 -0
  266. package/registry/examples/goal-gauge/native/default.light.png +0 -0
  267. package/registry/examples/header/native/large-title.light.png +0 -0
  268. package/registry/examples/link-card/hover-light.d.ts +4 -0
  269. package/registry/examples/link-card/hover-light.js +18 -0
  270. package/registry/examples/link-card/hover-light.tsx +20 -0
  271. package/registry/examples/link-card/hover-quiet.d.ts +4 -0
  272. package/registry/examples/link-card/hover-quiet.js +18 -0
  273. package/registry/examples/link-card/hover-quiet.tsx +20 -0
  274. package/registry/examples/loader/native/job-wait.light.png +0 -0
  275. package/registry/examples/maintenance-screen/native/default.light.png +0 -0
  276. package/registry/examples/map/native/places.light.png +0 -0
  277. package/registry/examples/markdown/native/basic.light.png +0 -0
  278. package/registry/examples/mascot-state/native/default.light.png +0 -0
  279. package/registry/examples/media-picker/native/story.light.png +0 -0
  280. package/registry/examples/meta-row/native/video.light.png +0 -0
  281. package/registry/examples/meter/native/credits.light.png +0 -0
  282. package/registry/examples/meter/native/split-ring.light.png +0 -0
  283. package/registry/examples/number-ticker/native/balance.light.png +0 -0
  284. package/registry/examples/onboarding/native/first-launch.light.png +0 -0
  285. package/registry/examples/otp-input/native/verify.light.png +0 -0
  286. package/registry/examples/pagination/native/cursor.light.png +0 -0
  287. package/registry/examples/pagination/native/pages.light.png +0 -0
  288. package/registry/examples/permission-prompt/native/blocked.light.png +0 -0
  289. package/registry/examples/permission-prompt/native/camera.light.png +0 -0
  290. package/registry/examples/profile-card/native/default.light.png +0 -0
  291. package/registry/examples/radio-group/native/buttons.light.png +0 -0
  292. package/registry/examples/radio-group/native/cards.light.png +0 -0
  293. package/registry/examples/radio-group/native/list.light.png +0 -0
  294. package/registry/examples/radio-group/native/segmented.light.png +0 -0
  295. package/registry/examples/rail-nav/expandable.d.ts +4 -0
  296. package/registry/examples/rail-nav/expandable.js +34 -0
  297. package/registry/examples/rail-nav/expandable.tsx +28 -0
  298. package/registry/examples/rail-nav/studio.d.ts +4 -0
  299. package/registry/examples/rail-nav/studio.js +43 -0
  300. package/registry/examples/rail-nav/studio.tsx +38 -0
  301. package/registry/examples/screen/native/app-shell.light.png +0 -0
  302. package/registry/examples/screen/native/auth.light.png +0 -0
  303. package/registry/examples/screen/native/map.light.png +0 -0
  304. package/registry/examples/screen/native/notifications.light.png +0 -0
  305. package/registry/examples/screen/native/profile.light.png +0 -0
  306. package/registry/examples/segmented/native/default.light.png +0 -0
  307. package/registry/examples/segmented/native/small.light.png +0 -0
  308. package/registry/examples/settings-layout/flat.d.ts +4 -0
  309. package/registry/examples/settings-layout/flat.js +26 -0
  310. package/registry/examples/settings-layout/flat.tsx +30 -0
  311. package/registry/examples/showcase/native/slides.light.png +0 -0
  312. package/registry/examples/site-footer/app.d.ts +4 -0
  313. package/registry/examples/site-footer/app.js +25 -0
  314. package/registry/examples/site-footer/app.tsx +22 -0
  315. package/registry/examples/site-footer/docs.d.ts +4 -0
  316. package/registry/examples/site-footer/docs.js +31 -0
  317. package/registry/examples/site-footer/docs.tsx +24 -0
  318. package/registry/examples/slider/native/default.light.png +0 -0
  319. package/registry/examples/slider/native/stepped.light.png +0 -0
  320. package/registry/examples/step-progress/native/sign-up.light.png +0 -0
  321. package/registry/examples/stepper/native/run.light.png +0 -0
  322. package/registry/examples/swipeable-row/native/conversation.light.png +0 -0
  323. package/registry/examples/switch/native/settings.light.png +0 -0
  324. package/registry/examples/tab-bar/native/main-sections.light.png +0 -0
  325. package/registry/examples/tabs/native/sections.light.png +0 -0
  326. package/registry/examples/tabs/native/segmented.light.png +0 -0
  327. package/registry/examples/tag-selector/native/interests.light.png +0 -0
  328. package/registry/examples/toast/native/tones.light.png +0 -0
  329. package/registry/examples/txt/native/tones.dark.png +0 -0
  330. package/registry/examples/txt/native/tones.light.png +0 -0
  331. package/registry/examples/update-prompt/native/default.light.png +0 -0
  332. package/registry/examples/waveform/card.d.ts +4 -0
  333. package/registry/examples/waveform/card.js +18 -0
  334. package/registry/examples/waveform/card.tsx +16 -0
  335. package/registry/examples/waveform/native/card.d.ts +4 -0
  336. package/registry/examples/waveform/native/card.dark.png +0 -0
  337. package/registry/examples/waveform/native/card.js +19 -0
  338. package/registry/examples/waveform/native/card.light.png +0 -0
  339. package/registry/examples/waveform/native/card.tsx +19 -0
  340. package/registry/examples/waveform/sizes.d.ts +4 -0
  341. package/registry/examples/waveform/sizes.js +16 -0
  342. package/registry/examples/waveform/sizes.tsx +14 -0
  343. package/registry/field.json +1 -1
  344. package/registry/file-upload.json +1 -1
  345. package/registry/filter-bar.json +1 -1
  346. package/registry/force-update-screen.json +1 -1
  347. package/registry/form.json +1 -1
  348. package/registry/gallery-page.json +1 -1
  349. package/registry/genui.json +3 -3
  350. package/registry/glow-card.json +1 -1
  351. package/registry/goal-gauge.json +1 -1
  352. package/registry/how-it-works-page.json +1 -1
  353. package/registry/image-cropper.json +1 -1
  354. package/registry/index.json +197 -14
  355. package/registry/iso.json +1 -1
  356. package/registry/kanban.json +1 -1
  357. package/registry/kbd.json +1 -1
  358. package/registry/landing-page.json +1 -1
  359. package/registry/landscape.json +1 -1
  360. package/registry/legal-page.json +1 -1
  361. package/registry/link-card.json +38 -6
  362. package/registry/list.json +1 -1
  363. package/registry/loader.json +1 -1
  364. package/registry/longform-page.json +1 -1
  365. package/registry/maintenance-screen.json +1 -1
  366. package/registry/map.json +2 -2
  367. package/registry/markdown.json +1 -1
  368. package/registry/marketing-layout.json +1 -1
  369. package/registry/marquee.json +1 -1
  370. package/registry/mascot-quote.json +1 -1
  371. package/registry/mascot-state.json +1 -1
  372. package/registry/mascots.json +1 -1
  373. package/registry/match-dialog.json +1 -1
  374. package/registry/media-capture.json +1 -1
  375. package/registry/media-grid.json +92 -6
  376. package/registry/meta-row.json +1 -1
  377. package/registry/meter.json +1 -1
  378. package/registry/nav-bar.json +2 -2
  379. package/registry/number-ticker.json +1 -1
  380. package/registry/page-header.json +1 -1
  381. package/registry/page-hero.json +1 -1
  382. package/registry/page.json +1 -1
  383. package/registry/pagination.json +1 -1
  384. package/registry/photo-grid.json +1 -1
  385. package/registry/pointer-light.json +1 -1
  386. package/registry/popover.json +1 -1
  387. package/registry/pricing-page.json +1 -1
  388. package/registry/product-page.json +1 -1
  389. package/registry/profile-card.json +1 -1
  390. package/registry/progress.json +1 -1
  391. package/registry/promise-card.json +1 -1
  392. package/registry/radio-group.json +1 -1
  393. package/registry/rail-nav.json +493 -0
  394. package/registry/recipes.json +1 -1
  395. package/registry/scroll-stage.json +1 -1
  396. package/registry/search-field.json +1 -1
  397. package/registry/section-backdrop.json +1 -1
  398. package/registry/separator.json +1 -1
  399. package/registry/settings-layout.json +104 -9
  400. package/registry/showcase.json +1 -1
  401. package/registry/site-footer.json +38 -6
  402. package/registry/sites.json +1 -1
  403. package/registry/skeleton.json +1 -1
  404. package/registry/skip-link.json +1 -1
  405. package/registry/slider.json +1 -1
  406. package/registry/slot.json +1 -1
  407. package/registry/spinner.json +1 -1
  408. package/registry/split-view.json +1 -1
  409. package/registry/stage-banner.json +1 -1
  410. package/registry/stat.json +1 -1
  411. package/registry/status-page.json +1 -1
  412. package/registry/step-progress.json +1 -1
  413. package/registry/step-showcase.json +1 -1
  414. package/registry/stepper.json +1 -1
  415. package/registry/swipe-deck.json +1 -1
  416. package/registry/switch.json +1 -1
  417. package/registry/tabs.json +2 -2
  418. package/registry/tag-input.json +1 -1
  419. package/registry/tag-selector.json +1 -1
  420. package/registry/terminal-replay.json +1 -1
  421. package/registry/theme.json +1 -1
  422. package/registry/toast.json +1 -1
  423. package/registry/toc.json +1 -1
  424. package/registry/tooltip.json +1 -1
  425. package/registry/tree-view.json +1 -1
  426. package/registry/update-prompt.json +1 -1
  427. package/registry/verified-badge.json +1 -1
  428. package/registry/vertical-video.json +1 -1
  429. package/registry/video-player.json +1 -1
  430. package/registry/video-trimmer.json +1 -1
  431. package/registry/virtual.json +1 -1
  432. package/registry/waveform.json +296 -0
  433. package/dist/chunk-2FRWNSRO.js.map +0 -1
  434. package/dist/chunk-3BC4XQ6C.js.map +0 -1
  435. package/dist/chunk-3IN6TOPM.js.map +0 -1
  436. package/dist/chunk-4LOMIQVX.js.map +0 -1
  437. package/dist/chunk-G3ETON2A.js.map +0 -1
  438. package/dist/chunk-IZ7MV6HM.js.map +0 -1
  439. package/dist/chunk-OWC2LZD2.js.map +0 -1
  440. package/dist/chunk-ZNMFG62E.js.map +0 -1
  441. /package/dist/{chunk-FKBHWS4N.js.map → chunk-CEJDH6SA.js.map} +0 -0
  442. /package/dist/{chunk-R6NK6ZNY.js.map → chunk-F7FVPPBB.js.map} +0 -0
  443. /package/dist/{chunk-5Z7FWCV2.js.map → chunk-HBZPJ3EP.js.map} +0 -0
  444. /package/dist/{chunk-C2BRIFJG.js.map → chunk-HJFRHYCI.js.map} +0 -0
  445. /package/dist/{chunk-BTMFZ66D.js.map → chunk-KM6VAKIE.js.map} +0 -0
  446. /package/dist/{chunk-DGQMDJXK.js.map → chunk-LZNZLCOE.js.map} +0 -0
  447. /package/dist/{chunk-AQSZJJAJ.js.map → chunk-MQPC3P4T.js.map} +0 -0
package/dist/nav-bar.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  import "./chunk-YCIBJ6OQ.js";
12
12
  import {
13
13
  cn
14
- } from "./chunk-2FRWNSRO.js";
14
+ } from "./chunk-NSLXEDIS.js";
15
15
 
16
16
  // src/nav-bar/nav-bar.tsx
17
17
  import { NavigationMenu as Nav, Slot } from "radix-ui";
package/dist/page-hero.js CHANGED
@@ -1,18 +1,18 @@
1
+ import {
2
+ Page
3
+ } from "./chunk-LZNZLCOE.js";
1
4
  import {
2
5
  BlockLink
3
6
  } from "./chunk-2AGSO3WH.js";
4
7
  import {
5
- Page
6
- } from "./chunk-DGQMDJXK.js";
8
+ ArrowGlyph
9
+ } from "./chunk-XCBVFMNV.js";
7
10
  import {
8
11
  SectionBackdrop
9
12
  } from "./chunk-XVLWVTQA.js";
10
- import {
11
- ArrowGlyph
12
- } from "./chunk-XCBVFMNV.js";
13
13
  import {
14
14
  cn
15
- } from "./chunk-4LOMIQVX.js";
15
+ } from "./chunk-W675RFOA.js";
16
16
 
17
17
  // src/page-hero/page-hero.tsx
18
18
  import { jsx, jsxs } from "react/jsx-runtime";
package/dist/page.js CHANGED
@@ -4,9 +4,9 @@ import {
4
4
  Section,
5
5
  SectionHeading,
6
6
  Ticks
7
- } from "./chunk-DGQMDJXK.js";
7
+ } from "./chunk-LZNZLCOE.js";
8
8
  import "./chunk-XVLWVTQA.js";
9
- import "./chunk-4LOMIQVX.js";
9
+ import "./chunk-W675RFOA.js";
10
10
  export {
11
11
  Facts,
12
12
  Page,
package/dist/popover.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-J3NC6ER4.js";
5
5
  import {
6
6
  cn
7
- } from "./chunk-2FRWNSRO.js";
7
+ } from "./chunk-NSLXEDIS.js";
8
8
 
9
9
  // src/popover/popover.tsx
10
10
  import { Popover as PopoverPrimitive } from "radix-ui";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  cn
3
- } from "./chunk-ZNMFG62E.js";
3
+ } from "./chunk-KH3JOEPY.js";
4
4
 
5
5
  // src/pricing-page/pricing-page.tsx
6
6
  import { Section } from "@krizaka/ui/page";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  cn
3
- } from "./chunk-ZNMFG62E.js";
3
+ } from "./chunk-KH3JOEPY.js";
4
4
 
5
5
  // src/product-page/product-page.tsx
6
6
  import { ArgumentCard } from "@krizaka/ui/argument-card";
@@ -2,7 +2,7 @@ import {
2
2
  brandClass,
3
3
  cn,
4
4
  storyVariantClass
5
- } from "./chunk-IZ7MV6HM.js";
5
+ } from "./chunk-XVFQZ3ZG.js";
6
6
 
7
7
  // src/profile-card/stat-gauge.tsx
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -2,7 +2,7 @@ import {
2
2
  brandClass,
3
3
  cn,
4
4
  storyVariantClass
5
- } from "./chunk-IZ7MV6HM.js";
5
+ } from "./chunk-XVFQZ3ZG.js";
6
6
 
7
7
  // src/promise-card/promise-card.tsx
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -7,8 +7,8 @@ import {
7
7
  } from "./chunk-4QN5YJ3D.js";
8
8
  import {
9
9
  tv
10
- } from "./chunk-C2BRIFJG.js";
11
- import "./chunk-2FRWNSRO.js";
10
+ } from "./chunk-HJFRHYCI.js";
11
+ import "./chunk-NSLXEDIS.js";
12
12
 
13
13
  // src/radio-group/radio-group.tsx
14
14
  import { RadioGroup as RadioGroupPrimitive } from "radix-ui";
@@ -0,0 +1,149 @@
1
+ import * as tailwind_variants from 'tailwind-variants';
2
+ import * as React from 'react';
3
+
4
+ type BrandId = "krizaka" | "orazaka" | "orochia" | "yasakia" | "yororis" | "yomizaka" | "kachizaka" | "akinaza";
5
+
6
+ declare const railNav: tailwind_variants.TVReturnType<{
7
+ [key: string]: {
8
+ [key: string]: tailwind_variants.ClassValue | {
9
+ body?: tailwind_variants.ClassValue;
10
+ label?: tailwind_variants.ClassValue;
11
+ main?: tailwind_variants.ClassValue;
12
+ mark?: tailwind_variants.ClassValue;
13
+ group?: tailwind_variants.ClassValue;
14
+ toggle?: tailwind_variants.ClassValue;
15
+ shell?: tailwind_variants.ClassValue;
16
+ foot?: tailwind_variants.ClassValue;
17
+ icon?: tailwind_variants.ClassValue;
18
+ badge?: tailwind_variants.ClassValue;
19
+ root?: tailwind_variants.ClassValue;
20
+ item?: tailwind_variants.ClassValue;
21
+ };
22
+ };
23
+ } | {
24
+ [x: string]: {
25
+ [x: string]: tailwind_variants.ClassValue | {
26
+ body?: tailwind_variants.ClassValue;
27
+ label?: tailwind_variants.ClassValue;
28
+ main?: tailwind_variants.ClassValue;
29
+ mark?: tailwind_variants.ClassValue;
30
+ group?: tailwind_variants.ClassValue;
31
+ toggle?: tailwind_variants.ClassValue;
32
+ shell?: tailwind_variants.ClassValue;
33
+ foot?: tailwind_variants.ClassValue;
34
+ icon?: tailwind_variants.ClassValue;
35
+ badge?: tailwind_variants.ClassValue;
36
+ root?: tailwind_variants.ClassValue;
37
+ item?: tailwind_variants.ClassValue;
38
+ };
39
+ };
40
+ } | {}, {
41
+ shell: string;
42
+ root: string;
43
+ mark: string;
44
+ group: string;
45
+ main: string;
46
+ foot: string;
47
+ item: string;
48
+ icon: string;
49
+ label: string;
50
+ badge: string;
51
+ toggle: string;
52
+ body: string;
53
+ }, undefined, {
54
+ [key: string]: {
55
+ [key: string]: tailwind_variants.ClassValue | {
56
+ body?: tailwind_variants.ClassValue;
57
+ label?: tailwind_variants.ClassValue;
58
+ main?: tailwind_variants.ClassValue;
59
+ mark?: tailwind_variants.ClassValue;
60
+ group?: tailwind_variants.ClassValue;
61
+ toggle?: tailwind_variants.ClassValue;
62
+ shell?: tailwind_variants.ClassValue;
63
+ foot?: tailwind_variants.ClassValue;
64
+ icon?: tailwind_variants.ClassValue;
65
+ badge?: tailwind_variants.ClassValue;
66
+ root?: tailwind_variants.ClassValue;
67
+ item?: tailwind_variants.ClassValue;
68
+ };
69
+ };
70
+ } | {}, {
71
+ shell: string;
72
+ root: string;
73
+ mark: string;
74
+ group: string;
75
+ main: string;
76
+ foot: string;
77
+ item: string;
78
+ icon: string;
79
+ label: string;
80
+ badge: string;
81
+ toggle: string;
82
+ body: string;
83
+ }, tailwind_variants.TVReturnTypeLike<unknown, {
84
+ shell: string;
85
+ root: string;
86
+ mark: string;
87
+ group: string;
88
+ main: string;
89
+ foot: string;
90
+ item: string;
91
+ icon: string;
92
+ label: string;
93
+ badge: string;
94
+ toggle: string;
95
+ body: string;
96
+ }>>;
97
+ /** The frame of the page: the rail, then `RailNav.Body` (the header and the content). A row on a desktop. */
98
+ declare function RailNavShell({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
99
+ /** The column beside the rail: the `AppHeader`, then the content. On a phone it keeps clear of the tab bar. */
100
+ declare function RailNavBody({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
101
+ type RailNavRootProps = Omit<React.ComponentProps<"nav">, "children"> & {
102
+ /** The navigation's accessible name (`Orazaka`, `Studio`). */
103
+ label: string;
104
+ /** The product's mark on top of the rail, as a link home (`<Link href="/"><ProductLogo id="orazaka" /></Link>`); named by the app (its `aria-label`). Hidden on a phone: `AppHeader` shows it there. */
105
+ mark?: React.ReactNode;
106
+ /** The product's brand: scopes its colours (`brand-orazaka`…) over the rail, so the accent follows. Omit it inside a page that already wears the brand. */
107
+ accent?: BrandId;
108
+ /** The main destinations: `RailNav.Item`, the ones you work in. Five at most so that they fit a phone's tab bar. */
109
+ children: React.ReactNode;
110
+ /** At the foot of the rail (settings, account), after the main items; on a phone they follow them in the same bar. `RailNav.Item`s or a control with `data-rail-item`. */
111
+ footer?: React.ReactNode;
112
+ /** Adds a button that widens the rail to show the words (desktop only). Needs `expandLabels`. */
113
+ expandable?: boolean;
114
+ /** Controlled width (pair with `onExpandedChange` to keep the choice). */
115
+ expanded?: boolean;
116
+ /** The starting width when uncontrolled. */
117
+ defaultExpanded?: boolean;
118
+ /** Called when the toggle widens or narrows the rail. */
119
+ onExpandedChange?: (expanded: boolean) => void;
120
+ /** The toggle's words, `[expand, collapse]`. */
121
+ expandLabels?: readonly [string, string];
122
+ };
123
+ /** The rail: a vertical column of icons on a desktop, a bottom tab bar on a phone. */
124
+ declare function RailNavRoot({ label, mark, accent, children, footer, expandable, expanded: controlled, defaultExpanded, onExpandedChange, expandLabels, className, onKeyDown, ...props }: RailNavRootProps): React.JSX.Element;
125
+ type RailNavItemProps = Omit<React.ComponentProps<"a">, "children"> & {
126
+ /** The item's icon (a signature icon of `@krizaka/icons`): all that shows on a desktop rail. */
127
+ icon: React.ReactNode;
128
+ /** Its words: the accessible name, the tooltip, the tab's caption on a phone, the row's text when the rail is expanded. */
129
+ label: string;
130
+ /** This is the section the user is in: `aria-current="page"`, the accent bar and the accent colour. */
131
+ current?: boolean;
132
+ /** A count (unread, pending) on the icon. Say it in words with `badgeLabel`. */
133
+ badge?: React.ReactNode;
134
+ /** The count in words (« 3 unread »), appended to the accessible name. */
135
+ badgeLabel?: string;
136
+ /** Renders your router's link with the item's look: pass it as the only child. */
137
+ asChild?: boolean;
138
+ children?: React.ReactElement;
139
+ };
140
+ /** A destination of the rail. */
141
+ declare function RailNavItem({ icon, label, current, badge, badgeLabel, asChild, children, className, ...props }: RailNavItemProps): React.JSX.Element;
142
+ declare const RailNav: {
143
+ Shell: typeof RailNavShell;
144
+ Root: typeof RailNavRoot;
145
+ Item: typeof RailNavItem;
146
+ Body: typeof RailNavBody;
147
+ };
148
+
149
+ export { RailNav, RailNavBody, RailNavItem, type RailNavItemProps, RailNavRoot, type RailNavRootProps, RailNavShell, railNav };
@@ -0,0 +1,177 @@
1
+ "use client";
2
+ import {
3
+ ChevronGlyph
4
+ } from "./chunk-AFY35UCB.js";
5
+ import {
6
+ cn
7
+ } from "./chunk-WU4VLSEA.js";
8
+
9
+ // src/tooltip/tooltip.tsx
10
+ import { Tooltip as TooltipPrimitive } from "radix-ui";
11
+
12
+ // src/floating.ts
13
+ var floating = "kz-pop z-50 rounded-lg border border-border-default bg-surface-2 text-fg shadow-lg outline-hidden";
14
+
15
+ // src/tooltip/tooltip.tsx
16
+ import { jsx, jsxs } from "react/jsx-runtime";
17
+ var TooltipProvider = TooltipPrimitive.Provider;
18
+ function Tooltip({
19
+ content,
20
+ children,
21
+ open,
22
+ defaultOpen,
23
+ onOpenChange,
24
+ delayDuration = 300,
25
+ container,
26
+ sideOffset = 6,
27
+ collisionPadding = 8,
28
+ className,
29
+ ...props
30
+ }) {
31
+ return /* @__PURE__ */ jsx(TooltipPrimitive.Provider, { delayDuration, children: /* @__PURE__ */ jsxs(TooltipPrimitive.Root, { open, defaultOpen, onOpenChange, children: [
32
+ /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { asChild: true, children }),
33
+ /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { container, children: /* @__PURE__ */ jsx(
34
+ TooltipPrimitive.Content,
35
+ {
36
+ sideOffset,
37
+ collisionPadding,
38
+ className: cn(floating, "max-w-xs px-2.5 py-1.5 text-xs font-medium origin-(--radix-tooltip-content-transform-origin)", className),
39
+ ...props,
40
+ children: content
41
+ }
42
+ ) })
43
+ ] }) });
44
+ }
45
+
46
+ // src/rail-nav/rail-nav.tsx
47
+ import { Slot } from "radix-ui";
48
+ import * as React from "react";
49
+ import { tv } from "tailwind-variants";
50
+ import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
51
+ var railNav = tv({
52
+ slots: {
53
+ shell: "flex min-h-dvh w-full bg-surface-0 text-fg",
54
+ root: (
55
+ // Phone: a bottom tab bar, clear of the home indicator. Desktop: a sticky column that is only as wide as its icons.
56
+ "fixed inset-x-0 bottom-0 z-40 flex h-[calc(3.5rem+env(safe-area-inset-bottom))] flex-row border-t border-border-subtle bg-surface-1/95 pb-[env(safe-area-inset-bottom)] backdrop-blur-xl md:sticky md:inset-auto md:top-0 md:bottom-auto md:z-auto md:h-dvh md:w-14 md:shrink-0 md:flex-col md:border-t-0 md:border-r md:bg-surface-1 md:pb-0 md:backdrop-blur-none md:transition-[width] md:duration-300 motion-reduce:md:transition-none md:data-expanded:w-56"
57
+ ),
58
+ // The mark is the rail's on a desktop; hidden on a phone (the header carries it there).
59
+ mark: "hidden h-14 w-full shrink-0 items-center justify-center md:flex md:group-data-expanded/rail:justify-start md:group-data-expanded/rail:px-4",
60
+ group: "flex min-w-0 flex-row items-stretch md:flex-col md:items-center md:gap-1 md:px-1.5 md:group-data-expanded/rail:items-stretch",
61
+ main: "max-md:grow-(--rail-n) md:flex-1 md:py-2",
62
+ foot: "max-md:grow-(--rail-n) md:border-t md:border-border-subtle md:py-2",
63
+ item: "group/item relative flex min-w-0 flex-1 flex-col items-center justify-center gap-0.5 px-1 text-[11px] font-medium text-fg-secondary no-underline transition-colors hover:bg-surface-2 hover:text-fg focus-visible:outline-hidden focus-visible:focus-ring-inset aria-[current=page]:bg-accent-soft aria-[current=page]:text-fg-accent before:absolute before:inset-x-3 before:top-0 before:h-[3px] before:rounded-b-full before:bg-accent before:opacity-0 before:transition-opacity aria-[current=page]:before:opacity-100 md:h-10 md:w-full md:flex-none md:flex-row md:justify-center md:gap-3 md:rounded-none md:px-0 md:text-sm md:before:inset-x-auto md:before:inset-y-2 md:before:left-0 md:before:top-2 md:before:h-auto md:before:w-[3px] md:before:rounded-r-full md:before:rounded-b-none md:group-data-expanded/rail:justify-start md:group-data-expanded/rail:px-3.5 [&>svg]:h-5 [&>svg]:w-5 [&>svg]:shrink-0",
64
+ icon: "relative inline-flex shrink-0 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",
65
+ label: "max-w-full truncate leading-none md:sr-only md:text-sm md:leading-normal md:group-data-expanded/rail:not-sr-only",
66
+ badge: "absolute -right-2 -top-1.5 inline-flex min-w-4 items-center justify-center rounded-full bg-accent px-1 text-[10px] font-bold leading-4 text-on-accent after:content-[attr(data-count)]",
67
+ toggle: "hidden h-10 w-full items-center justify-center gap-3 text-xs font-medium text-fg-secondary hover:bg-surface-2 hover:text-fg focus-visible:outline-hidden focus-visible:focus-ring-inset md:flex md:group-data-expanded/rail:justify-start md:group-data-expanded/rail:px-3.5",
68
+ body: "flex min-w-0 flex-1 flex-col max-md:pb-[calc(3.5rem+env(safe-area-inset-bottom))]"
69
+ }
70
+ });
71
+ var s = railNav();
72
+ var RailContext = React.createContext(null);
73
+ var useRail = () => {
74
+ const ctx = React.useContext(RailContext);
75
+ if (!ctx) throw new Error("RailNav parts must be inside <RailNav.Root>");
76
+ return ctx;
77
+ };
78
+ function RailNavShell({ className, ...props }) {
79
+ return /* @__PURE__ */ jsx2("div", { className: s.shell({ className }), ...props });
80
+ }
81
+ function RailNavBody({ className, ...props }) {
82
+ return /* @__PURE__ */ jsx2("div", { className: s.body({ className }), ...props });
83
+ }
84
+ var count = (node) => React.Children.toArray(node).length;
85
+ function moveFocus(event) {
86
+ const keys = { ArrowDown: 1, ArrowRight: 1, ArrowUp: -1, ArrowLeft: -1 };
87
+ const step = keys[event.key];
88
+ if (step === void 0 && event.key !== "Home" && event.key !== "End") return;
89
+ const items = [...event.currentTarget.querySelectorAll("[data-rail-item]")];
90
+ if (items.length === 0) return;
91
+ const here = items.findIndex((el) => el === document.activeElement || el.contains(document.activeElement));
92
+ let next;
93
+ if (event.key === "Home") next = 0;
94
+ else if (event.key === "End") next = items.length - 1;
95
+ else if (here < 0) next = step > 0 ? 0 : items.length - 1;
96
+ else next = (here + step + items.length) % items.length;
97
+ event.preventDefault();
98
+ items[next]?.focus();
99
+ }
100
+ function RailNavRoot({
101
+ label,
102
+ mark,
103
+ accent,
104
+ children,
105
+ footer,
106
+ expandable,
107
+ expanded: controlled,
108
+ defaultExpanded = false,
109
+ onExpandedChange,
110
+ expandLabels,
111
+ className,
112
+ onKeyDown,
113
+ ...props
114
+ }) {
115
+ const [own, setOwn] = React.useState(defaultExpanded);
116
+ const expanded = expandable ? controlled ?? own : false;
117
+ const toggle = () => {
118
+ if (controlled === void 0) setOwn(!expanded);
119
+ onExpandedChange?.(!expanded);
120
+ };
121
+ const value = React.useMemo(() => ({ expanded }), [expanded]);
122
+ return /* @__PURE__ */ jsx2(RailContext.Provider, { value, children: /* @__PURE__ */ jsxs2(
123
+ "nav",
124
+ {
125
+ "aria-label": label,
126
+ "data-expanded": expanded ? "" : void 0,
127
+ className: cn("group/rail", accent && "brand-" + accent, s.root({ className })),
128
+ onKeyDown: (e) => {
129
+ onKeyDown?.(e);
130
+ if (!e.defaultPrevented) moveFocus(e);
131
+ },
132
+ ...props,
133
+ children: [
134
+ mark && /* @__PURE__ */ jsx2("div", { "data-brand-mark": true, className: s.mark(), children: mark }),
135
+ /* @__PURE__ */ jsx2("div", { className: s.group({ className: s.main() }), style: { ["--rail-n"]: Math.max(count(children), 1) }, children }),
136
+ (footer || expandable) && /* @__PURE__ */ jsxs2("div", { className: s.group({ className: s.foot() }), style: { ["--rail-n"]: Math.max(count(footer), 1) }, children: [
137
+ footer,
138
+ expandable && expandLabels && /* @__PURE__ */ jsxs2("button", { type: "button", "data-rail-item": true, className: s.toggle(), "aria-expanded": expanded, onClick: toggle, children: [
139
+ /* @__PURE__ */ jsx2(ChevronGlyph, { direction: expanded ? "left" : "right", className: "h-4 w-4 shrink-0" }),
140
+ /* @__PURE__ */ jsx2("span", { className: expanded ? void 0 : "sr-only", children: expanded ? expandLabels[1] : expandLabels[0] })
141
+ ] })
142
+ ] })
143
+ ]
144
+ }
145
+ ) });
146
+ }
147
+ function RailNavItem({ icon, label, current, badge, badgeLabel, asChild, children, className, ...props }) {
148
+ const { expanded } = useRail();
149
+ const Comp = asChild ? Slot.Root : "a";
150
+ const inner = /* @__PURE__ */ jsxs2(Fragment, { children: [
151
+ /* @__PURE__ */ jsxs2("span", { className: s.icon(), children: [
152
+ icon,
153
+ badge != null && (typeof badge === "string" || typeof badge === "number") ? (
154
+ // Drawn by CSS, so the count is no text of the link: the visible text stays the label, which the name `Chat, 2 unread` contains.
155
+ /* @__PURE__ */ jsx2("span", { className: s.badge(), "data-count": badge, "aria-hidden": true })
156
+ ) : badge != null && /* @__PURE__ */ jsx2("span", { className: s.badge(), "aria-hidden": true, children: badge })
157
+ ] }),
158
+ /* @__PURE__ */ jsx2("span", { className: s.label(), children: label })
159
+ ] });
160
+ const link = /* @__PURE__ */ jsx2(Comp, { "data-rail-item": true, "aria-label": badgeLabel ? `${label}, ${badgeLabel}` : label, "aria-current": current ? "page" : void 0, className: s.item({ className }), ...props, children: asChild && children ? React.cloneElement(children, void 0, inner) : inner });
161
+ return expanded ? link : /* @__PURE__ */ jsx2(Tooltip, { content: label, side: "right", children: link });
162
+ }
163
+ var RailNav = {
164
+ Shell: RailNavShell,
165
+ Root: RailNavRoot,
166
+ Item: RailNavItem,
167
+ Body: RailNavBody
168
+ };
169
+ export {
170
+ RailNav,
171
+ RailNavBody,
172
+ RailNavItem,
173
+ RailNavRoot,
174
+ RailNavShell,
175
+ railNav
176
+ };
177
+ //# sourceMappingURL=rail-nav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tooltip/tooltip.tsx","../src/floating.ts","../src/rail-nav/rail-nav.tsx"],"sourcesContent":["// Client (a portal). A short label for a control, on hover after `delayDuration` and on keyboard focus at once;\n// Escape dismisses it. It names nothing: the control keeps its own accessible name (an IconButton's `label`).\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../cn\";\nimport { floating } from \"../floating\";\n\n/** Optional, once near the root: shares `delayDuration` and the skip delay between tooltips. */\nexport const TooltipProvider = TooltipPrimitive.Provider;\n\nexport type TooltipProps = Omit<React.ComponentProps<typeof TooltipPrimitive.Content>, \"content\" | \"children\"> & {\n /** What the tooltip says — passed translated. */\n content: React.ReactNode;\n /** The trigger, rendered as is (`asChild`): a focusable element. */\n children: React.ReactNode;\n /** Open or closed (controlled), with `onOpenChange`. */\n open?: boolean;\n /** Open at first, uncontrolled. */\n defaultOpen?: boolean;\n /** Called when it opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Hover delay in ms before it opens (300 by default). */\n delayDuration?: number;\n /** The element the portal renders into (default: document.body). */\n container?: HTMLElement | null;\n};\n\nexport function Tooltip({\n content,\n children,\n open,\n defaultOpen,\n onOpenChange,\n delayDuration = 300,\n container,\n sideOffset = 6,\n collisionPadding = 8,\n className,\n ...props\n}: TooltipProps) {\n return (\n <TooltipPrimitive.Provider delayDuration={delayDuration}>\n <TooltipPrimitive.Root open={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n <TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal container={container}>\n <TooltipPrimitive.Content\n sideOffset={sideOffset}\n collisionPadding={collisionPadding}\n className={cn(floating, \"max-w-xs px-2.5 py-1.5 text-xs font-medium origin-(--radix-tooltip-content-transform-origin)\", className)}\n {...props}\n >\n {content}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.Provider>\n );\n}\n","// The one surface of everything that floats next to its trigger (popover, menu, tooltip): a raised surface, a border,\n// the large shadow and the `kz-pop` entrance from the side Radix measured (`--radix-*-transform-origin`).\nexport const floating =\n \"kz-pop z-50 rounded-lg border border-border-default bg-surface-2 text-fg shadow-lg outline-hidden\";\n","// Client (the expand state, the arrow keys, the tooltip). The compact navigation of an application, read from Orazaka's\n// web client: a vertical rail of icons on a desktop — the product's mark on top, a tooltip on each icon, the current one\n// marked by an accent bar on its left edge, a footer for settings and the account — that becomes a bottom tab bar on a\n// phone. The same nodes in both: only the layout changes, so the items, their order and their words are written once.\n// The mark lives in the rail on a desktop; on a phone, where the rail has no room for it, `AppHeader` shows it (the rule\n// « one mark visible at every width »). Brand-aware through the tokens: `accent` scopes `.brand-<id>`.\nimport { Tooltip } from \"@krizaka/ui/tooltip\";\nimport { Slot } from \"radix-ui\";\nimport * as React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nimport { cn } from \"../cn\";\nimport { ChevronGlyph } from \"../glyphs\";\nimport type { BrandId } from \"../marks/ProductLogo\";\n\nexport const railNav = tv({\n slots: {\n shell: \"flex min-h-dvh w-full bg-surface-0 text-fg\",\n root:\n // Phone: a bottom tab bar, clear of the home indicator. Desktop: a sticky column that is only as wide as its icons.\n \"fixed inset-x-0 bottom-0 z-40 flex h-[calc(3.5rem+env(safe-area-inset-bottom))] flex-row border-t border-border-subtle bg-surface-1/95 pb-[env(safe-area-inset-bottom)] backdrop-blur-xl \" +\n \"md:sticky md:inset-auto md:top-0 md:bottom-auto md:z-auto md:h-dvh md:w-14 md:shrink-0 md:flex-col md:border-t-0 md:border-r md:bg-surface-1 md:pb-0 md:backdrop-blur-none \" +\n \"md:transition-[width] md:duration-300 motion-reduce:md:transition-none md:data-expanded:w-56\",\n // The mark is the rail's on a desktop; hidden on a phone (the header carries it there).\n mark: \"hidden h-14 w-full shrink-0 items-center justify-center md:flex md:group-data-expanded/rail:justify-start md:group-data-expanded/rail:px-4\",\n group: \"flex min-w-0 flex-row items-stretch md:flex-col md:items-center md:gap-1 md:px-1.5 md:group-data-expanded/rail:items-stretch\",\n main: \"max-md:grow-(--rail-n) md:flex-1 md:py-2\",\n foot: \"max-md:grow-(--rail-n) md:border-t md:border-border-subtle md:py-2\",\n item:\n \"group/item relative flex min-w-0 flex-1 flex-col items-center justify-center gap-0.5 px-1 text-[11px] font-medium text-fg-secondary no-underline transition-colors \" +\n \"hover:bg-surface-2 hover:text-fg focus-visible:outline-hidden focus-visible:focus-ring-inset \" +\n \"aria-[current=page]:bg-accent-soft aria-[current=page]:text-fg-accent \" +\n // The accent bar: on the top edge of a tab, on the left edge of a rail item.\n \"before:absolute before:inset-x-3 before:top-0 before:h-[3px] before:rounded-b-full before:bg-accent before:opacity-0 before:transition-opacity aria-[current=page]:before:opacity-100 \" +\n \"md:h-10 md:w-full md:flex-none md:flex-row md:justify-center md:gap-3 md:rounded-none md:px-0 md:text-sm \" +\n \"md:before:inset-x-auto md:before:inset-y-2 md:before:left-0 md:before:top-2 md:before:h-auto md:before:w-[3px] md:before:rounded-r-full md:before:rounded-b-none \" +\n \"md:group-data-expanded/rail:justify-start md:group-data-expanded/rail:px-3.5 [&>svg]:h-5 [&>svg]:w-5 [&>svg]:shrink-0\",\n icon: \"relative inline-flex shrink-0 items-center justify-center [&>svg]:h-5 [&>svg]:w-5\",\n label: \"max-w-full truncate leading-none md:sr-only md:text-sm md:leading-normal md:group-data-expanded/rail:not-sr-only\",\n badge:\n \"absolute -right-2 -top-1.5 inline-flex min-w-4 items-center justify-center rounded-full bg-accent px-1 text-[10px] font-bold leading-4 text-on-accent after:content-[attr(data-count)]\",\n toggle:\n \"hidden h-10 w-full items-center justify-center gap-3 text-xs font-medium text-fg-secondary hover:bg-surface-2 hover:text-fg focus-visible:outline-hidden focus-visible:focus-ring-inset md:flex \" +\n \"md:group-data-expanded/rail:justify-start md:group-data-expanded/rail:px-3.5\",\n body: \"flex min-w-0 flex-1 flex-col max-md:pb-[calc(3.5rem+env(safe-area-inset-bottom))]\",\n },\n});\nconst s = railNav();\n\ninterface RailState {\n expanded: boolean;\n}\nconst RailContext = React.createContext<RailState | null>(null);\nconst useRail = () => {\n const ctx = React.useContext(RailContext);\n if (!ctx) throw new Error(\"RailNav parts must be inside <RailNav.Root>\");\n return ctx;\n};\n\n/** The frame of the page: the rail, then `RailNav.Body` (the header and the content). A row on a desktop. */\nexport function RailNavShell({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div className={s.shell({ className })} {...props} />;\n}\n\n/** The column beside the rail: the `AppHeader`, then the content. On a phone it keeps clear of the tab bar. */\nexport function RailNavBody({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div className={s.body({ className })} {...props} />;\n}\n\nexport type RailNavRootProps = Omit<React.ComponentProps<\"nav\">, \"children\"> & {\n /** The navigation's accessible name (`Orazaka`, `Studio`). */\n label: string;\n /** The product's mark on top of the rail, as a link home (`<Link href=\"/\"><ProductLogo id=\"orazaka\" /></Link>`); named by the app (its `aria-label`). Hidden on a phone: `AppHeader` shows it there. */\n mark?: React.ReactNode;\n /** The product's brand: scopes its colours (`brand-orazaka`…) over the rail, so the accent follows. Omit it inside a page that already wears the brand. */\n accent?: BrandId;\n /** The main destinations: `RailNav.Item`, the ones you work in. Five at most so that they fit a phone's tab bar. */\n children: React.ReactNode;\n /** At the foot of the rail (settings, account), after the main items; on a phone they follow them in the same bar. `RailNav.Item`s or a control with `data-rail-item`. */\n footer?: React.ReactNode;\n /** Adds a button that widens the rail to show the words (desktop only). Needs `expandLabels`. */\n expandable?: boolean;\n /** Controlled width (pair with `onExpandedChange` to keep the choice). */\n expanded?: boolean;\n /** The starting width when uncontrolled. */\n defaultExpanded?: boolean;\n /** Called when the toggle widens or narrows the rail. */\n onExpandedChange?: (expanded: boolean) => void;\n /** The toggle's words, `[expand, collapse]`. */\n expandLabels?: readonly [string, string];\n};\n\nconst count = (node: React.ReactNode) => React.Children.toArray(node).length;\n\n/** Moves the focus along the rail's items with the arrows (↑ ↓ on the rail, ← → on the tab bar; both always work), Home and End. */\nfunction moveFocus(event: React.KeyboardEvent<HTMLElement>) {\n const keys: Record<string, number> = { ArrowDown: 1, ArrowRight: 1, ArrowUp: -1, ArrowLeft: -1 };\n const step = keys[event.key];\n if (step === undefined && event.key !== \"Home\" && event.key !== \"End\") return;\n const items = [...event.currentTarget.querySelectorAll<HTMLElement>(\"[data-rail-item]\")];\n if (items.length === 0) return;\n const here = items.findIndex((el) => el === document.activeElement || el.contains(document.activeElement));\n let next: number;\n if (event.key === \"Home\") next = 0;\n else if (event.key === \"End\") next = items.length - 1;\n else if (here < 0) next = step > 0 ? 0 : items.length - 1;\n else next = (here + step + items.length) % items.length;\n event.preventDefault();\n items[next]?.focus();\n}\n\n/** The rail: a vertical column of icons on a desktop, a bottom tab bar on a phone. */\nexport function RailNavRoot({\n label, mark, accent, children, footer, expandable, expanded: controlled, defaultExpanded = false, onExpandedChange, expandLabels, className, onKeyDown, ...props\n}: RailNavRootProps) {\n const [own, setOwn] = React.useState(defaultExpanded);\n const expanded = expandable ? (controlled ?? own) : false;\n const toggle = () => {\n if (controlled === undefined) setOwn(!expanded);\n onExpandedChange?.(!expanded);\n };\n const value = React.useMemo(() => ({ expanded }), [expanded]);\n return (\n <RailContext.Provider value={value}>\n <nav\n aria-label={label}\n data-expanded={expanded ? \"\" : undefined}\n className={cn(\"group/rail\", accent && \"brand-\" + accent, s.root({ className }))}\n onKeyDown={(e) => {\n onKeyDown?.(e);\n if (!e.defaultPrevented) moveFocus(e);\n }}\n {...props}\n >\n {mark && (\n <div data-brand-mark className={s.mark()}>\n {mark}\n </div>\n )}\n <div className={s.group({ className: s.main() })} style={{ [\"--rail-n\" as string]: Math.max(count(children), 1) }}>\n {children}\n </div>\n {(footer || expandable) && (\n <div className={s.group({ className: s.foot() })} style={{ [\"--rail-n\" as string]: Math.max(count(footer), 1) }}>\n {footer}\n {expandable && expandLabels && (\n <button type=\"button\" data-rail-item className={s.toggle()} aria-expanded={expanded} onClick={toggle}>\n <ChevronGlyph direction={expanded ? \"left\" : \"right\"} className=\"h-4 w-4 shrink-0\" />\n <span className={expanded ? undefined : \"sr-only\"}>{expanded ? expandLabels[1] : expandLabels[0]}</span>\n </button>\n )}\n </div>\n )}\n </nav>\n </RailContext.Provider>\n );\n}\n\nexport type RailNavItemProps = Omit<React.ComponentProps<\"a\">, \"children\"> & {\n /** The item's icon (a signature icon of `@krizaka/icons`): all that shows on a desktop rail. */\n icon: React.ReactNode;\n /** Its words: the accessible name, the tooltip, the tab's caption on a phone, the row's text when the rail is expanded. */\n label: string;\n /** This is the section the user is in: `aria-current=\"page\"`, the accent bar and the accent colour. */\n current?: boolean;\n /** A count (unread, pending) on the icon. Say it in words with `badgeLabel`. */\n badge?: React.ReactNode;\n /** The count in words (« 3 unread »), appended to the accessible name. */\n badgeLabel?: string;\n /** Renders your router's link with the item's look: pass it as the only child. */\n asChild?: boolean;\n children?: React.ReactElement;\n};\n\n/** A destination of the rail. */\nexport function RailNavItem({ icon, label, current, badge, badgeLabel, asChild, children, className, ...props }: RailNavItemProps) {\n const { expanded } = useRail();\n const Comp = asChild ? Slot.Root : \"a\";\n const inner = (\n <>\n <span className={s.icon()}>\n {icon}\n {badge != null && (typeof badge === \"string\" || typeof badge === \"number\") ? (\n // Drawn by CSS, so the count is no text of the link: the visible text stays the label, which the name `Chat, 2 unread` contains.\n <span className={s.badge()} data-count={badge} aria-hidden />\n ) : (\n badge != null && <span className={s.badge()} aria-hidden>{badge}</span>\n )}\n </span>\n <span className={s.label()}>{label}</span>\n </>\n );\n const link = (\n <Comp data-rail-item aria-label={badgeLabel ? `${label}, ${badgeLabel}` : label} aria-current={current ? \"page\" : undefined} className={s.item({ className })} {...props}>\n {asChild && children ? React.cloneElement(children, undefined, inner) : inner}\n </Comp>\n );\n // Expanded, the words are on the row; collapsed, the tooltip says them (Escape dismisses it, the keyboard focus shows it).\n return expanded ? link : <Tooltip content={label} side=\"right\">{link}</Tooltip>;\n}\n\nexport const RailNav = {\n Shell: RailNavShell,\n Root: RailNavRoot,\n Item: RailNavItem,\n Body: RailNavBody,\n};\n"],"mappings":"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","names":["jsx","jsxs"]}
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-555LWYIN.js";
6
6
  import {
7
7
  cn
8
- } from "./chunk-G3ETON2A.js";
8
+ } from "./chunk-WU4VLSEA.js";
9
9
 
10
10
  // src/scroll-stage/scroll-stage.tsx
11
11
  import * as React from "react";