@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.
Files changed (199) hide show
  1. package/.nuxt/b24ui/input-menu.ts +2 -2
  2. package/.nuxt/b24ui/select-menu.ts +4 -4
  3. package/.nuxt/b24ui/select.ts +2 -2
  4. package/dist/meta.d.mts +5208 -5061
  5. package/dist/meta.mjs +5208 -5061
  6. package/dist/module.json +3 -3
  7. package/dist/module.mjs +2 -2
  8. package/dist/runtime/components/Advice.vue +27 -54
  9. package/dist/runtime/components/Advice.vue.d.ts +170 -0
  10. package/dist/runtime/components/Alert.vue +35 -96
  11. package/dist/runtime/components/Alert.vue.d.ts +464 -0
  12. package/dist/runtime/components/App.vue +24 -34
  13. package/dist/runtime/components/App.vue.d.ts +23 -0
  14. package/dist/runtime/components/Avatar.vue +43 -81
  15. package/dist/runtime/components/Avatar.vue.d.ts +281 -0
  16. package/dist/runtime/components/AvatarGroup.vue +40 -76
  17. package/dist/runtime/components/AvatarGroup.vue.d.ts +204 -0
  18. package/dist/runtime/components/Badge.vue +40 -83
  19. package/dist/runtime/components/Badge.vue.d.ts +517 -0
  20. package/dist/runtime/components/Button.vue +96 -155
  21. package/dist/runtime/components/Button.vue.d.ts +640 -0
  22. package/dist/runtime/components/ButtonGroup.vue +19 -51
  23. package/dist/runtime/components/ButtonGroup.vue.d.ts +116 -0
  24. package/dist/runtime/components/Calendar.vue +73 -152
  25. package/dist/runtime/components/Calendar.vue.d.ts +437 -0
  26. package/dist/runtime/components/Checkbox.vue +42 -73
  27. package/dist/runtime/components/Checkbox.vue.d.ts +354 -0
  28. package/dist/runtime/components/Chip.vue +26 -74
  29. package/dist/runtime/components/Chip.vue.d.ts +271 -0
  30. package/dist/runtime/components/Collapsible.vue +22 -41
  31. package/dist/runtime/components/Collapsible.vue.d.ts +118 -0
  32. package/dist/runtime/components/Container.vue +13 -27
  33. package/dist/runtime/components/Container.vue.d.ts +27 -0
  34. package/dist/runtime/components/Countdown.vue +153 -378
  35. package/dist/runtime/components/Countdown.vue.d.ts +356 -0
  36. package/dist/runtime/components/DescriptionList.vue +78 -149
  37. package/dist/runtime/components/DescriptionList.vue.d.ts +379 -0
  38. package/dist/runtime/components/DropdownMenu.vue +38 -139
  39. package/dist/runtime/components/DropdownMenu.vue.d.ts +533 -0
  40. package/dist/runtime/components/DropdownMenuContent.vue +68 -80
  41. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +228 -0
  42. package/dist/runtime/components/Form.vue +130 -217
  43. package/dist/runtime/components/Form.vue.d.ts +55 -0
  44. package/dist/runtime/components/FormField.vue +36 -80
  45. package/dist/runtime/components/FormField.vue.d.ts +282 -0
  46. package/dist/runtime/components/Input.vue +79 -179
  47. package/dist/runtime/components/Input.vue.d.ts +755 -0
  48. package/dist/runtime/components/InputMenu.vue +185 -381
  49. package/dist/runtime/components/InputMenu.vue.d.ts +1523 -0
  50. package/dist/runtime/components/InputNumber.vue +77 -175
  51. package/dist/runtime/components/InputNumber.vue.d.ts +658 -0
  52. package/dist/runtime/components/Kbd.vue +18 -45
  53. package/dist/runtime/components/Kbd.vue.d.ts +109 -0
  54. package/dist/runtime/components/Link.vue +92 -173
  55. package/dist/runtime/components/Link.vue.d.ts +129 -0
  56. package/dist/runtime/components/LinkBase.vue +33 -42
  57. package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
  58. package/dist/runtime/components/Modal.vue +48 -127
  59. package/dist/runtime/components/Modal.vue.d.ts +327 -0
  60. package/dist/runtime/components/ModalDialogClose.vue +5 -8
  61. package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
  62. package/dist/runtime/components/Navbar.vue +15 -33
  63. package/dist/runtime/components/Navbar.vue.d.ts +101 -0
  64. package/dist/runtime/components/NavbarDivider.vue +15 -33
  65. package/dist/runtime/components/NavbarDivider.vue.d.ts +101 -0
  66. package/dist/runtime/components/NavbarSection.vue +15 -33
  67. package/dist/runtime/components/NavbarSection.vue.d.ts +101 -0
  68. package/dist/runtime/components/NavbarSpacer.vue +15 -33
  69. package/dist/runtime/components/NavbarSpacer.vue.d.ts +101 -0
  70. package/dist/runtime/components/NavigationMenu.vue +74 -208
  71. package/dist/runtime/components/NavigationMenu.vue.d.ts +824 -0
  72. package/dist/runtime/components/OverlayProvider.vue +14 -18
  73. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
  74. package/dist/runtime/components/Popover.vue +40 -81
  75. package/dist/runtime/components/Popover.vue.d.ts +147 -0
  76. package/dist/runtime/components/Progress.vue +70 -136
  77. package/dist/runtime/components/Progress.vue.d.ts +592 -0
  78. package/dist/runtime/components/RadioGroup.vue +59 -134
  79. package/dist/runtime/components/RadioGroup.vue.d.ts +723 -0
  80. package/dist/runtime/components/Range.vue +46 -85
  81. package/dist/runtime/components/Range.vue.d.ts +417 -0
  82. package/dist/runtime/components/Select.vue +110 -260
  83. package/dist/runtime/components/Select.vue.d.ts +1201 -0
  84. package/dist/runtime/components/SelectMenu.vue +161 -347
  85. package/dist/runtime/components/SelectMenu.vue.d.ts +1298 -0
  86. package/dist/runtime/components/Separator.vue +28 -71
  87. package/dist/runtime/components/Separator.vue.d.ts +400 -0
  88. package/dist/runtime/components/Sidebar.vue +15 -33
  89. package/dist/runtime/components/Sidebar.vue.d.ts +101 -0
  90. package/dist/runtime/components/SidebarBody.vue +17 -38
  91. package/dist/runtime/components/SidebarBody.vue.d.ts +90 -0
  92. package/dist/runtime/components/SidebarFooter.vue +15 -33
  93. package/dist/runtime/components/SidebarFooter.vue.d.ts +101 -0
  94. package/dist/runtime/components/SidebarHeader.vue +15 -33
  95. package/dist/runtime/components/SidebarHeader.vue.d.ts +101 -0
  96. package/dist/runtime/components/SidebarHeading.vue +15 -33
  97. package/dist/runtime/components/SidebarHeading.vue.d.ts +101 -0
  98. package/dist/runtime/components/SidebarLayout.vue +34 -70
  99. package/dist/runtime/components/SidebarLayout.vue.d.ts +222 -0
  100. package/dist/runtime/components/SidebarSection.vue +15 -33
  101. package/dist/runtime/components/SidebarSection.vue.d.ts +101 -0
  102. package/dist/runtime/components/SidebarSpacer.vue +15 -33
  103. package/dist/runtime/components/SidebarSpacer.vue.d.ts +101 -0
  104. package/dist/runtime/components/Skeleton.vue +12 -22
  105. package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
  106. package/dist/runtime/components/Slideover.vue +50 -131
  107. package/dist/runtime/components/Slideover.vue.d.ts +360 -0
  108. package/dist/runtime/components/StackedLayout.vue +34 -73
  109. package/dist/runtime/components/StackedLayout.vue.d.ts +192 -0
  110. package/dist/runtime/components/Switch.vue +46 -95
  111. package/dist/runtime/components/Switch.vue.d.ts +587 -0
  112. package/dist/runtime/components/Tabs.vue +37 -105
  113. package/dist/runtime/components/Tabs.vue.d.ts +453 -0
  114. package/dist/runtime/components/Textarea.vue +92 -201
  115. package/dist/runtime/components/Textarea.vue.d.ts +601 -0
  116. package/dist/runtime/components/Toast.vue +47 -105
  117. package/dist/runtime/components/Toast.vue.d.ts +438 -0
  118. package/dist/runtime/components/Toaster.vue +70 -115
  119. package/dist/runtime/components/Toaster.vue.d.ts +219 -0
  120. package/dist/runtime/components/Tooltip.vue +36 -64
  121. package/dist/runtime/components/Tooltip.vue.d.ts +186 -0
  122. package/dist/runtime/components/content/TableWrapper.vue +24 -70
  123. package/dist/runtime/components/content/TableWrapper.vue.d.ts +237 -0
  124. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  125. package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
  126. package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
  127. package/dist/runtime/composables/useFormField.d.ts +2 -2
  128. package/dist/runtime/composables/useOverlay.d.ts +14 -7
  129. package/dist/runtime/composables/useOverlay.js +14 -6
  130. package/dist/runtime/prose/A.vue +12 -23
  131. package/dist/runtime/prose/A.vue.d.ts +84 -0
  132. package/dist/runtime/prose/Blockquote.vue +12 -23
  133. package/dist/runtime/prose/Blockquote.vue.d.ts +84 -0
  134. package/dist/runtime/prose/Code.vue +14 -31
  135. package/dist/runtime/prose/Code.vue.d.ts +97 -0
  136. package/dist/runtime/prose/Em.vue +12 -23
  137. package/dist/runtime/prose/Em.vue.d.ts +84 -0
  138. package/dist/runtime/prose/H1.vue +12 -23
  139. package/dist/runtime/prose/H1.vue.d.ts +97 -0
  140. package/dist/runtime/prose/H2.vue +12 -23
  141. package/dist/runtime/prose/H2.vue.d.ts +123 -0
  142. package/dist/runtime/prose/H3.vue +12 -23
  143. package/dist/runtime/prose/H3.vue.d.ts +123 -0
  144. package/dist/runtime/prose/H4.vue +12 -23
  145. package/dist/runtime/prose/H4.vue.d.ts +123 -0
  146. package/dist/runtime/prose/H5.vue +12 -23
  147. package/dist/runtime/prose/H5.vue.d.ts +123 -0
  148. package/dist/runtime/prose/H6.vue +12 -23
  149. package/dist/runtime/prose/H6.vue.d.ts +123 -0
  150. package/dist/runtime/prose/Hr.vue +12 -19
  151. package/dist/runtime/prose/Hr.vue.d.ts +74 -0
  152. package/dist/runtime/prose/Img.vue +12 -23
  153. package/dist/runtime/prose/Img.vue.d.ts +77 -0
  154. package/dist/runtime/prose/Li.vue +12 -23
  155. package/dist/runtime/prose/Li.vue.d.ts +84 -0
  156. package/dist/runtime/prose/Ol.vue +12 -23
  157. package/dist/runtime/prose/Ol.vue.d.ts +84 -0
  158. package/dist/runtime/prose/P.vue +12 -23
  159. package/dist/runtime/prose/P.vue.d.ts +84 -0
  160. package/dist/runtime/prose/Pre.vue +16 -33
  161. package/dist/runtime/prose/Pre.vue.d.ts +117 -0
  162. package/dist/runtime/prose/Strong.vue +12 -23
  163. package/dist/runtime/prose/Strong.vue.d.ts +84 -0
  164. package/dist/runtime/prose/Table.vue +19 -54
  165. package/dist/runtime/prose/Table.vue.d.ts +144 -0
  166. package/dist/runtime/prose/Tbody.vue +12 -23
  167. package/dist/runtime/prose/Tbody.vue.d.ts +84 -0
  168. package/dist/runtime/prose/Td.vue +12 -23
  169. package/dist/runtime/prose/Td.vue.d.ts +84 -0
  170. package/dist/runtime/prose/Th.vue +12 -23
  171. package/dist/runtime/prose/Th.vue.d.ts +84 -0
  172. package/dist/runtime/prose/Thead.vue +12 -23
  173. package/dist/runtime/prose/Thead.vue.d.ts +84 -0
  174. package/dist/runtime/prose/Tr.vue +12 -23
  175. package/dist/runtime/prose/Tr.vue.d.ts +84 -0
  176. package/dist/runtime/prose/Ul.vue +12 -23
  177. package/dist/runtime/prose/Ul.vue.d.ts +84 -0
  178. package/dist/runtime/utils/link.d.ts +3 -3
  179. package/dist/runtime/vue/components/Link.vue +115 -202
  180. package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
  181. package/dist/shared/{b24ui-nuxt.CS9Lf0os.mjs → b24ui-nuxt.BA6Y2FnC.mjs} +6 -6
  182. package/dist/types.d.mts +3 -5
  183. package/dist/unplugin.mjs +1 -1
  184. package/dist/vite.mjs +1 -1
  185. package/package.json +14 -22
  186. package/dist/meta.cjs +0 -72112
  187. package/dist/meta.d.cts +0 -72110
  188. package/dist/meta.d.ts +0 -72110
  189. package/dist/module.cjs +0 -63
  190. package/dist/module.d.cts +0 -15
  191. package/dist/module.d.ts +0 -15
  192. package/dist/shared/b24ui-nuxt.DrKwIWoc.cjs +0 -7721
  193. package/dist/types.d.ts +0 -7
  194. package/dist/unplugin.cjs +0 -236
  195. package/dist/unplugin.d.cts +0 -33
  196. package/dist/unplugin.d.ts +0 -33
  197. package/dist/vite.cjs +0 -21
  198. package/dist/vite.d.cts +0 -14
  199. 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 lang="ts">
2
- import type { VariantProps } from 'tailwind-variants'
3
- import type { CalendarRootProps, CalendarRootEmits, RangeCalendarRootProps, RangeCalendarRootEmits, DateRange, CalendarCellTriggerProps } from 'reka-ui'
4
- import type { DateValue } from '@internationalized/date'
5
- import type { AppConfig } from '@nuxt/schema'
6
- import type { IconComponent, ButtonProps } from '../types'
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 lang="ts" generic="R extends boolean, M extends boolean">
116
- import { computed } from 'vue'
117
- import { useForwardPropsEmits } from 'reka-ui'
118
- import { Calendar as SingleCalendar, RangeCalendar } from 'reka-ui/namespaced'
119
- import { reactiveOmit } from '@vueuse/core'
120
- import { useLocale } from '../composables/useLocale'
121
- import icons from '../dictionary/icons'
122
- import B24Button from './Button.vue'
123
-
124
- const props = withDefaults(defineProps<CalendarProps<R, M>>(), {
125
- fixedWeeks: true,
126
- monthControls: true,
127
- yearControls: true
128
- })
129
- const emits = defineEmits<CalendarEmits<R, M>>()
130
- defineSlots<CalendarSlots>()
131
-
132
- const { code: locale, dir, t } = useLocale()
133
-
134
- const rootProps = useForwardPropsEmits(reactiveOmit(props, 'range', 'modelValue', 'defaultValue', 'color', 'size', 'monthControls', 'yearControls', 'class', 'b24ui'), emits)
135
-
136
- const nextYearIcon = computed(() => props.nextYearIcon || (dir.value === 'rtl' ? icons.chevronDoubleLeft : icons.chevronDoubleRight))
137
- const nextMonthIcon = computed(() => props.nextMonthIcon || (dir.value === 'rtl' ? icons.chevronLeft : icons.chevronRight))
138
- const prevYearIcon = computed(() => props.prevYearIcon || (dir.value === 'rtl' ? icons.chevronDoubleRight : icons.chevronDoubleLeft))
139
- const prevMonthIcon = computed(() => props.prevMonthIcon || (dir.value === 'rtl' ? icons.chevronRight : icons.chevronLeft))
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 'lg': return 'sm'
159
- default: return 'xs'
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: DateValue) => paginateYear(date, -1)" :aria-label="t('calendar.prevYear')" as-child>
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: DateValue) => paginateYear(date, 1)" :aria-label="t('calendar.nextYear')" as-child>
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>