vectis-ui 0.14.0 → 0.16.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 (442) hide show
  1. package/dist/components/VAccordion/VAccordion.css +1 -1
  2. package/dist/components/VAccordion/VAccordion.d.ts +0 -6
  3. package/dist/components/VAccordion/VAccordion.js.map +1 -1
  4. package/dist/components/VAccordion/VAccordion.vue_vue_type_script_setup_true_lang.js +3 -8
  5. package/dist/components/VAccordion/VAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -1
  6. package/dist/components/VAccordion/VAccordionItem.js.map +1 -1
  7. package/dist/components/VAccordion/VAccordionItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  8. package/dist/components/VAccordion/context.js.map +1 -1
  9. package/dist/components/VAlert/VAlert.js.map +1 -1
  10. package/dist/components/VAlert/VAlert.vue_vue_type_script_setup_true_lang.js.map +1 -1
  11. package/dist/components/VAvatar/VAvatar.d.ts +0 -3
  12. package/dist/components/VAvatar/VAvatar.js.map +1 -1
  13. package/dist/components/VAvatar/VAvatar.vue_vue_type_script_setup_true_lang.js +21 -27
  14. package/dist/components/VAvatar/VAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  15. package/dist/components/VAvatar/VAvatarGroup.d.ts +0 -6
  16. package/dist/components/VAvatar/VAvatarGroup.js.map +1 -1
  17. package/dist/components/VAvatar/VAvatarGroup.vue_vue_type_script_setup_true_lang.js +5 -19
  18. package/dist/components/VAvatar/VAvatarGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  19. package/dist/components/VAvatar/context.d.ts +0 -1
  20. package/dist/components/VAvatar/context.js.map +1 -1
  21. package/dist/components/VBadge/VBadge.js.map +1 -1
  22. package/dist/components/VBadge/VBadge.vue_vue_type_script_setup_true_lang.js +1 -1
  23. package/dist/components/VBadge/VBadge.vue_vue_type_script_setup_true_lang.js.map +1 -1
  24. package/dist/components/VBreadcrumb/VBreadcrumb.js.map +1 -1
  25. package/dist/components/VBreadcrumb/VBreadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -1
  26. package/dist/components/VButton/VButton.d.ts +0 -6
  27. package/dist/components/VButton/VButton.js.map +1 -1
  28. package/dist/components/VButton/VButton.vue_vue_type_script_setup_true_lang.js +11 -17
  29. package/dist/components/VButton/VButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  30. package/dist/components/VButton/VButtonGroup.d.ts +0 -6
  31. package/dist/components/VButton/VButtonGroup.js.map +1 -1
  32. package/dist/components/VButton/VButtonGroup.vue_vue_type_script_setup_true_lang.js +0 -7
  33. package/dist/components/VButton/VButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  34. package/dist/components/VButton/context.d.ts +0 -2
  35. package/dist/components/VButton/context.js.map +1 -1
  36. package/dist/components/VCalendar/VCalendar.js.map +1 -1
  37. package/dist/components/VCalendar/VCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  38. package/dist/components/VCalendar/VCalendarEvent.js.map +1 -1
  39. package/dist/components/VCalendar/VCalendarEvent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  40. package/dist/components/VCalendar/VCalendarMonth.js.map +1 -1
  41. package/dist/components/VCalendar/VCalendarMonth.vue_vue_type_script_setup_true_lang.js +5 -17
  42. package/dist/components/VCalendar/VCalendarMonth.vue_vue_type_script_setup_true_lang.js.map +1 -1
  43. package/dist/components/VCalendar/VCalendarTimeGrid.js.map +1 -1
  44. package/dist/components/VCalendar/VCalendarTimeGrid.vue_vue_type_script_setup_true_lang.js +19 -31
  45. package/dist/components/VCalendar/VCalendarTimeGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
  46. package/dist/components/VCalendar/VCalendarYear.js.map +1 -1
  47. package/dist/components/VCalendar/VCalendarYear.vue_vue_type_script_setup_true_lang.js.map +1 -1
  48. package/dist/components/VCalendar/color.js.map +1 -1
  49. package/dist/components/VCalendar/edgeStep.js +1 -5
  50. package/dist/components/VCalendar/edgeStep.js.map +1 -1
  51. package/dist/components/VCalendar/gesture.js +4 -12
  52. package/dist/components/VCalendar/gesture.js.map +1 -1
  53. package/dist/components/VCalendar/keyboard.js.map +1 -1
  54. package/dist/components/VCalendar/layout.js +8 -12
  55. package/dist/components/VCalendar/layout.js.map +1 -1
  56. package/dist/components/VCalendar/timeGrid.js +5 -5
  57. package/dist/components/VCalendar/timeGrid.js.map +1 -1
  58. package/dist/components/VCard/VCard.js.map +1 -1
  59. package/dist/components/VCard/VCard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  60. package/dist/components/VCarousel/VCarousel.js.map +1 -1
  61. package/dist/components/VCarousel/VCarousel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  62. package/dist/components/VCarousel/VCarouselItem.js.map +1 -1
  63. package/dist/components/VCarousel/VCarouselItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  64. package/dist/components/VCarousel/context.js.map +1 -1
  65. package/dist/components/VCheckbox/VCheckMark.js.map +1 -1
  66. package/dist/components/VCheckbox/VCheckMark.vue_vue_type_script_setup_true_lang.js.map +1 -1
  67. package/dist/components/VCheckbox/VCheckbox.js.map +1 -1
  68. package/dist/components/VCheckbox/VCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  69. package/dist/components/VChip/VChip.d.ts +0 -3
  70. package/dist/components/VChip/VChip.js.map +1 -1
  71. package/dist/components/VChip/VChip.vue_vue_type_script_setup_true_lang.js +0 -6
  72. package/dist/components/VChip/VChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  73. package/dist/components/VColorInput/VColorInput.d.ts +0 -3
  74. package/dist/components/VColorInput/VColorInput.js.map +1 -1
  75. package/dist/components/VColorInput/VColorInput.vue_vue_type_script_setup_true_lang.js +3 -9
  76. package/dist/components/VColorInput/VColorInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  77. package/dist/components/VColorPicker/VColorPicker.js.map +1 -1
  78. package/dist/components/VColorPicker/VColorPicker.vue_vue_type_script_setup_true_lang.js +1 -5
  79. package/dist/components/VColorPicker/VColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  80. package/dist/components/VColorPicker/color.js.map +1 -1
  81. package/dist/components/VCombobox/VCombobox.d.ts +0 -3
  82. package/dist/components/VCombobox/VCombobox.js.map +1 -1
  83. package/dist/components/VCombobox/VCombobox.vue_vue_type_script_setup_true_lang.js +100 -119
  84. package/dist/components/VCombobox/VCombobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  85. package/dist/components/VCommandPalette/VCommandPalette.js.map +1 -1
  86. package/dist/components/VCommandPalette/VCommandPalette.vue_vue_type_script_setup_true_lang.js +0 -1
  87. package/dist/components/VCommandPalette/VCommandPalette.vue_vue_type_script_setup_true_lang.js.map +1 -1
  88. package/dist/components/VCommandPalette/VCommandPaletteItem.js.map +1 -1
  89. package/dist/components/VCommandPalette/VCommandPaletteItem.vue_vue_type_script_setup_true_lang.js +1 -5
  90. package/dist/components/VCommandPalette/VCommandPaletteItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  91. package/dist/components/VContextMenu/VContextMenu.d.ts +0 -3
  92. package/dist/components/VContextMenu/VContextMenu.js.map +1 -1
  93. package/dist/components/VContextMenu/VContextMenu.vue_vue_type_script_setup_true_lang.js +3 -11
  94. package/dist/components/VContextMenu/VContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  95. package/dist/components/VDataTable/VDataTable.css +1 -1
  96. package/dist/components/VDataTable/VDataTable.d.ts +0 -2
  97. package/dist/components/VDataTable/VDataTable.js.map +1 -1
  98. package/dist/components/VDataTable/VDataTable.vue_vue_type_script_setup_true_lang.js +69 -88
  99. package/dist/components/VDataTable/VDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  100. package/dist/components/VDateInput/VDateInput.d.ts +0 -3
  101. package/dist/components/VDateInput/VDateInput.js.map +1 -1
  102. package/dist/components/VDateInput/VDateInput.vue_vue_type_script_setup_true_lang.js +5 -10
  103. package/dist/components/VDateInput/VDateInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  104. package/dist/components/VDateInput/mask.js.map +1 -1
  105. package/dist/components/VDatePicker/VDatePicker.js.map +1 -1
  106. package/dist/components/VDatePicker/VDatePicker.vue_vue_type_script_setup_true_lang.js +2 -1
  107. package/dist/components/VDatePicker/VDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  108. package/dist/components/VDatePicker/keyboard.js.map +1 -1
  109. package/dist/components/VDatePicker/names.js.map +1 -1
  110. package/dist/components/VDialog/VDialog.js.map +1 -1
  111. package/dist/components/VDialog/VDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  112. package/dist/components/VDialog/VDialogAlert.js.map +1 -1
  113. package/dist/components/VDialog/VDialogAlert.vue_vue_type_script_setup_true_lang.js.map +1 -1
  114. package/dist/components/VDrawer/VDrawer.js.map +1 -1
  115. package/dist/components/VDrawer/VDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  116. package/dist/components/VEmptyState/VEmptyState.js.map +1 -1
  117. package/dist/components/VEmptyState/VEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -1
  118. package/dist/components/VField/VField.js.map +1 -1
  119. package/dist/components/VField/VField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  120. package/dist/components/VField/VFieldAnnouncer.js.map +1 -1
  121. package/dist/components/VField/VFieldAnnouncer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  122. package/dist/components/VField/VFieldMessage.js.map +1 -1
  123. package/dist/components/VField/VFieldMessage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  124. package/dist/components/VFieldset/VFieldset.js.map +1 -1
  125. package/dist/components/VFieldset/VFieldset.vue_vue_type_script_setup_true_lang.js.map +1 -1
  126. package/dist/components/VFileInput/VFileInput.d.ts +0 -5
  127. package/dist/components/VFileInput/VFileInput.js.map +1 -1
  128. package/dist/components/VFileInput/VFileInput.vue_vue_type_script_setup_true_lang.js +54 -65
  129. package/dist/components/VFileInput/VFileInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  130. package/dist/components/VFileInput/truncate.js.map +1 -1
  131. package/dist/components/VFilePicker/VFilePicker.js.map +1 -1
  132. package/dist/components/VFilePicker/VFilePicker.vue_vue_type_script_setup_true_lang.js +1 -1
  133. package/dist/components/VFilePicker/VFilePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  134. package/dist/components/VFilePicker/fileKind.js.map +1 -1
  135. package/dist/components/VHotkeys/VHotkeys.d.ts +0 -3
  136. package/dist/components/VHotkeys/VHotkeys.js.map +1 -1
  137. package/dist/components/VHotkeys/VHotkeys.vue_vue_type_script_setup_true_lang.js +0 -6
  138. package/dist/components/VHotkeys/VHotkeys.vue_vue_type_script_setup_true_lang.js.map +1 -1
  139. package/dist/components/VHotkeys/platform.js +1 -1
  140. package/dist/components/VHotkeys/platform.js.map +1 -1
  141. package/dist/components/VHoverCard/VHoverCard.js.map +1 -1
  142. package/dist/components/VHoverCard/VHoverCard.vue_vue_type_script_setup_true_lang.js +2 -12
  143. package/dist/components/VHoverCard/VHoverCard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  144. package/dist/components/VIcon/VIcon.js.map +1 -1
  145. package/dist/components/VIcon/VIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
  146. package/dist/components/VIcon/iconProps.js.map +1 -1
  147. package/dist/components/VIcon/icons/add.js.map +1 -1
  148. package/dist/components/VIcon/icons/arrow_downward.js.map +1 -1
  149. package/dist/components/VIcon/icons/arrow_downward_alt.js.map +1 -1
  150. package/dist/components/VIcon/icons/arrow_drop_down.js.map +1 -1
  151. package/dist/components/VIcon/icons/arrow_drop_up.js.map +1 -1
  152. package/dist/components/VIcon/icons/arrow_left_alt.js.map +1 -1
  153. package/dist/components/VIcon/icons/arrow_right_alt.js.map +1 -1
  154. package/dist/components/VIcon/icons/arrow_upward.js.map +1 -1
  155. package/dist/components/VIcon/icons/arrow_upward_alt.js.map +1 -1
  156. package/dist/components/VIcon/icons/attach_file.js.map +1 -1
  157. package/dist/components/VIcon/icons/audio_file.js.map +1 -1
  158. package/dist/components/VIcon/icons/calendar_today.js.map +1 -1
  159. package/dist/components/VIcon/icons/check.js.map +1 -1
  160. package/dist/components/VIcon/icons/check_circle.js.map +1 -1
  161. package/dist/components/VIcon/icons/chevron_left.js.map +1 -1
  162. package/dist/components/VIcon/icons/chevron_right.js.map +1 -1
  163. package/dist/components/VIcon/icons/close.js.map +1 -1
  164. package/dist/components/VIcon/icons/cloud_upload.js.map +1 -1
  165. package/dist/components/VIcon/icons/code.js.map +1 -1
  166. package/dist/components/VIcon/icons/colorize.js.map +1 -1
  167. package/dist/components/VIcon/icons/description.js.map +1 -1
  168. package/dist/components/VIcon/icons/error.js.map +1 -1
  169. package/dist/components/VIcon/icons/expand_less.js.map +1 -1
  170. package/dist/components/VIcon/icons/expand_more.js.map +1 -1
  171. package/dist/components/VIcon/icons/first_page.js.map +1 -1
  172. package/dist/components/VIcon/icons/folder_zip.js.map +1 -1
  173. package/dist/components/VIcon/icons/image.js.map +1 -1
  174. package/dist/components/VIcon/icons/inbox.js.map +1 -1
  175. package/dist/components/VIcon/icons/index.js.map +1 -1
  176. package/dist/components/VIcon/icons/info.js.map +1 -1
  177. package/dist/components/VIcon/icons/last_page.js.map +1 -1
  178. package/dist/components/VIcon/icons/more_horiz.js.map +1 -1
  179. package/dist/components/VIcon/icons/names.js.map +1 -1
  180. package/dist/components/VIcon/icons/notifications.js.map +1 -1
  181. package/dist/components/VIcon/icons/open_in_new.js.map +1 -1
  182. package/dist/components/VIcon/icons/picture_as_pdf.js.map +1 -1
  183. package/dist/components/VIcon/icons/priority_high.js.map +1 -1
  184. package/dist/components/VIcon/icons/remove.js.map +1 -1
  185. package/dist/components/VIcon/icons/schedule.js.map +1 -1
  186. package/dist/components/VIcon/icons/search.js.map +1 -1
  187. package/dist/components/VIcon/icons/search_off.js.map +1 -1
  188. package/dist/components/VIcon/icons/star.js.map +1 -1
  189. package/dist/components/VIcon/icons/swap_vert.js.map +1 -1
  190. package/dist/components/VIcon/icons/table_chart.js.map +1 -1
  191. package/dist/components/VIcon/icons/video_file.js.map +1 -1
  192. package/dist/components/VIcon/icons/viewBox.js.map +1 -1
  193. package/dist/components/VIcon/icons/warning.js.map +1 -1
  194. package/dist/components/VIcon/resolver.js.map +1 -1
  195. package/dist/components/VIconButton/VIconButton.d.ts +0 -3
  196. package/dist/components/VIconButton/VIconButton.js.map +1 -1
  197. package/dist/components/VIconButton/VIconButton.vue_vue_type_script_setup_true_lang.js +0 -6
  198. package/dist/components/VIconButton/VIconButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  199. package/dist/components/VInput/VInput.css +1 -1
  200. package/dist/components/VInput/VInput.d.ts +0 -3
  201. package/dist/components/VInput/VInput.js.map +1 -1
  202. package/dist/components/VInput/VInput.vue_vue_type_script_setup_true_lang.js +2 -8
  203. package/dist/components/VInput/VInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  204. package/dist/components/VInput/VInputGroup.d.ts +0 -3
  205. package/dist/components/VInput/VInputGroup.js.map +1 -1
  206. package/dist/components/VInput/VInputGroup.vue_vue_type_script_setup_true_lang.js +0 -7
  207. package/dist/components/VInput/VInputGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  208. package/dist/components/VInput/context.d.ts +0 -2
  209. package/dist/components/VInput/context.js.map +1 -1
  210. package/dist/components/VInputOTP/VInputOTP.d.ts +0 -3
  211. package/dist/components/VInputOTP/VInputOTP.js.map +1 -1
  212. package/dist/components/VInputOTP/VInputOTP.vue_vue_type_script_setup_true_lang.js +2 -14
  213. package/dist/components/VInputOTP/VInputOTP.vue_vue_type_script_setup_true_lang.js.map +1 -1
  214. package/dist/components/VLink/VLink.js.map +1 -1
  215. package/dist/components/VLink/VLink.vue_vue_type_script_setup_true_lang.js.map +1 -1
  216. package/dist/components/VListbox/VListboxChevron.js.map +1 -1
  217. package/dist/components/VListbox/VListboxChevron.vue_vue_type_script_setup_true_lang.js.map +1 -1
  218. package/dist/components/VListbox/VListboxGroup.js.map +1 -1
  219. package/dist/components/VListbox/VListboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  220. package/dist/components/VListbox/VListboxOption.js.map +1 -1
  221. package/dist/components/VListbox/VListboxOption.vue_vue_type_script_setup_true_lang.js.map +1 -1
  222. package/dist/components/VListbox/VListboxPanel.d.ts +0 -3
  223. package/dist/components/VListbox/VListboxPanel.js.map +1 -1
  224. package/dist/components/VListbox/VListboxPanel.vue_vue_type_script_setup_true_lang.js +0 -6
  225. package/dist/components/VListbox/VListboxPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  226. package/dist/components/VListbox/VListboxSeparator.js.map +1 -1
  227. package/dist/components/VListbox/VListboxSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  228. package/dist/components/VListbox/VListboxValues.js.map +1 -1
  229. package/dist/components/VListbox/VListboxValues.vue_vue_type_script_setup_true_lang.js +4 -14
  230. package/dist/components/VListbox/VListboxValues.vue_vue_type_script_setup_true_lang.js.map +1 -1
  231. package/dist/components/VMenu/VMenu.d.ts +0 -3
  232. package/dist/components/VMenu/VMenu.js.map +1 -1
  233. package/dist/components/VMenu/VMenu.vue_vue_type_script_setup_true_lang.js +0 -6
  234. package/dist/components/VMenu/VMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  235. package/dist/components/VMenu/VMenuGroup.js.map +1 -1
  236. package/dist/components/VMenu/VMenuGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  237. package/dist/components/VMenu/VMenuItem.js.map +1 -1
  238. package/dist/components/VMenu/VMenuItem.vue_vue_type_script_setup_true_lang.js +6 -12
  239. package/dist/components/VMenu/VMenuItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  240. package/dist/components/VMenu/VMenuPanel.d.ts +0 -3
  241. package/dist/components/VMenu/VMenuPanel.js.map +1 -1
  242. package/dist/components/VMenu/VMenuPanel.vue_vue_type_script_setup_true_lang.js +9 -16
  243. package/dist/components/VMenu/VMenuPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  244. package/dist/components/VMenu/VMenuSeparator.js.map +1 -1
  245. package/dist/components/VMenu/VMenuSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  246. package/dist/components/VMenu/context.js.map +1 -1
  247. package/dist/components/VMeter/VMeter.js.map +1 -1
  248. package/dist/components/VMeter/VMeter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  249. package/dist/components/VNumberInput/VNumberInput.d.ts +0 -3
  250. package/dist/components/VNumberInput/VNumberInput.js.map +1 -1
  251. package/dist/components/VNumberInput/VNumberInput.vue_vue_type_script_setup_true_lang.js +85 -90
  252. package/dist/components/VNumberInput/VNumberInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  253. package/dist/components/VNumberInput/number.js.map +1 -1
  254. package/dist/components/VPagination/VPagination.d.ts +0 -3
  255. package/dist/components/VPagination/VPagination.js.map +1 -1
  256. package/dist/components/VPagination/VPagination.vue_vue_type_script_setup_true_lang.js +0 -6
  257. package/dist/components/VPagination/VPagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  258. package/dist/components/VPopover/VPopover.js.map +1 -1
  259. package/dist/components/VPopover/VPopover.vue_vue_type_script_setup_true_lang.js.map +1 -1
  260. package/dist/components/VProgressCircular/VProgressCircular.js.map +1 -1
  261. package/dist/components/VProgressCircular/VProgressCircular.vue_vue_type_script_setup_true_lang.js.map +1 -1
  262. package/dist/components/VProgressLinear/VProgressLinear.js.map +1 -1
  263. package/dist/components/VProgressLinear/VProgressLinear.vue_vue_type_script_setup_true_lang.js.map +1 -1
  264. package/dist/components/VRadio/VRadio.js.map +1 -1
  265. package/dist/components/VRadio/VRadio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  266. package/dist/components/VRating/VRating.js.map +1 -1
  267. package/dist/components/VRating/VRating.vue_vue_type_script_setup_true_lang.js.map +1 -1
  268. package/dist/components/VResizable/VResizable.js.map +1 -1
  269. package/dist/components/VResizable/VResizable.vue_vue_type_script_setup_true_lang.js +8 -6
  270. package/dist/components/VResizable/VResizable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  271. package/dist/components/VResizable/VResizablePanel.js.map +1 -1
  272. package/dist/components/VResizable/VResizablePanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  273. package/dist/components/VResizable/context.js.map +1 -1
  274. package/dist/components/VResizable/layout.js.map +1 -1
  275. package/dist/components/VSelect/VSelect.d.ts +0 -3
  276. package/dist/components/VSelect/VSelect.js.map +1 -1
  277. package/dist/components/VSelect/VSelect.vue_vue_type_script_setup_true_lang.js +80 -90
  278. package/dist/components/VSelect/VSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  279. package/dist/components/VSeparator/VSeparator.js.map +1 -1
  280. package/dist/components/VSeparator/VSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  281. package/dist/components/VSideNavigation/VSideNavigation.d.ts +0 -6
  282. package/dist/components/VSideNavigation/VSideNavigation.js.map +1 -1
  283. package/dist/components/VSideNavigation/VSideNavigation.vue_vue_type_script_setup_true_lang.js +2 -11
  284. package/dist/components/VSideNavigation/VSideNavigation.vue_vue_type_script_setup_true_lang.js.map +1 -1
  285. package/dist/components/VSideNavigation/VSideNavigationGroup.js.map +1 -1
  286. package/dist/components/VSideNavigation/VSideNavigationGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  287. package/dist/components/VSideNavigation/VSideNavigationItem.js.map +1 -1
  288. package/dist/components/VSideNavigation/VSideNavigationItem.vue_vue_type_script_setup_true_lang.js +1 -5
  289. package/dist/components/VSideNavigation/VSideNavigationItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  290. package/dist/components/VSideNavigation/VSideNavigationSeparator.js.map +1 -1
  291. package/dist/components/VSideNavigation/context.js.map +1 -1
  292. package/dist/components/VSkeletonLoader/VSkeletonLoader.d.ts +0 -3
  293. package/dist/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  294. package/dist/components/VSkeletonLoader/VSkeletonLoader.vue_vue_type_script_setup_true_lang.js +0 -6
  295. package/dist/components/VSkeletonLoader/VSkeletonLoader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  296. package/dist/components/VSlider/VSlider.js.map +1 -1
  297. package/dist/components/VSlider/VSlider.vue_vue_type_script_setup_true_lang.js +107 -112
  298. package/dist/components/VSlider/VSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  299. package/dist/components/VSnackbar/VSnackbar.js.map +1 -1
  300. package/dist/components/VSnackbar/VSnackbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  301. package/dist/components/VSnackbar/state.js.map +1 -1
  302. package/dist/components/VSpinner/VSpinner.js.map +1 -1
  303. package/dist/components/VSpinner/VSpinner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  304. package/dist/components/VSplitButton/VSplitButton.d.ts +0 -3
  305. package/dist/components/VSplitButton/VSplitButton.js.map +1 -1
  306. package/dist/components/VSplitButton/VSplitButton.vue_vue_type_script_setup_true_lang.js +0 -6
  307. package/dist/components/VSplitButton/VSplitButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  308. package/dist/components/VStepper/VStepper.js.map +1 -1
  309. package/dist/components/VStepper/VStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  310. package/dist/components/VSwitch/VSwitch.js.map +1 -1
  311. package/dist/components/VSwitch/VSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  312. package/dist/components/VTabs/VTab.js.map +1 -1
  313. package/dist/components/VTabs/VTab.vue_vue_type_script_setup_true_lang.js +0 -2
  314. package/dist/components/VTabs/VTab.vue_vue_type_script_setup_true_lang.js.map +1 -1
  315. package/dist/components/VTabs/VTabPanel.js.map +1 -1
  316. package/dist/components/VTabs/VTabPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  317. package/dist/components/VTabs/VTabs.css +1 -1
  318. package/dist/components/VTabs/VTabs.d.ts +0 -3
  319. package/dist/components/VTabs/VTabs.js.map +1 -1
  320. package/dist/components/VTabs/VTabs.vue_vue_type_script_setup_true_lang.js +2 -15
  321. package/dist/components/VTabs/VTabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  322. package/dist/components/VTabs/context.d.ts +0 -2
  323. package/dist/components/VTabs/context.js.map +1 -1
  324. package/dist/components/VTextarea/VTextarea.d.ts +0 -6
  325. package/dist/components/VTextarea/VTextarea.js.map +1 -1
  326. package/dist/components/VTextarea/VTextarea.vue_vue_type_script_setup_true_lang.js +0 -6
  327. package/dist/components/VTextarea/VTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  328. package/dist/components/VTimeInput/VTimeInput.d.ts +0 -3
  329. package/dist/components/VTimeInput/VTimeInput.js.map +1 -1
  330. package/dist/components/VTimeInput/VTimeInput.vue_vue_type_script_setup_true_lang.js +197 -204
  331. package/dist/components/VTimeInput/VTimeInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  332. package/dist/components/VTimeInput/search.js.map +1 -1
  333. package/dist/components/VTimePicker/VTimePicker.js.map +1 -1
  334. package/dist/components/VTimePicker/VTimePicker.vue_vue_type_script_setup_true_lang.js +9 -9
  335. package/dist/components/VTimePicker/VTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  336. package/dist/components/VTimePicker/limits.js.map +1 -1
  337. package/dist/components/VTimeline/VTimeline.js.map +1 -1
  338. package/dist/components/VTimeline/VTimeline.vue_vue_type_script_setup_true_lang.js.map +1 -1
  339. package/dist/components/VTimeline/VTimelineItem.js.map +1 -1
  340. package/dist/components/VTimeline/VTimelineItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  341. package/dist/components/VTimeline/context.js.map +1 -1
  342. package/dist/components/VTimeline/datetime.js.map +1 -1
  343. package/dist/components/VToast/VToast.js.map +1 -1
  344. package/dist/components/VToast/VToast.vue_vue_type_script_setup_true_lang.js.map +1 -1
  345. package/dist/components/VToast/VToaster.js.map +1 -1
  346. package/dist/components/VToast/VToaster.vue_vue_type_script_setup_true_lang.js +1 -1
  347. package/dist/components/VToast/VToaster.vue_vue_type_script_setup_true_lang.js.map +1 -1
  348. package/dist/components/VToast/state.js.map +1 -1
  349. package/dist/components/VToggle/VToggle.d.ts +0 -3
  350. package/dist/components/VToggle/VToggle.js.map +1 -1
  351. package/dist/components/VToggle/VToggle.vue_vue_type_script_setup_true_lang.js +1 -13
  352. package/dist/components/VToggle/VToggle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  353. package/dist/components/VToggle/VToggleItem.js.map +1 -1
  354. package/dist/components/VToggle/VToggleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  355. package/dist/components/VToggle/context.js.map +1 -1
  356. package/dist/components/VTooltip/VTooltip.js.map +1 -1
  357. package/dist/components/VTooltip/VTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  358. package/dist/components/VTreeView/VTreeView.js.map +1 -1
  359. package/dist/components/VTreeView/VTreeView.vue_vue_type_script_setup_true_lang.js +1 -5
  360. package/dist/components/VTreeView/VTreeView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  361. package/dist/components/VTypography/VTypography.js.map +1 -1
  362. package/dist/components/VTypography/VTypography.vue_vue_type_script_setup_true_lang.js.map +1 -1
  363. package/dist/components/VVirtualList/VVirtualList.js.map +1 -1
  364. package/dist/components/VVirtualList/VVirtualList.vue_vue_type_script_setup_true_lang.js.map +1 -1
  365. package/dist/composables/useAriaLabel.js.map +1 -1
  366. package/dist/composables/useChoice.js.map +1 -1
  367. package/dist/composables/useClearable.js.map +1 -1
  368. package/dist/composables/useControlShape.d.ts +1 -5
  369. package/dist/composables/useControlShape.js +0 -1
  370. package/dist/composables/useControlShape.js.map +1 -1
  371. package/dist/composables/useDebouncedSearch.js.map +1 -1
  372. package/dist/composables/useDetailsOpen.js.map +1 -1
  373. package/dist/composables/useEscapeDismiss.js.map +1 -1
  374. package/dist/composables/useFieldIds.js.map +1 -1
  375. package/dist/composables/useFieldPanel.js +3 -7
  376. package/dist/composables/useFieldPanel.js.map +1 -1
  377. package/dist/composables/useFileDrop.js.map +1 -1
  378. package/dist/composables/useFileField.js +2 -2
  379. package/dist/composables/useFileField.js.map +1 -1
  380. package/dist/composables/useFocusoutDismiss.js.map +1 -1
  381. package/dist/composables/useHotkeyListener.js.map +1 -1
  382. package/dist/composables/useIconClickHandlers.js.map +1 -1
  383. package/dist/composables/useInertLink.js.map +1 -1
  384. package/dist/composables/useInfiniteScroll.js +2 -2
  385. package/dist/composables/useInfiniteScroll.js.map +1 -1
  386. package/dist/composables/useListbox.d.ts +0 -1
  387. package/dist/composables/useListbox.js +4 -10
  388. package/dist/composables/useListbox.js.map +1 -1
  389. package/dist/composables/useLiveAnnouncer.js.map +1 -1
  390. package/dist/composables/useMaskedField.js +28 -48
  391. package/dist/composables/useMaskedField.js.map +1 -1
  392. package/dist/composables/useModalDialog.js +1 -1
  393. package/dist/composables/useModalDialog.js.map +1 -1
  394. package/dist/composables/usePopover.js +1 -1
  395. package/dist/composables/usePopover.js.map +1 -1
  396. package/dist/composables/useProgressValue.js.map +1 -1
  397. package/dist/composables/useRootAttrs.js.map +1 -1
  398. package/dist/composables/useSlotNodes.js.map +1 -1
  399. package/dist/composables/useTextLimit.js.map +1 -1
  400. package/dist/composables/useTimer.js.map +1 -1
  401. package/dist/composables/useTypeahead.js.map +1 -1
  402. package/dist/composables/useVirtualList.js.map +1 -1
  403. package/dist/i18n/en.js.map +1 -1
  404. package/dist/i18n/fr.js.map +1 -1
  405. package/dist/i18n/state.js.map +1 -1
  406. package/dist/styles.css +1 -1
  407. package/dist/tokens/css.js.map +1 -1
  408. package/dist/tokens/index.d.ts +3 -0
  409. package/dist/tokens/index.js.map +1 -1
  410. package/dist/tokens/primitives.js.map +1 -1
  411. package/dist/tokens/semantic.d.ts +3 -0
  412. package/dist/tokens/semantic.js +6 -5
  413. package/dist/tokens/semantic.js.map +1 -1
  414. package/dist/tokens/themes/dark.js.map +1 -1
  415. package/dist/tokens/types.js.map +1 -1
  416. package/dist/tokens.json +12 -5
  417. package/dist/types.d.ts +0 -2
  418. package/dist/utils/array.js.map +1 -1
  419. package/dist/utils/arrowNav.js.map +1 -1
  420. package/dist/utils/attrs.js.map +1 -1
  421. package/dist/utils/chip.d.ts +4 -6
  422. package/dist/utils/chip.js +8 -5
  423. package/dist/utils/chip.js.map +1 -1
  424. package/dist/utils/clock.js +3 -1
  425. package/dist/utils/clock.js.map +1 -1
  426. package/dist/utils/css.js +1 -1
  427. package/dist/utils/css.js.map +1 -1
  428. package/dist/utils/date.js.map +1 -1
  429. package/dist/utils/direction.js.map +1 -1
  430. package/dist/utils/env.js.map +1 -1
  431. package/dist/utils/file.js +13 -31
  432. package/dist/utils/file.js.map +1 -1
  433. package/dist/utils/focus.js.map +1 -1
  434. package/dist/utils/hostWarns.js.map +1 -1
  435. package/dist/utils/ids.js.map +1 -1
  436. package/dist/utils/matcher.js.map +1 -1
  437. package/dist/utils/memo.js.map +1 -1
  438. package/dist/utils/number.js.map +1 -1
  439. package/dist/utils/text.js.map +1 -1
  440. package/dist/utils/time.js.map +1 -1
  441. package/dist/utils/vnode.js.map +1 -1
  442. package/package.json +19 -19
@@ -1 +1 @@
1
- {"version":3,"file":"fr.js","names":[],"sources":["../../src/i18n/fr.ts"],"sourcesContent":["/**\n * Opt-in French dictionary registered through registerMessages. Preserve typographic\n * apostrophes and message signatures.\n */\n\nimport type { Messages } from './types'\n\nexport const fr: Messages = {\n common: {\n loading: 'Chargement…',\n clear: 'Effacer',\n close: 'Fermer',\n dismiss: 'Retirer',\n remove: (name) => `Retirer ${name}`,\n cancel: 'Annuler',\n confirm: 'OK',\n },\n pagination: {\n label: 'Pagination',\n first: 'Première page',\n previous: 'Page précédente',\n next: 'Page suivante',\n last: 'Dernière page',\n page: (page) => `Page ${page}`,\n },\n tabs: {\n label: 'Onglets',\n previous: 'Onglets précédents',\n next: 'Onglets suivants',\n },\n breadcrumb: {\n label: 'Fil d’Ariane',\n ellipsis: 'Afficher les pages intermédiaires',\n },\n sideNavigation: { label: 'Navigation' },\n link: { newTab: ', s’ouvre dans un nouvel onglet' },\n combobox: {\n empty: 'Aucun résultat',\n clear: 'Effacer la sélection',\n },\n select: { clear: 'Effacer la sélection' },\n commandPalette: {\n label: 'Palette de commandes',\n searchLabel: 'Rechercher une commande',\n placeholder: 'Saisissez une commande ou recherchez…',\n empty: 'Aucun résultat',\n navigate: 'Naviguer',\n choose: 'Choisir',\n },\n dataTable: {\n empty: 'Aucune donnée',\n noResults: 'Aucun résultat',\n loading: 'Chargement des données…',\n searchLabel: 'Rechercher dans le tableau',\n searchPlaceholder: 'Rechercher…',\n perPage: 'Lignes par page',\n perPageValue: (label, value) => `${label}\\u00A0: ${value}`,\n selectAll: 'Tout sélectionner',\n selectRow: (index) => `Sélectionner la ligne ${index}`,\n selection: (count) =>\n `${count} élément${count > 1 ? 's' : ''} sélectionné${count > 1 ? 's' : ''}`,\n range: ({ start, end, total }) => `${start}–${end} sur ${total}`,\n pagination: 'Pagination du tableau',\n },\n toaster: { label: 'Notifications' },\n snackbar: { label: 'Confirmation', action: 'Annuler' },\n inputOTP: {\n label: 'Code de vérification',\n slot: (index, total) => `Caractère ${index} sur ${total}`,\n },\n slider: {\n value: 'Valeur',\n start: 'Début',\n end: 'Fin',\n rangeStart: (label) => `${label} (début)`,\n rangeEnd: (label) => `${label} (fin)`,\n },\n field: {\n limitExceeded: (max) => `Dépasse la limite de ${max} caractères`,\n },\n // The space before the sign is a NON-BREAKING one, as French typography requires and\n // English does not. It is written as an escape rather than typed in: the linter refuses\n // the character itself, and it would be indistinguishable from an ordinary space in a\n // review.\n progress: { percent: (percent) => `${percent}\\u00A0%`, label: 'Progression' },\n meter: { label: 'Jauge' },\n hotkeys: {\n command: 'Commande',\n ctrl: 'Ctrl',\n alt: 'Alt',\n shift: 'Maj',\n windows: 'Win',\n super: 'Super',\n enter: 'Entrée',\n escape: 'Échap',\n space: 'Espace',\n backspace: 'Retour arrière',\n delete: 'Suppr',\n tab: 'Tab',\n up: 'Flèche haut',\n down: 'Flèche bas',\n left: 'Flèche gauche',\n right: 'Flèche droite',\n label: (keys) => `Raccourci clavier\\u00A0: ${keys}`,\n },\n colorPicker: {\n label: 'Sélecteur de couleur',\n saturation: 'Saturation',\n brightness: 'Luminosité',\n areaValue: (saturation, brightness) => `Saturation ${saturation}, luminosité ${brightness}`,\n hue: 'Teinte',\n alpha: 'Opacité',\n value: 'Valeur de la couleur',\n format: 'Format de la couleur',\n eyeDropper: 'Prélever une couleur à l’écran',\n swatches: 'Couleurs prédéfinies',\n },\n colorInput: {\n clear: 'Effacer la couleur',\n openPicker: 'Ouvrir le sélecteur de couleur',\n pickerLabel: 'Choisir une couleur',\n },\n datePicker: {\n label: 'Sélecteur de date',\n previousMonth: 'Mois précédent',\n nextMonth: 'Mois suivant',\n previousYear: 'Année précédente',\n nextYear: 'Année suivante',\n monthPicker: 'Choix du mois',\n yearPicker: 'Choix de l’année',\n },\n dateInput: {\n clear: 'Effacer la date',\n openPicker: 'Ouvrir le calendrier',\n pickerLabel: 'Choisir une date',\n },\n numberInput: {\n increment: 'Augmenter',\n decrement: 'Diminuer',\n },\n splitButton: { menu: 'Plus d’options' },\n rating: {\n label: 'Note',\n empty: 'Aucune note',\n value: (value, max) => `${value} sur ${max}`,\n },\n resizable: {\n panel: (position) => `Panneau ${position}`,\n },\n stepper: {\n label: 'Progression',\n completed: 'Terminée',\n error: 'Erreur',\n },\n treeView: {\n label: 'Arborescence',\n loadFailed: 'Chargement impossible',\n loadError: (label) => `Impossible de charger le contenu de ${label}`,\n },\n timePicker: {\n label: 'Sélecteur d’heure',\n meridiem: 'AM ou PM',\n am: 'AM',\n pm: 'PM',\n selectHour: 'Sélectionner l’heure',\n selectMinutes: 'Sélectionner les minutes',\n choosingHour: 'Sélection de l’heure',\n choosingMinutes: 'Sélection des minutes',\n hour: 'Heure',\n minutes: 'Minutes',\n hourValue: (hour) => `${hour} ${hour < 2 ? 'heure' : 'heures'}`,\n minutesValue: (minute) => `${minute} ${minute < 2 ? 'minute' : 'minutes'}`,\n },\n timeInput: {\n clear: 'Effacer l’heure',\n openPicker: 'Ouvrir le sélecteur d’heure',\n pickerLabel: 'Choisir une heure',\n meridiemValue: (value) => `AM ou PM\\u00A0: ${value}`,\n maskPlaceholder: 'hh:mm',\n unavailable: 'Cette heure n’est pas disponible.',\n },\n fileInput: {\n openPicker: 'Choisir des fichiers',\n clear: 'Effacer les fichiers',\n // The French plural starts at two, the English one at zero; \"0 fichier\" against \"0 files\".\n // Each language therefore makes the choice on its own, and there is no shared rule for\n // either to inherit.\n files: (count) => `${count} fichier${count > 1 ? 's' : ''}`,\n placeholder: 'Aucun fichier sélectionné',\n },\n filePicker: {\n browse: 'Parcourir les fichiers',\n or: 'ou',\n list: 'Fichiers sélectionnés',\n },\n carousel: {\n label: 'Carrousel',\n roleDescription: 'carrousel',\n slideRoleDescription: 'diapositive',\n slides: 'Diapositives',\n slide: (index, total) => `${index} sur ${total}`,\n previous: 'Diapositive précédente',\n next: 'Diapositive suivante',\n indicators: 'Choisir la diapositive à afficher',\n },\n calendar: {\n label: 'Calendrier',\n roleDescription: 'calendrier',\n today: 'Aujourd’hui',\n view: 'Affichage',\n viewDay: 'Jour',\n view4Days: '4 jours',\n viewWeek: 'Semaine',\n viewMonth: 'Mois',\n viewYear: 'Année',\n viewCustom: (days) => `${days} jours`,\n previousDay: 'Jour précédent',\n nextDay: 'Jour suivant',\n previousWeek: 'Semaine précédente',\n nextWeek: 'Semaine suivante',\n previousMonth: 'Mois précédent',\n nextMonth: 'Mois suivant',\n previousYear: 'Année précédente',\n nextYear: 'Année suivante',\n previousPeriod: 'Période précédente',\n nextPeriod: 'Période suivante',\n allDay: 'Toute la journée',\n moreEvents: (count) => `+${count} autre${count > 1 ? 's' : ''}`,\n openDay: (day) => `Ouvrir le ${day}`,\n untitled: '(Sans titre)',\n eventRoleDescription: 'évènement',\n eventHint:\n 'Appuyez sur Entrée pour ouvrir cet évènement. Appuyez sur Espace pour le saisir, puis sur les flèches pour le déplacer et sur Maj avec les flèches pour changer son heure de fin.',\n grabbed:\n 'Évènement saisi. Utilisez les flèches pour le déplacer, Entrée ou Espace pour le poser, Échap pour annuler.',\n dropped: 'Évènement posé.',\n reverted: 'Déplacement annulé. L’évènement est revenu à sa place.',\n movedTo: (title, when) => `Déplacement de ${title}\\u00A0: ${when}.`,\n },\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"fr.js","names":["fr","name","page","label","value","index","count","start","end","total","max","percent","keys","saturation","brightness","position","hour","minute","days","day","title","when"],"sources":["../../src/i18n/fr.ts"],"sourcesContent":["/**\n * Opt-in French dictionary registered through registerMessages. Preserve typographic\n * apostrophes and message signatures.\n */\n\nimport type { Messages } from './types'\n\nexport const fr: Messages = {\n common: {\n loading: 'Chargement…',\n clear: 'Effacer',\n close: 'Fermer',\n dismiss: 'Retirer',\n remove: (name) => `Retirer ${name}`,\n cancel: 'Annuler',\n confirm: 'OK',\n },\n pagination: {\n label: 'Pagination',\n first: 'Première page',\n previous: 'Page précédente',\n next: 'Page suivante',\n last: 'Dernière page',\n page: (page) => `Page ${page}`,\n },\n tabs: {\n label: 'Onglets',\n previous: 'Onglets précédents',\n next: 'Onglets suivants',\n },\n breadcrumb: {\n label: 'Fil d’Ariane',\n ellipsis: 'Afficher les pages intermédiaires',\n },\n sideNavigation: { label: 'Navigation' },\n link: { newTab: ', s’ouvre dans un nouvel onglet' },\n combobox: {\n empty: 'Aucun résultat',\n clear: 'Effacer la sélection',\n },\n select: { clear: 'Effacer la sélection' },\n commandPalette: {\n label: 'Palette de commandes',\n searchLabel: 'Rechercher une commande',\n placeholder: 'Saisissez une commande ou recherchez…',\n empty: 'Aucun résultat',\n navigate: 'Naviguer',\n choose: 'Choisir',\n },\n dataTable: {\n empty: 'Aucune donnée',\n noResults: 'Aucun résultat',\n loading: 'Chargement des données…',\n searchLabel: 'Rechercher dans le tableau',\n searchPlaceholder: 'Rechercher…',\n perPage: 'Lignes par page',\n perPageValue: (label, value) => `${label}\\u00A0: ${value}`,\n selectAll: 'Tout sélectionner',\n selectRow: (index) => `Sélectionner la ligne ${index}`,\n selection: (count) =>\n `${count} élément${count > 1 ? 's' : ''} sélectionné${count > 1 ? 's' : ''}`,\n range: ({ start, end, total }) => `${start}–${end} sur ${total}`,\n pagination: 'Pagination du tableau',\n },\n toaster: { label: 'Notifications' },\n snackbar: { label: 'Confirmation', action: 'Annuler' },\n inputOTP: {\n label: 'Code de vérification',\n slot: (index, total) => `Caractère ${index} sur ${total}`,\n },\n slider: {\n value: 'Valeur',\n start: 'Début',\n end: 'Fin',\n rangeStart: (label) => `${label} (début)`,\n rangeEnd: (label) => `${label} (fin)`,\n },\n field: {\n limitExceeded: (max) => `Dépasse la limite de ${max} caractères`,\n },\n // The space before the sign is a NON-BREAKING one, as French typography requires and\n // English does not. It is written as an escape rather than typed in: the linter refuses\n // the character itself, and it would be indistinguishable from an ordinary space in a\n // review.\n progress: { percent: (percent) => `${percent}\\u00A0%`, label: 'Progression' },\n meter: { label: 'Jauge' },\n hotkeys: {\n command: 'Commande',\n ctrl: 'Ctrl',\n alt: 'Alt',\n shift: 'Maj',\n windows: 'Win',\n super: 'Super',\n enter: 'Entrée',\n escape: 'Échap',\n space: 'Espace',\n backspace: 'Retour arrière',\n delete: 'Suppr',\n tab: 'Tab',\n up: 'Flèche haut',\n down: 'Flèche bas',\n left: 'Flèche gauche',\n right: 'Flèche droite',\n label: (keys) => `Raccourci clavier\\u00A0: ${keys}`,\n },\n colorPicker: {\n label: 'Sélecteur de couleur',\n saturation: 'Saturation',\n brightness: 'Luminosité',\n areaValue: (saturation, brightness) => `Saturation ${saturation}, luminosité ${brightness}`,\n hue: 'Teinte',\n alpha: 'Opacité',\n value: 'Valeur de la couleur',\n format: 'Format de la couleur',\n eyeDropper: 'Prélever une couleur à l’écran',\n swatches: 'Couleurs prédéfinies',\n },\n colorInput: {\n clear: 'Effacer la couleur',\n openPicker: 'Ouvrir le sélecteur de couleur',\n pickerLabel: 'Choisir une couleur',\n },\n datePicker: {\n label: 'Sélecteur de date',\n previousMonth: 'Mois précédent',\n nextMonth: 'Mois suivant',\n previousYear: 'Année précédente',\n nextYear: 'Année suivante',\n monthPicker: 'Choix du mois',\n yearPicker: 'Choix de l’année',\n },\n dateInput: {\n clear: 'Effacer la date',\n openPicker: 'Ouvrir le calendrier',\n pickerLabel: 'Choisir une date',\n },\n numberInput: {\n increment: 'Augmenter',\n decrement: 'Diminuer',\n },\n splitButton: { menu: 'Plus d’options' },\n rating: {\n label: 'Note',\n empty: 'Aucune note',\n value: (value, max) => `${value} sur ${max}`,\n },\n resizable: {\n panel: (position) => `Panneau ${position}`,\n },\n stepper: {\n label: 'Progression',\n completed: 'Terminée',\n error: 'Erreur',\n },\n treeView: {\n label: 'Arborescence',\n loadFailed: 'Chargement impossible',\n loadError: (label) => `Impossible de charger le contenu de ${label}`,\n },\n timePicker: {\n label: 'Sélecteur d’heure',\n meridiem: 'AM ou PM',\n am: 'AM',\n pm: 'PM',\n selectHour: 'Sélectionner l’heure',\n selectMinutes: 'Sélectionner les minutes',\n choosingHour: 'Sélection de l’heure',\n choosingMinutes: 'Sélection des minutes',\n hour: 'Heure',\n minutes: 'Minutes',\n hourValue: (hour) => `${hour} ${hour < 2 ? 'heure' : 'heures'}`,\n minutesValue: (minute) => `${minute} ${minute < 2 ? 'minute' : 'minutes'}`,\n },\n timeInput: {\n clear: 'Effacer l’heure',\n openPicker: 'Ouvrir le sélecteur d’heure',\n pickerLabel: 'Choisir une heure',\n meridiemValue: (value) => `AM ou PM\\u00A0: ${value}`,\n maskPlaceholder: 'hh:mm',\n unavailable: 'Cette heure n’est pas disponible.',\n },\n fileInput: {\n openPicker: 'Choisir des fichiers',\n clear: 'Effacer les fichiers',\n // The French plural starts at two, the English one at zero; \"0 fichier\" against \"0 files\".\n // Each language therefore makes the choice on its own, and there is no shared rule for\n // either to inherit.\n files: (count) => `${count} fichier${count > 1 ? 's' : ''}`,\n placeholder: 'Aucun fichier sélectionné',\n },\n filePicker: {\n browse: 'Parcourir les fichiers',\n or: 'ou',\n list: 'Fichiers sélectionnés',\n },\n carousel: {\n label: 'Carrousel',\n roleDescription: 'carrousel',\n slideRoleDescription: 'diapositive',\n slides: 'Diapositives',\n slide: (index, total) => `${index} sur ${total}`,\n previous: 'Diapositive précédente',\n next: 'Diapositive suivante',\n indicators: 'Choisir la diapositive à afficher',\n },\n calendar: {\n label: 'Calendrier',\n roleDescription: 'calendrier',\n today: 'Aujourd’hui',\n view: 'Affichage',\n viewDay: 'Jour',\n view4Days: '4 jours',\n viewWeek: 'Semaine',\n viewMonth: 'Mois',\n viewYear: 'Année',\n viewCustom: (days) => `${days} jours`,\n previousDay: 'Jour précédent',\n nextDay: 'Jour suivant',\n previousWeek: 'Semaine précédente',\n nextWeek: 'Semaine suivante',\n previousMonth: 'Mois précédent',\n nextMonth: 'Mois suivant',\n previousYear: 'Année précédente',\n nextYear: 'Année suivante',\n previousPeriod: 'Période précédente',\n nextPeriod: 'Période suivante',\n allDay: 'Toute la journée',\n moreEvents: (count) => `+${count} autre${count > 1 ? 's' : ''}`,\n openDay: (day) => `Ouvrir le ${day}`,\n untitled: '(Sans titre)',\n eventRoleDescription: 'évènement',\n eventHint:\n 'Appuyez sur Entrée pour ouvrir cet évènement. Appuyez sur Espace pour le saisir, puis sur les flèches pour le déplacer et sur Maj avec les flèches pour changer son heure de fin.',\n grabbed:\n 'Évènement saisi. Utilisez les flèches pour le déplacer, Entrée ou Espace pour le poser, Échap pour annuler.',\n dropped: 'Évènement posé.',\n reverted: 'Déplacement annulé. L’évènement est revenu à sa place.',\n movedTo: (title, when) => `Déplacement de ${title}\\u00A0: ${when}.`,\n },\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","names":[],"sources":["../../src/i18n/state.ts"],"sourcesContent":["/**\n * Reactive process-wide locale configuration, callable outside components. Per-request\n * multilingual SSR requires explicit component text props.\n */\nimport { computed, shallowRef, type ComputedRef, type ShallowRef } from 'vue'\n\nimport { isDev } from '../utils/env'\n\nimport { en } from './en'\nimport type { Messages, MessagesInput } from './types'\n\n/** The language tag assumed until one is chosen. */\nexport const DEFAULT_LOCALE = 'en-US'\nconst DEFAULT_LANG = 'en'\n\n/** The dictionaries, filed under the LANGUAGE subtag alone; `en`, `fr`, `de`. */\nconst registry = new Map<string, Messages>([[DEFAULT_LANG, en]])\n\nconst currentLocale = shallowRef<string>(DEFAULT_LOCALE)\nconst currentMessages = shallowRef<Messages>(en)\n\n/**\n * The language part of a tag: British English is filed under English. A tag that makes no\n * sense comes back untouched, and will simply match no dictionary.\n */\nfunction langOf(locale: string): string {\n return locale.toLowerCase().split('-')[0] ?? locale\n}\n\n/**\n * The dictionary a tag resolves to, falling back to the default language. The last `?? en`\n * never fires: `registry` is seeded with `DEFAULT_LANG` and the only path that could remove it;\n * `registerMessages` passing `undefined`; puts `en` straight back instead of deleting.\n */\nfunction resolve(locale: string): Messages {\n return registry.get(langOf(locale)) ?? registry.get(DEFAULT_LANG) ?? en\n}\n\n/** Names that would reach into an object's own machinery instead of naming a section. */\nconst FORBIDDEN_KEYS = new Set(['__proto__', 'constructor', 'prototype'])\n\n/** Lays a partial override over a complete dictionary. */\nfunction mergeMessages(base: Messages, patch: MessagesInput): Messages {\n const out: Record<string, object> = { ...base }\n for (const [namespace, section] of Object.entries(patch)) {\n // A dictionary parsed from a file can carry one of these as a namespace, and assigning to\n // it would replace the copy's own machinery instead of adding a section. Nothing outside is\n // affected, the object being fresh; but every lookup in it is then wrong, and nothing says\n // so.\n if (FORBIDDEN_KEYS.has(namespace)) continue\n if (!section) continue\n /* Ignore nullish dictionary leaves so partial overrides cannot erase fallback labels. */\n const words = Object.entries(section).filter(([key, value]) => {\n const empty = value === undefined || value === null || value === ''\n if (empty && isDev) {\n console.warn(`[vectis] registerMessages: “${namespace}.${key}” is empty and was ignored.`)\n }\n return !empty\n })\n out[namespace] = { ...out[namespace], ...Object.fromEntries(words) }\n }\n return out as unknown as Messages\n}\n\n/**\n * Whether `Intl` takes a tag: a malformed one (\"fr_FR\") throws a RangeError in every formatter,\n * so it is ignored rather than passed on.\n */\nfunction isValidTag(tag: string): boolean {\n try {\n Intl.getCanonicalLocales(tag)\n return true\n } catch {\n if (isDev) console.warn(`[vectis] Locale “${tag}” ignored: not a language tag ('fr-FR').`)\n return false\n }\n}\n\n/**\n * Chooses the locale the library speaks. Those components also take their own `locale`, which\n * wins. A malformed tag is ignored and the locale in force stays.\n */\nexport function setLocale(locale: string): void {\n if (!isValidTag(locale)) return\n const lang = langOf(locale)\n if (isDev && !registry.has(lang)) {\n console.warn(\n `[vectis] No dictionary registered for “${lang}”: the text stays in ` +\n `“${DEFAULT_LANG}”. French is shipped — import { fr } from 'vectis-ui' then ` +\n `registerMessages('fr', fr). For another language: registerMessages('${lang}', { … }).`,\n )\n }\n currentLocale.value = locale\n currentMessages.value = resolve(locale)\n}\n\n/**\n * Adds or adjusts the words of a LANGUAGE, filed under the subtag alone: `fr`, not `fr-FR`.\n * What is left out falls back to whatever was registered before, then to the English always\n * carried, never to an empty string.\n */\nexport function registerMessages(lang: string, messages: MessagesInput | undefined): void {\n const key = langOf(lang)\n if (isDev && key !== lang.toLowerCase()) {\n console.warn(\n `[vectis] registerMessages('${lang}', …): the expected key is a language subtag ` +\n `alone — registered under “${key}”, which covers all its regional variants.`,\n )\n }\n if (messages === undefined) {\n if (key === DEFAULT_LANG) registry.set(DEFAULT_LANG, en)\n else registry.delete(key)\n } else {\n registry.set(key, mergeMessages(registry.get(key) ?? en, messages))\n }\n currentMessages.value = resolve(currentLocale.value)\n}\n\n/**\n * Reading `.value.x` once in a `setup()` body FREEZES that word. Read it where the read\n * repeats: inside a `computed`, or in the template.\n */\nexport function useMessages(): ShallowRef<Messages> {\n return currentMessages\n}\n\n/**\n * The locale tag in force. Internal: what the calendar and the pickers fall back on with no\n * `locale` of their own, and what VDataTable passes to `localeCompare` when it sorts.\n */\nexport function useLocale(): ShallowRef<string> {\n return currentLocale\n}\n\n/**\n * The locale a component with a `locale` prop of its own actually uses: the prop when it is\n * given, the locale in force otherwise. The prop has no literal default in any of the\n * components that read it, and that is what this relies on: `undefined` is the \"not given\" that\n * lets the global locale have its chance.\n */\nexport function useResolvedLocale(locale: () => string | undefined): ComputedRef<string> {\n // An empty or malformed tag is no tag: handed to `Intl` as it stands, it throws a RangeError.\n return computed(() => {\n const tag = locale()\n return tag && isValidTag(tag) ? tag : currentLocale.value\n })\n}\n"],"mappings":";;;;AAYA,IAAa,IAAiB,SACxB,IAAe,MAGf,oBAAW,IAAI,IAAsB,CAAC,CAAC,GAAc,CAAE,CAAC,CAAC,GAEzD,IAAgB,EAAmB,CAAc,GACjD,IAAkB,EAAqB,CAAE;AAM/C,SAAS,EAAO,GAAwB;CACtC,OAAO,EAAO,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;AAC/C;AAOA,SAAS,EAAQ,GAA0B;CACzC,OAAO,EAAS,IAAI,EAAO,CAAM,CAAC,KAAK,EAAS,IAAI,CAAY,KAAK;AACvE;AAGA,IAAM,oBAAiB,IAAI,IAAI;CAAC;CAAa;CAAe;AAAW,CAAC;AAGxE,SAAS,EAAc,GAAgB,GAAgC;CACrE,IAAM,IAA8B,EAAE,GAAG,EAAK;CAC9C,KAAK,IAAM,CAAC,GAAW,MAAY,OAAO,QAAQ,CAAK,GAAG;EAMxD,IADI,EAAe,IAAI,CAAS,KAC5B,CAAC,GAAS;EAEd,IAAM,IAAQ,OAAO,QAAQ,CAAO,CAAC,CAAC,QAAQ,CAAC,GAAK,OAAW;GAC7D,IAAM,IAAQ,KAAiC,QAAQ,MAAU;GAIjE,OAHI,KAAS,KACX,QAAQ,KAAK,+BAA+B,EAAU,GAAG,EAAI,4BAA4B,GAEpF,CAAC;EACV,CAAC;EACD,EAAI,KAAa;GAAE,GAAG,EAAI;GAAY,GAAG,OAAO,YAAY,CAAK;EAAE;CACrE;CACA,OAAO;AACT;AAMA,SAAS,EAAW,GAAsB;CACxC,IAAI;EAEF,OADA,KAAK,oBAAoB,CAAG,GACrB;CACT,QAAQ;EAEN,OADI,KAAO,QAAQ,KAAK,oBAAoB,EAAI,yCAAyC,GAClF;CACT;AACF;AAMA,SAAgB,EAAU,GAAsB;CAC9C,IAAI,CAAC,EAAW,CAAM,GAAG;CACzB,IAAM,IAAO,EAAO,CAAM;CAS1B,AARI,KAAS,CAAC,EAAS,IAAI,CAAI,KAC7B,QAAQ,KACN,0CAA0C,EAAK,wBACzC,EAAa,iIACsD,EAAK,WAChF,GAEF,EAAc,QAAQ,GACtB,EAAgB,QAAQ,EAAQ,CAAM;AACxC;AAOA,SAAgB,EAAiB,GAAc,GAA2C;CACxF,IAAM,IAAM,EAAO,CAAI;CAavB,AAZI,KAAS,MAAQ,EAAK,YAAY,KACpC,QAAQ,KACN,8BAA8B,EAAK,yEACJ,EAAI,2CACrC,GAEE,MAAa,KAAA,IACX,MAAQ,IAAc,EAAS,IAAI,GAAc,CAAE,IAClD,EAAS,OAAO,CAAG,IAExB,EAAS,IAAI,GAAK,EAAc,EAAS,IAAI,CAAG,KAAK,GAAI,CAAQ,CAAC,GAEpE,EAAgB,QAAQ,EAAQ,EAAc,KAAK;AACrD;AAMA,SAAgB,IAAoC;CAClD,OAAO;AACT;AAMA,SAAgB,IAAgC;CAC9C,OAAO;AACT;AAQA,SAAgB,EAAkB,GAAuD;CAEvF,OAAO,QAAe;EACpB,IAAM,IAAM,EAAO;EACnB,OAAO,KAAO,EAAW,CAAG,IAAI,IAAM,EAAc;CACtD,CAAC;AACH"}
1
+ {"version":3,"file":"state.js","names":["DEFAULT_LOCALE","DEFAULT_LANG","registry","en","currentLocale","shallowRef","currentMessages","langOf","locale","resolve","FORBIDDEN_KEYS","mergeMessages","out","base","namespace","section","patch","words","key","value","empty","isDev","isValidTag","tag","setLocale","lang","registerMessages","messages","useMessages","useLocale","useResolvedLocale","computed"],"sources":["../../src/i18n/state.ts"],"sourcesContent":["/**\n * Reactive process-wide locale configuration, callable outside components. Per-request\n * multilingual SSR requires explicit component text props.\n */\nimport { computed, shallowRef, type ComputedRef, type ShallowRef } from 'vue'\n\nimport { isDev } from '../utils/env'\n\nimport { en } from './en'\nimport type { Messages, MessagesInput } from './types'\n\n/** The language tag assumed until one is chosen. */\nexport const DEFAULT_LOCALE = 'en-US'\nconst DEFAULT_LANG = 'en'\n\n/** The dictionaries, filed under the LANGUAGE subtag alone; `en`, `fr`, `de`. */\nconst registry = new Map<string, Messages>([[DEFAULT_LANG, en]])\n\nconst currentLocale = shallowRef<string>(DEFAULT_LOCALE)\nconst currentMessages = shallowRef<Messages>(en)\n\n/**\n * The language part of a tag: British English is filed under English. A tag that makes no\n * sense comes back untouched, and will simply match no dictionary.\n */\nfunction langOf(locale: string): string {\n return locale.toLowerCase().split('-')[0] ?? locale\n}\n\n/**\n * The dictionary a tag resolves to, falling back to the default language. The last `?? en`\n * never fires: `registry` is seeded with `DEFAULT_LANG` and the only path that could remove it;\n * `registerMessages` passing `undefined`; puts `en` straight back instead of deleting.\n */\nfunction resolve(locale: string): Messages {\n return registry.get(langOf(locale)) ?? registry.get(DEFAULT_LANG) ?? en\n}\n\n/** Names that would reach into an object's own machinery instead of naming a section. */\nconst FORBIDDEN_KEYS = new Set(['__proto__', 'constructor', 'prototype'])\n\n/** Lays a partial override over a complete dictionary. */\nfunction mergeMessages(base: Messages, patch: MessagesInput): Messages {\n const out: Record<string, object> = { ...base }\n for (const [namespace, section] of Object.entries(patch)) {\n // A dictionary parsed from a file can carry one of these as a namespace, and assigning to\n // it would replace the copy's own machinery instead of adding a section. Nothing outside is\n // affected, the object being fresh; but every lookup in it is then wrong, and nothing says\n // so.\n if (FORBIDDEN_KEYS.has(namespace)) continue\n if (!section) continue\n /* Ignore nullish dictionary leaves so partial overrides cannot erase fallback labels. */\n const words = Object.entries(section).filter(([key, value]) => {\n const empty = value === undefined || value === null || value === ''\n if (empty && isDev) {\n console.warn(`[vectis] registerMessages: “${namespace}.${key}” is empty and was ignored.`)\n }\n return !empty\n })\n out[namespace] = { ...out[namespace], ...Object.fromEntries(words) }\n }\n return out as unknown as Messages\n}\n\n/**\n * Whether `Intl` takes a tag: a malformed one (\"fr_FR\") throws a RangeError in every formatter,\n * so it is ignored rather than passed on.\n */\nfunction isValidTag(tag: string): boolean {\n try {\n Intl.getCanonicalLocales(tag)\n return true\n } catch {\n if (isDev) console.warn(`[vectis] Locale “${tag}” ignored: not a language tag ('fr-FR').`)\n return false\n }\n}\n\n/**\n * Chooses the locale the library speaks. Those components also take their own `locale`, which\n * wins. A malformed tag is ignored and the locale in force stays.\n */\nexport function setLocale(locale: string): void {\n if (!isValidTag(locale)) return\n const lang = langOf(locale)\n if (isDev && !registry.has(lang)) {\n console.warn(\n `[vectis] No dictionary registered for “${lang}”: the text stays in ` +\n `“${DEFAULT_LANG}”. French is shipped — import { fr } from 'vectis-ui' then ` +\n `registerMessages('fr', fr). For another language: registerMessages('${lang}', { … }).`,\n )\n }\n currentLocale.value = locale\n currentMessages.value = resolve(locale)\n}\n\n/**\n * Adds or adjusts the words of a LANGUAGE, filed under the subtag alone: `fr`, not `fr-FR`.\n * What is left out falls back to whatever was registered before, then to the English always\n * carried, never to an empty string.\n */\nexport function registerMessages(lang: string, messages: MessagesInput | undefined): void {\n const key = langOf(lang)\n if (isDev && key !== lang.toLowerCase()) {\n console.warn(\n `[vectis] registerMessages('${lang}', …): the expected key is a language subtag ` +\n `alone — registered under “${key}”, which covers all its regional variants.`,\n )\n }\n if (messages === undefined) {\n if (key === DEFAULT_LANG) registry.set(DEFAULT_LANG, en)\n else registry.delete(key)\n } else {\n registry.set(key, mergeMessages(registry.get(key) ?? en, messages))\n }\n currentMessages.value = resolve(currentLocale.value)\n}\n\n/**\n * Reading `.value.x` once in a `setup()` body FREEZES that word. Read it where the read\n * repeats: inside a `computed`, or in the template.\n */\nexport function useMessages(): ShallowRef<Messages> {\n return currentMessages\n}\n\n/**\n * The locale tag in force. Internal: what the calendar and the pickers fall back on with no\n * `locale` of their own, and what VDataTable passes to `localeCompare` when it sorts.\n */\nexport function useLocale(): ShallowRef<string> {\n return currentLocale\n}\n\n/**\n * The locale a component with a `locale` prop of its own actually uses: the prop when it is\n * given, the locale in force otherwise. The prop has no literal default in any of the\n * components that read it, and that is what this relies on: `undefined` is the \"not given\" that\n * lets the global locale have its chance.\n */\nexport function useResolvedLocale(locale: () => string | undefined): ComputedRef<string> {\n // An empty or malformed tag is no tag: handed to `Intl` as it stands, it throws a RangeError.\n return computed(() => {\n const tag = locale()\n return tag && isValidTag(tag) ? tag : currentLocale.value\n })\n}\n"],"mappings":";;;;AAYA,IAAaA,IAAiB,SACxBC,IAAe,MAGfC,oBAAW,IAAI,IAAsB,CAAC,CAACD,GAAcE,CAAE,CAAC,CAAC,GAEzDC,IAAgBC,EAAmBL,CAAc,GACjDM,IAAkBD,EAAqBF,CAAE;AAM/C,SAASI,EAAO,GAAwB;CACtC,OAAOC,EAAO,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAMA;AAC/C;AAOA,SAASC,EAAQ,GAA0B;CACzC,OAAOP,EAAS,IAAIK,EAAOC,CAAM,CAAC,KAAKN,EAAS,IAAID,CAAY,KAAKE;AACvE;AAGA,IAAMO,oBAAiB,IAAI,IAAI;CAAC;CAAa;CAAe;AAAW,CAAC;AAGxE,SAASC,EAAc,GAAgB,GAAgC;CACrE,IAAMC,IAA8B,EAAE,GAAGC,EAAK;CAC9C,KAAK,IAAM,CAACC,GAAWC,MAAY,OAAO,QAAQC,CAAK,GAAG;EAMxD,IADIN,EAAe,IAAII,CAAS,KAC5B,CAACC,GAAS;EAEd,IAAME,IAAQ,OAAO,QAAQF,CAAO,CAAC,CAAC,QAAQ,CAACG,GAAKC,OAAW;GAC7D,IAAMC,IAAQD,KAAiC,QAAQA,MAAU;GAIjE,OAHIC,KAASC,KACX,QAAQ,KAAK,+BAA+BP,EAAU,GAAGI,EAAI,4BAA4B,GAEpF,CAACE;EACV,CAAC;EACD,EAAIN,KAAa;GAAE,GAAGF,EAAIE;GAAY,GAAG,OAAO,YAAYG,CAAK;EAAE;CACrE;CACA,OAAOL;AACT;AAMA,SAASU,EAAW,GAAsB;CACxC,IAAI;EAEF,OADA,KAAK,oBAAoBC,CAAG,GACrB;CACT,QAAQ;EAEN,OADIF,KAAO,QAAQ,KAAK,oBAAoBE,EAAI,yCAAyC,GAClF;CACT;AACF;AAMA,SAAgBC,EAAU,GAAsB;CAC9C,IAAI,CAACF,EAAWd,CAAM,GAAG;CACzB,IAAMiB,IAAOlB,EAAOC,CAAM;CAS1B,AARIa,KAAS,CAACnB,EAAS,IAAIuB,CAAI,KAC7B,QAAQ,KACN,0CAA0CA,EAAK,wBACzCxB,EAAa,iIACsDwB,EAAK,WAChF,GAEF,EAAc,QAAQjB,GACtB,EAAgB,QAAQC,EAAQD,CAAM;AACxC;AAOA,SAAgBkB,EAAiB,GAAc,GAA2C;CACxF,IAAMR,IAAMX,EAAOkB,CAAI;CAavB,AAZIJ,KAASH,MAAQO,EAAK,YAAY,KACpC,QAAQ,KACN,8BAA8BA,EAAK,yEACJP,EAAI,2CACrC,GAEES,MAAa,KAAA,IACXT,MAAQjB,IAAcC,EAAS,IAAID,GAAcE,CAAE,IAClDD,EAAS,OAAOgB,CAAG,IAExBhB,EAAS,IAAIgB,GAAKP,EAAcT,EAAS,IAAIgB,CAAG,KAAKf,GAAIwB,CAAQ,CAAC,GAEpE,EAAgB,QAAQlB,EAAQL,EAAc,KAAK;AACrD;AAMA,SAAgBwB,IAAoC;CAClD,OAAOtB;AACT;AAMA,SAAgBuB,IAAgC;CAC9C,OAAOzB;AACT;AAQA,SAAgB0B,EAAkB,GAAuD;CAEvF,OAAOC,QAAe;EACpB,IAAMR,IAAMf,EAAO;EACnB,OAAOe,KAAOD,EAAWC,CAAG,IAAIA,IAAMnB,EAAc;CACtD,CAAC;AACH"}
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- @layer vectis.reset{*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;tab-size:4}body{-webkit-font-smoothing:antialiased;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}}@layer vectis.tokens{:root{--vectis-color-white:oklch(100% 0 0);--vectis-color-black:oklch(0% 0 0);--vectis-color-red-50:oklch(97.1% .013 17.38);--vectis-color-red-100:oklch(93.6% .032 17.717);--vectis-color-red-200:oklch(88.5% .062 18.334);--vectis-color-red-300:oklch(80.8% .114 19.571);--vectis-color-red-400:oklch(70.4% .191 22.216);--vectis-color-red-500:oklch(63.7% .237 25.331);--vectis-color-red-600:oklch(57.7% .245 27.325);--vectis-color-red-700:oklch(50.5% .213 27.518);--vectis-color-red-800:oklch(44.4% .177 26.899);--vectis-color-red-900:oklch(39.6% .141 25.723);--vectis-color-red-950:oklch(25.8% .092 26.042);--vectis-color-amber-50:oklch(98.7% .022 95.277);--vectis-color-amber-100:oklch(96.2% .059 95.617);--vectis-color-amber-200:oklch(92.4% .12 95.746);--vectis-color-amber-300:oklch(87.9% .169 91.605);--vectis-color-amber-400:oklch(82.8% .189 84.429);--vectis-color-amber-500:oklch(76.9% .188 70.08);--vectis-color-amber-600:oklch(66.6% .179 58.318);--vectis-color-amber-700:oklch(55.5% .163 48.998);--vectis-color-amber-800:oklch(47.3% .137 46.201);--vectis-color-amber-900:oklch(41.4% .112 45.904);--vectis-color-amber-950:oklch(27.9% .077 45.635);--vectis-color-green-50:oklch(98.2% .018 155.826);--vectis-color-green-100:oklch(96.2% .044 156.743);--vectis-color-green-200:oklch(92.5% .084 155.995);--vectis-color-green-300:oklch(87.1% .15 154.449);--vectis-color-green-400:oklch(79.2% .209 151.711);--vectis-color-green-500:oklch(72.3% .219 149.579);--vectis-color-green-600:oklch(62.7% .194 149.214);--vectis-color-green-700:oklch(52.7% .154 150.069);--vectis-color-green-800:oklch(44.8% .119 151.328);--vectis-color-green-900:oklch(39.3% .095 152.535);--vectis-color-green-950:oklch(26.6% .065 152.934);--vectis-color-indigo-50:oklch(96.2% .018 272.314);--vectis-color-indigo-100:oklch(93% .034 272.788);--vectis-color-indigo-200:oklch(87% .065 274.039);--vectis-color-indigo-300:oklch(78.5% .115 274.713);--vectis-color-indigo-400:oklch(67.3% .182 276.935);--vectis-color-indigo-500:oklch(58.5% .233 277.117);--vectis-color-indigo-600:oklch(51.1% .262 276.966);--vectis-color-indigo-700:oklch(45.7% .24 277.023);--vectis-color-indigo-800:oklch(39.8% .195 277.366);--vectis-color-indigo-900:oklch(35.9% .144 278.697);--vectis-color-indigo-950:oklch(25.7% .09 281.288);--vectis-color-gray-50:oklch(98.5% .002 247.839);--vectis-color-gray-100:oklch(96.7% .003 264.542);--vectis-color-gray-200:oklch(92.8% .006 264.531);--vectis-color-gray-300:oklch(87.2% .01 258.338);--vectis-color-gray-400:oklch(70.7% .022 261.325);--vectis-color-gray-500:oklch(55.1% .027 264.364);--vectis-color-gray-600:oklch(44.6% .03 256.802);--vectis-color-gray-700:oklch(37.3% .034 259.733);--vectis-color-gray-800:oklch(27.8% .033 256.848);--vectis-color-gray-900:oklch(21% .034 264.665);--vectis-color-gray-950:oklch(13% .028 261.692);--vectis-space-1:.25rem;--vectis-space-2:.5rem;--vectis-space-3:.75rem;--vectis-space-4:1rem;--vectis-space-5:1.25rem;--vectis-space-6:1.5rem;--vectis-space-7:2rem;--vectis-space-8:2.5rem;--vectis-space-9:3rem;--vectis-space-10:4rem;--vectis-space-11:5rem;--vectis-space-12:6rem;--vectis-font-family-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--vectis-font-family-display:var(--vectis-font-family-sans);--vectis-font-family-mono:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace;--vectis-font-family-icon:"Material Symbols Rounded";--vectis-font-weight-regular:400;--vectis-font-weight-medium:500;--vectis-font-weight-semibold:600;--vectis-font-weight-bold:700;--vectis-font-size-xs:.75rem;--vectis-font-size-sm:.875rem;--vectis-font-size-md:1rem;--vectis-font-size-lg:1.125rem;--vectis-font-size-xl:1.25rem;--vectis-font-size-2xl:1.5rem;--vectis-font-size-3xl:1.875rem;--vectis-font-size-4xl:2.25rem;--vectis-font-size-5xl:3rem;--vectis-font-leading-none:1;--vectis-font-leading-tight:1.25;--vectis-font-leading-snug:1.4;--vectis-font-leading-normal:1.5;--vectis-font-leading-relaxed:1.65;--vectis-font-tracking-tight:-.015em;--vectis-font-tracking-wide:.05em;--vectis-radius-none:0px;--vectis-radius-xs:.125rem;--vectis-radius-sm:.25rem;--vectis-radius-md:.375rem;--vectis-radius-lg:.5rem;--vectis-radius-xl:.75rem;--vectis-radius-2xl:1rem;--vectis-radius-full:9999px;--vectis-shadow-xs:0 1px 2px 0 oklch(0% 0 0/.05);--vectis-shadow-sm:0 1px 3px 0 oklch(0% 0 0/.1), 0 1px 2px -1px oklch(0% 0 0/.1);--vectis-shadow-md:0 4px 6px -1px oklch(0% 0 0/.1), 0 2px 4px -2px oklch(0% 0 0/.1);--vectis-shadow-lg:0 10px 15px -3px oklch(0% 0 0/.1), 0 4px 6px -4px oklch(0% 0 0/.1);--vectis-shadow-xl:0 20px 25px -5px oklch(0% 0 0/.1), 0 8px 10px -6px oklch(0% 0 0/.1);--vectis-duration-0:0s;--vectis-duration-50:50ms;--vectis-duration-100:.1s;--vectis-duration-150:.15s;--vectis-duration-200:.2s;--vectis-duration-300:.3s;--vectis-duration-400:.4s;--vectis-duration-500:.5s;--vectis-duration-700:.7s;--vectis-duration-1000:1s;--vectis-duration-1500:1.5s;--vectis-duration-2000:2s;--vectis-duration-3000:3s;--vectis-duration-5000:5s;--vectis-ease-default:cubic-bezier(.2, 0, 0, 1);--vectis-ease-in:cubic-bezier(.5, 0, 1, 1);--vectis-ease-out:cubic-bezier(0, 0, .2, 1);--vectis-ease-in-out:cubic-bezier(.4, 0, .2, 1)}:root,[data-theme=light]{color-scheme:light;--vectis-color-surface:var(--vectis-color-white);--vectis-color-surface-muted:var(--vectis-color-gray-100);--vectis-color-surface-raised:var(--vectis-color-white);--vectis-color-surface-overlay:var(--vectis-color-white);--vectis-color-surface-sunken:var(--vectis-color-gray-50);--vectis-color-surface-inverse:var(--vectis-color-gray-900);--vectis-color-surface-skeleton:var(--vectis-color-gray-200);--vectis-color-text-on-inverse:var(--vectis-color-white);--vectis-color-text:var(--vectis-color-gray-900);--vectis-color-text-muted:var(--vectis-color-gray-600);--vectis-color-text-subtle:var(--vectis-color-gray-500);--vectis-color-text-on-accent:var(--vectis-color-white);--vectis-color-text-on-warning:var(--vectis-color-gray-950);--vectis-color-border:var(--vectis-color-gray-200);--vectis-color-border-strong:var(--vectis-color-gray-300);--vectis-color-border-on-fill:oklch(0% 0 0/.12);--vectis-color-accent:var(--vectis-color-indigo-600);--vectis-color-accent-hover:var(--vectis-color-indigo-700);--vectis-color-accent-active:var(--vectis-color-indigo-800);--vectis-color-accent-surface:var(--vectis-color-indigo-50);--vectis-color-accent-border:var(--vectis-color-indigo-200);--vectis-color-accent-text:var(--vectis-color-indigo-700);--vectis-color-danger:var(--vectis-color-red-600);--vectis-color-danger-hover:var(--vectis-color-red-700);--vectis-color-danger-active:var(--vectis-color-red-800);--vectis-color-danger-surface:var(--vectis-color-red-50);--vectis-color-danger-border:var(--vectis-color-red-200);--vectis-color-danger-text:var(--vectis-color-red-700);--vectis-color-success:var(--vectis-color-green-700);--vectis-color-success-hover:var(--vectis-color-green-800);--vectis-color-success-active:var(--vectis-color-green-900);--vectis-color-success-surface:var(--vectis-color-green-50);--vectis-color-success-border:var(--vectis-color-green-200);--vectis-color-success-text:var(--vectis-color-green-800);--vectis-color-warning:var(--vectis-color-amber-600);--vectis-color-warning-hover:var(--vectis-color-amber-700);--vectis-color-warning-active:var(--vectis-color-amber-800);--vectis-color-warning-surface:var(--vectis-color-amber-50);--vectis-color-warning-border:var(--vectis-color-amber-200);--vectis-color-warning-text:var(--vectis-color-amber-900);--vectis-color-backdrop:oklch(0% 0 0/.45);--vectis-color-event-surface:oklch(95% .045 265);--vectis-color-event-border:oklch(85% .08 265);--vectis-color-event-text:oklch(40% .11 265);--vectis-text-family:var(--vectis-font-family-sans);--vectis-text-family-heading:var(--vectis-font-family-display);--vectis-text-family-code:var(--vectis-font-family-mono);--vectis-text-display-size:var(--vectis-font-size-5xl);--vectis-text-display-weight:var(--vectis-font-weight-bold);--vectis-text-display-leading:var(--vectis-font-leading-none);--vectis-text-display-tracking:var(--vectis-font-tracking-tight);--vectis-text-heading-1-size:var(--vectis-font-size-4xl);--vectis-text-heading-1-weight:var(--vectis-font-weight-bold);--vectis-text-heading-1-leading:var(--vectis-font-leading-tight);--vectis-text-heading-1-tracking:var(--vectis-font-tracking-tight);--vectis-text-heading-2-size:var(--vectis-font-size-2xl);--vectis-text-heading-2-weight:var(--vectis-font-weight-semibold);--vectis-text-heading-2-leading:var(--vectis-font-leading-tight);--vectis-text-heading-2-tracking:var(--vectis-font-tracking-tight);--vectis-text-heading-3-size:var(--vectis-font-size-lg);--vectis-text-heading-3-weight:var(--vectis-font-weight-semibold);--vectis-text-heading-3-leading:var(--vectis-font-leading-snug);--vectis-text-heading-4-size:var(--vectis-font-size-md);--vectis-text-heading-4-weight:var(--vectis-font-weight-semibold);--vectis-text-heading-4-leading:var(--vectis-font-leading-snug);--vectis-text-subtitle-size:var(--vectis-font-size-sm);--vectis-text-subtitle-weight:var(--vectis-font-weight-regular);--vectis-text-subtitle-leading:var(--vectis-font-leading-normal);--vectis-text-body-xl-size:var(--vectis-font-size-lg);--vectis-text-body-xl-weight:var(--vectis-font-weight-regular);--vectis-text-body-xl-leading:var(--vectis-font-leading-relaxed);--vectis-text-body-lg-size:var(--vectis-font-size-md);--vectis-text-body-lg-weight:var(--vectis-font-weight-regular);--vectis-text-body-lg-leading:var(--vectis-font-leading-relaxed);--vectis-text-body-md-size:var(--vectis-font-size-sm);--vectis-text-body-md-weight:var(--vectis-font-weight-regular);--vectis-text-body-md-leading:var(--vectis-font-leading-normal);--vectis-text-body-sm-size:var(--vectis-font-size-xs);--vectis-text-body-sm-weight:var(--vectis-font-weight-regular);--vectis-text-body-sm-leading:var(--vectis-font-leading-normal);--vectis-text-label-size:var(--vectis-font-size-sm);--vectis-text-label-weight:var(--vectis-font-weight-medium);--vectis-text-label-leading:var(--vectis-font-leading-snug);--vectis-text-choice-size:var(--vectis-font-size-sm);--vectis-text-choice-weight:var(--vectis-font-weight-regular);--vectis-text-choice-leading:var(--vectis-font-leading-snug);--vectis-text-caption-size:var(--vectis-font-size-xs);--vectis-text-caption-weight:var(--vectis-font-weight-regular);--vectis-text-caption-leading:var(--vectis-font-leading-snug);--vectis-text-overline-size:var(--vectis-font-size-xs);--vectis-text-overline-weight:var(--vectis-font-weight-medium);--vectis-text-overline-leading:var(--vectis-font-leading-snug);--vectis-text-overline-tracking:var(--vectis-font-tracking-wide);--vectis-text-code-size:var(--vectis-font-size-sm);--vectis-text-code-weight:var(--vectis-font-weight-regular);--vectis-text-code-leading:var(--vectis-font-leading-normal);--vectis-text-control-weight:var(--vectis-font-weight-medium);--vectis-text-control-leading:var(--vectis-font-leading-none);--vectis-radius-interactive:var(--vectis-radius-md);--vectis-radius-surface:var(--vectis-radius-lg);--vectis-radius-overlay:var(--vectis-radius-xl);--vectis-radius-pill:var(--vectis-radius-full);--vectis-radius-chip:var(--vectis-radius-interactive);--vectis-duration-fast:var(--vectis-duration-150);--vectis-duration-base:var(--vectis-duration-200);--vectis-duration-slow:var(--vectis-duration-300);--vectis-focus-ring-color:var(--vectis-color-indigo-500);--vectis-focus-ring-width:2px;--vectis-focus-ring-offset:2px;--vectis-control-height-xs:1.5rem;--vectis-control-height-sm:2rem;--vectis-control-height-md:2.5rem;--vectis-control-height-lg:3rem;--vectis-control-height-xl:3.5rem;--vectis-control-border-width:2px;--vectis-control-size-check:1.25rem;--vectis-control-size-check-mark:.875rem;--vectis-control-size-check-dot:.5rem;--vectis-control-size-switch-w:2.5rem;--vectis-control-size-switch-h:1.25rem;--vectis-control-size-switch-pad:.125rem;--vectis-control-action-size-sm:1.25rem;--vectis-control-action-size-md:1.5rem;--vectis-control-action-size-lg:1.75rem;--vectis-control-size-slider-track:.375rem;--vectis-control-size-slider-thumb:1.25rem;--vectis-control-size-slider-length:10rem;--vectis-control-size-slider-field:5rem;--vectis-control-size-carousel-block:24rem;--vectis-control-size-carousel-indicator:.625rem;--vectis-control-size-carousel-indicator-active:1.25rem;--vectis-control-size-combobox-list-max-block:18rem;--vectis-control-size-select-list-max-block:18rem;--vectis-control-size-menu-min:11rem;--vectis-control-size-menu-max:20rem;--vectis-control-size-progress-linear-thickness:.25rem;--vectis-control-size-progress-linear-length:10rem;--vectis-control-size-meter-thickness-sm:.25rem;--vectis-control-size-meter-thickness-md:.5rem;--vectis-control-size-meter-thickness-lg:.75rem;--vectis-control-size-meter-segment-gap:.125rem;--vectis-control-size-progress-circular-diameter:3rem;--vectis-control-size-progress-circular-thickness:.25rem;--vectis-control-size-skeleton-surface:6rem;--vectis-control-size-resizable-hit:.75rem;--vectis-control-size-resizable-grip-length:1.5rem;--vectis-control-size-resizable-grip-thickness:.5rem;--vectis-control-size-toast-width:22rem;--vectis-control-size-tooltip-max:18rem;--vectis-control-size-hover-card-max:20rem;--vectis-control-size-dialog-width:25rem;--vectis-control-size-command-palette-width:40rem;--vectis-control-size-command-palette-list-max-block:20rem;--vectis-control-size-command-palette-offset:6rem;--vectis-control-size-stepper-indicator:2rem;--vectis-control-size-stepper-connector-min:1.5rem;--vectis-control-size-timeline-dot-sm:.5rem;--vectis-control-size-timeline-dot-md:.625rem;--vectis-control-size-timeline-icon-sm:1.5rem;--vectis-control-size-timeline-icon-md:2rem;--vectis-control-size-timeline-item-min:12rem;--vectis-control-size-rating-sm:1.25rem;--vectis-control-size-rating-md:1.5rem;--vectis-control-size-rating-lg:2rem;--vectis-control-size-drawer-sm:20rem;--vectis-control-size-drawer-md:25rem;--vectis-control-size-drawer-lg:35rem;--vectis-control-size-snackbar-min:18rem;--vectis-control-size-snackbar-max:36rem;--vectis-control-size-card-media:12rem;--vectis-control-size-card-body-min:16rem;--vectis-control-size-empty-state-media-sm:2.5rem;--vectis-control-size-empty-state-media-md:3rem;--vectis-control-size-empty-state-media-lg:4rem;--vectis-control-size-empty-state-text-max:28rem;--vectis-control-size-field-label:10rem;--vectis-control-size-field-control-min:16rem;--vectis-control-size-badge-h:1.25rem;--vectis-control-size-badge-dot:.625rem;--vectis-control-size-badge-ring:2px;--vectis-control-size-avatar-ring:2px;--vectis-control-size-color-picker-width:16rem;--vectis-control-size-color-picker-area:10rem;--vectis-control-size-color-picker-track:.75rem;--vectis-control-size-color-picker-thumb:1.25rem;--vectis-control-size-color-picker-preview:2rem;--vectis-control-size-color-picker-format:6rem;--vectis-control-size-color-picker-swatch:1.5rem;--vectis-control-size-color-picker-checker:.5rem;--vectis-control-size-date-picker-cell:2.5rem;--vectis-control-size-date-picker-day:var(--vectis-control-height-md);--vectis-control-size-date-picker-dot:.25rem;--vectis-control-size-date-picker-nav-min:5.375rem;--vectis-control-size-tab-indicator:2px;--vectis-control-size-table-search:16rem;--vectis-control-size-time-picker-dial:16rem;--vectis-control-size-time-picker-number:3rem;--vectis-control-size-time-picker-center:.5rem;--vectis-control-size-time-picker-hand:2px;--vectis-control-size-time-picker-hand-minor:1rem;--vectis-control-size-file-picker-min-block:10rem;--vectis-control-size-file-picker-icon:2.5rem;--vectis-control-size-file-picker-thumb:2.5rem;--vectis-control-size-calendar-hour:4rem;--vectis-control-size-calendar-gutter:4.5rem;--vectis-control-size-calendar-tick:.375rem;--vectis-control-size-calendar-edge:3rem;--vectis-control-size-calendar-day-min:5rem;--vectis-control-size-calendar-handle:.5rem;--vectis-control-size-calendar-allday-lane:1.5rem;--vectis-control-size-calendar-allday-max:7rem;--vectis-control-size-calendar-now-dot:.625rem;--vectis-control-size-calendar-event-edge:3px;--vectis-control-size-calendar-gap:.125rem;--vectis-control-size-calendar-grip:1rem;--vectis-control-size-calendar-grip-thickness:2px;--vectis-control-size-calendar-year-month:13rem;--vectis-control-size-calendar-month-cell:8.5rem;--vectis-control-size-calendar-year-cell:1.5rem;--vectis-icon-size-sm:1rem;--vectis-icon-size-md:1.25rem;--vectis-icon-size-lg:1.5rem}[data-theme=dark]{color-scheme:dark;--vectis-color-surface:var(--vectis-color-gray-950);--vectis-color-surface-muted:var(--vectis-color-gray-800);--vectis-color-surface-raised:var(--vectis-color-gray-900);--vectis-color-surface-overlay:var(--vectis-color-gray-900);--vectis-color-surface-sunken:oklch(11% .006 260);--vectis-color-surface-inverse:var(--vectis-color-gray-800);--vectis-color-surface-skeleton:var(--vectis-color-gray-800);--vectis-color-text-on-inverse:var(--vectis-color-gray-50);--vectis-color-text:var(--vectis-color-gray-50);--vectis-color-text-muted:var(--vectis-color-gray-300);--vectis-color-text-subtle:var(--vectis-color-gray-400);--vectis-color-text-on-accent:var(--vectis-color-white);--vectis-color-border:var(--vectis-color-gray-800);--vectis-color-border-strong:var(--vectis-color-gray-700);--vectis-color-border-on-fill:oklch(100% 0 0/.15);--vectis-color-accent:var(--vectis-color-indigo-500);--vectis-color-accent-hover:var(--vectis-color-indigo-400);--vectis-color-accent-active:var(--vectis-color-indigo-300);--vectis-color-accent-surface:var(--vectis-color-indigo-950);--vectis-color-accent-border:var(--vectis-color-indigo-900);--vectis-color-accent-text:var(--vectis-color-indigo-300);--vectis-color-danger:var(--vectis-color-red-600);--vectis-color-danger-hover:var(--vectis-color-red-700);--vectis-color-danger-active:var(--vectis-color-red-800);--vectis-color-danger-surface:var(--vectis-color-red-950);--vectis-color-danger-border:var(--vectis-color-red-900);--vectis-color-danger-text:var(--vectis-color-red-300);--vectis-color-success:var(--vectis-color-green-700);--vectis-color-success-hover:var(--vectis-color-green-800);--vectis-color-success-active:var(--vectis-color-green-900);--vectis-color-success-surface:var(--vectis-color-green-950);--vectis-color-success-border:var(--vectis-color-green-900);--vectis-color-success-text:var(--vectis-color-green-300);--vectis-color-warning:var(--vectis-color-amber-500);--vectis-color-warning-hover:var(--vectis-color-amber-400);--vectis-color-warning-active:var(--vectis-color-amber-300);--vectis-color-warning-surface:var(--vectis-color-amber-950);--vectis-color-warning-border:var(--vectis-color-amber-900);--vectis-color-warning-text:var(--vectis-color-amber-300);--vectis-color-backdrop:oklch(0% 0 0/.6);--vectis-color-event-surface:oklch(30% .05 265);--vectis-color-event-border:oklch(42% .08 265);--vectis-color-event-text:oklch(90% .06 265);--vectis-focus-ring-color:var(--vectis-color-indigo-400)}.v-tone[data-tone=accent]{--tone-bg-solid:var(--vectis-color-accent);--tone-bg-solid-hover:var(--vectis-color-accent-hover);--tone-bg-solid-active:var(--vectis-color-accent-active);--tone-text-solid:var(--vectis-color-text-on-accent);--tone-text-tinted:var(--vectis-color-accent-text);--tone-bg-soft:var(--vectis-color-accent-surface);--tone-border-soft:var(--vectis-color-accent-border)}.v-tone[data-tone=danger]{--tone-bg-solid:var(--vectis-color-danger);--tone-bg-solid-hover:var(--vectis-color-danger-hover);--tone-bg-solid-active:var(--vectis-color-danger-active);--tone-text-solid:var(--vectis-color-text-on-accent);--tone-text-tinted:var(--vectis-color-danger-text);--tone-bg-soft:var(--vectis-color-danger-surface);--tone-border-soft:var(--vectis-color-danger-border)}.v-tone[data-tone=success]{--tone-bg-solid:var(--vectis-color-success);--tone-bg-solid-hover:var(--vectis-color-success-hover);--tone-bg-solid-active:var(--vectis-color-success-active);--tone-text-solid:var(--vectis-color-text-on-accent);--tone-text-tinted:var(--vectis-color-success-text);--tone-bg-soft:var(--vectis-color-success-surface);--tone-border-soft:var(--vectis-color-success-border)}.v-tone[data-tone=warning]{--tone-bg-solid:var(--vectis-color-warning);--tone-bg-solid-hover:var(--vectis-color-warning-hover);--tone-bg-solid-active:var(--vectis-color-warning-active);--tone-text-solid:var(--vectis-color-text-on-warning);--tone-text-tinted:var(--vectis-color-warning-text);--tone-bg-soft:var(--vectis-color-warning-surface);--tone-border-soft:var(--vectis-color-warning-border)}.v-tone[data-tone=neutral]{--tone-bg-solid:var(--vectis-color-text);--tone-bg-solid-hover:color-mix(in oklab, var(--vectis-color-text), var(--vectis-color-surface) 8%);--tone-bg-solid-active:color-mix(in oklab, var(--vectis-color-text), var(--vectis-color-surface) 14%);--tone-text-solid:var(--vectis-color-surface);--tone-text-tinted:var(--vectis-color-text);--tone-bg-soft:var(--vectis-color-surface-muted);--tone-border-soft:var(--vectis-color-border-strong)}.v-tone[data-custom]{--tone-bg-solid:var(--custom-color);--tone-text-solid:var(--vectis-color-text-on-accent);--tone-text-tinted:color-mix(in oklab, var(--custom-color), var(--vectis-color-text) 30%);--tone-bg-soft:color-mix(in oklab, var(--custom-color), var(--vectis-color-surface) 85%)}}@layer vectis.components{.v-variant[data-variant=solid]{background:var(--tone-bg-solid);color:var(--tone-text-solid)}.v-variant[data-variant=soft]{background:var(--tone-bg-soft);color:var(--tone-text-tinted)}.v-variant[data-variant=outline]{color:var(--tone-text-tinted);border-color:var(--tone-border-soft);background:0 0}.v-variant[data-variant=ghost]{color:var(--tone-text-tinted);background:0 0}.v-overlay{position:fixed;inset:auto}.v-overlay.v-overlay:not(:popover-open){display:none}.v-floating{margin:var(--vectis-space-2);position-try-fallbacks:flip-block, flip-inline}.v-floating[data-placement$=-start]{margin-inline-start:0}.v-floating[data-placement$=-end]{margin-inline-end:0}.v-floating[data-placement=bottom]{position-area:block-end;justify-self:anchor-center}.v-floating[data-placement=bottom-start]{position-area:block-end span-inline-end}.v-floating[data-placement=bottom-end]{position-area:block-end span-inline-start}.v-floating[data-placement=top]{position-area:block-start;justify-self:anchor-center}.v-floating[data-placement=top-start]{position-area:block-start span-inline-end}.v-floating[data-placement=top-end]{position-area:block-start span-inline-start}.v-floating[data-placement=left]{position-area:inline-start;align-self:anchor-center}.v-floating[data-placement=right]{position-area:inline-end;align-self:anchor-center}.v-floating[data-placement=right-start]{position-area:inline-end span-block-end}.v-floating[data-placement=right-end]{position-area:inline-end span-block-start}.v-floating[data-placement=left-start]{position-area:inline-start span-block-end}.v-floating[data-placement=left-end]{position-area:inline-start span-block-start}.v-floating[data-placement^=right-],.v-floating[data-placement^=left-]{margin-inline:var(--vectis-space-2)}.v-floating:is([data-placement=right-start],[data-placement=left-start]){margin-block-start:0}.v-floating:is([data-placement=right-end],[data-placement=left-end]){margin-block-end:0}.v-floating{opacity:0;transition:opacity var(--vectis-duration-fast) var(--vectis-ease-default), transform var(--vectis-duration-fast) var(--vectis-ease-default), overlay var(--vectis-duration-fast) allow-discrete, display var(--vectis-duration-fast) allow-discrete;transform:scale(.97)}.v-floating:popover-open{opacity:1;transform:none}@starting-style{.v-floating:popover-open{opacity:0;transform:scale(.97)}}@media (prefers-reduced-motion:reduce){.v-floating{transition:none}}.v-panel{gap:var(--vectis-space-1);padding:var(--vectis-space-1);background:var(--vectis-color-surface-overlay);color:var(--vectis-color-text);border:1px solid var(--vectis-color-border);border-radius:var(--vectis-radius-surface);box-shadow:var(--vectis-shadow-lg);font-family:var(--vectis-text-family);flex-direction:column;display:flex}.v-banner{--banner-line:calc(var(--vectis-text-body-md-size) * var(--vectis-text-body-md-leading));gap:var(--vectis-space-3);border-radius:var(--vectis-radius-overlay);box-shadow:var(--vectis-shadow-lg);font-family:var(--vectis-text-family);font-size:var(--vectis-text-body-md-size);line-height:var(--vectis-text-body-md-leading);transition:opacity var(--vectis-duration-base) var(--vectis-ease-default), translate var(--vectis-duration-base) var(--vectis-ease-default);display:flex}@starting-style{.v-banner{opacity:0;translate:0 var(--banner-enter-y,0)}}.v-banner-text{overflow-wrap:anywhere;flex:1;min-inline-size:0}.v-banner-control{--banner-control-height:var(--vectis-control-height-sm);margin-block:calc((var(--banner-line) - var(--banner-control-height)) / 2);margin-inline-end:calc(-1 * var(--vectis-space-2))}.v-banner .v-banner-control[data-tone]{--tone-text-tinted:currentcolor;--tone-bg-soft:color-mix(in oklab, currentcolor, transparent 85%)}@media (prefers-reduced-motion:reduce){.v-banner{transition:none}}.v-control{--control-height:var(--control-height-base)}.v-control[data-compact]{--control-height:calc(var(--control-height-base) - var(--vectis-space-1))}.v-control[data-size=xs]{--control-height-base:var(--vectis-control-height-xs);--control-font-size:var(--vectis-font-size-xs);--control-padding-inline:var(--vectis-space-2);--control-gap:var(--vectis-space-1);--control-action-size:var(--vectis-control-action-size-sm);--vectis-icon-size:var(--vectis-icon-size-sm);--vectis-icon-opsz:20}.v-control[data-size=sm]{--control-height-base:var(--vectis-control-height-sm);--control-font-size:var(--vectis-font-size-sm);--control-padding-inline:var(--vectis-space-3);--control-padding-inline-field:var(--vectis-space-2);--control-gap:var(--vectis-space-2);--control-action-size:var(--vectis-control-action-size-md);--vectis-icon-size:var(--vectis-icon-size-md);--vectis-icon-opsz:20}.v-control[data-size=md]{--control-height-base:var(--vectis-control-height-md);--control-font-size:var(--vectis-font-size-sm);--control-padding-inline:var(--vectis-space-4);--control-padding-inline-field:var(--vectis-space-3);--control-gap:var(--vectis-space-2);--control-action-size:var(--vectis-control-action-size-md);--vectis-icon-size:var(--vectis-icon-size-md);--vectis-icon-opsz:20}.v-control[data-size=lg]{--control-height-base:var(--vectis-control-height-lg);--control-font-size:var(--vectis-font-size-md);--control-padding-inline:var(--vectis-space-5);--control-padding-inline-field:var(--vectis-space-4);--control-gap:var(--vectis-space-3);--control-action-size:var(--vectis-control-action-size-lg);--vectis-icon-size:var(--vectis-icon-size-lg);--vectis-icon-opsz:24}.v-control[data-size=xl]{--control-height-base:var(--vectis-control-height-xl);--control-font-size:var(--vectis-font-size-md);--control-padding-inline:var(--vectis-space-6);--control-gap:var(--vectis-space-3);--vectis-icon-size:var(--vectis-icon-size-lg);--vectis-icon-opsz:24}.v-field-action{inline-size:var(--control-action-size);block-size:var(--control-action-size);margin-inline:calc((var(--vectis-icon-size) - var(--control-action-size)) / 2);border-radius:var(--vectis-radius-interactive);color:var(--vectis-color-text-muted);cursor:pointer;transition:color var(--vectis-duration-fast) var(--vectis-ease-default);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.v-field-action:hover:not(:disabled){color:var(--vectis-color-text)}.v-field-action:focus-visible{outline:var(--vectis-focus-ring-width) solid var(--vectis-focus-ring-color);outline-offset:calc(-1 * var(--vectis-focus-ring-width))}.v-field-meta{align-items:baseline;gap:var(--vectis-space-2);display:flex}.v-field-counter{font-size:var(--vectis-text-caption-size);color:var(--vectis-color-text-muted);font-variant-numeric:tabular-nums}.v-field-meta>.v-field-counter{margin-inline-start:auto}.v-field-counter[data-over]{color:var(--vectis-color-danger-text)}.v-field-error{color:var(--vectis-color-danger-text);font-family:var(--vectis-text-family);font-size:var(--vectis-text-caption-size);font-weight:var(--vectis-text-caption-weight);line-height:var(--vectis-text-caption-leading)}.v-field-required{color:var(--vectis-color-danger-text);margin-inline-start:var(--vectis-space-1)}@media (prefers-reduced-motion:reduce){.v-field-action{transition:none}}.v-choice{font-family:var(--vectis-text-family);font-size:var(--vectis-text-choice-size);font-weight:var(--vectis-text-choice-weight);line-height:var(--vectis-text-choice-leading);color:var(--vectis-color-text);grid-template-columns:auto auto;justify-content:start;align-items:center;display:inline-grid;position:relative}.v-choice-row{grid-column:1/-1;grid-template-columns:subgrid;cursor:pointer;align-items:center;display:grid}.v-choice-label,.v-choice>:is(.v-field-hint,.v-field-error){margin-inline-start:var(--vectis-space-2)}.v-choice>:is(.v-field-hint,.v-field-error){grid-column:2}.v-choice[data-label-position=start] .v-choice-label{order:-1}.v-choice[data-label-position=start] .v-choice-label,.v-choice[data-label-position=start]>:is(.v-field-hint,.v-field-error){margin-inline:0 var(--vectis-space-2)}.v-choice[data-label-position=start]>:is(.v-field-hint,.v-field-error){grid-column:1}.v-choice[data-spread]{justify-content:space-between;display:grid}.v-choice-row .v-hidden-input:focus-visible+*{outline:var(--vectis-focus-ring-width) solid var(--vectis-focus-ring-color);outline-offset:var(--vectis-focus-ring-offset)}.v-choice[data-readonly] .v-choice-row{cursor:default}.v-choice:has(.v-hidden-input:disabled){color:var(--vectis-color-text-subtle)}.v-choice:has(.v-hidden-input:disabled) .v-choice-row{cursor:not-allowed}.v-choice:has(.v-hidden-input:disabled)>.v-field-hint{--typography-color:var(--vectis-color-text-subtle)}.v-disclosure{interpolate-size:allow-keywords}.v-disclosure::details-content{block-size:0;transition:block-size var(--vectis-duration-base) var(--vectis-ease-default), content-visibility var(--vectis-duration-base) allow-discrete;overflow:clip}.v-disclosure[open]::details-content{block-size:auto}.v-disclosure>summary::-webkit-details-marker{display:none}.v-disclosure-chevron{color:var(--vectis-color-text-muted);transition:rotate var(--vectis-duration-base) var(--vectis-ease-default);flex:none}.v-disclosure[open]:not([data-swap])>summary>.v-disclosure-chevron{rotate:180deg}.v-disclosure[data-swap][open]>summary>.v-disclosure-chevron:not(.v-disclosure-chevron-open),.v-disclosure[data-swap]:not([open])>summary>.v-disclosure-chevron-open{display:none}.v-disclosure>summary[data-disabled]>.v-disclosure-chevron{color:inherit}@media (prefers-reduced-motion:reduce){.v-disclosure::details-content,.v-disclosure-chevron{transition:none}}}@layer vectis.utilities{.v-hidden-input{opacity:0;pointer-events:none;block-size:1px;inline-size:1px;margin:0;position:absolute}.v-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}
1
+ @layer vectis.reset{*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;tab-size:4}body{-webkit-font-smoothing:antialiased;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}}@layer vectis.tokens{:root{--vectis-color-white:oklch(100% 0 0);--vectis-color-black:oklch(0% 0 0);--vectis-color-red-50:oklch(97.1% .013 17.38);--vectis-color-red-100:oklch(93.6% .032 17.717);--vectis-color-red-200:oklch(88.5% .062 18.334);--vectis-color-red-300:oklch(80.8% .114 19.571);--vectis-color-red-400:oklch(70.4% .191 22.216);--vectis-color-red-500:oklch(63.7% .237 25.331);--vectis-color-red-600:oklch(57.7% .245 27.325);--vectis-color-red-700:oklch(50.5% .213 27.518);--vectis-color-red-800:oklch(44.4% .177 26.899);--vectis-color-red-900:oklch(39.6% .141 25.723);--vectis-color-red-950:oklch(25.8% .092 26.042);--vectis-color-amber-50:oklch(98.7% .022 95.277);--vectis-color-amber-100:oklch(96.2% .059 95.617);--vectis-color-amber-200:oklch(92.4% .12 95.746);--vectis-color-amber-300:oklch(87.9% .169 91.605);--vectis-color-amber-400:oklch(82.8% .189 84.429);--vectis-color-amber-500:oklch(76.9% .188 70.08);--vectis-color-amber-600:oklch(66.6% .179 58.318);--vectis-color-amber-700:oklch(55.5% .163 48.998);--vectis-color-amber-800:oklch(47.3% .137 46.201);--vectis-color-amber-900:oklch(41.4% .112 45.904);--vectis-color-amber-950:oklch(27.9% .077 45.635);--vectis-color-green-50:oklch(98.2% .018 155.826);--vectis-color-green-100:oklch(96.2% .044 156.743);--vectis-color-green-200:oklch(92.5% .084 155.995);--vectis-color-green-300:oklch(87.1% .15 154.449);--vectis-color-green-400:oklch(79.2% .209 151.711);--vectis-color-green-500:oklch(72.3% .219 149.579);--vectis-color-green-600:oklch(62.7% .194 149.214);--vectis-color-green-700:oklch(52.7% .154 150.069);--vectis-color-green-800:oklch(44.8% .119 151.328);--vectis-color-green-900:oklch(39.3% .095 152.535);--vectis-color-green-950:oklch(26.6% .065 152.934);--vectis-color-indigo-50:oklch(96.2% .018 272.314);--vectis-color-indigo-100:oklch(93% .034 272.788);--vectis-color-indigo-200:oklch(87% .065 274.039);--vectis-color-indigo-300:oklch(78.5% .115 274.713);--vectis-color-indigo-400:oklch(67.3% .182 276.935);--vectis-color-indigo-500:oklch(58.5% .233 277.117);--vectis-color-indigo-600:oklch(51.1% .262 276.966);--vectis-color-indigo-700:oklch(45.7% .24 277.023);--vectis-color-indigo-800:oklch(39.8% .195 277.366);--vectis-color-indigo-900:oklch(35.9% .144 278.697);--vectis-color-indigo-950:oklch(25.7% .09 281.288);--vectis-color-gray-50:oklch(98.5% .002 247.839);--vectis-color-gray-100:oklch(96.7% .003 264.542);--vectis-color-gray-200:oklch(92.8% .006 264.531);--vectis-color-gray-300:oklch(87.2% .01 258.338);--vectis-color-gray-400:oklch(70.7% .022 261.325);--vectis-color-gray-500:oklch(55.1% .027 264.364);--vectis-color-gray-600:oklch(44.6% .03 256.802);--vectis-color-gray-700:oklch(37.3% .034 259.733);--vectis-color-gray-800:oklch(27.8% .033 256.848);--vectis-color-gray-900:oklch(21% .034 264.665);--vectis-color-gray-950:oklch(13% .028 261.692);--vectis-space-1:.25rem;--vectis-space-2:.5rem;--vectis-space-3:.75rem;--vectis-space-4:1rem;--vectis-space-5:1.25rem;--vectis-space-6:1.5rem;--vectis-space-7:2rem;--vectis-space-8:2.5rem;--vectis-space-9:3rem;--vectis-space-10:4rem;--vectis-space-11:5rem;--vectis-space-12:6rem;--vectis-font-family-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--vectis-font-family-display:var(--vectis-font-family-sans);--vectis-font-family-mono:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace;--vectis-font-family-icon:"Material Symbols Rounded";--vectis-font-weight-regular:400;--vectis-font-weight-medium:500;--vectis-font-weight-semibold:600;--vectis-font-weight-bold:700;--vectis-font-size-xs:.75rem;--vectis-font-size-sm:.875rem;--vectis-font-size-md:1rem;--vectis-font-size-lg:1.125rem;--vectis-font-size-xl:1.25rem;--vectis-font-size-2xl:1.5rem;--vectis-font-size-3xl:1.875rem;--vectis-font-size-4xl:2.25rem;--vectis-font-size-5xl:3rem;--vectis-font-leading-none:1;--vectis-font-leading-tight:1.25;--vectis-font-leading-snug:1.4;--vectis-font-leading-normal:1.5;--vectis-font-leading-relaxed:1.65;--vectis-font-tracking-tight:-.015em;--vectis-font-tracking-wide:.05em;--vectis-radius-none:0px;--vectis-radius-xs:.125rem;--vectis-radius-sm:.25rem;--vectis-radius-md:.375rem;--vectis-radius-lg:.5rem;--vectis-radius-xl:.75rem;--vectis-radius-2xl:1rem;--vectis-radius-full:9999px;--vectis-shadow-xs:0 1px 2px 0 oklch(0% 0 0/.05);--vectis-shadow-sm:0 1px 3px 0 oklch(0% 0 0/.1), 0 1px 2px -1px oklch(0% 0 0/.1);--vectis-shadow-md:0 4px 6px -1px oklch(0% 0 0/.1), 0 2px 4px -2px oklch(0% 0 0/.1);--vectis-shadow-lg:0 10px 15px -3px oklch(0% 0 0/.1), 0 4px 6px -4px oklch(0% 0 0/.1);--vectis-shadow-xl:0 20px 25px -5px oklch(0% 0 0/.1), 0 8px 10px -6px oklch(0% 0 0/.1);--vectis-duration-0:0s;--vectis-duration-50:50ms;--vectis-duration-100:.1s;--vectis-duration-150:.15s;--vectis-duration-200:.2s;--vectis-duration-300:.3s;--vectis-duration-400:.4s;--vectis-duration-500:.5s;--vectis-duration-700:.7s;--vectis-duration-1000:1s;--vectis-duration-1500:1.5s;--vectis-duration-2000:2s;--vectis-duration-3000:3s;--vectis-duration-5000:5s;--vectis-ease-default:cubic-bezier(.2, 0, 0, 1);--vectis-ease-in:cubic-bezier(.5, 0, 1, 1);--vectis-ease-out:cubic-bezier(0, 0, .2, 1);--vectis-ease-in-out:cubic-bezier(.4, 0, .2, 1)}:root,[data-theme=light]{color-scheme:light;--vectis-color-surface:var(--vectis-color-white);--vectis-color-surface-muted:var(--vectis-color-gray-100);--vectis-color-surface-raised:var(--vectis-color-white);--vectis-color-surface-overlay:var(--vectis-color-white);--vectis-color-surface-sunken:var(--vectis-color-gray-50);--vectis-color-surface-inverse:var(--vectis-color-gray-900);--vectis-color-surface-skeleton:var(--vectis-color-gray-200);--vectis-color-text-on-inverse:var(--vectis-color-white);--vectis-color-text:var(--vectis-color-gray-900);--vectis-color-text-muted:var(--vectis-color-gray-600);--vectis-color-text-subtle:var(--vectis-color-gray-500);--vectis-color-text-on-accent:var(--vectis-color-white);--vectis-color-text-on-warning:var(--vectis-color-gray-950);--vectis-color-border:var(--vectis-color-gray-200);--vectis-color-border-strong:var(--vectis-color-gray-300);--vectis-color-border-on-fill:oklch(0% 0 0/.12);--vectis-color-accent:var(--vectis-color-indigo-600);--vectis-color-accent-hover:var(--vectis-color-indigo-700);--vectis-color-accent-active:var(--vectis-color-indigo-800);--vectis-color-accent-surface:var(--vectis-color-indigo-50);--vectis-color-accent-border:var(--vectis-color-indigo-200);--vectis-color-accent-text:var(--vectis-color-indigo-700);--vectis-color-danger:var(--vectis-color-red-600);--vectis-color-danger-hover:var(--vectis-color-red-700);--vectis-color-danger-active:var(--vectis-color-red-800);--vectis-color-danger-surface:var(--vectis-color-red-50);--vectis-color-danger-border:var(--vectis-color-red-200);--vectis-color-danger-text:var(--vectis-color-red-700);--vectis-color-success:var(--vectis-color-green-700);--vectis-color-success-hover:var(--vectis-color-green-800);--vectis-color-success-active:var(--vectis-color-green-900);--vectis-color-success-surface:var(--vectis-color-green-50);--vectis-color-success-border:var(--vectis-color-green-200);--vectis-color-success-text:var(--vectis-color-green-800);--vectis-color-warning:var(--vectis-color-amber-600);--vectis-color-warning-hover:var(--vectis-color-amber-700);--vectis-color-warning-active:var(--vectis-color-amber-800);--vectis-color-warning-surface:var(--vectis-color-amber-50);--vectis-color-warning-border:var(--vectis-color-amber-200);--vectis-color-warning-text:var(--vectis-color-amber-900);--vectis-color-backdrop:oklch(0% 0 0/.45);--vectis-color-event-surface:oklch(95% .045 265);--vectis-color-event-border:oklch(85% .08 265);--vectis-color-event-text:oklch(40% .11 265);--vectis-text-family:var(--vectis-font-family-sans);--vectis-text-family-heading:var(--vectis-font-family-display);--vectis-text-family-code:var(--vectis-font-family-mono);--vectis-text-display-size:var(--vectis-font-size-5xl);--vectis-text-display-weight:var(--vectis-font-weight-bold);--vectis-text-display-leading:var(--vectis-font-leading-none);--vectis-text-display-tracking:var(--vectis-font-tracking-tight);--vectis-text-heading-1-size:var(--vectis-font-size-4xl);--vectis-text-heading-1-weight:var(--vectis-font-weight-bold);--vectis-text-heading-1-leading:var(--vectis-font-leading-tight);--vectis-text-heading-1-tracking:var(--vectis-font-tracking-tight);--vectis-text-heading-2-size:var(--vectis-font-size-2xl);--vectis-text-heading-2-weight:var(--vectis-font-weight-semibold);--vectis-text-heading-2-leading:var(--vectis-font-leading-tight);--vectis-text-heading-2-tracking:var(--vectis-font-tracking-tight);--vectis-text-heading-3-size:var(--vectis-font-size-lg);--vectis-text-heading-3-weight:var(--vectis-font-weight-semibold);--vectis-text-heading-3-leading:var(--vectis-font-leading-snug);--vectis-text-heading-4-size:var(--vectis-font-size-md);--vectis-text-heading-4-weight:var(--vectis-font-weight-semibold);--vectis-text-heading-4-leading:var(--vectis-font-leading-snug);--vectis-text-subtitle-size:var(--vectis-font-size-sm);--vectis-text-subtitle-weight:var(--vectis-font-weight-regular);--vectis-text-subtitle-leading:var(--vectis-font-leading-normal);--vectis-text-body-xl-size:var(--vectis-font-size-lg);--vectis-text-body-xl-weight:var(--vectis-font-weight-regular);--vectis-text-body-xl-leading:var(--vectis-font-leading-relaxed);--vectis-text-body-lg-size:var(--vectis-font-size-md);--vectis-text-body-lg-weight:var(--vectis-font-weight-regular);--vectis-text-body-lg-leading:var(--vectis-font-leading-relaxed);--vectis-text-body-md-size:var(--vectis-font-size-sm);--vectis-text-body-md-weight:var(--vectis-font-weight-regular);--vectis-text-body-md-leading:var(--vectis-font-leading-normal);--vectis-text-body-sm-size:var(--vectis-font-size-xs);--vectis-text-body-sm-weight:var(--vectis-font-weight-regular);--vectis-text-body-sm-leading:var(--vectis-font-leading-normal);--vectis-text-label-size:var(--vectis-font-size-sm);--vectis-text-label-weight:var(--vectis-font-weight-medium);--vectis-text-label-leading:var(--vectis-font-leading-snug);--vectis-text-choice-size:var(--vectis-font-size-sm);--vectis-text-choice-weight:var(--vectis-font-weight-regular);--vectis-text-choice-leading:var(--vectis-font-leading-snug);--vectis-text-caption-size:var(--vectis-font-size-xs);--vectis-text-caption-weight:var(--vectis-font-weight-regular);--vectis-text-caption-leading:var(--vectis-font-leading-snug);--vectis-text-overline-size:var(--vectis-font-size-xs);--vectis-text-overline-weight:var(--vectis-font-weight-medium);--vectis-text-overline-leading:var(--vectis-font-leading-snug);--vectis-text-overline-tracking:var(--vectis-font-tracking-wide);--vectis-text-code-size:var(--vectis-font-size-sm);--vectis-text-code-weight:var(--vectis-font-weight-regular);--vectis-text-code-leading:var(--vectis-font-leading-normal);--vectis-text-control-weight:var(--vectis-font-weight-medium);--vectis-text-control-leading:var(--vectis-font-leading-none);--vectis-radius-interactive:var(--vectis-radius-md);--vectis-radius-surface:var(--vectis-radius-lg);--vectis-radius-overlay:var(--vectis-radius-xl);--vectis-radius-pill:var(--vectis-radius-full);--vectis-radius-chip:var(--vectis-radius-interactive);--vectis-duration-fast:var(--vectis-duration-150);--vectis-duration-base:var(--vectis-duration-200);--vectis-duration-slow:var(--vectis-duration-300);--vectis-focus-ring-color:var(--vectis-color-indigo-500);--vectis-focus-ring-width:2px;--vectis-focus-ring-offset:2px;--vectis-density-delta:0px;--vectis-control-height-xs:1.5rem;--vectis-control-height-sm:2rem;--vectis-control-height-md:2.5rem;--vectis-control-height-lg:3rem;--vectis-control-height-xl:3.5rem;--vectis-control-border-width:2px;--vectis-control-size-check:1.25rem;--vectis-control-size-check-mark:.875rem;--vectis-control-size-check-dot:.5rem;--vectis-control-size-switch-w:2.5rem;--vectis-control-size-switch-h:1.25rem;--vectis-control-size-switch-pad:.125rem;--vectis-control-action-size-sm:1.25rem;--vectis-control-action-size-md:1.5rem;--vectis-control-action-size-lg:1.75rem;--vectis-control-size-slider-track:.375rem;--vectis-control-size-slider-thumb:1.25rem;--vectis-control-size-slider-length:10rem;--vectis-control-size-slider-field:5rem;--vectis-control-size-carousel-block:24rem;--vectis-control-size-carousel-indicator:.625rem;--vectis-control-size-carousel-indicator-active:1.25rem;--vectis-control-size-combobox-list-max-block:18rem;--vectis-control-size-select-list-max-block:18rem;--vectis-control-size-menu-min:11rem;--vectis-control-size-menu-max:20rem;--vectis-control-size-progress-linear-thickness:.25rem;--vectis-control-size-progress-linear-length:10rem;--vectis-control-size-meter-thickness-sm:.25rem;--vectis-control-size-meter-thickness-md:.5rem;--vectis-control-size-meter-thickness-lg:.75rem;--vectis-control-size-meter-segment-gap:.125rem;--vectis-control-size-progress-circular-diameter:3rem;--vectis-control-size-progress-circular-thickness:.25rem;--vectis-control-size-skeleton-surface:6rem;--vectis-control-size-resizable-hit:.75rem;--vectis-control-size-resizable-grip-length:1.5rem;--vectis-control-size-resizable-grip-thickness:.5rem;--vectis-control-size-toast-width:22rem;--vectis-control-size-tooltip-max:18rem;--vectis-control-size-hover-card-max:20rem;--vectis-control-size-dialog-width:25rem;--vectis-control-size-command-palette-width:40rem;--vectis-control-size-command-palette-list-max-block:20rem;--vectis-control-size-command-palette-offset:6rem;--vectis-control-size-stepper-indicator:2rem;--vectis-control-size-stepper-connector-min:1.5rem;--vectis-control-size-timeline-dot-sm:.5rem;--vectis-control-size-timeline-dot-md:.625rem;--vectis-control-size-timeline-icon-sm:1.5rem;--vectis-control-size-timeline-icon-md:2rem;--vectis-control-size-timeline-item-min:12rem;--vectis-control-size-rating-sm:1.25rem;--vectis-control-size-rating-md:1.5rem;--vectis-control-size-rating-lg:2rem;--vectis-control-size-drawer-sm:20rem;--vectis-control-size-drawer-md:25rem;--vectis-control-size-drawer-lg:35rem;--vectis-control-size-snackbar-min:18rem;--vectis-control-size-snackbar-max:36rem;--vectis-control-size-card-media:12rem;--vectis-control-size-card-body-min:16rem;--vectis-control-size-empty-state-media-sm:2.5rem;--vectis-control-size-empty-state-media-md:3rem;--vectis-control-size-empty-state-media-lg:4rem;--vectis-control-size-empty-state-text-max:28rem;--vectis-control-size-field-label:10rem;--vectis-control-size-field-control-min:16rem;--vectis-control-size-badge-h:1.25rem;--vectis-control-size-badge-dot:.625rem;--vectis-control-size-badge-ring:2px;--vectis-control-size-avatar-ring:2px;--vectis-control-size-color-picker-width:16rem;--vectis-control-size-color-picker-area:10rem;--vectis-control-size-color-picker-track:.75rem;--vectis-control-size-color-picker-thumb:1.25rem;--vectis-control-size-color-picker-preview:2rem;--vectis-control-size-color-picker-format:6rem;--vectis-control-size-color-picker-swatch:1.5rem;--vectis-control-size-color-picker-checker:.5rem;--vectis-control-size-date-picker-cell:2.5rem;--vectis-control-size-date-picker-day:var(--vectis-control-height-md);--vectis-control-size-date-picker-dot:.25rem;--vectis-control-size-date-picker-nav-min:5.375rem;--vectis-control-size-tab-indicator:2px;--vectis-control-size-table-search:16rem;--vectis-control-size-time-picker-dial:16rem;--vectis-control-size-time-picker-number:3rem;--vectis-control-size-time-picker-center:.5rem;--vectis-control-size-time-picker-hand:2px;--vectis-control-size-time-picker-hand-minor:1rem;--vectis-control-size-file-picker-min-block:10rem;--vectis-control-size-file-picker-icon:2.5rem;--vectis-control-size-file-picker-thumb:2.5rem;--vectis-control-size-calendar-hour:4rem;--vectis-control-size-calendar-gutter:4.5rem;--vectis-control-size-calendar-tick:.375rem;--vectis-control-size-calendar-edge:3rem;--vectis-control-size-calendar-day-min:5rem;--vectis-control-size-calendar-handle:.5rem;--vectis-control-size-calendar-allday-lane:1.5rem;--vectis-control-size-calendar-allday-max:7rem;--vectis-control-size-calendar-now-dot:.625rem;--vectis-control-size-calendar-event-edge:3px;--vectis-control-size-calendar-gap:.125rem;--vectis-control-size-calendar-grip:1rem;--vectis-control-size-calendar-grip-thickness:2px;--vectis-control-size-calendar-year-month:13rem;--vectis-control-size-calendar-month-cell:8.5rem;--vectis-control-size-calendar-year-cell:1.5rem;--vectis-icon-size-sm:1rem;--vectis-icon-size-md:1.25rem;--vectis-icon-size-lg:1.5rem}[data-theme=dark]{color-scheme:dark;--vectis-color-surface:var(--vectis-color-gray-950);--vectis-color-surface-muted:var(--vectis-color-gray-800);--vectis-color-surface-raised:var(--vectis-color-gray-900);--vectis-color-surface-overlay:var(--vectis-color-gray-900);--vectis-color-surface-sunken:oklch(11% .006 260);--vectis-color-surface-inverse:var(--vectis-color-gray-800);--vectis-color-surface-skeleton:var(--vectis-color-gray-800);--vectis-color-text-on-inverse:var(--vectis-color-gray-50);--vectis-color-text:var(--vectis-color-gray-50);--vectis-color-text-muted:var(--vectis-color-gray-300);--vectis-color-text-subtle:var(--vectis-color-gray-400);--vectis-color-text-on-accent:var(--vectis-color-white);--vectis-color-border:var(--vectis-color-gray-800);--vectis-color-border-strong:var(--vectis-color-gray-700);--vectis-color-border-on-fill:oklch(100% 0 0/.15);--vectis-color-accent:var(--vectis-color-indigo-500);--vectis-color-accent-hover:var(--vectis-color-indigo-400);--vectis-color-accent-active:var(--vectis-color-indigo-300);--vectis-color-accent-surface:var(--vectis-color-indigo-950);--vectis-color-accent-border:var(--vectis-color-indigo-900);--vectis-color-accent-text:var(--vectis-color-indigo-300);--vectis-color-danger:var(--vectis-color-red-600);--vectis-color-danger-hover:var(--vectis-color-red-700);--vectis-color-danger-active:var(--vectis-color-red-800);--vectis-color-danger-surface:var(--vectis-color-red-950);--vectis-color-danger-border:var(--vectis-color-red-900);--vectis-color-danger-text:var(--vectis-color-red-300);--vectis-color-success:var(--vectis-color-green-700);--vectis-color-success-hover:var(--vectis-color-green-800);--vectis-color-success-active:var(--vectis-color-green-900);--vectis-color-success-surface:var(--vectis-color-green-950);--vectis-color-success-border:var(--vectis-color-green-900);--vectis-color-success-text:var(--vectis-color-green-300);--vectis-color-warning:var(--vectis-color-amber-500);--vectis-color-warning-hover:var(--vectis-color-amber-400);--vectis-color-warning-active:var(--vectis-color-amber-300);--vectis-color-warning-surface:var(--vectis-color-amber-950);--vectis-color-warning-border:var(--vectis-color-amber-900);--vectis-color-warning-text:var(--vectis-color-amber-300);--vectis-color-backdrop:oklch(0% 0 0/.6);--vectis-color-event-surface:oklch(30% .05 265);--vectis-color-event-border:oklch(42% .08 265);--vectis-color-event-text:oklch(90% .06 265);--vectis-focus-ring-color:var(--vectis-color-indigo-400)}.v-tone[data-tone=accent]{--tone-bg-solid:var(--vectis-color-accent);--tone-bg-solid-hover:var(--vectis-color-accent-hover);--tone-bg-solid-active:var(--vectis-color-accent-active);--tone-text-solid:var(--vectis-color-text-on-accent);--tone-text-tinted:var(--vectis-color-accent-text);--tone-bg-soft:var(--vectis-color-accent-surface);--tone-border-soft:var(--vectis-color-accent-border)}.v-tone[data-tone=danger]{--tone-bg-solid:var(--vectis-color-danger);--tone-bg-solid-hover:var(--vectis-color-danger-hover);--tone-bg-solid-active:var(--vectis-color-danger-active);--tone-text-solid:var(--vectis-color-text-on-accent);--tone-text-tinted:var(--vectis-color-danger-text);--tone-bg-soft:var(--vectis-color-danger-surface);--tone-border-soft:var(--vectis-color-danger-border)}.v-tone[data-tone=success]{--tone-bg-solid:var(--vectis-color-success);--tone-bg-solid-hover:var(--vectis-color-success-hover);--tone-bg-solid-active:var(--vectis-color-success-active);--tone-text-solid:var(--vectis-color-text-on-accent);--tone-text-tinted:var(--vectis-color-success-text);--tone-bg-soft:var(--vectis-color-success-surface);--tone-border-soft:var(--vectis-color-success-border)}.v-tone[data-tone=warning]{--tone-bg-solid:var(--vectis-color-warning);--tone-bg-solid-hover:var(--vectis-color-warning-hover);--tone-bg-solid-active:var(--vectis-color-warning-active);--tone-text-solid:var(--vectis-color-text-on-warning);--tone-text-tinted:var(--vectis-color-warning-text);--tone-bg-soft:var(--vectis-color-warning-surface);--tone-border-soft:var(--vectis-color-warning-border)}.v-tone[data-tone=neutral]{--tone-bg-solid:var(--vectis-color-text);--tone-bg-solid-hover:color-mix(in oklab, var(--vectis-color-text), var(--vectis-color-surface) 8%);--tone-bg-solid-active:color-mix(in oklab, var(--vectis-color-text), var(--vectis-color-surface) 14%);--tone-text-solid:var(--vectis-color-surface);--tone-text-tinted:var(--vectis-color-text);--tone-bg-soft:var(--vectis-color-surface-muted);--tone-border-soft:var(--vectis-color-border-strong)}.v-tone[data-custom]{--tone-bg-solid:var(--custom-color);--tone-text-solid:var(--vectis-color-text-on-accent);--tone-text-tinted:color-mix(in oklab, var(--custom-color), var(--vectis-color-text) 30%);--tone-bg-soft:color-mix(in oklab, var(--custom-color), var(--vectis-color-surface) 85%)}}@layer vectis.components{.v-variant[data-variant=solid]{background:var(--tone-bg-solid);color:var(--tone-text-solid)}.v-variant[data-variant=soft]{background:var(--tone-bg-soft);color:var(--tone-text-tinted)}.v-variant[data-variant=outline]{color:var(--tone-text-tinted);border-color:var(--tone-border-soft);background:0 0}.v-variant[data-variant=ghost]{color:var(--tone-text-tinted);background:0 0}.v-overlay{position:fixed;inset:auto}.v-overlay.v-overlay:not(:popover-open){display:none}.v-floating{margin:var(--vectis-space-2);position-try-fallbacks:flip-block, flip-inline}.v-floating[data-placement$=-start]{margin-inline-start:0}.v-floating[data-placement$=-end]{margin-inline-end:0}.v-floating[data-placement=bottom]{position-area:block-end;justify-self:anchor-center}.v-floating[data-placement=bottom-start]{position-area:block-end span-inline-end}.v-floating[data-placement=bottom-end]{position-area:block-end span-inline-start}.v-floating[data-placement=top]{position-area:block-start;justify-self:anchor-center}.v-floating[data-placement=top-start]{position-area:block-start span-inline-end}.v-floating[data-placement=top-end]{position-area:block-start span-inline-start}.v-floating[data-placement=left]{position-area:inline-start;align-self:anchor-center}.v-floating[data-placement=right]{position-area:inline-end;align-self:anchor-center}.v-floating[data-placement=right-start]{position-area:inline-end span-block-end}.v-floating[data-placement=right-end]{position-area:inline-end span-block-start}.v-floating[data-placement=left-start]{position-area:inline-start span-block-end}.v-floating[data-placement=left-end]{position-area:inline-start span-block-start}.v-floating[data-placement^=right-],.v-floating[data-placement^=left-]{margin-inline:var(--vectis-space-2)}.v-floating:is([data-placement=right-start],[data-placement=left-start]){margin-block-start:0}.v-floating:is([data-placement=right-end],[data-placement=left-end]){margin-block-end:0}.v-floating{opacity:0;transition:opacity var(--vectis-duration-fast) var(--vectis-ease-default), transform var(--vectis-duration-fast) var(--vectis-ease-default), overlay var(--vectis-duration-fast) allow-discrete, display var(--vectis-duration-fast) allow-discrete;transform:scale(.97)}.v-floating:popover-open{opacity:1;transform:none}@starting-style{.v-floating:popover-open{opacity:0;transform:scale(.97)}}@media (prefers-reduced-motion:reduce){.v-floating{transition:none}}.v-panel{gap:var(--vectis-space-1);padding:var(--vectis-space-1);background:var(--vectis-color-surface-overlay);color:var(--vectis-color-text);border:1px solid var(--vectis-color-border);border-radius:var(--vectis-radius-surface);box-shadow:var(--vectis-shadow-lg);font-family:var(--vectis-text-family);flex-direction:column;display:flex}.v-banner{--banner-line:calc(var(--vectis-text-body-md-size) * var(--vectis-text-body-md-leading));gap:var(--vectis-space-3);border-radius:var(--vectis-radius-overlay);box-shadow:var(--vectis-shadow-lg);font-family:var(--vectis-text-family);font-size:var(--vectis-text-body-md-size);line-height:var(--vectis-text-body-md-leading);transition:opacity var(--vectis-duration-base) var(--vectis-ease-default), translate var(--vectis-duration-base) var(--vectis-ease-default);display:flex}@starting-style{.v-banner{opacity:0;translate:0 var(--banner-enter-y,0)}}.v-banner-text{overflow-wrap:anywhere;flex:1;min-inline-size:0}.v-banner-control{--banner-control-height:var(--vectis-control-height-sm);margin-block:calc((var(--banner-line) - var(--banner-control-height)) / 2);margin-inline-end:calc(-1 * var(--vectis-space-2))}.v-banner .v-banner-control[data-tone]{--tone-text-tinted:currentcolor;--tone-bg-soft:color-mix(in oklab, currentcolor, transparent 85%)}@media (prefers-reduced-motion:reduce){.v-banner{transition:none}}.v-control{--control-height:calc(var(--control-height-base) - var(--vectis-density-delta))}.v-control[data-size=xs]{--control-height-base:var(--vectis-control-height-xs);--control-font-size:var(--vectis-font-size-xs);--control-padding-inline:var(--vectis-space-2);--control-gap:var(--vectis-space-1);--control-action-size:var(--vectis-control-action-size-sm);--vectis-icon-size:var(--vectis-icon-size-sm);--vectis-icon-opsz:20}.v-control[data-size=sm]{--control-height-base:var(--vectis-control-height-sm);--control-font-size:var(--vectis-font-size-sm);--control-padding-inline:var(--vectis-space-3);--control-padding-inline-field:var(--vectis-space-2);--control-gap:var(--vectis-space-2);--control-action-size:var(--vectis-control-action-size-md);--vectis-icon-size:var(--vectis-icon-size-md);--vectis-icon-opsz:20}.v-control[data-size=md]{--control-height-base:var(--vectis-control-height-md);--control-font-size:var(--vectis-font-size-sm);--control-padding-inline:var(--vectis-space-4);--control-padding-inline-field:var(--vectis-space-3);--control-gap:var(--vectis-space-2);--control-action-size:var(--vectis-control-action-size-md);--vectis-icon-size:var(--vectis-icon-size-md);--vectis-icon-opsz:20}.v-control[data-size=lg]{--control-height-base:var(--vectis-control-height-lg);--control-font-size:var(--vectis-font-size-md);--control-padding-inline:var(--vectis-space-5);--control-padding-inline-field:var(--vectis-space-4);--control-gap:var(--vectis-space-3);--control-action-size:var(--vectis-control-action-size-lg);--vectis-icon-size:var(--vectis-icon-size-lg);--vectis-icon-opsz:24}.v-control[data-size=xl]{--control-height-base:var(--vectis-control-height-xl);--control-font-size:var(--vectis-font-size-md);--control-padding-inline:var(--vectis-space-6);--control-gap:var(--vectis-space-3);--vectis-icon-size:var(--vectis-icon-size-lg);--vectis-icon-opsz:24}.v-field-action{inline-size:var(--control-action-size);block-size:var(--control-action-size);margin-inline:calc((var(--vectis-icon-size) - var(--control-action-size)) / 2);border-radius:var(--vectis-radius-interactive);color:var(--vectis-color-text-muted);cursor:pointer;transition:color var(--vectis-duration-fast) var(--vectis-ease-default);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.v-field-action:hover:not(:disabled){color:var(--vectis-color-text)}.v-field-action:focus-visible{outline:var(--vectis-focus-ring-width) solid var(--vectis-focus-ring-color);outline-offset:calc(-1 * var(--vectis-focus-ring-width))}.v-field-meta{align-items:baseline;gap:var(--vectis-space-2);display:flex}.v-field-counter{font-size:var(--vectis-text-caption-size);color:var(--vectis-color-text-muted);font-variant-numeric:tabular-nums}.v-field-meta>.v-field-counter{margin-inline-start:auto}.v-field-counter[data-over]{color:var(--vectis-color-danger-text)}.v-field-error{color:var(--vectis-color-danger-text);font-family:var(--vectis-text-family);font-size:var(--vectis-text-caption-size);font-weight:var(--vectis-text-caption-weight);line-height:var(--vectis-text-caption-leading)}.v-field-required{color:var(--vectis-color-danger-text);margin-inline-start:var(--vectis-space-1)}@media (prefers-reduced-motion:reduce){.v-field-action{transition:none}}.v-choice{font-family:var(--vectis-text-family);font-size:var(--vectis-text-choice-size);font-weight:var(--vectis-text-choice-weight);line-height:var(--vectis-text-choice-leading);color:var(--vectis-color-text);grid-template-columns:auto auto;justify-content:start;align-items:center;display:inline-grid;position:relative}.v-choice-row{grid-column:1/-1;grid-template-columns:subgrid;cursor:pointer;align-items:center;display:grid}.v-choice-label,.v-choice>:is(.v-field-hint,.v-field-error){margin-inline-start:var(--vectis-space-2)}.v-choice>:is(.v-field-hint,.v-field-error){grid-column:2}.v-choice[data-label-position=start] .v-choice-label{order:-1}.v-choice[data-label-position=start] .v-choice-label,.v-choice[data-label-position=start]>:is(.v-field-hint,.v-field-error){margin-inline:0 var(--vectis-space-2)}.v-choice[data-label-position=start]>:is(.v-field-hint,.v-field-error){grid-column:1}.v-choice[data-spread]{justify-content:space-between;display:grid}.v-choice-row .v-hidden-input:focus-visible+*{outline:var(--vectis-focus-ring-width) solid var(--vectis-focus-ring-color);outline-offset:var(--vectis-focus-ring-offset)}.v-choice[data-readonly] .v-choice-row{cursor:default}.v-choice:has(.v-hidden-input:disabled){color:var(--vectis-color-text-subtle)}.v-choice:has(.v-hidden-input:disabled) .v-choice-row{cursor:not-allowed}.v-choice:has(.v-hidden-input:disabled)>.v-field-hint{--typography-color:var(--vectis-color-text-subtle)}.v-disclosure{interpolate-size:allow-keywords}.v-disclosure::details-content{block-size:0;transition:block-size var(--vectis-duration-base) var(--vectis-ease-default), content-visibility var(--vectis-duration-base) allow-discrete;overflow:clip}.v-disclosure[open]::details-content{block-size:auto}.v-disclosure>summary::-webkit-details-marker{display:none}.v-disclosure-chevron{color:var(--vectis-color-text-muted);transition:rotate var(--vectis-duration-base) var(--vectis-ease-default);flex:none}.v-disclosure[open]:not([data-swap])>summary>.v-disclosure-chevron{rotate:180deg}.v-disclosure[data-swap][open]>summary>.v-disclosure-chevron:not(.v-disclosure-chevron-open),.v-disclosure[data-swap]:not([open])>summary>.v-disclosure-chevron-open{display:none}.v-disclosure>summary[data-disabled]>.v-disclosure-chevron{color:inherit}@media (prefers-reduced-motion:reduce){.v-disclosure::details-content,.v-disclosure-chevron{transition:none}}}@layer vectis.utilities{.v-hidden-input{opacity:0;pointer-events:none;block-size:1px;inline-size:1px;margin:0;position:absolute}.v-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}
@@ -1 +1 @@
1
- {"version":3,"file":"css.js","names":[],"sources":["../../src/tokens/css.ts"],"sourcesContent":["/**\n * Flatten typed DTCG groups and aliases into CSS declarations for token generation and consumer\n * theming tools.\n */\nimport { isToken, type DesignToken, type TokenGroup } from './types'\n\nexport interface FlatToken {\n path: string[]\n cssName: string\n token: DesignToken\n}\n\n/** Flatten nested groups into token entries with qualified CSS custom-property names. */\nexport function flattenTokens(group: TokenGroup, prefix: string[] = []): FlatToken[] {\n const out: FlatToken[] = []\n for (const [key, node] of Object.entries(group)) {\n const path = [...prefix, key]\n if (isToken(node)) {\n out.push({ path, cssName: `--vectis-${path.join('-')}`, token: node })\n } else {\n out.push(...flattenTokens(node, path))\n }\n }\n return out\n}\n\nconst ALIAS_RE = /\\{([^}]+)\\}/g\n\n/** Resolve DTCG references into CSS var aliases while preserving literal values. */\nexport function resolveTokenValue(value: string, known: ReadonlySet<string>): string {\n return value.replace(ALIAS_RE, (_match, ref: string) => {\n const cssName = `--vectis-${ref.trim().split('.').join('-')}`\n if (!known.has(cssName)) {\n throw new Error(`Unknown token alias: {${ref}}`)\n }\n return `var(${cssName})`\n })\n}\n\n/** Serialize flat token entries into CSS declarations. */\nexport function toCssDeclarations(\n flat: FlatToken[],\n known: ReadonlySet<string>,\n indent = ' ',\n): string {\n return flat\n .map((f) => `${indent}${f.cssName}: ${resolveTokenValue(f.token.$value, known)};`)\n .join('\\n')\n}\n"],"mappings":";;AAaA,SAAgB,EAAc,GAAmB,IAAmB,CAAC,GAAgB;CACnF,IAAM,IAAmB,CAAC;CAC1B,KAAK,IAAM,CAAC,GAAK,MAAS,OAAO,QAAQ,CAAK,GAAG;EAC/C,IAAM,IAAO,CAAC,GAAG,GAAQ,CAAG;EAC5B,AAAI,EAAQ,CAAI,IACd,EAAI,KAAK;GAAE;GAAM,SAAS,YAAY,EAAK,KAAK,GAAG;GAAK,OAAO;EAAK,CAAC,IAErE,EAAI,KAAK,GAAG,EAAc,GAAM,CAAI,CAAC;CAEzC;CACA,OAAO;AACT;AAEA,IAAM,IAAW;AAGjB,SAAgB,EAAkB,GAAe,GAAoC;CACnF,OAAO,EAAM,QAAQ,IAAW,GAAQ,MAAgB;EACtD,IAAM,IAAU,YAAY,EAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;EAC1D,IAAI,CAAC,EAAM,IAAI,CAAO,GACpB,MAAU,MAAM,yBAAyB,EAAI,EAAE;EAEjD,OAAO,OAAO,EAAQ;CACxB,CAAC;AACH;AAGA,SAAgB,EACd,GACA,GACA,IAAS,MACD;CACR,OAAO,EACJ,KAAK,MAAM,GAAG,IAAS,EAAE,QAAQ,IAAI,EAAkB,EAAE,MAAM,QAAQ,CAAK,EAAE,EAAE,CAAC,CACjF,KAAK,IAAI;AACd"}
1
+ {"version":3,"file":"css.js","names":["flattenTokens","out","key","node","group","path","prefix","isToken","ALIAS_RE","resolveTokenValue","value","cssName","ref","known","toCssDeclarations","flat","indent","f"],"sources":["../../src/tokens/css.ts"],"sourcesContent":["/**\n * Flatten typed DTCG groups and aliases into CSS declarations for token generation and consumer\n * theming tools.\n */\nimport { isToken, type DesignToken, type TokenGroup } from './types'\n\nexport interface FlatToken {\n path: string[]\n cssName: string\n token: DesignToken\n}\n\n/** Flatten nested groups into token entries with qualified CSS custom-property names. */\nexport function flattenTokens(group: TokenGroup, prefix: string[] = []): FlatToken[] {\n const out: FlatToken[] = []\n for (const [key, node] of Object.entries(group)) {\n const path = [...prefix, key]\n if (isToken(node)) {\n out.push({ path, cssName: `--vectis-${path.join('-')}`, token: node })\n } else {\n out.push(...flattenTokens(node, path))\n }\n }\n return out\n}\n\nconst ALIAS_RE = /\\{([^}]+)\\}/g\n\n/** Resolve DTCG references into CSS var aliases while preserving literal values. */\nexport function resolveTokenValue(value: string, known: ReadonlySet<string>): string {\n return value.replace(ALIAS_RE, (_match, ref: string) => {\n const cssName = `--vectis-${ref.trim().split('.').join('-')}`\n if (!known.has(cssName)) {\n throw new Error(`Unknown token alias: {${ref}}`)\n }\n return `var(${cssName})`\n })\n}\n\n/** Serialize flat token entries into CSS declarations. */\nexport function toCssDeclarations(\n flat: FlatToken[],\n known: ReadonlySet<string>,\n indent = ' ',\n): string {\n return flat\n .map((f) => `${indent}${f.cssName}: ${resolveTokenValue(f.token.$value, known)};`)\n .join('\\n')\n}\n"],"mappings":";;AAaA,SAAgBA,EAAc,GAAmB,IAAmB,CAAC,GAAgB;CACnF,IAAMC,IAAmB,CAAC;CAC1B,KAAK,IAAM,CAACC,GAAKC,MAAS,OAAO,QAAQC,CAAK,GAAG;EAC/C,IAAMC,IAAO,CAAC,GAAGC,GAAQJ,CAAG;EAC5B,AAAIK,EAAQJ,CAAI,IACdF,EAAI,KAAK;GAAE;GAAM,SAAS,YAAYI,EAAK,KAAK,GAAG;GAAK,OAAOF;EAAK,CAAC,IAErEF,EAAI,KAAK,GAAGD,EAAcG,GAAME,CAAI,CAAC;CAEzC;CACA,OAAOJ;AACT;AAEA,IAAMO,IAAW;AAGjB,SAAgBC,EAAkB,GAAe,GAAoC;CACnF,OAAOC,EAAM,QAAQF,IAAW,GAAQ,MAAgB;EACtD,IAAMG,IAAU,YAAYC,EAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;EAC1D,IAAI,CAACC,EAAM,IAAIF,CAAO,GACpB,MAAU,MAAM,yBAAyBC,EAAI,EAAE;EAEjD,OAAO,OAAOD,EAAQ;CACxB,CAAC;AACH;AAGA,SAAgBG,EACd,GACA,GACA,IAAS,MACD;CACR,OAAOC,EACJ,KAAK,MAAM,GAAGC,IAASC,EAAE,QAAQ,IAAIR,EAAkBQ,EAAE,MAAM,QAAQJ,CAAK,EAAE,EAAE,CAAC,CACjF,KAAK,IAAI;AACd"}
@@ -254,6 +254,9 @@ export declare const tokens: {
254
254
  'ring-width': import('./types.js').DesignToken;
255
255
  'ring-offset': import('./types.js').DesignToken;
256
256
  };
257
+ density: {
258
+ delta: import('./types.js').DesignToken;
259
+ };
257
260
  control: {
258
261
  'height-xs': import('./types.js').DesignToken;
259
262
  'height-sm': import('./types.js').DesignToken;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/tokens/index.ts"],"sourcesContent":["import { primitives } from './primitives'\nimport { semantic } from './semantic'\nimport { dark } from './themes/dark'\n\nexport type { DesignToken, TokenGroup, TokenType } from './types'\nexport { isToken } from './types'\nexport { flattenTokens, resolveTokenValue, toCssDeclarations, type FlatToken } from './css'\n\nexport const tokens = {\n primitives,\n semantic,\n themes: { dark },\n}\n\nexport type Tokens = typeof tokens\n"],"mappings":";;;;;;AAQA,IAAa,IAAS;CACpB;CACA;CACA,QAAQ,EAAE,QAAK;AACjB"}
1
+ {"version":3,"file":"index.js","names":["tokens","flattenTokens","isToken","resolveTokenValue","toCssDeclarations"],"sources":["../../src/tokens/index.ts"],"sourcesContent":["import { primitives } from './primitives'\nimport { semantic } from './semantic'\nimport { dark } from './themes/dark'\n\nexport type { DesignToken, TokenGroup, TokenType } from './types'\nexport { isToken } from './types'\nexport { flattenTokens, resolveTokenValue, toCssDeclarations, type FlatToken } from './css'\n\nexport const tokens = {\n primitives,\n semantic,\n themes: { dark },\n}\n\nexport type Tokens = typeof tokens\n"],"mappings":";;;;;;AAQA,IAAaA,IAAS;CACpB;CACA;CACA,QAAQ,EAAE,QAAK;AACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","names":[],"sources":["../../src/tokens/primitives.ts"],"sourcesContent":["/**\n * OKLCH primitive palettes and scales; components consume semantic roles so themes can repoint\n * them independently.\n */\nimport {\n color,\n cubicBezier,\n dimension,\n duration,\n fontFamily,\n fontWeight,\n shadow,\n type TokenGroup,\n} from './types'\n\nconst palette = (values: Record<string, string>): TokenGroup =>\n Object.fromEntries(Object.entries(values).map(([step, value]) => [step, color(value)]))\n\nexport const primitives = {\n color: {\n white: color('oklch(100% 0 0)'),\n black: color('oklch(0% 0 0)'),\n red: palette({\n '50': 'oklch(97.1% 0.013 17.38)',\n '100': 'oklch(93.6% 0.032 17.717)',\n '200': 'oklch(88.5% 0.062 18.334)',\n '300': 'oklch(80.8% 0.114 19.571)',\n '400': 'oklch(70.4% 0.191 22.216)',\n '500': 'oklch(63.7% 0.237 25.331)',\n '600': 'oklch(57.7% 0.245 27.325)',\n '700': 'oklch(50.5% 0.213 27.518)',\n '800': 'oklch(44.4% 0.177 26.899)',\n '900': 'oklch(39.6% 0.141 25.723)',\n '950': 'oklch(25.8% 0.092 26.042)',\n }),\n amber: palette({\n '50': 'oklch(98.7% 0.022 95.277)',\n '100': 'oklch(96.2% 0.059 95.617)',\n '200': 'oklch(92.4% 0.12 95.746)',\n '300': 'oklch(87.9% 0.169 91.605)',\n '400': 'oklch(82.8% 0.189 84.429)',\n '500': 'oklch(76.9% 0.188 70.08)',\n '600': 'oklch(66.6% 0.179 58.318)',\n '700': 'oklch(55.5% 0.163 48.998)',\n '800': 'oklch(47.3% 0.137 46.201)',\n '900': 'oklch(41.4% 0.112 45.904)',\n '950': 'oklch(27.9% 0.077 45.635)',\n }),\n green: palette({\n '50': 'oklch(98.2% 0.018 155.826)',\n '100': 'oklch(96.2% 0.044 156.743)',\n '200': 'oklch(92.5% 0.084 155.995)',\n '300': 'oklch(87.1% 0.15 154.449)',\n '400': 'oklch(79.2% 0.209 151.711)',\n '500': 'oklch(72.3% 0.219 149.579)',\n '600': 'oklch(62.7% 0.194 149.214)',\n '700': 'oklch(52.7% 0.154 150.069)',\n '800': 'oklch(44.8% 0.119 151.328)',\n '900': 'oklch(39.3% 0.095 152.535)',\n '950': 'oklch(26.6% 0.065 152.934)',\n }),\n indigo: palette({\n '50': 'oklch(96.2% 0.018 272.314)',\n '100': 'oklch(93% 0.034 272.788)',\n '200': 'oklch(87% 0.065 274.039)',\n '300': 'oklch(78.5% 0.115 274.713)',\n '400': 'oklch(67.3% 0.182 276.935)',\n '500': 'oklch(58.5% 0.233 277.117)',\n '600': 'oklch(51.1% 0.262 276.966)',\n '700': 'oklch(45.7% 0.24 277.023)',\n '800': 'oklch(39.8% 0.195 277.366)',\n '900': 'oklch(35.9% 0.144 278.697)',\n '950': 'oklch(25.7% 0.09 281.288)',\n }),\n gray: palette({\n '50': 'oklch(98.5% 0.002 247.839)',\n '100': 'oklch(96.7% 0.003 264.542)',\n '200': 'oklch(92.8% 0.006 264.531)',\n '300': 'oklch(87.2% 0.01 258.338)',\n '400': 'oklch(70.7% 0.022 261.325)',\n '500': 'oklch(55.1% 0.027 264.364)',\n '600': 'oklch(44.6% 0.03 256.802)',\n '700': 'oklch(37.3% 0.034 259.733)',\n '800': 'oklch(27.8% 0.033 256.848)',\n '900': 'oklch(21% 0.034 264.665)',\n '950': 'oklch(13% 0.028 261.692)',\n }),\n },\n space: {\n '1': dimension('0.25rem'),\n '2': dimension('0.5rem'),\n '3': dimension('0.75rem'),\n '4': dimension('1rem'),\n '5': dimension('1.25rem'),\n '6': dimension('1.5rem'),\n '7': dimension('2rem'),\n '8': dimension('2.5rem'),\n '9': dimension('3rem'),\n '10': dimension('4rem'),\n '11': dimension('5rem'),\n '12': dimension('6rem'),\n },\n font: {\n family: {\n sans: fontFamily(\n \"system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif\",\n ),\n // Display aliases sans so consumers can change headings through a single family token.\n display: fontFamily('{font.family.sans}'),\n mono: fontFamily(\n \"ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace\",\n ),\n // The consumer loads any icon font; the library supplies only its configurable family\n // token.\n icon: fontFamily(\"'Material Symbols Rounded'\"),\n },\n weight: {\n regular: fontWeight('400'),\n medium: fontWeight('500'),\n semibold: fontWeight('600'),\n bold: fontWeight('700'),\n },\n size: {\n xs: dimension('0.75rem'),\n sm: dimension('0.875rem'),\n md: dimension('1rem'),\n lg: dimension('1.125rem'),\n xl: dimension('1.25rem'),\n '2xl': dimension('1.5rem'),\n '3xl': dimension('1.875rem'),\n '4xl': dimension('2.25rem'),\n '5xl': dimension('3rem'),\n },\n leading: {\n none: dimension('1'),\n tight: dimension('1.25'),\n snug: dimension('1.4'),\n normal: dimension('1.5'),\n relaxed: dimension('1.65'),\n },\n tracking: {\n tight: dimension('-0.015em', 'Tightening for large sizes (display, the top headings)'),\n wide: dimension('0.05em', 'Letter spacing for all-caps micro labels (overline)'),\n },\n },\n radius: {\n // Zero radii need units because calc(0 - 1px) is invalid while calc(0px - 1px) is valid.\n none: dimension('0px'),\n xs: dimension('0.125rem'),\n sm: dimension('0.25rem'),\n md: dimension('0.375rem'),\n lg: dimension('0.5rem'),\n xl: dimension('0.75rem'),\n '2xl': dimension('1rem'),\n full: dimension('9999px'),\n },\n shadow: {\n xs: shadow('0 1px 2px 0 oklch(0% 0 0 / 0.05)'),\n sm: shadow('0 1px 3px 0 oklch(0% 0 0 / 0.1), 0 1px 2px -1px oklch(0% 0 0 / 0.1)'),\n md: shadow('0 4px 6px -1px oklch(0% 0 0 / 0.1), 0 2px 4px -2px oklch(0% 0 0 / 0.1)'),\n lg: shadow('0 10px 15px -3px oklch(0% 0 0 / 0.1), 0 4px 6px -4px oklch(0% 0 0 / 0.1)'),\n xl: shadow('0 20px 25px -5px oklch(0% 0 0 / 0.1), 0 8px 10px -6px oklch(0% 0 0 / 0.1)'),\n },\n /* Use explicit duration steps for long loops instead of multiplying shorter transition roles. */\n duration: {\n '0': duration('0ms'),\n '50': duration('50ms'),\n '100': duration('100ms'),\n '150': duration('150ms'),\n '200': duration('200ms'),\n '300': duration('300ms'),\n '400': duration('400ms'),\n '500': duration('500ms'),\n '700': duration('700ms'),\n '1000': duration('1000ms'),\n '1500': duration('1500ms'),\n '2000': duration('2000ms'),\n '3000': duration('3000ms'),\n '5000': duration('5000ms'),\n },\n ease: {\n default: cubicBezier('cubic-bezier(0.2, 0, 0, 1)'),\n in: cubicBezier('cubic-bezier(0.5, 0, 1, 1)'),\n out: cubicBezier('cubic-bezier(0, 0, 0.2, 1)'),\n 'in-out': cubicBezier(\n 'cubic-bezier(0.4, 0, 0.2, 1)',\n 'Symmetric: both the start and the end are eased. Looping animations that cross the track (an indeterminate VProgressLinear).',\n ),\n },\n} satisfies TokenGroup\n"],"mappings":"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"}
1
+ {"version":3,"file":"primitives.js","names":["palette","values","step","value","color","primitives","dimension","fontFamily","fontWeight","shadow","duration","cubicBezier"],"sources":["../../src/tokens/primitives.ts"],"sourcesContent":["/**\n * OKLCH primitive palettes and scales; components consume semantic roles so themes can repoint\n * them independently.\n */\nimport {\n color,\n cubicBezier,\n dimension,\n duration,\n fontFamily,\n fontWeight,\n shadow,\n type TokenGroup,\n} from './types'\n\nconst palette = (values: Record<string, string>): TokenGroup =>\n Object.fromEntries(Object.entries(values).map(([step, value]) => [step, color(value)]))\n\nexport const primitives = {\n color: {\n white: color('oklch(100% 0 0)'),\n black: color('oklch(0% 0 0)'),\n red: palette({\n '50': 'oklch(97.1% 0.013 17.38)',\n '100': 'oklch(93.6% 0.032 17.717)',\n '200': 'oklch(88.5% 0.062 18.334)',\n '300': 'oklch(80.8% 0.114 19.571)',\n '400': 'oklch(70.4% 0.191 22.216)',\n '500': 'oklch(63.7% 0.237 25.331)',\n '600': 'oklch(57.7% 0.245 27.325)',\n '700': 'oklch(50.5% 0.213 27.518)',\n '800': 'oklch(44.4% 0.177 26.899)',\n '900': 'oklch(39.6% 0.141 25.723)',\n '950': 'oklch(25.8% 0.092 26.042)',\n }),\n amber: palette({\n '50': 'oklch(98.7% 0.022 95.277)',\n '100': 'oklch(96.2% 0.059 95.617)',\n '200': 'oklch(92.4% 0.12 95.746)',\n '300': 'oklch(87.9% 0.169 91.605)',\n '400': 'oklch(82.8% 0.189 84.429)',\n '500': 'oklch(76.9% 0.188 70.08)',\n '600': 'oklch(66.6% 0.179 58.318)',\n '700': 'oklch(55.5% 0.163 48.998)',\n '800': 'oklch(47.3% 0.137 46.201)',\n '900': 'oklch(41.4% 0.112 45.904)',\n '950': 'oklch(27.9% 0.077 45.635)',\n }),\n green: palette({\n '50': 'oklch(98.2% 0.018 155.826)',\n '100': 'oklch(96.2% 0.044 156.743)',\n '200': 'oklch(92.5% 0.084 155.995)',\n '300': 'oklch(87.1% 0.15 154.449)',\n '400': 'oklch(79.2% 0.209 151.711)',\n '500': 'oklch(72.3% 0.219 149.579)',\n '600': 'oklch(62.7% 0.194 149.214)',\n '700': 'oklch(52.7% 0.154 150.069)',\n '800': 'oklch(44.8% 0.119 151.328)',\n '900': 'oklch(39.3% 0.095 152.535)',\n '950': 'oklch(26.6% 0.065 152.934)',\n }),\n indigo: palette({\n '50': 'oklch(96.2% 0.018 272.314)',\n '100': 'oklch(93% 0.034 272.788)',\n '200': 'oklch(87% 0.065 274.039)',\n '300': 'oklch(78.5% 0.115 274.713)',\n '400': 'oklch(67.3% 0.182 276.935)',\n '500': 'oklch(58.5% 0.233 277.117)',\n '600': 'oklch(51.1% 0.262 276.966)',\n '700': 'oklch(45.7% 0.24 277.023)',\n '800': 'oklch(39.8% 0.195 277.366)',\n '900': 'oklch(35.9% 0.144 278.697)',\n '950': 'oklch(25.7% 0.09 281.288)',\n }),\n gray: palette({\n '50': 'oklch(98.5% 0.002 247.839)',\n '100': 'oklch(96.7% 0.003 264.542)',\n '200': 'oklch(92.8% 0.006 264.531)',\n '300': 'oklch(87.2% 0.01 258.338)',\n '400': 'oklch(70.7% 0.022 261.325)',\n '500': 'oklch(55.1% 0.027 264.364)',\n '600': 'oklch(44.6% 0.03 256.802)',\n '700': 'oklch(37.3% 0.034 259.733)',\n '800': 'oklch(27.8% 0.033 256.848)',\n '900': 'oklch(21% 0.034 264.665)',\n '950': 'oklch(13% 0.028 261.692)',\n }),\n },\n space: {\n '1': dimension('0.25rem'),\n '2': dimension('0.5rem'),\n '3': dimension('0.75rem'),\n '4': dimension('1rem'),\n '5': dimension('1.25rem'),\n '6': dimension('1.5rem'),\n '7': dimension('2rem'),\n '8': dimension('2.5rem'),\n '9': dimension('3rem'),\n '10': dimension('4rem'),\n '11': dimension('5rem'),\n '12': dimension('6rem'),\n },\n font: {\n family: {\n sans: fontFamily(\n \"system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif\",\n ),\n // Display aliases sans so consumers can change headings through a single family token.\n display: fontFamily('{font.family.sans}'),\n mono: fontFamily(\n \"ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace\",\n ),\n // The consumer loads any icon font; the library supplies only its configurable family\n // token.\n icon: fontFamily(\"'Material Symbols Rounded'\"),\n },\n weight: {\n regular: fontWeight('400'),\n medium: fontWeight('500'),\n semibold: fontWeight('600'),\n bold: fontWeight('700'),\n },\n size: {\n xs: dimension('0.75rem'),\n sm: dimension('0.875rem'),\n md: dimension('1rem'),\n lg: dimension('1.125rem'),\n xl: dimension('1.25rem'),\n '2xl': dimension('1.5rem'),\n '3xl': dimension('1.875rem'),\n '4xl': dimension('2.25rem'),\n '5xl': dimension('3rem'),\n },\n leading: {\n none: dimension('1'),\n tight: dimension('1.25'),\n snug: dimension('1.4'),\n normal: dimension('1.5'),\n relaxed: dimension('1.65'),\n },\n tracking: {\n tight: dimension('-0.015em', 'Tightening for large sizes (display, the top headings)'),\n wide: dimension('0.05em', 'Letter spacing for all-caps micro labels (overline)'),\n },\n },\n radius: {\n // Zero radii need units because calc(0 - 1px) is invalid while calc(0px - 1px) is valid.\n none: dimension('0px'),\n xs: dimension('0.125rem'),\n sm: dimension('0.25rem'),\n md: dimension('0.375rem'),\n lg: dimension('0.5rem'),\n xl: dimension('0.75rem'),\n '2xl': dimension('1rem'),\n full: dimension('9999px'),\n },\n shadow: {\n xs: shadow('0 1px 2px 0 oklch(0% 0 0 / 0.05)'),\n sm: shadow('0 1px 3px 0 oklch(0% 0 0 / 0.1), 0 1px 2px -1px oklch(0% 0 0 / 0.1)'),\n md: shadow('0 4px 6px -1px oklch(0% 0 0 / 0.1), 0 2px 4px -2px oklch(0% 0 0 / 0.1)'),\n lg: shadow('0 10px 15px -3px oklch(0% 0 0 / 0.1), 0 4px 6px -4px oklch(0% 0 0 / 0.1)'),\n xl: shadow('0 20px 25px -5px oklch(0% 0 0 / 0.1), 0 8px 10px -6px oklch(0% 0 0 / 0.1)'),\n },\n /* Use explicit duration steps for long loops instead of multiplying shorter transition roles. */\n duration: {\n '0': duration('0ms'),\n '50': duration('50ms'),\n '100': duration('100ms'),\n '150': duration('150ms'),\n '200': duration('200ms'),\n '300': duration('300ms'),\n '400': duration('400ms'),\n '500': duration('500ms'),\n '700': duration('700ms'),\n '1000': duration('1000ms'),\n '1500': duration('1500ms'),\n '2000': duration('2000ms'),\n '3000': duration('3000ms'),\n '5000': duration('5000ms'),\n },\n ease: {\n default: cubicBezier('cubic-bezier(0.2, 0, 0, 1)'),\n in: cubicBezier('cubic-bezier(0.5, 0, 1, 1)'),\n out: cubicBezier('cubic-bezier(0, 0, 0.2, 1)'),\n 'in-out': cubicBezier(\n 'cubic-bezier(0.4, 0, 0.2, 1)',\n 'Symmetric: both the start and the end are eased. Looping animations that cross the track (an indeterminate VProgressLinear).',\n ),\n },\n} satisfies TokenGroup\n"],"mappings":"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"}
@@ -151,6 +151,9 @@ export declare const semantic: {
151
151
  'ring-width': import('./types.js').DesignToken;
152
152
  'ring-offset': import('./types.js').DesignToken;
153
153
  };
154
+ density: {
155
+ delta: import('./types.js').DesignToken;
156
+ };
154
157
  control: {
155
158
  'height-xs': import('./types.js').DesignToken;
156
159
  'height-sm': import('./types.js').DesignToken;
@@ -152,12 +152,13 @@ var a = {
152
152
  "ring-width": t("2px", "The thickness of the focus ring"),
153
153
  "ring-offset": t("2px", "The gap between a control and its focus ring")
154
154
  },
155
+ density: { delta: t("0px", "What the density takes off every control height and component padding: 0px for the standard scale, the --vectis-space-1 step for the compact one") },
155
156
  control: {
156
- "height-xs": t("1.5rem", "The height of every control at size=\"xs\" (24px), 4px less when compact"),
157
- "height-sm": t("2rem", "The height of every control at size=\"sm\" (32px), 4px less when compact"),
158
- "height-md": t("2.5rem", "The height of every control at size=\"md\" (40px), 4px less when compact"),
159
- "height-lg": t("3rem", "The height of every control at size=\"lg\" (48px), 4px less when compact"),
160
- "height-xl": t("3.5rem", "The height of every control at size=\"xl\" (56px), 4px less when compact"),
157
+ "height-xs": t("1.5rem", "The height of every control at size=\"xs\" (24px), less the density delta"),
158
+ "height-sm": t("2rem", "The height of every control at size=\"sm\" (32px), less the density delta"),
159
+ "height-md": t("2.5rem", "The height of every control at size=\"md\" (40px), less the density delta"),
160
+ "height-lg": t("3rem", "The height of every control at size=\"lg\" (48px), less the density delta"),
161
+ "height-xl": t("3.5rem", "The height of every control at size=\"xl\" (56px), less the density delta"),
161
162
  "border-width": t("2px", "The border of checkable controls (VCheckbox, VRadio)"),
162
163
  "size-check": t("1.25rem", "The box of checkable controls (VCheckbox, VRadio)"),
163
164
  "size-check-mark": t("0.875rem", "The tick inside VCheckbox's box"),
@@ -1 +1 @@
1
- {"version":3,"file":"semantic.js","names":[],"sources":["../../src/tokens/semantic.ts"],"sourcesContent":["/**\n * Semantic roles alias primitives; components depend on these roles so applications can theme\n * without rewriting component CSS.\n */\nimport { color, dimension, duration, fontFamily, fontWeight, type TokenGroup } from './types'\n\nexport const semantic = {\n color: {\n surface: color('{color.white}', 'The default page background'),\n 'surface-muted': color('{color.gray.100}', 'A muted background (secondary areas)'),\n 'surface-raised': color('{color.white}', 'Raised surfaces: cards'),\n 'surface-overlay': color('{color.white}', 'Floating surfaces: dialogs, popovers, menus'),\n 'surface-sunken': color('{color.gray.50}', 'Sunken surfaces: wells, code areas'),\n 'surface-inverse': color('{color.gray.900}', 'Inverted-contrast surfaces: tooltips'),\n 'surface-skeleton': color(\n '{color.gray.200}',\n \"The background of VSkeletonLoader's silhouettes, from which its highlight is derived\",\n ),\n\n 'text-on-inverse': color('{color.white}', 'Text set on an inverted surface'),\n\n text: color('{color.gray.900}', 'The running text of the interface'),\n 'text-muted': color(\n '{color.gray.600}',\n 'Secondary text: hints, captions, descriptions, start icons',\n ),\n 'text-subtle': color('{color.gray.500}', 'Placeholders, disabled text'),\n 'text-on-accent': color('{color.white}', 'Text set on an accent/danger/success background'),\n 'text-on-warning': color(\n '{color.gray.950}',\n 'Text set on a solid warning background (amber too light for white)',\n ),\n\n border: color('{color.gray.200}', 'Dividers, and the frames of cards, tables and panels'),\n 'border-strong': color('{color.gray.300}', 'The borders of form controls'),\n 'border-on-fill': color(\n 'oklch(0% 0 0 / 0.12)',\n 'A veil edging or dividing a filled background: VButtonGroup seams, VColorPicker swatches',\n ),\n\n accent: color(\n '{color.indigo.600}',\n 'The brand color: solid buttons, checked controls, the selected item',\n ),\n 'accent-hover': color('{color.indigo.700}', 'The accent color under the pointer'),\n 'accent-active': color('{color.indigo.800}', 'The accent color while pressed'),\n 'accent-surface': color('{color.indigo.50}', 'A tinted accent background (badges, selections)'),\n 'accent-border': color(\n '{color.indigo.200}',\n 'The border of a tinted accent element, matching the accent surface',\n ),\n 'accent-text': color('{color.indigo.700}', 'Accent text on a neutral or tinted background'),\n\n danger: color('{color.red.600}', 'Destructive actions and errors: solid buttons, error states'),\n 'danger-hover': color('{color.red.700}', 'The danger color under the pointer'),\n 'danger-active': color('{color.red.800}', 'The danger color while pressed'),\n 'danger-surface': color(\n '{color.red.50}',\n 'A tinted danger background (soft buttons and chips, a destructive menu item)',\n ),\n 'danger-border': color(\n '{color.red.200}',\n 'The border of a tinted danger element, matching the danger surface',\n ),\n 'danger-text': color(\n '{color.red.700}',\n 'Danger text on a neutral or tinted background: error messages, a destructive menu item',\n ),\n\n /* Green filled surfaces need step 700 to contrast with white text. */\n success: color('{color.green.700}', 'A positive outcome: solid chips, badges, notifications'),\n 'success-hover': color('{color.green.800}', 'The success color under the pointer'),\n 'success-active': color('{color.green.900}', 'The success color while pressed'),\n 'success-surface': color(\n '{color.green.50}',\n 'A tinted success background (soft chips, badges, notifications)',\n ),\n 'success-border': color(\n '{color.green.200}',\n 'The border of a tinted success element, matching the success surface',\n ),\n 'success-text': color('{color.green.800}', 'Success text on a neutral or tinted background'),\n\n warning: color(\n '{color.amber.600}',\n 'A situation that calls for attention: solid chips, badges, notifications',\n ),\n 'warning-hover': color('{color.amber.700}', 'The warning color under the pointer'),\n 'warning-active': color('{color.amber.800}', 'The warning color while pressed'),\n 'warning-surface': color(\n '{color.amber.50}',\n 'A tinted warning background (soft chips, badges, notifications)',\n ),\n 'warning-border': color(\n '{color.amber.200}',\n 'The border of a tinted warning element, matching the warning surface',\n ),\n 'warning-text': color('{color.amber.900}', 'Warning text on a neutral or tinted background'),\n\n backdrop: color('oklch(0% 0 0 / 0.45)', 'The veil behind modal dialogs'),\n\n /*\n * Keep event colours literal: root-declared var aliases resolve their hue before cards can\n * supply per-event hues.\n */\n 'event-surface': color(\n 'oklch(0.95 0.045 265)',\n 'The face of a calendar event that carries no color of its own',\n ),\n 'event-border': color(\n 'oklch(0.85 0.08 265)',\n 'The edge of that calendar event, and the bar marking its leading side',\n ),\n 'event-text': color('oklch(0.4 0.11 265)', 'The title of that calendar event'),\n },\n text: {\n family: fontFamily('{font.family.sans}', 'The running font of every component'),\n 'family-heading': fontFamily(\n '{font.family.display}',\n 'The font of the display and heading roles, the running font until it is overridden',\n ),\n 'family-code': fontFamily(\n '{font.family.mono}',\n 'The font of code content (the code role, VInputOTP)',\n ),\n display: {\n size: dimension('{font.size.5xl}'),\n weight: fontWeight('{font.weight.bold}'),\n leading: dimension('{font.leading.none}'),\n tracking: dimension('{font.tracking.tight}'),\n },\n 'heading-1': {\n size: dimension('{font.size.4xl}'),\n weight: fontWeight('{font.weight.bold}'),\n leading: dimension('{font.leading.tight}'),\n tracking: dimension('{font.tracking.tight}'),\n },\n 'heading-2': {\n size: dimension('{font.size.2xl}'),\n weight: fontWeight('{font.weight.semibold}'),\n leading: dimension('{font.leading.tight}'),\n tracking: dimension('{font.tracking.tight}'),\n },\n 'heading-3': {\n size: dimension('{font.size.lg}'),\n weight: fontWeight('{font.weight.semibold}'),\n leading: dimension('{font.leading.snug}'),\n },\n 'heading-4': {\n size: dimension('{font.size.md}'),\n weight: fontWeight('{font.weight.semibold}'),\n leading: dimension('{font.leading.snug}'),\n },\n subtitle: {\n size: dimension('{font.size.sm}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.normal}'),\n },\n 'body-xl': {\n size: dimension('{font.size.lg}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.relaxed}'),\n },\n 'body-lg': {\n size: dimension('{font.size.md}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.relaxed}'),\n },\n 'body-md': {\n size: dimension('{font.size.sm}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.normal}'),\n },\n 'body-sm': {\n size: dimension('{font.size.xs}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.normal}'),\n },\n label: {\n size: dimension('{font.size.sm}'),\n weight: fontWeight('{font.weight.medium}'),\n leading: dimension('{font.leading.snug}'),\n },\n /* Choice text uses label dimensions at regular weight to remain distinct from field labels. */\n choice: {\n size: dimension('{font.size.sm}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.snug}'),\n },\n caption: {\n size: dimension('{font.size.xs}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.snug}'),\n },\n overline: {\n size: dimension('{font.size.xs}'),\n weight: fontWeight('{font.weight.medium}'),\n leading: dimension('{font.leading.snug}'),\n tracking: dimension('{font.tracking.wide}'),\n },\n code: {\n size: dimension('{font.size.sm}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.normal}'),\n },\n /* Control size comes from --control-font-size; this recipe supplies weight and leading only. */\n control: {\n weight: fontWeight('{font.weight.medium}'),\n leading: dimension('{font.leading.none}'),\n },\n },\n radius: {\n interactive: dimension('{radius.md}', 'Buttons, inputs, controls'),\n surface: dimension('{radius.lg}', 'Cards, alerts'),\n overlay: dimension('{radius.xl}', 'Dialogs, popovers, menus'),\n pill: dimension('{radius.full}', 'Full rounding: switches, badges, pill-shaped chips'),\n chip: dimension(\n '{radius.interactive}',\n 'Chips with shape=\"chip\", which follow the interactive radius by default',\n ),\n },\n /** Semantic transition durations are theme-independent. */\n duration: {\n fast: duration('{duration.150}', 'Color and border changes on hover, focus and press'),\n base: duration('{duration.200}', 'The default: a panel opening, a value moving'),\n slow: duration('{duration.300}', 'Movements large enough to be followed by the eye'),\n },\n focus: {\n 'ring-color': color(\n '{color.indigo.500}',\n 'The keyboard focus ring, which has to stand out against the page',\n ),\n 'ring-width': dimension('2px', 'The thickness of the focus ring'),\n 'ring-offset': dimension('2px', 'The gap between a control and its focus ring'),\n },\n control: {\n 'height-xs': dimension(\n '1.5rem',\n 'The height of every control at size=\"xs\" (24px), 4px less when compact',\n ),\n 'height-sm': dimension(\n '2rem',\n 'The height of every control at size=\"sm\" (32px), 4px less when compact',\n ),\n 'height-md': dimension(\n '2.5rem',\n 'The height of every control at size=\"md\" (40px), 4px less when compact',\n ),\n 'height-lg': dimension(\n '3rem',\n 'The height of every control at size=\"lg\" (48px), 4px less when compact',\n ),\n 'height-xl': dimension(\n '3.5rem',\n 'The height of every control at size=\"xl\" (56px), 4px less when compact',\n ),\n 'border-width': dimension('2px', 'The border of checkable controls (VCheckbox, VRadio)'),\n 'size-check': dimension('1.25rem', 'The box of checkable controls (VCheckbox, VRadio)'),\n 'size-check-mark': dimension('0.875rem', \"The tick inside VCheckbox's box\"),\n 'size-check-dot': dimension('0.5rem', \"The dot inside VRadio's circle\"),\n 'size-switch-w': dimension('2.5rem', \"The width of VSwitch's track\"),\n 'size-switch-h': dimension('1.25rem', \"The height of VSwitch's track\"),\n 'size-switch-pad': dimension(\n '0.125rem',\n \"The gap between VSwitch's thumb and the edge of its track\",\n ),\n 'action-size-sm': dimension(\n '1.25rem',\n 'The inner buttons of sm input fields (clear, a clickable icon)',\n ),\n 'action-size-md': dimension(\n '1.5rem',\n 'The inner buttons of md input fields (clear, a clickable icon)',\n ),\n 'action-size-lg': dimension(\n '1.75rem',\n 'The inner buttons of lg input fields (clear, a clickable icon)',\n ),\n 'size-slider-track': dimension('0.375rem', \"The thickness of VSlider's track\"),\n 'size-slider-thumb': dimension('1.25rem', \"The diameter of VSlider's thumb\"),\n 'size-slider-length': dimension('10rem', 'The default length of a vertical VSlider'),\n 'size-slider-field': dimension('5rem', \"The width of VSlider's number fields\"),\n 'size-carousel-block': dimension(\n '24rem',\n \"The default block size of VCarousel's viewport, which a vertical carousel needs to lay its slides out\",\n ),\n 'size-carousel-indicator': dimension(\n '0.625rem',\n 'The diameter of a VCarousel indicator dot (its hit area comes from --vectis-control-height-xs)',\n ),\n 'size-carousel-indicator-active': dimension(\n '1.25rem',\n 'The length of the active VCarousel indicator, which stretches from a dot into a pill',\n ),\n 'size-combobox-list-max-block': dimension(\n '18rem',\n \"The maximum height of VCombobox's list panel (the scrolling area)\",\n ),\n 'size-select-list-max-block': dimension(\n '18rem',\n \"The maximum height of VSelect's list panel (the scrolling area)\",\n ),\n 'size-menu-min': dimension('11rem', \"The minimum width of VMenu's panel\"),\n 'size-menu-max': dimension('20rem', \"The maximum width of VMenu's panel\"),\n 'size-progress-linear-thickness': dimension(\n '0.25rem',\n \"The default thickness of VProgressLinear's bar (4px)\",\n ),\n 'size-progress-linear-length': dimension(\n '10rem',\n 'The default length of a vertical VProgressLinear, which a height set on the bar replaces',\n ),\n 'size-meter-thickness-sm': dimension('0.25rem', 'The thickness of a small VMeter (4px)'),\n 'size-meter-thickness-md': dimension('0.5rem', 'The thickness of a medium VMeter (8px)'),\n 'size-meter-thickness-lg': dimension('0.75rem', 'The thickness of a large VMeter (12px)'),\n 'size-meter-segment-gap': dimension('0.125rem', 'The gap between two VMeter segments (2px)'),\n 'size-progress-circular-diameter': dimension(\n '3rem',\n 'The default diameter of VProgressCircular',\n ),\n 'size-progress-circular-thickness': dimension(\n '0.25rem',\n 'The default stroke thickness of VProgressCircular (4px)',\n ),\n 'size-skeleton-surface': dimension(\n '6rem',\n 'The default height of a surface-shaped VSkeletonLoader: a card, an image (96px)',\n ),\n 'size-resizable-hit': dimension(\n '0.75rem',\n 'The width of the strip around a VResizable handle that catches the pointer (12px)',\n ),\n 'size-resizable-grip-length': dimension(\n '1.5rem',\n 'The length of the grip VResizable draws on its handles under `grip` (24px)',\n ),\n 'size-resizable-grip-thickness': dimension(\n '0.5rem',\n 'The thickness of the grip VResizable draws on its handles under `grip` (8px)',\n ),\n 'size-toast-width': dimension('22rem', 'The default width of a toast'),\n 'size-tooltip-max': dimension('18rem', 'The widest a tooltip grows before it wraps (288px)'),\n 'size-hover-card-max': dimension('20rem', 'The widest a VHoverCard grows (320px)'),\n 'size-dialog-width': dimension(\n '25rem',\n 'The default width of VDialog and VDialogAlert (400px), when no `width` is given',\n ),\n 'size-command-palette-width': dimension(\n '40rem',\n 'The default width of VCommandPalette (640px), when no `width` is given',\n ),\n 'size-command-palette-list-max-block': dimension(\n '20rem',\n \"The tallest VCommandPalette's list of commands grows before it scrolls (320px)\",\n ),\n 'size-command-palette-offset': dimension(\n '6rem',\n 'The distance from the top of the viewport to VCommandPalette, which keeps its search field still as the list changes height (96px)',\n ),\n 'size-stepper-indicator': dimension(\n '2rem',\n 'The diameter of the circle holding a VStepper step number (32px)',\n ),\n 'size-stepper-connector-min': dimension(\n '1.5rem',\n 'The shortest a horizontal VStepper connector gets between two steps (24px)',\n ),\n 'size-timeline-dot-sm': dimension(\n '0.5rem',\n 'The dot marking an event of a small VTimeline (8px)',\n ),\n 'size-timeline-dot-md': dimension('0.625rem', 'The dot marking an event of a VTimeline (10px)'),\n 'size-timeline-icon-sm': dimension(\n '1.5rem',\n 'The round badge holding the icon of an event in a small VTimeline (24px)',\n ),\n 'size-timeline-icon-md': dimension(\n '2rem',\n 'The round badge holding the icon of an event in a VTimeline (32px)',\n ),\n 'size-timeline-item-min': dimension(\n '12rem',\n 'The narrowest an event of a horizontal VTimeline gets before the list scrolls (192px)',\n ),\n 'size-rating-sm': dimension('1.25rem', 'The icon of a small VRating (20px)'),\n 'size-rating-md': dimension('1.5rem', 'The icon of a medium VRating (24px)'),\n 'size-rating-lg': dimension('2rem', 'The icon of a large VRating (32px)'),\n 'size-drawer-sm': dimension(\n '20rem',\n 'The width of a small VDrawer on a side, or the height of one at the top or bottom (320px)',\n ),\n 'size-drawer-md': dimension(\n '25rem',\n 'The width of a medium VDrawer on a side, or the height of one at the top or bottom (400px)',\n ),\n 'size-drawer-lg': dimension(\n '35rem',\n 'The width of a large VDrawer on a side, or the height of one at the top or bottom (560px)',\n ),\n 'size-snackbar-min': dimension('18rem', 'The minimum width of a snackbar (288px)'),\n 'size-snackbar-max': dimension('36rem', 'The maximum width of a snackbar (576px)'),\n 'size-card-media': dimension(\n '12rem',\n 'The width a horizontal VCard gives its media before the content wraps under it (192px)',\n ),\n 'size-card-body-min': dimension(\n '16rem',\n 'The narrowest content of a horizontal VCard: below it, the media moves above the content',\n ),\n 'size-empty-state-media-sm': dimension(\n '2.5rem',\n 'The diameter of the icon badge of a small VEmptyState (40px)',\n ),\n 'size-empty-state-media-md': dimension(\n '3rem',\n 'The diameter of the icon badge of a medium VEmptyState (48px)',\n ),\n 'size-empty-state-media-lg': dimension(\n '4rem',\n 'The diameter of the icon badge of a large VEmptyState (64px)',\n ),\n 'size-empty-state-text-max': dimension(\n '28rem',\n 'The widest the title and description of a VEmptyState run before they wrap (448px)',\n ),\n 'size-field-label': dimension(\n '10rem',\n 'The width of a VField label placed beside its control, before the control wraps under it (160px)',\n ),\n 'size-field-control-min': dimension(\n '16rem',\n 'The narrowest control of a VField with a side label: below it, the label moves above the control',\n ),\n 'size-badge-h': dimension('1.25rem', 'The height of a VBadge pill'),\n 'size-badge-dot': dimension('0.625rem', 'The diameter of VBadge in dot mode'),\n 'size-badge-ring': dimension('2px', 'The detaching ring of a bordered VBadge'),\n 'size-avatar-ring': dimension('2px', 'The ring separating stacked avatars (VAvatarGroup)'),\n 'size-color-picker-width': dimension('16rem', 'The width of VColorPicker (256px)'),\n 'size-color-picker-area': dimension(\n '10rem',\n \"The height of VColorPicker's saturation and brightness area (160px)\",\n ),\n 'size-color-picker-track': dimension(\n '0.75rem',\n \"The thickness of VColorPicker's hue and opacity tracks (12px)\",\n ),\n 'size-color-picker-thumb': dimension(\n '1.25rem',\n \"The diameter of VColorPicker's thumbs, on the area and the tracks (20px)\",\n ),\n 'size-color-picker-preview': dimension(\n '2rem',\n 'The disc showing the current colour in VColorPicker (32px)',\n ),\n 'size-color-picker-format': dimension(\n '6rem',\n \"The width of VColorPicker's format menu, which holds its longest name (96px)\",\n ),\n 'size-color-picker-swatch': dimension('1.5rem', 'The side of a VColorPicker swatch (24px)'),\n 'size-color-picker-checker': dimension(\n '0.5rem',\n 'The side of the checkerboard showing through a translucent colour (8px)',\n ),\n 'size-date-picker-cell': dimension('2.5rem', 'The side of a VDatePicker day cell'),\n 'size-date-picker-day': dimension(\n '{control.height.md}',\n 'The diameter of the disc a VDatePicker day is drawn on; the cell grows to hold it',\n ),\n 'size-date-picker-dot': dimension('0.25rem', 'The diameter of a VDatePicker event dot'),\n 'size-date-picker-nav-min': dimension(\n '5.375rem',\n \"The minimum width of VDatePicker's month/year picker buttons (about 86px)\",\n ),\n 'size-tab-indicator': dimension(\n '2px',\n 'The thickness of the active tab indicator (VTabs, every variant but inset)',\n ),\n 'size-table-search': dimension('16rem', \"The width of VDataTable's search field\"),\n 'size-time-picker-dial': dimension('16rem', \"The diameter of VTimePicker's clock face\"),\n 'size-time-picker-number': dimension(\n '3rem',\n \"A numeral cell on VTimePicker's face, and the hand's dot on a marker\",\n ),\n 'size-time-picker-center': dimension('0.5rem', \"The center dot of VTimePicker's face\"),\n 'size-time-picker-hand': dimension('2px', \"The thickness of the hand on VTimePicker's face\"),\n 'size-time-picker-hand-minor': dimension(\n '1rem',\n \"The dot of VTimePicker's hand on a minute off the 5-minute markers\",\n ),\n 'size-file-picker-min-block': dimension(\n '10rem',\n \"The minimum height of VFilePicker's drop zone: icon, two lines, separator and button\",\n ),\n 'size-file-picker-icon': dimension(\n '2.5rem',\n \"The large icon at the top of VFilePicker's drop zone\",\n ),\n 'size-file-picker-thumb': dimension(\n '2.5rem',\n 'The thumbnail square of a VFilePicker preview row (an image, or its type icon)',\n ),\n /*\n * This hour height must leave room for a readable title in short events; cards have no\n * minimum height.\n */\n 'size-calendar-hour': dimension('4rem', \"The height of one hour in VCalendar's time grid\"),\n 'size-calendar-gutter': dimension(\n '4.5rem',\n \"The column of hour labels beside VCalendar's time grid, wide enough for a 12-hour clock's '12:00 AM' on one line\",\n ),\n 'size-calendar-tick': dimension(\n '0.375rem',\n \"How far an hour's rule runs back into VCalendar's gutter, tying the label to its line\",\n ),\n /*\n * Keep this visual edge-strip width aligned with EDGE_BAND in VCalendar/edgeStep.ts so\n * paging starts where the highlight appears.\n */\n 'size-calendar-edge': dimension(\n '3rem',\n 'The strip at the side of VCalendar that pages the view when a dragged event rests on it',\n ),\n 'size-calendar-day-min': dimension(\n '5rem',\n 'The width a VCalendar day column may not go below, past which the grid scrolls',\n ),\n 'size-calendar-handle': dimension(\n '0.5rem',\n \"The strip along a VCalendar card's bottom edge that its end is dragged by\",\n ),\n 'size-calendar-allday-lane': dimension('1.5rem', \"One lane of VCalendar's all-day band\"),\n 'size-calendar-allday-max': dimension(\n '7rem',\n \"The height past which VCalendar's all-day band scrolls instead of growing\",\n ),\n 'size-calendar-now-dot': dimension('0.625rem', \"The dot on VCalendar's current-time line\"),\n 'size-calendar-event-edge': dimension(\n '3px',\n 'The width of the coloured leading edge of a VCalendar event',\n ),\n 'size-calendar-gap': dimension(\n '0.125rem',\n 'The gap VCalendar keeps between two events, side by side in a day or stacked in a month',\n ),\n 'size-calendar-grip': dimension(\n '1rem',\n \"The length of the grip drawn on a VCalendar card's resize strip\",\n ),\n 'size-calendar-grip-thickness': dimension(\n '2px',\n \"The thickness of that grip, which is also its distance from the card's bottom edge\",\n ),\n 'size-calendar-year-month': dimension(\n '13rem',\n \"The narrowest a mini-month of VCalendar's year view gets before the year reflows\",\n ),\n /*\n * Keep enough cell height for monthEventLimit chips and the overflow line; clipped cells do\n * not scroll to reveal hidden rows.\n */\n 'size-calendar-month-cell': dimension(\n '8.5rem',\n \"The minimum height of a day in VCalendar's month view\",\n ),\n 'size-calendar-year-cell': dimension(\n '1.5rem',\n \"The side of a day square in the mini-months of VCalendar's year view\",\n ),\n },\n icon: {\n 'size-sm': dimension('1rem', 'The icon size of xs controls (16px)'),\n 'size-md': dimension('1.25rem', 'The icon size of sm and md controls (20px)'),\n 'size-lg': dimension('1.5rem', 'The icon size of lg and xl controls (24px)'),\n },\n} satisfies TokenGroup\n"],"mappings":"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"}
1
+ {"version":3,"file":"semantic.js","names":["semantic","color","fontFamily","dimension","fontWeight","duration"],"sources":["../../src/tokens/semantic.ts"],"sourcesContent":["/**\n * Semantic roles alias primitives; components depend on these roles so applications can theme\n * without rewriting component CSS.\n */\nimport { color, dimension, duration, fontFamily, fontWeight, type TokenGroup } from './types'\n\nexport const semantic = {\n color: {\n surface: color('{color.white}', 'The default page background'),\n 'surface-muted': color('{color.gray.100}', 'A muted background (secondary areas)'),\n 'surface-raised': color('{color.white}', 'Raised surfaces: cards'),\n 'surface-overlay': color('{color.white}', 'Floating surfaces: dialogs, popovers, menus'),\n 'surface-sunken': color('{color.gray.50}', 'Sunken surfaces: wells, code areas'),\n 'surface-inverse': color('{color.gray.900}', 'Inverted-contrast surfaces: tooltips'),\n 'surface-skeleton': color(\n '{color.gray.200}',\n \"The background of VSkeletonLoader's silhouettes, from which its highlight is derived\",\n ),\n\n 'text-on-inverse': color('{color.white}', 'Text set on an inverted surface'),\n\n text: color('{color.gray.900}', 'The running text of the interface'),\n 'text-muted': color(\n '{color.gray.600}',\n 'Secondary text: hints, captions, descriptions, start icons',\n ),\n 'text-subtle': color('{color.gray.500}', 'Placeholders, disabled text'),\n 'text-on-accent': color('{color.white}', 'Text set on an accent/danger/success background'),\n 'text-on-warning': color(\n '{color.gray.950}',\n 'Text set on a solid warning background (amber too light for white)',\n ),\n\n border: color('{color.gray.200}', 'Dividers, and the frames of cards, tables and panels'),\n 'border-strong': color('{color.gray.300}', 'The borders of form controls'),\n 'border-on-fill': color(\n 'oklch(0% 0 0 / 0.12)',\n 'A veil edging or dividing a filled background: VButtonGroup seams, VColorPicker swatches',\n ),\n\n accent: color(\n '{color.indigo.600}',\n 'The brand color: solid buttons, checked controls, the selected item',\n ),\n 'accent-hover': color('{color.indigo.700}', 'The accent color under the pointer'),\n 'accent-active': color('{color.indigo.800}', 'The accent color while pressed'),\n 'accent-surface': color('{color.indigo.50}', 'A tinted accent background (badges, selections)'),\n 'accent-border': color(\n '{color.indigo.200}',\n 'The border of a tinted accent element, matching the accent surface',\n ),\n 'accent-text': color('{color.indigo.700}', 'Accent text on a neutral or tinted background'),\n\n danger: color('{color.red.600}', 'Destructive actions and errors: solid buttons, error states'),\n 'danger-hover': color('{color.red.700}', 'The danger color under the pointer'),\n 'danger-active': color('{color.red.800}', 'The danger color while pressed'),\n 'danger-surface': color(\n '{color.red.50}',\n 'A tinted danger background (soft buttons and chips, a destructive menu item)',\n ),\n 'danger-border': color(\n '{color.red.200}',\n 'The border of a tinted danger element, matching the danger surface',\n ),\n 'danger-text': color(\n '{color.red.700}',\n 'Danger text on a neutral or tinted background: error messages, a destructive menu item',\n ),\n\n /* Green filled surfaces need step 700 to contrast with white text. */\n success: color('{color.green.700}', 'A positive outcome: solid chips, badges, notifications'),\n 'success-hover': color('{color.green.800}', 'The success color under the pointer'),\n 'success-active': color('{color.green.900}', 'The success color while pressed'),\n 'success-surface': color(\n '{color.green.50}',\n 'A tinted success background (soft chips, badges, notifications)',\n ),\n 'success-border': color(\n '{color.green.200}',\n 'The border of a tinted success element, matching the success surface',\n ),\n 'success-text': color('{color.green.800}', 'Success text on a neutral or tinted background'),\n\n warning: color(\n '{color.amber.600}',\n 'A situation that calls for attention: solid chips, badges, notifications',\n ),\n 'warning-hover': color('{color.amber.700}', 'The warning color under the pointer'),\n 'warning-active': color('{color.amber.800}', 'The warning color while pressed'),\n 'warning-surface': color(\n '{color.amber.50}',\n 'A tinted warning background (soft chips, badges, notifications)',\n ),\n 'warning-border': color(\n '{color.amber.200}',\n 'The border of a tinted warning element, matching the warning surface',\n ),\n 'warning-text': color('{color.amber.900}', 'Warning text on a neutral or tinted background'),\n\n backdrop: color('oklch(0% 0 0 / 0.45)', 'The veil behind modal dialogs'),\n\n /*\n * Keep event colours literal: root-declared var aliases resolve their hue before cards can\n * supply per-event hues.\n */\n 'event-surface': color(\n 'oklch(0.95 0.045 265)',\n 'The face of a calendar event that carries no color of its own',\n ),\n 'event-border': color(\n 'oklch(0.85 0.08 265)',\n 'The edge of that calendar event, and the bar marking its leading side',\n ),\n 'event-text': color('oklch(0.4 0.11 265)', 'The title of that calendar event'),\n },\n text: {\n family: fontFamily('{font.family.sans}', 'The running font of every component'),\n 'family-heading': fontFamily(\n '{font.family.display}',\n 'The font of the display and heading roles, the running font until it is overridden',\n ),\n 'family-code': fontFamily(\n '{font.family.mono}',\n 'The font of code content (the code role, VInputOTP)',\n ),\n display: {\n size: dimension('{font.size.5xl}'),\n weight: fontWeight('{font.weight.bold}'),\n leading: dimension('{font.leading.none}'),\n tracking: dimension('{font.tracking.tight}'),\n },\n 'heading-1': {\n size: dimension('{font.size.4xl}'),\n weight: fontWeight('{font.weight.bold}'),\n leading: dimension('{font.leading.tight}'),\n tracking: dimension('{font.tracking.tight}'),\n },\n 'heading-2': {\n size: dimension('{font.size.2xl}'),\n weight: fontWeight('{font.weight.semibold}'),\n leading: dimension('{font.leading.tight}'),\n tracking: dimension('{font.tracking.tight}'),\n },\n 'heading-3': {\n size: dimension('{font.size.lg}'),\n weight: fontWeight('{font.weight.semibold}'),\n leading: dimension('{font.leading.snug}'),\n },\n 'heading-4': {\n size: dimension('{font.size.md}'),\n weight: fontWeight('{font.weight.semibold}'),\n leading: dimension('{font.leading.snug}'),\n },\n subtitle: {\n size: dimension('{font.size.sm}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.normal}'),\n },\n 'body-xl': {\n size: dimension('{font.size.lg}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.relaxed}'),\n },\n 'body-lg': {\n size: dimension('{font.size.md}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.relaxed}'),\n },\n 'body-md': {\n size: dimension('{font.size.sm}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.normal}'),\n },\n 'body-sm': {\n size: dimension('{font.size.xs}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.normal}'),\n },\n label: {\n size: dimension('{font.size.sm}'),\n weight: fontWeight('{font.weight.medium}'),\n leading: dimension('{font.leading.snug}'),\n },\n /* Choice text uses label dimensions at regular weight to remain distinct from field labels. */\n choice: {\n size: dimension('{font.size.sm}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.snug}'),\n },\n caption: {\n size: dimension('{font.size.xs}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.snug}'),\n },\n overline: {\n size: dimension('{font.size.xs}'),\n weight: fontWeight('{font.weight.medium}'),\n leading: dimension('{font.leading.snug}'),\n tracking: dimension('{font.tracking.wide}'),\n },\n code: {\n size: dimension('{font.size.sm}'),\n weight: fontWeight('{font.weight.regular}'),\n leading: dimension('{font.leading.normal}'),\n },\n /* Control size comes from --control-font-size; this recipe supplies weight and leading only. */\n control: {\n weight: fontWeight('{font.weight.medium}'),\n leading: dimension('{font.leading.none}'),\n },\n },\n radius: {\n interactive: dimension('{radius.md}', 'Buttons, inputs, controls'),\n surface: dimension('{radius.lg}', 'Cards, alerts'),\n overlay: dimension('{radius.xl}', 'Dialogs, popovers, menus'),\n pill: dimension('{radius.full}', 'Full rounding: switches, badges, pill-shaped chips'),\n chip: dimension(\n '{radius.interactive}',\n 'Chips with shape=\"chip\", which follow the interactive radius by default',\n ),\n },\n /** Semantic transition durations are theme-independent. */\n duration: {\n fast: duration('{duration.150}', 'Color and border changes on hover, focus and press'),\n base: duration('{duration.200}', 'The default: a panel opening, a value moving'),\n slow: duration('{duration.300}', 'Movements large enough to be followed by the eye'),\n },\n focus: {\n 'ring-color': color(\n '{color.indigo.500}',\n 'The keyboard focus ring, which has to stand out against the page',\n ),\n 'ring-width': dimension('2px', 'The thickness of the focus ring'),\n 'ring-offset': dimension('2px', 'The gap between a control and its focus ring'),\n },\n density: {\n delta: dimension(\n '0px',\n 'What the density takes off every control height and component padding: 0px for the standard scale, the --vectis-space-1 step for the compact one',\n ),\n },\n control: {\n 'height-xs': dimension(\n '1.5rem',\n 'The height of every control at size=\"xs\" (24px), less the density delta',\n ),\n 'height-sm': dimension(\n '2rem',\n 'The height of every control at size=\"sm\" (32px), less the density delta',\n ),\n 'height-md': dimension(\n '2.5rem',\n 'The height of every control at size=\"md\" (40px), less the density delta',\n ),\n 'height-lg': dimension(\n '3rem',\n 'The height of every control at size=\"lg\" (48px), less the density delta',\n ),\n 'height-xl': dimension(\n '3.5rem',\n 'The height of every control at size=\"xl\" (56px), less the density delta',\n ),\n 'border-width': dimension('2px', 'The border of checkable controls (VCheckbox, VRadio)'),\n 'size-check': dimension('1.25rem', 'The box of checkable controls (VCheckbox, VRadio)'),\n 'size-check-mark': dimension('0.875rem', \"The tick inside VCheckbox's box\"),\n 'size-check-dot': dimension('0.5rem', \"The dot inside VRadio's circle\"),\n 'size-switch-w': dimension('2.5rem', \"The width of VSwitch's track\"),\n 'size-switch-h': dimension('1.25rem', \"The height of VSwitch's track\"),\n 'size-switch-pad': dimension(\n '0.125rem',\n \"The gap between VSwitch's thumb and the edge of its track\",\n ),\n 'action-size-sm': dimension(\n '1.25rem',\n 'The inner buttons of sm input fields (clear, a clickable icon)',\n ),\n 'action-size-md': dimension(\n '1.5rem',\n 'The inner buttons of md input fields (clear, a clickable icon)',\n ),\n 'action-size-lg': dimension(\n '1.75rem',\n 'The inner buttons of lg input fields (clear, a clickable icon)',\n ),\n 'size-slider-track': dimension('0.375rem', \"The thickness of VSlider's track\"),\n 'size-slider-thumb': dimension('1.25rem', \"The diameter of VSlider's thumb\"),\n 'size-slider-length': dimension('10rem', 'The default length of a vertical VSlider'),\n 'size-slider-field': dimension('5rem', \"The width of VSlider's number fields\"),\n 'size-carousel-block': dimension(\n '24rem',\n \"The default block size of VCarousel's viewport, which a vertical carousel needs to lay its slides out\",\n ),\n 'size-carousel-indicator': dimension(\n '0.625rem',\n 'The diameter of a VCarousel indicator dot (its hit area comes from --vectis-control-height-xs)',\n ),\n 'size-carousel-indicator-active': dimension(\n '1.25rem',\n 'The length of the active VCarousel indicator, which stretches from a dot into a pill',\n ),\n 'size-combobox-list-max-block': dimension(\n '18rem',\n \"The maximum height of VCombobox's list panel (the scrolling area)\",\n ),\n 'size-select-list-max-block': dimension(\n '18rem',\n \"The maximum height of VSelect's list panel (the scrolling area)\",\n ),\n 'size-menu-min': dimension('11rem', \"The minimum width of VMenu's panel\"),\n 'size-menu-max': dimension('20rem', \"The maximum width of VMenu's panel\"),\n 'size-progress-linear-thickness': dimension(\n '0.25rem',\n \"The default thickness of VProgressLinear's bar (4px)\",\n ),\n 'size-progress-linear-length': dimension(\n '10rem',\n 'The default length of a vertical VProgressLinear, which a height set on the bar replaces',\n ),\n 'size-meter-thickness-sm': dimension('0.25rem', 'The thickness of a small VMeter (4px)'),\n 'size-meter-thickness-md': dimension('0.5rem', 'The thickness of a medium VMeter (8px)'),\n 'size-meter-thickness-lg': dimension('0.75rem', 'The thickness of a large VMeter (12px)'),\n 'size-meter-segment-gap': dimension('0.125rem', 'The gap between two VMeter segments (2px)'),\n 'size-progress-circular-diameter': dimension(\n '3rem',\n 'The default diameter of VProgressCircular',\n ),\n 'size-progress-circular-thickness': dimension(\n '0.25rem',\n 'The default stroke thickness of VProgressCircular (4px)',\n ),\n 'size-skeleton-surface': dimension(\n '6rem',\n 'The default height of a surface-shaped VSkeletonLoader: a card, an image (96px)',\n ),\n 'size-resizable-hit': dimension(\n '0.75rem',\n 'The width of the strip around a VResizable handle that catches the pointer (12px)',\n ),\n 'size-resizable-grip-length': dimension(\n '1.5rem',\n 'The length of the grip VResizable draws on its handles under `grip` (24px)',\n ),\n 'size-resizable-grip-thickness': dimension(\n '0.5rem',\n 'The thickness of the grip VResizable draws on its handles under `grip` (8px)',\n ),\n 'size-toast-width': dimension('22rem', 'The default width of a toast'),\n 'size-tooltip-max': dimension('18rem', 'The widest a tooltip grows before it wraps (288px)'),\n 'size-hover-card-max': dimension('20rem', 'The widest a VHoverCard grows (320px)'),\n 'size-dialog-width': dimension(\n '25rem',\n 'The default width of VDialog and VDialogAlert (400px), when no `width` is given',\n ),\n 'size-command-palette-width': dimension(\n '40rem',\n 'The default width of VCommandPalette (640px), when no `width` is given',\n ),\n 'size-command-palette-list-max-block': dimension(\n '20rem',\n \"The tallest VCommandPalette's list of commands grows before it scrolls (320px)\",\n ),\n 'size-command-palette-offset': dimension(\n '6rem',\n 'The distance from the top of the viewport to VCommandPalette, which keeps its search field still as the list changes height (96px)',\n ),\n 'size-stepper-indicator': dimension(\n '2rem',\n 'The diameter of the circle holding a VStepper step number (32px)',\n ),\n 'size-stepper-connector-min': dimension(\n '1.5rem',\n 'The shortest a horizontal VStepper connector gets between two steps (24px)',\n ),\n 'size-timeline-dot-sm': dimension(\n '0.5rem',\n 'The dot marking an event of a small VTimeline (8px)',\n ),\n 'size-timeline-dot-md': dimension('0.625rem', 'The dot marking an event of a VTimeline (10px)'),\n 'size-timeline-icon-sm': dimension(\n '1.5rem',\n 'The round badge holding the icon of an event in a small VTimeline (24px)',\n ),\n 'size-timeline-icon-md': dimension(\n '2rem',\n 'The round badge holding the icon of an event in a VTimeline (32px)',\n ),\n 'size-timeline-item-min': dimension(\n '12rem',\n 'The narrowest an event of a horizontal VTimeline gets before the list scrolls (192px)',\n ),\n 'size-rating-sm': dimension('1.25rem', 'The icon of a small VRating (20px)'),\n 'size-rating-md': dimension('1.5rem', 'The icon of a medium VRating (24px)'),\n 'size-rating-lg': dimension('2rem', 'The icon of a large VRating (32px)'),\n 'size-drawer-sm': dimension(\n '20rem',\n 'The width of a small VDrawer on a side, or the height of one at the top or bottom (320px)',\n ),\n 'size-drawer-md': dimension(\n '25rem',\n 'The width of a medium VDrawer on a side, or the height of one at the top or bottom (400px)',\n ),\n 'size-drawer-lg': dimension(\n '35rem',\n 'The width of a large VDrawer on a side, or the height of one at the top or bottom (560px)',\n ),\n 'size-snackbar-min': dimension('18rem', 'The minimum width of a snackbar (288px)'),\n 'size-snackbar-max': dimension('36rem', 'The maximum width of a snackbar (576px)'),\n 'size-card-media': dimension(\n '12rem',\n 'The width a horizontal VCard gives its media before the content wraps under it (192px)',\n ),\n 'size-card-body-min': dimension(\n '16rem',\n 'The narrowest content of a horizontal VCard: below it, the media moves above the content',\n ),\n 'size-empty-state-media-sm': dimension(\n '2.5rem',\n 'The diameter of the icon badge of a small VEmptyState (40px)',\n ),\n 'size-empty-state-media-md': dimension(\n '3rem',\n 'The diameter of the icon badge of a medium VEmptyState (48px)',\n ),\n 'size-empty-state-media-lg': dimension(\n '4rem',\n 'The diameter of the icon badge of a large VEmptyState (64px)',\n ),\n 'size-empty-state-text-max': dimension(\n '28rem',\n 'The widest the title and description of a VEmptyState run before they wrap (448px)',\n ),\n 'size-field-label': dimension(\n '10rem',\n 'The width of a VField label placed beside its control, before the control wraps under it (160px)',\n ),\n 'size-field-control-min': dimension(\n '16rem',\n 'The narrowest control of a VField with a side label: below it, the label moves above the control',\n ),\n 'size-badge-h': dimension('1.25rem', 'The height of a VBadge pill'),\n 'size-badge-dot': dimension('0.625rem', 'The diameter of VBadge in dot mode'),\n 'size-badge-ring': dimension('2px', 'The detaching ring of a bordered VBadge'),\n 'size-avatar-ring': dimension('2px', 'The ring separating stacked avatars (VAvatarGroup)'),\n 'size-color-picker-width': dimension('16rem', 'The width of VColorPicker (256px)'),\n 'size-color-picker-area': dimension(\n '10rem',\n \"The height of VColorPicker's saturation and brightness area (160px)\",\n ),\n 'size-color-picker-track': dimension(\n '0.75rem',\n \"The thickness of VColorPicker's hue and opacity tracks (12px)\",\n ),\n 'size-color-picker-thumb': dimension(\n '1.25rem',\n \"The diameter of VColorPicker's thumbs, on the area and the tracks (20px)\",\n ),\n 'size-color-picker-preview': dimension(\n '2rem',\n 'The disc showing the current colour in VColorPicker (32px)',\n ),\n 'size-color-picker-format': dimension(\n '6rem',\n \"The width of VColorPicker's format menu, which holds its longest name (96px)\",\n ),\n 'size-color-picker-swatch': dimension('1.5rem', 'The side of a VColorPicker swatch (24px)'),\n 'size-color-picker-checker': dimension(\n '0.5rem',\n 'The side of the checkerboard showing through a translucent colour (8px)',\n ),\n 'size-date-picker-cell': dimension('2.5rem', 'The side of a VDatePicker day cell'),\n 'size-date-picker-day': dimension(\n '{control.height.md}',\n 'The diameter of the disc a VDatePicker day is drawn on; the cell grows to hold it',\n ),\n 'size-date-picker-dot': dimension('0.25rem', 'The diameter of a VDatePicker event dot'),\n 'size-date-picker-nav-min': dimension(\n '5.375rem',\n \"The minimum width of VDatePicker's month/year picker buttons (about 86px)\",\n ),\n 'size-tab-indicator': dimension(\n '2px',\n 'The thickness of the active tab indicator (VTabs, every variant but inset)',\n ),\n 'size-table-search': dimension('16rem', \"The width of VDataTable's search field\"),\n 'size-time-picker-dial': dimension('16rem', \"The diameter of VTimePicker's clock face\"),\n 'size-time-picker-number': dimension(\n '3rem',\n \"A numeral cell on VTimePicker's face, and the hand's dot on a marker\",\n ),\n 'size-time-picker-center': dimension('0.5rem', \"The center dot of VTimePicker's face\"),\n 'size-time-picker-hand': dimension('2px', \"The thickness of the hand on VTimePicker's face\"),\n 'size-time-picker-hand-minor': dimension(\n '1rem',\n \"The dot of VTimePicker's hand on a minute off the 5-minute markers\",\n ),\n 'size-file-picker-min-block': dimension(\n '10rem',\n \"The minimum height of VFilePicker's drop zone: icon, two lines, separator and button\",\n ),\n 'size-file-picker-icon': dimension(\n '2.5rem',\n \"The large icon at the top of VFilePicker's drop zone\",\n ),\n 'size-file-picker-thumb': dimension(\n '2.5rem',\n 'The thumbnail square of a VFilePicker preview row (an image, or its type icon)',\n ),\n /*\n * This hour height must leave room for a readable title in short events; cards have no\n * minimum height.\n */\n 'size-calendar-hour': dimension('4rem', \"The height of one hour in VCalendar's time grid\"),\n 'size-calendar-gutter': dimension(\n '4.5rem',\n \"The column of hour labels beside VCalendar's time grid, wide enough for a 12-hour clock's '12:00 AM' on one line\",\n ),\n 'size-calendar-tick': dimension(\n '0.375rem',\n \"How far an hour's rule runs back into VCalendar's gutter, tying the label to its line\",\n ),\n /*\n * Keep this visual edge-strip width aligned with EDGE_BAND in VCalendar/edgeStep.ts so\n * paging starts where the highlight appears.\n */\n 'size-calendar-edge': dimension(\n '3rem',\n 'The strip at the side of VCalendar that pages the view when a dragged event rests on it',\n ),\n 'size-calendar-day-min': dimension(\n '5rem',\n 'The width a VCalendar day column may not go below, past which the grid scrolls',\n ),\n 'size-calendar-handle': dimension(\n '0.5rem',\n \"The strip along a VCalendar card's bottom edge that its end is dragged by\",\n ),\n 'size-calendar-allday-lane': dimension('1.5rem', \"One lane of VCalendar's all-day band\"),\n 'size-calendar-allday-max': dimension(\n '7rem',\n \"The height past which VCalendar's all-day band scrolls instead of growing\",\n ),\n 'size-calendar-now-dot': dimension('0.625rem', \"The dot on VCalendar's current-time line\"),\n 'size-calendar-event-edge': dimension(\n '3px',\n 'The width of the coloured leading edge of a VCalendar event',\n ),\n 'size-calendar-gap': dimension(\n '0.125rem',\n 'The gap VCalendar keeps between two events, side by side in a day or stacked in a month',\n ),\n 'size-calendar-grip': dimension(\n '1rem',\n \"The length of the grip drawn on a VCalendar card's resize strip\",\n ),\n 'size-calendar-grip-thickness': dimension(\n '2px',\n \"The thickness of that grip, which is also its distance from the card's bottom edge\",\n ),\n 'size-calendar-year-month': dimension(\n '13rem',\n \"The narrowest a mini-month of VCalendar's year view gets before the year reflows\",\n ),\n /*\n * Keep enough cell height for monthEventLimit chips and the overflow line; clipped cells do\n * not scroll to reveal hidden rows.\n */\n 'size-calendar-month-cell': dimension(\n '8.5rem',\n \"The minimum height of a day in VCalendar's month view\",\n ),\n 'size-calendar-year-cell': dimension(\n '1.5rem',\n \"The side of a day square in the mini-months of VCalendar's year view\",\n ),\n },\n icon: {\n 'size-sm': dimension('1rem', 'The icon size of xs controls (16px)'),\n 'size-md': dimension('1.25rem', 'The icon size of sm and md controls (20px)'),\n 'size-lg': dimension('1.5rem', 'The icon size of lg and xl controls (24px)'),\n },\n} satisfies TokenGroup\n"],"mappings":";;AAMA,IAAaA,IAAW;CACtB,OAAO;EACL,SAASC,EAAM,iBAAiB,6BAA6B;EAC7D,iBAAiBA,EAAM,oBAAoB,sCAAsC;EACjF,kBAAkBA,EAAM,iBAAiB,wBAAwB;EACjE,mBAAmBA,EAAM,iBAAiB,6CAA6C;EACvF,kBAAkBA,EAAM,mBAAmB,oCAAoC;EAC/E,mBAAmBA,EAAM,oBAAoB,sCAAsC;EACnF,oBAAoBA,EAClB,oBACA,sFACF;EAEA,mBAAmBA,EAAM,iBAAiB,iCAAiC;EAE3E,MAAMA,EAAM,oBAAoB,mCAAmC;EACnE,cAAcA,EACZ,oBACA,4DACF;EACA,eAAeA,EAAM,oBAAoB,6BAA6B;EACtE,kBAAkBA,EAAM,iBAAiB,iDAAiD;EAC1F,mBAAmBA,EACjB,oBACA,oEACF;EAEA,QAAQA,EAAM,oBAAoB,sDAAsD;EACxF,iBAAiBA,EAAM,oBAAoB,8BAA8B;EACzE,kBAAkBA,EAChB,wBACA,0FACF;EAEA,QAAQA,EACN,sBACA,qEACF;EACA,gBAAgBA,EAAM,sBAAsB,oCAAoC;EAChF,iBAAiBA,EAAM,sBAAsB,gCAAgC;EAC7E,kBAAkBA,EAAM,qBAAqB,iDAAiD;EAC9F,iBAAiBA,EACf,sBACA,oEACF;EACA,eAAeA,EAAM,sBAAsB,+CAA+C;EAE1F,QAAQA,EAAM,mBAAmB,6DAA6D;EAC9F,gBAAgBA,EAAM,mBAAmB,oCAAoC;EAC7E,iBAAiBA,EAAM,mBAAmB,gCAAgC;EAC1E,kBAAkBA,EAChB,kBACA,8EACF;EACA,iBAAiBA,EACf,mBACA,oEACF;EACA,eAAeA,EACb,mBACA,wFACF;EAGA,SAASA,EAAM,qBAAqB,wDAAwD;EAC5F,iBAAiBA,EAAM,qBAAqB,qCAAqC;EACjF,kBAAkBA,EAAM,qBAAqB,iCAAiC;EAC9E,mBAAmBA,EACjB,oBACA,iEACF;EACA,kBAAkBA,EAChB,qBACA,sEACF;EACA,gBAAgBA,EAAM,qBAAqB,gDAAgD;EAE3F,SAASA,EACP,qBACA,0EACF;EACA,iBAAiBA,EAAM,qBAAqB,qCAAqC;EACjF,kBAAkBA,EAAM,qBAAqB,iCAAiC;EAC9E,mBAAmBA,EACjB,oBACA,iEACF;EACA,kBAAkBA,EAChB,qBACA,sEACF;EACA,gBAAgBA,EAAM,qBAAqB,gDAAgD;EAE3F,UAAUA,EAAM,wBAAwB,+BAA+B;EAMvE,iBAAiBA,EACf,yBACA,+DACF;EACA,gBAAgBA,EACd,wBACA,uEACF;EACA,cAAcA,EAAM,uBAAuB,kCAAkC;CAC/E;CACA,MAAM;EACJ,QAAQC,EAAW,sBAAsB,qCAAqC;EAC9E,kBAAkBA,EAChB,yBACA,oFACF;EACA,eAAeA,EACb,sBACA,qDACF;EACA,SAAS;GACP,MAAMC,EAAU,iBAAiB;GACjC,QAAQC,EAAW,oBAAoB;GACvC,SAASD,EAAU,qBAAqB;GACxC,UAAUA,EAAU,uBAAuB;EAC7C;EACA,aAAa;GACX,MAAMA,EAAU,iBAAiB;GACjC,QAAQC,EAAW,oBAAoB;GACvC,SAASD,EAAU,sBAAsB;GACzC,UAAUA,EAAU,uBAAuB;EAC7C;EACA,aAAa;GACX,MAAMA,EAAU,iBAAiB;GACjC,QAAQC,EAAW,wBAAwB;GAC3C,SAASD,EAAU,sBAAsB;GACzC,UAAUA,EAAU,uBAAuB;EAC7C;EACA,aAAa;GACX,MAAMA,EAAU,gBAAgB;GAChC,QAAQC,EAAW,wBAAwB;GAC3C,SAASD,EAAU,qBAAqB;EAC1C;EACA,aAAa;GACX,MAAMA,EAAU,gBAAgB;GAChC,QAAQC,EAAW,wBAAwB;GAC3C,SAASD,EAAU,qBAAqB;EAC1C;EACA,UAAU;GACR,MAAMA,EAAU,gBAAgB;GAChC,QAAQC,EAAW,uBAAuB;GAC1C,SAASD,EAAU,uBAAuB;EAC5C;EACA,WAAW;GACT,MAAMA,EAAU,gBAAgB;GAChC,QAAQC,EAAW,uBAAuB;GAC1C,SAASD,EAAU,wBAAwB;EAC7C;EACA,WAAW;GACT,MAAMA,EAAU,gBAAgB;GAChC,QAAQC,EAAW,uBAAuB;GAC1C,SAASD,EAAU,wBAAwB;EAC7C;EACA,WAAW;GACT,MAAMA,EAAU,gBAAgB;GAChC,QAAQC,EAAW,uBAAuB;GAC1C,SAASD,EAAU,uBAAuB;EAC5C;EACA,WAAW;GACT,MAAMA,EAAU,gBAAgB;GAChC,QAAQC,EAAW,uBAAuB;GAC1C,SAASD,EAAU,uBAAuB;EAC5C;EACA,OAAO;GACL,MAAMA,EAAU,gBAAgB;GAChC,QAAQC,EAAW,sBAAsB;GACzC,SAASD,EAAU,qBAAqB;EAC1C;EAEA,QAAQ;GACN,MAAMA,EAAU,gBAAgB;GAChC,QAAQC,EAAW,uBAAuB;GAC1C,SAASD,EAAU,qBAAqB;EAC1C;EACA,SAAS;GACP,MAAMA,EAAU,gBAAgB;GAChC,QAAQC,EAAW,uBAAuB;GAC1C,SAASD,EAAU,qBAAqB;EAC1C;EACA,UAAU;GACR,MAAMA,EAAU,gBAAgB;GAChC,QAAQC,EAAW,sBAAsB;GACzC,SAASD,EAAU,qBAAqB;GACxC,UAAUA,EAAU,sBAAsB;EAC5C;EACA,MAAM;GACJ,MAAMA,EAAU,gBAAgB;GAChC,QAAQC,EAAW,uBAAuB;GAC1C,SAASD,EAAU,uBAAuB;EAC5C;EAEA,SAAS;GACP,QAAQC,EAAW,sBAAsB;GACzC,SAASD,EAAU,qBAAqB;EAC1C;CACF;CACA,QAAQ;EACN,aAAaA,EAAU,eAAe,2BAA2B;EACjE,SAASA,EAAU,eAAe,eAAe;EACjD,SAASA,EAAU,eAAe,0BAA0B;EAC5D,MAAMA,EAAU,iBAAiB,oDAAoD;EACrF,MAAMA,EACJ,wBACA,2EACF;CACF;CAEA,UAAU;EACR,MAAME,EAAS,kBAAkB,oDAAoD;EACrF,MAAMA,EAAS,kBAAkB,8CAA8C;EAC/E,MAAMA,EAAS,kBAAkB,kDAAkD;CACrF;CACA,OAAO;EACL,cAAcJ,EACZ,sBACA,kEACF;EACA,cAAcE,EAAU,OAAO,iCAAiC;EAChE,eAAeA,EAAU,OAAO,8CAA8C;CAChF;CACA,SAAS,EACP,OAAOA,EACL,OACA,kJACF,EACF;CACA,SAAS;EACP,aAAaA,EACX,UACA,2EACF;EACA,aAAaA,EACX,QACA,2EACF;EACA,aAAaA,EACX,UACA,2EACF;EACA,aAAaA,EACX,QACA,2EACF;EACA,aAAaA,EACX,UACA,2EACF;EACA,gBAAgBA,EAAU,OAAO,sDAAsD;EACvF,cAAcA,EAAU,WAAW,mDAAmD;EACtF,mBAAmBA,EAAU,YAAY,iCAAiC;EAC1E,kBAAkBA,EAAU,UAAU,gCAAgC;EACtE,iBAAiBA,EAAU,UAAU,8BAA8B;EACnE,iBAAiBA,EAAU,WAAW,+BAA+B;EACrE,mBAAmBA,EACjB,YACA,2DACF;EACA,kBAAkBA,EAChB,WACA,gEACF;EACA,kBAAkBA,EAChB,UACA,gEACF;EACA,kBAAkBA,EAChB,WACA,gEACF;EACA,qBAAqBA,EAAU,YAAY,kCAAkC;EAC7E,qBAAqBA,EAAU,WAAW,iCAAiC;EAC3E,sBAAsBA,EAAU,SAAS,0CAA0C;EACnF,qBAAqBA,EAAU,QAAQ,sCAAsC;EAC7E,uBAAuBA,EACrB,SACA,uGACF;EACA,2BAA2BA,EACzB,YACA,gGACF;EACA,kCAAkCA,EAChC,WACA,sFACF;EACA,gCAAgCA,EAC9B,SACA,mEACF;EACA,8BAA8BA,EAC5B,SACA,iEACF;EACA,iBAAiBA,EAAU,SAAS,oCAAoC;EACxE,iBAAiBA,EAAU,SAAS,oCAAoC;EACxE,kCAAkCA,EAChC,WACA,sDACF;EACA,+BAA+BA,EAC7B,SACA,0FACF;EACA,2BAA2BA,EAAU,WAAW,uCAAuC;EACvF,2BAA2BA,EAAU,UAAU,wCAAwC;EACvF,2BAA2BA,EAAU,WAAW,wCAAwC;EACxF,0BAA0BA,EAAU,YAAY,2CAA2C;EAC3F,mCAAmCA,EACjC,QACA,2CACF;EACA,oCAAoCA,EAClC,WACA,yDACF;EACA,yBAAyBA,EACvB,QACA,iFACF;EACA,sBAAsBA,EACpB,WACA,mFACF;EACA,8BAA8BA,EAC5B,UACA,4EACF;EACA,iCAAiCA,EAC/B,UACA,8EACF;EACA,oBAAoBA,EAAU,SAAS,8BAA8B;EACrE,oBAAoBA,EAAU,SAAS,oDAAoD;EAC3F,uBAAuBA,EAAU,SAAS,uCAAuC;EACjF,qBAAqBA,EACnB,SACA,iFACF;EACA,8BAA8BA,EAC5B,SACA,wEACF;EACA,uCAAuCA,EACrC,SACA,gFACF;EACA,+BAA+BA,EAC7B,QACA,oIACF;EACA,0BAA0BA,EACxB,QACA,kEACF;EACA,8BAA8BA,EAC5B,UACA,4EACF;EACA,wBAAwBA,EACtB,UACA,qDACF;EACA,wBAAwBA,EAAU,YAAY,gDAAgD;EAC9F,yBAAyBA,EACvB,UACA,0EACF;EACA,yBAAyBA,EACvB,QACA,oEACF;EACA,0BAA0BA,EACxB,SACA,uFACF;EACA,kBAAkBA,EAAU,WAAW,oCAAoC;EAC3E,kBAAkBA,EAAU,UAAU,qCAAqC;EAC3E,kBAAkBA,EAAU,QAAQ,oCAAoC;EACxE,kBAAkBA,EAChB,SACA,2FACF;EACA,kBAAkBA,EAChB,SACA,4FACF;EACA,kBAAkBA,EAChB,SACA,2FACF;EACA,qBAAqBA,EAAU,SAAS,yCAAyC;EACjF,qBAAqBA,EAAU,SAAS,yCAAyC;EACjF,mBAAmBA,EACjB,SACA,wFACF;EACA,sBAAsBA,EACpB,SACA,0FACF;EACA,6BAA6BA,EAC3B,UACA,8DACF;EACA,6BAA6BA,EAC3B,QACA,+DACF;EACA,6BAA6BA,EAC3B,QACA,8DACF;EACA,6BAA6BA,EAC3B,SACA,oFACF;EACA,oBAAoBA,EAClB,SACA,kGACF;EACA,0BAA0BA,EACxB,SACA,kGACF;EACA,gBAAgBA,EAAU,WAAW,6BAA6B;EAClE,kBAAkBA,EAAU,YAAY,oCAAoC;EAC5E,mBAAmBA,EAAU,OAAO,yCAAyC;EAC7E,oBAAoBA,EAAU,OAAO,oDAAoD;EACzF,2BAA2BA,EAAU,SAAS,mCAAmC;EACjF,0BAA0BA,EACxB,SACA,qEACF;EACA,2BAA2BA,EACzB,WACA,+DACF;EACA,2BAA2BA,EACzB,WACA,0EACF;EACA,6BAA6BA,EAC3B,QACA,4DACF;EACA,4BAA4BA,EAC1B,QACA,8EACF;EACA,4BAA4BA,EAAU,UAAU,0CAA0C;EAC1F,6BAA6BA,EAC3B,UACA,yEACF;EACA,yBAAyBA,EAAU,UAAU,oCAAoC;EACjF,wBAAwBA,EACtB,uBACA,mFACF;EACA,wBAAwBA,EAAU,WAAW,yCAAyC;EACtF,4BAA4BA,EAC1B,YACA,2EACF;EACA,sBAAsBA,EACpB,OACA,4EACF;EACA,qBAAqBA,EAAU,SAAS,wCAAwC;EAChF,yBAAyBA,EAAU,SAAS,0CAA0C;EACtF,2BAA2BA,EACzB,QACA,sEACF;EACA,2BAA2BA,EAAU,UAAU,sCAAsC;EACrF,yBAAyBA,EAAU,OAAO,iDAAiD;EAC3F,+BAA+BA,EAC7B,QACA,oEACF;EACA,8BAA8BA,EAC5B,SACA,sFACF;EACA,yBAAyBA,EACvB,UACA,sDACF;EACA,0BAA0BA,EACxB,UACA,gFACF;EAKA,sBAAsBA,EAAU,QAAQ,iDAAiD;EACzF,wBAAwBA,EACtB,UACA,kHACF;EACA,sBAAsBA,EACpB,YACA,uFACF;EAKA,sBAAsBA,EACpB,QACA,yFACF;EACA,yBAAyBA,EACvB,QACA,gFACF;EACA,wBAAwBA,EACtB,UACA,2EACF;EACA,6BAA6BA,EAAU,UAAU,sCAAsC;EACvF,4BAA4BA,EAC1B,QACA,2EACF;EACA,yBAAyBA,EAAU,YAAY,0CAA0C;EACzF,4BAA4BA,EAC1B,OACA,6DACF;EACA,qBAAqBA,EACnB,YACA,yFACF;EACA,sBAAsBA,EACpB,QACA,iEACF;EACA,gCAAgCA,EAC9B,OACA,oFACF;EACA,4BAA4BA,EAC1B,SACA,kFACF;EAKA,4BAA4BA,EAC1B,UACA,uDACF;EACA,2BAA2BA,EACzB,UACA,sEACF;CACF;CACA,MAAM;EACJ,WAAWA,EAAU,QAAQ,qCAAqC;EAClE,WAAWA,EAAU,WAAW,4CAA4C;EAC5E,WAAWA,EAAU,UAAU,4CAA4C;CAC7E;AACF"}