@ecoma-io/loom 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +38 -6
- package/dist/packages/blocks/app-header/src/AppHeader.js.map +1 -1
- package/dist/packages/blocks/app-header/src/AppHeader.vue.d.ts.map +1 -1
- package/dist/packages/blocks/app-header/src/AppHeader.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/packages/blocks/app-header/src/AppHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/blocks/desktop-app-shell/src/DesktopAppShell.vue.d.ts +3 -3
- package/dist/packages/blocks/metric-card/src/MetricCard.js.map +1 -1
- package/dist/packages/blocks/metric-card/src/MetricCard.vue.d.ts +22 -4
- package/dist/packages/blocks/metric-card/src/MetricCard.vue.d.ts.map +1 -1
- package/dist/packages/blocks/metric-card/src/MetricCard.vue_vue_type_script_setup_true_lang.js +38 -15
- package/dist/packages/blocks/metric-card/src/MetricCard.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/blocks/title-bar/src/TitleBar.vue.d.ts +3 -3
- package/dist/packages/blocks/toast-stack/src/ToastStack.vue.d.ts +3 -3
- package/dist/packages/composition/scroll-reel/src/ScrollReel.js +2 -2
- package/dist/packages/composition/scroll-reel/src/ScrollReel.js.map +1 -1
- package/dist/packages/composition/scroll-reel/src/ScrollReel.vue.d.ts +26 -0
- package/dist/packages/composition/scroll-reel/src/ScrollReel.vue_vue_type_script_setup_true_lang.js +27 -7
- package/dist/packages/composition/scroll-reel/src/ScrollReel.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/composition/scroll-reel/src/index.d.ts +2 -1
- package/dist/packages/composition/scroll-reel/src/index.js +2 -1
- package/dist/packages/core/src/index.d.ts +1 -1
- package/dist/packages/core/src/index.d.ts.map +1 -1
- package/dist/packages/core/src/index.js +2 -2
- package/dist/packages/core/src/motion.d.ts +13 -0
- package/dist/packages/core/src/motion.d.ts.map +1 -1
- package/dist/packages/core/src/motion.js +20 -13
- package/dist/packages/core/src/motion.js.map +1 -1
- package/dist/packages/core/src/theme.d.ts +9 -0
- package/dist/packages/core/src/theme.d.ts.map +1 -1
- package/dist/packages/core/src/theme.js +36 -10
- package/dist/packages/core/src/theme.js.map +1 -1
- package/dist/packages/labels/src/ancestor-disabled.d.ts +5 -1
- package/dist/packages/labels/src/ancestor-disabled.d.ts.map +1 -1
- package/dist/packages/labels/src/ancestor-disabled.js +5 -1
- package/dist/packages/labels/src/ancestor-disabled.js.map +1 -1
- package/dist/packages/labels/src/component-shapes.d.ts +73 -0
- package/dist/packages/labels/src/component-shapes.d.ts.map +1 -1
- package/dist/packages/labels/src/date-labels.d.ts +8 -6
- package/dist/packages/labels/src/date-labels.d.ts.map +1 -1
- package/dist/packages/labels/src/date-labels.js +8 -6
- package/dist/packages/labels/src/date-labels.js.map +1 -1
- package/dist/packages/labels/src/index.d.ts +2 -2
- package/dist/packages/labels/src/index.d.ts.map +1 -1
- package/dist/packages/labels/src/label-registry.d.ts +7 -1
- package/dist/packages/labels/src/label-registry.d.ts.map +1 -1
- package/dist/packages/layouts/reading/src/Reading.js.map +1 -1
- package/dist/packages/layouts/reading/src/Reading.vue.d.ts +16 -15
- package/dist/packages/layouts/reading/src/Reading.vue.d.ts.map +1 -1
- package/dist/packages/layouts/reading/src/Reading.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/layouts/reading/src/index.d.ts +1 -0
- package/dist/packages/layouts/reading/src/index.d.ts.map +1 -1
- package/dist/packages/loom/src/a11y.d.ts +1 -1
- package/dist/packages/loom/src/index.d.ts +191 -174
- package/dist/packages/loom/src/theme.d.ts +3 -0
- package/dist/packages/primitives/alert/src/Alert.js +7 -0
- package/dist/packages/primitives/alert/src/Alert.js.map +1 -0
- package/dist/packages/primitives/alert/src/Alert.vue.d.ts +73 -0
- package/dist/packages/primitives/alert/src/Alert.vue_vue_type_script_setup_true_lang.js +127 -0
- package/dist/packages/primitives/alert/src/Alert.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/alert/src/index.d.ts +4 -0
- package/dist/packages/primitives/alert/src/index.js +3 -0
- package/dist/packages/primitives/alert-dialog/src/AlertDialog.js.map +1 -1
- package/dist/packages/primitives/alert-dialog/src/AlertDialog.vue.d.ts +2 -2
- package/dist/packages/primitives/alert-dialog/src/AlertDialog.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/packages/primitives/alert-dialog/src/AlertDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/alert-dialog/src/index.d.ts +1 -1
- package/dist/packages/primitives/avatar-group/src/AvatarGroup.vue.d.ts +3 -3
- package/dist/packages/primitives/avatar-group/src/index.d.ts +1 -1
- package/dist/packages/primitives/badge/src/Badge.js.map +1 -1
- package/dist/packages/primitives/badge/src/Badge.vue.d.ts.map +1 -1
- package/dist/packages/primitives/badge/src/Badge.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/badge/src/Badge.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/breadcrumb/src/Breadcrumb.js +2 -2
- package/dist/packages/primitives/breadcrumb/src/Breadcrumb.js.map +1 -1
- package/dist/packages/primitives/breadcrumb/src/Breadcrumb.vue.d.ts +28 -0
- package/dist/packages/primitives/breadcrumb/src/Breadcrumb.vue_vue_type_script_setup_true_lang.js +16 -5
- package/dist/packages/primitives/breadcrumb/src/Breadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/breadcrumb/src/index.d.ts +2 -1
- package/dist/packages/primitives/breadcrumb/src/index.js +2 -1
- package/dist/packages/primitives/button/src/Button.js.map +1 -1
- package/dist/packages/primitives/button/src/Button.vue.d.ts.map +1 -1
- package/dist/packages/primitives/button/src/Button.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/button/src/index.js +2 -2
- package/dist/packages/primitives/card/src/Card.js +7 -0
- package/dist/packages/primitives/card/src/Card.js.map +1 -0
- package/dist/packages/primitives/card/src/Card.vue.d.ts +72 -0
- package/dist/packages/primitives/card/src/Card.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/packages/primitives/card/src/Card.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/card/src/index.d.ts +3 -0
- package/dist/packages/primitives/card/src/index.d.ts.map +1 -0
- package/dist/packages/primitives/card/src/index.js +2 -0
- package/dist/packages/primitives/carousel/src/Carousel.js +7 -0
- package/dist/packages/primitives/carousel/src/Carousel.js.map +1 -0
- package/dist/packages/primitives/carousel/src/Carousel.vue.d.ts +34 -0
- package/dist/packages/primitives/carousel/src/Carousel.vue_vue_type_script_setup_true_lang.js +175 -0
- package/dist/packages/primitives/carousel/src/Carousel.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/carousel/src/index.d.ts +3 -0
- package/dist/packages/primitives/carousel/src/index.js +3 -0
- package/dist/packages/primitives/checkbox/src/Checkbox.js.map +1 -1
- package/dist/packages/primitives/checkbox/src/Checkbox.vue.d.ts +1 -1
- package/dist/packages/primitives/checkbox/src/Checkbox.vue.d.ts.map +1 -1
- package/dist/packages/primitives/checkbox/src/Checkbox.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/packages/primitives/checkbox/src/Checkbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/chip/src/Chip.js.map +1 -1
- package/dist/packages/primitives/chip/src/Chip.vue.d.ts.map +1 -1
- package/dist/packages/primitives/chip/src/Chip.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/chip/src/Chip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/collapse/src/Collapse.js +7 -0
- package/dist/packages/primitives/collapse/src/Collapse.js.map +1 -0
- package/dist/packages/primitives/collapse/src/Collapse.vue.d.ts +56 -0
- package/dist/packages/primitives/collapse/src/Collapse.vue.d.ts.map +1 -0
- package/dist/packages/primitives/collapse/src/Collapse.vue_vue_type_script_setup_true_lang.js +81 -0
- package/dist/packages/primitives/collapse/src/Collapse.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/collapse/src/index.d.ts +2 -0
- package/dist/packages/primitives/collapse/src/index.d.ts.map +1 -0
- package/dist/packages/primitives/collapse/src/index.js +2 -0
- package/dist/packages/primitives/color-picker/src/ColorPicker.js.map +1 -1
- package/dist/packages/primitives/color-picker/src/ColorPicker.vue.d.ts +4 -4
- package/dist/packages/primitives/color-picker/src/ColorPicker.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/packages/primitives/color-picker/src/ColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/color-picker/src/index.d.ts +1 -1
- package/dist/packages/primitives/combobox/src/Combobox.js.map +1 -1
- package/dist/packages/primitives/combobox/src/Combobox.vue.d.ts +2 -2
- package/dist/packages/primitives/combobox/src/Combobox.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/packages/primitives/combobox/src/Combobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/combobox/src/index.d.ts +1 -1
- package/dist/packages/primitives/context-menu/src/ContextMenu.js.map +1 -1
- package/dist/packages/primitives/context-menu/src/ContextMenu.vue.d.ts +12 -0
- package/dist/packages/primitives/context-menu/src/ContextMenu.vue.d.ts.map +1 -1
- package/dist/packages/primitives/context-menu/src/ContextMenu.vue_vue_type_script_setup_true_lang.js +7 -3
- package/dist/packages/primitives/context-menu/src/ContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/date-picker/src/DatePicker.js.map +1 -1
- package/dist/packages/primitives/date-picker/src/DatePicker.vue.d.ts +2 -2
- package/dist/packages/primitives/date-picker/src/DatePicker.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/date-picker/src/DatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/date-range-picker/src/DateRangePicker.js.map +1 -1
- package/dist/packages/primitives/date-range-picker/src/DateRangePicker.vue.d.ts +3 -3
- package/dist/packages/primitives/date-range-picker/src/DateRangePicker.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/date-range-picker/src/DateRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/date-range-picker/src/index.d.ts +1 -1
- package/dist/packages/primitives/date-time-picker/src/DateTimePicker.js.map +1 -1
- package/dist/packages/primitives/date-time-picker/src/DateTimePicker.vue.d.ts +2 -2
- package/dist/packages/primitives/date-time-picker/src/DateTimePicker.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/date-time-picker/src/DateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/date-time-range-picker/src/DateTimeRangePicker.js.map +1 -1
- package/dist/packages/primitives/date-time-range-picker/src/DateTimeRangePicker.vue.d.ts +3 -3
- package/dist/packages/primitives/date-time-range-picker/src/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/date-time-range-picker/src/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/date-time-range-picker/src/index.d.ts +1 -1
- package/dist/packages/primitives/dialog/src/Dialog.js.map +1 -1
- package/dist/packages/primitives/dialog/src/Dialog.vue.d.ts +12 -4
- package/dist/packages/primitives/dialog/src/Dialog.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/dialog/src/Dialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/dialog/src/index.d.ts +1 -1
- package/dist/packages/primitives/drawer/src/Drawer.js.map +1 -1
- package/dist/packages/primitives/drawer/src/Drawer.vue.d.ts +2 -2
- package/dist/packages/primitives/drawer/src/Drawer.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/packages/primitives/drawer/src/Drawer.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/drawer/src/index.d.ts +1 -1
- package/dist/packages/primitives/dropdown-menu/src/DropdownMenu.js.map +1 -1
- package/dist/packages/primitives/dropdown-menu/src/DropdownMenu.vue.d.ts +26 -0
- package/dist/packages/primitives/dropdown-menu/src/DropdownMenu.vue.d.ts.map +1 -1
- package/dist/packages/primitives/dropdown-menu/src/DropdownMenu.vue_vue_type_script_setup_true_lang.js +10 -4
- package/dist/packages/primitives/dropdown-menu/src/DropdownMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/editable/src/Editable.js.map +1 -1
- package/dist/packages/primitives/editable/src/Editable.vue.d.ts +2 -2
- package/dist/packages/primitives/editable/src/Editable.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/editable/src/Editable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/editable/src/index.d.ts +1 -1
- package/dist/packages/primitives/file-upload/src/FileUpload.js.map +1 -1
- package/dist/packages/primitives/file-upload/src/FileUpload.vue.d.ts +2 -2
- package/dist/packages/primitives/file-upload/src/FileUpload.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/file-upload/src/FileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/file-upload/src/index.d.ts +1 -1
- package/dist/packages/primitives/hover-card/src/HoverCard.js.map +1 -1
- package/dist/packages/primitives/hover-card/src/HoverCard.vue.d.ts.map +1 -1
- package/dist/packages/primitives/hover-card/src/HoverCard.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/hover-card/src/HoverCard.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/icon-button/src/IconButton.js.map +1 -1
- package/dist/packages/primitives/icon-button/src/IconButton.vue.d.ts +10 -4
- package/dist/packages/primitives/icon-button/src/IconButton.vue.d.ts.map +1 -1
- package/dist/packages/primitives/icon-button/src/IconButton.vue_vue_type_script_setup_true_lang.js +18 -6
- package/dist/packages/primitives/icon-button/src/IconButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/indicator/src/Indicator.vue.d.ts +2 -2
- package/dist/packages/primitives/indicator/src/index.d.ts +1 -1
- package/dist/packages/primitives/kbd/src/Kbd.js +7 -0
- package/dist/packages/primitives/kbd/src/Kbd.js.map +1 -0
- package/dist/packages/primitives/kbd/src/Kbd.vue.d.ts +30 -0
- package/dist/packages/primitives/kbd/src/Kbd.vue.d.ts.map +1 -0
- package/dist/packages/primitives/kbd/src/Kbd.vue_vue_type_script_setup_true_lang.js +29 -0
- package/dist/packages/primitives/kbd/src/Kbd.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/kbd/src/index.d.ts +3 -0
- package/dist/packages/primitives/kbd/src/index.d.ts.map +1 -0
- package/dist/packages/primitives/kbd/src/index.js +3 -0
- package/dist/packages/primitives/link/src/Link.js.map +1 -1
- package/dist/packages/primitives/link/src/Link.vue.d.ts.map +1 -1
- package/dist/packages/primitives/link/src/Link.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/packages/primitives/link/src/Link.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/list/src/List.js +7 -0
- package/dist/packages/primitives/list/src/List.js.map +1 -0
- package/dist/packages/primitives/list/src/List.vue.d.ts +22 -0
- package/dist/packages/primitives/list/src/List.vue.d.ts.map +1 -0
- package/dist/packages/primitives/list/src/List.vue_vue_type_script_setup_true_lang.js +27 -0
- package/dist/packages/primitives/list/src/List.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/list/src/ListItem.js +7 -0
- package/dist/packages/primitives/list/src/ListItem.js.map +1 -0
- package/dist/packages/primitives/list/src/ListItem.vue.d.ts +75 -0
- package/dist/packages/primitives/list/src/ListItem.vue.d.ts.map +1 -0
- package/dist/packages/primitives/list/src/ListItem.vue_vue_type_script_setup_true_lang.js +101 -0
- package/dist/packages/primitives/list/src/ListItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/list/src/index.d.ts +4 -0
- package/dist/packages/primitives/list/src/index.d.ts.map +1 -0
- package/dist/packages/primitives/list/src/index.js +3 -0
- package/dist/packages/primitives/menubar/src/Menubar.js.map +1 -1
- package/dist/packages/primitives/menubar/src/Menubar.vue.d.ts +20 -6
- package/dist/packages/primitives/menubar/src/Menubar.vue.d.ts.map +1 -1
- package/dist/packages/primitives/menubar/src/Menubar.vue_vue_type_script_setup_true_lang.js +178 -64
- package/dist/packages/primitives/menubar/src/Menubar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/number-field/src/NumberField.js.map +1 -1
- package/dist/packages/primitives/number-field/src/NumberField.vue.d.ts +2 -2
- package/dist/packages/primitives/number-field/src/NumberField.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/packages/primitives/number-field/src/NumberField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/number-field/src/index.d.ts +1 -1
- package/dist/packages/primitives/otp-input/src/OtpInput.vue.d.ts +2 -2
- package/dist/packages/primitives/otp-input/src/index.d.ts +1 -1
- package/dist/packages/primitives/pagination/src/Pagination.js.map +1 -1
- package/dist/packages/primitives/pagination/src/Pagination.vue.d.ts +3 -3
- package/dist/packages/primitives/pagination/src/Pagination.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/pagination/src/Pagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/pagination/src/index.d.ts +1 -1
- package/dist/packages/primitives/popover/src/Popover.js.map +1 -1
- package/dist/packages/primitives/popover/src/Popover.vue.d.ts.map +1 -1
- package/dist/packages/primitives/popover/src/Popover.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/popover/src/Popover.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/progress/src/Progress.vue.d.ts +2 -2
- package/dist/packages/primitives/progress/src/index.d.ts +1 -1
- package/dist/packages/primitives/radial-progress/src/RadialProgress.vue.d.ts +2 -2
- package/dist/packages/primitives/radial-progress/src/index.d.ts +1 -1
- package/dist/packages/primitives/radio-group/src/RadioGroup.js.map +1 -1
- package/dist/packages/primitives/radio-group/src/RadioGroup.vue.d.ts.map +1 -1
- package/dist/packages/primitives/radio-group/src/RadioGroup.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/radio-group/src/RadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/rating/src/Rating.vue.d.ts +2 -2
- package/dist/packages/primitives/rating/src/index.d.ts +1 -1
- package/dist/packages/primitives/segmented-control/src/SegmentedControl.js.map +1 -1
- package/dist/packages/primitives/segmented-control/src/SegmentedControl.vue.d.ts.map +1 -1
- package/dist/packages/primitives/segmented-control/src/SegmentedControl.vue_vue_type_script_setup_true_lang.js +2 -3
- package/dist/packages/primitives/segmented-control/src/SegmentedControl.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/select/src/Select.js.map +1 -1
- package/dist/packages/primitives/select/src/Select.vue.d.ts.map +1 -1
- package/dist/packages/primitives/select/src/Select.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/select/src/Select.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/slider/src/Slider.js.map +1 -1
- package/dist/packages/primitives/slider/src/Slider.vue.d.ts +6 -3
- package/dist/packages/primitives/slider/src/Slider.vue.d.ts.map +1 -1
- package/dist/packages/primitives/slider/src/Slider.vue_vue_type_script_setup_true_lang.js +15 -10
- package/dist/packages/primitives/slider/src/Slider.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/stepper/src/Stepper.vue.d.ts +2 -2
- package/dist/packages/primitives/stepper/src/index.d.ts +1 -1
- package/dist/packages/primitives/switch/src/Switch.js.map +1 -1
- package/dist/packages/primitives/switch/src/Switch.vue.d.ts +1 -1
- package/dist/packages/primitives/switch/src/Switch.vue.d.ts.map +1 -1
- package/dist/packages/primitives/switch/src/Switch.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/packages/primitives/switch/src/Switch.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/table/src/Table.js +7 -0
- package/dist/packages/primitives/table/src/Table.js.map +1 -0
- package/dist/packages/primitives/table/src/Table.vue.d.ts +45 -0
- package/dist/packages/primitives/table/src/Table.vue_vue_type_script_setup_true_lang.js +72 -0
- package/dist/packages/primitives/table/src/Table.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/table/src/TableCell.js +7 -0
- package/dist/packages/primitives/table/src/TableCell.js.map +1 -0
- package/dist/packages/primitives/table/src/TableCell.vue.d.ts +19 -0
- package/dist/packages/primitives/table/src/TableCell.vue.d.ts.map +1 -0
- package/dist/packages/primitives/table/src/TableCell.vue_vue_type_script_setup_true_lang.js +17 -0
- package/dist/packages/primitives/table/src/TableCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/table/src/TableHead.js +7 -0
- package/dist/packages/primitives/table/src/TableHead.js.map +1 -0
- package/dist/packages/primitives/table/src/TableHead.vue.d.ts +56 -0
- package/dist/packages/primitives/table/src/TableHead.vue_vue_type_script_setup_true_lang.js +79 -0
- package/dist/packages/primitives/table/src/TableHead.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/table/src/TableRow.js +7 -0
- package/dist/packages/primitives/table/src/TableRow.js.map +1 -0
- package/dist/packages/primitives/table/src/TableRow.vue.d.ts +39 -0
- package/dist/packages/primitives/table/src/TableRow.vue.d.ts.map +1 -0
- package/dist/packages/primitives/table/src/TableRow.vue_vue_type_script_setup_true_lang.js +61 -0
- package/dist/packages/primitives/table/src/TableRow.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/table/src/index.d.ts +10 -0
- package/dist/packages/primitives/table/src/index.js +8 -0
- package/dist/packages/primitives/tabs/src/Tabs.js.map +1 -1
- package/dist/packages/primitives/tabs/src/Tabs.vue.d.ts.map +1 -1
- package/dist/packages/primitives/tabs/src/Tabs.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/tabs/src/Tabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/tags-input/src/TagsInput.js.map +1 -1
- package/dist/packages/primitives/tags-input/src/TagsInput.vue.d.ts +2 -2
- package/dist/packages/primitives/tags-input/src/TagsInput.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/tags-input/src/TagsInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/tags-input/src/index.d.ts +1 -1
- package/dist/packages/primitives/text-field/src/TextField.js.map +1 -1
- package/dist/packages/primitives/text-field/src/TextField.vue.d.ts +2 -2
- package/dist/packages/primitives/text-field/src/TextField.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/text-field/src/TextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/text-field/src/index.d.ts +1 -1
- package/dist/packages/primitives/text-field/src/index.js +2 -2
- package/dist/packages/primitives/textarea/src/Textarea.js.map +1 -1
- package/dist/packages/primitives/textarea/src/Textarea.vue.d.ts +2 -2
- package/dist/packages/primitives/textarea/src/Textarea.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/textarea/src/Textarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/textarea/src/index.d.ts +1 -1
- package/dist/packages/primitives/textarea/src/index.js +2 -2
- package/dist/packages/primitives/time-picker/src/TimePicker.vue.d.ts +2 -2
- package/dist/packages/primitives/timeline/src/Timeline.js +7 -0
- package/dist/packages/primitives/timeline/src/Timeline.js.map +1 -0
- package/dist/packages/primitives/timeline/src/Timeline.vue.d.ts +37 -0
- package/dist/packages/primitives/timeline/src/Timeline.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/packages/primitives/timeline/src/Timeline.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/timeline/src/TimelineItem.js +7 -0
- package/dist/packages/primitives/timeline/src/TimelineItem.js.map +1 -0
- package/dist/packages/primitives/timeline/src/TimelineItem.vue.d.ts +50 -0
- package/dist/packages/primitives/timeline/src/TimelineItem.vue_vue_type_script_setup_true_lang.js +96 -0
- package/dist/packages/primitives/timeline/src/TimelineItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/primitives/timeline/src/index.d.ts +5 -0
- package/dist/packages/primitives/timeline/src/index.js +5 -0
- package/dist/packages/primitives/toast/src/Toast.vue.d.ts +2 -2
- package/dist/packages/primitives/toast/src/ToastItem.js.map +1 -1
- package/dist/packages/primitives/toast/src/ToastItem.vue.d.ts +2 -2
- package/dist/packages/primitives/toast/src/ToastItem.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/packages/primitives/toast/src/ToastItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/toast/src/index.d.ts +1 -1
- package/dist/packages/primitives/tooltip/src/Tooltip.js.map +1 -1
- package/dist/packages/primitives/tooltip/src/Tooltip.vue.d.ts.map +1 -1
- package/dist/packages/primitives/tooltip/src/Tooltip.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/packages/primitives/tooltip/src/Tooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/packages/primitives/window-controls/src/WindowControls.vue.d.ts +2 -2
- package/dist/packages/primitives/window-controls/src/index.d.ts +1 -1
- package/dist/styles/global.css +59 -0
- package/dist/styles/theme.css +13 -0
- package/dist/theme.js +3 -0
- package/package.json +13 -7
- package/dist/packages/blocks/desktop-app-shell/src/DesktopAppShell.vue.d.ts.map +0 -1
- package/dist/packages/blocks/title-bar/src/TitleBar.vue.d.ts.map +0 -1
- package/dist/packages/blocks/toast-stack/src/ToastStack.vue.d.ts.map +0 -1
- package/dist/packages/composition/scroll-reel/src/ScrollReel.vue.d.ts.map +0 -1
- package/dist/packages/composition/scroll-reel/src/index.d.ts.map +0 -1
- package/dist/packages/loom/src/a11y.d.ts.map +0 -1
- package/dist/packages/loom/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/alert-dialog/src/AlertDialog.vue.d.ts.map +0 -1
- package/dist/packages/primitives/alert-dialog/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/avatar-group/src/AvatarGroup.vue.d.ts.map +0 -1
- package/dist/packages/primitives/avatar-group/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/breadcrumb/src/Breadcrumb.vue.d.ts.map +0 -1
- package/dist/packages/primitives/breadcrumb/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/color-picker/src/ColorPicker.vue.d.ts.map +0 -1
- package/dist/packages/primitives/color-picker/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/combobox/src/Combobox.vue.d.ts.map +0 -1
- package/dist/packages/primitives/combobox/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/date-picker/src/DatePicker.vue.d.ts.map +0 -1
- package/dist/packages/primitives/date-range-picker/src/DateRangePicker.vue.d.ts.map +0 -1
- package/dist/packages/primitives/date-range-picker/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/date-time-picker/src/DateTimePicker.vue.d.ts.map +0 -1
- package/dist/packages/primitives/date-time-range-picker/src/DateTimeRangePicker.vue.d.ts.map +0 -1
- package/dist/packages/primitives/date-time-range-picker/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/dialog/src/Dialog.vue.d.ts.map +0 -1
- package/dist/packages/primitives/dialog/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/drawer/src/Drawer.vue.d.ts.map +0 -1
- package/dist/packages/primitives/drawer/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/editable/src/Editable.vue.d.ts.map +0 -1
- package/dist/packages/primitives/editable/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/file-upload/src/FileUpload.vue.d.ts.map +0 -1
- package/dist/packages/primitives/file-upload/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/indicator/src/Indicator.vue.d.ts.map +0 -1
- package/dist/packages/primitives/indicator/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/number-field/src/NumberField.vue.d.ts.map +0 -1
- package/dist/packages/primitives/number-field/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/otp-input/src/OtpInput.vue.d.ts.map +0 -1
- package/dist/packages/primitives/otp-input/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/pagination/src/Pagination.vue.d.ts.map +0 -1
- package/dist/packages/primitives/pagination/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/progress/src/Progress.vue.d.ts.map +0 -1
- package/dist/packages/primitives/progress/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/radial-progress/src/RadialProgress.vue.d.ts.map +0 -1
- package/dist/packages/primitives/radial-progress/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/rating/src/Rating.vue.d.ts.map +0 -1
- package/dist/packages/primitives/rating/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/stepper/src/Stepper.vue.d.ts.map +0 -1
- package/dist/packages/primitives/stepper/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/tags-input/src/TagsInput.vue.d.ts.map +0 -1
- package/dist/packages/primitives/tags-input/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/text-field/src/TextField.vue.d.ts.map +0 -1
- package/dist/packages/primitives/text-field/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/textarea/src/Textarea.vue.d.ts.map +0 -1
- package/dist/packages/primitives/textarea/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/time-picker/src/TimePicker.vue.d.ts.map +0 -1
- package/dist/packages/primitives/toast/src/Toast.vue.d.ts.map +0 -1
- package/dist/packages/primitives/toast/src/ToastItem.vue.d.ts.map +0 -1
- package/dist/packages/primitives/toast/src/index.d.ts.map +0 -1
- package/dist/packages/primitives/window-controls/src/WindowControls.vue.d.ts.map +0 -1
- package/dist/packages/primitives/window-controls/src/index.d.ts.map +0 -1
- package/dist/styles/theme.contrast.test.ts +0 -460
|
@@ -261,18 +261,20 @@ export declare const RANGE_CELL_LABELS: RangeCellLabels;
|
|
|
261
261
|
/**
|
|
262
262
|
* A month name in the control's locale, for use in `aria-valuetext`.
|
|
263
263
|
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
264
|
+
* A building block of the defaults below, not public surface — it stays off
|
|
265
|
+
* the package barrel, because a host wording an override formats however
|
|
266
|
+
* their application already does. Exported from the module so its own tests
|
|
267
|
+
* can pin it directly.
|
|
267
268
|
*/
|
|
268
269
|
export declare function monthName(locale: string, month: number): string;
|
|
269
270
|
/**
|
|
270
271
|
* A whole day written out — weekday, day, month and year — in the control's
|
|
271
272
|
* locale, which is the half of a range cell's name that is not a qualifier.
|
|
272
273
|
*
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
*
|
|
274
|
+
* Both range controls' English defaults need it and neither should own it; a
|
|
275
|
+
* host replacing those defaults formats with whatever their own application
|
|
276
|
+
* already uses and never calls this. Like `monthName`, it stays off the
|
|
277
|
+
* package barrel.
|
|
276
278
|
*/
|
|
277
279
|
export declare function formatFullDay(locale: string, date: DateValue): string;
|
|
278
280
|
//# sourceMappingURL=date-labels.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-labels.d.ts","sourceRoot":"","sources":["../../../../packages/labels/src/date-labels.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"date-labels.d.ts","sourceRoot":"","sources":["../../../../packages/labels/src/date-labels.ts"],"names":[],"mappings":"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"}
|
|
@@ -118,9 +118,10 @@ var monthFormatters = /* @__PURE__ */ new Map();
|
|
|
118
118
|
/**
|
|
119
119
|
* A month name in the control's locale, for use in `aria-valuetext`.
|
|
120
120
|
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
121
|
+
* A building block of the defaults below, not public surface — it stays off
|
|
122
|
+
* the package barrel, because a host wording an override formats however
|
|
123
|
+
* their application already does. Exported from the module so its own tests
|
|
124
|
+
* can pin it directly.
|
|
124
125
|
*/
|
|
125
126
|
function monthName(locale, month) {
|
|
126
127
|
let formatter = monthFormatters.get(locale);
|
|
@@ -134,9 +135,10 @@ function monthName(locale, month) {
|
|
|
134
135
|
* A whole day written out — weekday, day, month and year — in the control's
|
|
135
136
|
* locale, which is the half of a range cell's name that is not a qualifier.
|
|
136
137
|
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
138
|
+
* Both range controls' English defaults need it and neither should own it; a
|
|
139
|
+
* host replacing those defaults formats with whatever their own application
|
|
140
|
+
* already uses and never calls this. Like `monthName`, it stays off the
|
|
141
|
+
* package barrel.
|
|
140
142
|
*/
|
|
141
143
|
function formatFullDay(locale, date) {
|
|
142
144
|
let formatter = dayFormatters.get(locale);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-labels.js","names":[],"sources":["../../../../packages/labels/src/date-labels.ts"],"sourcesContent":["import { getLocalTimeZone, type DateValue } from \"@internationalized/date\";\nimport type { LabelOf } from \"./labels\";\n\n/**\n * The four slices the five date and time controls share, and the one decision\n * behind putting them here rather than five times over.\n *\n * Every other component in the library declares its own bag beside its own\n * markup, because its vocabulary is its own. These five do not have five\n * vocabularies: `DatePicker`, `DateTimePicker`, `DateRangePicker` and\n * `DateTimeRangePicker` all say *Open calendar*, *Previous month* and *Next\n * month*, and all five name the parts of a segmented field with the same\n * words — the words are Reka UI's `useDateField` and `CalendarRoot` speaking,\n * one implementation underneath all five. Declared per component that would be\n * fifty-two keys with the same twelve strings written four times, and a\n * translator doing the same work four times to make one language complete.\n *\n * **Sliced by what a control actually says, not merged into one family bag.**\n * A `TimePicker` has no calendar and never renders a month or a year, so it\n * registers `timeSegments` alone: its documented vocabulary is four keys, and a\n * consumer importing only that control ships only those four strings. One\n * shared bag for the whole family would have made every one of the five carry\n * all twenty, and would have printed keys on `TimePicker`'s API page that it\n * has no element to put them on.\n *\n * What is deliberately *not* shared is the two range controls' half-group names\n * and status lines. They name the same concepts with different words (`Start\n * date` against `Start date and time`) and from different facts (a count of\n * whole days against a signed duration in minutes), so a shared key would have\n * to be a sentence that is never true of both. Their calendar cells' names are\n * shared, because those differ in neither.\n */\n\n/**\n * The names Reka UI's `useDateField` writes onto the day, month, year and era\n * segments — `\"day,\"`, `\"month, \"`, `\"year, \"`, `\"era\"`, each with the spacing\n * of a string it meant to concatenate.\n *\n * There is no prop for any of them. A binding on Loom's side reaches the\n * segment as a fallthrough attribute, which Vue merges onto the rendered vnode\n * *after* Reka's own render function produced it, and `mergeProps` is\n * last-write-wins for everything that is not `class`, `style` or `on*` — so\n * these replace Reka's rather than competing with it. Leave one unset and the\n * segment is not unnamed, it is named in English, which is the failure this\n * seam exists to close.\n *\n * Loom's defaults differ from Reka's by their capitalisation, which is what\n * lets a test assert *whose* string reached the DOM rather than merely what it\n * said.\n */\nexport interface DateSegmentLabels {\n /** The month segment of a date field. */\n readonly month: string;\n /** The day-of-month segment. */\n readonly day: string;\n /** The year segment. */\n readonly year: string;\n /**\n * The era segment, which most locales never render — `ja-JP-u-ca-japanese`\n * is the ordinary case that does.\n */\n readonly era: string;\n /**\n * What a segment with nothing in it yet reports as its value, replacing the\n * `aria-valuetext=\"Empty\"` Reka writes on an unfilled day, month or year.\n *\n * A segment shows the locale's own placeholder — `mm`, `jj`, `aaaa` — while\n * announcing this instead, so it is the one word standing between a fully\n * localised date field and a reader who is told \"Empty\" in English.\n *\n * Present on this slice *and* on `TimeSegmentLabels` rather than shared\n * between them, for the reason the slices exist at all: a `TimePicker`\n * registers no `dateSegments`, and a key it could only reach through the\n * date half would be a key it could not set.\n */\n readonly empty: string;\n /**\n * What a filled month segment announces as its value, replacing the\n * `aria-valuetext` Reka builds inside `useDateField`.\n *\n * Reka writes `\"5 - May\"` — the numeric month, a hard-coded `\" - \"`, and\n * the month name from `Intl.DateTimeFormat`. The name is locale-aware, but\n * the format is not: Japanese writes `\"5月\"`, Vietnamese `\"tháng 5\"`, and\n * neither separates the two parts with a hyphen. A `LabelOf` hands the\n * host the month number and the locale so they can compose the string their\n * language needs, using `Intl.DateTimeFormat` for the name and arranging the\n * parts in the right order.\n *\n * A `LabelOf` rather than a plain string, for the same reason\n * `RangeCellLabels.cell` is one: the month name depends on the locale, and\n * a string that did not receive the locale could not produce it. The host\n * decides the format — Loom's English default matches Reka's output so that\n * nothing changes for a consumer who does not override it.\n */\n readonly filledMonth: LabelOf<{ value: number; locale: string }>;\n}\n\n/**\n * Loom's English for the date segments, co-located so it tree-shakes with the\n * controls that use it, and exported so a host can build a partial vocabulary\n * against the real thing rather than a transcription of it.\n */\nexport const DATE_SEGMENT_LABELS: DateSegmentLabels = {\n month: \"Month\",\n day: \"Day\",\n year: \"Year\",\n era: \"Era\",\n // \"Not set\" rather than Reka's own \"Empty\", and the difference is load-bearing\n // in the same way the capitalisation of the names above is: it is what lets a\n // test assert whose string reached the DOM. It also reads better spoken — a\n // reader is being told this field has no value yet, not that it is blank.\n empty: \"Not set\",\n // Matches Reka's `\"5 - May\"` format for English. The month name comes from\n // `Intl.DateTimeFormat` via the cached `monthFormatters` map, which avoids\n // reconstructing the formatter on every render. A host overrides this to\n // change the format — Japanese `\"5月\"`, Vietnamese `\"tháng 5\"`, etc.\n filledMonth: ({ value, locale }) => {\n const name = monthName(locale, value);\n return `${String(value)} - ${name}`;\n },\n};\n\n/**\n * The same, for the clock half of a segmented field: Reka writes `\"hour, \"`,\n * `\"minute, \"`, `\"second, \"` and `\"AM/PM\"`, and offers a prop for none of them.\n *\n * `dayPeriod` is spelled `AM or PM` rather than `AM/PM` so that it reads as\n * words when it is spoken, and so the capitalisation trick above still works on\n * the one segment whose name Reka already capitalises.\n */\nexport interface TimeSegmentLabels {\n /** The hour segment. */\n readonly hour: string;\n /** The minute segment. */\n readonly minute: string;\n /** The seconds segment, which only a control at second granularity renders. */\n readonly second: string;\n /** The AM/PM segment, which only a 12-hour field renders. */\n readonly dayPeriod: string;\n /** What an hour, minute or second with nothing in it yet reports. See `DateSegmentLabels.empty`. */\n readonly empty: string;\n /**\n * What a filled day-period segment announces as its value, replacing the\n * `aria-valuetext` Reka writes inside `useDateField`.\n *\n * Reka writes `segmentValues.dayPeriod ?? \"AM\"` — always `\"AM\"` or `\"PM\"`,\n * produced by its own hour-cycle logic (`hour >= 12 ? \"PM\" : \"AM\"`) rather\n * than by `Intl.DateTimeFormat`. A host who has localised every other string\n * in the library still hears Latin-script \"AM\"/\"PM\" from this segment, which\n * is the defect this key exists to close.\n *\n * A `LabelOf` rather than a plain string, because the period name depends on\n * the locale: Arabic writes `\"ص\"`/`\"م\"`, Japanese `\"午前\"`/`\"午後\"`, and a\n * plain string could not carry that decision. Loom's English default returns\n * `dayPeriod` unchanged, which is correct for Latin-script locales.\n */\n readonly filledDayPeriod: LabelOf<{ dayPeriod: string }>;\n}\n\n/** Loom's English for the time segments. See `DATE_SEGMENT_LABELS`. */\nexport const TIME_SEGMENT_LABELS: TimeSegmentLabels = {\n hour: \"Hour\",\n minute: \"Minute\",\n second: \"Second\",\n dayPeriod: \"AM or PM\",\n empty: \"Not set\",\n // The identity function for English: Reka's `\"AM\"`/`\"PM\"` are correct for\n // Latin-script locales. A host localising to Arabic, Japanese, etc. overrides\n // this to return the locale's own period names.\n filledDayPeriod: ({ dayPeriod }) => dayPeriod,\n};\n\n/**\n * The parts each slice actually names — every key of its bag except `empty`,\n * which is a message *about* a segment rather than the name of one.\n *\n * Both the type and the set below are written out rather than derived from the\n * bags, which is what they were before `empty` joined them. Derived, the guards\n * would answer `true` for `\"empty\"` and narrow a part to a key that names no\n * element, and `segmentLabel` would happily return the empty message as a\n * segment's accessible name.\n */\nexport type DateSegmentName = Exclude<keyof DateSegmentLabels, \"empty\" | \"filledMonth\">;\nexport type TimeSegmentName = Exclude<keyof TimeSegmentLabels, \"empty\" | \"filledDayPeriod\">;\n\nconst DATE_SEGMENT_PARTS = new Set<DateSegmentName>([\"month\", \"day\", \"year\", \"era\"]);\nconst TIME_SEGMENT_PARTS = new Set<TimeSegmentName>([\"hour\", \"minute\", \"second\", \"dayPeriod\"]);\n\n/**\n * The six segments Reka reports as `aria-valuetext=\"Empty\"` when they hold\n * nothing — and, not by coincidence, the six that render as digits when they\n * hold something. `dayPeriod` and `era` are absent because Reka never writes\n * \"Empty\" on either: an unset `dayPeriod` reads `AM` and an unset `era` reads\n * the placeholder's own era, both of which are already the locale's words.\n */\nconst EMPTIABLE_SEGMENT_PARTS = new Set<string>([\n \"day\",\n \"month\",\n \"year\",\n \"hour\",\n \"minute\",\n \"second\",\n]);\n\n/**\n * The `aria-valuetext` override for one segment, as an object to `v-bind`\n * rather than a string to bind directly — and that is the whole point of it.\n *\n * Reka writes `aria-valuetext=\"Empty\"` on an unfilled segment and the number\n * on a filled one, and only the first is a hard-coded English literal: the\n * second is `${valueNow}`, and the month's `\"3 - March\"` takes its month name\n * from the field's own `locale`. So this replaces exactly the empty case and\n * leaves the rest alone. Binding `:aria-valuetext` directly could not do that\n * — Vue merges a fallthrough `undefined` over Reka's value and *removes* the\n * attribute, so a filled segment would lose the number it is there to read\n * out. An absent key merges as nothing at all, which is what `optional()`\n * exists for elsewhere and what returning `{}` does here.\n *\n * Emptiness is read off the digits in the segment's own displayed value, which\n * is sound in both directions for these six parts: every locale's placeholder\n * for them is letters (`mm`, `jj`, `aaaa`) and every value they can hold is\n * digits. The two parts where that would not hold are the two excluded above.\n */\nexport function emptySegmentValueText(\n part: string,\n value: string,\n empty: string,\n): { \"aria-valuetext\"?: string } {\n return EMPTIABLE_SEGMENT_PARTS.has(part) && !/\\d/.test(value) ? { \"aria-valuetext\": empty } : {};\n}\n\n/**\n * Whether a part named by Reka's `segments` slot is one this slice names.\n *\n * A guard rather than an index, because the slot also yields `literal` — the\n * slashes and colons between the segments, which Reka renders `aria-hidden`\n * and which must stay unnamed — and `timeZoneName`, which none of these five\n * controls can produce: their values parse through `parseDate`, `parseTime` and\n * `parseDateTime`, none of which yields a zoned value, and no prop on any of\n * them accepts a zone. Reka's `\"timezone, \"` is therefore unreachable from\n * here, and a key for it would be a key nothing could ever render.\n */\nexport function isDateSegmentPart(part: string): part is DateSegmentName {\n return DATE_SEGMENT_PARTS.has(part as DateSegmentName);\n}\n\n/** Whether a part named by Reka's `segments` slot belongs to the clock half. */\nexport function isTimeSegmentPart(part: string): part is TimeSegmentName {\n return TIME_SEGMENT_PARTS.has(part as TimeSegmentName);\n}\n\n/**\n * Everything the calendar popover says that is not a date: the panel's own\n * name, the button that opens it, and the two that page the months.\n *\n * `calendar` is Reka's `CalendarRoot`/`RangeCalendarRoot` `calendarLabel` prop,\n * whose default is the string `\"Event Date\"` — a name for somebody else's\n * application, published both as the grid container's `aria-label` and inside a\n * visually-hidden live region that a screen reader reads on every month change.\n * It is a documented prop rather than a hard-coded literal, so it is the one\n * name in this file that is set rather than overridden.\n *\n * `previousMonth` and `nextMonth` do replace literals: Reka writes\n * `\"Previous page\"` and `\"Next page\"` on those two buttons, which is both\n * English and wrong — what they move is a month.\n */\nexport interface CalendarPanelLabels {\n /** The calendar's own name, read before the month and year on entering it. */\n readonly calendar: string;\n /** The button in the field that opens the calendar popover. */\n readonly openCalendar: string;\n /** The button that pages the calendar back one month. */\n readonly previousMonth: string;\n /** The button that pages the calendar on one month. */\n readonly nextMonth: string;\n}\n\n/** Loom's English for the calendar popover. See `DATE_SEGMENT_LABELS`. */\nexport const CALENDAR_PANEL_LABELS: CalendarPanelLabels = {\n calendar: \"Calendar\",\n openCalendar: \"Open calendar\",\n previousMonth: \"Previous month\",\n nextMonth: \"Next month\",\n};\n\n/**\n * Which part of a chosen span one calendar cell plays, handed to the cell's\n * label rather than resolved into words by the control.\n *\n * Four sibling keys and a joiner would be four phrases a translator cannot\n * reorder around the date they qualify — and in several languages the qualifier\n * does not follow the date at all. One argument carrying the variant is what\n * keeps the whole cell name one sentence the host writes.\n */\nexport type RangeCellPart = \"start\" | \"end\" | \"both\" | \"within\";\n\n/**\n * The accessible name of one day in a range calendar, shared by both range\n * controls because they say it identically and from identical facts — a day\n * and its part in the span. `DateTimeRangePicker`'s cells carry no time: the\n * cell *is* a day, and choosing it moves only the day.\n *\n * The two controls' other strings are not shared, because they differ in words\n * and in facts. This one does neither, and a translator writing it twice would\n * be writing it twice for no reason.\n */\nexport interface RangeCellLabels {\n /**\n * One calendar cell's accessible name, which replaces the one Reka writes\n * rather than adding to it: a cell's part in the range has to arrive *with*\n * the date, and an element has no second slot for a name.\n *\n * `part` is `undefined` for a day with no part in the range at all.\n */\n readonly cell: LabelOf<{\n locale: string;\n date: DateValue;\n part: RangeCellPart | undefined;\n }>;\n}\n\n/**\n * Loom's English for a range calendar's cells. The three fills that carry the\n * first day, the last and the ones between are three shades of one colour,\n * which survives neither a colour deficiency nor forced-colors mode — naming\n * the part is what tells them apart, and it is what makes a one-day span say so\n * once rather than announce itself twice as two different things.\n */\nexport const RANGE_CELL_LABELS: RangeCellLabels = {\n cell: ({ locale, date, part }) => {\n const full = formatFullDay(locale, date);\n if (part === \"both\") return `${full}, the whole range, first and last day`;\n if (part === \"start\") return `${full}, first day of the range`;\n if (part === \"end\") return `${full}, last day of the range`;\n return part === \"within\" ? `${full}, within the range` : full;\n },\n};\n\n// One formatter per locale, kept, because a range calendar's cell label runs\n// forty-two to eighty-four times per render and `Intl.DateTimeFormat`'s\n// constructor is the expensive half of it. The map is bounded by the number of\n// locales an application actually renders, which is one in nearly every case.\nconst dayFormatters = new Map<string, Intl.DateTimeFormat>();\n\n// Same pattern, for the filled month segment's `aria-valuetext`. The default\n// `filledMonth` label calls this on every render, so caching the formatter\n// avoids the `Intl.DateTimeFormat` constructor cost each time.\nconst monthFormatters = new Map<string, Intl.DateTimeFormat>();\n\n/**\n * A month name in the control's locale, for use in `aria-valuetext`.\n *\n * Exported so a host building a partial vocabulary can call it from their own\n * `filledMonth` override rather than formatting from scratch — the same reason\n * `formatFullDay` is exported.\n */\nexport function monthName(locale: string, month: number): string {\n let formatter = monthFormatters.get(locale);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(locale, { month: \"long\" });\n monthFormatters.set(locale, formatter);\n }\n // `Date` months are 0-indexed; Loom months are 1-indexed (as in `DateValue.month`).\n return formatter.format(new Date(2026, month - 1, 1));\n}\n\n/**\n * A whole day written out — weekday, day, month and year — in the control's\n * locale, which is the half of a range cell's name that is not a qualifier.\n *\n * Exported because both range controls' English defaults need it and neither\n * should own it; a host replacing those defaults formats with whatever their\n * own application already uses and never calls this.\n */\nexport function formatFullDay(locale: string, date: DateValue): string {\n let formatter = dayFormatters.get(locale);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(locale, {\n weekday: \"long\",\n day: \"numeric\",\n month: \"long\",\n year: \"numeric\",\n });\n dayFormatters.set(locale, formatter);\n }\n return formatter.format(date.toDate(getLocalTimeZone()));\n}\n"],"mappings":";;;;;;;AAsGA,IAAa,sBAAyC;CACpD,OAAO;CACP,KAAK;CACL,MAAM;CACN,KAAK;CAKL,OAAO;CAKP,cAAc,EAAE,OAAO,aAAa;EAClC,MAAM,OAAO,UAAU,QAAQ,KAAK;EACpC,OAAO,GAAG,OAAO,KAAK,EAAE,KAAK;CAC/B;AACF;;AAwCA,IAAa,sBAAyC;CACpD,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,OAAO;CAIP,kBAAkB,EAAE,gBAAgB;AACtC;AAeA,IAAM,qCAAqB,IAAI,IAAqB;CAAC;CAAS;CAAO;CAAQ;AAAK,CAAC;AACnF,IAAM,qCAAqB,IAAI,IAAqB;CAAC;CAAQ;CAAU;CAAU;AAAW,CAAC;;;;;;;;AAS7F,IAAM,0CAA0B,IAAI,IAAY;CAC9C;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;;;;;;;;;;;;;;;;;;;;AAqBD,SAAgB,sBACd,MACA,OACA,OAC+B;CAC/B,OAAO,wBAAwB,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,kBAAkB,MAAM,IAAI,CAAC;AACjG;;;;;;;;;;;;AAaA,SAAgB,kBAAkB,MAAuC;CACvE,OAAO,mBAAmB,IAAI,IAAuB;AACvD;;AAGA,SAAgB,kBAAkB,MAAuC;CACvE,OAAO,mBAAmB,IAAI,IAAuB;AACvD;;AA6BA,IAAa,wBAA6C;CACxD,UAAU;CACV,cAAc;CACd,eAAe;CACf,WAAW;AACb;;;;;;;;AA6CA,IAAa,oBAAqC,EAChD,OAAO,EAAE,QAAQ,MAAM,WAAW;CAChC,MAAM,OAAO,cAAc,QAAQ,IAAI;CACvC,IAAI,SAAS,QAAQ,OAAO,GAAG,KAAK;CACpC,IAAI,SAAS,SAAS,OAAO,GAAG,KAAK;CACrC,IAAI,SAAS,OAAO,OAAO,GAAG,KAAK;CACnC,OAAO,SAAS,WAAW,GAAG,KAAK,sBAAsB;AAC3D,EACF;AAMA,IAAM,gCAAgB,IAAI,IAAiC;AAK3D,IAAM,kCAAkB,IAAI,IAAiC;;;;;;;;AAS7D,SAAgB,UAAU,QAAgB,OAAuB;CAC/D,IAAI,YAAY,gBAAgB,IAAI,MAAM;CAC1C,IAAI,CAAC,WAAW;EACd,YAAY,IAAI,KAAK,eAAe,QAAQ,EAAE,OAAO,OAAO,CAAC;EAC7D,gBAAgB,IAAI,QAAQ,SAAS;CACvC;CAEA,OAAO,UAAU,OAAO,IAAI,KAAK,MAAM,QAAQ,GAAG,CAAC,CAAC;AACtD;;;;;;;;;AAUA,SAAgB,cAAc,QAAgB,MAAyB;CACrE,IAAI,YAAY,cAAc,IAAI,MAAM;CACxC,IAAI,CAAC,WAAW;EACd,YAAY,IAAI,KAAK,eAAe,QAAQ;GAC1C,SAAS;GACT,KAAK;GACL,OAAO;GACP,MAAM;EACR,CAAC;EACD,cAAc,IAAI,QAAQ,SAAS;CACrC;CACA,OAAO,UAAU,OAAO,KAAK,OAAO,0CAAiB,CAAC,CAAC;AACzD"}
|
|
1
|
+
{"version":3,"file":"date-labels.js","names":[],"sources":["../../../../packages/labels/src/date-labels.ts"],"sourcesContent":["import { getLocalTimeZone, type DateValue } from \"@internationalized/date\";\nimport type { LabelOf } from \"./labels\";\n\n/**\n * The four slices the five date and time controls share, and the one decision\n * behind putting them here rather than five times over.\n *\n * Every other component in the library declares its own bag beside its own\n * markup, because its vocabulary is its own. These five do not have five\n * vocabularies: `DatePicker`, `DateTimePicker`, `DateRangePicker` and\n * `DateTimeRangePicker` all say *Open calendar*, *Previous month* and *Next\n * month*, and all five name the parts of a segmented field with the same\n * words — the words are Reka UI's `useDateField` and `CalendarRoot` speaking,\n * one implementation underneath all five. Declared per component that would be\n * fifty-two keys with the same twelve strings written four times, and a\n * translator doing the same work four times to make one language complete.\n *\n * **Sliced by what a control actually says, not merged into one family bag.**\n * A `TimePicker` has no calendar and never renders a month or a year, so it\n * registers `timeSegments` alone: its documented vocabulary is four keys, and a\n * consumer importing only that control ships only those four strings. One\n * shared bag for the whole family would have made every one of the five carry\n * all twenty, and would have printed keys on `TimePicker`'s API page that it\n * has no element to put them on.\n *\n * What is deliberately *not* shared is the two range controls' half-group names\n * and status lines. They name the same concepts with different words (`Start\n * date` against `Start date and time`) and from different facts (a count of\n * whole days against a signed duration in minutes), so a shared key would have\n * to be a sentence that is never true of both. Their calendar cells' names are\n * shared, because those differ in neither.\n */\n\n/**\n * The names Reka UI's `useDateField` writes onto the day, month, year and era\n * segments — `\"day,\"`, `\"month, \"`, `\"year, \"`, `\"era\"`, each with the spacing\n * of a string it meant to concatenate.\n *\n * There is no prop for any of them. A binding on Loom's side reaches the\n * segment as a fallthrough attribute, which Vue merges onto the rendered vnode\n * *after* Reka's own render function produced it, and `mergeProps` is\n * last-write-wins for everything that is not `class`, `style` or `on*` — so\n * these replace Reka's rather than competing with it. Leave one unset and the\n * segment is not unnamed, it is named in English, which is the failure this\n * seam exists to close.\n *\n * Loom's defaults differ from Reka's by their capitalisation, which is what\n * lets a test assert *whose* string reached the DOM rather than merely what it\n * said.\n */\nexport interface DateSegmentLabels {\n /** The month segment of a date field. */\n readonly month: string;\n /** The day-of-month segment. */\n readonly day: string;\n /** The year segment. */\n readonly year: string;\n /**\n * The era segment, which most locales never render — `ja-JP-u-ca-japanese`\n * is the ordinary case that does.\n */\n readonly era: string;\n /**\n * What a segment with nothing in it yet reports as its value, replacing the\n * `aria-valuetext=\"Empty\"` Reka writes on an unfilled day, month or year.\n *\n * A segment shows the locale's own placeholder — `mm`, `jj`, `aaaa` — while\n * announcing this instead, so it is the one word standing between a fully\n * localised date field and a reader who is told \"Empty\" in English.\n *\n * Present on this slice *and* on `TimeSegmentLabels` rather than shared\n * between them, for the reason the slices exist at all: a `TimePicker`\n * registers no `dateSegments`, and a key it could only reach through the\n * date half would be a key it could not set.\n */\n readonly empty: string;\n /**\n * What a filled month segment announces as its value, replacing the\n * `aria-valuetext` Reka builds inside `useDateField`.\n *\n * Reka writes `\"5 - May\"` — the numeric month, a hard-coded `\" - \"`, and\n * the month name from `Intl.DateTimeFormat`. The name is locale-aware, but\n * the format is not: Japanese writes `\"5月\"`, Vietnamese `\"tháng 5\"`, and\n * neither separates the two parts with a hyphen. A `LabelOf` hands the\n * host the month number and the locale so they can compose the string their\n * language needs, using `Intl.DateTimeFormat` for the name and arranging the\n * parts in the right order.\n *\n * A `LabelOf` rather than a plain string, for the same reason\n * `RangeCellLabels.cell` is one: the month name depends on the locale, and\n * a string that did not receive the locale could not produce it. The host\n * decides the format — Loom's English default matches Reka's output so that\n * nothing changes for a consumer who does not override it.\n */\n readonly filledMonth: LabelOf<{ value: number; locale: string }>;\n}\n\n/**\n * Loom's English for the date segments, co-located so it tree-shakes with the\n * controls that use it, and exported so a host can build a partial vocabulary\n * against the real thing rather than a transcription of it.\n */\nexport const DATE_SEGMENT_LABELS: DateSegmentLabels = {\n month: \"Month\",\n day: \"Day\",\n year: \"Year\",\n era: \"Era\",\n // \"Not set\" rather than Reka's own \"Empty\", and the difference is load-bearing\n // in the same way the capitalisation of the names above is: it is what lets a\n // test assert whose string reached the DOM. It also reads better spoken — a\n // reader is being told this field has no value yet, not that it is blank.\n empty: \"Not set\",\n // Matches Reka's `\"5 - May\"` format for English. The month name comes from\n // `Intl.DateTimeFormat` via the cached `monthFormatters` map, which avoids\n // reconstructing the formatter on every render. A host overrides this to\n // change the format — Japanese `\"5月\"`, Vietnamese `\"tháng 5\"`, etc.\n filledMonth: ({ value, locale }) => {\n const name = monthName(locale, value);\n return `${String(value)} - ${name}`;\n },\n};\n\n/**\n * The same, for the clock half of a segmented field: Reka writes `\"hour, \"`,\n * `\"minute, \"`, `\"second, \"` and `\"AM/PM\"`, and offers a prop for none of them.\n *\n * `dayPeriod` is spelled `AM or PM` rather than `AM/PM` so that it reads as\n * words when it is spoken, and so the capitalisation trick above still works on\n * the one segment whose name Reka already capitalises.\n */\nexport interface TimeSegmentLabels {\n /** The hour segment. */\n readonly hour: string;\n /** The minute segment. */\n readonly minute: string;\n /** The seconds segment, which only a control at second granularity renders. */\n readonly second: string;\n /** The AM/PM segment, which only a 12-hour field renders. */\n readonly dayPeriod: string;\n /** What an hour, minute or second with nothing in it yet reports. See `DateSegmentLabels.empty`. */\n readonly empty: string;\n /**\n * What a filled day-period segment announces as its value, replacing the\n * `aria-valuetext` Reka writes inside `useDateField`.\n *\n * Reka writes `segmentValues.dayPeriod ?? \"AM\"` — always `\"AM\"` or `\"PM\"`,\n * produced by its own hour-cycle logic (`hour >= 12 ? \"PM\" : \"AM\"`) rather\n * than by `Intl.DateTimeFormat`. A host who has localised every other string\n * in the library still hears Latin-script \"AM\"/\"PM\" from this segment, which\n * is the defect this key exists to close.\n *\n * A `LabelOf` rather than a plain string, because the period name depends on\n * the locale: Arabic writes `\"ص\"`/`\"م\"`, Japanese `\"午前\"`/`\"午後\"`, and a\n * plain string could not carry that decision. Loom's English default returns\n * `dayPeriod` unchanged, which is correct for Latin-script locales.\n */\n readonly filledDayPeriod: LabelOf<{ dayPeriod: string }>;\n}\n\n/** Loom's English for the time segments. See `DATE_SEGMENT_LABELS`. */\nexport const TIME_SEGMENT_LABELS: TimeSegmentLabels = {\n hour: \"Hour\",\n minute: \"Minute\",\n second: \"Second\",\n dayPeriod: \"AM or PM\",\n empty: \"Not set\",\n // The identity function for English: Reka's `\"AM\"`/`\"PM\"` are correct for\n // Latin-script locales. A host localising to Arabic, Japanese, etc. overrides\n // this to return the locale's own period names.\n filledDayPeriod: ({ dayPeriod }) => dayPeriod,\n};\n\n/**\n * The parts each slice actually names — every key of its bag except `empty`,\n * which is a message *about* a segment rather than the name of one.\n *\n * Both the type and the set below are written out rather than derived from the\n * bags, which is what they were before `empty` joined them. Derived, the guards\n * would answer `true` for `\"empty\"` and narrow a part to a key that names no\n * element, and `segmentLabel` would happily return the empty message as a\n * segment's accessible name.\n */\nexport type DateSegmentName = Exclude<keyof DateSegmentLabels, \"empty\" | \"filledMonth\">;\nexport type TimeSegmentName = Exclude<keyof TimeSegmentLabels, \"empty\" | \"filledDayPeriod\">;\n\nconst DATE_SEGMENT_PARTS = new Set<DateSegmentName>([\"month\", \"day\", \"year\", \"era\"]);\nconst TIME_SEGMENT_PARTS = new Set<TimeSegmentName>([\"hour\", \"minute\", \"second\", \"dayPeriod\"]);\n\n/**\n * The six segments Reka reports as `aria-valuetext=\"Empty\"` when they hold\n * nothing — and, not by coincidence, the six that render as digits when they\n * hold something. `dayPeriod` and `era` are absent because Reka never writes\n * \"Empty\" on either: an unset `dayPeriod` reads `AM` and an unset `era` reads\n * the placeholder's own era, both of which are already the locale's words.\n */\nconst EMPTIABLE_SEGMENT_PARTS = new Set<string>([\n \"day\",\n \"month\",\n \"year\",\n \"hour\",\n \"minute\",\n \"second\",\n]);\n\n/**\n * The `aria-valuetext` override for one segment, as an object to `v-bind`\n * rather than a string to bind directly — and that is the whole point of it.\n *\n * Reka writes `aria-valuetext=\"Empty\"` on an unfilled segment and the number\n * on a filled one, and only the first is a hard-coded English literal: the\n * second is `${valueNow}`, and the month's `\"3 - March\"` takes its month name\n * from the field's own `locale`. So this replaces exactly the empty case and\n * leaves the rest alone. Binding `:aria-valuetext` directly could not do that\n * — Vue merges a fallthrough `undefined` over Reka's value and *removes* the\n * attribute, so a filled segment would lose the number it is there to read\n * out. An absent key merges as nothing at all, which is what `optional()`\n * exists for elsewhere and what returning `{}` does here.\n *\n * Emptiness is read off the digits in the segment's own displayed value, which\n * is sound in both directions for these six parts: every locale's placeholder\n * for them is letters (`mm`, `jj`, `aaaa`) and every value they can hold is\n * digits. The two parts where that would not hold are the two excluded above.\n */\nexport function emptySegmentValueText(\n part: string,\n value: string,\n empty: string,\n): { \"aria-valuetext\"?: string } {\n return EMPTIABLE_SEGMENT_PARTS.has(part) && !/\\d/.test(value) ? { \"aria-valuetext\": empty } : {};\n}\n\n/**\n * Whether a part named by Reka's `segments` slot is one this slice names.\n *\n * A guard rather than an index, because the slot also yields `literal` — the\n * slashes and colons between the segments, which Reka renders `aria-hidden`\n * and which must stay unnamed — and `timeZoneName`, which none of these five\n * controls can produce: their values parse through `parseDate`, `parseTime` and\n * `parseDateTime`, none of which yields a zoned value, and no prop on any of\n * them accepts a zone. Reka's `\"timezone, \"` is therefore unreachable from\n * here, and a key for it would be a key nothing could ever render.\n */\nexport function isDateSegmentPart(part: string): part is DateSegmentName {\n return DATE_SEGMENT_PARTS.has(part as DateSegmentName);\n}\n\n/** Whether a part named by Reka's `segments` slot belongs to the clock half. */\nexport function isTimeSegmentPart(part: string): part is TimeSegmentName {\n return TIME_SEGMENT_PARTS.has(part as TimeSegmentName);\n}\n\n/**\n * Everything the calendar popover says that is not a date: the panel's own\n * name, the button that opens it, and the two that page the months.\n *\n * `calendar` is Reka's `CalendarRoot`/`RangeCalendarRoot` `calendarLabel` prop,\n * whose default is the string `\"Event Date\"` — a name for somebody else's\n * application, published both as the grid container's `aria-label` and inside a\n * visually-hidden live region that a screen reader reads on every month change.\n * It is a documented prop rather than a hard-coded literal, so it is the one\n * name in this file that is set rather than overridden.\n *\n * `previousMonth` and `nextMonth` do replace literals: Reka writes\n * `\"Previous page\"` and `\"Next page\"` on those two buttons, which is both\n * English and wrong — what they move is a month.\n */\nexport interface CalendarPanelLabels {\n /** The calendar's own name, read before the month and year on entering it. */\n readonly calendar: string;\n /** The button in the field that opens the calendar popover. */\n readonly openCalendar: string;\n /** The button that pages the calendar back one month. */\n readonly previousMonth: string;\n /** The button that pages the calendar on one month. */\n readonly nextMonth: string;\n}\n\n/** Loom's English for the calendar popover. See `DATE_SEGMENT_LABELS`. */\nexport const CALENDAR_PANEL_LABELS: CalendarPanelLabels = {\n calendar: \"Calendar\",\n openCalendar: \"Open calendar\",\n previousMonth: \"Previous month\",\n nextMonth: \"Next month\",\n};\n\n/**\n * Which part of a chosen span one calendar cell plays, handed to the cell's\n * label rather than resolved into words by the control.\n *\n * Four sibling keys and a joiner would be four phrases a translator cannot\n * reorder around the date they qualify — and in several languages the qualifier\n * does not follow the date at all. One argument carrying the variant is what\n * keeps the whole cell name one sentence the host writes.\n */\nexport type RangeCellPart = \"start\" | \"end\" | \"both\" | \"within\";\n\n/**\n * The accessible name of one day in a range calendar, shared by both range\n * controls because they say it identically and from identical facts — a day\n * and its part in the span. `DateTimeRangePicker`'s cells carry no time: the\n * cell *is* a day, and choosing it moves only the day.\n *\n * The two controls' other strings are not shared, because they differ in words\n * and in facts. This one does neither, and a translator writing it twice would\n * be writing it twice for no reason.\n */\nexport interface RangeCellLabels {\n /**\n * One calendar cell's accessible name, which replaces the one Reka writes\n * rather than adding to it: a cell's part in the range has to arrive *with*\n * the date, and an element has no second slot for a name.\n *\n * `part` is `undefined` for a day with no part in the range at all.\n */\n readonly cell: LabelOf<{\n locale: string;\n date: DateValue;\n part: RangeCellPart | undefined;\n }>;\n}\n\n/**\n * Loom's English for a range calendar's cells. The three fills that carry the\n * first day, the last and the ones between are three shades of one colour,\n * which survives neither a colour deficiency nor forced-colors mode — naming\n * the part is what tells them apart, and it is what makes a one-day span say so\n * once rather than announce itself twice as two different things.\n */\nexport const RANGE_CELL_LABELS: RangeCellLabels = {\n cell: ({ locale, date, part }) => {\n const full = formatFullDay(locale, date);\n if (part === \"both\") return `${full}, the whole range, first and last day`;\n if (part === \"start\") return `${full}, first day of the range`;\n if (part === \"end\") return `${full}, last day of the range`;\n return part === \"within\" ? `${full}, within the range` : full;\n },\n};\n\n// One formatter per locale, kept, because a range calendar's cell label runs\n// forty-two to eighty-four times per render and `Intl.DateTimeFormat`'s\n// constructor is the expensive half of it. The map is bounded by the number of\n// locales an application actually renders, which is one in nearly every case.\nconst dayFormatters = new Map<string, Intl.DateTimeFormat>();\n\n// Same pattern, for the filled month segment's `aria-valuetext`. The default\n// `filledMonth` label calls this on every render, so caching the formatter\n// avoids the `Intl.DateTimeFormat` constructor cost each time.\nconst monthFormatters = new Map<string, Intl.DateTimeFormat>();\n\n/**\n * A month name in the control's locale, for use in `aria-valuetext`.\n *\n * A building block of the defaults below, not public surface — it stays off\n * the package barrel, because a host wording an override formats however\n * their application already does. Exported from the module so its own tests\n * can pin it directly.\n */\nexport function monthName(locale: string, month: number): string {\n let formatter = monthFormatters.get(locale);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(locale, { month: \"long\" });\n monthFormatters.set(locale, formatter);\n }\n // `Date` months are 0-indexed; Loom months are 1-indexed (as in `DateValue.month`).\n return formatter.format(new Date(2026, month - 1, 1));\n}\n\n/**\n * A whole day written out — weekday, day, month and year — in the control's\n * locale, which is the half of a range cell's name that is not a qualifier.\n *\n * Both range controls' English defaults need it and neither should own it; a\n * host replacing those defaults formats with whatever their own application\n * already uses and never calls this. Like `monthName`, it stays off the\n * package barrel.\n */\nexport function formatFullDay(locale: string, date: DateValue): string {\n let formatter = dayFormatters.get(locale);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(locale, {\n weekday: \"long\",\n day: \"numeric\",\n month: \"long\",\n year: \"numeric\",\n });\n dayFormatters.set(locale, formatter);\n }\n return formatter.format(date.toDate(getLocalTimeZone()));\n}\n"],"mappings":";;;;;;;AAsGA,IAAa,sBAAyC;CACpD,OAAO;CACP,KAAK;CACL,MAAM;CACN,KAAK;CAKL,OAAO;CAKP,cAAc,EAAE,OAAO,aAAa;EAClC,MAAM,OAAO,UAAU,QAAQ,KAAK;EACpC,OAAO,GAAG,OAAO,KAAK,EAAE,KAAK;CAC/B;AACF;;AAwCA,IAAa,sBAAyC;CACpD,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,OAAO;CAIP,kBAAkB,EAAE,gBAAgB;AACtC;AAeA,IAAM,qCAAqB,IAAI,IAAqB;CAAC;CAAS;CAAO;CAAQ;AAAK,CAAC;AACnF,IAAM,qCAAqB,IAAI,IAAqB;CAAC;CAAQ;CAAU;CAAU;AAAW,CAAC;;;;;;;;AAS7F,IAAM,0CAA0B,IAAI,IAAY;CAC9C;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;;;;;;;;;;;;;;;;;;;;AAqBD,SAAgB,sBACd,MACA,OACA,OAC+B;CAC/B,OAAO,wBAAwB,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,kBAAkB,MAAM,IAAI,CAAC;AACjG;;;;;;;;;;;;AAaA,SAAgB,kBAAkB,MAAuC;CACvE,OAAO,mBAAmB,IAAI,IAAuB;AACvD;;AAGA,SAAgB,kBAAkB,MAAuC;CACvE,OAAO,mBAAmB,IAAI,IAAuB;AACvD;;AA6BA,IAAa,wBAA6C;CACxD,UAAU;CACV,cAAc;CACd,eAAe;CACf,WAAW;AACb;;;;;;;;AA6CA,IAAa,oBAAqC,EAChD,OAAO,EAAE,QAAQ,MAAM,WAAW;CAChC,MAAM,OAAO,cAAc,QAAQ,IAAI;CACvC,IAAI,SAAS,QAAQ,OAAO,GAAG,KAAK;CACpC,IAAI,SAAS,SAAS,OAAO,GAAG,KAAK;CACrC,IAAI,SAAS,OAAO,OAAO,GAAG,KAAK;CACnC,OAAO,SAAS,WAAW,GAAG,KAAK,sBAAsB;AAC3D,EACF;AAMA,IAAM,gCAAgB,IAAI,IAAiC;AAK3D,IAAM,kCAAkB,IAAI,IAAiC;;;;;;;;;AAU7D,SAAgB,UAAU,QAAgB,OAAuB;CAC/D,IAAI,YAAY,gBAAgB,IAAI,MAAM;CAC1C,IAAI,CAAC,WAAW;EACd,YAAY,IAAI,KAAK,eAAe,QAAQ,EAAE,OAAO,OAAO,CAAC;EAC7D,gBAAgB,IAAI,QAAQ,SAAS;CACvC;CAEA,OAAO,UAAU,OAAO,IAAI,KAAK,MAAM,QAAQ,GAAG,CAAC,CAAC;AACtD;;;;;;;;;;AAWA,SAAgB,cAAc,QAAgB,MAAyB;CACrE,IAAI,YAAY,cAAc,IAAI,MAAM;CACxC,IAAI,CAAC,WAAW;EACd,YAAY,IAAI,KAAK,eAAe,QAAQ;GAC1C,SAAS;GACT,KAAK;GACL,OAAO;GACP,MAAM;EACR,CAAC;EACD,cAAc,IAAI,QAAQ,SAAS;CACrC;CACA,OAAO,UAAU,OAAO,KAAK,OAAO,0CAAiB,CAAC,CAAC;AACzD"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { provideLoomLabels, useLabels } from "./labels";
|
|
2
2
|
export type { LabelOf, LabelOverrides, LoomLabelOverrides } from "./labels";
|
|
3
3
|
export type { LoomLabels } from "./label-registry";
|
|
4
|
-
export type { AlertDialogLabels, AvatarGroupLabels, ColorPickerLabels, ComboboxLabels, DateRangeLabels, DateTimeRangeLabels, DialogLabels, DrawerLabels, EditableLabels, FileUploadLabels, FileUploadRejectReason, FileUploadRejection, IndicatorLabels, NumberFieldLabels, OtpInputLabels, OtpInputType, PaginationLabels, ProgressLabels, RadialProgressLabels, RatingLabels, StepperLabels, TagsInputLabels, TagsInputRejectReason, TagsInputRejection, TextFieldLabels, TextareaLabels, ToastLabels, WindowControlsLabels, } from "./component-shapes";
|
|
5
|
-
export { CALENDAR_PANEL_LABELS, DATE_SEGMENT_LABELS, RANGE_CELL_LABELS, TIME_SEGMENT_LABELS, emptySegmentValueText,
|
|
4
|
+
export type { AlertLabels, AlertDialogLabels, CarouselLabels, AvatarGroupLabels, BreadcrumbLabels, ColorPickerLabels, ComboboxLabels, DateRangeLabels, DateTimeRangeLabels, DialogLabels, DrawerLabels, EditableLabels, FileUploadLabels, FileUploadRejectReason, FileUploadRejection, IndicatorLabels, NumberFieldLabels, OtpInputLabels, OtpInputType, PaginationLabels, ProgressLabels, RadialProgressLabels, RatingLabels, ScrollReelLabels, TableLabels, TimelineLabels, StepperLabels, TagsInputLabels, TagsInputRejectReason, TagsInputRejection, TextFieldLabels, TextareaLabels, ToastLabels, WindowControlsLabels, } from "./component-shapes";
|
|
5
|
+
export { CALENDAR_PANEL_LABELS, DATE_SEGMENT_LABELS, RANGE_CELL_LABELS, TIME_SEGMENT_LABELS, emptySegmentValueText, isDateSegmentPart, isTimeSegmentPart, } from "./date-labels";
|
|
6
6
|
export type { CalendarPanelLabels, DateSegmentLabels, DateSegmentName, RangeCellLabels, RangeCellPart, TimeSegmentLabels, TimeSegmentName, } from "./date-labels";
|
|
7
7
|
export { COUNT_LABELS, warningWindow } from "./count-labels";
|
|
8
8
|
export type { CountBand, CountLabels } from "./count-labels";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/labels/src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACxD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG5E,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,WAAW,EACX,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/labels/src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACxD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG5E,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,WAAW,EACX,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CalendarPanelLabels, DateSegmentLabels, RangeCellLabels, TimeSegmentLabels } from "./date-labels";
|
|
2
|
-
import type { AlertDialogLabels, AvatarGroupLabels, ColorPickerLabels, ComboboxLabels, DateRangeLabels, DateTimeRangeLabels, DialogLabels, DrawerLabels, EditableLabels, FileUploadLabels, IndicatorLabels, NumberFieldLabels, OtpInputLabels, PaginationLabels, ProgressLabels, RadialProgressLabels, RatingLabels, StepperLabels, TagsInputLabels, TextFieldLabels, TextareaLabels, ToastLabels, WindowControlsLabels } from "./component-shapes";
|
|
2
|
+
import type { AlertLabels, CarouselLabels, TableLabels, TimelineLabels, AlertDialogLabels, AvatarGroupLabels, BreadcrumbLabels, ColorPickerLabels, ComboboxLabels, DateRangeLabels, DateTimeRangeLabels, DialogLabels, DrawerLabels, EditableLabels, FileUploadLabels, IndicatorLabels, NumberFieldLabels, OtpInputLabels, PaginationLabels, ProgressLabels, RadialProgressLabels, RatingLabels, ScrollReelLabels, StepperLabels, TagsInputLabels, TextFieldLabels, TextareaLabels, ToastLabels, WindowControlsLabels } from "./component-shapes";
|
|
3
3
|
/**
|
|
4
4
|
* Every slot a host can localise, and nothing else. One line per component that
|
|
5
5
|
* speaks; the keys themselves live with the component that says them.
|
|
@@ -24,8 +24,14 @@ import type { AlertDialogLabels, AvatarGroupLabels, ColorPickerLabels, ComboboxL
|
|
|
24
24
|
* a compile error at that component's own `useLabels` call, not here.
|
|
25
25
|
*/
|
|
26
26
|
export interface LoomLabels {
|
|
27
|
+
readonly alert: AlertLabels;
|
|
28
|
+
readonly table: TableLabels;
|
|
29
|
+
readonly timeline: TimelineLabels;
|
|
30
|
+
readonly carousel: CarouselLabels;
|
|
27
31
|
readonly pagination: PaginationLabels;
|
|
28
32
|
readonly windowControls: WindowControlsLabels;
|
|
33
|
+
readonly breadcrumb: BreadcrumbLabels;
|
|
34
|
+
readonly scrollReel: ScrollReelLabels;
|
|
29
35
|
readonly dateSegments: DateSegmentLabels;
|
|
30
36
|
readonly timeSegments: TimeSegmentLabels;
|
|
31
37
|
readonly calendarPanel: CalendarPanelLabels;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"label-registry.d.ts","sourceRoot":"","sources":["../../../../packages/labels/src/label-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"label-registry.d.ts","sourceRoot":"","sources":["../../../../packages/labels/src/label-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAMtC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAI5C,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAKpC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAIlC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAM5B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAIxC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;CACzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reading.js","names":[],"sources":["../../../../../packages/layouts/reading/src/Reading.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { cn } from \"@ecoma-io/loom-core\";\n\nwithDefaults(\n defineProps<{\n /** Whether to add horizontal gutters that widen at wider breakpoints. */\n gutter?:
|
|
1
|
+
{"version":3,"file":"Reading.js","names":[],"sources":["../../../../../packages/layouts/reading/src/Reading.vue"],"sourcesContent":["<script lang=\"ts\">\n/** Whether the layout carries horizontal gutters that widen at wider breakpoints. */\nexport type ReadingGutter = boolean;\n</script>\n\n<script setup lang=\"ts\">\nimport { cn } from \"@ecoma-io/loom-core\";\n\nwithDefaults(\n defineProps<{\n /** Whether to add horizontal gutters that widen at wider breakpoints. */\n gutter?: ReadingGutter;\n }>(),\n { gutter: true },\n);\n</script>\n\n<template>\n <!--\n Reading — a long-form reading layout that caps the content area at a\n comfortable line length (~65ch). The header and footer span full-width\n (site chrome, navigation, copyright), while only the reading content is\n constrained to `max-w-prose` — the width that research identifies as the\n fastest for sustained reading. Extra viewport on ultrawide monitors goes\n to intentional whitespace, never to stretching lines.\n\n The content wrapper is always prose-width with no prop: this layout exists\n to enforce that cap. A reading layout that can go full-width is not a\n reading layout. The `gutter` prop controls horizontal padding, not width.\n -->\n <div :class=\"cn('min-h-dvh flex flex-col')\">\n <header v-if=\"$slots.header\" :class=\"cn(gutter ? 'px-4 sm:px-6 3xl:px-8' : undefined)\">\n <slot name=\"header\" />\n </header>\n\n <div\n :class=\"\n cn(\n 'mx-auto w-full max-w-prose flex-1',\n gutter ? 'px-4 sm:px-6 3xl:px-8' : undefined,\n 'py-8 sm:py-12',\n )\n \"\n >\n <slot />\n </div>\n\n <footer v-if=\"$slots.footer\" :class=\"cn(gutter ? 'px-4 sm:px-6 3xl:px-8' : undefined)\">\n <slot name=\"footer\" />\n </footer>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
/** Whether the layout carries horizontal gutters that widen at wider breakpoints. */
|
|
2
|
+
export type ReadingGutter = boolean;
|
|
3
|
+
declare const _default: typeof __VLS_export;
|
|
4
|
+
export default _default;
|
|
5
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
2
6
|
/** Whether to add horizontal gutters that widen at wider breakpoints. */
|
|
3
|
-
gutter?:
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
gutter?: ReadingGutter;
|
|
8
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
9
|
+
/** Whether to add horizontal gutters that widen at wider breakpoints. */
|
|
10
|
+
gutter?: ReadingGutter;
|
|
11
|
+
}> & Readonly<{}>, {
|
|
12
|
+
gutter: ReadingGutter;
|
|
13
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
14
|
+
header?: (props: {}) => any;
|
|
8
15
|
} & {
|
|
9
|
-
default?: (props:
|
|
16
|
+
default?: (props: {}) => any;
|
|
10
17
|
} & {
|
|
11
|
-
footer?: (props:
|
|
12
|
-
}
|
|
13
|
-
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
14
|
-
gutter: boolean;
|
|
15
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
|
-
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
17
|
-
declare const _default: typeof __VLS_export;
|
|
18
|
-
export default _default;
|
|
18
|
+
footer?: (props: {}) => any;
|
|
19
|
+
}>;
|
|
19
20
|
type __VLS_WithSlots<T, S> = T & {
|
|
20
21
|
new (): {
|
|
21
22
|
$slots: S;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reading.vue.d.ts","sourceRoot":"","sources":["../../../../../packages/layouts/reading/src/Reading.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Reading.vue.d.ts","sourceRoot":"","sources":["../../../../../packages/layouts/reading/src/Reading.vue"],"names":[],"mappings":"AA0DA,qFAAqF;AACrF,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;wBACf,OAAO,YAAY;AAAxC,wBAAyC;AACzC,QAAA,MAAM,YAAY;IAEd,yEAAyE;aAChE,aAAa;;IADtB,yEAAyE;aAChE,aAAa;;YAAb,aAAa;;aAwDb,CAAC,KAAK,IAAgB,KAAK,GAAG;;cAC7B,CAAC,KAAK,IAAgB,KAAK,GAAG;;aAC/B,CAAC,KAAK,IAAgB,KAAK,GAAG;EAUvC,CAAC;AAWL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
package/dist/packages/layouts/reading/src/Reading.vue_vue_type_script_setup_true_lang.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reading.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../../../packages/layouts/reading/src/Reading.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { cn } from \"@ecoma-io/loom-core\";\n\nwithDefaults(\n defineProps<{\n /** Whether to add horizontal gutters that widen at wider breakpoints. */\n gutter?:
|
|
1
|
+
{"version":3,"file":"Reading.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../../../packages/layouts/reading/src/Reading.vue"],"sourcesContent":["<script lang=\"ts\">\n/** Whether the layout carries horizontal gutters that widen at wider breakpoints. */\nexport type ReadingGutter = boolean;\n</script>\n\n<script setup lang=\"ts\">\nimport { cn } from \"@ecoma-io/loom-core\";\n\nwithDefaults(\n defineProps<{\n /** Whether to add horizontal gutters that widen at wider breakpoints. */\n gutter?: ReadingGutter;\n }>(),\n { gutter: true },\n);\n</script>\n\n<template>\n <!--\n Reading — a long-form reading layout that caps the content area at a\n comfortable line length (~65ch). The header and footer span full-width\n (site chrome, navigation, copyright), while only the reading content is\n constrained to `max-w-prose` — the width that research identifies as the\n fastest for sustained reading. Extra viewport on ultrawide monitors goes\n to intentional whitespace, never to stretching lines.\n\n The content wrapper is always prose-width with no prop: this layout exists\n to enforce that cap. A reading layout that can go full-width is not a\n reading layout. The `gutter` prop controls horizontal padding, not width.\n -->\n <div :class=\"cn('min-h-dvh flex flex-col')\">\n <header v-if=\"$slots.header\" :class=\"cn(gutter ? 'px-4 sm:px-6 3xl:px-8' : undefined)\">\n <slot name=\"header\" />\n </header>\n\n <div\n :class=\"\n cn(\n 'mx-auto w-full max-w-prose flex-1',\n gutter ? 'px-4 sm:px-6 3xl:px-8' : undefined,\n 'py-8 sm:py-12',\n )\n \"\n >\n <slot />\n </div>\n\n <footer v-if=\"$slots.footer\" :class=\"cn(gutter ? 'px-4 sm:px-6 3xl:px-8' : undefined)\">\n <slot name=\"footer\" />\n </footer>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;GA8BE,OAAA,UAAA,GAAA,mBAoBM,OAAA,EApBA,OAAK,eAAE,MAAA,EAAA,CAAE,CAAA,yBAAA,CAAA,EAAA,GAAA;IACCA,KAAAA,OAAO,UAArB,UAAA,GAAA,mBAES,UAAA;;KAFqB,OAAK,eAAE,MAAA,EAAA,CAAE,CAAC,QAAA,SAAM,0BAA6B,KAAA,CAAS,CAAA;IAClF,GAAA,CAAA,WAAsB,KAAA,QAAA,QAAA,CAAA,GAAA,CAAA,KAAA,mBAAA,IAAA,IAAA;IAGxB,mBAUM,OAAA,EATH,OAAK,eAAW,MAAA,EAAA,CAAE,CAAA,qCAA2D,QAAA,SAAM,0BAA6B,KAAA,GAAA,eAAA,CAAA,EAAA,GAAA,CAQjH,WAAQ,KAAA,QAAA,SAAA,CAAA,GAAA,CAAA;IAGIA,KAAAA,OAAO,UAArB,UAAA,GAAA,mBAES,UAAA;;KAFqB,OAAK,eAAE,MAAA,EAAA,CAAE,CAAC,QAAA,SAAM,0BAA6B,KAAA,CAAS,CAAA;IAClF,GAAA,CAAA,WAAsB,KAAA,QAAA,QAAA,CAAA,GAAA,CAAA,KAAA,mBAAA,IAAA,IAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/layouts/reading/src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/layouts/reading/src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { WCAG_TAGS } from "
|
|
1
|
+
export { WCAG_TAGS } from "../../core/src/index";
|
|
2
2
|
//# sourceMappingURL=a11y.d.ts.map
|