@krizaka/ui 3.35.0 → 3.37.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 (620) hide show
  1. package/dist/account-menu.js +1 -1
  2. package/dist/account-menu.js.map +1 -1
  3. package/dist/activity-feed.js +2 -2
  4. package/dist/activity-feed.js.map +1 -1
  5. package/dist/anatomy-plate.d.ts +26 -0
  6. package/dist/anatomy-plate.js +32 -0
  7. package/dist/anatomy-plate.js.map +1 -0
  8. package/dist/app-header.js +1 -1
  9. package/dist/app-header.js.map +1 -1
  10. package/dist/app-shell.js +6 -6
  11. package/dist/app-shell.js.map +1 -1
  12. package/dist/argument-card.js +1 -1
  13. package/dist/badge.d.ts +1 -1
  14. package/dist/badge.js +1 -1
  15. package/dist/badge.js.map +1 -1
  16. package/dist/bird-plate.d.ts +38 -0
  17. package/dist/bird-plate.js +39 -0
  18. package/dist/bird-plate.js.map +1 -0
  19. package/dist/blocks.css +243 -46
  20. package/dist/card.d.ts +6 -6
  21. package/dist/card.js +2 -2
  22. package/dist/card.js.map +1 -1
  23. package/dist/checkbox.js +1 -1
  24. package/dist/checkbox.js.map +1 -1
  25. package/dist/chip-row.js +1 -1
  26. package/dist/chip-row.js.map +1 -1
  27. package/dist/chip.js +1 -1
  28. package/dist/chip.js.map +1 -1
  29. package/dist/{chunk-QDXV544C.js → chunk-4QH6CP2Y.js} +2 -2
  30. package/dist/chunk-4QH6CP2Y.js.map +1 -0
  31. package/dist/{chunk-NJFCSVPT.js → chunk-6EAHUURY.js} +2 -2
  32. package/dist/chunk-6EAHUURY.js.map +1 -0
  33. package/dist/{chunk-REPTKUJ6.js → chunk-7NRSPHAF.js} +2 -2
  34. package/dist/chunk-7NRSPHAF.js.map +1 -0
  35. package/dist/{chunk-CKSHLSDH.js → chunk-AAP3U66V.js} +2 -2
  36. package/dist/{chunk-7UCPGXKN.js → chunk-C3NF7V5Y.js} +2 -2
  37. package/dist/{chunk-7UCPGXKN.js.map → chunk-C3NF7V5Y.js.map} +1 -1
  38. package/dist/chunk-JFJECOZ2.js +338 -0
  39. package/dist/chunk-JFJECOZ2.js.map +1 -0
  40. package/dist/{chunk-KIBICUZK.js → chunk-S5LP7KKW.js} +4 -4
  41. package/dist/{chunk-3S4GHSPZ.js → chunk-VPO27AFS.js} +5 -5
  42. package/dist/chunk-VPO27AFS.js.map +1 -0
  43. package/dist/{chunk-2PNLHZLT.js → chunk-WYQ277F2.js} +3 -3
  44. package/dist/chunk-WYQ277F2.js.map +1 -0
  45. package/dist/{chunk-7Z4KHPFC.js → chunk-YGIN2YIY.js} +2 -2
  46. package/dist/{chunk-7Z4KHPFC.js.map → chunk-YGIN2YIY.js.map} +1 -1
  47. package/dist/{chunk-LZNZLCOE.js → chunk-YKEIOYJ5.js} +20 -6
  48. package/dist/chunk-YKEIOYJ5.js.map +1 -0
  49. package/dist/{chunk-2DGLWTPS.js → chunk-YKOLME7R.js} +3 -3
  50. package/dist/{chunk-2DGLWTPS.js.map → chunk-YKOLME7R.js.map} +1 -1
  51. package/dist/code-block.js +4 -4
  52. package/dist/code-block.js.map +1 -1
  53. package/dist/combobox.js +2 -2
  54. package/dist/command.js +3 -3
  55. package/dist/command.js.map +1 -1
  56. package/dist/comparison-table.js +2 -2
  57. package/dist/comparison-table.js.map +1 -1
  58. package/dist/countdown.js +1 -1
  59. package/dist/countdown.js.map +1 -1
  60. package/dist/cover-hero.js +15 -6
  61. package/dist/cover-hero.js.map +1 -1
  62. package/dist/dashboard-layout.js +1 -1
  63. package/dist/dashboard-layout.js.map +1 -1
  64. package/dist/data-table.js +5 -5
  65. package/dist/date-picker.js +3 -3
  66. package/dist/date-picker.js.map +1 -1
  67. package/dist/description-list.js +1 -1
  68. package/dist/description-list.js.map +1 -1
  69. package/dist/detail-layout.js +1 -1
  70. package/dist/detail-layout.js.map +1 -1
  71. package/dist/dialog.js +1 -1
  72. package/dist/docs-nav.js +1 -1
  73. package/dist/docs-nav.js.map +1 -1
  74. package/dist/dropdown-menu.js +1 -1
  75. package/dist/dropdown-menu.js.map +1 -1
  76. package/dist/file-upload.js +3 -3
  77. package/dist/file-upload.js.map +1 -1
  78. package/dist/filter-bar.js +2 -2
  79. package/dist/footnote.d.ts +32 -0
  80. package/dist/footnote.js +29 -0
  81. package/dist/footnote.js.map +1 -0
  82. package/dist/genui.js +6 -6
  83. package/dist/geometry-DncHaYP8.d.ts +22 -0
  84. package/dist/language-switch.js +1 -1
  85. package/dist/list.js +1 -1
  86. package/dist/loader.js +2 -2
  87. package/dist/loader.js.map +1 -1
  88. package/dist/map.js +95 -83
  89. package/dist/map.js.map +1 -1
  90. package/dist/marketing-layout.js +1 -1
  91. package/dist/marketing-layout.js.map +1 -1
  92. package/dist/mascot-quote.d.ts +2 -21
  93. package/dist/mascot-quote.js +9 -338
  94. package/dist/mascot-quote.js.map +1 -1
  95. package/dist/match-dialog.js +1 -1
  96. package/dist/match-dialog.js.map +1 -1
  97. package/dist/media-grid.js +1 -1
  98. package/dist/meter.js +3 -3
  99. package/dist/meter.js.map +1 -1
  100. package/dist/motion.css +28 -41
  101. package/dist/native/map.js +94 -82
  102. package/dist/native/map.js.map +1 -1
  103. package/dist/native.d.ts +8 -1
  104. package/dist/native.js +57 -45
  105. package/dist/native.js.map +1 -1
  106. package/dist/nav-bar.js +12 -12
  107. package/dist/nav-bar.js.map +1 -1
  108. package/dist/page-hero.js +1 -1
  109. package/dist/page-index.d.ts +30 -0
  110. package/dist/page-index.js +23 -0
  111. package/dist/page-index.js.map +1 -0
  112. package/dist/page.d.ts +19 -7
  113. package/dist/page.js +1 -1
  114. package/dist/photo-grid.js +2 -2
  115. package/dist/photo-grid.js.map +1 -1
  116. package/dist/progress.js +3 -3
  117. package/dist/progress.js.map +1 -1
  118. package/dist/radio-group.js +1 -1
  119. package/dist/radio-group.js.map +1 -1
  120. package/dist/rail-nav.js +2 -2
  121. package/dist/rail-nav.js.map +1 -1
  122. package/dist/search-field.js +1 -1
  123. package/dist/service-card.js +3 -3
  124. package/dist/service-card.js.map +1 -1
  125. package/dist/settings-layout.js +1 -1
  126. package/dist/settings-layout.js.map +1 -1
  127. package/dist/site-footer.js +3 -3
  128. package/dist/site-footer.js.map +1 -1
  129. package/dist/skip-link.js +1 -1
  130. package/dist/slot-picker.js +1 -1
  131. package/dist/slot-picker.js.map +1 -1
  132. package/dist/specimen-tag.d.ts +52 -0
  133. package/dist/specimen-tag.js +33 -0
  134. package/dist/specimen-tag.js.map +1 -0
  135. package/dist/stat.js +1 -1
  136. package/dist/stat.js.map +1 -1
  137. package/dist/step-progress.js +1 -1
  138. package/dist/step-progress.js.map +1 -1
  139. package/dist/sticky-action.d.ts +1 -1
  140. package/dist/sticky-action.js +1 -1
  141. package/dist/sticky-action.js.map +1 -1
  142. package/dist/swipe-deck.js +1 -1
  143. package/dist/swipe-deck.js.map +1 -1
  144. package/dist/tabs.js +4 -4
  145. package/dist/tabs.js.map +1 -1
  146. package/dist/tag-input.js +2 -2
  147. package/dist/tag-selector.js +1 -1
  148. package/dist/toast.js +1 -1
  149. package/dist/toast.js.map +1 -1
  150. package/package.json +74 -4
  151. package/registry/account-menu.json +1 -1
  152. package/registry/achievement.json +1 -1
  153. package/registry/action-bar.json +1 -1
  154. package/registry/activity-feed.json +2 -2
  155. package/registry/alert.json +1 -1
  156. package/registry/anatomy-plate.json +168 -0
  157. package/registry/app-header.json +2 -2
  158. package/registry/app-shell.json +2 -2
  159. package/registry/argument-card.json +1 -1
  160. package/registry/audio-player.json +1 -1
  161. package/registry/auth-layout.json +1 -1
  162. package/registry/avatar.json +1 -1
  163. package/registry/badge.json +2 -2
  164. package/registry/bird-plate.json +221 -0
  165. package/registry/button.json +1 -1
  166. package/registry/captcha.json +1 -1
  167. package/registry/card-grid.json +1 -1
  168. package/registry/card.json +2 -2
  169. package/registry/catalogue-page.json +1 -1
  170. package/registry/changelog-page.json +1 -1
  171. package/registry/chat.json +3 -3
  172. package/registry/checkbox.json +2 -2
  173. package/registry/chip-link.json +1 -1
  174. package/registry/chip-row.json +2 -2
  175. package/registry/chip.json +2 -2
  176. package/registry/choice-grid.json +1 -1
  177. package/registry/code-block.json +1 -1
  178. package/registry/combobox.json +1 -1
  179. package/registry/command.json +2 -2
  180. package/registry/comparison-table.json +2 -2
  181. package/registry/component-page.json +1 -1
  182. package/registry/confirm-button.json +1 -1
  183. package/registry/contact-page.json +1 -1
  184. package/registry/continue-prompt.json +1 -1
  185. package/registry/countdown.json +2 -2
  186. package/registry/cover-hero.json +2 -2
  187. package/registry/cta-panel.json +1 -1
  188. package/registry/dashboard-layout.json +2 -2
  189. package/registry/data-table.json +1 -1
  190. package/registry/date-picker.json +4 -4
  191. package/registry/decision-list.json +1 -1
  192. package/registry/description-list.json +2 -2
  193. package/registry/detail-layout.json +2 -2
  194. package/registry/dialog.json +2 -2
  195. package/registry/docs-article-page.json +1 -1
  196. package/registry/docs-hub-page.json +1 -1
  197. package/registry/docs-layout.json +1 -1
  198. package/registry/docs-nav.json +2 -2
  199. package/registry/document-viewer.json +1 -1
  200. package/registry/dropdown-menu.json +2 -2
  201. package/registry/empty-state.json +1 -1
  202. package/registry/engine-flow.json +1 -1
  203. package/registry/error-page.json +1 -1
  204. package/registry/examples/action-sheet/native/video-actions.dark.png +0 -0
  205. package/registry/examples/action-sheet/native/video-actions.light.png +0 -0
  206. package/registry/examples/activity-feed/native/notifications.dark.png +0 -0
  207. package/registry/examples/activity-feed/native/notifications.light.png +0 -0
  208. package/registry/examples/anatomy-plate/button.d.ts +4 -0
  209. package/registry/examples/anatomy-plate/button.js +25 -0
  210. package/registry/examples/anatomy-plate/button.tsx +20 -0
  211. package/registry/examples/avatar/native/group.dark.png +0 -0
  212. package/registry/examples/avatar/native/group.light.png +0 -0
  213. package/registry/examples/avatar/native/presence.dark.png +0 -0
  214. package/registry/examples/avatar/native/presence.light.png +0 -0
  215. package/registry/examples/avatar/native/sizes.dark.png +0 -0
  216. package/registry/examples/avatar/native/sizes.light.png +0 -0
  217. package/registry/examples/badge/native/dot.dark.png +0 -0
  218. package/registry/examples/badge/native/dot.light.png +0 -0
  219. package/registry/examples/badge/native/scrim.dark.png +0 -0
  220. package/registry/examples/badge/native/scrim.light.png +0 -0
  221. package/registry/examples/badge/native/tones.dark.png +0 -0
  222. package/registry/examples/badge/native/tones.light.png +0 -0
  223. package/registry/examples/bird-plate/flock.d.ts +4 -0
  224. package/registry/examples/bird-plate/flock.js +24 -0
  225. package/registry/examples/bird-plate/flock.tsx +18 -0
  226. package/registry/examples/bird-plate/single.d.ts +4 -0
  227. package/registry/examples/bird-plate/single.js +19 -0
  228. package/registry/examples/bird-plate/single.tsx +13 -0
  229. package/registry/examples/button/native/danger.dark.png +0 -0
  230. package/registry/examples/button/native/danger.light.png +0 -0
  231. package/registry/examples/button/native/disabled.dark.png +0 -0
  232. package/registry/examples/button/native/disabled.light.png +0 -0
  233. package/registry/examples/button/native/ghost.dark.png +0 -0
  234. package/registry/examples/button/native/ghost.light.png +0 -0
  235. package/registry/examples/button/native/gradient.dark.png +0 -0
  236. package/registry/examples/button/native/gradient.light.png +0 -0
  237. package/registry/examples/button/native/icon-only.dark.png +0 -0
  238. package/registry/examples/button/native/icon-only.light.png +0 -0
  239. package/registry/examples/button/native/icon.dark.png +0 -0
  240. package/registry/examples/button/native/icon.light.png +0 -0
  241. package/registry/examples/button/native/loading.dark.png +0 -0
  242. package/registry/examples/button/native/loading.light.png +0 -0
  243. package/registry/examples/button/native/outline.dark.png +0 -0
  244. package/registry/examples/button/native/outline.light.png +0 -0
  245. package/registry/examples/button/native/primary.dark.png +0 -0
  246. package/registry/examples/button/native/primary.light.png +0 -0
  247. package/registry/examples/button/native/secondary.dark.png +0 -0
  248. package/registry/examples/button/native/secondary.light.png +0 -0
  249. package/registry/examples/button/native/sizes.dark.png +0 -0
  250. package/registry/examples/button/native/sizes.light.png +0 -0
  251. package/registry/examples/card/native/body.dark.png +0 -0
  252. package/registry/examples/card/native/body.light.png +0 -0
  253. package/registry/examples/card/native/default.dark.png +0 -0
  254. package/registry/examples/card/native/default.light.png +0 -0
  255. package/registry/examples/card/native/elevated.dark.png +0 -0
  256. package/registry/examples/card/native/elevated.light.png +0 -0
  257. package/registry/examples/card/native/pressable.dark.png +0 -0
  258. package/registry/examples/card/native/pressable.light.png +0 -0
  259. package/registry/examples/chat/native/assistant.dark.png +0 -0
  260. package/registry/examples/chat/native/assistant.light.png +0 -0
  261. package/registry/examples/chat/native/conversation.dark.png +0 -0
  262. package/registry/examples/chat/native/conversation.light.png +0 -0
  263. package/registry/examples/chat/native/inbox.dark.png +0 -0
  264. package/registry/examples/chat/native/inbox.light.png +0 -0
  265. package/registry/examples/checkbox/native/terms.dark.png +0 -0
  266. package/registry/examples/checkbox/native/terms.light.png +0 -0
  267. package/registry/examples/chip/native/multiple.dark.png +0 -0
  268. package/registry/examples/chip/native/multiple.light.png +0 -0
  269. package/registry/examples/chip/native/removable.dark.png +0 -0
  270. package/registry/examples/chip/native/removable.light.png +0 -0
  271. package/registry/examples/chip/native/single.dark.png +0 -0
  272. package/registry/examples/chip/native/single.light.png +0 -0
  273. package/registry/examples/chip/native/toggle.dark.png +0 -0
  274. package/registry/examples/chip/native/toggle.light.png +0 -0
  275. package/registry/examples/combobox/native/multiple.dark.png +0 -0
  276. package/registry/examples/combobox/native/multiple.light.png +0 -0
  277. package/registry/examples/combobox/native/search.dark.png +0 -0
  278. package/registry/examples/combobox/native/search.light.png +0 -0
  279. package/registry/examples/countdown/native/days.dark.png +0 -0
  280. package/registry/examples/countdown/native/days.light.png +0 -0
  281. package/registry/examples/countdown/native/hours.dark.png +0 -0
  282. package/registry/examples/countdown/native/hours.light.png +0 -0
  283. package/registry/examples/countdown/native/sizes.dark.png +0 -0
  284. package/registry/examples/countdown/native/sizes.light.png +0 -0
  285. package/registry/examples/countdown/native/urgent.dark.png +0 -0
  286. package/registry/examples/countdown/native/urgent.light.png +0 -0
  287. package/registry/examples/countdown/native/with-label.dark.png +0 -0
  288. package/registry/examples/countdown/native/with-label.light.png +0 -0
  289. package/registry/examples/date-picker/native/birth-date-wheel.dark.png +0 -0
  290. package/registry/examples/date-picker/native/birth-date-wheel.light.png +0 -0
  291. package/registry/examples/date-picker/native/birth-date.dark.png +0 -0
  292. package/registry/examples/date-picker/native/birth-date.light.png +0 -0
  293. package/registry/examples/date-picker/native/calendar.dark.png +0 -0
  294. package/registry/examples/date-picker/native/calendar.light.png +0 -0
  295. package/registry/examples/date-picker/native/day-strip.dark.png +0 -0
  296. package/registry/examples/date-picker/native/day-strip.light.png +0 -0
  297. package/registry/examples/date-picker/native/month-year.dark.png +0 -0
  298. package/registry/examples/date-picker/native/month-year.light.png +0 -0
  299. package/registry/examples/date-picker/native/time-slots.dark.png +0 -0
  300. package/registry/examples/date-picker/native/time-slots.light.png +0 -0
  301. package/registry/examples/date-picker/native/time-wheel.dark.png +0 -0
  302. package/registry/examples/date-picker/native/time-wheel.light.png +0 -0
  303. package/registry/examples/description-list/native/job-details.dark.png +0 -0
  304. package/registry/examples/description-list/native/job-details.light.png +0 -0
  305. package/registry/examples/dialog/native/sheet.dark.png +0 -0
  306. package/registry/examples/dialog/native/sheet.light.png +0 -0
  307. package/registry/examples/empty-state/native/default.dark.png +0 -0
  308. package/registry/examples/empty-state/native/default.light.png +0 -0
  309. package/registry/examples/fab/native/extended.dark.png +0 -0
  310. package/registry/examples/fab/native/extended.light.png +0 -0
  311. package/registry/examples/field/native/default.dark.png +0 -0
  312. package/registry/examples/field/native/default.light.png +0 -0
  313. package/registry/examples/field/native/select.dark.png +0 -0
  314. package/registry/examples/field/native/select.light.png +0 -0
  315. package/registry/examples/footnote/notes.d.ts +4 -0
  316. package/registry/examples/footnote/notes.js +24 -0
  317. package/registry/examples/footnote/notes.tsx +19 -0
  318. package/registry/examples/force-update-screen/native/default.dark.png +0 -0
  319. package/registry/examples/force-update-screen/native/default.light.png +0 -0
  320. package/registry/examples/form/native/amount.dark.png +0 -0
  321. package/registry/examples/form/native/amount.light.png +0 -0
  322. package/registry/examples/form/native/audience.dark.png +0 -0
  323. package/registry/examples/form/native/audience.light.png +0 -0
  324. package/registry/examples/form/native/profile.dark.png +0 -0
  325. package/registry/examples/form/native/profile.light.png +0 -0
  326. package/registry/examples/form/native/settings.dark.png +0 -0
  327. package/registry/examples/form/native/settings.light.png +0 -0
  328. package/registry/examples/form/native/sign-up.dark.png +0 -0
  329. package/registry/examples/form/native/sign-up.light.png +0 -0
  330. package/registry/examples/form/native/upload.dark.png +0 -0
  331. package/registry/examples/form/native/upload.light.png +0 -0
  332. package/registry/examples/goal-gauge/native/default.dark.png +0 -0
  333. package/registry/examples/goal-gauge/native/default.light.png +0 -0
  334. package/registry/examples/header/native/large-title.dark.png +0 -0
  335. package/registry/examples/header/native/large-title.light.png +0 -0
  336. package/registry/examples/image-viewer/native/gallery.dark.png +0 -0
  337. package/registry/examples/image-viewer/native/gallery.light.png +0 -0
  338. package/registry/examples/list/native/default.dark.png +0 -0
  339. package/registry/examples/list/native/default.light.png +0 -0
  340. package/registry/examples/list/native/infinite.dark.png +0 -0
  341. package/registry/examples/list/native/infinite.light.png +0 -0
  342. package/registry/examples/list/native/states.dark.png +0 -0
  343. package/registry/examples/list/native/states.light.png +0 -0
  344. package/registry/examples/loader/native/block.dark.png +0 -0
  345. package/registry/examples/loader/native/block.light.png +0 -0
  346. package/registry/examples/loader/native/branded.dark.png +0 -0
  347. package/registry/examples/loader/native/branded.light.png +0 -0
  348. package/registry/examples/loader/native/job-wait.dark.png +0 -0
  349. package/registry/examples/loader/native/job-wait.light.png +0 -0
  350. package/registry/examples/maintenance-screen/native/default.dark.png +0 -0
  351. package/registry/examples/maintenance-screen/native/default.light.png +0 -0
  352. package/registry/examples/map/native/location-picker.dark.png +0 -0
  353. package/registry/examples/map/native/location-picker.light.png +0 -0
  354. package/registry/examples/map/native/places.dark.png +0 -0
  355. package/registry/examples/map/native/places.light.png +0 -0
  356. package/registry/examples/markdown/native/ai-stream.dark.png +0 -0
  357. package/registry/examples/markdown/native/ai-stream.light.png +0 -0
  358. package/registry/examples/markdown/native/basic.dark.png +0 -0
  359. package/registry/examples/markdown/native/basic.light.png +0 -0
  360. package/registry/examples/mascot-state/native/default.dark.png +0 -0
  361. package/registry/examples/mascot-state/native/default.light.png +0 -0
  362. package/registry/examples/mascots/native/crane.dark.png +0 -0
  363. package/registry/examples/mascots/native/crane.light.png +0 -0
  364. package/registry/examples/mascots/native/default.dark.png +0 -0
  365. package/registry/examples/mascots/native/default.light.png +0 -0
  366. package/registry/examples/mascots/native/lovebird.dark.png +0 -0
  367. package/registry/examples/mascots/native/lovebird.light.png +0 -0
  368. package/registry/examples/mascots/native/phoenix.dark.png +0 -0
  369. package/registry/examples/mascots/native/phoenix.light.png +0 -0
  370. package/registry/examples/match-dialog/native/its-a-match.dark.png +0 -0
  371. package/registry/examples/match-dialog/native/its-a-match.light.png +0 -0
  372. package/registry/examples/media-capture/native/photo.dark.png +0 -0
  373. package/registry/examples/media-capture/native/photo.light.png +0 -0
  374. package/registry/examples/media-picker/native/story.dark.png +0 -0
  375. package/registry/examples/media-picker/native/story.light.png +0 -0
  376. package/registry/examples/meta-row/native/video.dark.png +0 -0
  377. package/registry/examples/meta-row/native/video.light.png +0 -0
  378. package/registry/examples/meter/native/credits.dark.png +0 -0
  379. package/registry/examples/meter/native/credits.light.png +0 -0
  380. package/registry/examples/meter/native/split-ring.dark.png +0 -0
  381. package/registry/examples/meter/native/split-ring.light.png +0 -0
  382. package/registry/examples/number-ticker/native/balance.dark.png +0 -0
  383. package/registry/examples/number-ticker/native/balance.light.png +0 -0
  384. package/registry/examples/onboarding/native/first-launch.dark.png +0 -0
  385. package/registry/examples/onboarding/native/first-launch.light.png +0 -0
  386. package/registry/examples/otp-input/native/invalid.dark.png +0 -0
  387. package/registry/examples/otp-input/native/invalid.light.png +0 -0
  388. package/registry/examples/otp-input/native/verify.dark.png +0 -0
  389. package/registry/examples/otp-input/native/verify.light.png +0 -0
  390. package/registry/examples/page-index/docs.d.ts +4 -0
  391. package/registry/examples/page-index/docs.js +33 -0
  392. package/registry/examples/page-index/docs.tsx +27 -0
  393. package/registry/examples/pagination/native/cursor.dark.png +0 -0
  394. package/registry/examples/pagination/native/cursor.light.png +0 -0
  395. package/registry/examples/pagination/native/pages.dark.png +0 -0
  396. package/registry/examples/pagination/native/pages.light.png +0 -0
  397. package/registry/examples/permission-prompt/native/blocked.dark.png +0 -0
  398. package/registry/examples/permission-prompt/native/blocked.light.png +0 -0
  399. package/registry/examples/permission-prompt/native/camera.dark.png +0 -0
  400. package/registry/examples/permission-prompt/native/camera.light.png +0 -0
  401. package/registry/examples/photo-grid/native/profile-photos.dark.png +0 -0
  402. package/registry/examples/photo-grid/native/profile-photos.light.png +0 -0
  403. package/registry/examples/profile-card/native/default.dark.png +0 -0
  404. package/registry/examples/profile-card/native/default.light.png +0 -0
  405. package/registry/examples/progress/native/bar.dark.png +0 -0
  406. package/registry/examples/progress/native/bar.light.png +0 -0
  407. package/registry/examples/progress/native/indeterminate.dark.png +0 -0
  408. package/registry/examples/progress/native/indeterminate.light.png +0 -0
  409. package/registry/examples/progress/native/ring.dark.png +0 -0
  410. package/registry/examples/progress/native/ring.light.png +0 -0
  411. package/registry/examples/pull-to-refresh/native/branded.dark.png +0 -0
  412. package/registry/examples/pull-to-refresh/native/branded.light.png +0 -0
  413. package/registry/examples/pull-to-refresh/native/feed.dark.png +0 -0
  414. package/registry/examples/pull-to-refresh/native/feed.light.png +0 -0
  415. package/registry/examples/radio-group/native/buttons.dark.png +0 -0
  416. package/registry/examples/radio-group/native/buttons.light.png +0 -0
  417. package/registry/examples/radio-group/native/cards.dark.png +0 -0
  418. package/registry/examples/radio-group/native/cards.light.png +0 -0
  419. package/registry/examples/radio-group/native/list.dark.png +0 -0
  420. package/registry/examples/radio-group/native/list.light.png +0 -0
  421. package/registry/examples/radio-group/native/segmented.dark.png +0 -0
  422. package/registry/examples/radio-group/native/segmented.light.png +0 -0
  423. package/registry/examples/screen/native/app-shell.dark.png +0 -0
  424. package/registry/examples/screen/native/app-shell.light.png +0 -0
  425. package/registry/examples/screen/native/auth.dark.png +0 -0
  426. package/registry/examples/screen/native/auth.light.png +0 -0
  427. package/registry/examples/screen/native/chat.dark.png +0 -0
  428. package/registry/examples/screen/native/chat.light.png +0 -0
  429. package/registry/examples/screen/native/feed.dark.png +0 -0
  430. package/registry/examples/screen/native/feed.light.png +0 -0
  431. package/registry/examples/screen/native/map.dark.png +0 -0
  432. package/registry/examples/screen/native/map.light.png +0 -0
  433. package/registry/examples/screen/native/notifications.dark.png +0 -0
  434. package/registry/examples/screen/native/notifications.light.png +0 -0
  435. package/registry/examples/screen/native/profile.dark.png +0 -0
  436. package/registry/examples/screen/native/profile.light.png +0 -0
  437. package/registry/examples/screen/native/settings.dark.png +0 -0
  438. package/registry/examples/screen/native/settings.light.png +0 -0
  439. package/registry/examples/search-field/native/cancel.dark.png +0 -0
  440. package/registry/examples/search-field/native/cancel.light.png +0 -0
  441. package/registry/examples/search-field/native/default.dark.png +0 -0
  442. package/registry/examples/search-field/native/default.light.png +0 -0
  443. package/registry/examples/segmented/native/default.dark.png +0 -0
  444. package/registry/examples/segmented/native/default.light.png +0 -0
  445. package/registry/examples/segmented/native/small.dark.png +0 -0
  446. package/registry/examples/segmented/native/small.light.png +0 -0
  447. package/registry/examples/settings-layout/native/account.dark.png +0 -0
  448. package/registry/examples/settings-layout/native/account.light.png +0 -0
  449. package/registry/examples/showcase/native/slides.dark.png +0 -0
  450. package/registry/examples/showcase/native/slides.light.png +0 -0
  451. package/registry/examples/skeleton/native/shapes.dark.png +0 -0
  452. package/registry/examples/skeleton/native/shapes.light.png +0 -0
  453. package/registry/examples/slider/native/default.dark.png +0 -0
  454. package/registry/examples/slider/native/default.light.png +0 -0
  455. package/registry/examples/slider/native/range.dark.png +0 -0
  456. package/registry/examples/slider/native/range.light.png +0 -0
  457. package/registry/examples/slider/native/stepped.dark.png +0 -0
  458. package/registry/examples/slider/native/stepped.light.png +0 -0
  459. package/registry/examples/slider/native/vertical.dark.png +0 -0
  460. package/registry/examples/slider/native/vertical.light.png +0 -0
  461. package/registry/examples/specimen-tag/product.d.ts +4 -0
  462. package/registry/examples/specimen-tag/product.js +28 -0
  463. package/registry/examples/specimen-tag/product.tsx +25 -0
  464. package/registry/examples/specimen-tag/stamps.d.ts +4 -0
  465. package/registry/examples/specimen-tag/stamps.js +16 -0
  466. package/registry/examples/specimen-tag/stamps.tsx +13 -0
  467. package/registry/examples/specimen-tag/wire.d.ts +4 -0
  468. package/registry/examples/specimen-tag/wire.js +16 -0
  469. package/registry/examples/specimen-tag/wire.tsx +20 -0
  470. package/registry/examples/spinner/native/sizes.dark.png +0 -0
  471. package/registry/examples/spinner/native/sizes.light.png +0 -0
  472. package/registry/examples/splash-handoff/native/default.dark.png +0 -0
  473. package/registry/examples/splash-handoff/native/default.light.png +0 -0
  474. package/registry/examples/step-progress/native/sign-up.dark.png +0 -0
  475. package/registry/examples/step-progress/native/sign-up.light.png +0 -0
  476. package/registry/examples/stepper/native/run.dark.png +0 -0
  477. package/registry/examples/stepper/native/run.light.png +0 -0
  478. package/registry/examples/swipe-deck/native/discover.dark.png +0 -0
  479. package/registry/examples/swipe-deck/native/discover.light.png +0 -0
  480. package/registry/examples/swipeable-row/native/conversation.dark.png +0 -0
  481. package/registry/examples/swipeable-row/native/conversation.light.png +0 -0
  482. package/registry/examples/switch/native/default.dark.png +0 -0
  483. package/registry/examples/switch/native/default.light.png +0 -0
  484. package/registry/examples/switch/native/settings.dark.png +0 -0
  485. package/registry/examples/switch/native/settings.light.png +0 -0
  486. package/registry/examples/tab-bar/native/main-sections.dark.png +0 -0
  487. package/registry/examples/tab-bar/native/main-sections.light.png +0 -0
  488. package/registry/examples/tabs/native/sections.dark.png +0 -0
  489. package/registry/examples/tabs/native/sections.light.png +0 -0
  490. package/registry/examples/tabs/native/segmented.dark.png +0 -0
  491. package/registry/examples/tabs/native/segmented.light.png +0 -0
  492. package/registry/examples/tag-selector/native/interests.dark.png +0 -0
  493. package/registry/examples/tag-selector/native/interests.light.png +0 -0
  494. package/registry/examples/toast/native/notification.dark.png +0 -0
  495. package/registry/examples/toast/native/notification.light.png +0 -0
  496. package/registry/examples/toast/native/snackbar.dark.png +0 -0
  497. package/registry/examples/toast/native/snackbar.light.png +0 -0
  498. package/registry/examples/toast/native/tones.dark.png +0 -0
  499. package/registry/examples/toast/native/tones.light.png +0 -0
  500. package/registry/examples/txt/native/tones.dark.png +0 -0
  501. package/registry/examples/txt/native/tones.light.png +0 -0
  502. package/registry/examples/txt/native/variants.dark.png +0 -0
  503. package/registry/examples/txt/native/variants.light.png +0 -0
  504. package/registry/examples/update-prompt/native/default.dark.png +0 -0
  505. package/registry/examples/update-prompt/native/default.light.png +0 -0
  506. package/registry/examples/verified-badge/native/verified.dark.png +0 -0
  507. package/registry/examples/verified-badge/native/verified.light.png +0 -0
  508. package/registry/examples/vertical-video/native/rail.dark.png +0 -0
  509. package/registry/examples/vertical-video/native/rail.light.png +0 -0
  510. package/registry/examples/video-player/native/default.dark.png +0 -0
  511. package/registry/examples/video-player/native/default.light.png +0 -0
  512. package/registry/examples/waveform/native/card.dark.png +0 -0
  513. package/registry/examples/waveform/native/card.light.png +0 -0
  514. package/registry/field.json +1 -1
  515. package/registry/file-upload.json +1 -1
  516. package/registry/filter-bar.json +1 -1
  517. package/registry/footnote.json +220 -0
  518. package/registry/force-update-screen.json +1 -1
  519. package/registry/form.json +3 -3
  520. package/registry/gallery-page.json +1 -1
  521. package/registry/genui.json +1 -1
  522. package/registry/glow-card.json +1 -1
  523. package/registry/goal-gauge.json +1 -1
  524. package/registry/how-it-works-page.json +1 -1
  525. package/registry/image-cropper.json +1 -1
  526. package/registry/index.json +160 -5
  527. package/registry/iso.json +1 -1
  528. package/registry/kanban.json +1 -1
  529. package/registry/kbd.json +1 -1
  530. package/registry/landing-page.json +1 -1
  531. package/registry/landscape.json +1 -1
  532. package/registry/language-switch.json +2 -2
  533. package/registry/legal-page.json +1 -1
  534. package/registry/link-card.json +1 -1
  535. package/registry/list.json +1 -1
  536. package/registry/loader.json +2 -2
  537. package/registry/longform-page.json +1 -1
  538. package/registry/maintenance-screen.json +1 -1
  539. package/registry/map.json +3 -3
  540. package/registry/markdown.json +1 -1
  541. package/registry/marketing-layout.json +1 -1
  542. package/registry/marquee.json +1 -1
  543. package/registry/mascot-quote.json +1 -1
  544. package/registry/mascot-state.json +1 -1
  545. package/registry/mascots.json +1 -1
  546. package/registry/match-dialog.json +1 -1
  547. package/registry/media-capture.json +1 -1
  548. package/registry/media-gallery.json +1 -1
  549. package/registry/media-grid.json +1 -1
  550. package/registry/meta-row.json +1 -1
  551. package/registry/meter.json +2 -2
  552. package/registry/nav-bar.json +3 -3
  553. package/registry/number-ticker.json +1 -1
  554. package/registry/opening-hours.json +1 -1
  555. package/registry/page-header.json +1 -1
  556. package/registry/page-hero.json +1 -1
  557. package/registry/page-index.json +168 -0
  558. package/registry/page.json +89 -5
  559. package/registry/pagination.json +1 -1
  560. package/registry/photo-grid.json +2 -2
  561. package/registry/pointer-light.json +1 -1
  562. package/registry/popover.json +1 -1
  563. package/registry/pricing-page.json +1 -1
  564. package/registry/product-page.json +1 -1
  565. package/registry/profile-card.json +1 -1
  566. package/registry/progress.json +2 -2
  567. package/registry/promise-card.json +1 -1
  568. package/registry/radio-group.json +2 -2
  569. package/registry/rail-nav.json +3 -3
  570. package/registry/recipes.json +1 -1
  571. package/registry/scroll-stage.json +1 -1
  572. package/registry/search-field.json +2 -2
  573. package/registry/section-backdrop.json +1 -1
  574. package/registry/separator.json +1 -1
  575. package/registry/service-card.json +2 -2
  576. package/registry/settings-layout.json +2 -2
  577. package/registry/showcase.json +1 -1
  578. package/registry/site-footer.json +3 -3
  579. package/registry/sites.json +1 -1
  580. package/registry/skeleton.json +1 -1
  581. package/registry/skip-link.json +2 -2
  582. package/registry/slider.json +1 -1
  583. package/registry/slot-picker.json +2 -2
  584. package/registry/slot.json +1 -1
  585. package/registry/specimen-tag.json +269 -0
  586. package/registry/spinner.json +1 -1
  587. package/registry/split-view.json +1 -1
  588. package/registry/stage-banner.json +1 -1
  589. package/registry/stat.json +2 -2
  590. package/registry/status-page.json +1 -1
  591. package/registry/step-progress.json +2 -2
  592. package/registry/step-showcase.json +1 -1
  593. package/registry/stepper.json +1 -1
  594. package/registry/sticky-action.json +2 -2
  595. package/registry/swipe-deck.json +2 -2
  596. package/registry/switch.json +1 -1
  597. package/registry/tabs.json +2 -2
  598. package/registry/tag-input.json +1 -1
  599. package/registry/tag-selector.json +1 -1
  600. package/registry/terminal-replay.json +1 -1
  601. package/registry/theme.json +1 -1
  602. package/registry/toast.json +2 -2
  603. package/registry/toc.json +1 -1
  604. package/registry/tooltip.json +1 -1
  605. package/registry/tree-view.json +1 -1
  606. package/registry/update-prompt.json +1 -1
  607. package/registry/verified-badge.json +1 -1
  608. package/registry/vertical-video.json +1 -1
  609. package/registry/video-player.json +1 -1
  610. package/registry/video-trimmer.json +1 -1
  611. package/registry/virtual.json +1 -1
  612. package/registry/waveform.json +1 -1
  613. package/dist/chunk-2PNLHZLT.js.map +0 -1
  614. package/dist/chunk-3S4GHSPZ.js.map +0 -1
  615. package/dist/chunk-LZNZLCOE.js.map +0 -1
  616. package/dist/chunk-NJFCSVPT.js.map +0 -1
  617. package/dist/chunk-QDXV544C.js.map +0 -1
  618. package/dist/chunk-REPTKUJ6.js.map +0 -1
  619. /package/dist/{chunk-CKSHLSDH.js.map → chunk-AAP3U66V.js.map} +0 -0
  620. /package/dist/{chunk-KIBICUZK.js.map → chunk-S5LP7KKW.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/loader/loader.tsx"],"sourcesContent":["// Client (timers). The whole life of a wait, done right once: nothing for the first instants (a fast answer never\n// flashes a spinner), then the Krizaka glyph with its words and an ETA, held long enough to be read, ending on a\n// check or a cross that is drawn and announced. `LoadingRegion` hands a region over from its content to a skeleton of\n// the same shape, then to words when the wait grows long, then back to the content.\nimport * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport { LoaderGlyph } from \"../spinner/glyph\";\n\nexport const loader = tv({\n slots: {\n root: \"text-fg-secondary\",\n box: \"kz-fade flex items-center gap-3\",\n glyph: \"shrink-0 text-accent\",\n mark: \"block shrink-0 [&>svg]:block [&>svg]:h-full [&>svg]:w-full\",\n text: \"flex min-w-0 flex-col\",\n label: \"font-medium text-fg\",\n detail: \"text-xs text-fg-secondary tabular-nums\",\n },\n variants: {\n variant: {\n inline: { box: \"text-sm\", glyph: \"h-5 w-5\", mark: \"h-5 w-5\" },\n block: { box: \"flex-col justify-center py-10 text-center text-sm\", glyph: \"h-9 w-9\", mark: \"h-9 w-9\", text: \"items-center\" },\n overlay: {\n root: \"absolute inset-0 z-10 flex items-center justify-center rounded-[inherit] empty:hidden\",\n box: \"flex-col rounded-xl border border-border-default bg-surface-1/90 px-6 py-5 text-center text-sm shadow-lg backdrop-blur-sm\",\n glyph: \"h-9 w-9\", mark: \"h-9 w-9\",\n text: \"items-center\",\n },\n page: {\n root: \"fixed inset-0 z-50 flex items-center justify-center bg-surface-0/80 backdrop-blur-sm empty:hidden\",\n box: \"flex-col text-center\",\n glyph: \"h-14 w-14\", mark: \"h-14 w-14\",\n text: \"items-center\",\n label: \"font-display text-lg\",\n },\n },\n ended: {\n success: { glyph: \"text-fg-success\" },\n error: { glyph: \"text-fg-danger\" },\n },\n },\n defaultVariants: { variant: \"inline\" },\n});\n\nexport type LoaderVariants = VariantProps<typeof loader>;\n\n/**\n * `true` once `active` has lasted `delay` ms; then stays `true` at least `minDuration` ms — a wait that ends early never\n * shows, one that shows never blinks.\n */\nexport function useDelayedWait(active: boolean, delay = 250, minDuration = 600): boolean {\n const [shown, setShown] = React.useState(false);\n const since = React.useRef(0);\n React.useEffect(() => {\n if (active === shown) return;\n const wait = active ? delay : Math.max(0, minDuration - (Date.now() - since.current));\n const timer = setTimeout(() => {\n since.current = Date.now();\n setShown(active);\n }, wait);\n return () => clearTimeout(timer);\n }, [active, shown, delay, minDuration]);\n return shown;\n}\n\nexport interface LoaderProps extends Omit<React.ComponentProps<\"div\">, \"children\"> {\n /** What is loading, in words (“Loading your invoices”) — passed translated; shown and announced. */\n label: string;\n /**\n * loading · success · error. When the wait ends, the loader shows how it ended for `endDuration` ms, then disappears.\n * @default \"loading\"\n */\n status?: \"loading\" | \"success\" | \"error\";\n /** The words of a success (“Invoices loaded”) — passed translated. Default: nothing more than the check. */\n successLabel?: string;\n /** The words of a failure (“Could not load the invoices”) — passed translated. */\n errorLabel?: string;\n /** Between 0 and 1: a determinate wait — the trace grows to it and the percentage shows. */\n value?: number | null;\n /** The time left, in words (“About 20 s left”) — passed translated (`@krizaka/intl` formats durations). */\n eta?: string;\n /**\n * Milliseconds before anything shows: a wait shorter than this never flashes.\n * @default 250\n */\n delay?: number;\n /**\n * Once shown, the least milliseconds it stays: it never blinks.\n * @default 600\n */\n minDuration?: number;\n /**\n * Milliseconds the ending (check or cross) stays before the loader disappears; `0` never shows it, `Infinity` keeps it.\n * @default 1600\n */\n endDuration?: number;\n /**\n * inline (beside the content) · block (a region's centre) · overlay (over a `relative` parent, frosted) · page (the\n * whole screen).\n * @default \"inline\"\n */\n variant?: LoaderVariants[\"variant\"];\n /**\n * The product's mark in place of the Krizaka glyph while it waits — `<OrochiaLogo animated />` (or `ProductLogo`) of\n * `@krizaka/ui`; it takes the loader's size. The ending (check or cross) stays the glyph's. Decorative: leave `title` off.\n */\n mark?: React.ReactNode;\n}\n\n/**\n * A wait, from start to end. `role=\"status\"` (polite): its words are announced when it shows and when it ends. Under\n * prefers-reduced-motion the glyph rests on a still frame; the delay and the ending stay.\n */\nexport function Loader({\n label,\n status = \"loading\",\n successLabel,\n errorLabel,\n value,\n eta,\n delay = 250,\n minDuration = 600,\n endDuration = 1600,\n variant,\n mark,\n className,\n ...props\n}: LoaderProps) {\n const waiting = useDelayedWait(status === \"loading\", delay, minDuration);\n // Rendered already ended (a result to show), it shows its ending; otherwise only a wait that was seen ends visibly.\n const [ending, setEnding] = React.useState<\"success\" | \"error\" | null>(() => (status !== \"loading\" && endDuration > 0 ? status : null));\n const wasWaiting = React.useRef(false);\n React.useEffect(() => {\n if (!Number.isFinite(endDuration)) return;\n const hide = setTimeout(() => setEnding((e) => (wasWaiting.current ? e : null)), endDuration);\n return () => clearTimeout(hide);\n // Only the ending a loader was mounted with: later endings have their own timer below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n if (waiting) {\n wasWaiting.current = true;\n return;\n }\n if (!wasWaiting.current || status === \"loading\") return;\n wasWaiting.current = false;\n const end = status;\n const show = setTimeout(() => setEnding(endDuration > 0 ? end : null), 0);\n const hide = Number.isFinite(endDuration) ? setTimeout(() => setEnding(null), endDuration) : undefined;\n return () => {\n clearTimeout(show);\n clearTimeout(hide);\n };\n }, [waiting, status, endDuration]);\n\n const phase = waiting ? \"loading\" : ending;\n const s = loader({ variant, ended: phase === \"success\" || phase === \"error\" ? phase : undefined });\n const known = phase === \"loading\" && typeof value === \"number\" && Number.isFinite(value);\n const words = phase === \"success\" ? (successLabel ?? label) : phase === \"error\" ? (errorLabel ?? label) : label;\n const detail = phase === \"loading\" ? [known ? `${Math.round(Math.min(1, Math.max(0, value)) * 100)} %` : null, eta].filter(Boolean).join(\" · \") : \"\";\n return (\n <div role=\"status\" aria-live=\"polite\" data-phase={phase ?? \"idle\"} className={s.root({ className })} {...props}>\n {phase && (\n <div className={s.box()}>\n {mark && phase === \"loading\" ? (\n <span aria-hidden className={s.mark()} data-mark=\"\">\n {mark}\n </span>\n ) : (\n <LoaderGlyph state={phase} value={known ? value : null} className={s.glyph()} />\n )}\n <span className={s.text()}>\n <span className={s.label()}>{words}</span>\n {detail && <span className={s.detail()}>{detail}</span>}\n </span>\n </div>\n )}\n </div>\n );\n}\n\nexport interface LoadingRegionProps extends React.ComponentProps<\"div\"> {\n /** Whether the content is on its way. */\n loading: boolean;\n /** What stands in while it loads: skeletons the shape of the content (no layout shift when it arrives). */\n skeleton: React.ReactNode;\n /** What is loading, in words — passed translated; announced when the wait shows. */\n label: string;\n /** The words when the wait grows long (“Still loading — the server is busy”) — passed translated. */\n slowLabel?: string;\n /**\n * Milliseconds of skeleton before the words of a long wait appear over it.\n * @default 4000\n */\n slowAfter?: number;\n /**\n * Milliseconds before the skeleton shows: a fast answer goes straight to the content.\n * @default 200\n */\n delay?: number;\n /**\n * Once shown, the least milliseconds the skeleton stays.\n * @default 500\n */\n minDuration?: number;\n}\n\n/**\n * A region that hands over: its content → (after `delay`) a skeleton of the same shape → (after `slowAfter`) words over\n * the skeleton → its content again, fading in. `aria-busy` while it waits; the wait is announced once.\n */\nexport function LoadingRegion({\n loading,\n skeleton,\n label,\n slowLabel,\n slowAfter = 4000,\n delay = 200,\n minDuration = 500,\n className,\n children,\n ...props\n}: LoadingRegionProps) {\n const waiting = useDelayedWait(loading, delay, minDuration);\n const slow = useDelayedWait(waiting && loading, slowAfter, 0);\n const busy = loading || waiting;\n return (\n <div aria-busy={busy} data-phase={waiting ? (slow ? \"slow\" : \"skeleton\") : busy ? \"pending\" : \"ready\"} className={[\"relative\", className].filter(Boolean).join(\" \")} {...props}>\n <span role=\"status\" className=\"sr-only\">\n {waiting ? (slow ? (slowLabel ?? label) : label) : \"\"}\n </span>\n {waiting ? (\n <div aria-hidden className=\"kz-fade\">\n {skeleton}\n </div>\n ) : busy ? (\n // Within the delay: the skeleton holds the place, invisible — nothing flashes, nothing jumps.\n <div aria-hidden className=\"invisible\">\n {skeleton}\n </div>\n ) : (\n <div className=\"kz-fade\">{children}</div>\n )}\n {waiting && slow && <Loader label={slowLabel ?? label} variant=\"overlay\" delay={0} minDuration={0} endDuration={0} aria-live=\"off\" role=\"presentation\" />}\n </div>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/loader/loader.tsx"],"sourcesContent":["// Client (timers). The whole life of a wait, done right once: nothing for the first instants (a fast answer never\n// flashes a spinner), then the Krizaka glyph with its words and an ETA, held long enough to be read, ending on a\n// check or a cross that is drawn and announced. `LoadingRegion` hands a region over from its content to a skeleton of\n// the same shape, then to words when the wait grows long, then back to the content.\nimport * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport { LoaderGlyph } from \"../spinner/glyph\";\n\nexport const loader = tv({\n slots: {\n root: \"text-fg-secondary\",\n box: \"kz-fade flex items-center gap-3\",\n glyph: \"shrink-0 text-accent\",\n mark: \"block shrink-0 [&>svg]:block [&>svg]:h-full [&>svg]:w-full\",\n text: \"flex min-w-0 flex-col\",\n label: \"font-medium text-fg\",\n detail: \"text-xs text-fg-secondary tabular-nums\",\n },\n variants: {\n variant: {\n inline: { box: \"text-sm\", glyph: \"h-5 w-5\", mark: \"h-5 w-5\" },\n block: { box: \"flex-col justify-center py-10 text-center text-sm\", glyph: \"h-9 w-9\", mark: \"h-9 w-9\", text: \"items-center\" },\n overlay: {\n root: \"absolute inset-0 z-10 flex items-center justify-center rounded-[inherit] empty:hidden\",\n box: \"flex-col rounded-xl border border-border-default bg-surface-1 px-6 py-5 text-center text-sm shadow-lg\",\n glyph: \"h-9 w-9\", mark: \"h-9 w-9\",\n text: \"items-center\",\n },\n page: {\n root: \"fixed inset-0 z-50 flex items-center justify-center bg-surface-0 empty:hidden\",\n box: \"flex-col text-center\",\n glyph: \"h-14 w-14\", mark: \"h-14 w-14\",\n text: \"items-center\",\n label: \"font-display text-lg\",\n },\n },\n ended: {\n success: { glyph: \"text-fg-success\" },\n error: { glyph: \"text-fg-danger\" },\n },\n },\n defaultVariants: { variant: \"inline\" },\n});\n\nexport type LoaderVariants = VariantProps<typeof loader>;\n\n/**\n * `true` once `active` has lasted `delay` ms; then stays `true` at least `minDuration` ms — a wait that ends early never\n * shows, one that shows never blinks.\n */\nexport function useDelayedWait(active: boolean, delay = 250, minDuration = 600): boolean {\n const [shown, setShown] = React.useState(false);\n const since = React.useRef(0);\n React.useEffect(() => {\n if (active === shown) return;\n const wait = active ? delay : Math.max(0, minDuration - (Date.now() - since.current));\n const timer = setTimeout(() => {\n since.current = Date.now();\n setShown(active);\n }, wait);\n return () => clearTimeout(timer);\n }, [active, shown, delay, minDuration]);\n return shown;\n}\n\nexport interface LoaderProps extends Omit<React.ComponentProps<\"div\">, \"children\"> {\n /** What is loading, in words (“Loading your invoices”) — passed translated; shown and announced. */\n label: string;\n /**\n * loading · success · error. When the wait ends, the loader shows how it ended for `endDuration` ms, then disappears.\n * @default \"loading\"\n */\n status?: \"loading\" | \"success\" | \"error\";\n /** The words of a success (“Invoices loaded”) — passed translated. Default: nothing more than the check. */\n successLabel?: string;\n /** The words of a failure (“Could not load the invoices”) — passed translated. */\n errorLabel?: string;\n /** Between 0 and 1: a determinate wait — the trace grows to it and the percentage shows. */\n value?: number | null;\n /** The time left, in words (“About 20 s left”) — passed translated (`@krizaka/intl` formats durations). */\n eta?: string;\n /**\n * Milliseconds before anything shows: a wait shorter than this never flashes.\n * @default 250\n */\n delay?: number;\n /**\n * Once shown, the least milliseconds it stays: it never blinks.\n * @default 600\n */\n minDuration?: number;\n /**\n * Milliseconds the ending (check or cross) stays before the loader disappears; `0` never shows it, `Infinity` keeps it.\n * @default 1600\n */\n endDuration?: number;\n /**\n * inline (beside the content) · block (a region's centre) · overlay (over a `relative` parent, frosted) · page (the\n * whole screen).\n * @default \"inline\"\n */\n variant?: LoaderVariants[\"variant\"];\n /**\n * The product's mark in place of the Krizaka glyph while it waits — `<OrochiaLogo animated />` (or `ProductLogo`) of\n * `@krizaka/ui`; it takes the loader's size. The ending (check or cross) stays the glyph's. Decorative: leave `title` off.\n */\n mark?: React.ReactNode;\n}\n\n/**\n * A wait, from start to end. `role=\"status\"` (polite): its words are announced when it shows and when it ends. Under\n * prefers-reduced-motion the glyph rests on a still frame; the delay and the ending stay.\n */\nexport function Loader({\n label,\n status = \"loading\",\n successLabel,\n errorLabel,\n value,\n eta,\n delay = 250,\n minDuration = 600,\n endDuration = 1600,\n variant,\n mark,\n className,\n ...props\n}: LoaderProps) {\n const waiting = useDelayedWait(status === \"loading\", delay, minDuration);\n // Rendered already ended (a result to show), it shows its ending; otherwise only a wait that was seen ends visibly.\n const [ending, setEnding] = React.useState<\"success\" | \"error\" | null>(() => (status !== \"loading\" && endDuration > 0 ? status : null));\n const wasWaiting = React.useRef(false);\n React.useEffect(() => {\n if (!Number.isFinite(endDuration)) return;\n const hide = setTimeout(() => setEnding((e) => (wasWaiting.current ? e : null)), endDuration);\n return () => clearTimeout(hide);\n // Only the ending a loader was mounted with: later endings have their own timer below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n if (waiting) {\n wasWaiting.current = true;\n return;\n }\n if (!wasWaiting.current || status === \"loading\") return;\n wasWaiting.current = false;\n const end = status;\n const show = setTimeout(() => setEnding(endDuration > 0 ? end : null), 0);\n const hide = Number.isFinite(endDuration) ? setTimeout(() => setEnding(null), endDuration) : undefined;\n return () => {\n clearTimeout(show);\n clearTimeout(hide);\n };\n }, [waiting, status, endDuration]);\n\n const phase = waiting ? \"loading\" : ending;\n const s = loader({ variant, ended: phase === \"success\" || phase === \"error\" ? phase : undefined });\n const known = phase === \"loading\" && typeof value === \"number\" && Number.isFinite(value);\n const words = phase === \"success\" ? (successLabel ?? label) : phase === \"error\" ? (errorLabel ?? label) : label;\n const detail = phase === \"loading\" ? [known ? `${Math.round(Math.min(1, Math.max(0, value)) * 100)} %` : null, eta].filter(Boolean).join(\" · \") : \"\";\n return (\n <div role=\"status\" aria-live=\"polite\" data-phase={phase ?? \"idle\"} className={s.root({ className })} {...props}>\n {phase && (\n <div className={s.box()}>\n {mark && phase === \"loading\" ? (\n <span aria-hidden className={s.mark()} data-mark=\"\">\n {mark}\n </span>\n ) : (\n <LoaderGlyph state={phase} value={known ? value : null} className={s.glyph()} />\n )}\n <span className={s.text()}>\n <span className={s.label()}>{words}</span>\n {detail && <span className={s.detail()}>{detail}</span>}\n </span>\n </div>\n )}\n </div>\n );\n}\n\nexport interface LoadingRegionProps extends React.ComponentProps<\"div\"> {\n /** Whether the content is on its way. */\n loading: boolean;\n /** What stands in while it loads: skeletons the shape of the content (no layout shift when it arrives). */\n skeleton: React.ReactNode;\n /** What is loading, in words — passed translated; announced when the wait shows. */\n label: string;\n /** The words when the wait grows long (“Still loading — the server is busy”) — passed translated. */\n slowLabel?: string;\n /**\n * Milliseconds of skeleton before the words of a long wait appear over it.\n * @default 4000\n */\n slowAfter?: number;\n /**\n * Milliseconds before the skeleton shows: a fast answer goes straight to the content.\n * @default 200\n */\n delay?: number;\n /**\n * Once shown, the least milliseconds the skeleton stays.\n * @default 500\n */\n minDuration?: number;\n}\n\n/**\n * A region that hands over: its content → (after `delay`) a skeleton of the same shape → (after `slowAfter`) words over\n * the skeleton → its content again, fading in. `aria-busy` while it waits; the wait is announced once.\n */\nexport function LoadingRegion({\n loading,\n skeleton,\n label,\n slowLabel,\n slowAfter = 4000,\n delay = 200,\n minDuration = 500,\n className,\n children,\n ...props\n}: LoadingRegionProps) {\n const waiting = useDelayedWait(loading, delay, minDuration);\n const slow = useDelayedWait(waiting && loading, slowAfter, 0);\n const busy = loading || waiting;\n return (\n <div aria-busy={busy} data-phase={waiting ? (slow ? \"slow\" : \"skeleton\") : busy ? \"pending\" : \"ready\"} className={[\"relative\", className].filter(Boolean).join(\" \")} {...props}>\n <span role=\"status\" className=\"sr-only\">\n {waiting ? (slow ? (slowLabel ?? label) : label) : \"\"}\n </span>\n {waiting ? (\n <div aria-hidden className=\"kz-fade\">\n {skeleton}\n </div>\n ) : busy ? (\n // Within the delay: the skeleton holds the place, invisible — nothing flashes, nothing jumps.\n <div aria-hidden className=\"invisible\">\n {skeleton}\n </div>\n ) : (\n <div className=\"kz-fade\">{children}</div>\n )}\n {waiting && slow && <Loader label={slowLabel ?? label} variant=\"overlay\" delay={0} minDuration={0} endDuration={0} aria-live=\"off\" role=\"presentation\" />}\n </div>\n );\n}\n"],"mappings":"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","names":[]}
package/dist/map.js CHANGED
@@ -137,17 +137,17 @@ function usePrefersReducedMotion() {
137
137
 
138
138
  // ../tokens/dist/native.js
139
139
  var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze({
140
- "surface0": "#0c0c0e",
141
- "surface1": "#161618",
142
- "surface2": "#1f1f23",
143
- "surface3": "#2a2a2d",
144
- "media": "#1b1b1d",
145
- "borderSubtle": "rgba(255,255,255,0.06)",
146
- "borderDefault": "rgba(255,255,255,0.1)",
147
- "borderStrong": "rgba(255,255,255,0.16)",
148
- "textPrimary": "#f5f5f5",
149
- "textSecondary": "#a0a0a7",
150
- "textMuted": "#92929b",
140
+ "surface0": "#151b18",
141
+ "surface1": "#191f1c",
142
+ "surface2": "#1c221f",
143
+ "surface3": "#262e2a",
144
+ "media": "#1e2521",
145
+ "borderSubtle": "rgba(231,240,230,0.07)",
146
+ "borderDefault": "rgba(231,240,230,0.12)",
147
+ "borderStrong": "rgba(231,240,230,0.2)",
148
+ "textPrimary": "#ecf0ea",
149
+ "textSecondary": "#bcc8c0",
150
+ "textMuted": "#a7b4ab",
151
151
  "textOnMedia": "#ffffff",
152
152
  "accent": "#3e76a8",
153
153
  "accentHover": "#346793",
@@ -156,9 +156,9 @@ var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze
156
156
  "accent2": "#3e76a8",
157
157
  "onAccent": "#ffffff",
158
158
  "ring": "#3e76a8",
159
- "brandGradientFrom": "#121a21",
160
- "brandGradientVia": "#0f1114",
161
- "brandGradientTo": "#0c0c0e",
159
+ "brandGradientFrom": "#151b18",
160
+ "brandGradientVia": "#151b18",
161
+ "brandGradientTo": "#151b18",
162
162
  "success": "#10b77f",
163
163
  "successText": "#36d399",
164
164
  "successSoft": "rgba(16,183,127,0.14)",
@@ -173,25 +173,31 @@ var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze
173
173
  "scrim": "rgba(0,0,0,0.6)",
174
174
  "scrimStrong": "rgba(0,0,0,0.8)",
175
175
  "overlay": "rgba(0,0,0,0.7)",
176
- "surfaceSheen": "rgba(255,255,255,0.045)",
176
+ "paperRuleMajor": "rgba(217,232,222,0.09)",
177
+ "paperRuleMinor": "rgba(217,232,222,0.045)",
178
+ "paperRuleMargin": "#e08071",
179
+ "paperTag": "#2d3932",
180
+ "paperTagEdge": "#586a5f",
181
+ "paperTagInk": "#e9eee7",
182
+ "surfaceSheen": "rgba(255,255,255,0)",
177
183
  "fillShade": "rgba(0,0,0,0.12)",
178
- "edgeLight": "rgba(255,255,255,0.07)",
184
+ "edgeLight": "rgba(255,255,255,0)",
179
185
  "edgeOnFill": "rgba(255,255,255,0.22)",
180
186
  "edgeWell": "rgba(4,4,7,0.5)",
181
- "glassBg": "rgba(29,29,32,0.88)",
187
+ "glassBg": "#191f1c",
182
188
  "glassBorder": "rgba(255,255,255,0.1)"
183
189
  }), light: /* @__PURE__ */ Object.freeze({
184
- "surface0": "#fafafa",
185
- "surface1": "#ffffff",
186
- "surface2": "#f1f1f3",
187
- "surface3": "#e4e4e7",
188
- "media": "#e9e9ec",
189
- "borderSubtle": "rgba(0,0,0,0.06)",
190
- "borderDefault": "rgba(0,0,0,0.1)",
191
- "borderStrong": "rgba(0,0,0,0.16)",
192
- "textPrimary": "#18181b",
193
- "textSecondary": "#56565d",
194
- "textMuted": "#64646d",
190
+ "surface0": "#f4f6f3",
191
+ "surface1": "#fbfcfb",
192
+ "surface2": "#f0f3ef",
193
+ "surface3": "#dfe3de",
194
+ "media": "#e5e8e3",
195
+ "borderSubtle": "rgba(31,59,91,0.1)",
196
+ "borderDefault": "rgba(31,59,91,0.17)",
197
+ "borderStrong": "rgba(31,59,91,0.28)",
198
+ "textPrimary": "#1d3654",
199
+ "textSecondary": "#405064",
200
+ "textMuted": "#4f5b69",
195
201
  "textOnMedia": "#ffffff",
196
202
  "accent": "#2a5f8d",
197
203
  "accentHover": "#1f4d75",
@@ -200,9 +206,9 @@ var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze
200
206
  "accent2": "#2a5f8d",
201
207
  "onAccent": "#ffffff",
202
208
  "ring": "#2a5f8d",
203
- "brandGradientFrom": "#e7eef4",
204
- "brandGradientVia": "#f5f7fa",
205
- "brandGradientTo": "#fafafa",
209
+ "brandGradientFrom": "#f4f6f3",
210
+ "brandGradientVia": "#f4f6f3",
211
+ "brandGradientTo": "#f4f6f3",
206
212
  "success": "#10b77f",
207
213
  "successText": "#0a714e",
208
214
  "successSoft": "rgba(16,183,127,0.1)",
@@ -217,12 +223,18 @@ var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze
217
223
  "scrim": "rgba(0,0,0,0.6)",
218
224
  "scrimStrong": "rgba(0,0,0,0.8)",
219
225
  "overlay": "rgba(0,0,0,0.7)",
220
- "surfaceSheen": "rgba(255,255,255,0.7)",
226
+ "paperRuleMajor": "rgba(69,109,161,0.24)",
227
+ "paperRuleMinor": "rgba(69,109,161,0.1)",
228
+ "paperRuleMargin": "#a53127",
229
+ "paperTag": "#eadfc2",
230
+ "paperTagEdge": "#b4a274",
231
+ "paperTagInk": "#282620",
232
+ "surfaceSheen": "rgba(255,255,255,0)",
221
233
  "fillShade": "rgba(0,0,0,0.12)",
222
- "edgeLight": "rgba(255,255,255,0.9)",
234
+ "edgeLight": "rgba(255,255,255,0)",
223
235
  "edgeOnFill": "rgba(255,255,255,0.22)",
224
236
  "edgeWell": "rgba(48,52,80,0.08)",
225
- "glassBg": "rgba(255,255,255,0.88)",
237
+ "glassBg": "#fbfcfb",
226
238
  "glassBorder": "rgba(0,0,0,0.08)"
227
239
  }) });
228
240
  var brands = /* @__PURE__ */ Object.freeze({
@@ -237,9 +249,9 @@ var brands = /* @__PURE__ */ Object.freeze({
237
249
  "ring": "#3e76a8",
238
250
  "info": "#3e76a8",
239
251
  "infoText": "#8ebde1",
240
- "brandGradientFrom": "#121a21",
241
- "brandGradientVia": "#0f1114",
242
- "brandGradientTo": "#0c0c0e"
252
+ "brandGradientFrom": "#151b18",
253
+ "brandGradientVia": "#151b18",
254
+ "brandGradientTo": "#151b18"
243
255
  },
244
256
  "light": {
245
257
  "accent": "#2a5f8d",
@@ -251,9 +263,9 @@ var brands = /* @__PURE__ */ Object.freeze({
251
263
  "ring": "#2a5f8d",
252
264
  "info": "#2a5f8d",
253
265
  "infoText": "#275782",
254
- "brandGradientFrom": "#e7eef4",
255
- "brandGradientVia": "#f5f7fa",
256
- "brandGradientTo": "#fafafa"
266
+ "brandGradientFrom": "#f4f6f3",
267
+ "brandGradientVia": "#f4f6f3",
268
+ "brandGradientTo": "#f4f6f3"
257
269
  }
258
270
  },
259
271
  "orazaka": {
@@ -267,9 +279,9 @@ var brands = /* @__PURE__ */ Object.freeze({
267
279
  "ring": "#f67e23",
268
280
  "info": "#5e99c9",
269
281
  "infoText": "#8ebde1",
270
- "brandGradientFrom": "#28170b",
271
- "brandGradientVia": "#17130c",
272
- "brandGradientTo": "#0c0c0e"
282
+ "brandGradientFrom": "#151b18",
283
+ "brandGradientVia": "#151b18",
284
+ "brandGradientTo": "#151b18"
273
285
  },
274
286
  "light": {
275
287
  "accent": "#b45309",
@@ -281,9 +293,9 @@ var brands = /* @__PURE__ */ Object.freeze({
281
293
  "ring": "#b45309",
282
294
  "info": "#2a5f8d",
283
295
  "infoText": "#275782",
284
- "brandGradientFrom": "#ffebd6",
285
- "brandGradientVia": "#fdf7ed",
286
- "brandGradientTo": "#fafafa"
296
+ "brandGradientFrom": "#f4f6f3",
297
+ "brandGradientVia": "#f4f6f3",
298
+ "brandGradientTo": "#f4f6f3"
287
299
  }
288
300
  },
289
301
  "orochia": {
@@ -297,9 +309,9 @@ var brands = /* @__PURE__ */ Object.freeze({
297
309
  "ring": "#a78bfa",
298
310
  "info": "#7c3aed",
299
311
  "infoText": "#a78bfa",
300
- "brandGradientFrom": "#1a0e2a",
301
- "brandGradientVia": "#1c0d17",
302
- "brandGradientTo": "#0c0c0e"
312
+ "brandGradientFrom": "#151b18",
313
+ "brandGradientVia": "#151b18",
314
+ "brandGradientTo": "#151b18"
303
315
  },
304
316
  "light": {
305
317
  "accent": "#7c3aed",
@@ -311,9 +323,9 @@ var brands = /* @__PURE__ */ Object.freeze({
311
323
  "ring": "#7c3aed",
312
324
  "info": "#7c3aed",
313
325
  "infoText": "#6d28d9",
314
- "brandGradientFrom": "#efe7fe",
315
- "brandGradientVia": "#fdedf5",
316
- "brandGradientTo": "#fafafa"
326
+ "brandGradientFrom": "#f4f6f3",
327
+ "brandGradientVia": "#f4f6f3",
328
+ "brandGradientTo": "#f4f6f3"
317
329
  }
318
330
  },
319
331
  "yasakia": {
@@ -327,9 +339,9 @@ var brands = /* @__PURE__ */ Object.freeze({
327
339
  "ring": "#24dbc9",
328
340
  "info": "#5e99c9",
329
341
  "infoText": "#8ebde1",
330
- "brandGradientFrom": "#0a241e",
331
- "brandGradientVia": "#0c1818",
332
- "brandGradientTo": "#0c0c0e"
342
+ "brandGradientFrom": "#151b18",
343
+ "brandGradientVia": "#151b18",
344
+ "brandGradientTo": "#151b18"
333
345
  },
334
346
  "light": {
335
347
  "accent": "#097169",
@@ -341,9 +353,9 @@ var brands = /* @__PURE__ */ Object.freeze({
341
353
  "ring": "#097169",
342
354
  "info": "#2a5f8d",
343
355
  "infoText": "#275782",
344
- "brandGradientFrom": "#e1faf1",
345
- "brandGradientVia": "#e9fbfa",
346
- "brandGradientTo": "#fafafa"
356
+ "brandGradientFrom": "#f4f6f3",
357
+ "brandGradientVia": "#f4f6f3",
358
+ "brandGradientTo": "#f4f6f3"
347
359
  }
348
360
  },
349
361
  "yororis": {
@@ -357,9 +369,9 @@ var brands = /* @__PURE__ */ Object.freeze({
357
369
  "ring": "#98b587",
358
370
  "info": "#5e99c9",
359
371
  "infoText": "#8ebde1",
360
- "brandGradientFrom": "#1c1812",
361
- "brandGradientVia": "#11140f",
362
- "brandGradientTo": "#0c0c0e"
372
+ "brandGradientFrom": "#151b18",
373
+ "brandGradientVia": "#151b18",
374
+ "brandGradientTo": "#151b18"
363
375
  },
364
376
  "light": {
365
377
  "accent": "#456237",
@@ -371,9 +383,9 @@ var brands = /* @__PURE__ */ Object.freeze({
371
383
  "ring": "#456237",
372
384
  "info": "#2a5f8d",
373
385
  "infoText": "#275782",
374
- "brandGradientFrom": "#f5efe5",
375
- "brandGradientVia": "#f1f6ee",
376
- "brandGradientTo": "#fafafa"
386
+ "brandGradientFrom": "#f4f6f3",
387
+ "brandGradientVia": "#f4f6f3",
388
+ "brandGradientTo": "#f4f6f3"
377
389
  }
378
390
  },
379
391
  "yomizaka": {
@@ -387,9 +399,9 @@ var brands = /* @__PURE__ */ Object.freeze({
387
399
  "ring": "#8888f2",
388
400
  "info": "#5e99c9",
389
401
  "infoText": "#8ebde1",
390
- "brandGradientFrom": "#121321",
391
- "brandGradientVia": "#111019",
392
- "brandGradientTo": "#0c0c0e"
402
+ "brandGradientFrom": "#151b18",
403
+ "brandGradientVia": "#151b18",
404
+ "brandGradientTo": "#151b18"
393
405
  },
394
406
  "light": {
395
407
  "accent": "#3c38b2",
@@ -401,9 +413,9 @@ var brands = /* @__PURE__ */ Object.freeze({
401
413
  "ring": "#3c38b2",
402
414
  "info": "#2a5f8d",
403
415
  "infoText": "#275782",
404
- "brandGradientFrom": "#ebecfa",
405
- "brandGradientVia": "#f0f0fa",
406
- "brandGradientTo": "#fafafa"
416
+ "brandGradientFrom": "#f4f6f3",
417
+ "brandGradientVia": "#f4f6f3",
418
+ "brandGradientTo": "#f4f6f3"
407
419
  }
408
420
  },
409
421
  "kachizaka": {
@@ -417,9 +429,9 @@ var brands = /* @__PURE__ */ Object.freeze({
417
429
  "ring": "#fbcf23",
418
430
  "info": "#5e99c9",
419
431
  "infoText": "#8ebde1",
420
- "brandGradientFrom": "#101628",
421
- "brandGradientVia": "#0f111a",
422
- "brandGradientTo": "#0c0c0e"
432
+ "brandGradientFrom": "#151b18",
433
+ "brandGradientVia": "#151b18",
434
+ "brandGradientTo": "#151b18"
423
435
  },
424
436
  "light": {
425
437
  "accent": "#fac905",
@@ -431,9 +443,9 @@ var brands = /* @__PURE__ */ Object.freeze({
431
443
  "ring": "#1743d3",
432
444
  "info": "#2a5f8d",
433
445
  "infoText": "#275782",
434
- "brandGradientFrom": "#e8edfc",
435
- "brandGradientVia": "#fcf8e8",
436
- "brandGradientTo": "#fafafa"
446
+ "brandGradientFrom": "#f4f6f3",
447
+ "brandGradientVia": "#f4f6f3",
448
+ "brandGradientTo": "#f4f6f3"
437
449
  }
438
450
  },
439
451
  "akinaza": {
@@ -447,9 +459,9 @@ var brands = /* @__PURE__ */ Object.freeze({
447
459
  "ring": "#65c374",
448
460
  "info": "#5e99c9",
449
461
  "infoText": "#8ebde1",
450
- "brandGradientFrom": "#111d15",
451
- "brandGradientVia": "#181410",
452
- "brandGradientTo": "#0c0c0e"
462
+ "brandGradientFrom": "#151b18",
463
+ "brandGradientVia": "#151b18",
464
+ "brandGradientTo": "#151b18"
453
465
  },
454
466
  "light": {
455
467
  "accent": "#21692f",
@@ -461,9 +473,9 @@ var brands = /* @__PURE__ */ Object.freeze({
461
473
  "ring": "#21692f",
462
474
  "info": "#2a5f8d",
463
475
  "infoText": "#275782",
464
- "brandGradientFrom": "#e9f7eb",
465
- "brandGradientVia": "#faf1eb",
466
- "brandGradientTo": "#fafafa"
476
+ "brandGradientFrom": "#f4f6f3",
477
+ "brandGradientVia": "#f4f6f3",
478
+ "brandGradientTo": "#f4f6f3"
467
479
  }
468
480
  }
469
481
  });
@@ -618,7 +630,7 @@ var map = tv({
618
630
  fallback: "absolute inset-0",
619
631
  controls: "absolute right-3 top-3 z-10 flex flex-col overflow-hidden rounded-xl border border-border-default bg-surface-1 shadow-floating",
620
632
  control: "inline-flex h-10 w-10 items-center justify-center text-lg font-semibold text-fg-secondary transition-colors hover:bg-surface-3 hover:text-fg focus-visible:outline-hidden focus-visible:focus-ring-inset disabled:opacity-40 [&+&]:border-t [&+&]:border-border-subtle",
621
- attribution: "absolute bottom-1.5 right-1.5 z-10 rounded-md bg-surface-1/85 px-1.5 py-0.5 text-[10px] text-fg-secondary backdrop-blur-sm [&_a]:underline-offset-2 hover:[&_a]:underline",
633
+ attribution: "absolute bottom-1.5 right-1.5 z-10 rounded-md bg-surface-1 px-1.5 py-0.5 text-[10px] text-fg-secondary [&_a]:underline-offset-2 hover:[&_a]:underline",
622
634
  places: "sr-only",
623
635
  marker: "group relative flex -translate-y-1/2 cursor-pointer items-center justify-center rounded-full border-2 border-on-accent bg-accent shadow-floating outline-hidden transition-transform hover:scale-110 focus-visible:focus-ring motion-reduce:transition-none motion-reduce:hover:scale-100 data-[selected]:scale-125",
624
636
  markerLabel: "pointer-events-none absolute bottom-full mb-2 whitespace-nowrap rounded-lg border border-border-default bg-surface-1 px-2 py-1 text-xs font-semibold text-fg shadow-floating"