@bitrix24/b24ui-nuxt 0.5.11 → 0.6.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/.nuxt/b24ui/advice.ts +10 -2
- package/.nuxt/b24ui/alert.ts +10 -2
- package/.nuxt/b24ui/avatar-group.ts +10 -2
- package/.nuxt/b24ui/avatar.ts +10 -2
- package/.nuxt/b24ui/badge.ts +10 -2
- package/.nuxt/b24ui/button-group.ts +10 -2
- package/.nuxt/b24ui/button.ts +16 -6
- package/.nuxt/b24ui/calendar.ts +10 -2
- package/.nuxt/b24ui/checkbox.ts +10 -2
- package/.nuxt/b24ui/chip.ts +10 -2
- package/.nuxt/b24ui/collapsible.ts +10 -2
- package/.nuxt/b24ui/container.ts +10 -2
- package/.nuxt/b24ui/countdown.ts +10 -2
- package/.nuxt/b24ui/description-list.ts +10 -2
- package/.nuxt/b24ui/dropdown-menu.ts +10 -2
- package/.nuxt/b24ui/form-field.ts +10 -2
- package/.nuxt/b24ui/form.ts +10 -2
- package/.nuxt/b24ui/input-menu.ts +12 -4
- package/.nuxt/b24ui/input-number.ts +10 -2
- package/.nuxt/b24ui/input.ts +10 -2
- package/.nuxt/b24ui/kbd.ts +10 -2
- package/.nuxt/b24ui/link.ts +10 -2
- package/.nuxt/b24ui/modal.ts +10 -2
- package/.nuxt/b24ui/navbar-divider.ts +10 -2
- package/.nuxt/b24ui/navbar-section.ts +10 -2
- package/.nuxt/b24ui/navbar-spacer.ts +10 -2
- package/.nuxt/b24ui/navbar.ts +10 -2
- package/.nuxt/b24ui/navigation-menu.ts +10 -2
- package/.nuxt/b24ui/popover.ts +10 -2
- package/.nuxt/b24ui/progress.ts +10 -2
- package/.nuxt/b24ui/radio-group.ts +10 -2
- package/.nuxt/b24ui/range.ts +10 -2
- package/.nuxt/b24ui/select-menu.ts +14 -6
- package/.nuxt/b24ui/select.ts +12 -4
- package/.nuxt/b24ui/separator.ts +10 -2
- package/.nuxt/b24ui/sidebar-body.ts +10 -2
- package/.nuxt/b24ui/sidebar-footer.ts +10 -2
- package/.nuxt/b24ui/sidebar-header.ts +10 -2
- package/.nuxt/b24ui/sidebar-heading.ts +10 -2
- package/.nuxt/b24ui/sidebar-layout.ts +10 -2
- package/.nuxt/b24ui/sidebar-section.ts +10 -2
- package/.nuxt/b24ui/sidebar-spacer.ts +10 -2
- package/.nuxt/b24ui/sidebar.ts +10 -2
- package/.nuxt/b24ui/skeleton.ts +10 -2
- package/.nuxt/b24ui/slideover.ts +10 -2
- package/.nuxt/b24ui/stacked-layout.ts +10 -2
- package/.nuxt/b24ui/switch.ts +10 -2
- package/.nuxt/b24ui/tabs.ts +10 -2
- package/.nuxt/b24ui/textarea.ts +10 -2
- package/.nuxt/b24ui/toast.ts +10 -2
- package/.nuxt/b24ui/toaster.ts +10 -2
- package/.nuxt/b24ui/tooltip.ts +10 -2
- package/cli/templates.mjs +19 -15
- package/dist/meta.d.mts +5675 -7513
- package/dist/meta.mjs +5675 -7513
- package/dist/module.json +3 -3
- package/dist/module.mjs +2 -2
- package/dist/runtime/components/Advice.vue +27 -55
- package/dist/runtime/components/Advice.vue.d.ts +56 -0
- package/dist/runtime/components/Alert.vue +35 -97
- package/dist/runtime/components/Alert.vue.d.ts +97 -0
- package/dist/runtime/components/App.vue +24 -34
- package/dist/runtime/components/App.vue.d.ts +23 -0
- package/dist/runtime/components/Avatar.vue +43 -82
- package/dist/runtime/components/Avatar.vue.d.ts +62 -0
- package/dist/runtime/components/AvatarGroup.vue +40 -77
- package/dist/runtime/components/AvatarGroup.vue.d.ts +40 -0
- package/dist/runtime/components/Badge.vue +40 -84
- package/dist/runtime/components/Badge.vue.d.ts +78 -0
- package/dist/runtime/components/Button.vue +107 -164
- package/dist/runtime/components/Button.vue.d.ts +115 -0
- package/dist/runtime/components/ButtonGroup.vue +25 -52
- package/dist/runtime/components/ButtonGroup.vue.d.ts +63 -0
- package/dist/runtime/components/Calendar.vue +73 -153
- package/dist/runtime/components/Calendar.vue.d.ts +107 -0
- package/dist/runtime/components/Checkbox.vue +42 -74
- package/dist/runtime/components/Checkbox.vue.d.ts +55 -0
- package/dist/runtime/components/Chip.vue +26 -75
- package/dist/runtime/components/Chip.vue.d.ts +77 -0
- package/dist/runtime/components/Collapsible.vue +22 -41
- package/dist/runtime/components/Collapsible.vue.d.ts +50 -0
- package/dist/runtime/components/Container.vue +15 -28
- package/dist/runtime/components/Container.vue.d.ts +27 -0
- package/dist/runtime/components/Countdown.vue +153 -379
- package/dist/runtime/components/Countdown.vue.d.ts +122 -0
- package/dist/runtime/components/DescriptionList.vue +78 -150
- package/dist/runtime/components/DescriptionList.vue.d.ts +109 -0
- package/dist/runtime/components/DropdownMenu.vue +38 -140
- package/dist/runtime/components/DropdownMenu.vue.d.ts +133 -0
- package/dist/runtime/components/DropdownMenuContent.vue +65 -79
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +51 -0
- package/dist/runtime/components/Form.vue +132 -218
- package/dist/runtime/components/Form.vue.d.ts +55 -0
- package/dist/runtime/components/FormField.vue +36 -81
- package/dist/runtime/components/FormField.vue.d.ts +73 -0
- package/dist/runtime/components/Input.vue +79 -180
- package/dist/runtime/components/Input.vue.d.ts +135 -0
- package/dist/runtime/components/InputMenu.vue +185 -382
- package/dist/runtime/components/InputMenu.vue.d.ts +357 -0
- package/dist/runtime/components/InputNumber.vue +77 -176
- package/dist/runtime/components/InputNumber.vue.d.ts +238 -0
- package/dist/runtime/components/Kbd.vue +20 -46
- package/dist/runtime/components/Kbd.vue.d.ts +55 -0
- package/dist/runtime/components/Link.vue +99 -179
- package/dist/runtime/components/Link.vue.d.ts +129 -0
- package/dist/runtime/components/LinkBase.vue +33 -42
- package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
- package/dist/runtime/components/Modal.vue +48 -128
- package/dist/runtime/components/Modal.vue.d.ts +124 -0
- package/dist/runtime/components/ModalDialogClose.vue +5 -8
- package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
- package/dist/runtime/components/Navbar.vue +15 -33
- package/dist/runtime/components/Navbar.vue.d.ts +46 -0
- package/dist/runtime/components/NavbarDivider.vue +15 -33
- package/dist/runtime/components/NavbarDivider.vue.d.ts +46 -0
- package/dist/runtime/components/NavbarSection.vue +15 -33
- package/dist/runtime/components/NavbarSection.vue.d.ts +46 -0
- package/dist/runtime/components/NavbarSpacer.vue +15 -33
- package/dist/runtime/components/NavbarSpacer.vue.d.ts +46 -0
- package/dist/runtime/components/NavigationMenu.vue +74 -209
- package/dist/runtime/components/NavigationMenu.vue.d.ts +159 -0
- package/dist/runtime/components/OverlayProvider.vue +14 -18
- package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
- package/dist/runtime/components/Popover.vue +40 -82
- package/dist/runtime/components/Popover.vue.d.ts +79 -0
- package/dist/runtime/components/Progress.vue +70 -137
- package/dist/runtime/components/Progress.vue.d.ts +103 -0
- package/dist/runtime/components/RadioGroup.vue +59 -135
- package/dist/runtime/components/RadioGroup.vue.d.ts +88 -0
- package/dist/runtime/components/Range.vue +46 -86
- package/dist/runtime/components/Range.vue.d.ts +73 -0
- package/dist/runtime/components/Select.vue +110 -261
- package/dist/runtime/components/Select.vue.d.ts +170 -0
- package/dist/runtime/components/SelectMenu.vue +161 -348
- package/dist/runtime/components/SelectMenu.vue.d.ts +217 -0
- package/dist/runtime/components/Separator.vue +28 -72
- package/dist/runtime/components/Separator.vue.d.ts +77 -0
- package/dist/runtime/components/Sidebar.vue +15 -33
- package/dist/runtime/components/Sidebar.vue.d.ts +46 -0
- package/dist/runtime/components/SidebarBody.vue +17 -39
- package/dist/runtime/components/SidebarBody.vue.d.ts +53 -0
- package/dist/runtime/components/SidebarFooter.vue +15 -33
- package/dist/runtime/components/SidebarFooter.vue.d.ts +46 -0
- package/dist/runtime/components/SidebarHeader.vue +15 -33
- package/dist/runtime/components/SidebarHeader.vue.d.ts +46 -0
- package/dist/runtime/components/SidebarHeading.vue +15 -33
- package/dist/runtime/components/SidebarHeading.vue.d.ts +46 -0
- package/dist/runtime/components/SidebarLayout.vue +34 -71
- package/dist/runtime/components/SidebarLayout.vue.d.ts +65 -0
- package/dist/runtime/components/SidebarSection.vue +15 -33
- package/dist/runtime/components/SidebarSection.vue.d.ts +46 -0
- package/dist/runtime/components/SidebarSpacer.vue +15 -33
- package/dist/runtime/components/SidebarSpacer.vue.d.ts +46 -0
- package/dist/runtime/components/Skeleton.vue +14 -23
- package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
- package/dist/runtime/components/Slideover.vue +50 -132
- package/dist/runtime/components/Slideover.vue.d.ts +127 -0
- package/dist/runtime/components/StackedLayout.vue +34 -74
- package/dist/runtime/components/StackedLayout.vue.d.ts +65 -0
- package/dist/runtime/components/Switch.vue +46 -96
- package/dist/runtime/components/Switch.vue.d.ts +77 -0
- package/dist/runtime/components/Tabs.vue +41 -106
- package/dist/runtime/components/Tabs.vue.d.ts +104 -0
- package/dist/runtime/components/Textarea.vue +92 -202
- package/dist/runtime/components/Textarea.vue.d.ts +141 -0
- package/dist/runtime/components/Toast.vue +47 -106
- package/dist/runtime/components/Toast.vue.d.ts +95 -0
- package/dist/runtime/components/Toaster.vue +70 -116
- package/dist/runtime/components/Toaster.vue.d.ts +70 -0
- package/dist/runtime/components/Tooltip.vue +36 -65
- package/dist/runtime/components/Tooltip.vue.d.ts +65 -0
- package/dist/runtime/components/content/TableWrapper.vue +24 -71
- package/dist/runtime/components/content/TableWrapper.vue.d.ts +83 -0
- package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
- package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
- package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
- package/dist/runtime/composables/useFormField.d.ts +2 -2
- package/dist/runtime/composables/useOverlay.d.ts +14 -7
- package/dist/runtime/composables/useOverlay.js +14 -6
- package/dist/runtime/prose/A.vue +16 -26
- package/dist/runtime/prose/A.vue.d.ts +27 -0
- package/dist/runtime/prose/Blockquote.vue +14 -26
- package/dist/runtime/prose/Blockquote.vue.d.ts +27 -0
- package/dist/runtime/prose/Code.vue +15 -32
- package/dist/runtime/prose/Code.vue.d.ts +31 -0
- package/dist/runtime/prose/Em.vue +16 -26
- package/dist/runtime/prose/Em.vue.d.ts +27 -0
- package/dist/runtime/prose/H1.vue +14 -26
- package/dist/runtime/prose/H1.vue.d.ts +27 -0
- package/dist/runtime/prose/H2.vue +14 -26
- package/dist/runtime/prose/H2.vue.d.ts +27 -0
- package/dist/runtime/prose/H3.vue +14 -26
- package/dist/runtime/prose/H3.vue.d.ts +27 -0
- package/dist/runtime/prose/H4.vue +14 -26
- package/dist/runtime/prose/H4.vue.d.ts +27 -0
- package/dist/runtime/prose/H5.vue +14 -26
- package/dist/runtime/prose/H5.vue.d.ts +27 -0
- package/dist/runtime/prose/H6.vue +14 -26
- package/dist/runtime/prose/H6.vue.d.ts +27 -0
- package/dist/runtime/prose/Hr.vue +13 -22
- package/dist/runtime/prose/Hr.vue.d.ts +19 -0
- package/dist/runtime/prose/Img.vue +13 -26
- package/dist/runtime/prose/Img.vue.d.ts +19 -0
- package/dist/runtime/prose/Li.vue +14 -26
- package/dist/runtime/prose/Li.vue.d.ts +27 -0
- package/dist/runtime/prose/Ol.vue +14 -26
- package/dist/runtime/prose/Ol.vue.d.ts +27 -0
- package/dist/runtime/prose/P.vue +14 -26
- package/dist/runtime/prose/P.vue.d.ts +27 -0
- package/dist/runtime/prose/Pre.vue +17 -33
- package/dist/runtime/prose/Pre.vue.d.ts +47 -0
- package/dist/runtime/prose/Strong.vue +14 -26
- package/dist/runtime/prose/Strong.vue.d.ts +27 -0
- package/dist/runtime/prose/Table.vue +21 -57
- package/dist/runtime/prose/Table.vue.d.ts +74 -0
- package/dist/runtime/prose/Tbody.vue +14 -26
- package/dist/runtime/prose/Tbody.vue.d.ts +27 -0
- package/dist/runtime/prose/Td.vue +14 -26
- package/dist/runtime/prose/Td.vue.d.ts +27 -0
- package/dist/runtime/prose/Th.vue +14 -26
- package/dist/runtime/prose/Th.vue.d.ts +27 -0
- package/dist/runtime/prose/Thead.vue +14 -26
- package/dist/runtime/prose/Thead.vue.d.ts +27 -0
- package/dist/runtime/prose/Tr.vue +14 -26
- package/dist/runtime/prose/Tr.vue.d.ts +27 -0
- package/dist/runtime/prose/Ul.vue +14 -26
- package/dist/runtime/prose/Ul.vue.d.ts +27 -0
- package/dist/runtime/types/form.d.ts +1 -0
- package/dist/runtime/types/utils.d.ts +42 -3
- package/dist/runtime/utils/link.d.ts +3 -3
- package/dist/runtime/utils/tv.js +2 -2
- package/dist/runtime/vue/components/Link.vue +122 -208
- package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
- package/dist/shared/{b24ui-nuxt.CS9Lf0os.mjs → b24ui-nuxt.wBs9vEU5.mjs} +33 -8
- package/dist/types.d.mts +3 -5
- package/dist/unplugin.mjs +1 -1
- package/dist/vite.mjs +1 -1
- package/package.json +19 -27
- package/dist/meta.cjs +0 -72112
- package/dist/meta.d.cts +0 -72110
- package/dist/meta.d.ts +0 -72110
- package/dist/module.cjs +0 -63
- package/dist/module.d.cts +0 -15
- package/dist/module.d.ts +0 -15
- package/dist/shared/b24ui-nuxt.DrKwIWoc.cjs +0 -7721
- package/dist/types.d.ts +0 -7
- package/dist/unplugin.cjs +0 -236
- package/dist/unplugin.d.cts +0 -33
- package/dist/unplugin.d.ts +0 -33
- package/dist/vite.cjs +0 -21
- package/dist/vite.d.cts +0 -14
- package/dist/vite.d.ts +0 -14
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { ToastRootProps, ToastRootEmits } from 'reka-ui';
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
3
|
+
import theme from '#build/b24ui/toast';
|
|
4
|
+
import type { AvatarProps, ButtonProps, IconComponent } from '../types';
|
|
5
|
+
import type { StringOrVNode, ComponentConfig } from '../types/utils';
|
|
6
|
+
type Toast = ComponentConfig<typeof theme, AppConfig, 'toast'>;
|
|
7
|
+
export interface ToastProps extends Pick<ToastRootProps, 'defaultOpen' | 'open' | 'type' | 'duration'> {
|
|
8
|
+
/**
|
|
9
|
+
* The element or component this component should render as.
|
|
10
|
+
* @defaultValue 'li'
|
|
11
|
+
*/
|
|
12
|
+
as?: any;
|
|
13
|
+
title?: StringOrVNode;
|
|
14
|
+
description?: StringOrVNode;
|
|
15
|
+
/**
|
|
16
|
+
* @IconComponent
|
|
17
|
+
*/
|
|
18
|
+
icon?: IconComponent;
|
|
19
|
+
avatar?: AvatarProps;
|
|
20
|
+
/**
|
|
21
|
+
* @defaultValue 'default'
|
|
22
|
+
*/
|
|
23
|
+
color?: Toast['variants']['color'];
|
|
24
|
+
/**
|
|
25
|
+
* The orientation between the content and the actions
|
|
26
|
+
* @defaultValue 'vertical'
|
|
27
|
+
*/
|
|
28
|
+
orientation?: Toast['variants']['orientation'];
|
|
29
|
+
/**
|
|
30
|
+
* Display a list of actions:
|
|
31
|
+
* - under the title and description when orientation is `vertical`
|
|
32
|
+
* - next to the close button when orientation is `horizontal`
|
|
33
|
+
* `{ size: 'xs' }`{lang="ts"}
|
|
34
|
+
*/
|
|
35
|
+
actions?: ButtonProps[];
|
|
36
|
+
/**
|
|
37
|
+
* Display a close button to dismiss the toast.
|
|
38
|
+
* `{ size: 'md', color: 'neutral', variant: 'link' }`{lang="ts"}
|
|
39
|
+
* @defaultValue true
|
|
40
|
+
*/
|
|
41
|
+
close?: boolean | Partial<ButtonProps>;
|
|
42
|
+
/**
|
|
43
|
+
* The icon displayed in the close button.
|
|
44
|
+
* @defaultValue icons.close
|
|
45
|
+
* @IconComponent
|
|
46
|
+
*/
|
|
47
|
+
closeIcon?: IconComponent;
|
|
48
|
+
class?: any;
|
|
49
|
+
b24ui?: Toast['slots'];
|
|
50
|
+
}
|
|
51
|
+
export interface ToastEmits extends ToastRootEmits {
|
|
52
|
+
}
|
|
53
|
+
export interface ToastSlots {
|
|
54
|
+
leading(props?: {}): any;
|
|
55
|
+
title(props?: {}): any;
|
|
56
|
+
description(props?: {}): any;
|
|
57
|
+
actions(props?: {}): any;
|
|
58
|
+
close(props: {
|
|
59
|
+
b24ui: {
|
|
60
|
+
[K in keyof Required<Toast['slots']>]: (props?: Record<string, any>) => string;
|
|
61
|
+
};
|
|
62
|
+
}): any;
|
|
63
|
+
}
|
|
64
|
+
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ToastProps>, {
|
|
65
|
+
close: boolean;
|
|
66
|
+
orientation: string;
|
|
67
|
+
}>>, {
|
|
68
|
+
height: import("vue").Ref<number, number>;
|
|
69
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, any, string, import("vue").PublicProps, any, {
|
|
70
|
+
close: boolean | Partial<ButtonProps>;
|
|
71
|
+
orientation: Toast["variants"]["orientation"];
|
|
72
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<ToastSlots> & ToastSlots>;
|
|
73
|
+
export default _default;
|
|
74
|
+
type __VLS_WithDefaults<P, D> = {
|
|
75
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
|
|
76
|
+
default: D[K];
|
|
77
|
+
}> : P[K];
|
|
78
|
+
};
|
|
79
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
80
|
+
type __VLS_TypePropsToOption<T> = {
|
|
81
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
82
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
83
|
+
} : {
|
|
84
|
+
type: import('vue').PropType<T[K]>;
|
|
85
|
+
required: true;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
89
|
+
new (): {
|
|
90
|
+
$slots: S;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
type __VLS_PrettifyLocal<T> = {
|
|
94
|
+
[K in keyof T]: T[K];
|
|
95
|
+
} & {};
|
|
@@ -1,114 +1,68 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import type { ToastProviderProps } from 'reka-ui'
|
|
4
|
-
import type { AppConfig } from '@nuxt/schema'
|
|
5
|
-
import _appConfig from '#build/app.config'
|
|
6
|
-
import theme from '#build/b24ui/toaster'
|
|
7
|
-
import { tv } from '../utils/tv'
|
|
8
|
-
|
|
9
|
-
const appConfigToaster = _appConfig as AppConfig & { b24ui: { toaster: Partial<typeof theme> } }
|
|
10
|
-
|
|
11
|
-
const toaster = tv({ extend: tv(theme), ...(appConfigToaster.b24ui?.toaster || {}) })
|
|
12
|
-
|
|
13
|
-
type ToasterVariants = VariantProps<typeof toaster>
|
|
14
|
-
|
|
15
|
-
export interface ToasterProps extends Omit<ToastProviderProps, 'swipeDirection'> {
|
|
16
|
-
/**
|
|
17
|
-
* The position on the screen to display the toasts.
|
|
18
|
-
* @defaultValue 'top-right'
|
|
19
|
-
*/
|
|
20
|
-
position?: ToasterVariants['position']
|
|
21
|
-
/**
|
|
22
|
-
* Expand the toasts to show multiple toasts at once.
|
|
23
|
-
* @defaultValue true
|
|
24
|
-
*/
|
|
25
|
-
expand?: boolean
|
|
26
|
-
/**
|
|
27
|
-
* Render the toaster in a portal.
|
|
28
|
-
* @defaultValue true
|
|
29
|
-
*/
|
|
30
|
-
portal?: boolean
|
|
31
|
-
/**
|
|
32
|
-
* @defaultValue 5000
|
|
33
|
-
*/
|
|
34
|
-
duration?: number
|
|
35
|
-
class?: any
|
|
36
|
-
b24ui?: Partial<typeof toaster.slots>
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export interface ToasterSlots {
|
|
40
|
-
default(props?: {}): any
|
|
41
|
-
}
|
|
42
|
-
|
|
1
|
+
<script>
|
|
2
|
+
import theme from "#build/b24ui/toaster";
|
|
43
3
|
export default {
|
|
44
|
-
name:
|
|
45
|
-
}
|
|
4
|
+
name: "Toaster"
|
|
5
|
+
};
|
|
46
6
|
</script>
|
|
47
7
|
|
|
48
|
-
<script setup
|
|
49
|
-
import { ref, computed } from
|
|
50
|
-
import { ToastProvider, ToastViewport, ToastPortal, useForwardProps } from
|
|
51
|
-
import { reactivePick } from
|
|
52
|
-
import {
|
|
53
|
-
import
|
|
54
|
-
import { omit } from
|
|
55
|
-
import
|
|
56
|
-
|
|
57
|
-
const props =
|
|
58
|
-
position:
|
|
59
|
-
expand: true,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
|
|
8
|
+
<script setup>
|
|
9
|
+
import { ref, computed } from "vue";
|
|
10
|
+
import { ToastProvider, ToastViewport, ToastPortal, useForwardProps } from "reka-ui";
|
|
11
|
+
import { reactivePick } from "@vueuse/core";
|
|
12
|
+
import { useAppConfig } from "#imports";
|
|
13
|
+
import { useToast } from "../composables/useToast";
|
|
14
|
+
import { omit } from "../utils";
|
|
15
|
+
import { tv } from "../utils/tv";
|
|
16
|
+
import B24Toast from "./Toast.vue";
|
|
17
|
+
const props = defineProps({
|
|
18
|
+
position: { type: null, required: false, default: "top-right" },
|
|
19
|
+
expand: { type: Boolean, required: false, default: true },
|
|
20
|
+
portal: { type: Boolean, required: false, default: true },
|
|
21
|
+
duration: { type: Number, required: false, default: 5e3 },
|
|
22
|
+
class: { type: null, required: false },
|
|
23
|
+
b24ui: { type: null, required: false },
|
|
24
|
+
label: { type: String, required: false },
|
|
25
|
+
swipeThreshold: { type: Number, required: false }
|
|
26
|
+
});
|
|
27
|
+
defineSlots();
|
|
28
|
+
const { toasts, remove } = useToast();
|
|
29
|
+
const appConfig = useAppConfig();
|
|
30
|
+
const providerProps = useForwardProps(reactivePick(props, "duration", "label", "swipeThreshold"));
|
|
31
|
+
const proxyToastProps = (toast) => {
|
|
32
|
+
return omit(toast, ["id", "close"]);
|
|
33
|
+
};
|
|
73
34
|
const swipeDirection = computed(() => {
|
|
74
35
|
switch (props.position) {
|
|
75
|
-
case
|
|
76
|
-
return
|
|
77
|
-
case
|
|
78
|
-
case
|
|
79
|
-
return
|
|
80
|
-
case
|
|
81
|
-
return
|
|
82
|
-
case
|
|
83
|
-
case
|
|
84
|
-
return
|
|
36
|
+
case "top-center":
|
|
37
|
+
return "up";
|
|
38
|
+
case "top-right":
|
|
39
|
+
case "bottom-right":
|
|
40
|
+
return "right";
|
|
41
|
+
case "bottom-center":
|
|
42
|
+
return "down";
|
|
43
|
+
case "top-left":
|
|
44
|
+
case "bottom-left":
|
|
45
|
+
return "left";
|
|
85
46
|
}
|
|
86
|
-
return
|
|
87
|
-
})
|
|
88
|
-
|
|
89
|
-
const b24ui = computed(() => toaster({
|
|
47
|
+
return "right";
|
|
48
|
+
});
|
|
49
|
+
const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.toaster || {} })({
|
|
90
50
|
position: props.position,
|
|
91
51
|
swipeDirection: swipeDirection.value
|
|
92
|
-
}))
|
|
93
|
-
|
|
94
|
-
function onUpdateOpen(value: boolean, id: string | number) {
|
|
52
|
+
}));
|
|
53
|
+
function onUpdateOpen(value, id) {
|
|
95
54
|
if (value) {
|
|
96
|
-
return
|
|
55
|
+
return;
|
|
97
56
|
}
|
|
98
|
-
|
|
99
|
-
remove(id)
|
|
57
|
+
remove(id);
|
|
100
58
|
}
|
|
101
|
-
|
|
102
|
-
const
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
const frontHeight = computed(() => refs.value[refs.value.length - 1]?.height || 0)
|
|
109
|
-
|
|
110
|
-
function getOffset(index: number) {
|
|
111
|
-
return refs.value.slice(index + 1).reduce((acc, { height }) => acc + height + 16, 0)
|
|
59
|
+
const hovered = ref(false);
|
|
60
|
+
const expanded = computed(() => props.expand || hovered.value);
|
|
61
|
+
const refs = ref([]);
|
|
62
|
+
const height = computed(() => refs.value.reduce((acc, { height: height2 }) => acc + height2 + 16, 0));
|
|
63
|
+
const frontHeight = computed(() => refs.value[refs.value.length - 1]?.height || 0);
|
|
64
|
+
function getOffset(index) {
|
|
65
|
+
return refs.value.slice(index + 1).reduce((acc, { height: height2 }) => acc + height2 + 16, 0);
|
|
112
66
|
}
|
|
113
67
|
</script>
|
|
114
68
|
|
|
@@ -121,20 +75,20 @@ function getOffset(index: number) {
|
|
|
121
75
|
:key="toast.id"
|
|
122
76
|
ref="refs"
|
|
123
77
|
v-bind="proxyToastProps(toast)"
|
|
124
|
-
:close="
|
|
78
|
+
:close="toast.close"
|
|
125
79
|
:data-expanded="expanded"
|
|
126
80
|
:data-front="!expanded && index === toasts.length - 1"
|
|
127
81
|
:style="{
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
82
|
+
'--index': index - toasts.length + toasts.length,
|
|
83
|
+
'--before': toasts.length - 1 - index,
|
|
84
|
+
'--offset': getOffset(index),
|
|
85
|
+
'--scale': expanded ? '1' : 'calc(1 - var(--before) * var(--scale-factor))',
|
|
86
|
+
'--translate': expanded ? 'calc(var(--offset) * var(--translate-factor))' : 'calc(var(--before) * var(--gap))',
|
|
87
|
+
'--transform': 'translateY(var(--translate)) scale(var(--scale))'
|
|
88
|
+
}"
|
|
135
89
|
:class="[b24ui.base(), {
|
|
136
|
-
|
|
137
|
-
|
|
90
|
+
'cursor-pointer': !!toast.onClick
|
|
91
|
+
}]"
|
|
138
92
|
@update:open="onUpdateOpen($event, toast.id)"
|
|
139
93
|
@click="toast.onClick && toast.onClick(toast)"
|
|
140
94
|
/>
|
|
@@ -144,12 +98,12 @@ function getOffset(index: number) {
|
|
|
144
98
|
:data-expanded="expanded"
|
|
145
99
|
:class="b24ui.viewport({ class: [props.class, props.b24ui?.viewport] })"
|
|
146
100
|
:style="{
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
101
|
+
'--scale-factor': '0.05',
|
|
102
|
+
'--translate-factor': position?.startsWith('top') ? '1px' : '-1px',
|
|
103
|
+
'--gap': position?.startsWith('top') ? '16px' : '-16px',
|
|
104
|
+
'--front-height': `${frontHeight}px`,
|
|
105
|
+
'--height': `${height}px`
|
|
106
|
+
}"
|
|
153
107
|
@mouseenter="hovered = true"
|
|
154
108
|
@mouseleave="hovered = false"
|
|
155
109
|
/>
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ToastProviderProps } from 'reka-ui';
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
3
|
+
import theme from '#build/b24ui/toaster';
|
|
4
|
+
import type { ComponentConfig } from '../types/utils';
|
|
5
|
+
type Toaster = ComponentConfig<typeof theme, AppConfig, 'toaster'>;
|
|
6
|
+
export interface ToasterProps extends Omit<ToastProviderProps, 'swipeDirection'> {
|
|
7
|
+
/**
|
|
8
|
+
* The position on the screen to display the toasts.
|
|
9
|
+
* @defaultValue 'top-right'
|
|
10
|
+
*/
|
|
11
|
+
position?: Toaster['variants']['position'];
|
|
12
|
+
/**
|
|
13
|
+
* Expand the toasts to show multiple toasts at once.
|
|
14
|
+
* @defaultValue true
|
|
15
|
+
*/
|
|
16
|
+
expand?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Render the toaster in a portal.
|
|
19
|
+
* @defaultValue true
|
|
20
|
+
*/
|
|
21
|
+
portal?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* @defaultValue 5000
|
|
24
|
+
*/
|
|
25
|
+
duration?: number;
|
|
26
|
+
class?: any;
|
|
27
|
+
b24ui?: Toaster['slots'];
|
|
28
|
+
}
|
|
29
|
+
export interface ToasterSlots {
|
|
30
|
+
default(props?: {}): any;
|
|
31
|
+
}
|
|
32
|
+
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ToasterProps>, {
|
|
33
|
+
position: "top-right";
|
|
34
|
+
expand: boolean;
|
|
35
|
+
duration: number;
|
|
36
|
+
portal: boolean;
|
|
37
|
+
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ToasterProps>, {
|
|
38
|
+
position: "top-right";
|
|
39
|
+
expand: boolean;
|
|
40
|
+
duration: number;
|
|
41
|
+
portal: boolean;
|
|
42
|
+
}>>> & Readonly<{}>, {
|
|
43
|
+
position: Toaster["variants"]["position"];
|
|
44
|
+
duration: number;
|
|
45
|
+
expand: boolean;
|
|
46
|
+
portal: boolean;
|
|
47
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<ToasterSlots> & ToasterSlots>;
|
|
48
|
+
export default _default;
|
|
49
|
+
type __VLS_WithDefaults<P, D> = {
|
|
50
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
|
|
51
|
+
default: D[K];
|
|
52
|
+
}> : P[K];
|
|
53
|
+
};
|
|
54
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
55
|
+
type __VLS_TypePropsToOption<T> = {
|
|
56
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
57
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
58
|
+
} : {
|
|
59
|
+
type: import('vue').PropType<T[K]>;
|
|
60
|
+
required: true;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
64
|
+
new (): {
|
|
65
|
+
$slots: S;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
type __VLS_PrettifyLocal<T> = {
|
|
69
|
+
[K in keyof T]: T[K];
|
|
70
|
+
} & {};
|
|
@@ -1,69 +1,40 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import type { AppConfig } from '@nuxt/schema'
|
|
4
|
-
import _appConfig from '#build/app.config'
|
|
5
|
-
import theme from '#build/b24ui/tooltip'
|
|
6
|
-
import { tv } from '../utils/tv'
|
|
7
|
-
import type { KbdProps } from '../types'
|
|
8
|
-
import type { EmitsToProps } from '../types/utils'
|
|
9
|
-
|
|
10
|
-
const appConfigTooltip = _appConfig as AppConfig & { b24ui: { tooltip: Partial<typeof theme> } }
|
|
11
|
-
|
|
12
|
-
const tooltip = tv({ extend: tv(theme), ...(appConfigTooltip.b24ui?.tooltip || {}) })
|
|
13
|
-
|
|
14
|
-
export interface TooltipProps extends TooltipRootProps {
|
|
15
|
-
/** The text content of the tooltip. */
|
|
16
|
-
text?: string
|
|
17
|
-
/** The keyboard keys to display in the tooltip. */
|
|
18
|
-
kbds?: KbdProps['value'][] | KbdProps[]
|
|
19
|
-
/**
|
|
20
|
-
* The content of the tooltip.
|
|
21
|
-
* @defaultValue { side: 'bottom', sideOffset: 8, collisionPadding: 8 }
|
|
22
|
-
*/
|
|
23
|
-
content?: Omit<TooltipContentProps, 'as' | 'asChild'> & Partial<EmitsToProps<TooltipContentEmits>>
|
|
24
|
-
/**
|
|
25
|
-
* Display an arrow alongside the tooltip.
|
|
26
|
-
* @defaultValue false
|
|
27
|
-
*/
|
|
28
|
-
arrow?: boolean | Omit<TooltipArrowProps, 'as' | 'asChild'>
|
|
29
|
-
/**
|
|
30
|
-
* Render the tooltip in a portal.
|
|
31
|
-
* @defaultValue true
|
|
32
|
-
*/
|
|
33
|
-
portal?: boolean
|
|
34
|
-
class?: any
|
|
35
|
-
b24ui?: Partial<typeof tooltip.slots>
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export interface TooltipEmits extends TooltipRootEmits {}
|
|
39
|
-
|
|
40
|
-
export interface TooltipSlots {
|
|
41
|
-
default(props: { open: boolean }): any
|
|
42
|
-
content(props?: {}): any
|
|
43
|
-
}
|
|
1
|
+
<script>
|
|
2
|
+
import theme from "#build/b24ui/tooltip";
|
|
44
3
|
</script>
|
|
45
4
|
|
|
46
|
-
<script setup
|
|
47
|
-
import { computed, toRef } from
|
|
48
|
-
import { defu } from
|
|
49
|
-
import { TooltipRoot, TooltipTrigger, TooltipPortal, TooltipContent, TooltipArrow, useForwardPropsEmits } from
|
|
50
|
-
import { reactivePick } from
|
|
51
|
-
import
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
5
|
+
<script setup>
|
|
6
|
+
import { computed, toRef } from "vue";
|
|
7
|
+
import { defu } from "defu";
|
|
8
|
+
import { TooltipRoot, TooltipTrigger, TooltipPortal, TooltipContent, TooltipArrow, useForwardPropsEmits } from "reka-ui";
|
|
9
|
+
import { reactivePick } from "@vueuse/core";
|
|
10
|
+
import { useAppConfig } from "#imports";
|
|
11
|
+
import { tv } from "../utils/tv";
|
|
12
|
+
import B24Kbd from "./Kbd.vue";
|
|
13
|
+
const props = defineProps({
|
|
14
|
+
text: { type: String, required: false },
|
|
15
|
+
kbds: { type: Array, required: false },
|
|
16
|
+
content: { type: Object, required: false },
|
|
17
|
+
arrow: { type: [Boolean, Object], required: false },
|
|
18
|
+
portal: { type: Boolean, required: false, default: true },
|
|
19
|
+
class: { type: null, required: false },
|
|
20
|
+
b24ui: { type: null, required: false },
|
|
21
|
+
defaultOpen: { type: Boolean, required: false },
|
|
22
|
+
open: { type: Boolean, required: false },
|
|
23
|
+
delayDuration: { type: Number, required: false },
|
|
24
|
+
disableHoverableContent: { type: Boolean, required: false },
|
|
25
|
+
disableClosingTrigger: { type: Boolean, required: false },
|
|
26
|
+
disabled: { type: Boolean, required: false },
|
|
27
|
+
ignoreNonKeyboardFocus: { type: Boolean, required: false }
|
|
28
|
+
});
|
|
29
|
+
const emits = defineEmits(["update:open"]);
|
|
30
|
+
const slots = defineSlots();
|
|
31
|
+
const appConfig = useAppConfig();
|
|
32
|
+
const rootProps = useForwardPropsEmits(reactivePick(props, "defaultOpen", "open", "delayDuration", "disableHoverableContent", "disableClosingTrigger", "disabled", "ignoreNonKeyboardFocus"), emits);
|
|
33
|
+
const contentProps = toRef(() => defu(props.content, { side: "bottom", sideOffset: 8, collisionPadding: 8 }));
|
|
34
|
+
const arrowProps = toRef(() => props.arrow);
|
|
35
|
+
const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.tooltip || {} })({
|
|
65
36
|
side: contentProps.value.side
|
|
66
|
-
}))
|
|
37
|
+
}));
|
|
67
38
|
</script>
|
|
68
39
|
|
|
69
40
|
<template>
|
|
@@ -81,8 +52,8 @@ const b24ui = computed(() => tooltip({
|
|
|
81
52
|
<B24Kbd
|
|
82
53
|
v-for="(kbd, index) in kbds"
|
|
83
54
|
:key="index"
|
|
84
|
-
:size="
|
|
85
|
-
:depth="
|
|
55
|
+
:size="props.b24ui?.kbdsSize || b24ui.kbdsSize()"
|
|
56
|
+
:depth="props.b24ui?.kbdsDepth || b24ui.kbdsDepth()"
|
|
86
57
|
v-bind="typeof kbd === 'string' ? { value: kbd } : kbd"
|
|
87
58
|
/>
|
|
88
59
|
</span>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { TooltipRootProps, TooltipRootEmits, TooltipContentProps, TooltipContentEmits, TooltipArrowProps } from 'reka-ui';
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
3
|
+
import theme from '#build/b24ui/tooltip';
|
|
4
|
+
import type { KbdProps } from '../types';
|
|
5
|
+
import type { EmitsToProps, ComponentConfig } from '../types/utils';
|
|
6
|
+
type Tooltip = ComponentConfig<typeof theme, AppConfig, 'tooltip'>;
|
|
7
|
+
export interface TooltipProps extends TooltipRootProps {
|
|
8
|
+
/** The text content of the tooltip. */
|
|
9
|
+
text?: string;
|
|
10
|
+
/** The keyboard keys to display in the tooltip. */
|
|
11
|
+
kbds?: KbdProps['value'][] | KbdProps[];
|
|
12
|
+
/**
|
|
13
|
+
* The content of the tooltip.
|
|
14
|
+
* @defaultValue { side: 'bottom', sideOffset: 8, collisionPadding: 8 }
|
|
15
|
+
*/
|
|
16
|
+
content?: Omit<TooltipContentProps, 'as' | 'asChild'> & Partial<EmitsToProps<TooltipContentEmits>>;
|
|
17
|
+
/**
|
|
18
|
+
* Display an arrow alongside the tooltip.
|
|
19
|
+
* @defaultValue false
|
|
20
|
+
*/
|
|
21
|
+
arrow?: boolean | Omit<TooltipArrowProps, 'as' | 'asChild'>;
|
|
22
|
+
/**
|
|
23
|
+
* Render the tooltip in a portal.
|
|
24
|
+
* @defaultValue true
|
|
25
|
+
*/
|
|
26
|
+
portal?: boolean;
|
|
27
|
+
class?: any;
|
|
28
|
+
b24ui?: Tooltip['slots'];
|
|
29
|
+
}
|
|
30
|
+
export interface TooltipEmits extends TooltipRootEmits {
|
|
31
|
+
}
|
|
32
|
+
export interface TooltipSlots {
|
|
33
|
+
default(props: {
|
|
34
|
+
open: boolean;
|
|
35
|
+
}): any;
|
|
36
|
+
content(props?: {}): any;
|
|
37
|
+
}
|
|
38
|
+
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<TooltipProps>, {
|
|
39
|
+
portal: boolean;
|
|
40
|
+
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, any, string, import("vue").PublicProps, any, {
|
|
41
|
+
portal: boolean;
|
|
42
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<TooltipSlots> & TooltipSlots>;
|
|
43
|
+
export default _default;
|
|
44
|
+
type __VLS_WithDefaults<P, D> = {
|
|
45
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
|
|
46
|
+
default: D[K];
|
|
47
|
+
}> : P[K];
|
|
48
|
+
};
|
|
49
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
50
|
+
type __VLS_TypePropsToOption<T> = {
|
|
51
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
52
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
53
|
+
} : {
|
|
54
|
+
type: import('vue').PropType<T[K]>;
|
|
55
|
+
required: true;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
59
|
+
new (): {
|
|
60
|
+
$slots: S;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
type __VLS_PrettifyLocal<T> = {
|
|
64
|
+
[K in keyof T]: T[K];
|
|
65
|
+
} & {};
|
|
@@ -1,75 +1,28 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import type { AppConfig } from '@nuxt/schema'
|
|
4
|
-
import _appConfig from '#build/app.config'
|
|
5
|
-
import theme from '#build/b24ui/content/table-wrapper'
|
|
6
|
-
import { tv } from '../../utils/tv'
|
|
7
|
-
|
|
8
|
-
const appConfigTableWrapper = _appConfig as AppConfig & { b24ui: { content: { tableWrapper: Partial<typeof theme> } } }
|
|
9
|
-
|
|
10
|
-
const tableWrapper = tv({ extend: tv(theme), ...(appConfigTableWrapper.b24ui?.content?.tableWrapper || {}) })
|
|
11
|
-
|
|
12
|
-
type TableWrapperVariants = VariantProps<typeof tableWrapper>
|
|
13
|
-
|
|
14
|
-
export interface TableWrapperProps {
|
|
15
|
-
/**
|
|
16
|
-
* The element or component this component should render as.
|
|
17
|
-
* @defaultValue 'div'
|
|
18
|
-
*/
|
|
19
|
-
as?: any
|
|
20
|
-
/**
|
|
21
|
-
* @defaultValue 'md'
|
|
22
|
-
*/
|
|
23
|
-
size?: TableWrapperVariants['size']
|
|
24
|
-
/**
|
|
25
|
-
* @defaultValue false
|
|
26
|
-
*/
|
|
27
|
-
rounded?: boolean
|
|
28
|
-
/**
|
|
29
|
-
* @defaultValue false
|
|
30
|
-
*/
|
|
31
|
-
zebra?: boolean
|
|
32
|
-
/**
|
|
33
|
-
* @defaultValue false
|
|
34
|
-
*/
|
|
35
|
-
pinRows?: boolean
|
|
36
|
-
/**
|
|
37
|
-
* @defaultValue false
|
|
38
|
-
*/
|
|
39
|
-
pinCols?: boolean
|
|
40
|
-
/**
|
|
41
|
-
* @defaultValue false
|
|
42
|
-
*/
|
|
43
|
-
rowHover?: boolean
|
|
44
|
-
/**
|
|
45
|
-
* @defaultValue false
|
|
46
|
-
*/
|
|
47
|
-
bordered?: boolean
|
|
48
|
-
/**
|
|
49
|
-
* @defaultValue true
|
|
50
|
-
*/
|
|
51
|
-
scrollbarThin?: boolean
|
|
52
|
-
class?: any
|
|
53
|
-
b24ui?: Partial<typeof tableWrapper.slots>
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export interface TableWrapperSlots {
|
|
57
|
-
default(props?: {}): any
|
|
58
|
-
}
|
|
1
|
+
<script>
|
|
2
|
+
import theme from "#build/b24ui/content/table-wrapper";
|
|
59
3
|
</script>
|
|
60
4
|
|
|
61
|
-
<script setup
|
|
62
|
-
import { computed } from
|
|
63
|
-
import { Primitive } from
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const props =
|
|
68
|
-
as:
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
|
|
5
|
+
<script setup>
|
|
6
|
+
import { computed } from "vue";
|
|
7
|
+
import { Primitive } from "reka-ui";
|
|
8
|
+
import { useAppConfig } from "#imports";
|
|
9
|
+
import { tv } from "../../utils/tv";
|
|
10
|
+
defineOptions({ inheritAttrs: false });
|
|
11
|
+
const props = defineProps({
|
|
12
|
+
as: { type: null, required: false, default: "div" },
|
|
13
|
+
size: { type: null, required: false },
|
|
14
|
+
rounded: { type: Boolean, required: false },
|
|
15
|
+
zebra: { type: Boolean, required: false },
|
|
16
|
+
pinRows: { type: Boolean, required: false },
|
|
17
|
+
pinCols: { type: Boolean, required: false },
|
|
18
|
+
rowHover: { type: Boolean, required: false },
|
|
19
|
+
bordered: { type: Boolean, required: false },
|
|
20
|
+
scrollbarThin: { type: Boolean, required: false, default: true },
|
|
21
|
+
class: { type: null, required: false },
|
|
22
|
+
b24ui: { type: null, required: false }
|
|
23
|
+
});
|
|
24
|
+
const appConfig = useAppConfig();
|
|
25
|
+
const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.content?.tableWrapper || {} })({
|
|
73
26
|
size: props.size,
|
|
74
27
|
rounded: Boolean(props.rounded),
|
|
75
28
|
zebra: Boolean(props.zebra),
|
|
@@ -78,7 +31,7 @@ const b24ui = computed(() => tableWrapper({
|
|
|
78
31
|
rowHover: Boolean(props.rowHover),
|
|
79
32
|
bordered: Boolean(props.bordered),
|
|
80
33
|
scrollbarThin: Boolean(props.scrollbarThin)
|
|
81
|
-
}))
|
|
34
|
+
}));
|
|
82
35
|
</script>
|
|
83
36
|
|
|
84
37
|
<template>
|