@bitrix24/b24ui-nuxt 0.5.11 → 0.6.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/.nuxt/b24ui/input-menu.ts +2 -2
- package/.nuxt/b24ui/select-menu.ts +4 -4
- package/.nuxt/b24ui/select.ts +2 -2
- package/dist/meta.d.mts +5208 -5061
- package/dist/meta.mjs +5208 -5061
- package/dist/module.json +3 -3
- package/dist/module.mjs +2 -2
- package/dist/runtime/components/Advice.vue +27 -54
- package/dist/runtime/components/Advice.vue.d.ts +170 -0
- package/dist/runtime/components/Alert.vue +35 -96
- package/dist/runtime/components/Alert.vue.d.ts +464 -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 -81
- package/dist/runtime/components/Avatar.vue.d.ts +281 -0
- package/dist/runtime/components/AvatarGroup.vue +40 -76
- package/dist/runtime/components/AvatarGroup.vue.d.ts +204 -0
- package/dist/runtime/components/Badge.vue +40 -83
- package/dist/runtime/components/Badge.vue.d.ts +517 -0
- package/dist/runtime/components/Button.vue +96 -155
- package/dist/runtime/components/Button.vue.d.ts +640 -0
- package/dist/runtime/components/ButtonGroup.vue +19 -51
- package/dist/runtime/components/ButtonGroup.vue.d.ts +116 -0
- package/dist/runtime/components/Calendar.vue +73 -152
- package/dist/runtime/components/Calendar.vue.d.ts +437 -0
- package/dist/runtime/components/Checkbox.vue +42 -73
- package/dist/runtime/components/Checkbox.vue.d.ts +354 -0
- package/dist/runtime/components/Chip.vue +26 -74
- package/dist/runtime/components/Chip.vue.d.ts +271 -0
- package/dist/runtime/components/Collapsible.vue +22 -41
- package/dist/runtime/components/Collapsible.vue.d.ts +118 -0
- package/dist/runtime/components/Container.vue +13 -27
- package/dist/runtime/components/Container.vue.d.ts +27 -0
- package/dist/runtime/components/Countdown.vue +153 -378
- package/dist/runtime/components/Countdown.vue.d.ts +356 -0
- package/dist/runtime/components/DescriptionList.vue +78 -149
- package/dist/runtime/components/DescriptionList.vue.d.ts +379 -0
- package/dist/runtime/components/DropdownMenu.vue +38 -139
- package/dist/runtime/components/DropdownMenu.vue.d.ts +533 -0
- package/dist/runtime/components/DropdownMenuContent.vue +68 -80
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +228 -0
- package/dist/runtime/components/Form.vue +130 -217
- package/dist/runtime/components/Form.vue.d.ts +55 -0
- package/dist/runtime/components/FormField.vue +36 -80
- package/dist/runtime/components/FormField.vue.d.ts +282 -0
- package/dist/runtime/components/Input.vue +79 -179
- package/dist/runtime/components/Input.vue.d.ts +755 -0
- package/dist/runtime/components/InputMenu.vue +185 -381
- package/dist/runtime/components/InputMenu.vue.d.ts +1523 -0
- package/dist/runtime/components/InputNumber.vue +77 -175
- package/dist/runtime/components/InputNumber.vue.d.ts +658 -0
- package/dist/runtime/components/Kbd.vue +18 -45
- package/dist/runtime/components/Kbd.vue.d.ts +109 -0
- package/dist/runtime/components/Link.vue +92 -173
- 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 -127
- package/dist/runtime/components/Modal.vue.d.ts +327 -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 +101 -0
- package/dist/runtime/components/NavbarDivider.vue +15 -33
- package/dist/runtime/components/NavbarDivider.vue.d.ts +101 -0
- package/dist/runtime/components/NavbarSection.vue +15 -33
- package/dist/runtime/components/NavbarSection.vue.d.ts +101 -0
- package/dist/runtime/components/NavbarSpacer.vue +15 -33
- package/dist/runtime/components/NavbarSpacer.vue.d.ts +101 -0
- package/dist/runtime/components/NavigationMenu.vue +74 -208
- package/dist/runtime/components/NavigationMenu.vue.d.ts +824 -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 -81
- package/dist/runtime/components/Popover.vue.d.ts +147 -0
- package/dist/runtime/components/Progress.vue +70 -136
- package/dist/runtime/components/Progress.vue.d.ts +592 -0
- package/dist/runtime/components/RadioGroup.vue +59 -134
- package/dist/runtime/components/RadioGroup.vue.d.ts +723 -0
- package/dist/runtime/components/Range.vue +46 -85
- package/dist/runtime/components/Range.vue.d.ts +417 -0
- package/dist/runtime/components/Select.vue +110 -260
- package/dist/runtime/components/Select.vue.d.ts +1201 -0
- package/dist/runtime/components/SelectMenu.vue +161 -347
- package/dist/runtime/components/SelectMenu.vue.d.ts +1298 -0
- package/dist/runtime/components/Separator.vue +28 -71
- package/dist/runtime/components/Separator.vue.d.ts +400 -0
- package/dist/runtime/components/Sidebar.vue +15 -33
- package/dist/runtime/components/Sidebar.vue.d.ts +101 -0
- package/dist/runtime/components/SidebarBody.vue +17 -38
- package/dist/runtime/components/SidebarBody.vue.d.ts +90 -0
- package/dist/runtime/components/SidebarFooter.vue +15 -33
- package/dist/runtime/components/SidebarFooter.vue.d.ts +101 -0
- package/dist/runtime/components/SidebarHeader.vue +15 -33
- package/dist/runtime/components/SidebarHeader.vue.d.ts +101 -0
- package/dist/runtime/components/SidebarHeading.vue +15 -33
- package/dist/runtime/components/SidebarHeading.vue.d.ts +101 -0
- package/dist/runtime/components/SidebarLayout.vue +34 -70
- package/dist/runtime/components/SidebarLayout.vue.d.ts +222 -0
- package/dist/runtime/components/SidebarSection.vue +15 -33
- package/dist/runtime/components/SidebarSection.vue.d.ts +101 -0
- package/dist/runtime/components/SidebarSpacer.vue +15 -33
- package/dist/runtime/components/SidebarSpacer.vue.d.ts +101 -0
- package/dist/runtime/components/Skeleton.vue +12 -22
- package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
- package/dist/runtime/components/Slideover.vue +50 -131
- package/dist/runtime/components/Slideover.vue.d.ts +360 -0
- package/dist/runtime/components/StackedLayout.vue +34 -73
- package/dist/runtime/components/StackedLayout.vue.d.ts +192 -0
- package/dist/runtime/components/Switch.vue +46 -95
- package/dist/runtime/components/Switch.vue.d.ts +587 -0
- package/dist/runtime/components/Tabs.vue +37 -105
- package/dist/runtime/components/Tabs.vue.d.ts +453 -0
- package/dist/runtime/components/Textarea.vue +92 -201
- package/dist/runtime/components/Textarea.vue.d.ts +601 -0
- package/dist/runtime/components/Toast.vue +47 -105
- package/dist/runtime/components/Toast.vue.d.ts +438 -0
- package/dist/runtime/components/Toaster.vue +70 -115
- package/dist/runtime/components/Toaster.vue.d.ts +219 -0
- package/dist/runtime/components/Tooltip.vue +36 -64
- package/dist/runtime/components/Tooltip.vue.d.ts +186 -0
- package/dist/runtime/components/content/TableWrapper.vue +24 -70
- package/dist/runtime/components/content/TableWrapper.vue.d.ts +237 -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 +12 -23
- package/dist/runtime/prose/A.vue.d.ts +84 -0
- package/dist/runtime/prose/Blockquote.vue +12 -23
- package/dist/runtime/prose/Blockquote.vue.d.ts +84 -0
- package/dist/runtime/prose/Code.vue +14 -31
- package/dist/runtime/prose/Code.vue.d.ts +97 -0
- package/dist/runtime/prose/Em.vue +12 -23
- package/dist/runtime/prose/Em.vue.d.ts +84 -0
- package/dist/runtime/prose/H1.vue +12 -23
- package/dist/runtime/prose/H1.vue.d.ts +97 -0
- package/dist/runtime/prose/H2.vue +12 -23
- package/dist/runtime/prose/H2.vue.d.ts +123 -0
- package/dist/runtime/prose/H3.vue +12 -23
- package/dist/runtime/prose/H3.vue.d.ts +123 -0
- package/dist/runtime/prose/H4.vue +12 -23
- package/dist/runtime/prose/H4.vue.d.ts +123 -0
- package/dist/runtime/prose/H5.vue +12 -23
- package/dist/runtime/prose/H5.vue.d.ts +123 -0
- package/dist/runtime/prose/H6.vue +12 -23
- package/dist/runtime/prose/H6.vue.d.ts +123 -0
- package/dist/runtime/prose/Hr.vue +12 -19
- package/dist/runtime/prose/Hr.vue.d.ts +74 -0
- package/dist/runtime/prose/Img.vue +12 -23
- package/dist/runtime/prose/Img.vue.d.ts +77 -0
- package/dist/runtime/prose/Li.vue +12 -23
- package/dist/runtime/prose/Li.vue.d.ts +84 -0
- package/dist/runtime/prose/Ol.vue +12 -23
- package/dist/runtime/prose/Ol.vue.d.ts +84 -0
- package/dist/runtime/prose/P.vue +12 -23
- package/dist/runtime/prose/P.vue.d.ts +84 -0
- package/dist/runtime/prose/Pre.vue +16 -33
- package/dist/runtime/prose/Pre.vue.d.ts +117 -0
- package/dist/runtime/prose/Strong.vue +12 -23
- package/dist/runtime/prose/Strong.vue.d.ts +84 -0
- package/dist/runtime/prose/Table.vue +19 -54
- package/dist/runtime/prose/Table.vue.d.ts +144 -0
- package/dist/runtime/prose/Tbody.vue +12 -23
- package/dist/runtime/prose/Tbody.vue.d.ts +84 -0
- package/dist/runtime/prose/Td.vue +12 -23
- package/dist/runtime/prose/Td.vue.d.ts +84 -0
- package/dist/runtime/prose/Th.vue +12 -23
- package/dist/runtime/prose/Th.vue.d.ts +84 -0
- package/dist/runtime/prose/Thead.vue +12 -23
- package/dist/runtime/prose/Thead.vue.d.ts +84 -0
- package/dist/runtime/prose/Tr.vue +12 -23
- package/dist/runtime/prose/Tr.vue.d.ts +84 -0
- package/dist/runtime/prose/Ul.vue +12 -23
- package/dist/runtime/prose/Ul.vue.d.ts +84 -0
- package/dist/runtime/utils/link.d.ts +3 -3
- package/dist/runtime/vue/components/Link.vue +115 -202
- package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
- package/dist/shared/{b24ui-nuxt.CS9Lf0os.mjs → b24ui-nuxt.BA6Y2FnC.mjs} +6 -6
- package/dist/types.d.mts +3 -5
- package/dist/unplugin.mjs +1 -1
- package/dist/vite.mjs +1 -1
- package/package.json +14 -22
- 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,116 @@
|
|
|
1
|
+
import type { VariantProps } from 'tailwind-variants';
|
|
2
|
+
declare const buttonGroup: import("tailwind-variants").TVReturnType<{
|
|
3
|
+
size: {
|
|
4
|
+
xs: string;
|
|
5
|
+
sm: string;
|
|
6
|
+
md: string;
|
|
7
|
+
lg: string;
|
|
8
|
+
};
|
|
9
|
+
orientation: {
|
|
10
|
+
horizontal: string;
|
|
11
|
+
vertical: string;
|
|
12
|
+
};
|
|
13
|
+
}, undefined, string, {
|
|
14
|
+
size: {
|
|
15
|
+
xs: string;
|
|
16
|
+
sm: string;
|
|
17
|
+
md: string;
|
|
18
|
+
lg: string;
|
|
19
|
+
};
|
|
20
|
+
orientation: {
|
|
21
|
+
horizontal: string;
|
|
22
|
+
vertical: string;
|
|
23
|
+
};
|
|
24
|
+
}, undefined, import("tailwind-variants").TVReturnType<{
|
|
25
|
+
size: {
|
|
26
|
+
xs: string;
|
|
27
|
+
sm: string;
|
|
28
|
+
md: string;
|
|
29
|
+
lg: string;
|
|
30
|
+
};
|
|
31
|
+
orientation: {
|
|
32
|
+
horizontal: string;
|
|
33
|
+
vertical: string;
|
|
34
|
+
};
|
|
35
|
+
}, undefined, string, {
|
|
36
|
+
size: {
|
|
37
|
+
xs: string;
|
|
38
|
+
sm: string;
|
|
39
|
+
md: string;
|
|
40
|
+
lg: string;
|
|
41
|
+
};
|
|
42
|
+
orientation: {
|
|
43
|
+
horizontal: string;
|
|
44
|
+
vertical: string;
|
|
45
|
+
};
|
|
46
|
+
}, undefined, import("tailwind-variants").TVReturnType<{
|
|
47
|
+
size: {
|
|
48
|
+
xs: string;
|
|
49
|
+
sm: string;
|
|
50
|
+
md: string;
|
|
51
|
+
lg: string;
|
|
52
|
+
};
|
|
53
|
+
orientation: {
|
|
54
|
+
horizontal: string;
|
|
55
|
+
vertical: string;
|
|
56
|
+
};
|
|
57
|
+
}, undefined, string, unknown, unknown, undefined>>>;
|
|
58
|
+
type ButtonGroupVariants = VariantProps<typeof buttonGroup>;
|
|
59
|
+
export interface ButtonGroupProps {
|
|
60
|
+
/**
|
|
61
|
+
* The element or component this component should render as.
|
|
62
|
+
* @defaultValue 'div'
|
|
63
|
+
*/
|
|
64
|
+
as?: any;
|
|
65
|
+
/**
|
|
66
|
+
* @defaultValue 'md'
|
|
67
|
+
*/
|
|
68
|
+
size?: ButtonGroupVariants['size'];
|
|
69
|
+
/**
|
|
70
|
+
* The orientation the buttons are laid out.
|
|
71
|
+
* @defaultValue 'horizontal'
|
|
72
|
+
*/
|
|
73
|
+
orientation?: ButtonGroupVariants['orientation'];
|
|
74
|
+
/**
|
|
75
|
+
* Disable show split
|
|
76
|
+
* @defaultValue false
|
|
77
|
+
*/
|
|
78
|
+
noSplit?: boolean;
|
|
79
|
+
class?: any;
|
|
80
|
+
}
|
|
81
|
+
export interface ButtonGroupSlots {
|
|
82
|
+
default(props?: {}): any;
|
|
83
|
+
}
|
|
84
|
+
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ButtonGroupProps>, {
|
|
85
|
+
orientation: string;
|
|
86
|
+
noSplit: boolean;
|
|
87
|
+
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ButtonGroupProps>, {
|
|
88
|
+
orientation: string;
|
|
89
|
+
noSplit: boolean;
|
|
90
|
+
}>>> & Readonly<{}>, {
|
|
91
|
+
orientation: "horizontal" | "vertical";
|
|
92
|
+
noSplit: boolean;
|
|
93
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<ButtonGroupSlots> & ButtonGroupSlots>;
|
|
94
|
+
export default _default;
|
|
95
|
+
type __VLS_WithDefaults<P, D> = {
|
|
96
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
|
|
97
|
+
default: D[K];
|
|
98
|
+
}> : P[K];
|
|
99
|
+
};
|
|
100
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
101
|
+
type __VLS_TypePropsToOption<T> = {
|
|
102
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
103
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
104
|
+
} : {
|
|
105
|
+
type: import('vue').PropType<T[K]>;
|
|
106
|
+
required: true;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
110
|
+
new (): {
|
|
111
|
+
$slots: S;
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
type __VLS_PrettifyLocal<T> = {
|
|
115
|
+
[K in keyof T]: T[K];
|
|
116
|
+
} & {};
|
|
@@ -1,164 +1,85 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import _appConfig from '#build/app.config'
|
|
8
|
-
import theme from '#build/b24ui/calendar'
|
|
9
|
-
import { tv } from '../utils/tv'
|
|
10
|
-
import type { PartialString } from '../types/utils'
|
|
11
|
-
|
|
12
|
-
const appConfigCalendar = _appConfig as AppConfig & { b24ui: { calendar: Partial<typeof theme> } }
|
|
13
|
-
|
|
14
|
-
const calendar = tv({ extend: tv(theme), ...(appConfigCalendar.b24ui?.calendar || {}) })
|
|
15
|
-
|
|
16
|
-
type CalendarVariants = VariantProps<typeof calendar>
|
|
17
|
-
|
|
18
|
-
type CalendarDefaultValue<R extends boolean = false, M extends boolean = false> = R extends true
|
|
19
|
-
? DateRange
|
|
20
|
-
: M extends true
|
|
21
|
-
? DateValue[]
|
|
22
|
-
: DateValue
|
|
23
|
-
type CalendarModelValue<R extends boolean = false, M extends boolean = false> = R extends true
|
|
24
|
-
? (DateRange | null)
|
|
25
|
-
: M extends true
|
|
26
|
-
? (DateValue[] | undefined)
|
|
27
|
-
: (DateValue | undefined)
|
|
28
|
-
|
|
29
|
-
type _CalendarRootProps = Omit<CalendarRootProps, 'as' | 'asChild' | 'modelValue' | 'defaultValue' | 'dir' | 'locale' | 'calendarLabel' | 'multiple'>
|
|
30
|
-
type _RangeCalendarRootProps = Omit<RangeCalendarRootProps, 'as' | 'asChild' | 'modelValue' | 'defaultValue' | 'dir' | 'locale' | 'calendarLabel' | 'multiple'>
|
|
31
|
-
|
|
32
|
-
export interface CalendarProps<R extends boolean = false, M extends boolean = false> extends _RangeCalendarRootProps, _CalendarRootProps {
|
|
33
|
-
/**
|
|
34
|
-
* The element or component this component should render as.
|
|
35
|
-
* @defaultValue 'div'
|
|
36
|
-
*/
|
|
37
|
-
as?: any
|
|
38
|
-
/**
|
|
39
|
-
* The icon to use for the next year control.
|
|
40
|
-
* @defaultValue icons.chevronDoubleRight
|
|
41
|
-
* @IconComponent
|
|
42
|
-
*/
|
|
43
|
-
nextYearIcon?: IconComponent
|
|
44
|
-
/**
|
|
45
|
-
* Configure the next year button.
|
|
46
|
-
* `{ color: 'link' }`{lang="ts"}
|
|
47
|
-
*/
|
|
48
|
-
nextYear?: ButtonProps
|
|
49
|
-
/**
|
|
50
|
-
* The icon to use for the next month control.
|
|
51
|
-
* @defaultValue icons.chevronRight
|
|
52
|
-
* @IconComponent
|
|
53
|
-
*/
|
|
54
|
-
nextMonthIcon?: IconComponent
|
|
55
|
-
/**
|
|
56
|
-
* Configure the next month button.
|
|
57
|
-
* `{ color: 'link' }`{lang="ts"}
|
|
58
|
-
*/
|
|
59
|
-
nextMonth?: ButtonProps
|
|
60
|
-
/**
|
|
61
|
-
* The icon to use for the previous year control.
|
|
62
|
-
* @defaultValue icons.chevronDoubleLeft
|
|
63
|
-
* @IconComponent
|
|
64
|
-
*/
|
|
65
|
-
prevYearIcon?: IconComponent
|
|
66
|
-
/**
|
|
67
|
-
* Configure the prev year button.
|
|
68
|
-
* `{ color: 'link' }`{lang="ts"}
|
|
69
|
-
*/
|
|
70
|
-
prevYear?: ButtonProps
|
|
71
|
-
/**
|
|
72
|
-
* The icon to use for the previous month control.
|
|
73
|
-
* @defaultValue icons.chevronLeft
|
|
74
|
-
* @IconComponent
|
|
75
|
-
*/
|
|
76
|
-
prevMonthIcon?: IconComponent
|
|
77
|
-
/**
|
|
78
|
-
* Configure the prev month button.
|
|
79
|
-
* `{ color: 'link' }`{lang="ts"}
|
|
80
|
-
*/
|
|
81
|
-
prevMonth?: ButtonProps
|
|
82
|
-
/**
|
|
83
|
-
* @defaultValue 'primary'
|
|
84
|
-
*/
|
|
85
|
-
color?: CalendarVariants['color']
|
|
86
|
-
/**
|
|
87
|
-
* @defaultValue 'md'
|
|
88
|
-
*/
|
|
89
|
-
size?: CalendarVariants['size']
|
|
90
|
-
/** Whether a range of dates can be selected */
|
|
91
|
-
range?: R & boolean
|
|
92
|
-
/** Whether multiple dates can be selected */
|
|
93
|
-
multiple?: M & boolean
|
|
94
|
-
/** Show month controls */
|
|
95
|
-
monthControls?: boolean
|
|
96
|
-
/** Show year controls */
|
|
97
|
-
yearControls?: boolean
|
|
98
|
-
defaultValue?: CalendarDefaultValue<R, M>
|
|
99
|
-
modelValue?: CalendarModelValue<R, M>
|
|
100
|
-
class?: any
|
|
101
|
-
b24ui?: PartialString<typeof calendar.slots>
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export interface CalendarEmits<R extends boolean, M extends boolean> extends Omit<CalendarRootEmits & RangeCalendarRootEmits, 'update:modelValue'> {
|
|
105
|
-
'update:modelValue': [date: CalendarModelValue<R, M>]
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export interface CalendarSlots {
|
|
109
|
-
'heading': (props: { value: string }) => any
|
|
110
|
-
'day': (props: Pick<CalendarCellTriggerProps, 'day'>) => any
|
|
111
|
-
'week-day': (props: { day: string }) => any
|
|
112
|
-
}
|
|
1
|
+
<script>
|
|
2
|
+
import _appConfig from "#build/app.config";
|
|
3
|
+
import theme from "#build/b24ui/calendar";
|
|
4
|
+
import { tv } from "../utils/tv";
|
|
5
|
+
const appConfigCalendar = _appConfig;
|
|
6
|
+
const calendar = tv({ extend: tv(theme), ...appConfigCalendar.b24ui?.calendar || {} });
|
|
113
7
|
</script>
|
|
114
8
|
|
|
115
|
-
<script setup
|
|
116
|
-
import { computed } from
|
|
117
|
-
import { useForwardPropsEmits } from
|
|
118
|
-
import { Calendar as SingleCalendar, RangeCalendar } from
|
|
119
|
-
import { reactiveOmit } from
|
|
120
|
-
import { useLocale } from
|
|
121
|
-
import icons from
|
|
122
|
-
import B24Button from
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
9
|
+
<script setup>
|
|
10
|
+
import { computed } from "vue";
|
|
11
|
+
import { useForwardPropsEmits } from "reka-ui";
|
|
12
|
+
import { Calendar as SingleCalendar, RangeCalendar } from "reka-ui/namespaced";
|
|
13
|
+
import { reactiveOmit } from "@vueuse/core";
|
|
14
|
+
import { useLocale } from "../composables/useLocale";
|
|
15
|
+
import icons from "../dictionary/icons";
|
|
16
|
+
import B24Button from "./Button.vue";
|
|
17
|
+
const props = defineProps({
|
|
18
|
+
as: { type: null, required: false },
|
|
19
|
+
nextYearIcon: { type: [Function, Object], required: false },
|
|
20
|
+
nextYear: { type: Object, required: false },
|
|
21
|
+
nextMonthIcon: { type: [Function, Object], required: false },
|
|
22
|
+
nextMonth: { type: Object, required: false },
|
|
23
|
+
prevYearIcon: { type: [Function, Object], required: false },
|
|
24
|
+
prevYear: { type: Object, required: false },
|
|
25
|
+
prevMonthIcon: { type: [Function, Object], required: false },
|
|
26
|
+
prevMonth: { type: Object, required: false },
|
|
27
|
+
color: { type: null, required: false },
|
|
28
|
+
size: { type: null, required: false },
|
|
29
|
+
range: { type: Boolean, required: false },
|
|
30
|
+
multiple: { type: Boolean, required: false },
|
|
31
|
+
monthControls: { type: Boolean, required: false, default: true },
|
|
32
|
+
yearControls: { type: Boolean, required: false, default: true },
|
|
33
|
+
defaultValue: { type: null, required: false },
|
|
34
|
+
modelValue: { type: null, required: false },
|
|
35
|
+
class: { type: null, required: false },
|
|
36
|
+
b24ui: { type: null, required: false },
|
|
37
|
+
defaultPlaceholder: { type: null, required: false },
|
|
38
|
+
placeholder: { type: null, required: false },
|
|
39
|
+
allowNonContiguousRanges: { type: Boolean, required: false },
|
|
40
|
+
pagedNavigation: { type: Boolean, required: false },
|
|
41
|
+
preventDeselect: { type: Boolean, required: false },
|
|
42
|
+
weekStartsOn: { type: Number, required: false },
|
|
43
|
+
weekdayFormat: { type: String, required: false },
|
|
44
|
+
fixedWeeks: { type: Boolean, required: false, default: true },
|
|
45
|
+
maxValue: { type: null, required: false },
|
|
46
|
+
minValue: { type: null, required: false },
|
|
47
|
+
numberOfMonths: { type: Number, required: false },
|
|
48
|
+
disabled: { type: Boolean, required: false },
|
|
49
|
+
readonly: { type: Boolean, required: false },
|
|
50
|
+
initialFocus: { type: Boolean, required: false },
|
|
51
|
+
isDateDisabled: { type: Function, required: false },
|
|
52
|
+
isDateUnavailable: { type: Function, required: false },
|
|
53
|
+
nextPage: { type: Function, required: false },
|
|
54
|
+
prevPage: { type: Function, required: false }
|
|
55
|
+
});
|
|
56
|
+
const emits = defineEmits(["update:modelValue", "update:placeholder", "update:startValue"]);
|
|
57
|
+
defineSlots();
|
|
58
|
+
const { code: locale, dir, t } = useLocale();
|
|
59
|
+
const rootProps = useForwardPropsEmits(reactiveOmit(props, "range", "modelValue", "defaultValue", "color", "size", "monthControls", "yearControls", "class", "b24ui"), emits);
|
|
60
|
+
const nextYearIcon = computed(() => props.nextYearIcon || (dir.value === "rtl" ? icons.chevronDoubleLeft : icons.chevronDoubleRight));
|
|
61
|
+
const nextMonthIcon = computed(() => props.nextMonthIcon || (dir.value === "rtl" ? icons.chevronLeft : icons.chevronRight));
|
|
62
|
+
const prevYearIcon = computed(() => props.prevYearIcon || (dir.value === "rtl" ? icons.chevronDoubleRight : icons.chevronDoubleLeft));
|
|
63
|
+
const prevMonthIcon = computed(() => props.prevMonthIcon || (dir.value === "rtl" ? icons.chevronRight : icons.chevronLeft));
|
|
141
64
|
const b24ui = computed(() => calendar({
|
|
142
65
|
color: props.color,
|
|
143
66
|
size: props.size
|
|
144
|
-
}))
|
|
145
|
-
|
|
146
|
-
function paginateYear(date: DateValue, sign: -1 | 1) {
|
|
67
|
+
}));
|
|
68
|
+
function paginateYear(date, sign) {
|
|
147
69
|
if (sign === -1) {
|
|
148
|
-
return date.subtract({ years: 1 })
|
|
70
|
+
return date.subtract({ years: 1 });
|
|
149
71
|
}
|
|
150
|
-
|
|
151
|
-
return date.add({ years: 1 })
|
|
72
|
+
return date.add({ years: 1 });
|
|
152
73
|
}
|
|
153
|
-
|
|
154
|
-
const Calendar = computed(() => props.range ? RangeCalendar : SingleCalendar)
|
|
155
|
-
|
|
74
|
+
const Calendar = computed(() => props.range ? RangeCalendar : SingleCalendar);
|
|
156
75
|
const btnSize = computed(() => {
|
|
157
76
|
switch (props.size) {
|
|
158
|
-
case
|
|
159
|
-
|
|
77
|
+
case "lg":
|
|
78
|
+
return "sm";
|
|
79
|
+
default:
|
|
80
|
+
return "xs";
|
|
160
81
|
}
|
|
161
|
-
})
|
|
82
|
+
});
|
|
162
83
|
</script>
|
|
163
84
|
|
|
164
85
|
<template>
|
|
@@ -172,7 +93,7 @@ const btnSize = computed(() => {
|
|
|
172
93
|
:class="b24ui.root({ class: [props.class, props.b24ui?.root] })"
|
|
173
94
|
>
|
|
174
95
|
<Calendar.Header :class="b24ui.header({ class: props.b24ui?.header })">
|
|
175
|
-
<Calendar.Prev v-if="props.yearControls" :prev-page="(date
|
|
96
|
+
<Calendar.Prev v-if="props.yearControls" :prev-page="(date) => paginateYear(date, -1)" :aria-label="t('calendar.prevYear')" as-child>
|
|
176
97
|
<B24Button :icon="prevYearIcon" :size="btnSize" color="link" v-bind="props.prevYear" />
|
|
177
98
|
</Calendar.Prev>
|
|
178
99
|
<Calendar.Prev v-if="props.monthControls" :aria-label="t('calendar.prevMonth')" as-child>
|
|
@@ -186,7 +107,7 @@ const btnSize = computed(() => {
|
|
|
186
107
|
<Calendar.Next v-if="props.monthControls" :aria-label="t('calendar.nextMonth')" as-child>
|
|
187
108
|
<B24Button :icon="nextMonthIcon" :size="btnSize" color="link" v-bind="props.nextMonth" />
|
|
188
109
|
</Calendar.Next>
|
|
189
|
-
<Calendar.Next v-if="props.yearControls" :next-page="(date
|
|
110
|
+
<Calendar.Next v-if="props.yearControls" :next-page="(date) => paginateYear(date, 1)" :aria-label="t('calendar.nextYear')" as-child>
|
|
190
111
|
<B24Button :icon="nextYearIcon" :size="btnSize" color="link" v-bind="props.nextYear" />
|
|
191
112
|
</Calendar.Next>
|
|
192
113
|
</Calendar.Header>
|