@chenzy-design/svelte 0.2.0 → 0.2.1
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/README.md +66 -0
- package/dist/badge/Badge.svelte +5 -2
- package/dist/badge/Badge.svelte.d.ts.map +1 -1
- package/dist/components.json +1 -1
- package/package.json +6 -5
- package/dist/anchor/Anchor.a11y.test.d.ts +0 -2
- package/dist/anchor/Anchor.a11y.test.d.ts.map +0 -1
- package/dist/anchor/Anchor.a11y.test.js +0 -44
- package/dist/anchor/Anchor.kbd.test.d.ts +0 -2
- package/dist/anchor/Anchor.kbd.test.d.ts.map +0 -1
- package/dist/anchor/Anchor.kbd.test.js +0 -59
- package/dist/anchor/AnchorKbdFixture.svelte +0 -24
- package/dist/anchor/AnchorKbdFixture.svelte.d.ts +0 -19
- package/dist/anchor/AnchorKbdFixture.svelte.d.ts.map +0 -1
- package/dist/autocomplete/AutoComplete.a11y.test.d.ts +0 -2
- package/dist/autocomplete/AutoComplete.a11y.test.d.ts.map +0 -1
- package/dist/autocomplete/AutoComplete.a11y.test.js +0 -45
- package/dist/autocomplete/AutoComplete.kbd.test.d.ts +0 -2
- package/dist/autocomplete/AutoComplete.kbd.test.d.ts.map +0 -1
- package/dist/autocomplete/AutoComplete.kbd.test.js +0 -60
- package/dist/autocomplete/AutoCompleteKbdFixture.svelte +0 -24
- package/dist/autocomplete/AutoCompleteKbdFixture.svelte.d.ts +0 -4
- package/dist/autocomplete/AutoCompleteKbdFixture.svelte.d.ts.map +0 -1
- package/dist/avatar/Avatar.a11y.test.d.ts +0 -2
- package/dist/avatar/Avatar.a11y.test.d.ts.map +0 -1
- package/dist/avatar/Avatar.a11y.test.js +0 -34
- package/dist/back-top/BackTop.a11y.test.d.ts +0 -2
- package/dist/back-top/BackTop.a11y.test.d.ts.map +0 -1
- package/dist/back-top/BackTop.a11y.test.js +0 -37
- package/dist/badge/Badge.a11y.test.d.ts +0 -2
- package/dist/badge/Badge.a11y.test.d.ts.map +0 -1
- package/dist/badge/Badge.a11y.test.js +0 -32
- package/dist/badge/BadgeA11yFixture.svelte +0 -18
- package/dist/badge/BadgeA11yFixture.svelte.d.ts +0 -7
- package/dist/badge/BadgeA11yFixture.svelte.d.ts.map +0 -1
- package/dist/banner/Banner.a11y.test.d.ts +0 -2
- package/dist/banner/Banner.a11y.test.d.ts.map +0 -1
- package/dist/banner/Banner.a11y.test.js +0 -43
- package/dist/breadcrumb/Breadcrumb.a11y.test.d.ts +0 -2
- package/dist/breadcrumb/Breadcrumb.a11y.test.d.ts.map +0 -1
- package/dist/breadcrumb/Breadcrumb.a11y.test.js +0 -31
- package/dist/breadcrumb/Breadcrumb.kbd.test.d.ts +0 -2
- package/dist/breadcrumb/Breadcrumb.kbd.test.d.ts.map +0 -1
- package/dist/breadcrumb/Breadcrumb.kbd.test.js +0 -37
- package/dist/breadcrumb/BreadcrumbKbdFixture.svelte +0 -23
- package/dist/breadcrumb/BreadcrumbKbdFixture.svelte.d.ts +0 -19
- package/dist/breadcrumb/BreadcrumbKbdFixture.svelte.d.ts.map +0 -1
- package/dist/button/Button.a11y.test.d.ts +0 -2
- package/dist/button/Button.a11y.test.d.ts.map +0 -1
- package/dist/button/Button.a11y.test.js +0 -49
- package/dist/calendar/Calendar.a11y.test.d.ts +0 -2
- package/dist/calendar/Calendar.a11y.test.d.ts.map +0 -1
- package/dist/calendar/Calendar.a11y.test.js +0 -46
- package/dist/calendar/Calendar.kbd.test.d.ts +0 -2
- package/dist/calendar/Calendar.kbd.test.d.ts.map +0 -1
- package/dist/calendar/Calendar.kbd.test.js +0 -50
- package/dist/calendar/CalendarKbdFixture.svelte +0 -23
- package/dist/calendar/CalendarKbdFixture.svelte.d.ts +0 -19
- package/dist/calendar/CalendarKbdFixture.svelte.d.ts.map +0 -1
- package/dist/card/Card.a11y.test.d.ts +0 -2
- package/dist/card/Card.a11y.test.d.ts.map +0 -1
- package/dist/card/Card.a11y.test.js +0 -35
- package/dist/carousel/Carousel.a11y.test.d.ts +0 -2
- package/dist/carousel/Carousel.a11y.test.d.ts.map +0 -1
- package/dist/carousel/Carousel.a11y.test.js +0 -43
- package/dist/carousel/Carousel.kbd.test.d.ts +0 -2
- package/dist/carousel/Carousel.kbd.test.d.ts.map +0 -1
- package/dist/carousel/Carousel.kbd.test.js +0 -51
- package/dist/carousel/CarouselA11yFixture.svelte +0 -25
- package/dist/carousel/CarouselA11yFixture.svelte.d.ts +0 -8
- package/dist/carousel/CarouselA11yFixture.svelte.d.ts.map +0 -1
- package/dist/carousel/CarouselKbdFixture.svelte +0 -24
- package/dist/carousel/CarouselKbdFixture.svelte.d.ts +0 -19
- package/dist/carousel/CarouselKbdFixture.svelte.d.ts.map +0 -1
- package/dist/cascader/Cascader.a11y.test.d.ts +0 -2
- package/dist/cascader/Cascader.a11y.test.d.ts.map +0 -1
- package/dist/cascader/Cascader.a11y.test.js +0 -55
- package/dist/cascader/Cascader.kbd.test.d.ts +0 -2
- package/dist/cascader/Cascader.kbd.test.d.ts.map +0 -1
- package/dist/cascader/Cascader.kbd.test.js +0 -47
- package/dist/cascader/CascaderKbdFixture.svelte +0 -31
- package/dist/cascader/CascaderKbdFixture.svelte.d.ts +0 -19
- package/dist/cascader/CascaderKbdFixture.svelte.d.ts.map +0 -1
- package/dist/checkbox/CheckboxGroup.a11y.test.d.ts +0 -2
- package/dist/checkbox/CheckboxGroup.a11y.test.d.ts.map +0 -1
- package/dist/checkbox/CheckboxGroup.a11y.test.js +0 -38
- package/dist/checkbox/CheckboxGroup.kbd.test.d.ts +0 -2
- package/dist/checkbox/CheckboxGroup.kbd.test.d.ts.map +0 -1
- package/dist/checkbox/CheckboxGroup.kbd.test.js +0 -33
- package/dist/checkbox/CheckboxGroupKbdFixture.svelte +0 -20
- package/dist/checkbox/CheckboxGroupKbdFixture.svelte.d.ts +0 -19
- package/dist/checkbox/CheckboxGroupKbdFixture.svelte.d.ts.map +0 -1
- package/dist/collapse/Collapse.a11y.test.d.ts +0 -2
- package/dist/collapse/Collapse.a11y.test.d.ts.map +0 -1
- package/dist/collapse/Collapse.a11y.test.js +0 -46
- package/dist/collapse/Collapse.kbd.test.d.ts +0 -2
- package/dist/collapse/Collapse.kbd.test.d.ts.map +0 -1
- package/dist/collapse/Collapse.kbd.test.js +0 -70
- package/dist/collapse/CollapseA11yFixture.svelte +0 -27
- package/dist/collapse/CollapseA11yFixture.svelte.d.ts +0 -9
- package/dist/collapse/CollapseA11yFixture.svelte.d.ts.map +0 -1
- package/dist/collapse/CollapseKbdFixture.svelte +0 -25
- package/dist/collapse/CollapseKbdFixture.svelte.d.ts +0 -19
- package/dist/collapse/CollapseKbdFixture.svelte.d.ts.map +0 -1
- package/dist/color-picker/ColorPicker.a11y.test.d.ts +0 -2
- package/dist/color-picker/ColorPicker.a11y.test.d.ts.map +0 -1
- package/dist/color-picker/ColorPicker.a11y.test.js +0 -54
- package/dist/color-picker/ColorPicker.kbd.test.d.ts +0 -2
- package/dist/color-picker/ColorPicker.kbd.test.d.ts.map +0 -1
- package/dist/color-picker/ColorPicker.kbd.test.js +0 -59
- package/dist/color-picker/ColorPickerKbdFixture.svelte +0 -25
- package/dist/color-picker/ColorPickerKbdFixture.svelte.d.ts +0 -4
- package/dist/color-picker/ColorPickerKbdFixture.svelte.d.ts.map +0 -1
- package/dist/date-picker/DatePicker.a11y.test.d.ts +0 -2
- package/dist/date-picker/DatePicker.a11y.test.d.ts.map +0 -1
- package/dist/date-picker/DatePicker.a11y.test.js +0 -42
- package/dist/date-picker/DatePicker.kbd.test.d.ts +0 -2
- package/dist/date-picker/DatePicker.kbd.test.d.ts.map +0 -1
- package/dist/date-picker/DatePicker.kbd.test.js +0 -59
- package/dist/date-picker/DatePickerKbdFixture.svelte +0 -26
- package/dist/date-picker/DatePickerKbdFixture.svelte.d.ts +0 -4
- package/dist/date-picker/DatePickerKbdFixture.svelte.d.ts.map +0 -1
- package/dist/date-picker/RangePicker.kbd.test.d.ts +0 -2
- package/dist/date-picker/RangePicker.kbd.test.d.ts.map +0 -1
- package/dist/date-picker/RangePicker.kbd.test.js +0 -60
- package/dist/date-picker/RangePickerKbdFixture.svelte +0 -30
- package/dist/date-picker/RangePickerKbdFixture.svelte.d.ts +0 -7
- package/dist/date-picker/RangePickerKbdFixture.svelte.d.ts.map +0 -1
- package/dist/descriptions/Descriptions.a11y.test.d.ts +0 -2
- package/dist/descriptions/Descriptions.a11y.test.d.ts.map +0 -1
- package/dist/descriptions/Descriptions.a11y.test.js +0 -31
- package/dist/divider/Divider.a11y.test.d.ts +0 -2
- package/dist/divider/Divider.a11y.test.d.ts.map +0 -1
- package/dist/divider/Divider.a11y.test.js +0 -21
- package/dist/drawer/Drawer.a11y.test.d.ts +0 -2
- package/dist/drawer/Drawer.a11y.test.d.ts.map +0 -1
- package/dist/drawer/Drawer.a11y.test.js +0 -33
- package/dist/drawer/Drawer.kbd.test.d.ts +0 -2
- package/dist/drawer/Drawer.kbd.test.d.ts.map +0 -1
- package/dist/drawer/Drawer.kbd.test.js +0 -53
- package/dist/drawer/DrawerKbdFixture.svelte +0 -28
- package/dist/drawer/DrawerKbdFixture.svelte.d.ts +0 -4
- package/dist/drawer/DrawerKbdFixture.svelte.d.ts.map +0 -1
- package/dist/dropdown/Dropdown.a11y.test.d.ts +0 -2
- package/dist/dropdown/Dropdown.a11y.test.d.ts.map +0 -1
- package/dist/dropdown/Dropdown.a11y.test.js +0 -39
- package/dist/dropdown/Dropdown.kbd.test.d.ts +0 -2
- package/dist/dropdown/Dropdown.kbd.test.d.ts.map +0 -1
- package/dist/dropdown/Dropdown.kbd.test.js +0 -47
- package/dist/dropdown/DropdownA11yFixture.svelte +0 -24
- package/dist/dropdown/DropdownA11yFixture.svelte.d.ts +0 -11
- package/dist/dropdown/DropdownA11yFixture.svelte.d.ts.map +0 -1
- package/dist/dropdown/DropdownKbdFixture.svelte +0 -26
- package/dist/dropdown/DropdownKbdFixture.svelte.d.ts +0 -19
- package/dist/dropdown/DropdownKbdFixture.svelte.d.ts.map +0 -1
- package/dist/dropdown/types.test.d.ts +0 -2
- package/dist/dropdown/types.test.d.ts.map +0 -1
- package/dist/dropdown/types.test.js +0 -40
- package/dist/empty/Empty.a11y.test.d.ts +0 -2
- package/dist/empty/Empty.a11y.test.d.ts.map +0 -1
- package/dist/empty/Empty.a11y.test.js +0 -22
- package/dist/form/Form.a11y.test.d.ts +0 -2
- package/dist/form/Form.a11y.test.d.ts.map +0 -1
- package/dist/form/Form.a11y.test.js +0 -36
- package/dist/form/FormA11yFixture.svelte +0 -31
- package/dist/form/FormA11yFixture.svelte.d.ts +0 -19
- package/dist/form/FormA11yFixture.svelte.d.ts.map +0 -1
- package/dist/grid/Grid.a11y.test.d.ts +0 -2
- package/dist/grid/Grid.a11y.test.d.ts.map +0 -1
- package/dist/grid/Grid.a11y.test.js +0 -13
- package/dist/grid/GridA11yFixture.svelte +0 -12
- package/dist/grid/GridA11yFixture.svelte.d.ts +0 -19
- package/dist/grid/GridA11yFixture.svelte.d.ts.map +0 -1
- package/dist/highlight/Highlight.a11y.test.d.ts +0 -2
- package/dist/highlight/Highlight.a11y.test.d.ts.map +0 -1
- package/dist/highlight/Highlight.a11y.test.js +0 -23
- package/dist/image/Image.a11y.test.d.ts +0 -2
- package/dist/image/Image.a11y.test.d.ts.map +0 -1
- package/dist/image/Image.a11y.test.js +0 -27
- package/dist/image/ImagePreview.kbd.test.d.ts +0 -2
- package/dist/image/ImagePreview.kbd.test.d.ts.map +0 -1
- package/dist/image/ImagePreview.kbd.test.js +0 -44
- package/dist/image/ImagePreviewKbdFixture.svelte +0 -32
- package/dist/image/ImagePreviewKbdFixture.svelte.d.ts +0 -4
- package/dist/image/ImagePreviewKbdFixture.svelte.d.ts.map +0 -1
- package/dist/input/Input.a11y.test.d.ts +0 -2
- package/dist/input/Input.a11y.test.d.ts.map +0 -1
- package/dist/input/Input.a11y.test.js +0 -53
- package/dist/input-number/InputNumber.a11y.test.d.ts +0 -2
- package/dist/input-number/InputNumber.a11y.test.d.ts.map +0 -1
- package/dist/input-number/InputNumber.a11y.test.js +0 -40
- package/dist/input-number/InputNumber.kbd.test.d.ts +0 -2
- package/dist/input-number/InputNumber.kbd.test.d.ts.map +0 -1
- package/dist/input-number/InputNumber.kbd.test.js +0 -35
- package/dist/input-number/InputNumberKbdFixture.svelte +0 -15
- package/dist/input-number/InputNumberKbdFixture.svelte.d.ts +0 -19
- package/dist/input-number/InputNumberKbdFixture.svelte.d.ts.map +0 -1
- package/dist/layout/Layout.a11y.test.d.ts +0 -2
- package/dist/layout/Layout.a11y.test.d.ts.map +0 -1
- package/dist/layout/Layout.a11y.test.js +0 -32
- package/dist/layout/LayoutA11yFixture.svelte +0 -21
- package/dist/layout/LayoutA11yFixture.svelte.d.ts +0 -7
- package/dist/layout/LayoutA11yFixture.svelte.d.ts.map +0 -1
- package/dist/list/List.a11y.test.d.ts +0 -2
- package/dist/list/List.a11y.test.d.ts.map +0 -1
- package/dist/list/List.a11y.test.js +0 -62
- package/dist/list/List.bench.d.ts +0 -2
- package/dist/list/List.bench.d.ts.map +0 -1
- package/dist/list/List.bench.js +0 -16
- package/dist/list/List.kbd.test.d.ts +0 -2
- package/dist/list/List.kbd.test.d.ts.map +0 -1
- package/dist/list/List.kbd.test.js +0 -60
- package/dist/list/ListA11yFixture.svelte +0 -38
- package/dist/list/ListA11yFixture.svelte.d.ts +0 -10
- package/dist/list/ListA11yFixture.svelte.d.ts.map +0 -1
- package/dist/list/ListBenchFixture.svelte +0 -22
- package/dist/list/ListBenchFixture.svelte.d.ts +0 -7
- package/dist/list/ListBenchFixture.svelte.d.ts.map +0 -1
- package/dist/list/ListKbdFixture.svelte +0 -31
- package/dist/list/ListKbdFixture.svelte.d.ts +0 -19
- package/dist/list/ListKbdFixture.svelte.d.ts.map +0 -1
- package/dist/menu/Menu.a11y.test.d.ts +0 -2
- package/dist/menu/Menu.a11y.test.d.ts.map +0 -1
- package/dist/menu/Menu.a11y.test.js +0 -49
- package/dist/menu/Menu.kbd.test.d.ts +0 -2
- package/dist/menu/Menu.kbd.test.d.ts.map +0 -1
- package/dist/menu/Menu.kbd.test.js +0 -56
- package/dist/menu/MenuKbdFixture.svelte +0 -22
- package/dist/menu/MenuKbdFixture.svelte.d.ts +0 -19
- package/dist/menu/MenuKbdFixture.svelte.d.ts.map +0 -1
- package/dist/meta.test.d.ts +0 -2
- package/dist/meta.test.d.ts.map +0 -1
- package/dist/meta.test.js +0 -164
- package/dist/modal/Modal.a11y.test.d.ts +0 -2
- package/dist/modal/Modal.a11y.test.d.ts.map +0 -1
- package/dist/modal/Modal.a11y.test.js +0 -38
- package/dist/modal/Modal.kbd.test.d.ts +0 -2
- package/dist/modal/Modal.kbd.test.d.ts.map +0 -1
- package/dist/modal/Modal.kbd.test.js +0 -52
- package/dist/modal/ModalKbdFixture.svelte +0 -24
- package/dist/modal/ModalKbdFixture.svelte.d.ts +0 -4
- package/dist/modal/ModalKbdFixture.svelte.d.ts.map +0 -1
- package/dist/notification/NotificationItem.a11y.test.d.ts +0 -2
- package/dist/notification/NotificationItem.a11y.test.d.ts.map +0 -1
- package/dist/notification/NotificationItem.a11y.test.js +0 -64
- package/dist/overflow-list/OverflowList.a11y.test.d.ts +0 -2
- package/dist/overflow-list/OverflowList.a11y.test.d.ts.map +0 -1
- package/dist/overflow-list/OverflowList.a11y.test.js +0 -41
- package/dist/overflow-list/OverflowList.kbd.test.d.ts +0 -2
- package/dist/overflow-list/OverflowList.kbd.test.d.ts.map +0 -1
- package/dist/overflow-list/OverflowList.kbd.test.js +0 -28
- package/dist/overflow-list/OverflowListA11yFixture.svelte +0 -22
- package/dist/overflow-list/OverflowListA11yFixture.svelte.d.ts +0 -8
- package/dist/overflow-list/OverflowListA11yFixture.svelte.d.ts.map +0 -1
- package/dist/overflow-list/OverflowListKbdFixture.svelte +0 -21
- package/dist/overflow-list/OverflowListKbdFixture.svelte.d.ts +0 -19
- package/dist/overflow-list/OverflowListKbdFixture.svelte.d.ts.map +0 -1
- package/dist/pagination/Pagination.a11y.test.d.ts +0 -2
- package/dist/pagination/Pagination.a11y.test.d.ts.map +0 -1
- package/dist/pagination/Pagination.a11y.test.js +0 -57
- package/dist/pagination/Pagination.kbd.test.d.ts +0 -2
- package/dist/pagination/Pagination.kbd.test.d.ts.map +0 -1
- package/dist/pagination/Pagination.kbd.test.js +0 -54
- package/dist/pagination/PaginationKbdFixture.svelte +0 -15
- package/dist/pagination/PaginationKbdFixture.svelte.d.ts +0 -19
- package/dist/pagination/PaginationKbdFixture.svelte.d.ts.map +0 -1
- package/dist/popconfirm/Popconfirm.a11y.test.d.ts +0 -2
- package/dist/popconfirm/Popconfirm.a11y.test.d.ts.map +0 -1
- package/dist/popconfirm/Popconfirm.a11y.test.js +0 -37
- package/dist/popconfirm/Popconfirm.kbd.test.d.ts +0 -2
- package/dist/popconfirm/Popconfirm.kbd.test.d.ts.map +0 -1
- package/dist/popconfirm/Popconfirm.kbd.test.js +0 -36
- package/dist/popconfirm/PopconfirmA11yFixture.svelte +0 -34
- package/dist/popconfirm/PopconfirmA11yFixture.svelte.d.ts +0 -11
- package/dist/popconfirm/PopconfirmA11yFixture.svelte.d.ts.map +0 -1
- package/dist/popconfirm/PopconfirmKbdFixture.svelte +0 -17
- package/dist/popconfirm/PopconfirmKbdFixture.svelte.d.ts +0 -19
- package/dist/popconfirm/PopconfirmKbdFixture.svelte.d.ts.map +0 -1
- package/dist/popover/Popover.a11y.test.d.ts +0 -2
- package/dist/popover/Popover.a11y.test.d.ts.map +0 -1
- package/dist/popover/Popover.a11y.test.js +0 -47
- package/dist/popover/Popover.kbd.test.d.ts +0 -2
- package/dist/popover/Popover.kbd.test.d.ts.map +0 -1
- package/dist/popover/Popover.kbd.test.js +0 -36
- package/dist/popover/PopoverA11yFixture.svelte +0 -35
- package/dist/popover/PopoverA11yFixture.svelte.d.ts +0 -11
- package/dist/popover/PopoverA11yFixture.svelte.d.ts.map +0 -1
- package/dist/popover/PopoverKbdFixture.svelte +0 -18
- package/dist/popover/PopoverKbdFixture.svelte.d.ts +0 -19
- package/dist/popover/PopoverKbdFixture.svelte.d.ts.map +0 -1
- package/dist/progress/Progress.a11y.test.d.ts +0 -2
- package/dist/progress/Progress.a11y.test.d.ts.map +0 -1
- package/dist/progress/Progress.a11y.test.js +0 -34
- package/dist/radio/RadioGroup.a11y.test.d.ts +0 -2
- package/dist/radio/RadioGroup.a11y.test.d.ts.map +0 -1
- package/dist/radio/RadioGroup.a11y.test.js +0 -38
- package/dist/radio/RadioGroup.kbd.test.d.ts +0 -2
- package/dist/radio/RadioGroup.kbd.test.d.ts.map +0 -1
- package/dist/radio/RadioGroup.kbd.test.js +0 -59
- package/dist/radio/RadioGroupKbdFixture.svelte +0 -21
- package/dist/radio/RadioGroupKbdFixture.svelte.d.ts +0 -19
- package/dist/radio/RadioGroupKbdFixture.svelte.d.ts.map +0 -1
- package/dist/rating/Rating.a11y.test.d.ts +0 -2
- package/dist/rating/Rating.a11y.test.d.ts.map +0 -1
- package/dist/rating/Rating.a11y.test.js +0 -38
- package/dist/rating/Rating.kbd.test.d.ts +0 -2
- package/dist/rating/Rating.kbd.test.d.ts.map +0 -1
- package/dist/rating/Rating.kbd.test.js +0 -41
- package/dist/rating/RatingKbdFixture.svelte +0 -15
- package/dist/rating/RatingKbdFixture.svelte.d.ts +0 -19
- package/dist/rating/RatingKbdFixture.svelte.d.ts.map +0 -1
- package/dist/select/Select.a11y.test.d.ts +0 -2
- package/dist/select/Select.a11y.test.d.ts.map +0 -1
- package/dist/select/Select.a11y.test.js +0 -53
- package/dist/select/Select.kbd.test.d.ts +0 -2
- package/dist/select/Select.kbd.test.d.ts.map +0 -1
- package/dist/select/Select.kbd.test.js +0 -47
- package/dist/select/SelectKbdFixture.svelte +0 -29
- package/dist/select/SelectKbdFixture.svelte.d.ts +0 -4
- package/dist/select/SelectKbdFixture.svelte.d.ts.map +0 -1
- package/dist/side-sheet/SideSheet.a11y.test.d.ts +0 -2
- package/dist/side-sheet/SideSheet.a11y.test.d.ts.map +0 -1
- package/dist/side-sheet/SideSheet.a11y.test.js +0 -46
- package/dist/side-sheet/SideSheet.kbd.test.d.ts +0 -2
- package/dist/side-sheet/SideSheet.kbd.test.d.ts.map +0 -1
- package/dist/side-sheet/SideSheet.kbd.test.js +0 -49
- package/dist/side-sheet/SideSheetKbdFixture.svelte +0 -30
- package/dist/side-sheet/SideSheetKbdFixture.svelte.d.ts +0 -4
- package/dist/side-sheet/SideSheetKbdFixture.svelte.d.ts.map +0 -1
- package/dist/skeleton/Skeleton.a11y.test.d.ts +0 -2
- package/dist/skeleton/Skeleton.a11y.test.d.ts.map +0 -1
- package/dist/skeleton/Skeleton.a11y.test.js +0 -32
- package/dist/slider/Slider.a11y.test.d.ts +0 -2
- package/dist/slider/Slider.a11y.test.d.ts.map +0 -1
- package/dist/slider/Slider.a11y.test.js +0 -40
- package/dist/slider/Slider.kbd.test.d.ts +0 -2
- package/dist/slider/Slider.kbd.test.d.ts.map +0 -1
- package/dist/slider/Slider.kbd.test.js +0 -63
- package/dist/slider/SliderKbdFixture.svelte +0 -21
- package/dist/slider/SliderKbdFixture.svelte.d.ts +0 -19
- package/dist/slider/SliderKbdFixture.svelte.d.ts.map +0 -1
- package/dist/space/Space.a11y.test.d.ts +0 -2
- package/dist/space/Space.a11y.test.d.ts.map +0 -1
- package/dist/space/Space.a11y.test.js +0 -20
- package/dist/space/SpaceA11yFixture.svelte +0 -17
- package/dist/space/SpaceA11yFixture.svelte.d.ts +0 -7
- package/dist/space/SpaceA11yFixture.svelte.d.ts.map +0 -1
- package/dist/spin/Spin.a11y.test.d.ts +0 -2
- package/dist/spin/Spin.a11y.test.d.ts.map +0 -1
- package/dist/spin/Spin.a11y.test.js +0 -27
- package/dist/spin/SpinA11yFixture.svelte +0 -18
- package/dist/spin/SpinA11yFixture.svelte.d.ts +0 -7
- package/dist/spin/SpinA11yFixture.svelte.d.ts.map +0 -1
- package/dist/steps/Steps.a11y.test.d.ts +0 -2
- package/dist/steps/Steps.a11y.test.d.ts.map +0 -1
- package/dist/steps/Steps.a11y.test.js +0 -35
- package/dist/steps/Steps.kbd.test.d.ts +0 -2
- package/dist/steps/Steps.kbd.test.d.ts.map +0 -1
- package/dist/steps/Steps.kbd.test.js +0 -59
- package/dist/steps/StepsKbdFixture.svelte +0 -21
- package/dist/steps/StepsKbdFixture.svelte.d.ts +0 -19
- package/dist/steps/StepsKbdFixture.svelte.d.ts.map +0 -1
- package/dist/switch/Switch.a11y.test.d.ts +0 -2
- package/dist/switch/Switch.a11y.test.d.ts.map +0 -1
- package/dist/switch/Switch.a11y.test.js +0 -42
- package/dist/switch/Switch.kbd.test.d.ts +0 -2
- package/dist/switch/Switch.kbd.test.d.ts.map +0 -1
- package/dist/switch/Switch.kbd.test.js +0 -34
- package/dist/switch/SwitchKbdFixture.svelte +0 -22
- package/dist/switch/SwitchKbdFixture.svelte.d.ts +0 -4
- package/dist/switch/SwitchKbdFixture.svelte.d.ts.map +0 -1
- package/dist/table/Table.a11y.test.d.ts +0 -2
- package/dist/table/Table.a11y.test.d.ts.map +0 -1
- package/dist/table/Table.a11y.test.js +0 -59
- package/dist/table/Table.bench.d.ts +0 -2
- package/dist/table/Table.bench.d.ts.map +0 -1
- package/dist/table/Table.bench.js +0 -31
- package/dist/table/Table.kbd.test.d.ts +0 -2
- package/dist/table/Table.kbd.test.d.ts.map +0 -1
- package/dist/table/Table.kbd.test.js +0 -74
- package/dist/table/TableKbdFixture.svelte +0 -35
- package/dist/table/TableKbdFixture.svelte.d.ts +0 -19
- package/dist/table/TableKbdFixture.svelte.d.ts.map +0 -1
- package/dist/table/grid-nav.test.d.ts +0 -2
- package/dist/table/grid-nav.test.d.ts.map +0 -1
- package/dist/table/grid-nav.test.js +0 -133
- package/dist/tabs/Tabs.a11y.test.d.ts +0 -2
- package/dist/tabs/Tabs.a11y.test.d.ts.map +0 -1
- package/dist/tabs/Tabs.a11y.test.js +0 -43
- package/dist/tabs/Tabs.kbd.test.d.ts +0 -2
- package/dist/tabs/Tabs.kbd.test.d.ts.map +0 -1
- package/dist/tabs/Tabs.kbd.test.js +0 -63
- package/dist/tabs/TabsA11yFixture.svelte +0 -20
- package/dist/tabs/TabsA11yFixture.svelte.d.ts +0 -8
- package/dist/tabs/TabsA11yFixture.svelte.d.ts.map +0 -1
- package/dist/tabs/TabsKbdFixture.svelte +0 -25
- package/dist/tabs/TabsKbdFixture.svelte.d.ts +0 -7
- package/dist/tabs/TabsKbdFixture.svelte.d.ts.map +0 -1
- package/dist/tag/Tag.a11y.test.d.ts +0 -2
- package/dist/tag/Tag.a11y.test.d.ts.map +0 -1
- package/dist/tag/Tag.a11y.test.js +0 -30
- package/dist/tag/TagA11yFixture.svelte +0 -18
- package/dist/tag/TagA11yFixture.svelte.d.ts +0 -8
- package/dist/tag/TagA11yFixture.svelte.d.ts.map +0 -1
- package/dist/tag-input/TagInput.a11y.test.d.ts +0 -2
- package/dist/tag-input/TagInput.a11y.test.d.ts.map +0 -1
- package/dist/tag-input/TagInput.a11y.test.js +0 -38
- package/dist/tag-input/reorder.test.d.ts +0 -2
- package/dist/tag-input/reorder.test.d.ts.map +0 -1
- package/dist/tag-input/reorder.test.js +0 -48
- package/dist/test-utils/LocaleHarness.svelte +0 -29
- package/dist/test-utils/LocaleHarness.svelte.d.ts +0 -11
- package/dist/test-utils/LocaleHarness.svelte.d.ts.map +0 -1
- package/dist/test-utils/a11y.d.ts +0 -36
- package/dist/test-utils/a11y.d.ts.map +0 -1
- package/dist/test-utils/a11y.js +0 -68
- package/dist/test-utils/kbd.d.ts +0 -26
- package/dist/test-utils/kbd.d.ts.map +0 -1
- package/dist/test-utils/kbd.js +0 -38
- package/dist/textarea/TextArea.a11y.test.d.ts +0 -2
- package/dist/textarea/TextArea.a11y.test.d.ts.map +0 -1
- package/dist/textarea/TextArea.a11y.test.js +0 -41
- package/dist/time-picker/TimePicker.a11y.test.d.ts +0 -2
- package/dist/time-picker/TimePicker.a11y.test.d.ts.map +0 -1
- package/dist/time-picker/TimePicker.a11y.test.js +0 -42
- package/dist/time-picker/TimePicker.kbd.test.d.ts +0 -2
- package/dist/time-picker/TimePicker.kbd.test.d.ts.map +0 -1
- package/dist/time-picker/TimePicker.kbd.test.js +0 -59
- package/dist/time-picker/TimePickerKbdFixture.svelte +0 -23
- package/dist/time-picker/TimePickerKbdFixture.svelte.d.ts +0 -4
- package/dist/time-picker/TimePickerKbdFixture.svelte.d.ts.map +0 -1
- package/dist/timeline/Timeline.a11y.test.d.ts +0 -2
- package/dist/timeline/Timeline.a11y.test.d.ts.map +0 -1
- package/dist/timeline/Timeline.a11y.test.js +0 -51
- package/dist/toast/Toast.a11y.test.d.ts +0 -2
- package/dist/toast/Toast.a11y.test.d.ts.map +0 -1
- package/dist/toast/Toast.a11y.test.js +0 -58
- package/dist/tooltip/Tooltip.a11y.test.d.ts +0 -2
- package/dist/tooltip/Tooltip.a11y.test.d.ts.map +0 -1
- package/dist/tooltip/Tooltip.a11y.test.js +0 -33
- package/dist/tooltip/Tooltip.kbd.test.d.ts +0 -2
- package/dist/tooltip/Tooltip.kbd.test.d.ts.map +0 -1
- package/dist/tooltip/Tooltip.kbd.test.js +0 -31
- package/dist/tooltip/TooltipA11yFixture.svelte +0 -31
- package/dist/tooltip/TooltipA11yFixture.svelte.d.ts +0 -11
- package/dist/tooltip/TooltipA11yFixture.svelte.d.ts.map +0 -1
- package/dist/tooltip/TooltipKbdFixture.svelte +0 -16
- package/dist/tooltip/TooltipKbdFixture.svelte.d.ts +0 -19
- package/dist/tooltip/TooltipKbdFixture.svelte.d.ts.map +0 -1
- package/dist/transfer/Transfer.a11y.test.d.ts +0 -2
- package/dist/transfer/Transfer.a11y.test.d.ts.map +0 -1
- package/dist/transfer/Transfer.a11y.test.js +0 -59
- package/dist/transfer/Transfer.kbd.test.d.ts +0 -2
- package/dist/transfer/Transfer.kbd.test.d.ts.map +0 -1
- package/dist/transfer/Transfer.kbd.test.js +0 -64
- package/dist/transfer/TransferKbdFixture.svelte +0 -23
- package/dist/transfer/TransferKbdFixture.svelte.d.ts +0 -4
- package/dist/transfer/TransferKbdFixture.svelte.d.ts.map +0 -1
- package/dist/transfer/group.test.d.ts +0 -2
- package/dist/transfer/group.test.d.ts.map +0 -1
- package/dist/transfer/group.test.js +0 -47
- package/dist/transfer/reorder.test.d.ts +0 -2
- package/dist/transfer/reorder.test.d.ts.map +0 -1
- package/dist/transfer/reorder.test.js +0 -42
- package/dist/transfer/tree.test.d.ts +0 -2
- package/dist/transfer/tree.test.d.ts.map +0 -1
- package/dist/transfer/tree.test.js +0 -39
- package/dist/tree/Tree.a11y.test.d.ts +0 -2
- package/dist/tree/Tree.a11y.test.d.ts.map +0 -1
- package/dist/tree/Tree.a11y.test.js +0 -56
- package/dist/tree/Tree.kbd.test.d.ts +0 -2
- package/dist/tree/Tree.kbd.test.d.ts.map +0 -1
- package/dist/tree/Tree.kbd.test.js +0 -78
- package/dist/tree/TreeKbdFixture.svelte +0 -30
- package/dist/tree/TreeKbdFixture.svelte.d.ts +0 -19
- package/dist/tree/TreeKbdFixture.svelte.d.ts.map +0 -1
- package/dist/tree-select/TreeSelect.a11y.test.d.ts +0 -2
- package/dist/tree-select/TreeSelect.a11y.test.d.ts.map +0 -1
- package/dist/tree-select/TreeSelect.a11y.test.js +0 -48
- package/dist/tree-select/TreeSelect.kbd.test.d.ts +0 -2
- package/dist/tree-select/TreeSelect.kbd.test.d.ts.map +0 -1
- package/dist/tree-select/TreeSelect.kbd.test.js +0 -46
- package/dist/tree-select/TreeSelectKbdFixture.svelte +0 -20
- package/dist/tree-select/TreeSelectKbdFixture.svelte.d.ts +0 -19
- package/dist/tree-select/TreeSelectKbdFixture.svelte.d.ts.map +0 -1
- package/dist/tree-select/virtual.test.d.ts +0 -2
- package/dist/tree-select/virtual.test.d.ts.map +0 -1
- package/dist/tree-select/virtual.test.js +0 -86
- package/dist/typography/Typography.a11y.test.d.ts +0 -2
- package/dist/typography/Typography.a11y.test.d.ts.map +0 -1
- package/dist/typography/Typography.a11y.test.js +0 -31
- package/dist/typography/TypographyA11yFixture.svelte +0 -27
- package/dist/typography/TypographyA11yFixture.svelte.d.ts +0 -9
- package/dist/typography/TypographyA11yFixture.svelte.d.ts.map +0 -1
- package/dist/upload/Upload.a11y.test.d.ts +0 -2
- package/dist/upload/Upload.a11y.test.d.ts.map +0 -1
- package/dist/upload/Upload.a11y.test.js +0 -49
- package/dist/upload/UploadA11yFixture.svelte +0 -23
- package/dist/upload/UploadA11yFixture.svelte.d.ts +0 -10
- package/dist/upload/UploadA11yFixture.svelte.d.ts.map +0 -1
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
// Input a11y 试点:使用 useLocale(clear/password 按钮的 aria-label 走 i18n)。
|
|
2
|
-
// 验证 LocaleProvider wrapper 管线:clear 按钮可访问名来自 en_US 语言包。
|
|
3
|
-
import { describe, it, expect } from 'vitest';
|
|
4
|
-
import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
|
|
5
|
-
import Input from './Input.svelte';
|
|
6
|
-
describe('Input a11y', () => {
|
|
7
|
-
it('基础 input:ariaLabel 提供可访问名,无 axe violations', async () => {
|
|
8
|
-
const { container } = renderWithLocale(Input, {
|
|
9
|
-
props: { ariaLabel: 'Username' },
|
|
10
|
-
});
|
|
11
|
-
const input = container.querySelector('input');
|
|
12
|
-
expect(input).not.toBeNull();
|
|
13
|
-
expect(input?.getAttribute('aria-label')).toBe('Username');
|
|
14
|
-
await expectNoAxeViolations(container);
|
|
15
|
-
});
|
|
16
|
-
it('error 状态:aria-invalid=true', async () => {
|
|
17
|
-
const { container } = renderWithLocale(Input, {
|
|
18
|
-
props: { ariaLabel: 'Email', status: 'error' },
|
|
19
|
-
});
|
|
20
|
-
const input = container.querySelector('input');
|
|
21
|
-
expect(input?.getAttribute('aria-invalid')).toBe('true');
|
|
22
|
-
await expectNoAxeViolations(container);
|
|
23
|
-
});
|
|
24
|
-
it('required:aria-required=true', async () => {
|
|
25
|
-
const { container } = renderWithLocale(Input, {
|
|
26
|
-
props: { ariaLabel: 'Name', ariaRequired: true },
|
|
27
|
-
});
|
|
28
|
-
const input = container.querySelector('input');
|
|
29
|
-
expect(input?.getAttribute('aria-required')).toBe('true');
|
|
30
|
-
await expectNoAxeViolations(container);
|
|
31
|
-
});
|
|
32
|
-
it('clearable:clear 按钮的 aria-label 来自 en_US locale(验证 LocaleProvider 管线)', async () => {
|
|
33
|
-
const { container } = renderWithLocale(Input, {
|
|
34
|
-
props: { ariaLabel: 'Search', clearable: true, defaultValue: 'hello' },
|
|
35
|
-
});
|
|
36
|
-
const clearBtn = container.querySelector('.cd-input__clear');
|
|
37
|
-
expect(clearBtn).not.toBeNull();
|
|
38
|
-
// en_US 语言包里 Input.clear 应为非空可访问名(不是空串/key 原样)。
|
|
39
|
-
const label = clearBtn?.getAttribute('aria-label');
|
|
40
|
-
expect(label).toBeTruthy();
|
|
41
|
-
expect(label).not.toBe('Input.clear');
|
|
42
|
-
await expectNoAxeViolations(container);
|
|
43
|
-
});
|
|
44
|
-
it('password:reveal 按钮 aria-pressed + locale 可访问名', async () => {
|
|
45
|
-
const { container } = renderWithLocale(Input, {
|
|
46
|
-
props: { ariaLabel: 'Password', type: 'password' },
|
|
47
|
-
});
|
|
48
|
-
const revealBtn = container.querySelector('.cd-input__reveal');
|
|
49
|
-
expect(revealBtn?.getAttribute('aria-pressed')).toBe('false');
|
|
50
|
-
expect(revealBtn?.getAttribute('aria-label')).toBeTruthy();
|
|
51
|
-
await expectNoAxeViolations(container);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InputNumber.a11y.test.d.ts","sourceRoot":"","sources":["../../src/input-number/InputNumber.a11y.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
// InputNumber a11y:role=spinbutton + aria-valuenow/min/max;步进按钮 locale 可访问名。
|
|
2
|
-
import { describe, it, expect } from 'vitest';
|
|
3
|
-
import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
|
|
4
|
-
import InputNumber from './InputNumber.svelte';
|
|
5
|
-
describe('InputNumber a11y', () => {
|
|
6
|
-
it('默认渲染:role=spinbutton + aria-valuenow/min/max,ariaLabel 提供可访问名', async () => {
|
|
7
|
-
const { container } = renderWithLocale(InputNumber, {
|
|
8
|
-
props: { ariaLabel: 'Quantity', defaultValue: 5, min: 0, max: 10 },
|
|
9
|
-
});
|
|
10
|
-
const spin = container.querySelector('[role="spinbutton"]');
|
|
11
|
-
expect(spin).not.toBeNull();
|
|
12
|
-
expect(spin?.getAttribute('aria-label')).toBe('Quantity');
|
|
13
|
-
expect(spin?.getAttribute('aria-valuenow')).toBe('5');
|
|
14
|
-
expect(spin?.getAttribute('aria-valuemin')).toBe('0');
|
|
15
|
-
expect(spin?.getAttribute('aria-valuemax')).toBe('10');
|
|
16
|
-
// 步进按钮可访问名来自 en_US locale(InputNumber.increase / decrease)。
|
|
17
|
-
const inc = container.querySelector('.cd-input-number__increment');
|
|
18
|
-
const dec = container.querySelector('.cd-input-number__decrement');
|
|
19
|
-
expect(inc?.getAttribute('aria-label')).toBeTruthy();
|
|
20
|
-
expect(inc?.getAttribute('aria-label')).not.toBe('InputNumber.increase');
|
|
21
|
-
expect(dec?.getAttribute('aria-label')).toBeTruthy();
|
|
22
|
-
await expectNoAxeViolations(container);
|
|
23
|
-
});
|
|
24
|
-
it('error 状态:aria-invalid=true', async () => {
|
|
25
|
-
const { container } = renderWithLocale(InputNumber, {
|
|
26
|
-
props: { ariaLabel: 'Amount', status: 'error' },
|
|
27
|
-
});
|
|
28
|
-
const spin = container.querySelector('[role="spinbutton"]');
|
|
29
|
-
expect(spin?.getAttribute('aria-invalid')).toBe('true');
|
|
30
|
-
await expectNoAxeViolations(container);
|
|
31
|
-
});
|
|
32
|
-
it('readonly + 无 controls:aria-readonly,无 axe violations', async () => {
|
|
33
|
-
const { container } = renderWithLocale(InputNumber, {
|
|
34
|
-
props: { ariaLabel: 'Score', defaultValue: 7, readonly: true, controls: false },
|
|
35
|
-
});
|
|
36
|
-
const spin = container.querySelector('[role="spinbutton"]');
|
|
37
|
-
expect(spin?.getAttribute('aria-readonly')).toBe('true');
|
|
38
|
-
await expectNoAxeViolations(container);
|
|
39
|
-
});
|
|
40
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InputNumber.kbd.test.d.ts","sourceRoot":"","sources":["../../src/input-number/InputNumber.kbd.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
// InputNumber 键盘 e2e(browser project / 真实 chromium)。
|
|
2
|
-
// 焦点落在原生 <input role="spinbutton">:↑ 步进 +step、↓ -step,
|
|
3
|
-
// PageUp/PageDown 大步进(shiftStep,默认 step*10),aria-valuenow 真实变化,
|
|
4
|
-
// 钳到 min/max。jsdom 焦点/方向键步进合成不可靠,故在真浏览器里测。
|
|
5
|
-
import { describe, it, expect } from 'vitest';
|
|
6
|
-
import { page } from 'vitest/browser';
|
|
7
|
-
import { renderKbdFixture, userEvent } from '../test-utils/kbd.js';
|
|
8
|
-
import InputNumberKbdFixture from './InputNumberKbdFixture.svelte';
|
|
9
|
-
function loc(el) {
|
|
10
|
-
return page.elementLocator(el);
|
|
11
|
-
}
|
|
12
|
-
describe('InputNumber 键盘 e2e(role=spinbutton ↑↓ 步进)', () => {
|
|
13
|
-
it('Tab 聚焦 + ↑↓ 步进 + PageUp/PageDown 大步进 + 钳到 max', async () => {
|
|
14
|
-
const { baseElement } = renderKbdFixture(InputNumberKbdFixture);
|
|
15
|
-
const spin = baseElement.querySelector('[role="spinbutton"]');
|
|
16
|
-
expect(spin).not.toBeNull();
|
|
17
|
-
expect(spin.getAttribute('aria-valuenow')).toBe('5');
|
|
18
|
-
// Tab 从 before 进入,焦点落在 spinbutton。
|
|
19
|
-
const before = baseElement.querySelector('[data-testid="before"]');
|
|
20
|
-
before.focus();
|
|
21
|
-
await expect.element(loc(before)).toHaveFocus();
|
|
22
|
-
await userEvent.tab();
|
|
23
|
-
await expect.element(loc(spin)).toHaveFocus();
|
|
24
|
-
// ↑ +1(6),↓ -1(5)。
|
|
25
|
-
await userEvent.keyboard('{ArrowUp}');
|
|
26
|
-
await expect.element(loc(spin)).toHaveAttribute('aria-valuenow', '6');
|
|
27
|
-
await userEvent.keyboard('{ArrowDown}');
|
|
28
|
-
await expect.element(loc(spin)).toHaveAttribute('aria-valuenow', '5');
|
|
29
|
-
// PageUp 大步进 +10(15),PageDown -10(5)。
|
|
30
|
-
await userEvent.keyboard('{PageUp}');
|
|
31
|
-
await expect.element(loc(spin)).toHaveAttribute('aria-valuenow', '15');
|
|
32
|
-
await userEvent.keyboard('{PageDown}');
|
|
33
|
-
await expect.element(loc(spin)).toHaveAttribute('aria-valuenow', '5');
|
|
34
|
-
});
|
|
35
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
仅供 InputNumber.kbd.test.ts(browser project)使用的键盘 e2e 夹具。
|
|
3
|
-
InputNumber 焦点落在原生 <input role="spinbutton">:↑ 步进 +step、↓ -step、
|
|
4
|
-
PageUp/PageDown 大步进,aria-valuenow 真实变化(钳到 min/max)。
|
|
5
|
-
before 按钮验证 Tab 真实聚焦到 spinbutton。
|
|
6
|
-
-->
|
|
7
|
-
<script lang="ts">
|
|
8
|
-
import { LocaleProvider } from '../locale-provider/index.js';
|
|
9
|
-
import InputNumber from './InputNumber.svelte';
|
|
10
|
-
</script>
|
|
11
|
-
|
|
12
|
-
<LocaleProvider locale="en_US">
|
|
13
|
-
<button type="button" data-testid="before">before</button>
|
|
14
|
-
<InputNumber defaultValue={5} min={0} max={100} step={1} ariaLabel="Quantity" />
|
|
15
|
-
</LocaleProvider>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
-
$$bindings?: Bindings;
|
|
4
|
-
} & Exports;
|
|
5
|
-
(internal: unknown, props: {
|
|
6
|
-
$$events?: Events;
|
|
7
|
-
$$slots?: Slots;
|
|
8
|
-
}): Exports & {
|
|
9
|
-
$set?: any;
|
|
10
|
-
$on?: any;
|
|
11
|
-
};
|
|
12
|
-
z_$$bindings?: Bindings;
|
|
13
|
-
}
|
|
14
|
-
declare const InputNumberKbdFixture: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
15
|
-
[evt: string]: CustomEvent<any>;
|
|
16
|
-
}, {}, {}, string>;
|
|
17
|
-
type InputNumberKbdFixture = InstanceType<typeof InputNumberKbdFixture>;
|
|
18
|
-
export default InputNumberKbdFixture;
|
|
19
|
-
//# sourceMappingURL=InputNumberKbdFixture.svelte.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InputNumberKbdFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/input-number/InputNumberKbdFixture.svelte.ts"],"names":[],"mappings":"AAmBA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,qBAAqB;;kBAA+E,CAAC;AACzF,KAAK,qBAAqB,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC1E,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Layout.a11y.test.d.ts","sourceRoot":"","sources":["../../src/layout/Layout.a11y.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
// Layout a11y:页面级布局骨架(section + header/main/footer/aside 语义元素)。
|
|
2
|
-
// 纯布局,不引入额外 role;Sider collapsible 触发器为原生 button + aria-expanded/aria-controls/aria-label。
|
|
3
|
-
import { describe, it, expect } from 'vitest';
|
|
4
|
-
import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
|
|
5
|
-
import LayoutFixture from './LayoutA11yFixture.svelte';
|
|
6
|
-
describe('Layout a11y', () => {
|
|
7
|
-
it('默认渲染:语义布局元素齐全,无 axe violations', async () => {
|
|
8
|
-
const { container } = renderWithLocale(LayoutFixture, {});
|
|
9
|
-
expect(container.querySelector('section.cd-layout')).not.toBeNull();
|
|
10
|
-
expect(container.querySelector('header.cd-layout-header')).not.toBeNull();
|
|
11
|
-
expect(container.querySelector('main.cd-layout-content')).not.toBeNull();
|
|
12
|
-
expect(container.querySelector('footer.cd-layout-footer')).not.toBeNull();
|
|
13
|
-
expect(container.querySelector('aside.cd-layout-sider')).not.toBeNull();
|
|
14
|
-
await expectNoAxeViolations(container);
|
|
15
|
-
});
|
|
16
|
-
it('collapsible Sider:触发器 button aria-expanded/aria-controls/aria-label,无 axe violations', async () => {
|
|
17
|
-
const { container } = renderWithLocale(LayoutFixture, {
|
|
18
|
-
props: { collapsible: true },
|
|
19
|
-
});
|
|
20
|
-
const trigger = container.querySelector('button.cd-layout-sider__trigger');
|
|
21
|
-
expect(trigger).not.toBeNull();
|
|
22
|
-
// 展开态 aria-expanded=true。
|
|
23
|
-
expect(trigger?.getAttribute('aria-expanded')).toBe('true');
|
|
24
|
-
// aria-controls 指向 Sider id(不悬空)。
|
|
25
|
-
const controls = trigger?.getAttribute('aria-controls');
|
|
26
|
-
expect(controls).toBeTruthy();
|
|
27
|
-
expect(container.ownerDocument.getElementById(controls)).not.toBeNull();
|
|
28
|
-
// aria-label 来自 i18n(验证 LocaleProvider 管线)。
|
|
29
|
-
expect(trigger?.getAttribute('aria-label')).toBeTruthy();
|
|
30
|
-
await expectNoAxeViolations(container);
|
|
31
|
-
});
|
|
32
|
-
});
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
仅供 Layout.a11y.test.ts 使用的测试夹具:Layout 根 + Header/Sider/Content/Footer。
|
|
3
|
-
Sider collapsible 渲染原生 button 触发器(aria-expanded/aria-controls/aria-label)。
|
|
4
|
-
-->
|
|
5
|
-
<script lang="ts">
|
|
6
|
-
import { Layout } from './index.js';
|
|
7
|
-
|
|
8
|
-
interface Props {
|
|
9
|
-
collapsible?: boolean;
|
|
10
|
-
}
|
|
11
|
-
let { collapsible = false }: Props = $props();
|
|
12
|
-
</script>
|
|
13
|
-
|
|
14
|
-
<Layout hasSider>
|
|
15
|
-
<Layout.Sider {collapsible}>Navigation</Layout.Sider>
|
|
16
|
-
<Layout>
|
|
17
|
-
<Layout.Header>Page header</Layout.Header>
|
|
18
|
-
<Layout.Content padding>Main content</Layout.Content>
|
|
19
|
-
<Layout.Footer>Page footer</Layout.Footer>
|
|
20
|
-
</Layout>
|
|
21
|
-
</Layout>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
interface Props {
|
|
2
|
-
collapsible?: boolean;
|
|
3
|
-
}
|
|
4
|
-
declare const LayoutA11yFixture: import("svelte").Component<Props, {}, "">;
|
|
5
|
-
type LayoutA11yFixture = ReturnType<typeof LayoutA11yFixture>;
|
|
6
|
-
export default LayoutA11yFixture;
|
|
7
|
-
//# sourceMappingURL=LayoutA11yFixture.svelte.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutA11yFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/layout/LayoutA11yFixture.svelte.ts"],"names":[],"mappings":"AAME,UAAU,KAAK;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAmBH,QAAA,MAAM,iBAAiB,2CAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"List.a11y.test.d.ts","sourceRoot":"","sources":["../../src/list/List.a11y.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
// List a11y:列表。
|
|
2
|
-
// 非 selectable:原生 ul/li 列表语义(role=list / listitem 隐式)。
|
|
3
|
-
// selectable:容器 role=listbox(multiple 加 aria-multiselectable),行 role=option + aria-selected,
|
|
4
|
-
// 行 tabindex roving(仅一行为 Tab 停靠点)。
|
|
5
|
-
// 用数据驱动夹具(ListA11yFixture)渲染真实行。
|
|
6
|
-
import { describe, it, expect } from 'vitest';
|
|
7
|
-
import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
|
|
8
|
-
import ListFixture from './ListA11yFixture.svelte';
|
|
9
|
-
describe('List a11y', () => {
|
|
10
|
-
it('默认渲染:原生 ul/li 列表语义,无 axe violations', async () => {
|
|
11
|
-
const { container } = renderWithLocale(ListFixture, {
|
|
12
|
-
props: { bordered: true, header: 'Users' },
|
|
13
|
-
});
|
|
14
|
-
const ul = container.querySelector('ul.cd-list__items');
|
|
15
|
-
expect(ul).not.toBeNull();
|
|
16
|
-
// 非 selectable:不设显式 role(保留原生 list 语义)。
|
|
17
|
-
expect(ul?.getAttribute('role')).toBeNull();
|
|
18
|
-
expect(container.querySelectorAll('li.cd-list__item').length).toBe(3);
|
|
19
|
-
await expectNoAxeViolations(container);
|
|
20
|
-
});
|
|
21
|
-
// 结构断言(不含 axe):selectable 的 listbox/option/aria-selected/roving 语义确实就位。
|
|
22
|
-
// axe 0-violation 断言因下述两个真实组件缺口被拆到 it.skip,故此处只验证 ARIA 结构。
|
|
23
|
-
it('selectable=single:role=listbox + option + aria-selected + roving 结构', async () => {
|
|
24
|
-
const { container } = renderWithLocale(ListFixture, {
|
|
25
|
-
props: { selectable: 'single', defaultSelectedKeys: ['u2'] },
|
|
26
|
-
});
|
|
27
|
-
const listbox = container.querySelector('[role="listbox"]');
|
|
28
|
-
expect(listbox).not.toBeNull();
|
|
29
|
-
expect(listbox?.getAttribute('aria-multiselectable')).toBeNull();
|
|
30
|
-
const options = container.querySelectorAll('[role="option"]');
|
|
31
|
-
expect(options.length).toBe(3);
|
|
32
|
-
const selected = container.querySelectorAll('[role="option"][aria-selected="true"]');
|
|
33
|
-
expect(selected.length).toBe(1);
|
|
34
|
-
expect(selected[0]?.textContent).toContain('Alan Turing');
|
|
35
|
-
// roving tabindex:仅一行为 Tab 停靠点。
|
|
36
|
-
const zero = [...options].filter((o) => o.getAttribute('tabindex') === '0');
|
|
37
|
-
expect(zero.length).toBe(1);
|
|
38
|
-
});
|
|
39
|
-
it('selectable=multiple:listbox aria-multiselectable=true 结构', async () => {
|
|
40
|
-
const { container } = renderWithLocale(ListFixture, {
|
|
41
|
-
props: { selectable: 'multiple', defaultSelectedKeys: ['u1', 'u3'] },
|
|
42
|
-
});
|
|
43
|
-
const listbox = container.querySelector('[role="listbox"]');
|
|
44
|
-
expect(listbox?.getAttribute('aria-multiselectable')).toBe('true');
|
|
45
|
-
const selected = container.querySelectorAll('[role="option"][aria-selected="true"]');
|
|
46
|
-
expect(selected.length).toBe(2);
|
|
47
|
-
});
|
|
48
|
-
// 修复后:listbox 经 aria-label(List.selectableLabel)有可访问名;option 内勾选框改纯视觉
|
|
49
|
-
// (aria-hidden + 无 input),选中态由行 aria-selected 表达,无 nested-interactive。
|
|
50
|
-
it('selectable=single:axe 0 violations(listbox 可访问名 + 纯视觉勾选框)', async () => {
|
|
51
|
-
const { container } = renderWithLocale(ListFixture, {
|
|
52
|
-
props: { selectable: 'single', defaultSelectedKeys: ['u2'] },
|
|
53
|
-
});
|
|
54
|
-
await expectNoAxeViolations(container);
|
|
55
|
-
});
|
|
56
|
-
it('selectable=multiple:axe 0 violations(listbox 可访问名 + 纯视觉勾选框)', async () => {
|
|
57
|
-
const { container } = renderWithLocale(ListFixture, {
|
|
58
|
-
props: { selectable: 'multiple', defaultSelectedKeys: ['u1', 'u3'] },
|
|
59
|
-
});
|
|
60
|
-
await expectNoAxeViolations(container);
|
|
61
|
-
});
|
|
62
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"List.bench.d.ts","sourceRoot":"","sources":["../../src/list/List.bench.ts"],"names":[],"mappings":""}
|
package/dist/list/List.bench.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// List 渲染基准(最小骨架,趋势参考,不接 CI 门禁)。
|
|
2
|
-
// 在 jsdom 下真实 mount List(数据驱动 dataSource + renderItem),测挂载耗时。
|
|
3
|
-
// 仅供观察回归趋势;硬门禁是 size-limit 体积预算(perf:size / perf:check)。
|
|
4
|
-
import { bench, describe } from 'vitest';
|
|
5
|
-
import { render, cleanup } from '@testing-library/svelte';
|
|
6
|
-
import ListBenchFixture from './ListBenchFixture.svelte';
|
|
7
|
-
describe('List render', () => {
|
|
8
|
-
bench('mount 100 items', () => {
|
|
9
|
-
render(ListBenchFixture, { props: { count: 100 } });
|
|
10
|
-
cleanup();
|
|
11
|
-
}, { time: 300 });
|
|
12
|
-
bench('mount 500 items', () => {
|
|
13
|
-
render(ListBenchFixture, { props: { count: 500 } });
|
|
14
|
-
cleanup();
|
|
15
|
-
}, { time: 500 });
|
|
16
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"List.kbd.test.d.ts","sourceRoot":"","sources":["../../src/list/List.kbd.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
// List 键盘 e2e(browser project / 真实 chromium)。
|
|
2
|
-
// selectable="single" → role=listbox / 行 role=option,roving 单停靠点(真实焦点)。
|
|
3
|
-
// 测真实焦点移动 + Space 选中——jsdom 测不了(命令式 focus() 不可靠):
|
|
4
|
-
// 1. roving 单停靠点:Tab 进入只停在一行(其余 tabindex=-1,默认首行)。
|
|
5
|
-
// 2. ↑↓ 真实移动焦点到相邻行(无 wrap:clamp,源码 Math.min/max)。
|
|
6
|
-
// 3. Home/End 跳首/末行。
|
|
7
|
-
// 4. Space 选中当前焦点行(aria-selected=true)。
|
|
8
|
-
//
|
|
9
|
-
// 真实焦点断言用 page locator 的 .toHaveFocus()。
|
|
10
|
-
import { describe, it, expect } from 'vitest';
|
|
11
|
-
import { page } from 'vitest/browser';
|
|
12
|
-
import { renderKbdFixture, userEvent } from '../test-utils/kbd.js';
|
|
13
|
-
import ListKbdFixture from './ListKbdFixture.svelte';
|
|
14
|
-
function loc(el) {
|
|
15
|
-
return page.elementLocator(el);
|
|
16
|
-
}
|
|
17
|
-
describe('List 键盘 e2e(selectable listbox roving,真实焦点)', () => {
|
|
18
|
-
it('Tab 单停靠点 + ↑↓ 移动焦点(clamp)+ Home/End + Space 选中', async () => {
|
|
19
|
-
const { baseElement } = renderKbdFixture(ListKbdFixture);
|
|
20
|
-
const listbox = baseElement.querySelector('[role="listbox"]');
|
|
21
|
-
expect(listbox).toBeTruthy();
|
|
22
|
-
const rows = Array.from(baseElement.querySelectorAll('[role="option"]'));
|
|
23
|
-
expect(rows.length).toBe(3);
|
|
24
|
-
const [alpha, bravo, charlie] = rows;
|
|
25
|
-
// 1. roving 单停靠点:默认首行为 tabindex=0,其余 -1。
|
|
26
|
-
expect(rows.filter((el) => el.tabIndex === 0).length).toBe(1);
|
|
27
|
-
expect(alpha.tabIndex).toBe(0);
|
|
28
|
-
const before = baseElement.querySelector('[data-testid="before"]');
|
|
29
|
-
before.focus();
|
|
30
|
-
await expect.element(loc(before)).toHaveFocus();
|
|
31
|
-
await userEvent.tab();
|
|
32
|
-
await expect.element(loc(alpha)).toHaveFocus();
|
|
33
|
-
// 2. ↓ 移动焦点到下一行(真实焦点 + 停靠点同步)。
|
|
34
|
-
await userEvent.keyboard('{ArrowDown}');
|
|
35
|
-
await expect.element(loc(bravo)).toHaveFocus();
|
|
36
|
-
expect(bravo.tabIndex).toBe(0);
|
|
37
|
-
expect(alpha.tabIndex).toBe(-1);
|
|
38
|
-
await userEvent.keyboard('{ArrowDown}');
|
|
39
|
-
await expect.element(loc(charlie)).toHaveFocus();
|
|
40
|
-
// 无 wrap:末行再 ↓ 停在末行(clamp)。
|
|
41
|
-
await userEvent.keyboard('{ArrowDown}');
|
|
42
|
-
await expect.element(loc(charlie)).toHaveFocus();
|
|
43
|
-
// ↑ 回退;首行再 ↑ 停在首行(clamp)。
|
|
44
|
-
await userEvent.keyboard('{ArrowUp}');
|
|
45
|
-
await expect.element(loc(bravo)).toHaveFocus();
|
|
46
|
-
await userEvent.keyboard('{ArrowUp}');
|
|
47
|
-
await expect.element(loc(alpha)).toHaveFocus();
|
|
48
|
-
await userEvent.keyboard('{ArrowUp}');
|
|
49
|
-
await expect.element(loc(alpha)).toHaveFocus();
|
|
50
|
-
// 3. Home/End 跳首/末。
|
|
51
|
-
await userEvent.keyboard('{End}');
|
|
52
|
-
await expect.element(loc(charlie)).toHaveFocus();
|
|
53
|
-
await userEvent.keyboard('{Home}');
|
|
54
|
-
await expect.element(loc(alpha)).toHaveFocus();
|
|
55
|
-
// 4. Space 选中当前焦点行(aria-selected=true)。single 模式互斥。
|
|
56
|
-
expect(alpha.getAttribute('aria-selected')).toBe('false');
|
|
57
|
-
await userEvent.keyboard(' ');
|
|
58
|
-
await expect.element(loc(alpha)).toHaveAttribute('aria-selected', 'true');
|
|
59
|
-
});
|
|
60
|
-
});
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
仅供 List.a11y.test.ts 使用的测试夹具:数据驱动 dataSource + renderItem Snippet。
|
|
3
|
-
selectable 时容器升级 role=listbox,行 role=option + aria-selected。
|
|
4
|
-
-->
|
|
5
|
-
<script lang="ts">
|
|
6
|
-
import { List } from './index.js';
|
|
7
|
-
|
|
8
|
-
interface Props {
|
|
9
|
-
selectable?: false | 'single' | 'multiple';
|
|
10
|
-
bordered?: boolean;
|
|
11
|
-
header?: string;
|
|
12
|
-
defaultSelectedKeys?: (string | number)[];
|
|
13
|
-
}
|
|
14
|
-
let {
|
|
15
|
-
selectable = false,
|
|
16
|
-
bordered = false,
|
|
17
|
-
header = undefined,
|
|
18
|
-
defaultSelectedKeys = [],
|
|
19
|
-
}: Props = $props();
|
|
20
|
-
|
|
21
|
-
const dataSource = [
|
|
22
|
-
{ key: 'u1', title: 'Ada Lovelace' },
|
|
23
|
-
{ key: 'u2', title: 'Alan Turing' },
|
|
24
|
-
{ key: 'u3', title: 'Grace Hopper' },
|
|
25
|
-
];
|
|
26
|
-
</script>
|
|
27
|
-
|
|
28
|
-
<List
|
|
29
|
-
{dataSource}
|
|
30
|
-
{selectable}
|
|
31
|
-
{bordered}
|
|
32
|
-
{defaultSelectedKeys}
|
|
33
|
-
{...header !== undefined ? { header } : {}}
|
|
34
|
-
>
|
|
35
|
-
{#snippet renderItem(item)}
|
|
36
|
-
<span>{(item as { title: string }).title}</span>
|
|
37
|
-
{/snippet}
|
|
38
|
-
</List>
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
interface Props {
|
|
2
|
-
selectable?: false | 'single' | 'multiple';
|
|
3
|
-
bordered?: boolean;
|
|
4
|
-
header?: string;
|
|
5
|
-
defaultSelectedKeys?: (string | number)[];
|
|
6
|
-
}
|
|
7
|
-
declare const ListA11yFixture: import("svelte").Component<Props, {}, "">;
|
|
8
|
-
type ListA11yFixture = ReturnType<typeof ListA11yFixture>;
|
|
9
|
-
export default ListA11yFixture;
|
|
10
|
-
//# sourceMappingURL=ListA11yFixture.svelte.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ListA11yFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/list/ListA11yFixture.svelte.ts"],"names":[],"mappings":"AAME,UAAU,KAAK;IACb,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC3C;AA2BH,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
仅供 List.bench.ts 使用的基准夹具:按 count 生成 dataSource,
|
|
3
|
-
用 renderItem snippet 渲染真实行。隔离 snippet(snippet 只能在 .svelte 内定义)。
|
|
4
|
-
-->
|
|
5
|
-
<script lang="ts">
|
|
6
|
-
import { List } from './index.js';
|
|
7
|
-
|
|
8
|
-
interface Props {
|
|
9
|
-
count?: number;
|
|
10
|
-
}
|
|
11
|
-
let { count = 100 }: Props = $props();
|
|
12
|
-
|
|
13
|
-
const dataSource = $derived(
|
|
14
|
-
Array.from({ length: count }, (_, i) => ({ key: `r${i}`, title: `Item ${i}` })),
|
|
15
|
-
);
|
|
16
|
-
</script>
|
|
17
|
-
|
|
18
|
-
<List {dataSource} bordered>
|
|
19
|
-
{#snippet renderItem(item)}
|
|
20
|
-
<span>{(item as { title: string }).title}</span>
|
|
21
|
-
{/snippet}
|
|
22
|
-
</List>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
interface Props {
|
|
2
|
-
count?: number;
|
|
3
|
-
}
|
|
4
|
-
declare const ListBenchFixture: import("svelte").Component<Props, {}, "">;
|
|
5
|
-
type ListBenchFixture = ReturnType<typeof ListBenchFixture>;
|
|
6
|
-
export default ListBenchFixture;
|
|
7
|
-
//# sourceMappingURL=ListBenchFixture.svelte.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ListBenchFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/list/ListBenchFixture.svelte.ts"],"names":[],"mappings":"AAME,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAoBH,QAAA,MAAM,gBAAgB,2CAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
仅供 List.kbd.test.ts(browser project)使用的键盘 e2e 夹具。
|
|
3
|
-
selectable="single" → role=listbox / 行 role=option,roving 单停靠点(真实焦点)。
|
|
4
|
-
前后各放按钮验证 Tab 进入只停靠单行、Tab 出去落到 after。
|
|
5
|
-
-->
|
|
6
|
-
<script lang="ts">
|
|
7
|
-
import { LocaleProvider } from '../locale-provider/index.js';
|
|
8
|
-
import List from './List.svelte';
|
|
9
|
-
|
|
10
|
-
type Row = { key: string; label: string };
|
|
11
|
-
const dataSource: Row[] = [
|
|
12
|
-
{ key: 'a', label: 'Alpha' },
|
|
13
|
-
{ key: 'b', label: 'Bravo' },
|
|
14
|
-
{ key: 'c', label: 'Charlie' },
|
|
15
|
-
];
|
|
16
|
-
</script>
|
|
17
|
-
|
|
18
|
-
<LocaleProvider locale="en_US">
|
|
19
|
-
<button type="button" data-testid="before">before</button>
|
|
20
|
-
<List
|
|
21
|
-
{dataSource}
|
|
22
|
-
rowKey="key"
|
|
23
|
-
selectable="single"
|
|
24
|
-
ariaLabel="People"
|
|
25
|
-
>
|
|
26
|
-
{#snippet renderItem(item: Row)}
|
|
27
|
-
<span>{item.label}</span>
|
|
28
|
-
{/snippet}
|
|
29
|
-
</List>
|
|
30
|
-
<button type="button" data-testid="after">after</button>
|
|
31
|
-
</LocaleProvider>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
-
$$bindings?: Bindings;
|
|
4
|
-
} & Exports;
|
|
5
|
-
(internal: unknown, props: {
|
|
6
|
-
$$events?: Events;
|
|
7
|
-
$$slots?: Slots;
|
|
8
|
-
}): Exports & {
|
|
9
|
-
$set?: any;
|
|
10
|
-
$on?: any;
|
|
11
|
-
};
|
|
12
|
-
z_$$bindings?: Bindings;
|
|
13
|
-
}
|
|
14
|
-
declare const ListKbdFixture: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
15
|
-
[evt: string]: CustomEvent<any>;
|
|
16
|
-
}, {}, {}, string>;
|
|
17
|
-
type ListKbdFixture = InstanceType<typeof ListKbdFixture>;
|
|
18
|
-
export default ListKbdFixture;
|
|
19
|
-
//# sourceMappingURL=ListKbdFixture.svelte.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ListKbdFixture.svelte.d.ts","sourceRoot":"","sources":["../../src/list/ListKbdFixture.svelte.ts"],"names":[],"mappings":"AA+BA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,cAAc;;kBAA+E,CAAC;AAClF,KAAK,cAAc,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,eAAe,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.a11y.test.d.ts","sourceRoot":"","sources":["../../src/menu/Menu.a11y.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
// Menu a11y:数据驱动导航菜单。
|
|
2
|
-
// 容器 ul[role=menu](horizontal 为 menubar),叶子 button[role=menuitem],
|
|
3
|
-
// 单选选中项 aria-current=true,多选叶子 role=menuitemcheckbox + aria-checked。
|
|
4
|
-
import { describe, it, expect } from 'vitest';
|
|
5
|
-
import { renderWithLocale, expectNoAxeViolations } from '../test-utils/a11y.js';
|
|
6
|
-
import Menu from './Menu.svelte';
|
|
7
|
-
const items = [
|
|
8
|
-
{ key: 'home', label: 'Home' },
|
|
9
|
-
{ key: 'profile', label: 'Profile' },
|
|
10
|
-
{ key: 'settings', label: 'Settings' },
|
|
11
|
-
];
|
|
12
|
-
describe('Menu a11y', () => {
|
|
13
|
-
it('默认渲染:role=menu + menuitem,无 axe violations', async () => {
|
|
14
|
-
const { container } = renderWithLocale(Menu, {
|
|
15
|
-
props: { items, ariaLabel: 'Main menu' },
|
|
16
|
-
});
|
|
17
|
-
const menu = container.querySelector('[role="menu"]');
|
|
18
|
-
expect(menu).not.toBeNull();
|
|
19
|
-
expect(menu?.getAttribute('aria-label')).toBe('Main menu');
|
|
20
|
-
const menuitems = container.querySelectorAll('[role="menuitem"]');
|
|
21
|
-
expect(menuitems.length).toBe(3);
|
|
22
|
-
await expectNoAxeViolations(container);
|
|
23
|
-
});
|
|
24
|
-
it('单选选中态:选中叶子 aria-current=true', async () => {
|
|
25
|
-
const { container } = renderWithLocale(Menu, {
|
|
26
|
-
props: { items, ariaLabel: 'Nav', defaultSelectedKeys: ['profile'] },
|
|
27
|
-
});
|
|
28
|
-
const current = container.querySelector('[role="menuitem"][aria-current="true"]');
|
|
29
|
-
expect(current?.textContent).toContain('Profile');
|
|
30
|
-
await expectNoAxeViolations(container);
|
|
31
|
-
});
|
|
32
|
-
it('horizontal 模式:容器 role=menubar', async () => {
|
|
33
|
-
const { container } = renderWithLocale(Menu, {
|
|
34
|
-
props: { items, ariaLabel: 'Top', mode: 'horizontal' },
|
|
35
|
-
});
|
|
36
|
-
expect(container.querySelector('[role="menubar"]')).not.toBeNull();
|
|
37
|
-
await expectNoAxeViolations(container);
|
|
38
|
-
});
|
|
39
|
-
it('multiple:叶子 role=menuitemcheckbox + aria-checked', async () => {
|
|
40
|
-
const { container } = renderWithLocale(Menu, {
|
|
41
|
-
props: { items, ariaLabel: 'Multi', multiple: true, defaultSelectedKeys: ['home'] },
|
|
42
|
-
});
|
|
43
|
-
const checkboxes = container.querySelectorAll('[role="menuitemcheckbox"]');
|
|
44
|
-
expect(checkboxes.length).toBe(3);
|
|
45
|
-
const checked = container.querySelector('[role="menuitemcheckbox"][aria-checked="true"]');
|
|
46
|
-
expect(checked?.textContent).toContain('Home');
|
|
47
|
-
await expectNoAxeViolations(container);
|
|
48
|
-
});
|
|
49
|
-
});
|