@krizaka/ui 3.34.0 → 3.36.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 (589) 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 +1 -1
  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 +3 -3
  11. package/dist/app-shell.js.map +1 -1
  12. package/dist/argument-card.js +1 -1
  13. package/dist/bird-plate.d.ts +38 -0
  14. package/dist/bird-plate.js +39 -0
  15. package/dist/bird-plate.js.map +1 -0
  16. package/dist/blocks.css +243 -46
  17. package/dist/checkbox.js +1 -1
  18. package/dist/checkbox.js.map +1 -1
  19. package/dist/chip-row.js +1 -1
  20. package/dist/chip-row.js.map +1 -1
  21. package/dist/{chunk-3S4GHSPZ.js → chunk-63KCDMX2.js} +3 -3
  22. package/dist/chunk-63KCDMX2.js.map +1 -0
  23. package/dist/{chunk-NJFCSVPT.js → chunk-6EAHUURY.js} +2 -2
  24. package/dist/chunk-6EAHUURY.js.map +1 -0
  25. package/dist/{chunk-REPTKUJ6.js → chunk-7NRSPHAF.js} +2 -2
  26. package/dist/chunk-7NRSPHAF.js.map +1 -0
  27. package/dist/{chunk-2AJ4NJUF.js → chunk-IANSFIVC.js} +5 -1
  28. package/dist/chunk-IANSFIVC.js.map +1 -0
  29. package/dist/chunk-JFJECOZ2.js +338 -0
  30. package/dist/chunk-JFJECOZ2.js.map +1 -0
  31. package/dist/{chunk-KIBICUZK.js → chunk-K2ZYB4HP.js} +4 -4
  32. package/dist/{chunk-7Z4KHPFC.js → chunk-YGIN2YIY.js} +2 -2
  33. package/dist/{chunk-7Z4KHPFC.js.map → chunk-YGIN2YIY.js.map} +1 -1
  34. package/dist/{chunk-LZNZLCOE.js → chunk-YKEIOYJ5.js} +20 -6
  35. package/dist/chunk-YKEIOYJ5.js.map +1 -0
  36. package/dist/{chunk-2PNLHZLT.js → chunk-YOTQD7JD.js} +2 -2
  37. package/dist/chunk-YOTQD7JD.js.map +1 -0
  38. package/dist/command.js +3 -3
  39. package/dist/command.js.map +1 -1
  40. package/dist/comparison-table.js +2 -2
  41. package/dist/comparison-table.js.map +1 -1
  42. package/dist/countdown.js +1 -1
  43. package/dist/countdown.js.map +1 -1
  44. package/dist/cover-hero.js +15 -6
  45. package/dist/cover-hero.js.map +1 -1
  46. package/dist/dashboard-layout.js +1 -1
  47. package/dist/dashboard-layout.js.map +1 -1
  48. package/dist/data-table.js +4 -4
  49. package/dist/date-picker.js +3 -3
  50. package/dist/date-picker.js.map +1 -1
  51. package/dist/description-list.js +1 -1
  52. package/dist/description-list.js.map +1 -1
  53. package/dist/detail-layout.js +1 -1
  54. package/dist/detail-layout.js.map +1 -1
  55. package/dist/dialog.js +1 -1
  56. package/dist/docs-nav.js +1 -1
  57. package/dist/docs-nav.js.map +1 -1
  58. package/dist/dropdown-menu.js +1 -1
  59. package/dist/dropdown-menu.js.map +1 -1
  60. package/dist/filter-bar.js +1 -1
  61. package/dist/footnote.d.ts +32 -0
  62. package/dist/footnote.js +29 -0
  63. package/dist/footnote.js.map +1 -0
  64. package/dist/genui.js +4 -4
  65. package/dist/geometry-DncHaYP8.d.ts +22 -0
  66. package/dist/language-switch.js +1 -1
  67. package/dist/list.js +1 -1
  68. package/dist/loader.js +2 -2
  69. package/dist/loader.js.map +1 -1
  70. package/dist/map.js +95 -83
  71. package/dist/map.js.map +1 -1
  72. package/dist/mascot-quote.d.ts +2 -21
  73. package/dist/mascot-quote.js +9 -338
  74. package/dist/mascot-quote.js.map +1 -1
  75. package/dist/match-dialog.js +1 -1
  76. package/dist/match-dialog.js.map +1 -1
  77. package/dist/meter.js +1 -1
  78. package/dist/meter.js.map +1 -1
  79. package/dist/motion.css +28 -41
  80. package/dist/native/map.js +94 -82
  81. package/dist/native/map.js.map +1 -1
  82. package/dist/native.d.ts +8 -1
  83. package/dist/native.js +53 -41
  84. package/dist/native.js.map +1 -1
  85. package/dist/nav-bar.d.ts +1 -1
  86. package/dist/nav-bar.js +9 -9
  87. package/dist/nav-bar.js.map +1 -1
  88. package/dist/page-hero.js +1 -1
  89. package/dist/page-index.d.ts +30 -0
  90. package/dist/page-index.js +23 -0
  91. package/dist/page-index.js.map +1 -0
  92. package/dist/page.d.ts +19 -7
  93. package/dist/page.js +1 -1
  94. package/dist/photo-grid.js +2 -2
  95. package/dist/photo-grid.js.map +1 -1
  96. package/dist/radio-group.js +1 -1
  97. package/dist/radio-group.js.map +1 -1
  98. package/dist/rail-nav.js +1 -1
  99. package/dist/rail-nav.js.map +1 -1
  100. package/dist/search-field.js +1 -1
  101. package/dist/service-card.js +2 -2
  102. package/dist/service-card.js.map +1 -1
  103. package/dist/site-footer.d.ts +1 -1
  104. package/dist/site-footer.js +3 -3
  105. package/dist/site-footer.js.map +1 -1
  106. package/dist/{sites-B4prB793.d.ts → sites-B4sYlfPQ.d.ts} +1 -1
  107. package/dist/sites.d.ts +1 -1
  108. package/dist/sites.js +4 -0
  109. package/dist/sites.js.map +1 -1
  110. package/dist/specimen-tag.d.ts +52 -0
  111. package/dist/specimen-tag.js +33 -0
  112. package/dist/specimen-tag.js.map +1 -0
  113. package/dist/stat.js +1 -1
  114. package/dist/stat.js.map +1 -1
  115. package/dist/sticky-action.d.ts +1 -1
  116. package/dist/sticky-action.js +1 -1
  117. package/dist/sticky-action.js.map +1 -1
  118. package/dist/swipe-deck.js +1 -1
  119. package/dist/swipe-deck.js.map +1 -1
  120. package/package.json +78 -8
  121. package/registry/account-menu.json +1 -1
  122. package/registry/achievement.json +1 -1
  123. package/registry/action-bar.json +1 -1
  124. package/registry/activity-feed.json +2 -2
  125. package/registry/alert.json +1 -1
  126. package/registry/anatomy-plate.json +168 -0
  127. package/registry/app-header.json +2 -2
  128. package/registry/app-shell.json +2 -2
  129. package/registry/argument-card.json +1 -1
  130. package/registry/audio-player.json +1 -1
  131. package/registry/auth-layout.json +1 -1
  132. package/registry/avatar.json +1 -1
  133. package/registry/badge.json +1 -1
  134. package/registry/bird-plate.json +221 -0
  135. package/registry/button.json +1 -1
  136. package/registry/captcha.json +1 -1
  137. package/registry/card-grid.json +1 -1
  138. package/registry/card.json +1 -1
  139. package/registry/catalogue-page.json +1 -1
  140. package/registry/changelog-page.json +1 -1
  141. package/registry/chat.json +3 -3
  142. package/registry/checkbox.json +2 -2
  143. package/registry/chip-link.json +1 -1
  144. package/registry/chip-row.json +2 -2
  145. package/registry/chip.json +1 -1
  146. package/registry/choice-grid.json +1 -1
  147. package/registry/code-block.json +1 -1
  148. package/registry/combobox.json +1 -1
  149. package/registry/command.json +2 -2
  150. package/registry/comparison-table.json +2 -2
  151. package/registry/component-page.json +1 -1
  152. package/registry/confirm-button.json +1 -1
  153. package/registry/contact-page.json +1 -1
  154. package/registry/continue-prompt.json +1 -1
  155. package/registry/countdown.json +2 -2
  156. package/registry/cover-hero.json +2 -2
  157. package/registry/cta-panel.json +1 -1
  158. package/registry/dashboard-layout.json +2 -2
  159. package/registry/data-table.json +1 -1
  160. package/registry/date-picker.json +4 -4
  161. package/registry/decision-list.json +1 -1
  162. package/registry/description-list.json +2 -2
  163. package/registry/detail-layout.json +2 -2
  164. package/registry/dialog.json +2 -2
  165. package/registry/docs-article-page.json +1 -1
  166. package/registry/docs-hub-page.json +1 -1
  167. package/registry/docs-layout.json +1 -1
  168. package/registry/docs-nav.json +2 -2
  169. package/registry/document-viewer.json +1 -1
  170. package/registry/dropdown-menu.json +2 -2
  171. package/registry/empty-state.json +1 -1
  172. package/registry/engine-flow.json +1 -1
  173. package/registry/error-page.json +1 -1
  174. package/registry/examples/action-sheet/native/video-actions.dark.png +0 -0
  175. package/registry/examples/action-sheet/native/video-actions.light.png +0 -0
  176. package/registry/examples/activity-feed/native/notifications.dark.png +0 -0
  177. package/registry/examples/activity-feed/native/notifications.light.png +0 -0
  178. package/registry/examples/anatomy-plate/button.d.ts +4 -0
  179. package/registry/examples/anatomy-plate/button.js +25 -0
  180. package/registry/examples/anatomy-plate/button.tsx +20 -0
  181. package/registry/examples/avatar/native/group.dark.png +0 -0
  182. package/registry/examples/avatar/native/group.light.png +0 -0
  183. package/registry/examples/avatar/native/presence.dark.png +0 -0
  184. package/registry/examples/avatar/native/presence.light.png +0 -0
  185. package/registry/examples/avatar/native/sizes.dark.png +0 -0
  186. package/registry/examples/avatar/native/sizes.light.png +0 -0
  187. package/registry/examples/badge/native/dot.dark.png +0 -0
  188. package/registry/examples/badge/native/dot.light.png +0 -0
  189. package/registry/examples/badge/native/scrim.dark.png +0 -0
  190. package/registry/examples/badge/native/scrim.light.png +0 -0
  191. package/registry/examples/badge/native/tones.dark.png +0 -0
  192. package/registry/examples/badge/native/tones.light.png +0 -0
  193. package/registry/examples/bird-plate/flock.d.ts +4 -0
  194. package/registry/examples/bird-plate/flock.js +24 -0
  195. package/registry/examples/bird-plate/flock.tsx +18 -0
  196. package/registry/examples/bird-plate/single.d.ts +4 -0
  197. package/registry/examples/bird-plate/single.js +19 -0
  198. package/registry/examples/bird-plate/single.tsx +13 -0
  199. package/registry/examples/button/native/danger.dark.png +0 -0
  200. package/registry/examples/button/native/danger.light.png +0 -0
  201. package/registry/examples/button/native/disabled.dark.png +0 -0
  202. package/registry/examples/button/native/disabled.light.png +0 -0
  203. package/registry/examples/button/native/ghost.dark.png +0 -0
  204. package/registry/examples/button/native/ghost.light.png +0 -0
  205. package/registry/examples/button/native/gradient.dark.png +0 -0
  206. package/registry/examples/button/native/gradient.light.png +0 -0
  207. package/registry/examples/button/native/icon-only.dark.png +0 -0
  208. package/registry/examples/button/native/icon-only.light.png +0 -0
  209. package/registry/examples/button/native/icon.dark.png +0 -0
  210. package/registry/examples/button/native/icon.light.png +0 -0
  211. package/registry/examples/button/native/loading.dark.png +0 -0
  212. package/registry/examples/button/native/loading.light.png +0 -0
  213. package/registry/examples/button/native/outline.dark.png +0 -0
  214. package/registry/examples/button/native/outline.light.png +0 -0
  215. package/registry/examples/button/native/primary.dark.png +0 -0
  216. package/registry/examples/button/native/primary.light.png +0 -0
  217. package/registry/examples/button/native/secondary.dark.png +0 -0
  218. package/registry/examples/button/native/secondary.light.png +0 -0
  219. package/registry/examples/button/native/sizes.dark.png +0 -0
  220. package/registry/examples/button/native/sizes.light.png +0 -0
  221. package/registry/examples/card/native/body.dark.png +0 -0
  222. package/registry/examples/card/native/body.light.png +0 -0
  223. package/registry/examples/card/native/default.dark.png +0 -0
  224. package/registry/examples/card/native/default.light.png +0 -0
  225. package/registry/examples/card/native/elevated.dark.png +0 -0
  226. package/registry/examples/card/native/elevated.light.png +0 -0
  227. package/registry/examples/card/native/pressable.dark.png +0 -0
  228. package/registry/examples/card/native/pressable.light.png +0 -0
  229. package/registry/examples/chat/native/assistant.dark.png +0 -0
  230. package/registry/examples/chat/native/assistant.light.png +0 -0
  231. package/registry/examples/chat/native/conversation.dark.png +0 -0
  232. package/registry/examples/chat/native/conversation.light.png +0 -0
  233. package/registry/examples/chat/native/inbox.dark.png +0 -0
  234. package/registry/examples/chat/native/inbox.light.png +0 -0
  235. package/registry/examples/checkbox/native/terms.dark.png +0 -0
  236. package/registry/examples/checkbox/native/terms.light.png +0 -0
  237. package/registry/examples/chip/native/multiple.dark.png +0 -0
  238. package/registry/examples/chip/native/multiple.light.png +0 -0
  239. package/registry/examples/chip/native/removable.dark.png +0 -0
  240. package/registry/examples/chip/native/removable.light.png +0 -0
  241. package/registry/examples/chip/native/single.dark.png +0 -0
  242. package/registry/examples/chip/native/single.light.png +0 -0
  243. package/registry/examples/chip/native/toggle.dark.png +0 -0
  244. package/registry/examples/chip/native/toggle.light.png +0 -0
  245. package/registry/examples/combobox/native/multiple.dark.png +0 -0
  246. package/registry/examples/combobox/native/multiple.light.png +0 -0
  247. package/registry/examples/combobox/native/search.dark.png +0 -0
  248. package/registry/examples/combobox/native/search.light.png +0 -0
  249. package/registry/examples/countdown/native/days.dark.png +0 -0
  250. package/registry/examples/countdown/native/days.light.png +0 -0
  251. package/registry/examples/countdown/native/hours.dark.png +0 -0
  252. package/registry/examples/countdown/native/hours.light.png +0 -0
  253. package/registry/examples/countdown/native/sizes.dark.png +0 -0
  254. package/registry/examples/countdown/native/sizes.light.png +0 -0
  255. package/registry/examples/countdown/native/urgent.dark.png +0 -0
  256. package/registry/examples/countdown/native/urgent.light.png +0 -0
  257. package/registry/examples/countdown/native/with-label.dark.png +0 -0
  258. package/registry/examples/countdown/native/with-label.light.png +0 -0
  259. package/registry/examples/date-picker/native/birth-date-wheel.dark.png +0 -0
  260. package/registry/examples/date-picker/native/birth-date-wheel.light.png +0 -0
  261. package/registry/examples/date-picker/native/birth-date.dark.png +0 -0
  262. package/registry/examples/date-picker/native/birth-date.light.png +0 -0
  263. package/registry/examples/date-picker/native/calendar.dark.png +0 -0
  264. package/registry/examples/date-picker/native/calendar.light.png +0 -0
  265. package/registry/examples/date-picker/native/day-strip.dark.png +0 -0
  266. package/registry/examples/date-picker/native/day-strip.light.png +0 -0
  267. package/registry/examples/date-picker/native/month-year.dark.png +0 -0
  268. package/registry/examples/date-picker/native/month-year.light.png +0 -0
  269. package/registry/examples/date-picker/native/time-slots.dark.png +0 -0
  270. package/registry/examples/date-picker/native/time-slots.light.png +0 -0
  271. package/registry/examples/date-picker/native/time-wheel.dark.png +0 -0
  272. package/registry/examples/date-picker/native/time-wheel.light.png +0 -0
  273. package/registry/examples/description-list/native/job-details.dark.png +0 -0
  274. package/registry/examples/description-list/native/job-details.light.png +0 -0
  275. package/registry/examples/dialog/native/sheet.dark.png +0 -0
  276. package/registry/examples/dialog/native/sheet.light.png +0 -0
  277. package/registry/examples/empty-state/native/default.dark.png +0 -0
  278. package/registry/examples/empty-state/native/default.light.png +0 -0
  279. package/registry/examples/fab/native/extended.dark.png +0 -0
  280. package/registry/examples/fab/native/extended.light.png +0 -0
  281. package/registry/examples/field/native/default.dark.png +0 -0
  282. package/registry/examples/field/native/default.light.png +0 -0
  283. package/registry/examples/field/native/select.dark.png +0 -0
  284. package/registry/examples/field/native/select.light.png +0 -0
  285. package/registry/examples/footnote/notes.d.ts +4 -0
  286. package/registry/examples/footnote/notes.js +24 -0
  287. package/registry/examples/footnote/notes.tsx +19 -0
  288. package/registry/examples/force-update-screen/native/default.dark.png +0 -0
  289. package/registry/examples/force-update-screen/native/default.light.png +0 -0
  290. package/registry/examples/form/native/amount.dark.png +0 -0
  291. package/registry/examples/form/native/amount.light.png +0 -0
  292. package/registry/examples/form/native/audience.dark.png +0 -0
  293. package/registry/examples/form/native/audience.light.png +0 -0
  294. package/registry/examples/form/native/profile.dark.png +0 -0
  295. package/registry/examples/form/native/profile.light.png +0 -0
  296. package/registry/examples/form/native/settings.dark.png +0 -0
  297. package/registry/examples/form/native/settings.light.png +0 -0
  298. package/registry/examples/form/native/sign-up.dark.png +0 -0
  299. package/registry/examples/form/native/sign-up.light.png +0 -0
  300. package/registry/examples/form/native/upload.dark.png +0 -0
  301. package/registry/examples/form/native/upload.light.png +0 -0
  302. package/registry/examples/goal-gauge/native/default.dark.png +0 -0
  303. package/registry/examples/goal-gauge/native/default.light.png +0 -0
  304. package/registry/examples/header/native/large-title.dark.png +0 -0
  305. package/registry/examples/header/native/large-title.light.png +0 -0
  306. package/registry/examples/image-viewer/native/gallery.dark.png +0 -0
  307. package/registry/examples/image-viewer/native/gallery.light.png +0 -0
  308. package/registry/examples/list/native/default.dark.png +0 -0
  309. package/registry/examples/list/native/default.light.png +0 -0
  310. package/registry/examples/list/native/infinite.dark.png +0 -0
  311. package/registry/examples/list/native/infinite.light.png +0 -0
  312. package/registry/examples/list/native/states.dark.png +0 -0
  313. package/registry/examples/list/native/states.light.png +0 -0
  314. package/registry/examples/loader/native/block.dark.png +0 -0
  315. package/registry/examples/loader/native/block.light.png +0 -0
  316. package/registry/examples/loader/native/branded.dark.png +0 -0
  317. package/registry/examples/loader/native/branded.light.png +0 -0
  318. package/registry/examples/loader/native/job-wait.dark.png +0 -0
  319. package/registry/examples/loader/native/job-wait.light.png +0 -0
  320. package/registry/examples/maintenance-screen/native/default.dark.png +0 -0
  321. package/registry/examples/maintenance-screen/native/default.light.png +0 -0
  322. package/registry/examples/map/native/location-picker.dark.png +0 -0
  323. package/registry/examples/map/native/location-picker.light.png +0 -0
  324. package/registry/examples/map/native/places.dark.png +0 -0
  325. package/registry/examples/map/native/places.light.png +0 -0
  326. package/registry/examples/markdown/native/ai-stream.dark.png +0 -0
  327. package/registry/examples/markdown/native/ai-stream.light.png +0 -0
  328. package/registry/examples/markdown/native/basic.dark.png +0 -0
  329. package/registry/examples/markdown/native/basic.light.png +0 -0
  330. package/registry/examples/mascot-state/native/default.dark.png +0 -0
  331. package/registry/examples/mascot-state/native/default.light.png +0 -0
  332. package/registry/examples/mascots/native/crane.dark.png +0 -0
  333. package/registry/examples/mascots/native/crane.light.png +0 -0
  334. package/registry/examples/mascots/native/default.dark.png +0 -0
  335. package/registry/examples/mascots/native/default.light.png +0 -0
  336. package/registry/examples/mascots/native/lovebird.dark.png +0 -0
  337. package/registry/examples/mascots/native/lovebird.light.png +0 -0
  338. package/registry/examples/mascots/native/phoenix.dark.png +0 -0
  339. package/registry/examples/mascots/native/phoenix.light.png +0 -0
  340. package/registry/examples/match-dialog/native/its-a-match.dark.png +0 -0
  341. package/registry/examples/match-dialog/native/its-a-match.light.png +0 -0
  342. package/registry/examples/media-capture/native/photo.dark.png +0 -0
  343. package/registry/examples/media-capture/native/photo.light.png +0 -0
  344. package/registry/examples/media-picker/native/story.dark.png +0 -0
  345. package/registry/examples/media-picker/native/story.light.png +0 -0
  346. package/registry/examples/meta-row/native/video.dark.png +0 -0
  347. package/registry/examples/meta-row/native/video.light.png +0 -0
  348. package/registry/examples/meter/native/credits.dark.png +0 -0
  349. package/registry/examples/meter/native/credits.light.png +0 -0
  350. package/registry/examples/meter/native/split-ring.dark.png +0 -0
  351. package/registry/examples/meter/native/split-ring.light.png +0 -0
  352. package/registry/examples/number-ticker/native/balance.dark.png +0 -0
  353. package/registry/examples/number-ticker/native/balance.light.png +0 -0
  354. package/registry/examples/onboarding/native/first-launch.dark.png +0 -0
  355. package/registry/examples/onboarding/native/first-launch.light.png +0 -0
  356. package/registry/examples/otp-input/native/invalid.dark.png +0 -0
  357. package/registry/examples/otp-input/native/invalid.light.png +0 -0
  358. package/registry/examples/otp-input/native/verify.dark.png +0 -0
  359. package/registry/examples/otp-input/native/verify.light.png +0 -0
  360. package/registry/examples/page-index/docs.d.ts +4 -0
  361. package/registry/examples/page-index/docs.js +33 -0
  362. package/registry/examples/page-index/docs.tsx +27 -0
  363. package/registry/examples/pagination/native/cursor.dark.png +0 -0
  364. package/registry/examples/pagination/native/cursor.light.png +0 -0
  365. package/registry/examples/pagination/native/pages.dark.png +0 -0
  366. package/registry/examples/pagination/native/pages.light.png +0 -0
  367. package/registry/examples/permission-prompt/native/blocked.dark.png +0 -0
  368. package/registry/examples/permission-prompt/native/blocked.light.png +0 -0
  369. package/registry/examples/permission-prompt/native/camera.dark.png +0 -0
  370. package/registry/examples/permission-prompt/native/camera.light.png +0 -0
  371. package/registry/examples/photo-grid/native/profile-photos.dark.png +0 -0
  372. package/registry/examples/photo-grid/native/profile-photos.light.png +0 -0
  373. package/registry/examples/profile-card/native/default.dark.png +0 -0
  374. package/registry/examples/profile-card/native/default.light.png +0 -0
  375. package/registry/examples/progress/native/bar.dark.png +0 -0
  376. package/registry/examples/progress/native/bar.light.png +0 -0
  377. package/registry/examples/progress/native/indeterminate.dark.png +0 -0
  378. package/registry/examples/progress/native/indeterminate.light.png +0 -0
  379. package/registry/examples/progress/native/ring.dark.png +0 -0
  380. package/registry/examples/progress/native/ring.light.png +0 -0
  381. package/registry/examples/pull-to-refresh/native/branded.dark.png +0 -0
  382. package/registry/examples/pull-to-refresh/native/branded.light.png +0 -0
  383. package/registry/examples/pull-to-refresh/native/feed.dark.png +0 -0
  384. package/registry/examples/pull-to-refresh/native/feed.light.png +0 -0
  385. package/registry/examples/radio-group/native/buttons.dark.png +0 -0
  386. package/registry/examples/radio-group/native/buttons.light.png +0 -0
  387. package/registry/examples/radio-group/native/cards.dark.png +0 -0
  388. package/registry/examples/radio-group/native/cards.light.png +0 -0
  389. package/registry/examples/radio-group/native/list.dark.png +0 -0
  390. package/registry/examples/radio-group/native/list.light.png +0 -0
  391. package/registry/examples/radio-group/native/segmented.dark.png +0 -0
  392. package/registry/examples/radio-group/native/segmented.light.png +0 -0
  393. package/registry/examples/screen/native/app-shell.dark.png +0 -0
  394. package/registry/examples/screen/native/app-shell.light.png +0 -0
  395. package/registry/examples/screen/native/auth.dark.png +0 -0
  396. package/registry/examples/screen/native/auth.light.png +0 -0
  397. package/registry/examples/screen/native/chat.dark.png +0 -0
  398. package/registry/examples/screen/native/chat.light.png +0 -0
  399. package/registry/examples/screen/native/feed.dark.png +0 -0
  400. package/registry/examples/screen/native/feed.light.png +0 -0
  401. package/registry/examples/screen/native/map.dark.png +0 -0
  402. package/registry/examples/screen/native/map.light.png +0 -0
  403. package/registry/examples/screen/native/notifications.dark.png +0 -0
  404. package/registry/examples/screen/native/notifications.light.png +0 -0
  405. package/registry/examples/screen/native/profile.dark.png +0 -0
  406. package/registry/examples/screen/native/profile.light.png +0 -0
  407. package/registry/examples/screen/native/settings.dark.png +0 -0
  408. package/registry/examples/screen/native/settings.light.png +0 -0
  409. package/registry/examples/search-field/native/cancel.dark.png +0 -0
  410. package/registry/examples/search-field/native/cancel.light.png +0 -0
  411. package/registry/examples/search-field/native/default.dark.png +0 -0
  412. package/registry/examples/search-field/native/default.light.png +0 -0
  413. package/registry/examples/segmented/native/default.dark.png +0 -0
  414. package/registry/examples/segmented/native/default.light.png +0 -0
  415. package/registry/examples/segmented/native/small.dark.png +0 -0
  416. package/registry/examples/segmented/native/small.light.png +0 -0
  417. package/registry/examples/settings-layout/native/account.dark.png +0 -0
  418. package/registry/examples/settings-layout/native/account.light.png +0 -0
  419. package/registry/examples/showcase/native/slides.dark.png +0 -0
  420. package/registry/examples/showcase/native/slides.light.png +0 -0
  421. package/registry/examples/skeleton/native/shapes.dark.png +0 -0
  422. package/registry/examples/skeleton/native/shapes.light.png +0 -0
  423. package/registry/examples/slider/native/default.dark.png +0 -0
  424. package/registry/examples/slider/native/default.light.png +0 -0
  425. package/registry/examples/slider/native/range.dark.png +0 -0
  426. package/registry/examples/slider/native/range.light.png +0 -0
  427. package/registry/examples/slider/native/stepped.dark.png +0 -0
  428. package/registry/examples/slider/native/stepped.light.png +0 -0
  429. package/registry/examples/slider/native/vertical.dark.png +0 -0
  430. package/registry/examples/slider/native/vertical.light.png +0 -0
  431. package/registry/examples/specimen-tag/product.d.ts +4 -0
  432. package/registry/examples/specimen-tag/product.js +28 -0
  433. package/registry/examples/specimen-tag/product.tsx +25 -0
  434. package/registry/examples/specimen-tag/stamps.d.ts +4 -0
  435. package/registry/examples/specimen-tag/stamps.js +16 -0
  436. package/registry/examples/specimen-tag/stamps.tsx +13 -0
  437. package/registry/examples/specimen-tag/wire.d.ts +4 -0
  438. package/registry/examples/specimen-tag/wire.js +16 -0
  439. package/registry/examples/specimen-tag/wire.tsx +20 -0
  440. package/registry/examples/spinner/native/sizes.dark.png +0 -0
  441. package/registry/examples/spinner/native/sizes.light.png +0 -0
  442. package/registry/examples/splash-handoff/native/default.dark.png +0 -0
  443. package/registry/examples/splash-handoff/native/default.light.png +0 -0
  444. package/registry/examples/step-progress/native/sign-up.dark.png +0 -0
  445. package/registry/examples/step-progress/native/sign-up.light.png +0 -0
  446. package/registry/examples/stepper/native/run.dark.png +0 -0
  447. package/registry/examples/stepper/native/run.light.png +0 -0
  448. package/registry/examples/swipe-deck/native/discover.dark.png +0 -0
  449. package/registry/examples/swipe-deck/native/discover.light.png +0 -0
  450. package/registry/examples/swipeable-row/native/conversation.dark.png +0 -0
  451. package/registry/examples/swipeable-row/native/conversation.light.png +0 -0
  452. package/registry/examples/switch/native/default.dark.png +0 -0
  453. package/registry/examples/switch/native/default.light.png +0 -0
  454. package/registry/examples/switch/native/settings.dark.png +0 -0
  455. package/registry/examples/switch/native/settings.light.png +0 -0
  456. package/registry/examples/tab-bar/native/main-sections.dark.png +0 -0
  457. package/registry/examples/tab-bar/native/main-sections.light.png +0 -0
  458. package/registry/examples/tabs/native/sections.dark.png +0 -0
  459. package/registry/examples/tabs/native/sections.light.png +0 -0
  460. package/registry/examples/tabs/native/segmented.dark.png +0 -0
  461. package/registry/examples/tabs/native/segmented.light.png +0 -0
  462. package/registry/examples/tag-selector/native/interests.dark.png +0 -0
  463. package/registry/examples/tag-selector/native/interests.light.png +0 -0
  464. package/registry/examples/toast/native/notification.dark.png +0 -0
  465. package/registry/examples/toast/native/notification.light.png +0 -0
  466. package/registry/examples/toast/native/snackbar.dark.png +0 -0
  467. package/registry/examples/toast/native/snackbar.light.png +0 -0
  468. package/registry/examples/toast/native/tones.dark.png +0 -0
  469. package/registry/examples/toast/native/tones.light.png +0 -0
  470. package/registry/examples/txt/native/tones.dark.png +0 -0
  471. package/registry/examples/txt/native/tones.light.png +0 -0
  472. package/registry/examples/txt/native/variants.dark.png +0 -0
  473. package/registry/examples/txt/native/variants.light.png +0 -0
  474. package/registry/examples/update-prompt/native/default.dark.png +0 -0
  475. package/registry/examples/update-prompt/native/default.light.png +0 -0
  476. package/registry/examples/verified-badge/native/verified.dark.png +0 -0
  477. package/registry/examples/verified-badge/native/verified.light.png +0 -0
  478. package/registry/examples/vertical-video/native/rail.dark.png +0 -0
  479. package/registry/examples/vertical-video/native/rail.light.png +0 -0
  480. package/registry/examples/video-player/native/default.dark.png +0 -0
  481. package/registry/examples/video-player/native/default.light.png +0 -0
  482. package/registry/examples/waveform/native/card.dark.png +0 -0
  483. package/registry/examples/waveform/native/card.light.png +0 -0
  484. package/registry/field.json +1 -1
  485. package/registry/file-upload.json +1 -1
  486. package/registry/filter-bar.json +1 -1
  487. package/registry/footnote.json +220 -0
  488. package/registry/force-update-screen.json +1 -1
  489. package/registry/form.json +3 -3
  490. package/registry/gallery-page.json +1 -1
  491. package/registry/genui.json +1 -1
  492. package/registry/glow-card.json +1 -1
  493. package/registry/goal-gauge.json +1 -1
  494. package/registry/how-it-works-page.json +1 -1
  495. package/registry/image-cropper.json +1 -1
  496. package/registry/index.json +160 -5
  497. package/registry/iso.json +1 -1
  498. package/registry/kanban.json +1 -1
  499. package/registry/kbd.json +1 -1
  500. package/registry/landing-page.json +1 -1
  501. package/registry/landscape.json +1 -1
  502. package/registry/language-switch.json +2 -2
  503. package/registry/legal-page.json +1 -1
  504. package/registry/link-card.json +1 -1
  505. package/registry/list.json +1 -1
  506. package/registry/loader.json +2 -2
  507. package/registry/longform-page.json +1 -1
  508. package/registry/maintenance-screen.json +1 -1
  509. package/registry/map.json +3 -3
  510. package/registry/markdown.json +1 -1
  511. package/registry/marketing-layout.json +1 -1
  512. package/registry/marquee.json +1 -1
  513. package/registry/mascot-quote.json +1 -1
  514. package/registry/mascot-state.json +1 -1
  515. package/registry/mascots.json +1 -1
  516. package/registry/match-dialog.json +1 -1
  517. package/registry/media-capture.json +1 -1
  518. package/registry/media-gallery.json +1 -1
  519. package/registry/media-grid.json +1 -1
  520. package/registry/meta-row.json +1 -1
  521. package/registry/meter.json +2 -2
  522. package/registry/nav-bar.json +3 -3
  523. package/registry/number-ticker.json +1 -1
  524. package/registry/opening-hours.json +1 -1
  525. package/registry/page-header.json +1 -1
  526. package/registry/page-hero.json +1 -1
  527. package/registry/page-index.json +168 -0
  528. package/registry/page.json +89 -5
  529. package/registry/pagination.json +1 -1
  530. package/registry/photo-grid.json +2 -2
  531. package/registry/pointer-light.json +1 -1
  532. package/registry/popover.json +1 -1
  533. package/registry/pricing-page.json +1 -1
  534. package/registry/product-page.json +1 -1
  535. package/registry/profile-card.json +1 -1
  536. package/registry/progress.json +1 -1
  537. package/registry/promise-card.json +1 -1
  538. package/registry/radio-group.json +2 -2
  539. package/registry/rail-nav.json +3 -3
  540. package/registry/recipes.json +1 -1
  541. package/registry/scroll-stage.json +1 -1
  542. package/registry/search-field.json +2 -2
  543. package/registry/section-backdrop.json +1 -1
  544. package/registry/separator.json +1 -1
  545. package/registry/service-card.json +2 -2
  546. package/registry/settings-layout.json +1 -1
  547. package/registry/showcase.json +1 -1
  548. package/registry/site-footer.json +3 -3
  549. package/registry/sites.json +2 -2
  550. package/registry/skeleton.json +1 -1
  551. package/registry/skip-link.json +1 -1
  552. package/registry/slider.json +1 -1
  553. package/registry/slot-picker.json +1 -1
  554. package/registry/slot.json +1 -1
  555. package/registry/specimen-tag.json +269 -0
  556. package/registry/spinner.json +1 -1
  557. package/registry/split-view.json +1 -1
  558. package/registry/stage-banner.json +1 -1
  559. package/registry/stat.json +2 -2
  560. package/registry/status-page.json +1 -1
  561. package/registry/step-progress.json +1 -1
  562. package/registry/step-showcase.json +1 -1
  563. package/registry/stepper.json +1 -1
  564. package/registry/sticky-action.json +2 -2
  565. package/registry/swipe-deck.json +2 -2
  566. package/registry/switch.json +1 -1
  567. package/registry/tabs.json +1 -1
  568. package/registry/tag-input.json +1 -1
  569. package/registry/tag-selector.json +1 -1
  570. package/registry/terminal-replay.json +1 -1
  571. package/registry/theme.json +1 -1
  572. package/registry/toast.json +1 -1
  573. package/registry/toc.json +1 -1
  574. package/registry/tooltip.json +1 -1
  575. package/registry/tree-view.json +1 -1
  576. package/registry/update-prompt.json +1 -1
  577. package/registry/verified-badge.json +1 -1
  578. package/registry/vertical-video.json +1 -1
  579. package/registry/video-player.json +1 -1
  580. package/registry/video-trimmer.json +1 -1
  581. package/registry/virtual.json +1 -1
  582. package/registry/waveform.json +1 -1
  583. package/dist/chunk-2AJ4NJUF.js.map +0 -1
  584. package/dist/chunk-2PNLHZLT.js.map +0 -1
  585. package/dist/chunk-3S4GHSPZ.js.map +0 -1
  586. package/dist/chunk-LZNZLCOE.js.map +0 -1
  587. package/dist/chunk-NJFCSVPT.js.map +0 -1
  588. package/dist/chunk-REPTKUJ6.js.map +0 -1
  589. /package/dist/{chunk-KIBICUZK.js.map → chunk-K2ZYB4HP.js.map} +0 -0
package/dist/meter.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/meter/meter.tsx"],"sourcesContent":["// Server-safe. A measure within a known range — a quota, a balance, a share — as opposed to the progress of a task.\n// `role=\"meter\"`, its value in words; thresholds turn it to warning then danger (or the reverse when high is good);\n// split into parts (90 % to the creator, 10 % to the platform) it becomes a stacked bar or ring with its legend: the\n// text version of what it draws.\nimport type * as React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nexport const meter = tv({\n slots: {\n root: \"flex w-full flex-col gap-1.5\",\n header: \"flex items-baseline gap-2 text-xs\",\n caption: \"min-w-0 flex-1 truncate font-medium text-fg\",\n figure: \"shrink-0 tabular-nums text-fg-secondary\",\n track: \"relative flex h-2 w-full gap-0.5 overflow-hidden rounded-full bg-surface-3\",\n fill: \"h-full rounded-full transition-[width] duration-700 motion-reduce:transition-none\",\n legend: \"mt-1 flex flex-wrap gap-x-4 gap-y-1 text-xs text-fg-secondary\",\n swatch: \"inline-block h-2 w-2 shrink-0 rounded-full\",\n ring: \"relative inline-flex shrink-0 items-center justify-center\",\n center: \"absolute inset-0 flex flex-col items-center justify-center text-center\",\n },\n variants: {\n size: { sm: { track: \"h-1.5\", ring: \"h-14 w-14\" }, md: { ring: \"h-24 w-24\" }, lg: { track: \"h-3\", ring: \"h-36 w-36\" } },\n },\n defaultVariants: { size: \"md\" },\n});\n\n/** The colour of a fill: by tone (thresholds) or by part (the accent, a neutral, accent-2, a lighter neutral). */\nconst BG = { ok: \"bg-accent\", success: \"bg-success\", warning: \"bg-warning\", danger: \"bg-danger\" } as const;\nconst STROKE = { ok: \"stroke-accent\", success: \"stroke-success\", warning: \"stroke-warning\", danger: \"stroke-danger\" } as const;\nconst PART_BG = [\"bg-accent\", \"bg-fg-secondary\", \"bg-accent-2\", \"bg-border-strong\"];\nconst PART_STROKE = [\"stroke-accent\", \"stroke-fg-secondary\", \"stroke-accent-2\", \"stroke-border-strong\"];\n\nexport interface MeterPart {\n /** Its name (“To the creator”) — passed translated. */\n label: string;\n /** Its value, in the meter's unit. */\n value: number;\n /** Its value in words (“€9.00”), in the legend and for assistive technology; default: its percentage. */\n valueText?: string;\n}\n\nexport type MeterProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n /** The accessible name (“Storage”, “Split of a tip”) — passed translated; shown with `showLabel`. */\n label: string;\n /** The value, between `min` and `max` (ignored with `parts`). */\n value?: number;\n /**\n * The bottom of the range.\n * @default 0\n */\n min?: number;\n /**\n * The top of the range.\n * @default 100\n */\n max?: number;\n /** The value in words (“42 GB of 50 GB”) — passed translated; default: the percentage. */\n valueText?: string;\n /**\n * Ratios (0–1) where the tone changes: past `high` it is in danger, past `low` in warning — or the reverse with\n * `optimum=\"high\"` (a balance: the lower, the worse). Without thresholds the fill is the brand accent.\n */\n thresholds?: { readonly low: number; readonly high: number };\n /**\n * Which end is good.\n * @default \"low\"\n */\n optimum?: \"low\" | \"high\";\n /** Split into parts that add up to `max`: a stacked bar or ring, with its legend. */\n parts?: readonly MeterPart[];\n /**\n * bar · ring.\n * @default \"bar\"\n */\n variant?: \"bar\" | \"ring\";\n /**\n * sm · md · lg: the bar's thickness, the ring's diameter.\n * @default \"md\"\n */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Shows the label and the value above the bar. */\n showLabel?: boolean;\n /** A ring's centre: the value, a word. */\n children?: React.ReactNode;\n};\n\n/** A measure within a range — a quota, a balance, a share — toned by thresholds or split into parts. */\nexport function Meter({\n label,\n value = 0,\n min = 0,\n max = 100,\n valueText,\n thresholds,\n optimum = \"low\",\n parts,\n variant = \"bar\",\n size = \"md\",\n showLabel,\n className,\n children,\n ...props\n}: MeterProps) {\n const s = meter({ size });\n const span = max - min || 1;\n const ratio = Math.min(1, Math.max(0, (value - min) / span));\n const level = !thresholds ? \"ok\" : ratio >= thresholds.high ? (optimum === \"low\" ? \"danger\" : \"success\") : ratio >= thresholds.low ? \"warning\" : optimum === \"low\" ? \"success\" : \"danger\";\n const words = valueText ?? `${Math.round(ratio * 100)} %`;\n const shares = (parts ?? []).map((p, i) => ({ ...p, i, ratio: Math.min(1, Math.max(0, p.value / span)), words: p.valueText ?? `${Math.round((p.value / span) * 100)} %` }));\n const a11y = parts\n ? { role: \"group\" as const, \"aria-label\": label }\n : { role: \"meter\" as const, \"aria-label\": label, \"aria-valuemin\": min, \"aria-valuemax\": max, \"aria-valuenow\": Math.min(max, Math.max(min, value)), \"aria-valuetext\": words };\n const legend = parts && (\n <ul className={s.legend()}>\n {shares.map((p) => (\n <li key={p.i} className=\"flex items-center gap-1.5\">\n <span aria-hidden className={[s.swatch(), PART_BG[p.i % PART_BG.length]].join(\" \")} />\n <span className=\"text-fg\">{p.label}</span>\n <span className=\"tabular-nums\">{p.words}</span>\n </li>\n ))}\n </ul>\n );\n\n if (variant === \"ring\") {\n const r = 44;\n let offset = 0;\n const arcs = parts\n ? shares.map((p) => {\n const arc = { cls: PART_STROKE[p.i % PART_STROKE.length]!, len: p.ratio * 100, start: offset };\n offset += arc.len;\n return arc;\n })\n : [{ cls: STROKE[level], len: ratio * 100, start: 0 }];\n return (\n <div {...a11y} data-level={parts ? undefined : level} className={[\"inline-flex flex-col items-center gap-2\", className].filter(Boolean).join(\" \")} {...props}>\n <div className={s.ring()}>\n <svg viewBox=\"0 0 100 100\" className=\"h-full w-full -rotate-90\" aria-hidden>\n <circle cx=\"50\" cy=\"50\" r={r} fill=\"none\" strokeWidth=\"9\" className=\"stroke-border-default\" />\n {arcs.map((a, i) => (\n <circle\n key={i}\n cx=\"50\"\n cy=\"50\"\n r={r}\n fill=\"none\"\n strokeWidth=\"9\"\n pathLength={100}\n strokeDasharray={`${Math.max(0, a.len - (parts ? 1 : 0))} ${100 - Math.max(0, a.len - (parts ? 1 : 0))}`}\n strokeDashoffset={-a.start}\n className={[a.cls, \"transition-[stroke-dasharray] duration-700 motion-reduce:transition-none\"].join(\" \")}\n />\n ))}\n </svg>\n {children !== undefined && <div className={s.center()}>{children}</div>}\n </div>\n {legend}\n </div>\n );\n }\n\n return (\n <div {...a11y} data-level={parts ? undefined : level} className={s.root({ className })} {...props}>\n {showLabel && (\n <div aria-hidden className={s.header()}>\n <span className={s.caption()}>{label}</span>\n {!parts && <span className={s.figure()}>{words}</span>}\n </div>\n )}\n <div aria-hidden className={s.track()}>\n {parts ? (\n shares.map((p) => <span key={p.i} className={[s.fill(), PART_BG[p.i % PART_BG.length]].join(\" \")} style={{ width: `${p.ratio * 100}%` }} />)\n ) : (\n <span className={[s.fill(), BG[level]].join(\" \")} style={{ width: `${ratio * 100}%` }} />\n )}\n </div>\n {legend}\n </div>\n );\n}\n\nexport interface MeterValueProps {\n /** The figure. */\n value: React.ReactNode;\n /** A word under it. */\n caption?: React.ReactNode;\n}\n\n/** For the ring's centre when it shows a figure and a word. */\nexport function MeterValue({ value, caption }: MeterValueProps) {\n return (\n <>\n <span className=\"font-display text-lg font-semibold text-fg tabular-nums\">{value}</span>\n {caption && <span className=\"text-[10px] uppercase tracking-wide text-fg-secondary\">{caption}</span>}\n </>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/meter/meter.tsx"],"sourcesContent":["// Server-safe. A measure within a known range — a quota, a balance, a share — as opposed to the progress of a task.\n// `role=\"meter\"`, its value in words; thresholds turn it to warning then danger (or the reverse when high is good);\n// split into parts (90 % to the creator, 10 % to the platform) it becomes a stacked bar or ring with its legend: the\n// text version of what it draws.\nimport type * as React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nexport const meter = tv({\n slots: {\n root: \"flex w-full flex-col gap-1.5\",\n header: \"flex items-baseline gap-2 text-xs\",\n caption: \"min-w-0 flex-1 truncate font-medium text-fg\",\n figure: \"shrink-0 tabular-nums text-fg-secondary\",\n track: \"relative flex h-2 w-full gap-0.5 overflow-hidden rounded-full bg-surface-3\",\n fill: \"h-full rounded-full transition-[width] duration-700 motion-reduce:transition-none\",\n legend: \"mt-1 flex flex-wrap gap-x-4 gap-y-1 text-xs text-fg-secondary\",\n swatch: \"inline-block h-2 w-2 shrink-0 rounded-full\",\n ring: \"relative inline-flex shrink-0 items-center justify-center\",\n center: \"absolute inset-0 flex flex-col items-center justify-center text-center\",\n },\n variants: {\n size: { sm: { track: \"h-1.5\", ring: \"h-14 w-14\" }, md: { ring: \"h-24 w-24\" }, lg: { track: \"h-3\", ring: \"h-36 w-36\" } },\n },\n defaultVariants: { size: \"md\" },\n});\n\n/** The colour of a fill: by tone (thresholds) or by part (the accent, a neutral, accent-2, a lighter neutral). */\nconst BG = { ok: \"bg-accent\", success: \"bg-success\", warning: \"bg-warning\", danger: \"bg-danger\" } as const;\nconst STROKE = { ok: \"stroke-accent\", success: \"stroke-success\", warning: \"stroke-warning\", danger: \"stroke-danger\" } as const;\nconst PART_BG = [\"bg-accent\", \"bg-fg-secondary\", \"bg-accent-2\", \"bg-border-strong\"];\nconst PART_STROKE = [\"stroke-accent\", \"stroke-fg-secondary\", \"stroke-accent-2\", \"stroke-border-strong\"];\n\nexport interface MeterPart {\n /** Its name (“To the creator”) — passed translated. */\n label: string;\n /** Its value, in the meter's unit. */\n value: number;\n /** Its value in words (“€9.00”), in the legend and for assistive technology; default: its percentage. */\n valueText?: string;\n}\n\nexport type MeterProps = Omit<React.ComponentProps<\"div\">, \"children\"> & {\n /** The accessible name (“Storage”, “Split of a tip”) — passed translated; shown with `showLabel`. */\n label: string;\n /** The value, between `min` and `max` (ignored with `parts`). */\n value?: number;\n /**\n * The bottom of the range.\n * @default 0\n */\n min?: number;\n /**\n * The top of the range.\n * @default 100\n */\n max?: number;\n /** The value in words (“42 GB of 50 GB”) — passed translated; default: the percentage. */\n valueText?: string;\n /**\n * Ratios (0–1) where the tone changes: past `high` it is in danger, past `low` in warning — or the reverse with\n * `optimum=\"high\"` (a balance: the lower, the worse). Without thresholds the fill is the brand accent.\n */\n thresholds?: { readonly low: number; readonly high: number };\n /**\n * Which end is good.\n * @default \"low\"\n */\n optimum?: \"low\" | \"high\";\n /** Split into parts that add up to `max`: a stacked bar or ring, with its legend. */\n parts?: readonly MeterPart[];\n /**\n * bar · ring.\n * @default \"bar\"\n */\n variant?: \"bar\" | \"ring\";\n /**\n * sm · md · lg: the bar's thickness, the ring's diameter.\n * @default \"md\"\n */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Shows the label and the value above the bar. */\n showLabel?: boolean;\n /** A ring's centre: the value, a word. */\n children?: React.ReactNode;\n};\n\n/** A measure within a range — a quota, a balance, a share — toned by thresholds or split into parts. */\nexport function Meter({\n label,\n value = 0,\n min = 0,\n max = 100,\n valueText,\n thresholds,\n optimum = \"low\",\n parts,\n variant = \"bar\",\n size = \"md\",\n showLabel,\n className,\n children,\n ...props\n}: MeterProps) {\n const s = meter({ size });\n const span = max - min || 1;\n const ratio = Math.min(1, Math.max(0, (value - min) / span));\n const level = !thresholds ? \"ok\" : ratio >= thresholds.high ? (optimum === \"low\" ? \"danger\" : \"success\") : ratio >= thresholds.low ? \"warning\" : optimum === \"low\" ? \"success\" : \"danger\";\n const words = valueText ?? `${Math.round(ratio * 100)} %`;\n const shares = (parts ?? []).map((p, i) => ({ ...p, i, ratio: Math.min(1, Math.max(0, p.value / span)), words: p.valueText ?? `${Math.round((p.value / span) * 100)} %` }));\n const a11y = parts\n ? { role: \"group\" as const, \"aria-label\": label }\n : { role: \"meter\" as const, \"aria-label\": label, \"aria-valuemin\": min, \"aria-valuemax\": max, \"aria-valuenow\": Math.min(max, Math.max(min, value)), \"aria-valuetext\": words };\n const legend = parts && (\n <ul className={s.legend()}>\n {shares.map((p) => (\n <li key={p.i} className=\"flex items-center gap-1.5\">\n <span aria-hidden className={[s.swatch(), PART_BG[p.i % PART_BG.length]].join(\" \")} />\n <span className=\"text-fg\">{p.label}</span>\n <span className=\"tabular-nums\">{p.words}</span>\n </li>\n ))}\n </ul>\n );\n\n if (variant === \"ring\") {\n const r = 44;\n let offset = 0;\n const arcs = parts\n ? shares.map((p) => {\n const arc = { cls: PART_STROKE[p.i % PART_STROKE.length]!, len: p.ratio * 100, start: offset };\n offset += arc.len;\n return arc;\n })\n : [{ cls: STROKE[level], len: ratio * 100, start: 0 }];\n return (\n <div {...a11y} data-level={parts ? undefined : level} className={[\"inline-flex flex-col items-center gap-2\", className].filter(Boolean).join(\" \")} {...props}>\n <div className={s.ring()}>\n <svg viewBox=\"0 0 100 100\" className=\"h-full w-full -rotate-90\" aria-hidden>\n <circle cx=\"50\" cy=\"50\" r={r} fill=\"none\" strokeWidth=\"9\" className=\"stroke-border-default\" />\n {arcs.map((a, i) => (\n <circle\n key={i}\n cx=\"50\"\n cy=\"50\"\n r={r}\n fill=\"none\"\n strokeWidth=\"9\"\n pathLength={100}\n strokeDasharray={`${Math.max(0, a.len - (parts ? 1 : 0))} ${100 - Math.max(0, a.len - (parts ? 1 : 0))}`}\n strokeDashoffset={-a.start}\n className={[a.cls, \"transition-[stroke-dasharray] duration-700 motion-reduce:transition-none\"].join(\" \")}\n />\n ))}\n </svg>\n {children !== undefined && <div className={s.center()}>{children}</div>}\n </div>\n {legend}\n </div>\n );\n }\n\n return (\n <div {...a11y} data-level={parts ? undefined : level} className={s.root({ className })} {...props}>\n {showLabel && (\n <div aria-hidden className={s.header()}>\n <span className={s.caption()}>{label}</span>\n {!parts && <span className={s.figure()}>{words}</span>}\n </div>\n )}\n <div aria-hidden className={s.track()}>\n {parts ? (\n shares.map((p) => <span key={p.i} className={[s.fill(), PART_BG[p.i % PART_BG.length]].join(\" \")} style={{ width: `${p.ratio * 100}%` }} />)\n ) : (\n <span className={[s.fill(), BG[level]].join(\" \")} style={{ width: `${ratio * 100}%` }} />\n )}\n </div>\n {legend}\n </div>\n );\n}\n\nexport interface MeterValueProps {\n /** The figure. */\n value: React.ReactNode;\n /** A word under it. */\n caption?: React.ReactNode;\n}\n\n/** For the ring's centre when it shows a figure and a word. */\nexport function MeterValue({ value, caption }: MeterValueProps) {\n return (\n <>\n <span className=\"font-display text-lg font-semibold text-fg tabular-nums\">{value}</span>\n {caption && <span className=\"text-[10px] text-fg-secondary\">{caption}</span>}\n </>\n );\n}\n"],"mappings":";AAKA,SAAS,UAAU;AA8GX,SA4EJ,UA3EM,KADF;AA5GD,IAAM,QAAQ,GAAG;AAAA,EACtB,OAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,MAAM,EAAE,IAAI,EAAE,OAAO,SAAS,MAAM,YAAY,GAAG,IAAI,EAAE,MAAM,YAAY,GAAG,IAAI,EAAE,OAAO,OAAO,MAAM,YAAY,EAAE;AAAA,EACxH;AAAA,EACA,iBAAiB,EAAE,MAAM,KAAK;AAChC,CAAC;AAGD,IAAM,KAAK,EAAE,IAAI,aAAa,SAAS,cAAc,SAAS,cAAc,QAAQ,YAAY;AAChG,IAAM,SAAS,EAAE,IAAI,iBAAiB,SAAS,kBAAkB,SAAS,kBAAkB,QAAQ,gBAAgB;AACpH,IAAM,UAAU,CAAC,aAAa,mBAAmB,eAAe,kBAAkB;AAClF,IAAM,cAAc,CAAC,iBAAiB,uBAAuB,mBAAmB,sBAAsB;AAyD/F,SAAS,MAAM;AAAA,EACpB;AAAA,EACA,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAe;AACb,QAAM,IAAI,MAAM,EAAE,KAAK,CAAC;AACxB,QAAM,OAAO,MAAM,OAAO;AAC1B,QAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,QAAQ,OAAO,IAAI,CAAC;AAC3D,QAAM,QAAQ,CAAC,aAAa,OAAO,SAAS,WAAW,OAAQ,YAAY,QAAQ,WAAW,YAAa,SAAS,WAAW,MAAM,YAAY,YAAY,QAAQ,YAAY;AACjL,QAAM,QAAQ,aAAa,GAAG,KAAK,MAAM,QAAQ,GAAG,CAAC;AACrD,QAAM,UAAU,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,GAAG,GAAG,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,EAAE,QAAQ,IAAI,CAAC,GAAG,OAAO,EAAE,aAAa,GAAG,KAAK,MAAO,EAAE,QAAQ,OAAQ,GAAG,CAAC,KAAK,EAAE;AAC1K,QAAM,OAAO,QACT,EAAE,MAAM,SAAkB,cAAc,MAAM,IAC9C,EAAE,MAAM,SAAkB,cAAc,OAAO,iBAAiB,KAAK,iBAAiB,KAAK,iBAAiB,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC,GAAG,kBAAkB,MAAM;AAC7K,QAAM,SAAS,SACb,oBAAC,QAAG,WAAW,EAAE,OAAO,GACrB,iBAAO,IAAI,CAAC,MACX,qBAAC,QAAa,WAAU,6BACtB;AAAA,wBAAC,UAAK,eAAW,MAAC,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,IAAI,QAAQ,MAAM,CAAC,EAAE,KAAK,GAAG,GAAG;AAAA,IACpF,oBAAC,UAAK,WAAU,WAAW,YAAE,OAAM;AAAA,IACnC,oBAAC,UAAK,WAAU,gBAAgB,YAAE,OAAM;AAAA,OAHjC,EAAE,CAIX,CACD,GACH;AAGF,MAAI,YAAY,QAAQ;AACtB,UAAM,IAAI;AACV,QAAI,SAAS;AACb,UAAM,OAAO,QACT,OAAO,IAAI,CAAC,MAAM;AAChB,YAAM,MAAM,EAAE,KAAK,YAAY,EAAE,IAAI,YAAY,MAAM,GAAI,KAAK,EAAE,QAAQ,KAAK,OAAO,OAAO;AAC7F,gBAAU,IAAI;AACd,aAAO;AAAA,IACT,CAAC,IACD,CAAC,EAAE,KAAK,OAAO,KAAK,GAAG,KAAK,QAAQ,KAAK,OAAO,EAAE,CAAC;AACvD,WACE,qBAAC,SAAK,GAAG,MAAM,cAAY,QAAQ,SAAY,OAAO,WAAW,CAAC,2CAA2C,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAAI,GAAG,OACrJ;AAAA,2BAAC,SAAI,WAAW,EAAE,KAAK,GACrB;AAAA,6BAAC,SAAI,SAAQ,eAAc,WAAU,4BAA2B,eAAW,MACzE;AAAA,8BAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAM,MAAK,QAAO,aAAY,KAAI,WAAU,yBAAwB;AAAA,UAC3F,KAAK,IAAI,CAAC,GAAG,MACZ;AAAA,YAAC;AAAA;AAAA,cAEC,IAAG;AAAA,cACH,IAAG;AAAA,cACH;AAAA,cACA,MAAK;AAAA,cACL,aAAY;AAAA,cACZ,YAAY;AAAA,cACZ,iBAAiB,GAAG,KAAK,IAAI,GAAG,EAAE,OAAO,QAAQ,IAAI,EAAE,CAAC,IAAI,MAAM,KAAK,IAAI,GAAG,EAAE,OAAO,QAAQ,IAAI,EAAE,CAAC;AAAA,cACtG,kBAAkB,CAAC,EAAE;AAAA,cACrB,WAAW,CAAC,EAAE,KAAK,0EAA0E,EAAE,KAAK,GAAG;AAAA;AAAA,YATlG;AAAA,UAUP,CACD;AAAA,WACH;AAAA,QACC,aAAa,UAAa,oBAAC,SAAI,WAAW,EAAE,OAAO,GAAI,UAAS;AAAA,SACnE;AAAA,MACC;AAAA,OACH;AAAA,EAEJ;AAEA,SACE,qBAAC,SAAK,GAAG,MAAM,cAAY,QAAQ,SAAY,OAAO,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,GAAI,GAAG,OACzF;AAAA,iBACC,qBAAC,SAAI,eAAW,MAAC,WAAW,EAAE,OAAO,GACnC;AAAA,0BAAC,UAAK,WAAW,EAAE,QAAQ,GAAI,iBAAM;AAAA,MACpC,CAAC,SAAS,oBAAC,UAAK,WAAW,EAAE,OAAO,GAAI,iBAAM;AAAA,OACjD;AAAA,IAEF,oBAAC,SAAI,eAAW,MAAC,WAAW,EAAE,MAAM,GACjC,kBACC,OAAO,IAAI,CAAC,MAAM,oBAAC,UAAe,WAAW,CAAC,EAAE,KAAK,GAAG,QAAQ,EAAE,IAAI,QAAQ,MAAM,CAAC,EAAE,KAAK,GAAG,GAAG,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,GAAG,IAAI,KAAzG,EAAE,CAA0G,CAAE,IAE3I,oBAAC,UAAK,WAAW,CAAC,EAAE,KAAK,GAAG,GAAG,KAAK,CAAC,EAAE,KAAK,GAAG,GAAG,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,GAAG,GAE3F;AAAA,IACC;AAAA,KACH;AAEJ;AAUO,SAAS,WAAW,EAAE,OAAO,QAAQ,GAAoB;AAC9D,SACE,iCACE;AAAA,wBAAC,UAAK,WAAU,2DAA2D,iBAAM;AAAA,IAChF,WAAW,oBAAC,UAAK,WAAU,iCAAiC,mBAAQ;AAAA,KACvE;AAEJ;","names":[]}
package/dist/motion.css CHANGED
@@ -15,21 +15,28 @@
15
15
  animation: kz-page-in 0.5s var(--kz-ease) backwards;
16
16
  }
17
17
  @keyframes kz-page-in {
18
- from { opacity: 0; transform: translateY(10px); }
18
+ from { opacity: 0; }
19
19
  }
20
20
 
21
- /* Reveal on scroll: [data-reveal] rises into place when it enters the viewport (MotionObserver adds .kz-in). */
21
+ /* Reveal on scroll (Cahier, ADR-004): nothing rises, nothing blurs. A block settles like ink on paper — it appears
22
+ in place; `[data-reveal="ink"]` is written left to right, as a pen draws a line (MotionObserver adds .kz-in). */
22
23
  [data-reveal] {
23
24
  opacity: 0;
24
- transform: translateY(22px);
25
- filter: blur(4px);
26
- transition: opacity 0.8s var(--kz-ease), transform 0.8s var(--kz-ease), filter 0.8s var(--kz-ease);
25
+ transition: opacity 0.6s var(--kz-ease);
26
+ transition-delay: var(--kz-delay, 0ms);
27
+ }
28
+ [data-reveal="ink"] {
29
+ opacity: 1;
30
+ clip-path: inset(0 100% 0 0);
31
+ transition: clip-path 0.7s var(--kz-ease);
27
32
  transition-delay: var(--kz-delay, 0ms);
28
33
  }
29
34
  [data-reveal].kz-in {
30
35
  opacity: 1;
31
- transform: none;
32
- filter: none;
36
+ }
37
+ /* Only the ink reveal clips, while it writes; once written its clip reaches far beyond its sides (nothing in the margin is cut). */
38
+ [data-reveal="ink"].kz-in {
39
+ clip-path: inset(0 -100vw 0 -100vw);
33
40
  }
34
41
 
35
42
  /* A word that rolls in (RotatingWord). */
@@ -38,7 +45,7 @@
38
45
  animation: kz-word-in 0.6s var(--kz-ease) both;
39
46
  }
40
47
  @keyframes kz-word-in {
41
- from { opacity: 0; transform: translateY(70%); filter: blur(6px); }
48
+ from { opacity: 0; clip-path: inset(0 100% 0 0); }
42
49
  }
43
50
 
44
51
  /* RotatingWord: every alternative shares one grid cell from the first paint (the line keeps the width of the longest
@@ -60,11 +67,9 @@
60
67
  animation: kz-word-in 0.6s var(--kz-ease) both;
61
68
  }
62
69
 
63
- /* A softer reveal for schemas and dense content: shorter travel, no blur. */
70
+ /* A softer reveal for schemas and dense content: a shorter settle. */
64
71
  [data-reveal="soft"] {
65
- transform: translateY(12px);
66
- filter: none;
67
- transition-duration: 0.6s;
72
+ transition-duration: 0.4s;
68
73
  }
69
74
 
70
75
  /* Retired (krizaka-ui#393): the sheen across a button, the spotlight that followed the pointer and the lift of a card.
@@ -185,41 +190,23 @@
185
190
  background: linear-gradient(0deg, var(--kz-brand-gradient-from), var(--kz-brand-gradient-via) 55%, var(--kz-brand-gradient-to));
186
191
  }
187
192
  .kz-backdrop > [data-backdrop-layer] { position: absolute; z-index: -1; pointer-events: none; }
193
+ /* Retired (Cahier, ADR-004): the drifting glows, the dome of light and the perspective grid floor were template tells.
194
+ The layers stay harmless (they draw nothing) so an old page does not break; the ruling (`.kz-ruled`) replaces them. */
188
195
  .kz-backdrop-drift {
189
- inset: -20%;
190
- background:
191
- radial-gradient(38% 32% at 28% 30%, color-mix(in oklab, var(--kz-accent, #3e6f99) 14%, transparent), transparent 70%),
192
- radial-gradient(34% 30% at 76% 22%, color-mix(in oklab, var(--kz-accent-2, #3e6f99) 10%, transparent), transparent 70%);
193
- animation: kz-backdrop-drift 40s ease-in-out infinite alternate;
196
+ display: none;
194
197
  }
195
198
  @keyframes kz-backdrop-drift {
196
199
  to { transform: translate3d(6%, 4%, 0) rotate(6deg); }
197
200
  }
198
- .kz-backdrop-dome {
199
- left: 50%;
200
- top: -35%;
201
- width: 110%;
202
- aspect-ratio: 2 / 1;
203
- transform: translateX(-50%);
204
- border-radius: 50%;
205
- background: radial-gradient(closest-side, color-mix(in oklab, var(--kz-accent, #3e6f99) 24%, transparent), transparent);
206
- filter: blur(28px);
207
- }
201
+ .kz-backdrop-dome,
208
202
  .kz-backdrop-grid {
209
- inset: auto -50% 0 -50%;
210
- height: 55%;
211
- background-image:
212
- linear-gradient(to right, var(--kz-border-default) 1px, transparent 1px),
213
- linear-gradient(to bottom, var(--kz-border-default) 1px, transparent 1px);
214
- background-size: 48px 48px;
215
- transform: perspective(640px) rotateX(62deg);
216
- transform-origin: bottom;
217
- mask-image: linear-gradient(to top, #000 5%, transparent 85%);
203
+ display: none;
218
204
  }
205
+ /* A photograph behind a section is printed, not blurred: flat, desaturated, quiet. */
219
206
  .kz-backdrop-media {
220
207
  inset: 0;
221
- filter: blur(var(--kz-backdrop-blur, 18px));
222
- opacity: 0.5;
208
+ filter: grayscale(1) contrast(0.9);
209
+ opacity: 0.22;
223
210
  }
224
211
 
225
212
  /* ─── The conductor's states (MotionObserver) ───
@@ -661,9 +648,9 @@ svg[data-kz-icon="ExternalIcon"] {
661
648
  width: var(--kz-flow-hub);
662
649
  height: var(--kz-flow-hub);
663
650
  /* Opaque: the conduits end under the hub. */
664
- background: radial-gradient(circle, var(--kz-accent-soft), transparent 72%), var(--kz-surface-1);
651
+ background: var(--kz-surface-1);
665
652
  border-color: var(--kz-accent);
666
- box-shadow: 0 0 40px -8px var(--kz-accent);
653
+ box-shadow: 0 0 0 4px var(--kz-accent-soft);
667
654
  }
668
655
  .kz-flow-hub-mark > svg { width: 64%; height: 64%; }
669
656
  .kz-flow-hub-label { font-weight: 700; font-size: 0.9375rem; color: var(--kz-text-primary); }
@@ -715,7 +702,7 @@ svg[data-kz-icon="ExternalIcon"] {
715
702
  .kz-flow-node-mark, .kz-flow-node, .kz-flow-link { transition: none; }
716
703
  /* At rest, the trace stands still where a reader expects it: a third of the hexagon from the top. */
717
704
  .kz-loader-trace:not([stroke-dasharray]) { stroke-dashoffset: -8; }
718
- [data-reveal] { opacity: 1; transform: none; filter: none; transition: none; }
705
+ [data-reveal] { opacity: 1; transform: none; filter: none; clip-path: none; transition: none; }
719
706
  /* The band stands still and scrolls by hand; its copy goes. */
720
707
  .kz-band > .kz-band-viewport { overflow-x: auto; scrollbar-width: thin; }
721
708
  .kz-band-copy { display: none !important; }
@@ -54,17 +54,17 @@ function formatDistance(meters, locale) {
54
54
 
55
55
  // ../tokens/dist/native.js
56
56
  var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze({
57
- "surface0": "#0c0c0e",
58
- "surface1": "#161618",
59
- "surface2": "#1f1f23",
60
- "surface3": "#2a2a2d",
61
- "media": "#1b1b1d",
62
- "borderSubtle": "rgba(255,255,255,0.06)",
63
- "borderDefault": "rgba(255,255,255,0.1)",
64
- "borderStrong": "rgba(255,255,255,0.16)",
65
- "textPrimary": "#f5f5f5",
66
- "textSecondary": "#a0a0a7",
67
- "textMuted": "#92929b",
57
+ "surface0": "#151b18",
58
+ "surface1": "#191f1c",
59
+ "surface2": "#1c221f",
60
+ "surface3": "#262e2a",
61
+ "media": "#1e2521",
62
+ "borderSubtle": "rgba(231,240,230,0.07)",
63
+ "borderDefault": "rgba(231,240,230,0.12)",
64
+ "borderStrong": "rgba(231,240,230,0.2)",
65
+ "textPrimary": "#ecf0ea",
66
+ "textSecondary": "#bcc8c0",
67
+ "textMuted": "#a7b4ab",
68
68
  "textOnMedia": "#ffffff",
69
69
  "accent": "#3e76a8",
70
70
  "accentHover": "#346793",
@@ -73,9 +73,9 @@ var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze
73
73
  "accent2": "#3e76a8",
74
74
  "onAccent": "#ffffff",
75
75
  "ring": "#3e76a8",
76
- "brandGradientFrom": "#121a21",
77
- "brandGradientVia": "#0f1114",
78
- "brandGradientTo": "#0c0c0e",
76
+ "brandGradientFrom": "#151b18",
77
+ "brandGradientVia": "#151b18",
78
+ "brandGradientTo": "#151b18",
79
79
  "success": "#10b77f",
80
80
  "successText": "#36d399",
81
81
  "successSoft": "rgba(16,183,127,0.14)",
@@ -90,25 +90,31 @@ var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze
90
90
  "scrim": "rgba(0,0,0,0.6)",
91
91
  "scrimStrong": "rgba(0,0,0,0.8)",
92
92
  "overlay": "rgba(0,0,0,0.7)",
93
- "surfaceSheen": "rgba(255,255,255,0.045)",
93
+ "paperRuleMajor": "rgba(217,232,222,0.09)",
94
+ "paperRuleMinor": "rgba(217,232,222,0.045)",
95
+ "paperRuleMargin": "#e08071",
96
+ "paperTag": "#2d3932",
97
+ "paperTagEdge": "#586a5f",
98
+ "paperTagInk": "#e9eee7",
99
+ "surfaceSheen": "rgba(255,255,255,0)",
94
100
  "fillShade": "rgba(0,0,0,0.12)",
95
- "edgeLight": "rgba(255,255,255,0.07)",
101
+ "edgeLight": "rgba(255,255,255,0)",
96
102
  "edgeOnFill": "rgba(255,255,255,0.22)",
97
103
  "edgeWell": "rgba(4,4,7,0.5)",
98
- "glassBg": "rgba(29,29,32,0.88)",
104
+ "glassBg": "#191f1c",
99
105
  "glassBorder": "rgba(255,255,255,0.1)"
100
106
  }), light: /* @__PURE__ */ Object.freeze({
101
- "surface0": "#fafafa",
102
- "surface1": "#ffffff",
103
- "surface2": "#f1f1f3",
104
- "surface3": "#e4e4e7",
105
- "media": "#e9e9ec",
106
- "borderSubtle": "rgba(0,0,0,0.06)",
107
- "borderDefault": "rgba(0,0,0,0.1)",
108
- "borderStrong": "rgba(0,0,0,0.16)",
109
- "textPrimary": "#18181b",
110
- "textSecondary": "#56565d",
111
- "textMuted": "#64646d",
107
+ "surface0": "#f4f6f3",
108
+ "surface1": "#fbfcfb",
109
+ "surface2": "#f0f3ef",
110
+ "surface3": "#dfe3de",
111
+ "media": "#e5e8e3",
112
+ "borderSubtle": "rgba(31,59,91,0.1)",
113
+ "borderDefault": "rgba(31,59,91,0.17)",
114
+ "borderStrong": "rgba(31,59,91,0.28)",
115
+ "textPrimary": "#1d3654",
116
+ "textSecondary": "#405064",
117
+ "textMuted": "#4f5b69",
112
118
  "textOnMedia": "#ffffff",
113
119
  "accent": "#2a5f8d",
114
120
  "accentHover": "#1f4d75",
@@ -117,9 +123,9 @@ var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze
117
123
  "accent2": "#2a5f8d",
118
124
  "onAccent": "#ffffff",
119
125
  "ring": "#2a5f8d",
120
- "brandGradientFrom": "#e7eef4",
121
- "brandGradientVia": "#f5f7fa",
122
- "brandGradientTo": "#fafafa",
126
+ "brandGradientFrom": "#f4f6f3",
127
+ "brandGradientVia": "#f4f6f3",
128
+ "brandGradientTo": "#f4f6f3",
123
129
  "success": "#10b77f",
124
130
  "successText": "#0a714e",
125
131
  "successSoft": "rgba(16,183,127,0.1)",
@@ -134,12 +140,18 @@ var themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze
134
140
  "scrim": "rgba(0,0,0,0.6)",
135
141
  "scrimStrong": "rgba(0,0,0,0.8)",
136
142
  "overlay": "rgba(0,0,0,0.7)",
137
- "surfaceSheen": "rgba(255,255,255,0.7)",
143
+ "paperRuleMajor": "rgba(69,109,161,0.24)",
144
+ "paperRuleMinor": "rgba(69,109,161,0.1)",
145
+ "paperRuleMargin": "#a53127",
146
+ "paperTag": "#eadfc2",
147
+ "paperTagEdge": "#b4a274",
148
+ "paperTagInk": "#282620",
149
+ "surfaceSheen": "rgba(255,255,255,0)",
138
150
  "fillShade": "rgba(0,0,0,0.12)",
139
- "edgeLight": "rgba(255,255,255,0.9)",
151
+ "edgeLight": "rgba(255,255,255,0)",
140
152
  "edgeOnFill": "rgba(255,255,255,0.22)",
141
153
  "edgeWell": "rgba(48,52,80,0.08)",
142
- "glassBg": "rgba(255,255,255,0.88)",
154
+ "glassBg": "#fbfcfb",
143
155
  "glassBorder": "rgba(0,0,0,0.08)"
144
156
  }) });
145
157
  var brands = /* @__PURE__ */ Object.freeze({
@@ -154,9 +166,9 @@ var brands = /* @__PURE__ */ Object.freeze({
154
166
  "ring": "#3e76a8",
155
167
  "info": "#3e76a8",
156
168
  "infoText": "#8ebde1",
157
- "brandGradientFrom": "#121a21",
158
- "brandGradientVia": "#0f1114",
159
- "brandGradientTo": "#0c0c0e"
169
+ "brandGradientFrom": "#151b18",
170
+ "brandGradientVia": "#151b18",
171
+ "brandGradientTo": "#151b18"
160
172
  },
161
173
  "light": {
162
174
  "accent": "#2a5f8d",
@@ -168,9 +180,9 @@ var brands = /* @__PURE__ */ Object.freeze({
168
180
  "ring": "#2a5f8d",
169
181
  "info": "#2a5f8d",
170
182
  "infoText": "#275782",
171
- "brandGradientFrom": "#e7eef4",
172
- "brandGradientVia": "#f5f7fa",
173
- "brandGradientTo": "#fafafa"
183
+ "brandGradientFrom": "#f4f6f3",
184
+ "brandGradientVia": "#f4f6f3",
185
+ "brandGradientTo": "#f4f6f3"
174
186
  }
175
187
  },
176
188
  "orazaka": {
@@ -184,9 +196,9 @@ var brands = /* @__PURE__ */ Object.freeze({
184
196
  "ring": "#f67e23",
185
197
  "info": "#5e99c9",
186
198
  "infoText": "#8ebde1",
187
- "brandGradientFrom": "#28170b",
188
- "brandGradientVia": "#17130c",
189
- "brandGradientTo": "#0c0c0e"
199
+ "brandGradientFrom": "#151b18",
200
+ "brandGradientVia": "#151b18",
201
+ "brandGradientTo": "#151b18"
190
202
  },
191
203
  "light": {
192
204
  "accent": "#b45309",
@@ -198,9 +210,9 @@ var brands = /* @__PURE__ */ Object.freeze({
198
210
  "ring": "#b45309",
199
211
  "info": "#2a5f8d",
200
212
  "infoText": "#275782",
201
- "brandGradientFrom": "#ffebd6",
202
- "brandGradientVia": "#fdf7ed",
203
- "brandGradientTo": "#fafafa"
213
+ "brandGradientFrom": "#f4f6f3",
214
+ "brandGradientVia": "#f4f6f3",
215
+ "brandGradientTo": "#f4f6f3"
204
216
  }
205
217
  },
206
218
  "orochia": {
@@ -214,9 +226,9 @@ var brands = /* @__PURE__ */ Object.freeze({
214
226
  "ring": "#a78bfa",
215
227
  "info": "#7c3aed",
216
228
  "infoText": "#a78bfa",
217
- "brandGradientFrom": "#1a0e2a",
218
- "brandGradientVia": "#1c0d17",
219
- "brandGradientTo": "#0c0c0e"
229
+ "brandGradientFrom": "#151b18",
230
+ "brandGradientVia": "#151b18",
231
+ "brandGradientTo": "#151b18"
220
232
  },
221
233
  "light": {
222
234
  "accent": "#7c3aed",
@@ -228,9 +240,9 @@ var brands = /* @__PURE__ */ Object.freeze({
228
240
  "ring": "#7c3aed",
229
241
  "info": "#7c3aed",
230
242
  "infoText": "#6d28d9",
231
- "brandGradientFrom": "#efe7fe",
232
- "brandGradientVia": "#fdedf5",
233
- "brandGradientTo": "#fafafa"
243
+ "brandGradientFrom": "#f4f6f3",
244
+ "brandGradientVia": "#f4f6f3",
245
+ "brandGradientTo": "#f4f6f3"
234
246
  }
235
247
  },
236
248
  "yasakia": {
@@ -244,9 +256,9 @@ var brands = /* @__PURE__ */ Object.freeze({
244
256
  "ring": "#24dbc9",
245
257
  "info": "#5e99c9",
246
258
  "infoText": "#8ebde1",
247
- "brandGradientFrom": "#0a241e",
248
- "brandGradientVia": "#0c1818",
249
- "brandGradientTo": "#0c0c0e"
259
+ "brandGradientFrom": "#151b18",
260
+ "brandGradientVia": "#151b18",
261
+ "brandGradientTo": "#151b18"
250
262
  },
251
263
  "light": {
252
264
  "accent": "#097169",
@@ -258,9 +270,9 @@ var brands = /* @__PURE__ */ Object.freeze({
258
270
  "ring": "#097169",
259
271
  "info": "#2a5f8d",
260
272
  "infoText": "#275782",
261
- "brandGradientFrom": "#e1faf1",
262
- "brandGradientVia": "#e9fbfa",
263
- "brandGradientTo": "#fafafa"
273
+ "brandGradientFrom": "#f4f6f3",
274
+ "brandGradientVia": "#f4f6f3",
275
+ "brandGradientTo": "#f4f6f3"
264
276
  }
265
277
  },
266
278
  "yororis": {
@@ -274,9 +286,9 @@ var brands = /* @__PURE__ */ Object.freeze({
274
286
  "ring": "#98b587",
275
287
  "info": "#5e99c9",
276
288
  "infoText": "#8ebde1",
277
- "brandGradientFrom": "#1c1812",
278
- "brandGradientVia": "#11140f",
279
- "brandGradientTo": "#0c0c0e"
289
+ "brandGradientFrom": "#151b18",
290
+ "brandGradientVia": "#151b18",
291
+ "brandGradientTo": "#151b18"
280
292
  },
281
293
  "light": {
282
294
  "accent": "#456237",
@@ -288,9 +300,9 @@ var brands = /* @__PURE__ */ Object.freeze({
288
300
  "ring": "#456237",
289
301
  "info": "#2a5f8d",
290
302
  "infoText": "#275782",
291
- "brandGradientFrom": "#f5efe5",
292
- "brandGradientVia": "#f1f6ee",
293
- "brandGradientTo": "#fafafa"
303
+ "brandGradientFrom": "#f4f6f3",
304
+ "brandGradientVia": "#f4f6f3",
305
+ "brandGradientTo": "#f4f6f3"
294
306
  }
295
307
  },
296
308
  "yomizaka": {
@@ -304,9 +316,9 @@ var brands = /* @__PURE__ */ Object.freeze({
304
316
  "ring": "#8888f2",
305
317
  "info": "#5e99c9",
306
318
  "infoText": "#8ebde1",
307
- "brandGradientFrom": "#121321",
308
- "brandGradientVia": "#111019",
309
- "brandGradientTo": "#0c0c0e"
319
+ "brandGradientFrom": "#151b18",
320
+ "brandGradientVia": "#151b18",
321
+ "brandGradientTo": "#151b18"
310
322
  },
311
323
  "light": {
312
324
  "accent": "#3c38b2",
@@ -318,9 +330,9 @@ var brands = /* @__PURE__ */ Object.freeze({
318
330
  "ring": "#3c38b2",
319
331
  "info": "#2a5f8d",
320
332
  "infoText": "#275782",
321
- "brandGradientFrom": "#ebecfa",
322
- "brandGradientVia": "#f0f0fa",
323
- "brandGradientTo": "#fafafa"
333
+ "brandGradientFrom": "#f4f6f3",
334
+ "brandGradientVia": "#f4f6f3",
335
+ "brandGradientTo": "#f4f6f3"
324
336
  }
325
337
  },
326
338
  "kachizaka": {
@@ -334,9 +346,9 @@ var brands = /* @__PURE__ */ Object.freeze({
334
346
  "ring": "#fbcf23",
335
347
  "info": "#5e99c9",
336
348
  "infoText": "#8ebde1",
337
- "brandGradientFrom": "#101628",
338
- "brandGradientVia": "#0f111a",
339
- "brandGradientTo": "#0c0c0e"
349
+ "brandGradientFrom": "#151b18",
350
+ "brandGradientVia": "#151b18",
351
+ "brandGradientTo": "#151b18"
340
352
  },
341
353
  "light": {
342
354
  "accent": "#fac905",
@@ -348,9 +360,9 @@ var brands = /* @__PURE__ */ Object.freeze({
348
360
  "ring": "#1743d3",
349
361
  "info": "#2a5f8d",
350
362
  "infoText": "#275782",
351
- "brandGradientFrom": "#e8edfc",
352
- "brandGradientVia": "#fcf8e8",
353
- "brandGradientTo": "#fafafa"
363
+ "brandGradientFrom": "#f4f6f3",
364
+ "brandGradientVia": "#f4f6f3",
365
+ "brandGradientTo": "#f4f6f3"
354
366
  }
355
367
  },
356
368
  "akinaza": {
@@ -364,9 +376,9 @@ var brands = /* @__PURE__ */ Object.freeze({
364
376
  "ring": "#65c374",
365
377
  "info": "#5e99c9",
366
378
  "infoText": "#8ebde1",
367
- "brandGradientFrom": "#111d15",
368
- "brandGradientVia": "#181410",
369
- "brandGradientTo": "#0c0c0e"
379
+ "brandGradientFrom": "#151b18",
380
+ "brandGradientVia": "#151b18",
381
+ "brandGradientTo": "#151b18"
370
382
  },
371
383
  "light": {
372
384
  "accent": "#21692f",
@@ -378,9 +390,9 @@ var brands = /* @__PURE__ */ Object.freeze({
378
390
  "ring": "#21692f",
379
391
  "info": "#2a5f8d",
380
392
  "infoText": "#275782",
381
- "brandGradientFrom": "#e9f7eb",
382
- "brandGradientVia": "#faf1eb",
383
- "brandGradientTo": "#fafafa"
393
+ "brandGradientFrom": "#f4f6f3",
394
+ "brandGradientVia": "#f4f6f3",
395
+ "brandGradientTo": "#f4f6f3"
384
396
  }
385
397
  }
386
398
  });