@krizaka/ui 3.54.0 → 3.55.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 (495) hide show
  1. package/README.md +1 -0
  2. package/dist/account-menu.d.ts +6 -2
  3. package/dist/account-menu.js +8 -1
  4. package/dist/account-menu.js.map +1 -1
  5. package/dist/account-settings.js +28 -88
  6. package/dist/account-settings.js.map +1 -1
  7. package/dist/anatomy-plate.d.ts +4 -1
  8. package/dist/anatomy-plate.js +4 -0
  9. package/dist/anatomy-plate.js.map +1 -1
  10. package/dist/app-header/search.d.ts +63 -0
  11. package/dist/app-header/search.js +70 -0
  12. package/dist/app-header/search.js.map +1 -0
  13. package/dist/app-header.d.ts +88 -4
  14. package/dist/app-header.js +63 -5
  15. package/dist/app-header.js.map +1 -1
  16. package/dist/app-shell.js +31 -40
  17. package/dist/app-shell.js.map +1 -1
  18. package/dist/argument-card.js +3 -3
  19. package/dist/bird-plate.d.ts +3 -1
  20. package/dist/bird-plate.js +2 -2
  21. package/dist/bird-plate.js.map +1 -1
  22. package/dist/blocks.css +162 -27
  23. package/dist/chat.js +2 -2
  24. package/dist/chat.js.map +1 -1
  25. package/dist/checkbox.js +1 -1
  26. package/dist/checkbox.js.map +1 -1
  27. package/dist/chip.js +5 -98
  28. package/dist/chip.js.map +1 -1
  29. package/dist/choice-grid.js +28 -88
  30. package/dist/choice-grid.js.map +1 -1
  31. package/dist/{chunk-YGIN2YIY.js → chunk-3X3OF4TI.js} +2 -2
  32. package/dist/chunk-3X3OF4TI.js.map +1 -0
  33. package/dist/chunk-5VEVYDVC.js +11 -0
  34. package/dist/chunk-5VEVYDVC.js.map +1 -0
  35. package/dist/chunk-7U5TXA5Q.js +105 -0
  36. package/dist/chunk-7U5TXA5Q.js.map +1 -0
  37. package/dist/{chunk-KBQD6HE3.js → chunk-AEP3K4YD.js} +3 -3
  38. package/dist/{chunk-KBQD6HE3.js.map → chunk-AEP3K4YD.js.map} +1 -1
  39. package/dist/chunk-BDIU5LZB.js +18 -0
  40. package/dist/chunk-BDIU5LZB.js.map +1 -0
  41. package/dist/chunk-CSRKYZ53.js +39 -0
  42. package/dist/chunk-CSRKYZ53.js.map +1 -0
  43. package/dist/chunk-HEKDKM5Y.js +128 -0
  44. package/dist/chunk-HEKDKM5Y.js.map +1 -0
  45. package/dist/chunk-KGLRZMCY.js +16 -0
  46. package/dist/chunk-KGLRZMCY.js.map +1 -0
  47. package/dist/chunk-KID32IRJ.js +18 -0
  48. package/dist/chunk-KID32IRJ.js.map +1 -0
  49. package/dist/{chunk-ZQW7LF4Y.js → chunk-OIMXKRXF.js} +2 -2
  50. package/dist/{chunk-YHKTYFOQ.js → chunk-QWKCNSPF.js} +271 -47
  51. package/dist/chunk-QWKCNSPF.js.map +1 -0
  52. package/dist/{chunk-4LYKBSOG.js → chunk-USPOIQV5.js} +2 -2
  53. package/dist/chunk-USPOIQV5.js.map +1 -0
  54. package/dist/{chunk-7NRSPHAF.js → chunk-VB7MWE2N.js} +2 -2
  55. package/dist/{chunk-7NRSPHAF.js.map → chunk-VB7MWE2N.js.map} +1 -1
  56. package/dist/chunk-VIPSZXO4.js +103 -0
  57. package/dist/chunk-VIPSZXO4.js.map +1 -0
  58. package/dist/chunk-YCZ7N6Q6.js +385 -0
  59. package/dist/chunk-YCZ7N6Q6.js.map +1 -0
  60. package/dist/code-block.js +81 -98
  61. package/dist/code-block.js.map +1 -1
  62. package/dist/combobox.js +2 -2
  63. package/dist/component-page.d.ts +4 -1
  64. package/dist/component-page.js +5 -0
  65. package/dist/component-page.js.map +1 -1
  66. package/dist/continue-prompt.d.ts +4 -1
  67. package/dist/continue-prompt.js +4 -0
  68. package/dist/continue-prompt.js.map +1 -1
  69. package/dist/data-table.d.ts +60 -4
  70. package/dist/data-table.js +19 -7
  71. package/dist/date-picker.js +2 -2
  72. package/dist/date-picker.js.map +1 -1
  73. package/dist/detail-layout.d.ts +28 -17
  74. package/dist/detail-layout.js +73 -16
  75. package/dist/detail-layout.js.map +1 -1
  76. package/dist/doodle.d.ts +21 -0
  77. package/dist/doodle.js +39 -0
  78. package/dist/doodle.js.map +1 -0
  79. package/dist/drop-overlay.d.ts +12 -4
  80. package/dist/drop-overlay.js +16 -6
  81. package/dist/drop-overlay.js.map +1 -1
  82. package/dist/elephant.d.ts +2 -0
  83. package/dist/elephant.js +4 -0
  84. package/dist/elephant.js.map +1 -1
  85. package/dist/field.js +1 -1
  86. package/dist/field.js.map +1 -1
  87. package/dist/filter-bar.js +2 -2
  88. package/dist/force-update-screen.d.ts +5 -1
  89. package/dist/force-update-screen.js +4 -0
  90. package/dist/force-update-screen.js.map +1 -1
  91. package/dist/gallery-page.d.ts +4 -1
  92. package/dist/gallery-page.js +4 -0
  93. package/dist/gallery-page.js.map +1 -1
  94. package/dist/genui.js +5 -5
  95. package/dist/image-cropper.d.ts +10 -2
  96. package/dist/image-cropper.js +4 -0
  97. package/dist/image-cropper.js.map +1 -1
  98. package/dist/kanban.d.ts +3 -0
  99. package/dist/kanban.js +4 -0
  100. package/dist/kanban.js.map +1 -1
  101. package/dist/landscape.d.ts +4 -1
  102. package/dist/landscape.js +4 -0
  103. package/dist/landscape.js.map +1 -1
  104. package/dist/list.js +1 -1
  105. package/dist/maintenance-screen.d.ts +5 -1
  106. package/dist/maintenance-screen.js +4 -0
  107. package/dist/maintenance-screen.js.map +1 -1
  108. package/dist/map.js +6 -0
  109. package/dist/map.js.map +1 -1
  110. package/dist/markdown.d.ts +5 -1
  111. package/dist/markdown.js +12 -5
  112. package/dist/markdown.js.map +1 -1
  113. package/dist/match-dialog.d.ts +4 -1
  114. package/dist/match-dialog.js +4 -0
  115. package/dist/match-dialog.js.map +1 -1
  116. package/dist/media-capture.d.ts +6 -1
  117. package/dist/media-capture.js +4 -0
  118. package/dist/media-capture.js.map +1 -1
  119. package/dist/meter.js +5 -121
  120. package/dist/meter.js.map +1 -1
  121. package/dist/native/map.js +6 -0
  122. package/dist/native/map.js.map +1 -1
  123. package/dist/native/markdown.d.ts +9 -2
  124. package/dist/native/markdown.js +46 -7
  125. package/dist/native/markdown.js.map +1 -1
  126. package/dist/native/media-capture.d.ts +1 -0
  127. package/dist/native/media-capture.js +5 -0
  128. package/dist/native/media-capture.js.map +1 -1
  129. package/dist/native/vertical-video.d.ts +8 -2
  130. package/dist/native/vertical-video.js +6 -0
  131. package/dist/native/vertical-video.js.map +1 -1
  132. package/dist/native.d.ts +94 -4
  133. package/dist/native.js +1236 -1110
  134. package/dist/native.js.map +1 -1
  135. package/dist/nav-bar/me.d.ts +32 -0
  136. package/dist/nav-bar/me.js +23 -0
  137. package/dist/nav-bar/me.js.map +1 -0
  138. package/dist/nav-bar.d.ts +60 -2
  139. package/dist/nav-bar.js +92 -48
  140. package/dist/nav-bar.js.map +1 -1
  141. package/dist/notification-preferences.d.ts +151 -0
  142. package/dist/notification-preferences.js +77 -0
  143. package/dist/notification-preferences.js.map +1 -0
  144. package/dist/page-header.js +1 -1
  145. package/dist/page-header.js.map +1 -1
  146. package/dist/pointer-light.js +5 -0
  147. package/dist/pointer-light.js.map +1 -1
  148. package/dist/product-page.d.ts +4 -1
  149. package/dist/product-page.js +4 -0
  150. package/dist/product-page.js.map +1 -1
  151. package/dist/profile-card.d.ts +119 -1
  152. package/dist/profile-card.js +68 -21
  153. package/dist/profile-card.js.map +1 -1
  154. package/dist/promise-card.d.ts +4 -1
  155. package/dist/promise-card.js +4 -0
  156. package/dist/promise-card.js.map +1 -1
  157. package/dist/quota-meter.d.ts +113 -0
  158. package/dist/quota-meter.js +58 -0
  159. package/dist/quota-meter.js.map +1 -0
  160. package/dist/radio-group.js +6 -8
  161. package/dist/radio-group.js.map +1 -1
  162. package/dist/rail-nav.d.ts +18 -2
  163. package/dist/rail-nav.js +25 -2
  164. package/dist/rail-nav.js.map +1 -1
  165. package/dist/retro-tv.d.ts +30 -0
  166. package/dist/retro-tv.js +124 -0
  167. package/dist/retro-tv.js.map +1 -0
  168. package/dist/router.d.ts +12 -1
  169. package/dist/router.js +85 -8
  170. package/dist/router.js.map +1 -1
  171. package/dist/scroll-stage.d.ts +5 -1
  172. package/dist/scroll-stage.js +5 -0
  173. package/dist/scroll-stage.js.map +1 -1
  174. package/dist/search-field.js +1 -1
  175. package/dist/showcase.d.ts +9 -2
  176. package/dist/showcase.js +5 -0
  177. package/dist/showcase.js.map +1 -1
  178. package/dist/signature.d.ts +19 -0
  179. package/dist/signature.js +39 -0
  180. package/dist/signature.js.map +1 -0
  181. package/dist/site-footer.js +1 -1
  182. package/dist/sites.js +1 -1
  183. package/dist/sites.js.map +1 -1
  184. package/dist/slot.d.ts +1 -1
  185. package/dist/stat.js +1 -1
  186. package/dist/stat.js.map +1 -1
  187. package/dist/status-page.d.ts +4 -1
  188. package/dist/status-page.js +5 -0
  189. package/dist/status-page.js.map +1 -1
  190. package/dist/stuck.d.ts +27 -0
  191. package/dist/stuck.js +26 -0
  192. package/dist/stuck.js.map +1 -0
  193. package/dist/swipe-deck.d.ts +9 -2
  194. package/dist/swipe-deck.js +5 -0
  195. package/dist/swipe-deck.js.map +1 -1
  196. package/dist/switch.js +4 -32
  197. package/dist/switch.js.map +1 -1
  198. package/dist/tabs.d.ts +47 -8
  199. package/dist/tabs.js +62 -12
  200. package/dist/tabs.js.map +1 -1
  201. package/dist/tag-input.js +2 -2
  202. package/dist/tag-selector.js +1 -1
  203. package/dist/terminal-replay.d.ts +4 -1
  204. package/dist/terminal-replay.js +4 -0
  205. package/dist/terminal-replay.js.map +1 -1
  206. package/dist/tree-view.js +4 -0
  207. package/dist/tree-view.js.map +1 -1
  208. package/dist/update-prompt.d.ts +5 -1
  209. package/dist/update-prompt.js +4 -0
  210. package/dist/update-prompt.js.map +1 -1
  211. package/dist/video-player.js +7 -376
  212. package/dist/video-player.js.map +1 -1
  213. package/dist/video-trimmer.d.ts +6 -1
  214. package/dist/video-trimmer.js +4 -0
  215. package/dist/video-trimmer.js.map +1 -1
  216. package/package.json +141 -29
  217. package/registry/account-menu.json +9 -8
  218. package/registry/account-settings.json +2 -2
  219. package/registry/achievement.json +3 -4
  220. package/registry/action-bar.json +3 -3
  221. package/registry/action-sheet.json +1 -0
  222. package/registry/activity-feed.json +2 -1
  223. package/registry/agenda.json +1 -1
  224. package/registry/alert.json +1 -1
  225. package/registry/anatomy-plate.json +13 -5
  226. package/registry/app-header.json +470 -23
  227. package/registry/app-shell.json +2 -2
  228. package/registry/argument-card.json +1 -1
  229. package/registry/audio-player.json +1 -1
  230. package/registry/auth-layout.json +1 -1
  231. package/registry/avatar.json +3 -2
  232. package/registry/badge.json +2 -1
  233. package/registry/bird-plate.json +16 -2
  234. package/registry/button.json +7 -6
  235. package/registry/captcha.json +1 -1
  236. package/registry/card-grid.json +1 -1
  237. package/registry/card.json +7 -6
  238. package/registry/catalogue-page.json +3 -4
  239. package/registry/changelog-page.json +3 -5
  240. package/registry/chapter.json +1 -1
  241. package/registry/chat.json +3 -2
  242. package/registry/checkbox.json +4 -3
  243. package/registry/chip-link.json +2 -2
  244. package/registry/chip-row.json +2 -2
  245. package/registry/chip.json +3 -2
  246. package/registry/choice-grid.json +3 -4
  247. package/registry/code-block.json +1 -1
  248. package/registry/combobox.json +3 -2
  249. package/registry/command.json +2 -2
  250. package/registry/comparison-table.json +1 -1
  251. package/registry/component-page.json +14 -5
  252. package/registry/confirm-button.json +4 -4
  253. package/registry/contact-page.json +1 -1
  254. package/registry/continue-prompt.json +13 -5
  255. package/registry/countdown.json +4 -3
  256. package/registry/cover-hero.json +3 -4
  257. package/registry/cta-panel.json +1 -1
  258. package/registry/dashboard-layout.json +1 -1
  259. package/registry/data-table.json +63 -7
  260. package/registry/date-picker.json +5 -4
  261. package/registry/decision-list.json +1 -1
  262. package/registry/description-list.json +2 -1
  263. package/registry/detail-layout.json +30 -6
  264. package/registry/dialog.json +7 -6
  265. package/registry/docs-article-page.json +3 -4
  266. package/registry/docs-hub-page.json +1 -1
  267. package/registry/docs-layout.json +1 -1
  268. package/registry/docs-nav.json +1 -1
  269. package/registry/document-viewer.json +3 -5
  270. package/registry/doodle.json +209 -0
  271. package/registry/drop-overlay.json +30 -16
  272. package/registry/dropdown-menu.json +2 -2
  273. package/registry/elephant.json +15 -7
  274. package/registry/empty-state.json +2 -1
  275. package/registry/engine-flow.json +1 -1
  276. package/registry/error-page.json +3 -5
  277. package/registry/examples/app-header/family.d.ts +4 -0
  278. package/registry/examples/app-header/family.js +41 -0
  279. package/registry/examples/app-header/family.tsx +37 -0
  280. package/registry/examples/app-header/native/family.d.ts +4 -0
  281. package/registry/examples/app-header/native/family.dark.png +0 -0
  282. package/registry/examples/app-header/native/family.js +25 -0
  283. package/registry/examples/app-header/native/family.light.png +0 -0
  284. package/registry/examples/app-header/native/family.tsx +33 -0
  285. package/registry/examples/data-table/applicant-files.d.ts +4 -0
  286. package/registry/examples/data-table/applicant-files.js +24 -0
  287. package/registry/examples/data-table/applicant-files.tsx +23 -0
  288. package/registry/examples/data-table/checks.d.ts +4 -0
  289. package/registry/examples/data-table/checks.js +25 -0
  290. package/registry/examples/data-table/checks.tsx +24 -0
  291. package/registry/examples/detail-layout/profile.d.ts +4 -0
  292. package/registry/examples/detail-layout/profile.js +26 -0
  293. package/registry/examples/detail-layout/profile.tsx +21 -0
  294. package/registry/examples/doodle/kinds.d.ts +4 -0
  295. package/registry/examples/doodle/kinds.js +17 -0
  296. package/registry/examples/doodle/kinds.tsx +14 -0
  297. package/registry/examples/doodle/margin.d.ts +4 -0
  298. package/registry/examples/doodle/margin.js +17 -0
  299. package/registry/examples/doodle/margin.tsx +17 -0
  300. package/registry/examples/markdown/native/basic.dark.png +0 -0
  301. package/registry/examples/markdown/native/basic.light.png +0 -0
  302. package/registry/examples/markdown/native/wide-table.d.ts +4 -0
  303. package/registry/examples/markdown/native/wide-table.dark.png +0 -0
  304. package/registry/examples/markdown/native/wide-table.js +23 -0
  305. package/registry/examples/markdown/native/wide-table.light.png +0 -0
  306. package/registry/examples/markdown/native/wide-table.tsx +22 -0
  307. package/registry/examples/markdown/wide-table.d.ts +4 -0
  308. package/registry/examples/markdown/wide-table.js +28 -0
  309. package/registry/examples/markdown/wide-table.tsx +23 -0
  310. package/registry/examples/nav-bar/family-product.js +2 -4
  311. package/registry/examples/nav-bar/family-product.tsx +3 -5
  312. package/registry/examples/notification-preferences/default.d.ts +4 -0
  313. package/registry/examples/notification-preferences/default.js +29 -0
  314. package/registry/examples/notification-preferences/default.tsx +28 -0
  315. package/registry/examples/profile-card/banner.d.ts +4 -0
  316. package/registry/examples/profile-card/banner.js +28 -0
  317. package/registry/examples/profile-card/banner.tsx +24 -0
  318. package/registry/examples/profile-card/native/banner.d.ts +4 -0
  319. package/registry/examples/profile-card/native/banner.dark.png +0 -0
  320. package/registry/examples/profile-card/native/banner.js +22 -0
  321. package/registry/examples/profile-card/native/banner.light.png +0 -0
  322. package/registry/examples/profile-card/native/banner.tsx +18 -0
  323. package/registry/examples/quota-meter/default.d.ts +4 -0
  324. package/registry/examples/quota-meter/default.js +26 -0
  325. package/registry/examples/quota-meter/default.tsx +20 -0
  326. package/registry/examples/quota-meter/full.d.ts +4 -0
  327. package/registry/examples/quota-meter/full.js +25 -0
  328. package/registry/examples/quota-meter/full.tsx +18 -0
  329. package/registry/examples/rail-nav/shortcuts.d.ts +4 -0
  330. package/registry/examples/rail-nav/shortcuts.js +49 -0
  331. package/registry/examples/rail-nav/shortcuts.tsx +40 -0
  332. package/registry/examples/retro-tv/cabinet.d.ts +4 -0
  333. package/registry/examples/retro-tv/cabinet.js +12 -0
  334. package/registry/examples/retro-tv/cabinet.tsx +7 -0
  335. package/registry/examples/retro-tv/portable.d.ts +4 -0
  336. package/registry/examples/retro-tv/portable.js +12 -0
  337. package/registry/examples/retro-tv/portable.tsx +7 -0
  338. package/registry/examples/signature/both.d.ts +4 -0
  339. package/registry/examples/signature/both.js +11 -0
  340. package/registry/examples/signature/both.tsx +6 -0
  341. package/registry/examples/signature/variants.d.ts +4 -0
  342. package/registry/examples/signature/variants.js +14 -0
  343. package/registry/examples/signature/variants.tsx +11 -0
  344. package/registry/examples/stuck/card.d.ts +4 -0
  345. package/registry/examples/stuck/card.js +13 -0
  346. package/registry/examples/stuck/card.tsx +14 -0
  347. package/registry/examples/stuck/holds.d.ts +4 -0
  348. package/registry/examples/stuck/holds.js +12 -0
  349. package/registry/examples/stuck/holds.tsx +16 -0
  350. package/registry/examples/stuck/tag.d.ts +4 -0
  351. package/registry/examples/stuck/tag.js +12 -0
  352. package/registry/examples/stuck/tag.tsx +13 -0
  353. package/registry/examples/tabs/binder.d.ts +4 -0
  354. package/registry/examples/tabs/binder.js +22 -0
  355. package/registry/examples/tabs/binder.tsx +20 -0
  356. package/registry/examples/tabs/native/binder.d.ts +4 -0
  357. package/registry/examples/tabs/native/binder.dark.png +0 -0
  358. package/registry/examples/tabs/native/binder.js +26 -0
  359. package/registry/examples/tabs/native/binder.light.png +0 -0
  360. package/registry/examples/tabs/native/binder.tsx +22 -0
  361. package/registry/fab.json +1 -0
  362. package/registry/field.json +3 -2
  363. package/registry/file-upload.json +6 -11
  364. package/registry/filter-bar.json +2 -2
  365. package/registry/flock.json +3 -4
  366. package/registry/footnote.json +2 -3
  367. package/registry/force-update-screen.json +14 -5
  368. package/registry/form.json +5 -4
  369. package/registry/gallery-page.json +14 -5
  370. package/registry/genui.json +2 -2
  371. package/registry/glossary-term.json +1 -1
  372. package/registry/glossary.json +1 -1
  373. package/registry/glow-card.json +2 -2
  374. package/registry/goal-gauge.json +2 -1
  375. package/registry/header.json +1 -0
  376. package/registry/how-it-works-page.json +3 -5
  377. package/registry/image-cropper.json +13 -5
  378. package/registry/image-viewer.json +3 -4
  379. package/registry/index.json +301 -87
  380. package/registry/iso.json +1 -1
  381. package/registry/kanban.json +13 -5
  382. package/registry/kbd.json +1 -1
  383. package/registry/kpi-explained.json +2 -2
  384. package/registry/landing-page.json +3 -5
  385. package/registry/landscape.json +13 -5
  386. package/registry/language-switch.json +1 -1
  387. package/registry/legal-page.json +1 -1
  388. package/registry/link-card.json +1 -1
  389. package/registry/list.json +2 -1
  390. package/registry/loader.json +2 -1
  391. package/registry/longform-page.json +1 -1
  392. package/registry/maintenance-screen.json +14 -5
  393. package/registry/map.json +3 -2
  394. package/registry/markdown.json +86 -9
  395. package/registry/marketing-layout.json +1 -1
  396. package/registry/marquee.json +1 -1
  397. package/registry/mascot-quote.json +1 -1
  398. package/registry/mascot-state.json +12 -11
  399. package/registry/mascots.json +2 -1
  400. package/registry/match-dialog.json +14 -5
  401. package/registry/media-capture.json +14 -5
  402. package/registry/media-gallery.json +3 -5
  403. package/registry/media-grid.json +1 -1
  404. package/registry/media-picker.json +2 -3
  405. package/registry/meta-row.json +2 -1
  406. package/registry/meter.json +4 -3
  407. package/registry/nav-bar.json +100 -9
  408. package/registry/next-actions.json +1 -1
  409. package/registry/notification-preferences.json +250 -0
  410. package/registry/number-ticker.json +2 -1
  411. package/registry/onboarding.json +1 -0
  412. package/registry/opening-hours.json +1 -1
  413. package/registry/otp-input.json +1 -0
  414. package/registry/page-header.json +2 -2
  415. package/registry/page-hero.json +1 -1
  416. package/registry/page-index.json +1 -1
  417. package/registry/page.json +3 -3
  418. package/registry/pagination.json +2 -1
  419. package/registry/permission-prompt.json +2 -2
  420. package/registry/photo-grid.json +4 -4
  421. package/registry/pointer-light.json +6 -2
  422. package/registry/popover.json +2 -2
  423. package/registry/pricing-page.json +4 -6
  424. package/registry/product-page.json +14 -5
  425. package/registry/profile-card.json +232 -8
  426. package/registry/progress.json +4 -3
  427. package/registry/promise-card.json +13 -5
  428. package/registry/pull-to-refresh.json +1 -0
  429. package/registry/quota-meter.json +308 -0
  430. package/registry/radio-group.json +4 -3
  431. package/registry/rail-nav.json +48 -10
  432. package/registry/recipes.json +1 -1
  433. package/registry/retro-tv.json +478 -0
  434. package/registry/router.json +3 -3
  435. package/registry/screen.json +1 -0
  436. package/registry/scroll-stage.json +14 -5
  437. package/registry/search-field.json +3 -2
  438. package/registry/section-backdrop.json +1 -1
  439. package/registry/segmented.json +1 -0
  440. package/registry/separator.json +2 -2
  441. package/registry/service-card.json +1 -1
  442. package/registry/settings-layout.json +2 -1
  443. package/registry/showcase.json +14 -5
  444. package/registry/signature.json +185 -0
  445. package/registry/site-footer.json +3 -3
  446. package/registry/sites.json +2 -2
  447. package/registry/skeleton.json +2 -1
  448. package/registry/skip-link.json +1 -1
  449. package/registry/slider.json +5 -4
  450. package/registry/slot-picker.json +1 -1
  451. package/registry/slot.json +2 -2
  452. package/registry/specimen-tag.json +1 -1
  453. package/registry/spinner.json +4 -3
  454. package/registry/splash-handoff.json +1 -0
  455. package/registry/split-view.json +1 -1
  456. package/registry/stage-banner.json +2 -3
  457. package/registry/stat.json +2 -2
  458. package/registry/status-page.json +13 -5
  459. package/registry/step-progress.json +2 -1
  460. package/registry/step-showcase.json +3 -5
  461. package/registry/stepper.json +2 -1
  462. package/registry/sticky-action.json +1 -1
  463. package/registry/stuck.json +219 -0
  464. package/registry/swipe-deck.json +14 -5
  465. package/registry/swipeable-row.json +1 -0
  466. package/registry/switch.json +3 -2
  467. package/registry/tab-bar.json +1 -0
  468. package/registry/tabs.json +154 -22
  469. package/registry/tag-input.json +1 -1
  470. package/registry/tag-selector.json +2 -1
  471. package/registry/taped-photo.json +1 -1
  472. package/registry/terminal-replay.json +14 -5
  473. package/registry/text-style.json +5 -5
  474. package/registry/theme.json +2 -1
  475. package/registry/toast.json +2 -1
  476. package/registry/toc.json +1 -1
  477. package/registry/tooltip.json +2 -2
  478. package/registry/tree-view.json +6 -2
  479. package/registry/txt.json +1 -0
  480. package/registry/update-prompt.json +14 -5
  481. package/registry/upload-queue.json +1 -1
  482. package/registry/verified-badge.json +6 -6
  483. package/registry/vertical-video.json +8 -3
  484. package/registry/video-player.json +5 -6
  485. package/registry/video-trimmer.json +13 -5
  486. package/registry/virtual.json +2 -2
  487. package/registry/waveform.json +4 -3
  488. package/dist/chunk-4LYKBSOG.js.map +0 -1
  489. package/dist/chunk-HHFWK2HH.js +0 -163
  490. package/dist/chunk-HHFWK2HH.js.map +0 -1
  491. package/dist/chunk-R3LTSMS5.js +0 -75
  492. package/dist/chunk-R3LTSMS5.js.map +0 -1
  493. package/dist/chunk-YGIN2YIY.js.map +0 -1
  494. package/dist/chunk-YHKTYFOQ.js.map +0 -1
  495. /package/dist/{chunk-ZQW7LF4Y.js.map → chunk-OIMXKRXF.js.map} +0 -0
@@ -0,0 +1,32 @@
1
+ /** The body of `GET /api/me`. `account` is the product's own shape, present only when `signedIn`. */
2
+ interface MeResponse<TAccount = unknown> {
3
+ signedIn: boolean;
4
+ /** Whether the product accepts new accounts (its `signupOpen` setting). */
5
+ signupOpen: boolean;
6
+ account?: TAccount;
7
+ }
8
+ /** The headers of the answer: per-visitor, never cached, varying with the session cookie. */
9
+ declare const meHeaders: {
10
+ readonly "Cache-Control": "private, no-store";
11
+ readonly Vary: "Cookie";
12
+ };
13
+ /** The 200 answer of `GET /api/me` for a route handler. A signed-out visitor never gets an `account`. */
14
+ declare function meResponse<TAccount>({ signedIn, signupOpen, account }: MeResponse<TAccount>): Response;
15
+ /** A Standard Schema of the body, for `krizakaFetch`: refuses anything that is not the contract. */
16
+ declare const meSchema: {
17
+ readonly "~standard": {
18
+ readonly version: 1;
19
+ readonly vendor: "krizaka";
20
+ readonly validate: (value: unknown) => {
21
+ value: MeResponse;
22
+ issues?: undefined;
23
+ } | {
24
+ issues: {
25
+ message: string;
26
+ }[];
27
+ value?: undefined;
28
+ };
29
+ };
30
+ };
31
+
32
+ export { type MeResponse, meHeaders, meResponse, meSchema };
@@ -0,0 +1,23 @@
1
+ // src/nav-bar/me.ts
2
+ var meHeaders = { "Cache-Control": "private, no-store", Vary: "Cookie" };
3
+ function meResponse({ signedIn, signupOpen, account }) {
4
+ const body = signedIn && account !== void 0 ? { signedIn, signupOpen, account } : { signedIn: false, signupOpen };
5
+ return new Response(JSON.stringify(body), { status: 200, headers: { ...meHeaders, "Content-Type": "application/json" } });
6
+ }
7
+ var meSchema = {
8
+ "~standard": {
9
+ version: 1,
10
+ vendor: "krizaka",
11
+ validate(value) {
12
+ const v = value;
13
+ if (v && typeof v === "object" && typeof v.signedIn === "boolean" && typeof v.signupOpen === "boolean" && (v.signedIn || !("account" in v))) return { value: v };
14
+ return { issues: [{ message: "Expected { signedIn: boolean, signupOpen: boolean, account?: \u2026 }." }] };
15
+ }
16
+ }
17
+ };
18
+ export {
19
+ meHeaders,
20
+ meResponse,
21
+ meSchema
22
+ };
23
+ //# sourceMappingURL=me.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/nav-bar/me.ts"],"sourcesContent":["// The « who is here » contract, the same for every product: `GET /api/me` answers 200 `{ signedIn, signupOpen, account? }`\n// with `Cache-Control: private, no-store` and `Vary: Cookie`. A public page asking who is there is not an error: signed\n// out is a 200 with `signedIn: false`, never a 401.\n\n/** The body of `GET /api/me`. `account` is the product's own shape, present only when `signedIn`. */\nexport interface MeResponse<TAccount = unknown> {\n signedIn: boolean;\n /** Whether the product accepts new accounts (its `signupOpen` setting). */\n signupOpen: boolean;\n account?: TAccount;\n}\n\n/** The headers of the answer: per-visitor, never cached, varying with the session cookie. */\nexport const meHeaders = { \"Cache-Control\": \"private, no-store\", Vary: \"Cookie\" } as const;\n\n/** The 200 answer of `GET /api/me` for a route handler. A signed-out visitor never gets an `account`. */\nexport function meResponse<TAccount>({ signedIn, signupOpen, account }: MeResponse<TAccount>): Response {\n const body: MeResponse<TAccount> = signedIn && account !== undefined ? { signedIn, signupOpen, account } : { signedIn: false, signupOpen };\n return new Response(JSON.stringify(body), { status: 200, headers: { ...meHeaders, \"Content-Type\": \"application/json\" } });\n}\n\n/** A Standard Schema of the body, for `krizakaFetch`: refuses anything that is not the contract. */\nexport const meSchema = {\n \"~standard\": {\n version: 1,\n vendor: \"krizaka\",\n validate(value: unknown) {\n const v = value as Partial<MeResponse> | null;\n if (v && typeof v === \"object\" && typeof v.signedIn === \"boolean\" && typeof v.signupOpen === \"boolean\" && (v.signedIn || !(\"account\" in v))) return { value: v as MeResponse };\n return { issues: [{ message: \"Expected { signedIn: boolean, signupOpen: boolean, account?: … }.\" }] };\n },\n },\n} as const;\n"],"mappings":";AAaO,IAAM,YAAY,EAAE,iBAAiB,qBAAqB,MAAM,SAAS;AAGzE,SAAS,WAAqB,EAAE,UAAU,YAAY,QAAQ,GAAmC;AACtG,QAAM,OAA6B,YAAY,YAAY,SAAY,EAAE,UAAU,YAAY,QAAQ,IAAI,EAAE,UAAU,OAAO,WAAW;AACzI,SAAO,IAAI,SAAS,KAAK,UAAU,IAAI,GAAG,EAAE,QAAQ,KAAK,SAAS,EAAE,GAAG,WAAW,gBAAgB,mBAAmB,EAAE,CAAC;AAC1H;AAGO,IAAM,WAAW;AAAA,EACtB,aAAa;AAAA,IACX,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,SAAS,OAAgB;AACvB,YAAM,IAAI;AACV,UAAI,KAAK,OAAO,MAAM,YAAY,OAAO,EAAE,aAAa,aAAa,OAAO,EAAE,eAAe,cAAc,EAAE,YAAY,EAAE,aAAa,IAAK,QAAO,EAAE,OAAO,EAAgB;AAC7K,aAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,yEAAoE,CAAC,EAAE;AAAA,IACtG;AAAA,EACF;AACF;","names":[]}
package/dist/nav-bar.d.ts CHANGED
@@ -4,6 +4,63 @@ import * as React from 'react';
4
4
  import { LanguageSwitchProps } from './language-switch.js';
5
5
  import { S as SiteId, F as FamilyLabels } from './sites-DlR8jicc.js';
6
6
 
7
+ /** The body of `GET /api/me`. `account` is the product's own shape, present only when `signedIn`. */
8
+ interface MeResponse<TAccount = unknown> {
9
+ signedIn: boolean;
10
+ /** Whether the product accepts new accounts (its `signupOpen` setting). */
11
+ signupOpen: boolean;
12
+ account?: TAccount;
13
+ }
14
+ /** The headers of the answer: per-visitor, never cached, varying with the session cookie. */
15
+ declare const meHeaders: {
16
+ readonly "Cache-Control": "private, no-store";
17
+ readonly Vary: "Cookie";
18
+ };
19
+ /** The 200 answer of `GET /api/me` for a route handler. A signed-out visitor never gets an `account`. */
20
+ declare function meResponse<TAccount>({ signedIn, signupOpen, account }: MeResponse<TAccount>): Response;
21
+ /** A Standard Schema of the body, for `krizakaFetch`: refuses anything that is not the contract. */
22
+ declare const meSchema: {
23
+ readonly "~standard": {
24
+ readonly version: 1;
25
+ readonly vendor: "krizaka";
26
+ readonly validate: (value: unknown) => {
27
+ value: MeResponse;
28
+ issues?: undefined;
29
+ } | {
30
+ issues: {
31
+ message: string;
32
+ }[];
33
+ value?: undefined;
34
+ };
35
+ };
36
+ };
37
+
38
+ type NavBarSessionProps<TAccount = unknown> = {
39
+ /**
40
+ * Where the contract is served.
41
+ * @default "/api/me"
42
+ */
43
+ endpoint?: string;
44
+ /** Signed out: the product's `ProductBarActions`, told whether sign-up is open. */
45
+ signedOut: (state: {
46
+ signupOpen: boolean;
47
+ }) => React.ReactNode;
48
+ /** Signed in: the product's `AccountMenu`, given the account. */
49
+ signedIn: (account: TAccount, state: {
50
+ signupOpen: boolean;
51
+ }) => React.ReactNode;
52
+ /** The hint's words while the answer is on its way (“Checking your session…”) — passed translated. */
53
+ hint: string;
54
+ /** Classes of the loading placeholder. */
55
+ className?: string;
56
+ };
57
+ declare const sessionKey: (endpoint: string) => readonly ["krizaka", "session", string];
58
+ /**
59
+ * The bar's session island: put it in `NavBar.Actions`. While the answer is on its way it reserves the place and says
60
+ * `hint` politely; if the request fails it shows the signed-out actions (the visitor can still sign in).
61
+ */
62
+ declare function NavBarSession<TAccount = unknown>({ endpoint, signedOut, signedIn, hint, className }: NavBarSessionProps<TAccount>): React.JSX.Element;
63
+
7
64
  declare const navBar: tailwind_variants.TVReturnType<{
8
65
  floating: {
9
66
  true: {
@@ -295,7 +352,7 @@ type NavBarRepoProps = Omit<React.ComponentProps<"a">, "children"> & {
295
352
  /** The site's repository on GitHub, an icon link of `NavBar.Actions`. */
296
353
  declare function NavBarRepo({ label, className, ...props }: NavBarRepoProps): React.JSX.Element;
297
354
  /**
298
- * `NavBar.Root/Brand/Family/Badge/Items/Link/Menu/MenuLink/Actions/Repo/Language/Mobile/MobileGroup/MobilePreferences/MobileLink` — the Krizaka navigation bar,
355
+ * `NavBar.Root/Brand/Family/Badge/Items/Link/Menu/MenuLink/Actions/Repo/Session/Language/Mobile/MobileGroup/MobilePreferences/MobileLink` — the Krizaka navigation bar,
299
356
  * the same on every site of the family: floating, tightening on scroll, the family switcher on the brand, one light
300
357
  * gliding between its items, accessible menus, a mobile panel.
301
358
  */
@@ -310,6 +367,7 @@ declare const NavBar: {
310
367
  MenuLink: typeof NavBarMenuLink;
311
368
  Actions: typeof NavBarActions;
312
369
  Repo: typeof NavBarRepo;
370
+ Session: typeof NavBarSession;
313
371
  Language: typeof NavBarLanguage;
314
372
  Mobile: typeof NavBarMobile;
315
373
  MobilePreferences: typeof NavBarMobilePreferences;
@@ -380,4 +438,4 @@ type ProductBarActionsProps = {
380
438
  /** The product bar's actions: use the app. Put it in `NavBar.Actions` (`placement="bar"`) or in `NavBar.Mobile` (`placement="panel"`). */
381
439
  declare function ProductBarActions({ signIn, tryIt, signupOpen, linkAs: Link, placement }: ProductBarActionsProps): React.JSX.Element;
382
440
 
383
- export { NavBar, NavBarActions, NavBarBadge, type NavBarBadgeProps, NavBarBrand, type NavBarBrandProps, NavBarFamily, type NavBarFamilyProps, NavBarItems, type NavBarItemsProps, NavBarLanguage, type NavBarLanguageProps, NavBarLink, type NavBarLinkProps, NavBarMenu, NavBarMenuLink, type NavBarMenuLinkProps, type NavBarMenuProps, NavBarMobile, NavBarMobileGroup, type NavBarMobileGroupProps, NavBarMobileLink, type NavBarMobileLinkProps, NavBarMobilePreferences, type NavBarMobilePreferencesProps, type NavBarMobileProps, NavBarRepo, type NavBarRepoProps, NavBarRoot, type NavBarRootProps, type PlacePanel, ProductBarAction, ProductBarActions, type ProductBarActionsProps, type ProductBarLink, type ProductBarState, navBar, placePanel, productBarActions };
441
+ export { type MeResponse, NavBar, NavBarActions, NavBarBadge, type NavBarBadgeProps, NavBarBrand, type NavBarBrandProps, NavBarFamily, type NavBarFamilyProps, NavBarItems, type NavBarItemsProps, NavBarLanguage, type NavBarLanguageProps, NavBarLink, type NavBarLinkProps, NavBarMenu, NavBarMenuLink, type NavBarMenuLinkProps, type NavBarMenuProps, NavBarMobile, NavBarMobileGroup, type NavBarMobileGroupProps, NavBarMobileLink, type NavBarMobileLinkProps, NavBarMobilePreferences, type NavBarMobilePreferencesProps, type NavBarMobileProps, NavBarRepo, type NavBarRepoProps, NavBarRoot, type NavBarRootProps, NavBarSession, type NavBarSessionProps, type PlacePanel, ProductBarAction, ProductBarActions, type ProductBarActionsProps, type ProductBarLink, type ProductBarState, meHeaders, meResponse, meSchema, navBar, placePanel, productBarActions, sessionKey };
package/dist/nav-bar.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  GitHubGlyph,
8
8
  familyLabels,
9
9
  sitesByGroup
10
- } from "./chunk-4LYKBSOG.js";
10
+ } from "./chunk-USPOIQV5.js";
11
11
  import {
12
12
  useSlidingIndicator
13
13
  } from "./chunk-4QN5YJ3D.js";
@@ -21,6 +21,24 @@ import {
21
21
  cn
22
22
  } from "./chunk-NSLXEDIS.js";
23
23
 
24
+ // src/nav-bar/me.ts
25
+ var meHeaders = { "Cache-Control": "private, no-store", Vary: "Cookie" };
26
+ function meResponse({ signedIn, signupOpen, account }) {
27
+ const body = signedIn && account !== void 0 ? { signedIn, signupOpen, account } : { signedIn: false, signupOpen };
28
+ return new Response(JSON.stringify(body), { status: 200, headers: { ...meHeaders, "Content-Type": "application/json" } });
29
+ }
30
+ var meSchema = {
31
+ "~standard": {
32
+ version: 1,
33
+ vendor: "krizaka",
34
+ validate(value) {
35
+ const v = value;
36
+ if (v && typeof v === "object" && typeof v.signedIn === "boolean" && typeof v.signupOpen === "boolean" && (v.signedIn || !("account" in v))) return { value: v };
37
+ return { issues: [{ message: "Expected { signedIn: boolean, signupOpen: boolean, account?: \u2026 }." }] };
38
+ }
39
+ }
40
+ };
41
+
24
42
  // src/nav-bar/nav-bar.tsx
25
43
  import { NavigationMenu as Nav, Slot } from "radix-ui";
26
44
  import * as React from "react";
@@ -34,8 +52,28 @@ function placePanel({ trigger, root, panel, window: window2, gutter = 16 }) {
34
52
  return Math.round(Math.max(nearest, Math.min(wanted, farthest)));
35
53
  }
36
54
 
55
+ // src/nav-bar/session.tsx
56
+ import { krizakaFetch, useQuery } from "@krizaka/query";
57
+ import { Fragment, jsx } from "react/jsx-runtime";
58
+ var sessionKey = (endpoint) => ["krizaka", "session", endpoint];
59
+ function NavBarSession({ endpoint = "/api/me", signedOut, signedIn, hint, className }) {
60
+ const { data, isPending, isError } = useQuery({
61
+ queryKey: sessionKey(endpoint),
62
+ queryFn: ({ signal }) => krizakaFetch(endpoint, { schema: meSchema, signal, cache: "no-store" }),
63
+ staleTime: 3e4,
64
+ retry: false,
65
+ throwOnError: false
66
+ });
67
+ if (isPending) {
68
+ return /* @__PURE__ */ jsx("span", { role: "status", "aria-live": "polite", "data-state": "loading", className, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: hint }) });
69
+ }
70
+ const me = !isError && data ? data : { signedIn: false, signupOpen: false };
71
+ const state = { signupOpen: me.signupOpen };
72
+ return /* @__PURE__ */ jsx(Fragment, { children: me.signedIn && me.account !== void 0 ? signedIn(me.account, state) : signedOut(state) });
73
+ }
74
+
37
75
  // src/nav-bar/nav-bar.tsx
38
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
76
+ import { Fragment as Fragment2, jsx as jsx2, jsxs } from "react/jsx-runtime";
39
77
  var navBar = tv({
40
78
  slots: {
41
79
  root: "group/nav relative z-40 mx-auto flex h-14 w-full items-center gap-2 border-border-subtle bg-surface-1 transition-[height,background-color,border-color,box-shadow] duration-300 motion-reduce:transition-none data-compact:h-12 data-compact:border-border-default data-compact:bg-surface-1 data-compact:shadow-lg",
@@ -109,11 +147,11 @@ function NavBarRoot({ label, compactAfter = 24, floating = true, className, chil
109
147
  return () => window.removeEventListener("scroll", onScroll);
110
148
  }, [compactAfter]);
111
149
  const ctx = React.useMemo(() => ({ label, open, setOpen, panelId }), [label, open, panelId]);
112
- return /* @__PURE__ */ jsx(Context.Provider, { value: ctx, children: /* @__PURE__ */ jsx("header", { "data-compact": compact ? "" : void 0, "data-floating": floating, className: navBar({ floating }).root({ className }), ...props, children }) });
150
+ return /* @__PURE__ */ jsx2(Context.Provider, { value: ctx, children: /* @__PURE__ */ jsx2("header", { "data-compact": compact ? "" : void 0, "data-floating": floating, className: navBar({ floating }).root({ className }), ...props, children }) });
113
151
  }
114
152
  function NavBarBrand({ asChild, className, ...props }) {
115
153
  const Comp = asChild ? Slot.Root : "a";
116
- return /* @__PURE__ */ jsx(Comp, { className: s.brand({ className }), ...props });
154
+ return /* @__PURE__ */ jsx2(Comp, { className: s.brand({ className }), ...props });
117
155
  }
118
156
  function NavBarItems({ className, children, value: valueProp, defaultValue, onValueChange, delayDuration = 200, ...props }) {
119
157
  const { label } = useNavBar();
@@ -155,14 +193,14 @@ function NavBarItems({ className, children, value: valueProp, defaultValue, onVa
155
193
  window.removeEventListener("resize", place);
156
194
  };
157
195
  }, [value]);
158
- return /* @__PURE__ */ jsx(ItemsContext.Provider, { value: items, children: /* @__PURE__ */ jsxs(Nav.Root, { ref: root, "aria-label": label, className: s.items({ className }), value, onValueChange: setValue, delayDuration, ...props, children: [
159
- /* @__PURE__ */ jsx(Nav.List, { ref, className: s.list(), ...handlers, children }),
160
- /* @__PURE__ */ jsx(Nav.Viewport, { ref: viewport, className: s.viewport() })
196
+ return /* @__PURE__ */ jsx2(ItemsContext.Provider, { value: items, children: /* @__PURE__ */ jsxs(Nav.Root, { ref: root, "aria-label": label, className: s.items({ className }), value, onValueChange: setValue, delayDuration, ...props, children: [
197
+ /* @__PURE__ */ jsx2(Nav.List, { ref, className: s.list(), ...handlers, children }),
198
+ /* @__PURE__ */ jsx2(Nav.Viewport, { ref: viewport, className: s.viewport() })
161
199
  ] }) });
162
200
  }
163
201
  function NavBarLink({ active, className, itemClassName, onPointerEnter, ...props }) {
164
202
  const { close } = React.useContext(ItemsContext);
165
- return /* @__PURE__ */ jsx(Nav.Item, { className: itemClassName, children: /* @__PURE__ */ jsx(
203
+ return /* @__PURE__ */ jsx2(Nav.Item, { className: itemClassName, children: /* @__PURE__ */ jsx2(
166
204
  Nav.Link,
167
205
  {
168
206
  "data-nav-item": "",
@@ -185,34 +223,34 @@ function NavBarMenu({ label, active, columns = 1, inlineUpTo = 3, inlineFrom = "
185
223
  const dropdown = (hide) => /* @__PURE__ */ jsxs(Nav.Item, { className: cn(hide, className), ...props, children: [
186
224
  /* @__PURE__ */ jsxs(Nav.Trigger, { "data-nav-item": "", "data-active": active ? "" : void 0, className: cn(s.item(), "group/trigger"), children: [
187
225
  label,
188
- /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", className: s.chevron(), fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "m6 9 6 6 6-6" }) })
226
+ /* @__PURE__ */ jsx2("svg", { viewBox: "0 0 24 24", className: s.chevron(), fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": true, children: /* @__PURE__ */ jsx2("path", { d: "m6 9 6 6 6-6" }) })
189
227
  ] }),
190
- /* @__PURE__ */ jsx(Nav.Content, { className: cn(s.panel(), columns === 2 && s.panelWide()), children })
228
+ /* @__PURE__ */ jsx2(Nav.Content, { className: cn(s.panel(), columns === 2 && s.panelWide()), children })
191
229
  ] });
192
230
  const inline = links.length > 0 && links.length <= inlineUpTo && links.every((c) => React.isValidElement(c) && c.type === NavBarMenuLink);
193
231
  if (inline) {
194
- return /* @__PURE__ */ jsxs(Fragment, { children: [
232
+ return /* @__PURE__ */ jsxs(Fragment2, { children: [
195
233
  inlineFrom !== "md" && dropdown(DROPDOWN_HIDE[inlineFrom]),
196
234
  links.map((link) => {
197
235
  const { title, href, active: here, asChild, children: child, icon: _icon, description: _description, className: linkClass, ...rest } = link.props;
198
- return /* @__PURE__ */ jsx(NavBarLink, { asChild, href: asChild ? void 0 : href, active: here, className: linkClass, itemClassName: INLINE_HIDE[inlineFrom], ...rest, children: asChild && React.isValidElement(child) ? React.cloneElement(child, void 0, title) : title }, link.key);
236
+ return /* @__PURE__ */ jsx2(NavBarLink, { asChild, href: asChild ? void 0 : href, active: here, className: linkClass, itemClassName: INLINE_HIDE[inlineFrom], ...rest, children: asChild && React.isValidElement(child) ? React.cloneElement(child, void 0, title) : title }, link.key);
199
237
  })
200
238
  ] });
201
239
  }
202
240
  return dropdown("");
203
241
  }
204
242
  function NavBarMenuLink({ title, description, icon, active, href, className, asChild, children, ...props }) {
205
- const body = /* @__PURE__ */ jsxs(Fragment, { children: [
206
- icon && /* @__PURE__ */ jsx("span", { className: s.menuIcon(), children: icon }),
243
+ const body = /* @__PURE__ */ jsxs(Fragment2, { children: [
244
+ icon && /* @__PURE__ */ jsx2("span", { className: s.menuIcon(), children: icon }),
207
245
  /* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1", children: [
208
- /* @__PURE__ */ jsx("span", { className: s.menuTitle(), children: title }),
209
- description && /* @__PURE__ */ jsx("span", { className: s.menuText(), children: description })
246
+ /* @__PURE__ */ jsx2("span", { className: s.menuTitle(), children: title }),
247
+ description && /* @__PURE__ */ jsx2("span", { className: s.menuText(), children: description })
210
248
  ] })
211
249
  ] });
212
- return /* @__PURE__ */ jsx(Nav.Link, { asChild, href: asChild ? void 0 : href, active, "aria-current": active ? "page" : void 0, "data-active": active ? "" : void 0, className: s.menuLink({ className }), ...props, children: asChild && React.isValidElement(children) ? React.cloneElement(children, void 0, body) : body });
250
+ return /* @__PURE__ */ jsx2(Nav.Link, { asChild, href: asChild ? void 0 : href, active, "aria-current": active ? "page" : void 0, "data-active": active ? "" : void 0, className: s.menuLink({ className }), ...props, children: asChild && React.isValidElement(children) ? React.cloneElement(children, void 0, body) : body });
213
251
  }
214
252
  function NavBarActions({ className, ...props }) {
215
- return /* @__PURE__ */ jsx("div", { className: s.actions({ className }), ...props });
253
+ return /* @__PURE__ */ jsx2("div", { className: s.actions({ className }), ...props });
216
254
  }
217
255
  function NavBarMobile({ openLabel, closeLabel, className, children, ...props }) {
218
256
  const { label, open, setOpen, panelId } = useNavBar();
@@ -236,9 +274,9 @@ function NavBarMobile({ openLabel, closeLabel, className, children, ...props })
236
274
  document.removeEventListener("pointerdown", onPress);
237
275
  };
238
276
  }, [open, setOpen, panelId]);
239
- return /* @__PURE__ */ jsxs(Fragment, { children: [
240
- /* @__PURE__ */ jsx("button", { ref: toggle, type: "button", "aria-expanded": open, "aria-controls": panelId, "aria-label": open ? closeLabel : openLabel, onClick: () => setOpen(!open), className: s.toggle(), children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", className: "h-4.5 w-4.5", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": true, children: open ? /* @__PURE__ */ jsx("path", { d: "M18 6 6 18M6 6l12 12" }) : /* @__PURE__ */ jsx("path", { d: "M4 7h16M4 12h16M4 17h10" }) }) }),
241
- open && /* @__PURE__ */ jsx(
277
+ return /* @__PURE__ */ jsxs(Fragment2, { children: [
278
+ /* @__PURE__ */ jsx2("button", { ref: toggle, type: "button", "aria-expanded": open, "aria-controls": panelId, "aria-label": open ? closeLabel : openLabel, onClick: () => setOpen(!open), className: s.toggle(), children: /* @__PURE__ */ jsx2("svg", { viewBox: "0 0 24 24", className: "h-4.5 w-4.5", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": true, children: open ? /* @__PURE__ */ jsx2("path", { d: "M18 6 6 18M6 6l12 12" }) : /* @__PURE__ */ jsx2("path", { d: "M4 7h16M4 12h16M4 17h10" }) }) }),
279
+ open && /* @__PURE__ */ jsx2(
242
280
  "nav",
243
281
  {
244
282
  id: panelId,
@@ -248,7 +286,7 @@ function NavBarMobile({ openLabel, closeLabel, className, children, ...props })
248
286
  if (e.target.closest("a")) setOpen(false);
249
287
  },
250
288
  ...props,
251
- children: /* @__PURE__ */ jsx(MobileContext.Provider, { value: true, children })
289
+ children: /* @__PURE__ */ jsx2(MobileContext.Provider, { value: true, children })
252
290
  }
253
291
  )
254
292
  ] });
@@ -256,13 +294,13 @@ function NavBarMobile({ openLabel, closeLabel, className, children, ...props })
256
294
  function NavBarMobileGroup({ label, className, children, ...props }) {
257
295
  const id = React.useId();
258
296
  return /* @__PURE__ */ jsxs("div", { role: "group", "aria-labelledby": id, className: s.mobileGroup({ className }), ...props, children: [
259
- /* @__PURE__ */ jsx("p", { id, className: s.mobileGroupTitle(), children: label }),
297
+ /* @__PURE__ */ jsx2("p", { id, className: s.mobileGroupTitle(), children: label }),
260
298
  children
261
299
  ] });
262
300
  }
263
301
  function NavBarMobileLink({ active, asChild, className, ...props }) {
264
302
  const Comp = asChild ? Slot.Root : "a";
265
- return /* @__PURE__ */ jsx(Comp, { "aria-current": active ? "page" : void 0, className: s.mobileLink({ className }), ...props });
303
+ return /* @__PURE__ */ jsx2(Comp, { "aria-current": active ? "page" : void 0, className: s.mobileLink({ className }), ...props });
266
304
  }
267
305
  var tagTone = {
268
306
  upcoming: "bg-accent-soft text-fg ring-1 ring-inset ring-accent/40",
@@ -273,8 +311,8 @@ var tagTone = {
273
311
  function FamilyName({ site, current, labels }) {
274
312
  return /* @__PURE__ */ jsxs("span", { className: s.familyName(), children: [
275
313
  site.name,
276
- site.status !== "released" && /* @__PURE__ */ jsx("span", { className: cn(s.familyTag(), tagTone[site.status]), children: labels.status[site.status] }),
277
- current && /* @__PURE__ */ jsx("span", { className: cn(s.familyTag(), tagTone.current), children: labels.current })
314
+ site.status !== "released" && /* @__PURE__ */ jsx2("span", { className: cn(s.familyTag(), tagTone[site.status]), children: labels.status[site.status] }),
315
+ current && /* @__PURE__ */ jsx2("span", { className: cn(s.familyTag(), tagTone.current), children: labels.current })
278
316
  ] });
279
317
  }
280
318
  function NavBarFamily({ current, labels = familyLabels.en, defaultOpen, className }) {
@@ -283,12 +321,12 @@ function NavBarFamily({ current, labels = familyLabels.en, defaultOpen, classNam
283
321
  const groups = sitesByGroup();
284
322
  if (inMobile) {
285
323
  return /* @__PURE__ */ jsxs("div", { role: "group", "aria-labelledby": `${id}-family`, className: s.mobileFamily({ className }), children: [
286
- /* @__PURE__ */ jsx("p", { id: `${id}-family`, className: s.familyGroupTitle(), children: labels.family }),
324
+ /* @__PURE__ */ jsx2("p", { id: `${id}-family`, className: s.familyGroupTitle(), children: labels.family }),
287
325
  groups.map(({ group, sites }) => /* @__PURE__ */ jsxs("div", { children: [
288
- group !== "krizaka" && /* @__PURE__ */ jsx("p", { id: `${id}-${group}`, className: s.familyGroupTitle(), children: labels.groups[group] }),
289
- /* @__PURE__ */ jsx("ul", { "aria-labelledby": group !== "krizaka" ? `${id}-${group}` : `${id}-family`, className: "grid gap-0.5", children: sites.map((site) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("a", { href: site.url, "data-current": site.id === current ? "" : void 0, "aria-current": site.id === current ? "true" : void 0, className: s.mobileFamilyLink(), children: [
290
- /* @__PURE__ */ jsx("span", { className: s.familyMark(), children: /* @__PURE__ */ jsx(FamilyMark, { mark: site.mark, size: 24 }) }),
291
- /* @__PURE__ */ jsx(FamilyName, { site, current: site.id === current, labels })
326
+ group !== "krizaka" && /* @__PURE__ */ jsx2("p", { id: `${id}-${group}`, className: s.familyGroupTitle(), children: labels.groups[group] }),
327
+ /* @__PURE__ */ jsx2("ul", { "aria-labelledby": group !== "krizaka" ? `${id}-${group}` : `${id}-family`, className: "grid gap-0.5", children: sites.map((site) => /* @__PURE__ */ jsx2("li", { children: /* @__PURE__ */ jsxs("a", { href: site.url, "data-current": site.id === current ? "" : void 0, "aria-current": site.id === current ? "true" : void 0, className: s.mobileFamilyLink(), children: [
328
+ /* @__PURE__ */ jsx2("span", { className: s.familyMark(), children: /* @__PURE__ */ jsx2(FamilyMark, { mark: site.mark, size: 24 }) }),
329
+ /* @__PURE__ */ jsx2(FamilyName, { site, current: site.id === current, labels })
292
330
  ] }) }, site.id)) })
293
331
  ] }, group))
294
332
  ] });
@@ -296,20 +334,20 @@ function NavBarFamily({ current, labels = familyLabels.en, defaultOpen, classNam
296
334
  const noHover = (e) => e.preventDefault();
297
335
  const columns = [groups.filter((g) => g.group === "krizaka" || g.group === "products"), groups.filter((g) => g.group === "open-source" || g.group === "github")];
298
336
  return /* @__PURE__ */ jsxs(Nav.Root, { "aria-label": labels.family, defaultValue: defaultOpen ? "family" : void 0, className: s.family({ className }), children: [
299
- /* @__PURE__ */ jsx(Nav.List, { className: "flex", children: /* @__PURE__ */ jsxs(Nav.Item, { value: "family", children: [
300
- /* @__PURE__ */ jsx(Nav.Trigger, { "aria-label": labels.family, onPointerMove: noHover, onPointerLeave: noHover, className: s.familyTrigger(), children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", className: s.chevron(), fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "m6 9 6 6 6-6" }) }) }),
301
- /* @__PURE__ */ jsx(Nav.Content, { onPointerLeave: noHover, className: s.familyPanel(), children: columns.map((column, i) => /* @__PURE__ */ jsx("div", { className: "grid content-start gap-3", children: column.map(({ group, sites }) => /* @__PURE__ */ jsxs("div", { children: [
302
- /* @__PURE__ */ jsx("p", { id: `${id}-${group}`, className: s.familyGroupTitle(), children: labels.groups[group] }),
303
- /* @__PURE__ */ jsx("ul", { "aria-labelledby": `${id}-${group}`, className: "grid gap-0.5", children: sites.map((site) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(Nav.Link, { href: site.url, "data-current": site.id === current ? "" : void 0, "aria-current": site.id === current ? "true" : void 0, className: s.familyLink(), children: [
304
- /* @__PURE__ */ jsx("span", { className: s.familyMark(), children: /* @__PURE__ */ jsx(FamilyMark, { mark: site.mark, size: 28 }) }),
337
+ /* @__PURE__ */ jsx2(Nav.List, { className: "flex", children: /* @__PURE__ */ jsxs(Nav.Item, { value: "family", children: [
338
+ /* @__PURE__ */ jsx2(Nav.Trigger, { "aria-label": labels.family, onPointerMove: noHover, onPointerLeave: noHover, className: s.familyTrigger(), children: /* @__PURE__ */ jsx2("svg", { viewBox: "0 0 24 24", className: s.chevron(), fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": true, children: /* @__PURE__ */ jsx2("path", { d: "m6 9 6 6 6-6" }) }) }),
339
+ /* @__PURE__ */ jsx2(Nav.Content, { onPointerLeave: noHover, className: s.familyPanel(), children: columns.map((column, i) => /* @__PURE__ */ jsx2("div", { className: "grid content-start gap-3", children: column.map(({ group, sites }) => /* @__PURE__ */ jsxs("div", { children: [
340
+ /* @__PURE__ */ jsx2("p", { id: `${id}-${group}`, className: s.familyGroupTitle(), children: labels.groups[group] }),
341
+ /* @__PURE__ */ jsx2("ul", { "aria-labelledby": `${id}-${group}`, className: "grid gap-0.5", children: sites.map((site) => /* @__PURE__ */ jsx2("li", { children: /* @__PURE__ */ jsxs(Nav.Link, { href: site.url, "data-current": site.id === current ? "" : void 0, "aria-current": site.id === current ? "true" : void 0, className: s.familyLink(), children: [
342
+ /* @__PURE__ */ jsx2("span", { className: s.familyMark(), children: /* @__PURE__ */ jsx2(FamilyMark, { mark: site.mark, size: 28 }) }),
305
343
  /* @__PURE__ */ jsxs("span", { className: "min-w-0", children: [
306
- /* @__PURE__ */ jsx(FamilyName, { site, current: site.id === current, labels }),
307
- /* @__PURE__ */ jsx("span", { className: s.familyText(), children: labels.descriptions[site.id] })
344
+ /* @__PURE__ */ jsx2(FamilyName, { site, current: site.id === current, labels }),
345
+ /* @__PURE__ */ jsx2("span", { className: s.familyText(), children: labels.descriptions[site.id] })
308
346
  ] })
309
347
  ] }) }, site.id)) })
310
348
  ] }, group)) }, i)) })
311
349
  ] }) }),
312
- /* @__PURE__ */ jsx(Nav.Viewport, { onPointerLeave: noHover, className: s.familyViewport() })
350
+ /* @__PURE__ */ jsx2(Nav.Viewport, { onPointerLeave: noHover, className: s.familyViewport() })
313
351
  ] });
314
352
  }
315
353
  function NavBarBadge({ env, version, className, children, ...props }) {
@@ -321,17 +359,17 @@ function NavBarBadge({ env, version, className, children, ...props }) {
321
359
  }
322
360
  function NavBarLanguage(props) {
323
361
  const inMobile = React.useContext(MobileContext);
324
- return /* @__PURE__ */ jsx(LanguageSwitch, { variant: inMobile ? "inline" : "menu", ...props });
362
+ return /* @__PURE__ */ jsx2(LanguageSwitch, { variant: inMobile ? "inline" : "menu", ...props });
325
363
  }
326
364
  function NavBarMobilePreferences({ label, className, children, ...props }) {
327
365
  const id = React.useId();
328
366
  return /* @__PURE__ */ jsxs("div", { role: "group", "aria-labelledby": id, className: s.mobileGroup({ className }), ...props, children: [
329
- /* @__PURE__ */ jsx("p", { id, className: s.mobileGroupTitle(), children: label }),
330
- /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center gap-2 px-3 py-1", children })
367
+ /* @__PURE__ */ jsx2("p", { id, className: s.mobileGroupTitle(), children: label }),
368
+ /* @__PURE__ */ jsx2("div", { className: "flex flex-wrap items-center gap-2 px-3 py-1", children })
331
369
  ] });
332
370
  }
333
371
  function NavBarRepo({ label, className, ...props }) {
334
- return /* @__PURE__ */ jsx("a", { "aria-label": label, className: s.repo({ className }), ...props, children: /* @__PURE__ */ jsx(GitHubGlyph, { size: 18 }) });
372
+ return /* @__PURE__ */ jsx2("a", { "aria-label": label, className: s.repo({ className }), ...props, children: /* @__PURE__ */ jsx2(GitHubGlyph, { size: 18 }) });
335
373
  }
336
374
  var NavBar = {
337
375
  Root: NavBarRoot,
@@ -344,6 +382,7 @@ var NavBar = {
344
382
  MenuLink: NavBarMenuLink,
345
383
  Actions: NavBarActions,
346
384
  Repo: NavBarRepo,
385
+ Session: NavBarSession,
347
386
  Language: NavBarLanguage,
348
387
  Mobile: NavBarMobile,
349
388
  MobilePreferences: NavBarMobilePreferences,
@@ -352,7 +391,7 @@ var NavBar = {
352
391
  };
353
392
 
354
393
  // src/nav-bar/product-actions.tsx
355
- import { Fragment as Fragment2, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
394
+ import { Fragment as Fragment3, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
356
395
  var ProductBarAction = { SignIn: "sign-in", Try: "try" };
357
396
  function productBarActions({ signupOpen, hasTry }) {
358
397
  return signupOpen && hasTry ? { primary: ProductBarAction.Try, secondary: ProductBarAction.SignIn } : { primary: ProductBarAction.SignIn, secondary: null };
@@ -361,8 +400,8 @@ function ProductBarActions({ signIn, tryIt, signupOpen, linkAs: Link = "a", plac
361
400
  const { primary, secondary } = productBarActions({ signupOpen, hasTry: Boolean(tryIt) });
362
401
  const link = (kind) => kind === ProductBarAction.Try && tryIt ? tryIt : signIn;
363
402
  const panel = placement === "panel";
364
- const button = (kind, variant) => /* @__PURE__ */ jsx2(Button, { asChild: true, variant, size: panel ? "md" : "sm", className: panel ? variant === "primary" ? "mt-2 w-full font-bold" : "w-full" : variant === "primary" ? "ml-1 hidden font-bold md:inline-flex" : "hidden md:inline-flex", children: /* @__PURE__ */ jsx2(Link, { href: link(kind).href, children: link(kind).label }) }, kind);
365
- return /* @__PURE__ */ jsxs2(Fragment2, { children: [
403
+ const button = (kind, variant) => /* @__PURE__ */ jsx3(Button, { asChild: true, variant, size: panel ? "md" : "sm", className: panel ? variant === "primary" ? "mt-2 w-full font-bold" : "w-full" : variant === "primary" ? "ml-1 hidden font-bold md:inline-flex" : "hidden md:inline-flex", children: /* @__PURE__ */ jsx3(Link, { href: link(kind).href, children: link(kind).label }) }, kind);
404
+ return /* @__PURE__ */ jsxs2(Fragment3, { children: [
366
405
  secondary ? button(secondary, "ghost") : null,
367
406
  button(primary, "primary")
368
407
  ] });
@@ -384,10 +423,15 @@ export {
384
423
  NavBarMobilePreferences,
385
424
  NavBarRepo,
386
425
  NavBarRoot,
426
+ NavBarSession,
387
427
  ProductBarAction,
388
428
  ProductBarActions,
429
+ meHeaders,
430
+ meResponse,
431
+ meSchema,
389
432
  navBar,
390
433
  placePanel,
391
- productBarActions
434
+ productBarActions,
435
+ sessionKey
392
436
  };
393
437
  //# sourceMappingURL=nav-bar.js.map