vectis-ui 0.10.0 → 0.10.2
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.
- package/dist/components/VAccordion/VAccordion.js.map +1 -1
- package/dist/components/VAccordion/VAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VAccordion/VAccordionItem.d.ts +6 -21
- package/dist/components/VAccordion/VAccordionItem.js.map +1 -1
- package/dist/components/VAccordion/VAccordionItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VAccordion/context.js.map +1 -1
- package/dist/components/VAvatar/VAvatar.d.ts +2 -12
- package/dist/components/VAvatar/VAvatar.js.map +1 -1
- package/dist/components/VAvatar/VAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VAvatar/VAvatarGroup.d.ts +2 -2
- package/dist/components/VAvatar/VAvatarGroup.js.map +1 -1
- package/dist/components/VAvatar/VAvatarGroup.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/components/VAvatar/VAvatarGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VAvatar/context.d.ts +1 -5
- package/dist/components/VAvatar/context.js.map +1 -1
- package/dist/components/VBadge/VBadge.d.ts +13 -27
- package/dist/components/VBadge/VBadge.js.map +1 -1
- package/dist/components/VBadge/VBadge.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VBreadcrumb/VBreadcrumb.d.ts +3 -9
- package/dist/components/VBreadcrumb/VBreadcrumb.js.map +1 -1
- package/dist/components/VBreadcrumb/VBreadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VButton/VButton.d.ts +10 -17
- package/dist/components/VButton/VButton.js.map +1 -1
- package/dist/components/VButton/VButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VButton/VButtonGroup.d.ts +6 -15
- package/dist/components/VButton/VButtonGroup.js.map +1 -1
- package/dist/components/VButton/VButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VButton/context.d.ts +1 -9
- package/dist/components/VButton/context.js.map +1 -1
- package/dist/components/VCalendar/VCalendar.d.ts +9 -24
- package/dist/components/VCalendar/VCalendar.js.map +1 -1
- package/dist/components/VCalendar/VCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VCalendar/VCalendarEvent.d.ts +4 -13
- package/dist/components/VCalendar/VCalendarEvent.js.map +1 -1
- package/dist/components/VCalendar/VCalendarEvent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VCalendar/VCalendarMonth.js.map +1 -1
- package/dist/components/VCalendar/VCalendarMonth.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VCalendar/VCalendarTimeGrid.d.ts +1 -5
- package/dist/components/VCalendar/VCalendarTimeGrid.js.map +1 -1
- package/dist/components/VCalendar/VCalendarTimeGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VCalendar/VCalendarYear.js.map +1 -1
- package/dist/components/VCalendar/VCalendarYear.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VCalendar/color.d.ts +1 -7
- package/dist/components/VCalendar/color.js.map +1 -1
- package/dist/components/VCalendar/edgeStep.d.ts +5 -15
- package/dist/components/VCalendar/edgeStep.js.map +1 -1
- package/dist/components/VCalendar/gesture.d.ts +12 -36
- package/dist/components/VCalendar/gesture.js.map +1 -1
- package/dist/components/VCalendar/keyboard.d.ts +5 -42
- package/dist/components/VCalendar/keyboard.js.map +1 -1
- package/dist/components/VCalendar/layout.d.ts +38 -199
- package/dist/components/VCalendar/layout.js.map +1 -1
- package/dist/components/VCalendar/timeGrid.d.ts +3 -25
- package/dist/components/VCalendar/timeGrid.js.map +1 -1
- package/dist/components/VCalendar/types.d.ts +6 -23
- package/dist/components/VCarousel/VCarousel.d.ts +25 -96
- package/dist/components/VCarousel/VCarousel.js.map +1 -1
- package/dist/components/VCarousel/VCarousel.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/components/VCarousel/VCarousel.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VCarousel/VCarouselItem.d.ts +1 -6
- package/dist/components/VCarousel/VCarouselItem.js.map +1 -1
- package/dist/components/VCarousel/VCarouselItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VCarousel/context.js.map +1 -1
- package/dist/components/VCheckbox/VCheckbox.d.ts +1 -5
- package/dist/components/VCheckbox/VCheckbox.js.map +1 -1
- package/dist/components/VCheckbox/VCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VChip/VChip.d.ts +2 -8
- package/dist/components/VChip/VChip.js.map +1 -1
- package/dist/components/VChip/VChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VCombobox/VCombobox.d.ts +21 -59
- package/dist/components/VCombobox/VCombobox.js.map +1 -1
- package/dist/components/VCombobox/VCombobox.vue_vue_type_script_setup_true_lang.js +117 -119
- package/dist/components/VCombobox/VCombobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VCombobox/VComboboxGroup.js.map +1 -1
- package/dist/components/VCombobox/VComboboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VCombobox/VComboboxOption.js.map +1 -1
- package/dist/components/VCombobox/VComboboxOption.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VCombobox/VComboboxSeparator.js.map +1 -1
- package/dist/components/VCombobox/VComboboxSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VCombobox/infiniteScroll.d.ts +4 -10
- package/dist/components/VCombobox/infiniteScroll.js.map +1 -1
- package/dist/components/VDataTable/VDataTable.d.ts +11 -36
- package/dist/components/VDataTable/VDataTable.js.map +1 -1
- package/dist/components/VDataTable/VDataTable.vue_vue_type_script_setup_true_lang.js +23 -20
- package/dist/components/VDataTable/VDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VDateInput/VDateInput.d.ts +12 -21
- package/dist/components/VDateInput/VDateInput.js.map +1 -1
- package/dist/components/VDateInput/VDateInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VDateInput/mask.d.ts +14 -59
- package/dist/components/VDateInput/mask.js.map +1 -1
- package/dist/components/VDatePicker/VDatePicker.d.ts +6 -12
- package/dist/components/VDatePicker/VDatePicker.js.map +1 -1
- package/dist/components/VDatePicker/VDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VDatePicker/keyboard.d.ts +10 -42
- package/dist/components/VDatePicker/keyboard.js.map +1 -1
- package/dist/components/VDatePicker/names.d.ts +8 -22
- package/dist/components/VDatePicker/names.js.map +1 -1
- package/dist/components/VDialog/VDialog.d.ts +5 -10
- package/dist/components/VDialog/VDialog.js.map +1 -1
- package/dist/components/VDialog/VDialog.vue_vue_type_script_setup_true_lang.js +51 -53
- package/dist/components/VDialog/VDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VDialog/VDialogAlert.d.ts +2 -3
- package/dist/components/VDialog/VDialogAlert.js.map +1 -1
- package/dist/components/VDialog/VDialogAlert.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VFileInput/VFileInput.d.ts +11 -37
- package/dist/components/VFileInput/VFileInput.js.map +1 -1
- package/dist/components/VFileInput/VFileInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VFileInput/truncate.d.ts +3 -23
- package/dist/components/VFileInput/truncate.js.map +1 -1
- package/dist/components/VFilePicker/VFilePicker.d.ts +15 -65
- package/dist/components/VFilePicker/VFilePicker.js.map +1 -1
- package/dist/components/VFilePicker/VFilePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VFilePicker/fileKind.js.map +1 -1
- package/dist/components/VHotkeys/VHotkeys.d.ts +6 -15
- package/dist/components/VHotkeys/VHotkeys.js.map +1 -1
- package/dist/components/VHotkeys/VHotkeys.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VHotkeys/platform.d.ts +10 -49
- package/dist/components/VHotkeys/platform.js.map +1 -1
- package/dist/components/VIcon/VIcon.d.ts +7 -19
- package/dist/components/VIcon/VIcon.js.map +1 -1
- package/dist/components/VIcon/VIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VIcon/iconProps.d.ts +5 -19
- package/dist/components/VIcon/iconProps.js.map +1 -1
- package/dist/components/VIcon/resolver.d.ts +15 -43
- package/dist/components/VIcon/resolver.js.map +1 -1
- package/dist/components/VIcon/types.d.ts +7 -34
- package/dist/components/VIconButton/VIconButton.d.ts +2 -3
- package/dist/components/VIconButton/VIconButton.js.map +1 -1
- package/dist/components/VIconButton/VIconButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VInput/VInput.d.ts +14 -29
- package/dist/components/VInput/VInput.js.map +1 -1
- package/dist/components/VInput/VInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VInput/VInputGroup.js.map +1 -1
- package/dist/components/VInput/VInputGroup.vue_vue_type_script_setup_true_lang.js +34 -50
- package/dist/components/VInput/VInputGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VInput/context.js.map +1 -1
- package/dist/components/VInputOTP/VInputOTP.d.ts +8 -16
- package/dist/components/VInputOTP/VInputOTP.js.map +1 -1
- package/dist/components/VInputOTP/VInputOTP.vue_vue_type_script_setup_true_lang.js +55 -63
- package/dist/components/VInputOTP/VInputOTP.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VMenu/VMenu.js.map +1 -1
- package/dist/components/VMenu/VMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VMenu/VMenuGroup.d.ts +1 -6
- package/dist/components/VMenu/VMenuGroup.js.map +1 -1
- package/dist/components/VMenu/VMenuGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VMenu/VMenuItem.d.ts +0 -5
- package/dist/components/VMenu/VMenuItem.js.map +1 -1
- package/dist/components/VMenu/VMenuItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VMenu/VMenuPanel.d.ts +1 -6
- package/dist/components/VMenu/VMenuPanel.js.map +1 -1
- package/dist/components/VMenu/VMenuPanel.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/VMenu/VMenuPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VMenu/VMenuSeparator.js.map +1 -1
- package/dist/components/VMenu/VMenuSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VMenu/context.d.ts +3 -11
- package/dist/components/VMenu/context.js.map +1 -1
- package/dist/components/VPagination/VPagination.d.ts +9 -20
- package/dist/components/VPagination/VPagination.js.map +1 -1
- package/dist/components/VPagination/VPagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VPopover/VPopover.d.ts +7 -18
- package/dist/components/VPopover/VPopover.js.map +1 -1
- package/dist/components/VPopover/VPopover.vue_vue_type_script_setup_true_lang.js +23 -27
- package/dist/components/VPopover/VPopover.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VProgressCircular/VProgressCircular.d.ts +2 -6
- package/dist/components/VProgressCircular/VProgressCircular.js.map +1 -1
- package/dist/components/VProgressCircular/VProgressCircular.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VProgressLinear/VProgressLinear.d.ts +4 -15
- package/dist/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/dist/components/VProgressLinear/VProgressLinear.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VRadio/VRadio.d.ts +1 -5
- package/dist/components/VRadio/VRadio.js.map +1 -1
- package/dist/components/VRadio/VRadio.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VSeparator/VSeparator.d.ts +2 -15
- package/dist/components/VSeparator/VSeparator.js.map +1 -1
- package/dist/components/VSeparator/VSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VSideNavigation/VSideNavigation.d.ts +1 -1
- package/dist/components/VSideNavigation/VSideNavigation.js.map +1 -1
- package/dist/components/VSideNavigation/VSideNavigation.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VSideNavigation/VSideNavigationGroup.d.ts +1 -5
- package/dist/components/VSideNavigation/VSideNavigationGroup.js.map +1 -1
- package/dist/components/VSideNavigation/VSideNavigationGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VSideNavigation/VSideNavigationItem.d.ts +1 -5
- package/dist/components/VSideNavigation/VSideNavigationItem.js.map +1 -1
- package/dist/components/VSideNavigation/VSideNavigationItem.vue_vue_type_script_setup_true_lang.js +80 -75
- package/dist/components/VSideNavigation/VSideNavigationItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VSideNavigation/VSideNavigationSeparator.js.map +1 -1
- package/dist/components/VSideNavigation/context.js.map +1 -1
- package/dist/components/VSkeletonLoader/VSkeletonLoader.d.ts +6 -19
- package/dist/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
- package/dist/components/VSkeletonLoader/VSkeletonLoader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VSlider/VSlider.d.ts +5 -13
- package/dist/components/VSlider/VSlider.js.map +1 -1
- package/dist/components/VSlider/VSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VSnackbar/VSnackbar.js.map +1 -1
- package/dist/components/VSnackbar/VSnackbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VSnackbar/state.d.ts +4 -17
- package/dist/components/VSnackbar/state.js.map +1 -1
- package/dist/components/VSpinner/VSpinner.d.ts +3 -5
- package/dist/components/VSpinner/VSpinner.js.map +1 -1
- package/dist/components/VSpinner/VSpinner.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VSwitch/VSwitch.js.map +1 -1
- package/dist/components/VSwitch/VSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VTabs/VTab.d.ts +1 -5
- package/dist/components/VTabs/VTab.js.map +1 -1
- package/dist/components/VTabs/VTab.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VTabs/VTabPanel.js.map +1 -1
- package/dist/components/VTabs/VTabPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VTabs/VTabs.d.ts +5 -17
- package/dist/components/VTabs/VTabs.js.map +1 -1
- package/dist/components/VTabs/VTabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VTabs/context.js.map +1 -1
- package/dist/components/VTextarea/VTextarea.d.ts +13 -20
- package/dist/components/VTextarea/VTextarea.js.map +1 -1
- package/dist/components/VTextarea/VTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VTimeInput/VTimeInput.d.ts +8 -21
- package/dist/components/VTimeInput/VTimeInput.js.map +1 -1
- package/dist/components/VTimeInput/VTimeInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VTimeInput/search.d.ts +3 -34
- package/dist/components/VTimeInput/search.js.map +1 -1
- package/dist/components/VTimePicker/VTimePicker.d.ts +9 -31
- package/dist/components/VTimePicker/VTimePicker.js.map +1 -1
- package/dist/components/VTimePicker/VTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VTimePicker/limits.d.ts +18 -45
- package/dist/components/VTimePicker/limits.js.map +1 -1
- package/dist/components/VToast/VToast.js.map +1 -1
- package/dist/components/VToast/VToast.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VToast/VToaster.js.map +1 -1
- package/dist/components/VToast/VToaster.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VToast/state.d.ts +2 -7
- package/dist/components/VToast/state.js.map +1 -1
- package/dist/components/VToggle/VToggle.d.ts +5 -9
- package/dist/components/VToggle/VToggle.js.map +1 -1
- package/dist/components/VToggle/VToggle.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VToggle/VToggleItem.d.ts +1 -9
- package/dist/components/VToggle/VToggleItem.js.map +1 -1
- package/dist/components/VToggle/VToggleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VToggle/context.js.map +1 -1
- package/dist/components/VTooltip/VTooltip.d.ts +3 -16
- package/dist/components/VTooltip/VTooltip.js.map +1 -1
- package/dist/components/VTooltip/VTooltip.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/VTooltip/VTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/VTypography/VTypography.d.ts +4 -8
- package/dist/components/VTypography/VTypography.js.map +1 -1
- package/dist/components/VTypography/VTypography.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/composables/useAriaLabel.js.map +1 -1
- package/dist/composables/useClearable.d.ts +2 -8
- package/dist/composables/useClearable.js.map +1 -1
- package/dist/composables/useControlShape.js.map +1 -1
- package/dist/composables/useDetailsOpen.d.ts +2 -10
- package/dist/composables/useDetailsOpen.js.map +1 -1
- package/dist/composables/useFieldIds.js.map +1 -1
- package/dist/composables/useFieldPanel.d.ts +4 -17
- package/dist/composables/useFieldPanel.js.map +1 -1
- package/dist/composables/useFileDrop.js.map +1 -1
- package/dist/composables/useFileField.d.ts +1 -5
- package/dist/composables/useFileField.js.map +1 -1
- package/dist/composables/useFocusoutDismiss.js.map +1 -1
- package/dist/composables/useIconClickHandlers.d.ts +4 -19
- package/dist/composables/useIconClickHandlers.js.map +1 -1
- package/dist/composables/useInertLink.d.ts +1 -1
- package/dist/composables/useInertLink.js.map +1 -1
- package/dist/composables/useLiveAnnouncer.js.map +1 -1
- package/dist/composables/useMaskedField.d.ts +12 -27
- package/dist/composables/useMaskedField.js.map +1 -1
- package/dist/composables/usePopover.d.ts +3 -11
- package/dist/composables/usePopover.js.map +1 -1
- package/dist/composables/useProgressValue.js.map +1 -1
- package/dist/composables/useRootAttrs.d.ts +0 -9
- package/dist/composables/useRootAttrs.js +11 -4
- package/dist/composables/useRootAttrs.js.map +1 -1
- package/dist/composables/useSlotNodes.d.ts +3 -14
- package/dist/composables/useSlotNodes.js.map +1 -1
- package/dist/composables/useTextLimit.d.ts +4 -16
- package/dist/composables/useTextLimit.js.map +1 -1
- package/dist/composables/useTimer.d.ts +2 -15
- package/dist/composables/useTimer.js.map +1 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/state.d.ts +9 -38
- package/dist/i18n/state.js.map +1 -1
- package/dist/i18n/types.d.ts +19 -81
- package/dist/icons.d.ts +2 -12
- package/dist/styles.css +1 -1
- package/dist/tokens/css.d.ts +3 -16
- package/dist/tokens/css.js.map +1 -1
- package/dist/tokens/index.d.ts +5 -0
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/primitives.js.map +1 -1
- package/dist/tokens/semantic.d.ts +6 -23
- package/dist/tokens/semantic.js +5 -0
- package/dist/tokens/semantic.js.map +1 -1
- package/dist/tokens/themes/dark.js.map +1 -1
- package/dist/tokens/types.d.ts +2 -12
- package/dist/tokens/types.js.map +1 -1
- package/dist/tokens.json +14 -0
- package/dist/types.d.ts +3 -21
- package/dist/utils/array.d.ts +2 -4
- package/dist/utils/array.js.map +1 -1
- package/dist/utils/arrowNav.d.ts +2 -26
- package/dist/utils/arrowNav.js.map +1 -1
- package/dist/utils/chip.d.ts +1 -8
- package/dist/utils/chip.js.map +1 -1
- package/dist/utils/clock.d.ts +16 -39
- package/dist/utils/clock.js.map +1 -1
- package/dist/utils/css.d.ts +5 -16
- package/dist/utils/css.js.map +1 -1
- package/dist/utils/date.d.ts +17 -60
- package/dist/utils/date.js.map +1 -1
- package/dist/utils/direction.d.ts +2 -9
- package/dist/utils/direction.js.map +1 -1
- package/dist/utils/env.d.ts +2 -15
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/file.d.ts +8 -46
- package/dist/utils/file.js.map +1 -1
- package/dist/utils/focus.d.ts +1 -14
- package/dist/utils/focus.js +1 -6
- package/dist/utils/focus.js.map +1 -1
- package/dist/utils/hostWarns.d.ts +3 -8
- package/dist/utils/hostWarns.js.map +1 -1
- package/dist/utils/ids.d.ts +2 -7
- package/dist/utils/ids.js.map +1 -1
- package/dist/utils/matcher.d.ts +1 -8
- package/dist/utils/matcher.js.map +1 -1
- package/dist/utils/memo.d.ts +1 -11
- package/dist/utils/memo.js.map +1 -1
- package/dist/utils/number.d.ts +1 -7
- package/dist/utils/number.js.map +1 -1
- package/dist/utils/text.d.ts +4 -23
- package/dist/utils/text.js.map +1 -1
- package/dist/utils/time.d.ts +4 -12
- package/dist/utils/time.js.map +1 -1
- package/dist/utils/vnode.d.ts +0 -10
- package/dist/utils/vnode.js.map +1 -1
- package/package.json +1 -1
package/dist/i18n/types.d.ts
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Depth EXACTLY 2: namespace, then leaf. A leaf is finished text, or a TS function when
|
|
6
|
-
* something has to be slotted in. There is deliberately no template language and no plural
|
|
7
|
-
* engine: a parameterized message IS a hand-written function whose signature is the
|
|
8
|
-
* contract, so a translation that forgets an argument does not compile, and a plural is a
|
|
9
|
-
* ternary inside it.
|
|
10
|
-
*
|
|
11
|
-
* The two levels are structural, not aesthetic: they are what lets a partial override be
|
|
12
|
-
* merged NON-RECURSIVELY, and therefore what makes it impossible to descend into one of
|
|
13
|
-
* those functions and turn it into `{}`.
|
|
14
|
-
*
|
|
15
|
-
* Three kinds of text are deliberately absent. Whatever `Intl` derives from the tag (month
|
|
16
|
-
* and day names, field order, hour cycle); whatever is made only of digits and universal
|
|
17
|
-
* punctuation (`99+`, `+N`, an `N/M` counter, a time's colon); and the `[Component] …`
|
|
18
|
-
* warnings, which address the integrator and are never translated.
|
|
2
|
+
* Two-level message namespaces permit nonrecursive partial merging. Parameterized messages are
|
|
3
|
+
* typed functions so translations preserve their argument contracts.
|
|
19
4
|
*/
|
|
20
5
|
export interface Messages {
|
|
21
6
|
/** Words several components share, so that they are translated once rather than five times. */
|
|
@@ -53,11 +38,7 @@ export interface Messages {
|
|
|
53
38
|
ellipsis: string;
|
|
54
39
|
};
|
|
55
40
|
sideNavigation: {
|
|
56
|
-
/**
|
|
57
|
-
* What the navigation area is called. It is the component's only piece of text: the
|
|
58
|
-
* labels are written by the consumer, and whether a branch is open or closed is
|
|
59
|
-
* something the browser announces on its own.
|
|
60
|
-
*/
|
|
41
|
+
/** What the navigation area is called. */
|
|
61
42
|
label: string;
|
|
62
43
|
};
|
|
63
44
|
combobox: {
|
|
@@ -81,11 +62,7 @@ export interface Messages {
|
|
|
81
62
|
end: number;
|
|
82
63
|
total: number;
|
|
83
64
|
}) => string;
|
|
84
|
-
/**
|
|
85
|
-
* What the pagination under a table is called. It is deliberately not the same as the
|
|
86
|
-
* name a standalone pagination takes: a page holding both would otherwise offer a
|
|
87
|
-
* screen reader two navigation areas under one name, with no way to tell them apart.
|
|
88
|
-
*/
|
|
65
|
+
/** What the pagination under a table is called. */
|
|
89
66
|
pagination: string;
|
|
90
67
|
};
|
|
91
68
|
toaster: {
|
|
@@ -93,16 +70,11 @@ export interface Messages {
|
|
|
93
70
|
};
|
|
94
71
|
snackbar: {
|
|
95
72
|
/**
|
|
96
|
-
* What screen readers announce for the confirmation area itself, which is a landmark
|
|
97
|
-
*
|
|
98
|
-
* would otherwise offer two areas under one word, with no way to tell them apart.
|
|
73
|
+
* What screen readers announce for the confirmation area itself, which is a landmark of the
|
|
74
|
+
* page.
|
|
99
75
|
*/
|
|
100
76
|
label: string;
|
|
101
|
-
/**
|
|
102
|
-
* The single action a snackbar offers, when the caller does not name it. It means
|
|
103
|
-
* taking back what was just done: not cancelling a form, which is `common.cancel`
|
|
104
|
-
* and is a different word in several languages.
|
|
105
|
-
*/
|
|
77
|
+
/** The single action a snackbar offers, when the caller does not name it. */
|
|
106
78
|
action: string;
|
|
107
79
|
};
|
|
108
80
|
inputOTP: {
|
|
@@ -136,12 +108,8 @@ export interface Messages {
|
|
|
136
108
|
label: string;
|
|
137
109
|
};
|
|
138
110
|
/**
|
|
139
|
-
* The keys of a keyboard shortcut, in
|
|
140
|
-
*
|
|
141
|
-
* language, so they live with the component.
|
|
142
|
-
*
|
|
143
|
-
* Every entry below is the SPOKEN form. Where a symbol exists it wins on screen, and
|
|
144
|
-
* the word wins in what a screen reader says.
|
|
111
|
+
* The keys of a keyboard shortcut, in words. Where a symbol exists it wins on screen, and the
|
|
112
|
+
* word wins in what a screen reader says.
|
|
145
113
|
*/
|
|
146
114
|
hotkeys: {
|
|
147
115
|
/** How ⌘, the Command key on a Mac, is spoken. */
|
|
@@ -210,23 +178,13 @@ export interface Messages {
|
|
|
210
178
|
/** What the panel holding the clock is called. */
|
|
211
179
|
pickerLabel: string;
|
|
212
180
|
/**
|
|
213
|
-
* What the AM/PM button inside the field is called, the half of the day it currently
|
|
214
|
-
*
|
|
215
|
-
* it rather than replacing it: a reader arriving on the button is told which half is
|
|
216
|
-
* chosen, and hears the new one as soon as it changes.
|
|
181
|
+
* What the AM/PM button inside the field is called, the half of the day it currently shows
|
|
182
|
+
* included.
|
|
217
183
|
*/
|
|
218
184
|
meridiemValue: (value: string) => string;
|
|
219
|
-
/**
|
|
220
|
-
* The grey template shown in an empty field, "hh:mm". It is translatable because those
|
|
221
|
-
* letters are the initials of WORDS, unlike the colon between them, which is the same
|
|
222
|
-
* everywhere and lives with the time helpers.
|
|
223
|
-
*/
|
|
185
|
+
/** The grey template shown in an empty field, "hh:mm". */
|
|
224
186
|
maskPlaceholder: string;
|
|
225
|
-
/**
|
|
226
|
-
* What the field says of a time the restrictions do not allow. It is carried by the
|
|
227
|
-
* control's own validity rather than displayed, so a browser is what shows it, and in
|
|
228
|
-
* the language the browser is being told to speak here.
|
|
229
|
-
*/
|
|
187
|
+
/** What the field says of a time the restrictions do not allow. */
|
|
230
188
|
unavailable: string;
|
|
231
189
|
};
|
|
232
190
|
fileInput: {
|
|
@@ -254,11 +212,8 @@ export interface Messages {
|
|
|
254
212
|
list: string;
|
|
255
213
|
};
|
|
256
214
|
/**
|
|
257
|
-
* The carousel. Two of these entries are what a screen reader SAYS instead of the bare
|
|
258
|
-
*
|
|
259
|
-
* belongs here. It is worth being deliberate about them: a role description left in
|
|
260
|
-
* English is the one accessibility string that goes wrong with no visible symptom
|
|
261
|
-
* whatsoever.
|
|
215
|
+
* The carousel. Two of these entries are what a screen reader SAYS instead of the bare words
|
|
216
|
+
* "region" and "group", so they are text a reader hears and therefore text that belongs here.
|
|
262
217
|
*/
|
|
263
218
|
carousel: {
|
|
264
219
|
/** What the carousel is called when the consumer gives it no name of its own. */
|
|
@@ -269,27 +224,14 @@ export interface Messages {
|
|
|
269
224
|
slideRoleDescription: string;
|
|
270
225
|
/** What the scrolling area itself is called: it can be reached with the Tab key. */
|
|
271
226
|
slides: string;
|
|
272
|
-
/**
|
|
273
|
-
* What a slide is called, and its dot with it. The number is the one a reader counts,
|
|
274
|
-
* starting at one: the caller adds it. It carries the WORD "of", which is why it is
|
|
275
|
-
* here where the table's bare "3/8" counter is not.
|
|
276
|
-
*/
|
|
227
|
+
/** What a slide is called, and its dot with it. */
|
|
277
228
|
slide: (index: number, total: number) => string;
|
|
278
229
|
previous: string;
|
|
279
230
|
next: string;
|
|
280
231
|
/** What the row of dots is called. */
|
|
281
232
|
indicators: string;
|
|
282
233
|
};
|
|
283
|
-
/**
|
|
284
|
-
* The calendar. Two groups of words that read very differently: the toolbar, which a
|
|
285
|
-
* reader SEES, and everything from `eventRoleDescription` down, which only a screen
|
|
286
|
-
* reader ever says: the same caution as the carousel's role description applies, since
|
|
287
|
-
* an untranslated one goes wrong with no visible symptom at all.
|
|
288
|
-
*
|
|
289
|
-
* The navigation labels are per view rather than one word plus a unit: "Previous" needs
|
|
290
|
-
* to say what it steps over, and building "Previous " + "week" out of two fragments is
|
|
291
|
-
* the kind of sentence assembly that survives English and nothing else.
|
|
292
|
-
*/
|
|
234
|
+
/** The calendar. */
|
|
293
235
|
calendar: {
|
|
294
236
|
/** What the calendar is called when the consumer gives it no name of its own. */
|
|
295
237
|
label: string;
|
|
@@ -342,12 +284,8 @@ export interface Messages {
|
|
|
342
284
|
};
|
|
343
285
|
}
|
|
344
286
|
/**
|
|
345
|
-
* A dictionary given in PART: every section and every entry is optional. Anything left
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
* The optionality stops at the entries and does not descend into them, so a message that
|
|
349
|
-
* takes a value stays a whole function. Making it recursive would allow one of those
|
|
350
|
-
* functions to be described as a partial object, which is to say as nothing at all.
|
|
287
|
+
* A dictionary given in PART: every section and every entry is optional. Anything left out
|
|
288
|
+
* falls back to the dictionary already in place, and never to an empty string.
|
|
351
289
|
*/
|
|
352
290
|
export type MessagesInput = {
|
|
353
291
|
[K in keyof Messages]?: Partial<Messages[K]>;
|
package/dist/icons.d.ts
CHANGED
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Reach for it when you want to render one of the library's own icons somewhere it
|
|
6
|
-
* does not already appear: `import { search } from 'vectis-ui/icons'`, then
|
|
7
|
-
* `<VIcon :name="search" />`. A bare `<VIcon name="search" />` is a NAME and does
|
|
8
|
-
* not reach it, which is the point: an icon is shipped to a consumer's bundle because
|
|
9
|
-
* a module imported it, never because a string might one day ask for it.
|
|
10
|
-
*
|
|
11
|
-
* Each value carries its NAME as well as its drawing, so it still passes through a
|
|
12
|
-
* resolver installed with `setIconResolver`: wiring your own icon library keeps
|
|
13
|
-
* working on these exactly as it does on the icons the components draw.
|
|
2
|
+
* Import built-in icon values explicitly from vectis-ui/icons; string names alone do not pull
|
|
3
|
+
* icon modules into consumer bundles.
|
|
14
4
|
*/
|
|
15
5
|
export * from './components/VIcon/icons/index.js';
|
|
16
6
|
export type { BuiltinIcon } from './components/VIcon/types.js';
|
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-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-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-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-progress-circular-diameter:3rem;--vectis-control-size-progress-circular-thickness:.25rem;--vectis-control-size-skeleton-surface:6rem;--vectis-control-size-toast-width:22rem;--vectis-control-size-tooltip-max:18rem;--vectis-control-size-dialog-width:25rem;--vectis-control-size-snackbar-min:18rem;--vectis-control-size-snackbar-max:36rem;--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-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-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)}@media (prefers-reduced-motion:reduce){.v-field-action{transition:none}}.v-choice{font-family:var(--vectis-text-family);font-size:var(--vectis-text-label-size);font-weight:var(--vectis-text-label-weight);line-height:var(--vectis-text-label-leading);color:var(--vectis-color-text);grid-template-columns:auto auto;align-items:center;display:inline-grid}.v-choice-row{grid-column:1/-1;grid-template-columns:subgrid;cursor:pointer;align-items:center;display:grid}.v-choice-label,.v-choice-hint{margin-inline-start:var(--vectis-space-2)}.v-choice-hint{font-size:var(--vectis-text-caption-size);font-weight:var(--vectis-text-caption-weight);line-height:var(--vectis-text-caption-leading);color:var(--vectis-color-text-muted);grid-column:2}.v-choice[data-label-position=start] .v-choice-label{order:-1}.v-choice[data-label-position=start] :is(.v-choice-label,.v-choice-hint){margin-inline:0 var(--vectis-space-2)}.v-choice[data-label-position=start] .v-choice-hint{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-choice-hint{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-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-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-progress-circular-diameter:3rem;--vectis-control-size-progress-circular-thickness:.25rem;--vectis-control-size-skeleton-surface:6rem;--vectis-control-size-toast-width:22rem;--vectis-control-size-tooltip-max:18rem;--vectis-control-size-dialog-width:25rem;--vectis-control-size-snackbar-min:18rem;--vectis-control-size-snackbar-max:36rem;--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-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-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)}@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;align-items:center;display:inline-grid}.v-choice-row{grid-column:1/-1;grid-template-columns:subgrid;cursor:pointer;align-items:center;display:grid}.v-choice-label,.v-choice-hint{margin-inline-start:var(--vectis-space-2)}.v-choice-hint{font-size:var(--vectis-text-caption-size);font-weight:var(--vectis-text-caption-weight);line-height:var(--vectis-text-caption-leading);color:var(--vectis-color-text-muted);grid-column:2}.v-choice[data-label-position=start] .v-choice-label{order:-1}.v-choice[data-label-position=start] :is(.v-choice-label,.v-choice-hint){margin-inline:0 var(--vectis-space-2)}.v-choice[data-label-position=start] .v-choice-hint{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-choice-hint{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}}
|
package/dist/tokens/css.d.ts
CHANGED
|
@@ -4,22 +4,9 @@ export interface FlatToken {
|
|
|
4
4
|
cssName: string;
|
|
5
5
|
token: DesignToken;
|
|
6
6
|
}
|
|
7
|
-
/**
|
|
8
|
-
* Walks the nested groups and returns one entry per token, each carrying the name of the
|
|
9
|
-
* custom property it will become: the path through the groups, joined with dashes and
|
|
10
|
-
* prefixed so that nothing collides with an application's own variables.
|
|
11
|
-
*/
|
|
7
|
+
/** Flatten nested groups into token entries with qualified CSS custom-property names. */
|
|
12
8
|
export declare function flattenTokens(group: TokenGroup, prefix?: string[]): FlatToken[];
|
|
13
|
-
/**
|
|
14
|
-
* A token's value may point at another token by name, in braces, instead of stating a
|
|
15
|
-
* colour or a length of its own. Each of those references becomes a reading of the
|
|
16
|
-
* corresponding custom property, so the link survives into the CSS and remains
|
|
17
|
-
* overridable at runtime.
|
|
18
|
-
*
|
|
19
|
-
* A reference to a token that does not exist STOPS the build rather than being left as
|
|
20
|
-
* it is. A dangling reference in CSS resolves to nothing at all, and the component using
|
|
21
|
-
* it loses its colour with nothing in the console to say why.
|
|
22
|
-
*/
|
|
9
|
+
/** Resolve DTCG references into CSS var aliases while preserving literal values. */
|
|
23
10
|
export declare function resolveTokenValue(value: string, known: ReadonlySet<string>): string;
|
|
24
|
-
/**
|
|
11
|
+
/** Serialize flat token entries into CSS declarations. */
|
|
25
12
|
export declare function toCssDeclarations(flat: FlatToken[], known: ReadonlySet<string>, indent?: string): string;
|
package/dist/tokens/css.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css.js","names":[],"sources":["../../src/tokens/css.ts"],"sourcesContent":["/**\n *
|
|
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"}
|
package/dist/tokens/index.d.ts
CHANGED
|
@@ -210,6 +210,11 @@ export declare const tokens: {
|
|
|
210
210
|
weight: import('./types.js').DesignToken;
|
|
211
211
|
leading: import('./types.js').DesignToken;
|
|
212
212
|
};
|
|
213
|
+
choice: {
|
|
214
|
+
size: import('./types.js').DesignToken;
|
|
215
|
+
weight: import('./types.js').DesignToken;
|
|
216
|
+
leading: import('./types.js').DesignToken;
|
|
217
|
+
};
|
|
213
218
|
caption: {
|
|
214
219
|
size: import('./types.js').DesignToken;
|
|
215
220
|
weight: import('./types.js').DesignToken;
|
package/dist/tokens/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/tokens/index.ts"],"sourcesContent":["
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.js","names":[],"sources":["../../src/tokens/primitives.ts"],"sourcesContent":["/**\n * The raw material: the colour palettes and the numeric scales everything else is built from.\n *\n * No component reads these. A component asks for a ROLE — the accent, the page background —\n * and `semantic.ts` is what points that role at a step. Keeping the two apart is what makes\n * theming possible at all: a theme moves the roles, never the palette.\n *\n * OKLCH, so a step of one palette is as light as the same step of any other and a\n * `color-mix()` between two passes through the shades one expects rather than through grey.\n * The palettes are Tailwind CSS 4's, family for family and step for step.\n *\n * Exactly FIVE families, and they are exactly the five a role points at: gray for surfaces,\n * text and borders, indigo for the accent, red/green/amber for danger/success/warning. The\n * library ships no palette it does not paint with — a deliberate limit, since a family costs\n * eleven custom properties in every page that loads the sheet whether or not anything reads\n * them, and `tokens.test.ts` locks it. An application wanting a sixth declares its own eleven\n * steps in its own unlayered sheet and repoints the role; the docs site does exactly that\n * for its violet.\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 // The heading typeface. It points at the running one, so out of the box the two are\n // the same and nothing looks different; giving headings a face of their own is a\n // matter of overriding this single token. The indirection is what makes the two\n // decisions independent: replacing `sans` still carries the headings along, whereas\n // replacing `display` moves the headings alone.\n display: fontFamily('{font.family.sans}'),\n mono: fontFamily(\n \"ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace\",\n ),\n // The icon font, which the library never bundles: an application that wants icons\n // drawn from a font loads it itself, as the README explains. Overriding this one\n // token is what switches the whole system to another cut of Material Symbols.\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 // Carries a unit although it is zero: these tokens are subtracted from one another to\n // derive a nested corner (`calc(var(--vectis-radius-surface) - 1px)`), and `calc(0 - 1px)`\n // is invalid where `calc(0px - 1px)` is not.\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 /*\n * The durations are named after the milliseconds they hold, and that is what lets a\n * component state the time it actually wants. The roles a transition reaches for (fast,\n * base, slow) are defined alongside the other roles; the values here are what those roles\n * point at, and what the long looping animations — a spinner, a skeleton's wave — name\n * directly, since \"one second\" is the whole point of such a loop and no role could say it\n * better.\n *\n * The steps above a second exist for those loops and for their slowed-down counterparts\n * under `prefers-reduced-motion`. Without them the same durations come back as arbitrary\n * multipliers on a shorter token, which is what this scale replaces.\n */\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":[],"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":";;AAeA,IAAM,KAAW,MACf,OAAO,YAAY,OAAO,QAAQ,CAAM,CAAC,CAAC,KAAK,CAAC,GAAM,OAAW,CAAC,GAAM,EAAM,CAAK,CAAC,CAAC,CAAC,GAE3E,IAAa;CACxB,OAAO;EACL,OAAO,EAAM,iBAAiB;EAC9B,OAAO,EAAM,eAAe;EAC5B,KAAK,EAAQ;GACX,IAAM;GACN,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;EACT,CAAC;EACD,OAAO,EAAQ;GACb,IAAM;GACN,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;EACT,CAAC;EACD,OAAO,EAAQ;GACb,IAAM;GACN,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;EACT,CAAC;EACD,QAAQ,EAAQ;GACd,IAAM;GACN,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;EACT,CAAC;EACD,MAAM,EAAQ;GACZ,IAAM;GACN,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;GACP,KAAO;EACT,CAAC;CACH;CACA,OAAO;EACL,GAAK,EAAU,SAAS;EACxB,GAAK,EAAU,QAAQ;EACvB,GAAK,EAAU,SAAS;EACxB,GAAK,EAAU,MAAM;EACrB,GAAK,EAAU,SAAS;EACxB,GAAK,EAAU,QAAQ;EACvB,GAAK,EAAU,MAAM;EACrB,GAAK,EAAU,QAAQ;EACvB,GAAK,EAAU,MAAM;EACrB,IAAM,EAAU,MAAM;EACtB,IAAM,EAAU,MAAM;EACtB,IAAM,EAAU,MAAM;CACxB;CACA,MAAM;EACJ,QAAQ;GACN,MAAM,EACJ,mFACF;GAEA,SAAS,EAAW,oBAAoB;GACxC,MAAM,EACJ,8EACF;GAGA,MAAM,EAAW,4BAA4B;EAC/C;EACA,QAAQ;GACN,SAAS,EAAW,KAAK;GACzB,QAAQ,EAAW,KAAK;GACxB,UAAU,EAAW,KAAK;GAC1B,MAAM,EAAW,KAAK;EACxB;EACA,MAAM;GACJ,IAAI,EAAU,SAAS;GACvB,IAAI,EAAU,UAAU;GACxB,IAAI,EAAU,MAAM;GACpB,IAAI,EAAU,UAAU;GACxB,IAAI,EAAU,SAAS;GACvB,OAAO,EAAU,QAAQ;GACzB,OAAO,EAAU,UAAU;GAC3B,OAAO,EAAU,SAAS;GAC1B,OAAO,EAAU,MAAM;EACzB;EACA,SAAS;GACP,MAAM,EAAU,GAAG;GACnB,OAAO,EAAU,MAAM;GACvB,MAAM,EAAU,KAAK;GACrB,QAAQ,EAAU,KAAK;GACvB,SAAS,EAAU,MAAM;EAC3B;EACA,UAAU;GACR,OAAO,EAAU,YAAY,wDAAwD;GACrF,MAAM,EAAU,UAAU,qDAAqD;EACjF;CACF;CACA,QAAQ;EAEN,MAAM,EAAU,KAAK;EACrB,IAAI,EAAU,UAAU;EACxB,IAAI,EAAU,SAAS;EACvB,IAAI,EAAU,UAAU;EACxB,IAAI,EAAU,QAAQ;EACtB,IAAI,EAAU,SAAS;EACvB,OAAO,EAAU,MAAM;EACvB,MAAM,EAAU,QAAQ;CAC1B;CACA,QAAQ;EACN,IAAI,EAAO,kCAAkC;EAC7C,IAAI,EAAO,qEAAqE;EAChF,IAAI,EAAO,wEAAwE;EACnF,IAAI,EAAO,0EAA0E;EACrF,IAAI,EAAO,2EAA2E;CACxF;CAEA,UAAU;EACR,GAAK,EAAS,KAAK;EACnB,IAAM,EAAS,MAAM;EACrB,KAAO,EAAS,OAAO;EACvB,KAAO,EAAS,OAAO;EACvB,KAAO,EAAS,OAAO;EACvB,KAAO,EAAS,OAAO;EACvB,KAAO,EAAS,OAAO;EACvB,KAAO,EAAS,OAAO;EACvB,KAAO,EAAS,OAAO;EACvB,KAAQ,EAAS,QAAQ;EACzB,MAAQ,EAAS,QAAQ;EACzB,KAAQ,EAAS,QAAQ;EACzB,KAAQ,EAAS,QAAQ;EACzB,KAAQ,EAAS,QAAQ;CAC3B;CACA,MAAM;EACJ,SAAS,EAAY,4BAA4B;EACjD,IAAI,EAAY,4BAA4B;EAC5C,KAAK,EAAY,4BAA4B;EAC7C,UAAU,EACR,gCACA,8HACF;CACF;AACF"}
|
|
@@ -44,15 +44,6 @@ export declare const semantic: {
|
|
|
44
44
|
'event-border': import('./types.js').DesignToken;
|
|
45
45
|
'event-text': import('./types.js').DesignToken;
|
|
46
46
|
};
|
|
47
|
-
/**
|
|
48
|
-
* The typography, described by role rather than by measurement: a heading, a subtitle,
|
|
49
|
-
* a caption, a piece of code.
|
|
50
|
-
*
|
|
51
|
-
* Each role is a COMPLETE recipe — a size, a weight, the space between lines, and where
|
|
52
|
-
* it matters the space between letters. Asking for a role therefore settles every one of
|
|
53
|
-
* those at once, and two pieces of text in the same role cannot drift apart. It is what
|
|
54
|
-
* the typography component renders, and what the components' own stylesheets ask for.
|
|
55
|
-
*/
|
|
56
47
|
text: {
|
|
57
48
|
family: import('./types.js').DesignToken;
|
|
58
49
|
'family-heading': import('./types.js').DesignToken;
|
|
@@ -90,13 +81,6 @@ export declare const semantic: {
|
|
|
90
81
|
weight: import('./types.js').DesignToken;
|
|
91
82
|
leading: import('./types.js').DesignToken;
|
|
92
83
|
};
|
|
93
|
-
/**
|
|
94
|
-
* The introduction that opens a page or a section, one step above the running text.
|
|
95
|
-
*
|
|
96
|
-
* It shares `body-lg`'s generous leading rather than taking a tighter one: a lead is read
|
|
97
|
-
* as prose, not as a heading, and the two therefore sit in the same column without the
|
|
98
|
-
* rhythm changing under the reader between the first paragraph and the second.
|
|
99
|
-
*/
|
|
100
84
|
'body-xl': {
|
|
101
85
|
size: import('./types.js').DesignToken;
|
|
102
86
|
weight: import('./types.js').DesignToken;
|
|
@@ -122,6 +106,11 @@ export declare const semantic: {
|
|
|
122
106
|
weight: import('./types.js').DesignToken;
|
|
123
107
|
leading: import('./types.js').DesignToken;
|
|
124
108
|
};
|
|
109
|
+
choice: {
|
|
110
|
+
size: import('./types.js').DesignToken;
|
|
111
|
+
weight: import('./types.js').DesignToken;
|
|
112
|
+
leading: import('./types.js').DesignToken;
|
|
113
|
+
};
|
|
125
114
|
caption: {
|
|
126
115
|
size: import('./types.js').DesignToken;
|
|
127
116
|
weight: import('./types.js').DesignToken;
|
|
@@ -150,13 +139,7 @@ export declare const semantic: {
|
|
|
150
139
|
pill: import('./types.js').DesignToken;
|
|
151
140
|
chip: import('./types.js').DesignToken;
|
|
152
141
|
};
|
|
153
|
-
/**
|
|
154
|
-
* How long a change takes, described by what it is: the immediate feedback of a control
|
|
155
|
-
* under the pointer, the ordinary pace of the design system, a deliberately slower move.
|
|
156
|
-
*
|
|
157
|
-
* These three are what a `transition` reaches for. Motion does not vary from one theme to
|
|
158
|
-
* the next, so unlike the colours they are stated once and never restated.
|
|
159
|
-
*/
|
|
142
|
+
/** Semantic transition durations are theme-independent. */
|
|
160
143
|
duration: {
|
|
161
144
|
fast: import('./types.js').DesignToken;
|
|
162
145
|
base: import('./types.js').DesignToken;
|
package/dist/tokens/semantic.js
CHANGED
|
@@ -108,6 +108,11 @@ var a = {
|
|
|
108
108
|
weight: i("{font.weight.medium}"),
|
|
109
109
|
leading: t("{font.leading.snug}")
|
|
110
110
|
},
|
|
111
|
+
choice: {
|
|
112
|
+
size: t("{font.size.sm}"),
|
|
113
|
+
weight: i("{font.weight.regular}"),
|
|
114
|
+
leading: t("{font.leading.snug}")
|
|
115
|
+
},
|
|
111
116
|
caption: {
|
|
112
117
|
size: t("{font.size.xs}"),
|
|
113
118
|
weight: i("{font.weight.regular}"),
|