@indielayer/ui 2.0.0 → 2.1.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/docs/App.vue +19 -4
- package/docs/assets/css/tailwind.css +7 -1
- package/docs/components/Cookies.vue +3 -1
- package/docs/components/common/CodePreview.vue +1 -1
- package/docs/components/common/DocsCopyPage.vue +200 -0
- package/docs/components/common/DocumentPage.vue +76 -23
- package/docs/components/toolbar/ToolbarColorToggle.vue +29 -18
- package/docs/components/toolbar/ToolbarSearch.vue +4 -4
- package/docs/composables/useDocMeta.ts +63 -4
- package/docs/icons.ts +3 -0
- package/docs/main.ts +25 -26
- package/docs/pages/component/accordion/index.vue +2 -2
- package/docs/pages/component/alert/index.vue +2 -2
- package/docs/pages/component/avatar/index.vue +4 -4
- package/docs/pages/component/badge/index.vue +2 -2
- package/docs/pages/component/breadcrumbs/index.vue +2 -2
- package/docs/pages/component/button/button-group.vue +3 -3
- package/docs/pages/component/button/index.vue +14 -7
- package/docs/pages/component/button/tooltip.vue +10 -0
- package/docs/pages/component/card/index.vue +2 -2
- package/docs/pages/component/carousel/index.vue +2 -2
- package/docs/pages/component/checkbox/index.vue +5 -5
- package/docs/pages/component/container/index.vue +2 -2
- package/docs/pages/component/datepicker/index.vue +2 -2
- package/docs/pages/component/divider/index.vue +4 -4
- package/docs/pages/component/drawer/index.vue +2 -2
- package/docs/pages/component/empty/index.vue +3 -3
- package/docs/pages/component/form/index.vue +2 -2
- package/docs/pages/component/formGroup/index.vue +2 -2
- package/docs/pages/component/infiniteLoader/index.vue +3 -3
- package/docs/pages/component/input/index.vue +5 -5
- package/docs/pages/component/inputGroup/index.vue +3 -3
- package/docs/pages/component/inputGroup/validation.vue +6 -1
- package/docs/pages/component/link/index.vue +2 -2
- package/docs/pages/component/loader/index.vue +2 -2
- package/docs/pages/component/menu/index.vue +2 -2
- package/docs/pages/component/modal/index.vue +3 -3
- package/docs/pages/component/notifications/index.vue +2 -2
- package/docs/pages/component/pagination/index.vue +2 -2
- package/docs/pages/component/popover/index.vue +2 -2
- package/docs/pages/component/popover/usage.vue +14 -0
- package/docs/pages/component/progress/index.vue +3 -3
- package/docs/pages/component/qrCode/index.vue +2 -2
- package/docs/pages/component/radio/index.vue +3 -3
- package/docs/pages/component/scroll/index.vue +3 -3
- package/docs/pages/component/select/index.vue +5 -5
- package/docs/pages/component/skeleton/index.vue +2 -2
- package/docs/pages/component/slider/index.vue +2 -2
- package/docs/pages/component/spacer/index.vue +2 -2
- package/docs/pages/component/spinner/index.vue +3 -3
- package/docs/pages/component/table/index.vue +4 -4
- package/docs/pages/component/tabs/index.vue +2 -2
- package/docs/pages/component/tabs/usage.vue +26 -0
- package/docs/pages/component/tag/index.vue +2 -2
- package/docs/pages/component/textarea/index.vue +4 -4
- package/docs/pages/component/toggle/index.vue +4 -4
- package/docs/pages/component/upload/index.vue +2 -2
- package/docs/pages/component/upload/usage.vue +1 -0
- package/docs/pages/component/virtualGrid/index.vue +2 -2
- package/docs/pages/component/virtualList/index.vue +3 -3
- package/docs/pages/icons.vue +2 -2
- package/docs/router/index.ts +39 -44
- package/docs/search/components.json +1 -1
- package/docs/search/index.json +1 -1
- package/lib/common/buttonGroupRadius.d.ts +3 -0
- package/lib/common/buttonGroupRadius.js +6 -0
- package/lib/common/props.d.ts +1 -1
- package/lib/common/props.js +10 -9
- package/lib/components/accordion/Accordion.vue.d.ts +42 -9
- package/lib/components/accordion/Accordion.vue_vue_type_script_setup_true_lang.js +18 -6
- package/lib/components/accordion/AccordionItem.vue.d.ts +33 -6
- package/lib/components/accordion/AccordionItem.vue_vue_type_script_setup_true_lang.js +31 -6
- package/lib/components/alert/Alert.vue.d.ts +27 -6
- package/lib/components/alert/Alert.vue_vue_type_script_setup_true_lang.js +20 -6
- package/lib/components/avatar/Avatar.vue.d.ts +45 -9
- package/lib/components/avatar/Avatar.vue_vue_type_script_setup_true_lang.js +17 -6
- package/lib/components/badge/Badge.vue.d.ts +54 -9
- package/lib/components/badge/Badge.vue_vue_type_script_setup_true_lang.js +26 -9
- package/lib/components/breadcrumbs/Breadcrumbs.vue.d.ts +30 -6
- package/lib/components/breadcrumbs/Breadcrumbs.vue_vue_type_script_setup_true_lang.js +13 -5
- package/lib/components/button/Button.js +2 -2
- package/lib/components/button/Button.vue.d.ts +138 -28
- package/lib/components/button/Button.vue_vue_type_script_setup_true_lang.js +192 -70
- package/lib/components/button/ButtonGroup.js +4 -5
- package/lib/components/button/ButtonGroup.vue.d.ts +54 -10
- package/lib/components/button/ButtonGroup.vue_vue_type_script_setup_true_lang.js +30 -19
- package/lib/components/button/theme/Button.base.theme.js +6 -5
- package/lib/components/button/theme/Button.carbon.theme.js +6 -5
- package/lib/components/card/Card.vue.d.ts +3 -0
- package/lib/components/card/Card.vue_vue_type_script_setup_true_lang.js +4 -2
- package/lib/components/carousel/Carousel.vue.d.ts +21 -3
- package/lib/components/carousel/Carousel.vue_vue_type_script_setup_true_lang.js +23 -5
- package/lib/components/carousel/CarouselSlide.js +2 -2
- package/lib/components/carousel/CarouselSlide.vue.d.ts +3 -0
- package/lib/components/carousel/CarouselSlide.vue_vue_type_script_setup_true_lang.js +3 -1
- package/lib/components/carousel/{CarouselSlide.vue_vue_type_style_index_0_scoped_e90d2127_lang.module.js → CarouselSlide.vue_vue_type_style_index_0_scoped_4f559831_lang.module.js} +1 -1
- package/lib/components/checkbox/Checkbox.vue.d.ts +198 -45
- package/lib/components/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +20 -3
- package/lib/components/container/Container.vue.d.ts +6 -0
- package/lib/components/container/Container.vue_vue_type_script_setup_true_lang.js +5 -2
- package/lib/components/datepicker/Datepicker.vue.d.ts +462 -36
- package/lib/components/datepicker/Datepicker.vue_vue_type_script_setup_true_lang.js +294 -153
- package/lib/components/divider/Divider.vue.d.ts +12 -3
- package/lib/components/divider/Divider.vue_vue_type_script_setup_true_lang.js +6 -2
- package/lib/components/drawer/Drawer.vue.d.ts +39 -6
- package/lib/components/drawer/Drawer.vue_vue_type_script_setup_true_lang.js +30 -7
- package/lib/components/empty/Empty.vue.d.ts +30 -6
- package/lib/components/empty/Empty.vue_vue_type_script_setup_true_lang.js +17 -4
- package/lib/components/form/Form.vue.d.ts +48 -9
- package/lib/components/form/Form.vue_vue_type_script_setup_true_lang.js +34 -7
- package/lib/components/formGroup/FormGroup.vue.d.ts +171 -39
- package/lib/components/formGroup/FormGroup.vue_vue_type_script_setup_true_lang.js +15 -9
- package/lib/components/icon/Icon.vue.d.ts +9 -0
- package/lib/components/icon/Icon.vue_vue_type_script_setup_true_lang.js +6 -3
- package/lib/components/image/Image.vue.d.ts +12 -3
- package/lib/components/image/Image.vue_vue_type_script_setup_true_lang.js +5 -1
- package/lib/components/index.js +18 -18
- package/lib/components/input/Input.vue.d.ts +291 -66
- package/lib/components/input/Input.vue_vue_type_script_setup_true_lang.js +53 -15
- package/lib/components/inputFooter/InputFooter.vue.d.ts +48 -12
- package/lib/components/inputFooter/InputFooter.vue_vue_type_script_setup_true_lang.js +18 -5
- package/lib/components/inputGroup/InputGroup.vue.d.ts +171 -39
- package/lib/components/inputGroup/InputGroup.vue_vue_type_script_setup_true_lang.js +6 -1
- package/lib/components/label/Label.vue.d.ts +78 -18
- package/lib/components/label/Label.vue_vue_type_script_setup_true_lang.js +28 -8
- package/lib/components/link/Link.js +2 -2
- package/lib/components/link/Link.vue.d.ts +18 -3
- package/lib/components/link/Link.vue_vue_type_script_setup_true_lang.js +10 -5
- package/lib/components/loader/Loader.vue.d.ts +30 -6
- package/lib/components/loader/Loader.vue_vue_type_script_setup_true_lang.js +11 -3
- package/lib/components/menu/Menu.vue.d.ts +51 -9
- package/lib/components/menu/Menu.vue_vue_type_script_setup_true_lang.js +24 -8
- package/lib/components/menu/MenuItem.js +2 -2
- package/lib/components/menu/MenuItem.vue.d.ts +198 -45
- package/lib/components/menu/MenuItem.vue_vue_type_script_setup_true_lang.js +84 -23
- package/lib/components/menu/{MenuItem.vue_vue_type_style_index_0_scoped_2a6b7341_lang.module.js → MenuItem.vue_vue_type_style_index_0_scoped_5aebaff3_lang.module.js} +1 -1
- package/lib/components/modal/Modal.vue.d.ts +177 -39
- package/lib/components/modal/Modal.vue_vue_type_script_setup_true_lang.js +104 -23
- package/lib/components/notifications/Notifications.vue.d.ts +24 -0
- package/lib/components/notifications/Notifications.vue_vue_type_script_setup_true_lang.js +39 -12
- package/lib/components/pagination/Pagination.vue.d.ts +12 -0
- package/lib/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js +8 -4
- package/lib/components/pagination/PaginationItem.vue.d.ts +18 -3
- package/lib/components/pagination/PaginationItem.vue_vue_type_script_setup_true_lang.js +8 -3
- package/lib/components/popover/Popover.vue.d.ts +204 -45
- package/lib/components/popover/Popover.vue_vue_type_script_setup_true_lang.js +157 -66
- package/lib/components/popover/PopoverContainer.vue.d.ts +3 -0
- package/lib/components/popover/PopoverContainer.vue_vue_type_script_setup_true_lang.js +3 -1
- package/lib/components/popover/PopoverContentBoundary.js +5 -0
- package/lib/components/popover/PopoverContentBoundary.vue.d.ts +9 -0
- package/lib/components/popover/PopoverContentBoundary.vue_vue_type_script_setup_true_lang.js +18 -0
- package/lib/components/popover/theme/PopoverContainer.base.theme.js +1 -1
- package/lib/components/progress/Progress.vue.d.ts +9 -0
- package/lib/components/progress/Progress.vue_vue_type_script_setup_true_lang.js +7 -4
- package/lib/components/qrCode/QrCode.vue.d.ts +24 -3
- package/lib/components/qrCode/QrCode.vue_vue_type_script_setup_true_lang.js +13 -5
- package/lib/components/radio/Radio.vue.d.ts +186 -42
- package/lib/components/radio/Radio.vue_vue_type_script_setup_true_lang.js +10 -2
- package/lib/components/radioButton/RadioButton.vue.d.ts +186 -42
- package/lib/components/radioButton/RadioButton.vue_vue_type_script_setup_true_lang.js +9 -1
- package/lib/components/scroll/Scroll.vue.d.ts +3 -0
- package/lib/components/scroll/Scroll.vue_vue_type_script_setup_true_lang.js +9 -4
- package/lib/components/select/Select.vue.d.ts +633 -144
- package/lib/components/select/Select.vue_vue_type_script_setup_true_lang.js +224 -189
- package/lib/components/skeleton/Skeleton.vue.d.ts +6 -0
- package/lib/components/skeleton/Skeleton.vue_vue_type_script_setup_true_lang.js +5 -2
- package/lib/components/slider/Slider.js +1 -1
- package/lib/components/slider/Slider.vue.d.ts +180 -39
- package/lib/components/slider/Slider.vue_vue_type_script_setup_true_lang.js +14 -3
- package/lib/components/spinner/Spinner.vue.d.ts +6 -0
- package/lib/components/spinner/Spinner.vue_vue_type_script_setup_true_lang.js +3 -1
- package/lib/components/stepper/Stepper.vue.d.ts +120 -24
- package/lib/components/stepper/Stepper.vue_vue_type_script_setup_true_lang.js +63 -15
- package/lib/components/tab/Tab.vue.d.ts +112 -31
- package/lib/components/tab/Tab.vue_vue_type_script_setup_true_lang.js +166 -95
- package/lib/components/tab/TabGroup.vue.d.ts +47 -12
- package/lib/components/tab/TabGroup.vue_vue_type_script_setup_true_lang.js +93 -49
- package/lib/components/tab/theme/Tab.base.theme.js +6 -6
- package/lib/components/tab/theme/Tab.carbon.theme.js +6 -6
- package/lib/components/tab/theme/TabGroup.base.theme.js +7 -7
- package/lib/components/tab/theme/TabGroup.carbon.theme.js +3 -3
- package/lib/components/table/Table.vue.d.ts +45 -9
- package/lib/components/table/Table.vue_vue_type_script_setup_true_lang.js +82 -27
- package/lib/components/table/TableCell.vue.d.ts +54 -12
- package/lib/components/table/TableCell.vue_vue_type_script_setup_true_lang.js +23 -8
- package/lib/components/table/TableHead.vue_vue_type_script_setup_true_lang.js +2 -1
- package/lib/components/table/TableHeader.vue.d.ts +18 -3
- package/lib/components/table/TableHeader.vue_vue_type_script_setup_true_lang.js +10 -4
- package/lib/components/table/TableRow.vue.d.ts +15 -3
- package/lib/components/table/TableRow.vue_vue_type_script_setup_true_lang.js +10 -5
- package/lib/components/tag/Tag.vue.d.ts +33 -6
- package/lib/components/tag/Tag.vue_vue_type_script_setup_true_lang.js +21 -7
- package/lib/components/textarea/Textarea.vue.d.ts +237 -54
- package/lib/components/textarea/Textarea.vue_vue_type_script_setup_true_lang.js +38 -13
- package/lib/components/themeProvider/ThemeProvider.vue.d.ts +10 -4
- package/lib/components/themeProvider/ThemeProvider.vue_vue_type_script_setup_true_lang.js +6 -1
- package/lib/components/toggle/Toggle.vue.d.ts +174 -39
- package/lib/components/toggle/Toggle.vue_vue_type_script_setup_true_lang.js +5 -1
- package/lib/components/tooltip/ToggleTip.vue.d.ts +24 -6
- package/lib/components/tooltip/ToggleTip.vue_vue_type_script_setup_true_lang.js +9 -2
- package/lib/components/tooltip/Tooltip.vue.d.ts +30 -6
- package/lib/components/tooltip/Tooltip.vue_vue_type_script_setup_true_lang.js +16 -4
- package/lib/components/upload/Upload.vue.d.ts +249 -57
- package/lib/components/upload/Upload.vue_vue_type_script_setup_true_lang.js +156 -125
- package/lib/components/upload/fileAccept.d.ts +6 -0
- package/lib/components/upload/fileAccept.js +17 -0
- package/lib/composables/useColors.d.ts +1 -0
- package/lib/composables/useColors.js +2 -1
- package/lib/composables/useCommon.d.ts +1 -0
- package/lib/composables/useCommon.js +2 -1
- package/lib/composables/useFocusTrap.js +1 -1
- package/lib/composables/useInputtable.d.ts +45 -10
- package/lib/composables/useInputtable.js +56 -14
- package/lib/composables/useInteractive.d.ts +13 -3
- package/lib/composables/useInteractive.js +14 -4
- package/lib/index.js +12 -12
- package/lib/index.umd.js +9 -10
- package/lib/themes/base/styles.d.ts +1 -1
- package/lib/themes/base/styles.js +1 -1
- package/lib/themes/carbon/styles.d.ts +1 -1
- package/lib/themes/carbon/styles.js +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/virtual/components/infiniteLoader/InfiniteLoader.vue.d.ts +27 -16
- package/lib/virtual/components/infiniteLoader/InfiniteLoader.vue_vue_type_script_setup_true_lang.js +25 -5
- package/lib/virtual/components/virtualGrid/VirtualGrid.vue.d.ts +108 -86
- package/lib/virtual/components/virtualGrid/VirtualGrid.vue_vue_type_script_setup_true_lang.js +91 -21
- package/lib/virtual/components/virtualList/VirtualList.vue.d.ts +62 -48
- package/lib/virtual/components/virtualList/VirtualList.vue_vue_type_script_setup_true_lang.js +64 -13
- package/lib/virtual/components/virtualList/useDynamicRowHeight.js +4 -3
- package/package.json +5 -3
- package/src/common/buttonGroupRadius.ts +16 -0
- package/src/common/props.ts +10 -9
- package/src/components/accordion/Accordion.vue +20 -4
- package/src/components/accordion/AccordionItem.vue +28 -3
- package/src/components/alert/Alert.vue +22 -6
- package/src/components/avatar/Avatar.vue +20 -5
- package/src/components/badge/Badge.vue +24 -5
- package/src/components/breadcrumbs/Breadcrumbs.vue +15 -5
- package/src/components/button/Button.vue +140 -5
- package/src/components/button/ButtonGroup.vue +41 -25
- package/src/components/button/__tests__/ Button.spec.ts +41 -0
- package/src/components/button/__tests__/ ButtonGroup.spec.ts +32 -0
- package/src/components/button/theme/Button.base.theme.ts +4 -1
- package/src/components/button/theme/Button.carbon.theme.ts +5 -4
- package/src/components/card/Card.vue +10 -2
- package/src/components/carousel/Carousel.vue +22 -2
- package/src/components/carousel/CarouselSlide.vue +6 -0
- package/src/components/checkbox/Checkbox.vue +22 -3
- package/src/components/container/Container.vue +10 -1
- package/src/components/datepicker/Datepicker.vue +466 -101
- package/src/components/datepicker/__tests__/Datepicker.spec.ts +31 -0
- package/src/components/divider/Divider.vue +9 -3
- package/src/components/drawer/Drawer.vue +27 -2
- package/src/components/empty/Empty.vue +18 -3
- package/src/components/form/Form.vue +32 -3
- package/src/components/formGroup/FormGroup.vue +12 -0
- package/src/components/icon/Icon.vue +4 -1
- package/src/components/image/Image.vue +8 -2
- package/src/components/input/Input.vue +54 -12
- package/src/components/inputFooter/InputFooter.vue +21 -6
- package/src/components/inputGroup/InputGroup.vue +12 -1
- package/src/components/label/Label.vue +31 -7
- package/src/components/link/Link.vue +16 -5
- package/src/components/loader/Loader.vue +10 -2
- package/src/components/menu/Menu.vue +23 -5
- package/src/components/menu/MenuItem.vue +78 -17
- package/src/components/modal/Modal.vue +90 -15
- package/src/components/notifications/Notifications.vue +23 -0
- package/src/components/notifications/__tests__/Notifications.spec.ts +44 -4
- package/src/components/pagination/Pagination.vue +9 -1
- package/src/components/pagination/PaginationItem.vue +11 -2
- package/src/components/popover/Popover.vue +113 -18
- package/src/components/popover/PopoverContainer.vue +9 -1
- package/src/components/popover/PopoverContentBoundary.vue +32 -0
- package/src/components/popover/__tests__/Popover.spec.ts +51 -0
- package/src/components/popover/theme/PopoverContainer.base.theme.ts +1 -1
- package/src/components/progress/Progress.vue +8 -3
- package/src/components/qrCode/QrCode.vue +9 -1
- package/src/components/radio/Radio.vue +16 -2
- package/src/components/radioButton/RadioButton.vue +15 -1
- package/src/components/scroll/Scroll.vue +15 -4
- package/src/components/select/Select.vue +53 -16
- package/src/components/skeleton/Skeleton.vue +3 -0
- package/src/components/slider/Slider.vue +15 -0
- package/src/components/spinner/Spinner.vue +2 -0
- package/src/components/stepper/Stepper.vue +57 -9
- package/src/components/tab/Tab.vue +153 -63
- package/src/components/tab/TabGroup.vue +110 -26
- package/src/components/tab/__tests__/Tab.spec.ts +53 -0
- package/src/components/tab/__tests__/TabGroup.spec.ts +113 -0
- package/src/components/tab/theme/Tab.base.theme.ts +24 -2
- package/src/components/tab/theme/Tab.carbon.theme.ts +30 -7
- package/src/components/tab/theme/TabGroup.base.theme.ts +12 -9
- package/src/components/tab/theme/TabGroup.carbon.theme.ts +6 -2
- package/src/components/table/Table.vue +76 -19
- package/src/components/table/TableCell.vue +25 -6
- package/src/components/table/TableHead.vue +9 -2
- package/src/components/table/TableHeader.vue +16 -3
- package/src/components/table/TableRow.vue +17 -5
- package/src/components/tag/Tag.vue +22 -6
- package/src/components/textarea/Textarea.vue +40 -11
- package/src/components/themeProvider/ThemeProvider.vue +22 -7
- package/src/components/toggle/Toggle.vue +9 -1
- package/src/components/tooltip/ToggleTip.vue +12 -3
- package/src/components/tooltip/Tooltip.vue +19 -3
- package/src/components/upload/Upload.vue +46 -16
- package/src/components/upload/__tests__/fileAccept.spec.ts +39 -0
- package/src/components/upload/fileAccept.ts +29 -0
- package/src/composables/useColors.ts +1 -0
- package/src/composables/useCommon.ts +1 -0
- package/src/composables/useFocusTrap.ts +3 -1
- package/src/composables/useInputtable.ts +66 -10
- package/src/composables/useInteractive.ts +13 -3
- package/src/themes/base/styles.ts +2 -3
- package/src/themes/carbon/styles.ts +2 -3
- package/src/version.ts +1 -1
- package/src/virtual/components/infiniteLoader/InfiniteLoader.vue +33 -1
- package/src/virtual/components/virtualGrid/VirtualGrid.vue +104 -10
- package/src/virtual/components/virtualList/VirtualList.vue +73 -8
- package/src/virtual/components/virtualList/useDynamicRowHeight.ts +9 -2
- package/volar.d.ts +3 -0
- package/docs/layouts/simple.vue +0 -5
- package/lib/components/button/ButtonGroup.vue_vue_type_style_index_0_lang.module.js +0 -7
- /package/lib/components/button/{Button.vue_vue_type_style_index_0_scoped_4402fde2_lang.module.js → Button.vue_vue_type_style_index_0_scoped_486cb9c0_lang.module.js} +0 -0
- /package/lib/components/link/{Link.vue_vue_type_style_index_0_scoped_8e0e4d08_lang.module.js → Link.vue_vue_type_style_index_0_scoped_3ee61e03_lang.module.js} +0 -0
|
@@ -1,55 +1,63 @@
|
|
|
1
|
-
import { type CSSProperties } from 'vue';
|
|
1
|
+
import { type CSSProperties, type PropType } from 'vue';
|
|
2
2
|
import type { Align } from '../../types';
|
|
3
3
|
import type { DynamicRowHeight } from './types';
|
|
4
4
|
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
5
|
-
tag: {
|
|
6
|
-
type: import("vue").PropType<keyof HTMLElementTagNameMap>;
|
|
7
|
-
default: string;
|
|
8
|
-
};
|
|
9
5
|
class: {
|
|
10
|
-
type:
|
|
6
|
+
type: StringConstructor;
|
|
7
|
+
description: string;
|
|
11
8
|
};
|
|
12
|
-
|
|
13
|
-
type:
|
|
9
|
+
defaultHeight: {
|
|
10
|
+
type: NumberConstructor;
|
|
11
|
+
default: number;
|
|
12
|
+
description: string;
|
|
14
13
|
};
|
|
15
14
|
onResize: {
|
|
16
|
-
type:
|
|
15
|
+
type: PropType<(size: {
|
|
17
16
|
height: number;
|
|
18
17
|
width: number;
|
|
19
18
|
}, prevSize: {
|
|
20
19
|
height: number;
|
|
21
20
|
width: number;
|
|
22
21
|
}) => void>;
|
|
23
|
-
|
|
24
|
-
rowCount: {
|
|
25
|
-
type: import("vue").PropType<number>;
|
|
26
|
-
required: true;
|
|
22
|
+
description: string;
|
|
27
23
|
};
|
|
28
24
|
onRowsRendered: {
|
|
29
|
-
type:
|
|
25
|
+
type: PropType<(visibleRows: {
|
|
30
26
|
startIndex: number;
|
|
31
27
|
stopIndex: number;
|
|
32
28
|
}, allRows: {
|
|
33
29
|
startIndex: number;
|
|
34
30
|
stopIndex: number;
|
|
35
31
|
}) => void>;
|
|
32
|
+
description: string;
|
|
36
33
|
};
|
|
37
34
|
overscanCount: {
|
|
38
|
-
type:
|
|
35
|
+
type: NumberConstructor;
|
|
39
36
|
default: number;
|
|
37
|
+
description: string;
|
|
40
38
|
};
|
|
41
|
-
|
|
42
|
-
type:
|
|
43
|
-
|
|
39
|
+
rowCount: {
|
|
40
|
+
type: NumberConstructor;
|
|
41
|
+
required: boolean;
|
|
42
|
+
description: string;
|
|
44
43
|
};
|
|
45
44
|
rowHeight: {
|
|
46
|
-
type:
|
|
47
|
-
required:
|
|
45
|
+
type: PropType<string | number | DynamicRowHeight | ((index: number, cellProps: Record<string, unknown>) => number)>;
|
|
46
|
+
required: boolean;
|
|
47
|
+
description: string;
|
|
48
48
|
};
|
|
49
49
|
rowProps: {
|
|
50
|
-
type:
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
type: PropType<Record<string, unknown>>;
|
|
51
|
+
description: string;
|
|
52
|
+
};
|
|
53
|
+
style: {
|
|
54
|
+
type: PropType<CSSProperties>;
|
|
55
|
+
description: string;
|
|
56
|
+
};
|
|
57
|
+
tag: {
|
|
58
|
+
type: PropType<keyof HTMLElementTagNameMap>;
|
|
59
|
+
default: string;
|
|
60
|
+
description: string;
|
|
53
61
|
};
|
|
54
62
|
}>, {
|
|
55
63
|
element: HTMLDivElement | null;
|
|
@@ -59,54 +67,62 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
|
|
|
59
67
|
index: number;
|
|
60
68
|
}): void;
|
|
61
69
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
62
|
-
tag: {
|
|
63
|
-
type: import("vue").PropType<keyof HTMLElementTagNameMap>;
|
|
64
|
-
default: string;
|
|
65
|
-
};
|
|
66
70
|
class: {
|
|
67
|
-
type:
|
|
71
|
+
type: StringConstructor;
|
|
72
|
+
description: string;
|
|
68
73
|
};
|
|
69
|
-
|
|
70
|
-
type:
|
|
74
|
+
defaultHeight: {
|
|
75
|
+
type: NumberConstructor;
|
|
76
|
+
default: number;
|
|
77
|
+
description: string;
|
|
71
78
|
};
|
|
72
79
|
onResize: {
|
|
73
|
-
type:
|
|
80
|
+
type: PropType<(size: {
|
|
74
81
|
height: number;
|
|
75
82
|
width: number;
|
|
76
83
|
}, prevSize: {
|
|
77
84
|
height: number;
|
|
78
85
|
width: number;
|
|
79
86
|
}) => void>;
|
|
80
|
-
|
|
81
|
-
rowCount: {
|
|
82
|
-
type: import("vue").PropType<number>;
|
|
83
|
-
required: true;
|
|
87
|
+
description: string;
|
|
84
88
|
};
|
|
85
89
|
onRowsRendered: {
|
|
86
|
-
type:
|
|
90
|
+
type: PropType<(visibleRows: {
|
|
87
91
|
startIndex: number;
|
|
88
92
|
stopIndex: number;
|
|
89
93
|
}, allRows: {
|
|
90
94
|
startIndex: number;
|
|
91
95
|
stopIndex: number;
|
|
92
96
|
}) => void>;
|
|
97
|
+
description: string;
|
|
93
98
|
};
|
|
94
99
|
overscanCount: {
|
|
95
|
-
type:
|
|
100
|
+
type: NumberConstructor;
|
|
96
101
|
default: number;
|
|
102
|
+
description: string;
|
|
97
103
|
};
|
|
98
|
-
|
|
99
|
-
type:
|
|
100
|
-
|
|
104
|
+
rowCount: {
|
|
105
|
+
type: NumberConstructor;
|
|
106
|
+
required: boolean;
|
|
107
|
+
description: string;
|
|
101
108
|
};
|
|
102
109
|
rowHeight: {
|
|
103
|
-
type:
|
|
104
|
-
required:
|
|
110
|
+
type: PropType<string | number | DynamicRowHeight | ((index: number, cellProps: Record<string, unknown>) => number)>;
|
|
111
|
+
required: boolean;
|
|
112
|
+
description: string;
|
|
105
113
|
};
|
|
106
114
|
rowProps: {
|
|
107
|
-
type:
|
|
108
|
-
|
|
109
|
-
|
|
115
|
+
type: PropType<Record<string, unknown>>;
|
|
116
|
+
description: string;
|
|
117
|
+
};
|
|
118
|
+
style: {
|
|
119
|
+
type: PropType<CSSProperties>;
|
|
120
|
+
description: string;
|
|
121
|
+
};
|
|
122
|
+
tag: {
|
|
123
|
+
type: PropType<keyof HTMLElementTagNameMap>;
|
|
124
|
+
default: string;
|
|
125
|
+
description: string;
|
|
110
126
|
};
|
|
111
127
|
}>> & Readonly<{}>, {
|
|
112
128
|
tag: keyof HTMLElementTagNameMap;
|
|
@@ -121,9 +137,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
|
|
|
121
137
|
'aria-setsize': number;
|
|
122
138
|
role: 'listitem';
|
|
123
139
|
};
|
|
124
|
-
props:
|
|
125
|
-
[x: string]: unknown;
|
|
126
|
-
} & Record<string, unknown>;
|
|
140
|
+
props: Record<string, unknown>;
|
|
127
141
|
}): any;
|
|
128
142
|
default?(_: {}): any;
|
|
129
143
|
}>;
|
package/lib/virtual/components/virtualList/VirtualList.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -2,19 +2,70 @@ import { useVirtualizer as e } from "../../core/useVirtualizer.js";
|
|
|
2
2
|
import { isDynamicRowHeight as t } from "./isDynamicRowHeight.js";
|
|
3
3
|
import { DATA_ATTRIBUTE_LIST_INDEX as n } from "./useDynamicRowHeight.js";
|
|
4
4
|
import { Fragment as r, computed as i, createBlock as a, createElementBlock as o, createElementVNode as s, defineComponent as c, normalizeClass as l, normalizeStyle as u, openBlock as d, ref as f, renderList as p, renderSlot as m, resolveDynamicComponent as h, unref as g, watch as _, withCtx as v } from "vue";
|
|
5
|
+
//#region src/virtual/components/virtualList/VirtualList.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var y = /* @__PURE__ */ c({
|
|
6
7
|
name: "XVirtualList",
|
|
8
|
+
docs: {
|
|
9
|
+
slots: {
|
|
10
|
+
row: "Render a single row. Receives index, style, ariaAttributes, and props.",
|
|
11
|
+
default: "Optional content rendered after the virtualized rows."
|
|
12
|
+
},
|
|
13
|
+
methods: {
|
|
14
|
+
scrollToRow: "Scroll so the given row index is visible.",
|
|
15
|
+
element: "Root HTML element when mounted, otherwise null."
|
|
16
|
+
}
|
|
17
|
+
},
|
|
7
18
|
props: {
|
|
8
|
-
class: {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
class: {
|
|
20
|
+
type: String,
|
|
21
|
+
description: "CSS class name on the root element."
|
|
22
|
+
},
|
|
23
|
+
defaultHeight: {
|
|
24
|
+
type: Number,
|
|
25
|
+
default: 0,
|
|
26
|
+
description: "Initial list height before measure; important for SSR."
|
|
27
|
+
},
|
|
28
|
+
onResize: {
|
|
29
|
+
type: Function,
|
|
30
|
+
description: "Called when the list root resizes."
|
|
31
|
+
},
|
|
32
|
+
onRowsRendered: {
|
|
33
|
+
type: Function,
|
|
34
|
+
description: "Called when the visible or overscan row range changes."
|
|
35
|
+
},
|
|
36
|
+
overscanCount: {
|
|
37
|
+
type: Number,
|
|
38
|
+
default: 3,
|
|
39
|
+
description: "Extra rows rendered outside the visible area to reduce scroll flicker."
|
|
40
|
+
},
|
|
41
|
+
rowCount: {
|
|
42
|
+
type: Number,
|
|
43
|
+
required: !0,
|
|
44
|
+
description: "Total number of rows in the list."
|
|
45
|
+
},
|
|
46
|
+
rowHeight: {
|
|
47
|
+
type: [
|
|
48
|
+
Number,
|
|
49
|
+
String,
|
|
50
|
+
Function,
|
|
51
|
+
Object
|
|
52
|
+
],
|
|
53
|
+
required: !0,
|
|
54
|
+
description: "Row height as px, percent string, function, or `useDynamicRowHeight` cache."
|
|
55
|
+
},
|
|
56
|
+
rowProps: {
|
|
57
|
+
type: Object,
|
|
58
|
+
description: "Extra props passed to the row slot as `props`."
|
|
59
|
+
},
|
|
60
|
+
style: {
|
|
61
|
+
type: Object,
|
|
62
|
+
description: "Inline styles; the list fills the height defined here."
|
|
63
|
+
},
|
|
64
|
+
tag: {
|
|
65
|
+
type: String,
|
|
66
|
+
default: "div",
|
|
67
|
+
description: "Root element tag."
|
|
68
|
+
}
|
|
18
69
|
},
|
|
19
70
|
setup(c, { expose: y }) {
|
|
20
71
|
let b = c, x = f(null), S = i(() => b.rowProps || {}), C = i(() => b.rowCount), w = i(() => t(b.rowHeight)), T = i(() => {
|
|
@@ -32,7 +83,7 @@ var y = /* @__PURE__ */ c({
|
|
|
32
83
|
itemProps: S,
|
|
33
84
|
itemSize: T,
|
|
34
85
|
onResize: b.onResize,
|
|
35
|
-
overscanCount: b.overscanCount
|
|
86
|
+
overscanCount: b.overscanCount ?? 3
|
|
36
87
|
});
|
|
37
88
|
y({
|
|
38
89
|
get element() {
|
|
@@ -100,7 +151,7 @@ var y = /* @__PURE__ */ c({
|
|
|
100
151
|
}
|
|
101
152
|
return e;
|
|
102
153
|
});
|
|
103
|
-
return (e, t) => (d(), a(h(
|
|
154
|
+
return (e, t) => (d(), a(h(e.tag), {
|
|
104
155
|
ref_key: "element",
|
|
105
156
|
ref: x,
|
|
106
157
|
class: l(e.$props.class),
|
|
@@ -109,7 +160,7 @@ var y = /* @__PURE__ */ c({
|
|
|
109
160
|
maxHeight: "100%",
|
|
110
161
|
flexGrow: 1,
|
|
111
162
|
overflowY: "auto",
|
|
112
|
-
...
|
|
163
|
+
...e.style
|
|
113
164
|
}),
|
|
114
165
|
role: "list"
|
|
115
166
|
}, {
|
|
@@ -21,7 +21,7 @@ function o({ defaultRowHeight: o, key: s }) {
|
|
|
21
21
|
if (c.value.get(e) === t) return;
|
|
22
22
|
let n = new Map(c.value);
|
|
23
23
|
n.set(e, t), c.value = n, l.value++;
|
|
24
|
-
}, p = new ResizeObserver((t) => {
|
|
24
|
+
}, p = typeof ResizeObserver < "u" ? new ResizeObserver((t) => {
|
|
25
25
|
if (t.length === 0) return;
|
|
26
26
|
let n = !1, r = [];
|
|
27
27
|
if (t.forEach((t) => {
|
|
@@ -38,15 +38,16 @@ function o({ defaultRowHeight: o, key: s }) {
|
|
|
38
38
|
e.set(t, n);
|
|
39
39
|
}), c.value = e, l.value++;
|
|
40
40
|
}
|
|
41
|
-
});
|
|
41
|
+
}) : null;
|
|
42
42
|
function m() {
|
|
43
|
-
p
|
|
43
|
+
p?.disconnect();
|
|
44
44
|
}
|
|
45
45
|
return t() && n(m), {
|
|
46
46
|
getAverageRowHeight: u,
|
|
47
47
|
getRowHeight: d,
|
|
48
48
|
setRowHeight: f,
|
|
49
49
|
observeRowElements: (e) => {
|
|
50
|
+
if (!p) return () => {};
|
|
50
51
|
let t = Array.isArray(e) ? e : Array.from(e);
|
|
51
52
|
return t.forEach((e) => p.observe(e)), () => {
|
|
52
53
|
t.forEach((e) => p.unobserve(e));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@indielayer/ui",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Indielayer UI Components with Tailwind CSS build for Vue 3",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "João Teixeira",
|
|
@@ -71,8 +71,10 @@
|
|
|
71
71
|
"rollup-plugin-visualizer": "^5.9.2",
|
|
72
72
|
"shiki": "^4.1.0",
|
|
73
73
|
"tailwindcss": "^4.3.0",
|
|
74
|
+
"tslib": "^2.8.1",
|
|
74
75
|
"typescript": "^5.2.2",
|
|
75
76
|
"vite": "^8.0.14",
|
|
77
|
+
"vite-ssg": "^28.3.0",
|
|
76
78
|
"vitest": "^4.1.7",
|
|
77
79
|
"vue": "^3.5.18",
|
|
78
80
|
"vue-router": "^4.2.2",
|
|
@@ -98,7 +100,7 @@
|
|
|
98
100
|
"scripts": {
|
|
99
101
|
"dev": "vite dev --mode docs --open",
|
|
100
102
|
"build": "pnpm generate && vite build",
|
|
101
|
-
"build:docs": "pnpm build --mode docs",
|
|
103
|
+
"build:docs": "pnpm generate && vite-ssg build --mode docs",
|
|
102
104
|
"build:prod": "pnpm build && pnpm gen:types",
|
|
103
105
|
"build:watch": "pnpm generate && vite build --watch",
|
|
104
106
|
"build:only": "vite build",
|
|
@@ -113,6 +115,6 @@
|
|
|
113
115
|
"test": "pnpm test:unit",
|
|
114
116
|
"test:ci": "vitest run --environment jsdom",
|
|
115
117
|
"test:unit": "vitest --environment jsdom",
|
|
116
|
-
"typecheck": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false"
|
|
118
|
+
"typecheck": "pnpm generate && vue-tsc --noEmit -p tsconfig.vitest.json --composite false"
|
|
117
119
|
}
|
|
118
120
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { InputGroupPosition } from './inputGroupRadius'
|
|
2
|
+
|
|
3
|
+
export type ButtonGroupPosition = InputGroupPosition
|
|
4
|
+
|
|
5
|
+
export function buttonGroupRadiusClasses(
|
|
6
|
+
position?: ButtonGroupPosition | null,
|
|
7
|
+
pill = false,
|
|
8
|
+
) {
|
|
9
|
+
if (!position) return []
|
|
10
|
+
|
|
11
|
+
if (position === 'only') return [pill ? 'rounded-full' : 'rounded-md']
|
|
12
|
+
if (position === 'first') return [pill ? 'rounded-s-full' : 'rounded-s-md']
|
|
13
|
+
if (position === 'last') return [pill ? 'rounded-e-full' : 'rounded-e-md']
|
|
14
|
+
|
|
15
|
+
return ['rounded-none']
|
|
16
|
+
}
|
package/src/common/props.ts
CHANGED
|
@@ -15,20 +15,21 @@ import type { Prop } from 'vue'
|
|
|
15
15
|
* Plain `Boolean` props are cast to `false` when absent in Vue 3.
|
|
16
16
|
* @see https://vuejs.org/guide/components/props.html#boolean-casting
|
|
17
17
|
*/
|
|
18
|
-
export function optionalBooleanProp(): Prop<boolean | undefined> {
|
|
18
|
+
export function optionalBooleanProp(description?: string): Prop<boolean | undefined> {
|
|
19
19
|
return {
|
|
20
20
|
type: Boolean,
|
|
21
21
|
default: undefined,
|
|
22
|
-
|
|
22
|
+
...(description ? { description } : {}),
|
|
23
|
+
} as Prop<boolean | undefined>
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
/** Shared variant booleans for Button and ButtonGroup. */
|
|
26
27
|
export const variantBooleanProps = () => ({
|
|
27
|
-
outlined: optionalBooleanProp(),
|
|
28
|
-
rounded: optionalBooleanProp(),
|
|
29
|
-
glow: optionalBooleanProp(),
|
|
30
|
-
ghost: optionalBooleanProp(),
|
|
31
|
-
light: optionalBooleanProp(),
|
|
32
|
-
flat: optionalBooleanProp(),
|
|
33
|
-
block: optionalBooleanProp(),
|
|
28
|
+
outlined: optionalBooleanProp('Outline style with a transparent fill.'),
|
|
29
|
+
rounded: optionalBooleanProp('Fully rounded corners (pill shape).'),
|
|
30
|
+
glow: optionalBooleanProp('Soft colored glow behind the control.'),
|
|
31
|
+
ghost: optionalBooleanProp('Minimal style with no background until hover.'),
|
|
32
|
+
light: optionalBooleanProp('Tinted background using the color at low opacity.'),
|
|
33
|
+
flat: optionalBooleanProp('Removes elevation and border emphasis.'),
|
|
34
|
+
block: optionalBooleanProp('Stretches to the full width of the parent.'),
|
|
34
35
|
})
|
|
@@ -5,15 +5,26 @@ const accordionProps = {
|
|
|
5
5
|
tag: {
|
|
6
6
|
type: String,
|
|
7
7
|
default: 'div',
|
|
8
|
+
description: 'Root element tag.',
|
|
8
9
|
},
|
|
9
|
-
disabled:
|
|
10
|
-
|
|
10
|
+
disabled: {
|
|
11
|
+
type: Boolean,
|
|
12
|
+
description: 'Disables all accordion items when set.',
|
|
13
|
+
},
|
|
14
|
+
expanded: optionalBooleanProp('Default expanded state passed to child items.'),
|
|
11
15
|
showIcon: {
|
|
12
16
|
type: Boolean,
|
|
13
17
|
default: true,
|
|
18
|
+
description: 'Shows the expand/collapse icon on child items.',
|
|
19
|
+
},
|
|
20
|
+
icon: {
|
|
21
|
+
type: String,
|
|
22
|
+
description: 'Default expand/collapse icon name for child items.',
|
|
23
|
+
},
|
|
24
|
+
iconAlign: {
|
|
25
|
+
type: String as PropType<AccordionItemAlign>,
|
|
26
|
+
description: 'Default icon alignment for child items (left or right).',
|
|
14
27
|
},
|
|
15
|
-
icon: String,
|
|
16
|
-
iconAlign: String as PropType<AccordionItemAlign>,
|
|
17
28
|
}
|
|
18
29
|
|
|
19
30
|
export type AccordionProps = ExtractPublicPropTypes<typeof accordionProps>
|
|
@@ -28,6 +39,11 @@ export interface AccordionTheme extends ThemeComponent<AccordionProps, InternalC
|
|
|
28
39
|
export default {
|
|
29
40
|
name: 'XAccordion',
|
|
30
41
|
validators: {},
|
|
42
|
+
docs: {
|
|
43
|
+
slots: {
|
|
44
|
+
default: 'Accordion items (typically x-accordion-item children).',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
31
47
|
}
|
|
32
48
|
</script>
|
|
33
49
|
|
|
@@ -6,17 +6,26 @@ const accordionItemProps = {
|
|
|
6
6
|
tag: {
|
|
7
7
|
type: String,
|
|
8
8
|
default: 'div',
|
|
9
|
+
description: 'Root element tag.',
|
|
9
10
|
},
|
|
10
|
-
disabled:
|
|
11
|
-
|
|
11
|
+
disabled: {
|
|
12
|
+
type: Boolean,
|
|
13
|
+
description: 'Prevents expanding and collapsing.',
|
|
14
|
+
},
|
|
15
|
+
expanded: optionalBooleanProp('Whether the item content starts expanded.'),
|
|
12
16
|
showIcon: {
|
|
13
17
|
type: Boolean,
|
|
14
18
|
default: true,
|
|
19
|
+
description: 'Shows the expand/collapse icon.',
|
|
20
|
+
},
|
|
21
|
+
icon: {
|
|
22
|
+
type: String,
|
|
23
|
+
description: 'Custom expand/collapse icon name. Falls back to a chevron.',
|
|
15
24
|
},
|
|
16
|
-
icon: String,
|
|
17
25
|
iconAlign: {
|
|
18
26
|
type: String as PropType<AccordionItemAlign>,
|
|
19
27
|
default: 'right',
|
|
28
|
+
description: 'Icon placement relative to the header (left or right).',
|
|
20
29
|
},
|
|
21
30
|
}
|
|
22
31
|
|
|
@@ -35,6 +44,22 @@ export default {
|
|
|
35
44
|
validators: {
|
|
36
45
|
iconAlign: accordionItemAlign,
|
|
37
46
|
},
|
|
47
|
+
docs: {
|
|
48
|
+
slots: {
|
|
49
|
+
default: 'Header label. Slot props: expand, collapsed.',
|
|
50
|
+
summary: 'Optional summary below the header. Slot props: expand, collapsed.',
|
|
51
|
+
content: 'Collapsible body. Slot props: expand, collapsed.',
|
|
52
|
+
},
|
|
53
|
+
emits: {
|
|
54
|
+
expand: 'Emitted when expand() is called from a slot.',
|
|
55
|
+
change: 'Emitted when expanded state changes. Payload is the new expanded boolean.',
|
|
56
|
+
},
|
|
57
|
+
methods: {
|
|
58
|
+
toggle: 'Toggle expanded state when not disabled.',
|
|
59
|
+
open: 'Expand the item. Pass false to skip animation.',
|
|
60
|
+
close: 'Collapse the item. Pass false to skip animation.',
|
|
61
|
+
},
|
|
62
|
+
},
|
|
38
63
|
}
|
|
39
64
|
</script>
|
|
40
65
|
|
|
@@ -4,12 +4,18 @@ import { optionalBooleanProp } from '../../common/props'
|
|
|
4
4
|
const alertType = ['info', 'success', 'error', 'warning'] as const
|
|
5
5
|
const alertProps = {
|
|
6
6
|
...useColors.props(),
|
|
7
|
-
type:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
type: {
|
|
8
|
+
type: String as PropType<AlertType>,
|
|
9
|
+
description: 'Semantic alert type (info, success, error, warning). Controls the default icon.',
|
|
10
|
+
},
|
|
11
|
+
glow: optionalBooleanProp('Soft colored glow behind the alert.'),
|
|
12
|
+
light: optionalBooleanProp('Tinted background using the color at low opacity.'),
|
|
13
|
+
outlined: optionalBooleanProp('Outline style with a transparent fill.'),
|
|
14
|
+
removable: optionalBooleanProp('Shows a close control that emits `remove`.'),
|
|
15
|
+
closeLabel: {
|
|
16
|
+
type: String,
|
|
17
|
+
description: 'Accessible label for the remove button.',
|
|
18
|
+
},
|
|
13
19
|
}
|
|
14
20
|
|
|
15
21
|
export type AlertType = typeof alertType[number]
|
|
@@ -23,6 +29,16 @@ export default {
|
|
|
23
29
|
validators: {
|
|
24
30
|
type: alertType,
|
|
25
31
|
},
|
|
32
|
+
docs: {
|
|
33
|
+
slots: {
|
|
34
|
+
default: 'Alert message content.',
|
|
35
|
+
icon: 'Custom icon; overrides the type-based icon.',
|
|
36
|
+
removeIcon: 'Custom icon for the remove button.',
|
|
37
|
+
},
|
|
38
|
+
emits: {
|
|
39
|
+
remove: 'Emitted when the remove button is clicked.',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
26
42
|
}
|
|
27
43
|
</script>
|
|
28
44
|
|
|
@@ -7,12 +7,22 @@ const avatarProps = {
|
|
|
7
7
|
tag: {
|
|
8
8
|
type: String,
|
|
9
9
|
default: 'div',
|
|
10
|
+
description: 'Root element tag.',
|
|
10
11
|
},
|
|
11
|
-
name:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
name: {
|
|
13
|
+
type: String,
|
|
14
|
+
description: 'Display name used to derive initials when no image is loaded.',
|
|
15
|
+
},
|
|
16
|
+
alt: {
|
|
17
|
+
type: String,
|
|
18
|
+
description: 'Alt text for the image when `image` is set.',
|
|
19
|
+
},
|
|
20
|
+
image: {
|
|
21
|
+
type: String,
|
|
22
|
+
description: 'Image URL. Falls back to initials or the avatar icon if unloadable.',
|
|
23
|
+
},
|
|
24
|
+
outlined: optionalBooleanProp('Outline style with a transparent fill.'),
|
|
25
|
+
rounded: optionalBooleanProp('Fully rounded corners (circle).'),
|
|
16
26
|
}
|
|
17
27
|
|
|
18
28
|
export type AvatarProps = ExtractPublicPropTypes<typeof avatarProps>
|
|
@@ -24,6 +34,11 @@ export interface AvatarTheme extends ThemeComponent<AvatarProps, InternalClasses
|
|
|
24
34
|
export default {
|
|
25
35
|
name: 'XAvatar',
|
|
26
36
|
validators: useCommon.validators(),
|
|
37
|
+
docs: {
|
|
38
|
+
slots: {
|
|
39
|
+
avatarIcon: 'Fallback icon when no name or image is available.',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
27
42
|
}
|
|
28
43
|
</script>
|
|
29
44
|
|
|
@@ -9,23 +9,36 @@ const badgeProps = {
|
|
|
9
9
|
tag: {
|
|
10
10
|
type: String,
|
|
11
11
|
default: 'div',
|
|
12
|
+
description: 'Root element tag.',
|
|
12
13
|
},
|
|
13
14
|
position: {
|
|
14
15
|
type: String as PropType<BadgePosition>,
|
|
15
16
|
default: 'top',
|
|
17
|
+
description: 'Vertical placement of the badge relative to the content (top, bottom).',
|
|
16
18
|
},
|
|
17
19
|
align: {
|
|
18
20
|
type: String as PropType<BadgeAlign>,
|
|
19
21
|
default: 'right',
|
|
22
|
+
description: 'Horizontal placement of the badge relative to the content (left, right).',
|
|
23
|
+
},
|
|
24
|
+
offsetX: {
|
|
25
|
+
type: [Number, String],
|
|
26
|
+
description: 'Horizontal offset in pixels from the aligned edge.',
|
|
27
|
+
},
|
|
28
|
+
offsetY: {
|
|
29
|
+
type: [Number, String],
|
|
30
|
+
description: 'Vertical offset in pixels from the positioned edge.',
|
|
31
|
+
},
|
|
32
|
+
animated: optionalBooleanProp('Adds a ping animation around the badge.'),
|
|
33
|
+
outlined: optionalBooleanProp('Adds a border around the badge.'),
|
|
34
|
+
icon: {
|
|
35
|
+
type: String,
|
|
36
|
+
description: 'Icon name for the badge indicator. Prefer the content slot for custom content.',
|
|
20
37
|
},
|
|
21
|
-
offsetX: [Number, String],
|
|
22
|
-
offsetY: [Number, String],
|
|
23
|
-
animated: optionalBooleanProp(),
|
|
24
|
-
outlined: optionalBooleanProp(),
|
|
25
|
-
icon: String,
|
|
26
38
|
show: {
|
|
27
39
|
type: Boolean,
|
|
28
40
|
default: true,
|
|
41
|
+
description: 'Controls whether the badge indicator is visible.',
|
|
29
42
|
},
|
|
30
43
|
}
|
|
31
44
|
|
|
@@ -43,6 +56,12 @@ export default {
|
|
|
43
56
|
position: badgePosition,
|
|
44
57
|
align: badgeAlign,
|
|
45
58
|
},
|
|
59
|
+
docs: {
|
|
60
|
+
slots: {
|
|
61
|
+
default: 'Content the badge is attached to.',
|
|
62
|
+
content: 'Badge label or custom indicator content.',
|
|
63
|
+
},
|
|
64
|
+
},
|
|
46
65
|
}
|
|
47
66
|
</script>
|
|
48
67
|
|
|
@@ -3,14 +3,21 @@ import { optionalBooleanProp } from '../../common/props'
|
|
|
3
3
|
|
|
4
4
|
const breadcrumbsProps = {
|
|
5
5
|
...useColors.props(),
|
|
6
|
-
items:
|
|
6
|
+
items: {
|
|
7
|
+
type: Array as PropType<BreadcrumbsItem[]>,
|
|
8
|
+
description: 'Breadcrumb items with label and optional to, href, icon, and style overrides.',
|
|
9
|
+
},
|
|
7
10
|
separator: {
|
|
8
11
|
type: String,
|
|
9
12
|
default: '/',
|
|
13
|
+
description: 'Text separator between items when `icon` is not set.',
|
|
14
|
+
},
|
|
15
|
+
icon: {
|
|
16
|
+
type: String,
|
|
17
|
+
description: 'Icon name used as the separator between items.',
|
|
10
18
|
},
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
underline: optionalBooleanProp(),
|
|
19
|
+
shadow: optionalBooleanProp('Applies the link shadow style to items.'),
|
|
20
|
+
underline: optionalBooleanProp('Underlines item links.'),
|
|
14
21
|
}
|
|
15
22
|
|
|
16
23
|
export type BreadcrumbsItem = {
|
|
@@ -27,7 +34,10 @@ export type BreadcrumbsProps = ExtractPublicPropTypes<typeof breadcrumbsProps>
|
|
|
27
34
|
type InternalClasses = 'wrapper' | 'item' | 'separator'
|
|
28
35
|
export interface BreadcrumbsTheme extends ThemeComponent<BreadcrumbsProps, InternalClasses> {}
|
|
29
36
|
|
|
30
|
-
export default {
|
|
37
|
+
export default {
|
|
38
|
+
name: 'XBreadcrumbs',
|
|
39
|
+
docs: {},
|
|
40
|
+
}
|
|
31
41
|
</script>
|
|
32
42
|
|
|
33
43
|
<script setup lang="ts">
|