@bitrix24/b24ui-nuxt 0.5.8 → 0.5.10

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 (197) hide show
  1. package/.nuxt/b24ui/navigation-menu.ts +0 -2
  2. package/.nuxt/b24ui/popover.ts +1 -1
  3. package/.nuxt/b24ui/textarea.ts +43 -0
  4. package/dist/meta.d.mts +5090 -4900
  5. package/dist/meta.mjs +5090 -4900
  6. package/dist/module.json +5 -5
  7. package/dist/module.mjs +11 -7
  8. package/dist/runtime/components/Advice.vue +47 -54
  9. package/dist/runtime/components/Advice.vue.d.ts +170 -0
  10. package/dist/runtime/components/Alert.vue +71 -96
  11. package/dist/runtime/components/Alert.vue.d.ts +464 -0
  12. package/dist/runtime/components/App.vue +37 -34
  13. package/dist/runtime/components/App.vue.d.ts +23 -0
  14. package/dist/runtime/components/Avatar.vue +69 -81
  15. package/dist/runtime/components/Avatar.vue.d.ts +281 -0
  16. package/dist/runtime/components/AvatarGroup.vue +53 -76
  17. package/dist/runtime/components/AvatarGroup.vue.d.ts +204 -0
  18. package/dist/runtime/components/Badge.vue +83 -83
  19. package/dist/runtime/components/Badge.vue.d.ts +517 -0
  20. package/dist/runtime/components/Button.vue +219 -149
  21. package/dist/runtime/components/Button.vue.d.ts +640 -0
  22. package/dist/runtime/components/ButtonGroup.vue +35 -51
  23. package/dist/runtime/components/ButtonGroup.vue.d.ts +116 -0
  24. package/dist/runtime/components/Calendar.vue +186 -152
  25. package/dist/runtime/components/Calendar.vue.d.ts +437 -0
  26. package/dist/runtime/components/Checkbox.vue +84 -73
  27. package/dist/runtime/components/Checkbox.vue.d.ts +354 -0
  28. package/dist/runtime/components/Chip.vue +59 -74
  29. package/dist/runtime/components/Chip.vue.d.ts +271 -0
  30. package/dist/runtime/components/Collapsible.vue +44 -41
  31. package/dist/runtime/components/Collapsible.vue.d.ts +118 -0
  32. package/dist/runtime/components/Container.vue +18 -27
  33. package/dist/runtime/components/Container.vue.d.ts +27 -0
  34. package/dist/runtime/components/Countdown.vue +198 -378
  35. package/dist/runtime/components/Countdown.vue.d.ts +356 -0
  36. package/dist/runtime/components/DescriptionList.vue +102 -149
  37. package/dist/runtime/components/DescriptionList.vue.d.ts +379 -0
  38. package/dist/runtime/components/DropdownMenu.vue +83 -139
  39. package/dist/runtime/components/DropdownMenu.vue.d.ts +533 -0
  40. package/dist/runtime/components/DropdownMenuContent.vue +137 -81
  41. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +228 -0
  42. package/dist/runtime/components/Form.vue +162 -216
  43. package/dist/runtime/components/Form.vue.d.ts +55 -0
  44. package/dist/runtime/components/FormField.vue +76 -80
  45. package/dist/runtime/components/FormField.vue.d.ts +282 -0
  46. package/dist/runtime/components/Input.vue +166 -185
  47. package/dist/runtime/components/Input.vue.d.ts +755 -0
  48. package/dist/runtime/components/InputMenu.vue +300 -381
  49. package/dist/runtime/components/InputMenu.vue.d.ts +1504 -0
  50. package/dist/runtime/components/InputNumber.vue +180 -177
  51. package/dist/runtime/components/InputNumber.vue.d.ts +658 -0
  52. package/dist/runtime/components/Kbd.vue +33 -45
  53. package/dist/runtime/components/Kbd.vue.d.ts +109 -0
  54. package/dist/runtime/components/Link.vue +179 -173
  55. package/dist/runtime/components/Link.vue.d.ts +129 -0
  56. package/dist/runtime/components/LinkBase.vue +64 -42
  57. package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
  58. package/dist/runtime/components/Modal.vue +105 -127
  59. package/dist/runtime/components/Modal.vue.d.ts +327 -0
  60. package/dist/runtime/components/ModalDialogClose.vue +4 -8
  61. package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
  62. package/dist/runtime/components/Navbar.vue +24 -33
  63. package/dist/runtime/components/Navbar.vue.d.ts +101 -0
  64. package/dist/runtime/components/NavbarDivider.vue +24 -33
  65. package/dist/runtime/components/NavbarDivider.vue.d.ts +101 -0
  66. package/dist/runtime/components/NavbarSection.vue +24 -33
  67. package/dist/runtime/components/NavbarSection.vue.d.ts +101 -0
  68. package/dist/runtime/components/NavbarSpacer.vue +24 -33
  69. package/dist/runtime/components/NavbarSpacer.vue.d.ts +101 -0
  70. package/dist/runtime/components/NavigationMenu.vue +152 -216
  71. package/dist/runtime/components/NavigationMenu.vue.d.ts +824 -0
  72. package/dist/runtime/components/OverlayProvider.vue +13 -17
  73. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
  74. package/dist/runtime/components/Popover.vue +81 -81
  75. package/dist/runtime/components/Popover.vue.d.ts +147 -0
  76. package/dist/runtime/components/Progress.vue +109 -136
  77. package/dist/runtime/components/Progress.vue.d.ts +592 -0
  78. package/dist/runtime/components/RadioGroup.vue +120 -134
  79. package/dist/runtime/components/RadioGroup.vue.d.ts +723 -0
  80. package/dist/runtime/components/Range.vue +94 -85
  81. package/dist/runtime/components/Range.vue.d.ts +417 -0
  82. package/dist/runtime/components/Select.vue +212 -260
  83. package/dist/runtime/components/Select.vue.d.ts +1200 -0
  84. package/dist/runtime/components/SelectMenu.vue +272 -366
  85. package/dist/runtime/components/SelectMenu.vue.d.ts +1298 -0
  86. package/dist/runtime/components/Separator.vue +61 -71
  87. package/dist/runtime/components/Separator.vue.d.ts +400 -0
  88. package/dist/runtime/components/Sidebar.vue +24 -33
  89. package/dist/runtime/components/Sidebar.vue.d.ts +101 -0
  90. package/dist/runtime/components/SidebarBody.vue +30 -38
  91. package/dist/runtime/components/SidebarBody.vue.d.ts +90 -0
  92. package/dist/runtime/components/SidebarFooter.vue +24 -33
  93. package/dist/runtime/components/SidebarFooter.vue.d.ts +101 -0
  94. package/dist/runtime/components/SidebarHeader.vue +24 -33
  95. package/dist/runtime/components/SidebarHeader.vue.d.ts +101 -0
  96. package/dist/runtime/components/SidebarHeading.vue +24 -33
  97. package/dist/runtime/components/SidebarHeading.vue.d.ts +101 -0
  98. package/dist/runtime/components/SidebarLayout.vue +40 -70
  99. package/dist/runtime/components/SidebarLayout.vue.d.ts +222 -0
  100. package/dist/runtime/components/SidebarSection.vue +24 -33
  101. package/dist/runtime/components/SidebarSection.vue.d.ts +101 -0
  102. package/dist/runtime/components/SidebarSpacer.vue +24 -33
  103. package/dist/runtime/components/SidebarSpacer.vue.d.ts +101 -0
  104. package/dist/runtime/components/Skeleton.vue +17 -22
  105. package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
  106. package/dist/runtime/components/Slideover.vue +108 -131
  107. package/dist/runtime/components/Slideover.vue.d.ts +360 -0
  108. package/dist/runtime/components/StackedLayout.vue +40 -73
  109. package/dist/runtime/components/StackedLayout.vue.d.ts +192 -0
  110. package/dist/runtime/components/Switch.vue +100 -95
  111. package/dist/runtime/components/Switch.vue.d.ts +587 -0
  112. package/dist/runtime/components/Tabs.vue +83 -105
  113. package/dist/runtime/components/Tabs.vue.d.ts +453 -0
  114. package/dist/runtime/components/Textarea.vue +215 -203
  115. package/dist/runtime/components/Textarea.vue.d.ts +601 -0
  116. package/dist/runtime/components/Toast.vue +94 -105
  117. package/dist/runtime/components/Toast.vue.d.ts +438 -0
  118. package/dist/runtime/components/Toaster.vue +94 -111
  119. package/dist/runtime/components/Toaster.vue.d.ts +219 -0
  120. package/dist/runtime/components/Tooltip.vue +78 -64
  121. package/dist/runtime/components/Tooltip.vue.d.ts +186 -0
  122. package/dist/runtime/components/content/TableWrapper.vue +58 -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 +1 -1
  128. package/dist/runtime/prose/A.vue +18 -23
  129. package/dist/runtime/prose/A.vue.d.ts +84 -0
  130. package/dist/runtime/prose/Blockquote.vue +18 -23
  131. package/dist/runtime/prose/Blockquote.vue.d.ts +84 -0
  132. package/dist/runtime/prose/Code.vue +23 -31
  133. package/dist/runtime/prose/Code.vue.d.ts +97 -0
  134. package/dist/runtime/prose/Em.vue +18 -23
  135. package/dist/runtime/prose/Em.vue.d.ts +84 -0
  136. package/dist/runtime/prose/H1.vue +18 -23
  137. package/dist/runtime/prose/H1.vue.d.ts +97 -0
  138. package/dist/runtime/prose/H2.vue +18 -23
  139. package/dist/runtime/prose/H2.vue.d.ts +123 -0
  140. package/dist/runtime/prose/H3.vue +18 -23
  141. package/dist/runtime/prose/H3.vue.d.ts +123 -0
  142. package/dist/runtime/prose/H4.vue +18 -23
  143. package/dist/runtime/prose/H4.vue.d.ts +123 -0
  144. package/dist/runtime/prose/H5.vue +18 -23
  145. package/dist/runtime/prose/H5.vue.d.ts +123 -0
  146. package/dist/runtime/prose/H6.vue +18 -23
  147. package/dist/runtime/prose/H6.vue.d.ts +123 -0
  148. package/dist/runtime/prose/Hr.vue +18 -19
  149. package/dist/runtime/prose/Hr.vue.d.ts +74 -0
  150. package/dist/runtime/prose/Img.vue +18 -23
  151. package/dist/runtime/prose/Img.vue.d.ts +77 -0
  152. package/dist/runtime/prose/Li.vue +18 -23
  153. package/dist/runtime/prose/Li.vue.d.ts +84 -0
  154. package/dist/runtime/prose/Ol.vue +18 -23
  155. package/dist/runtime/prose/Ol.vue.d.ts +84 -0
  156. package/dist/runtime/prose/P.vue +18 -23
  157. package/dist/runtime/prose/P.vue.d.ts +84 -0
  158. package/dist/runtime/prose/Pre.vue +28 -33
  159. package/dist/runtime/prose/Pre.vue.d.ts +117 -0
  160. package/dist/runtime/prose/Strong.vue +18 -23
  161. package/dist/runtime/prose/Strong.vue.d.ts +84 -0
  162. package/dist/runtime/prose/Table.vue +44 -54
  163. package/dist/runtime/prose/Table.vue.d.ts +144 -0
  164. package/dist/runtime/prose/Tbody.vue +18 -23
  165. package/dist/runtime/prose/Tbody.vue.d.ts +84 -0
  166. package/dist/runtime/prose/Td.vue +18 -23
  167. package/dist/runtime/prose/Td.vue.d.ts +84 -0
  168. package/dist/runtime/prose/Th.vue +18 -23
  169. package/dist/runtime/prose/Th.vue.d.ts +84 -0
  170. package/dist/runtime/prose/Thead.vue +18 -23
  171. package/dist/runtime/prose/Thead.vue.d.ts +84 -0
  172. package/dist/runtime/prose/Tr.vue +18 -23
  173. package/dist/runtime/prose/Tr.vue.d.ts +84 -0
  174. package/dist/runtime/prose/Ul.vue +18 -23
  175. package/dist/runtime/prose/Ul.vue.d.ts +84 -0
  176. package/dist/runtime/vue/components/Link.vue +201 -202
  177. package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
  178. package/dist/runtime/vue/stubs.d.ts +2 -2
  179. package/dist/shared/{b24ui-nuxt.DBFS6LH7.mjs → b24ui-nuxt.CS9Lf0os.mjs} +54 -4
  180. package/dist/types.d.mts +3 -5
  181. package/dist/unplugin.mjs +1 -1
  182. package/dist/vite.mjs +1 -1
  183. package/package.json +62 -35
  184. package/dist/meta.cjs +0 -71922
  185. package/dist/meta.d.cts +0 -71920
  186. package/dist/meta.d.ts +0 -71920
  187. package/dist/module.cjs +0 -59
  188. package/dist/module.d.cts +0 -15
  189. package/dist/module.d.ts +0 -15
  190. package/dist/shared/b24ui-nuxt.B9fPD5yO.cjs +0 -7671
  191. package/dist/types.d.ts +0 -7
  192. package/dist/unplugin.cjs +0 -236
  193. package/dist/unplugin.d.cts +0 -33
  194. package/dist/unplugin.d.ts +0 -33
  195. package/dist/vite.cjs +0 -21
  196. package/dist/vite.d.cts +0 -14
  197. package/dist/vite.d.ts +0 -14
@@ -0,0 +1,129 @@
1
+ import type { ButtonHTMLAttributes } from 'vue';
2
+ import type { RouterLinkProps, RouteLocationRaw } from 'vue-router';
3
+ interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
4
+ /**
5
+ * Route Location the link should navigate to when clicked on.
6
+ */
7
+ to?: RouteLocationRaw;
8
+ /**
9
+ * An alias for `to`. If used with `to`, `href` will be ignored
10
+ */
11
+ href?: NuxtLinkProps['to'];
12
+ /**
13
+ * Forces the link to be considered as external (true) or internal (false). This is helpful to handle edge-cases
14
+ */
15
+ external?: boolean;
16
+ /**
17
+ * Where to display the linked URL as the name for a browsing context.
18
+ */
19
+ target?: '_blank' | '_parent' | '_self' | '_top' | (string & {}) | null;
20
+ /**
21
+ * A rel attribute value to apply on the link. Defaults to "noopener noreferrer" for external links.
22
+ */
23
+ rel?: 'noopener' | 'noreferrer' | 'nofollow' | 'sponsored' | 'ugc' | (string & {}) | null;
24
+ /**
25
+ * If set to true, no rel attribute will be added to the link
26
+ */
27
+ noRel?: boolean;
28
+ /**
29
+ * A class to apply to links that have been prefetched.
30
+ */
31
+ prefetchedClass?: string;
32
+ /**
33
+ * When enabled will prefetch middleware, layouts and payloads of links in the viewport.
34
+ */
35
+ prefetch?: boolean;
36
+ /**
37
+ * Allows controlling when to prefetch links. By default, prefetch is triggered only on visibility.
38
+ */
39
+ prefetchOn?: 'visibility' | 'interaction' | Partial<{
40
+ visibility: boolean;
41
+ interaction: boolean;
42
+ }>;
43
+ /**
44
+ * Escape hatch to disable `prefetch` attribute.
45
+ */
46
+ noPrefetch?: boolean;
47
+ }
48
+ export interface LinkProps extends NuxtLinkProps {
49
+ /**
50
+ * The element or component this component should render as when not a link.
51
+ * @defaultValue 'button'
52
+ */
53
+ as?: any;
54
+ /**
55
+ * The type of the button when not a link.
56
+ * @defaultValue 'button'
57
+ */
58
+ type?: ButtonHTMLAttributes['type'];
59
+ disabled?: boolean;
60
+ /** Force the link to be active independent of the current route. */
61
+ active?: boolean;
62
+ /** Will only be active if the current route is an exact match. */
63
+ exact?: boolean;
64
+ /** Allows controlling how the current route query sets the link as active. */
65
+ exactQuery?: boolean | 'partial';
66
+ /** Will only be active if the current route hash is an exact match. */
67
+ exactHash?: boolean;
68
+ /** The class to apply when the link is inactive. */
69
+ inactiveClass?: string;
70
+ custom?: boolean;
71
+ /** When `true`, uses special underlined styling. */
72
+ isAction?: boolean;
73
+ /** When `true`, only styles from `class`, `activeClass`, and `inactiveClass` will be applied. */
74
+ raw?: boolean;
75
+ class?: any;
76
+ }
77
+ export interface LinkSlots {
78
+ default(props: {
79
+ active: boolean;
80
+ }): any;
81
+ }
82
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LinkProps>, {
83
+ as: string;
84
+ type: string;
85
+ ariaCurrentValue: string;
86
+ active: undefined;
87
+ isAction: boolean;
88
+ activeClass: string;
89
+ inactiveClass: string;
90
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LinkProps>, {
91
+ as: string;
92
+ type: string;
93
+ ariaCurrentValue: string;
94
+ active: undefined;
95
+ isAction: boolean;
96
+ activeClass: string;
97
+ inactiveClass: string;
98
+ }>>> & Readonly<{}>, {
99
+ as: any;
100
+ type: "reset" | "submit" | "button";
101
+ activeClass: string;
102
+ ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
103
+ active: boolean;
104
+ inactiveClass: string;
105
+ isAction: boolean;
106
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<LinkSlots> & LinkSlots>;
107
+ export default _default;
108
+ type __VLS_WithDefaults<P, D> = {
109
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
110
+ default: D[K];
111
+ }> : P[K];
112
+ };
113
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
114
+ type __VLS_TypePropsToOption<T> = {
115
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
116
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
117
+ } : {
118
+ type: import('vue').PropType<T[K]>;
119
+ required: true;
120
+ };
121
+ };
122
+ type __VLS_WithTemplateSlots<T, S> = T & {
123
+ new (): {
124
+ $slots: S;
125
+ };
126
+ };
127
+ type __VLS_PrettifyLocal<T> = {
128
+ [K in keyof T]: T[K];
129
+ } & {};
@@ -1,43 +1,65 @@
1
- <script lang="ts">
2
- import type { LinkProps } from '../types'
1
+ <script>
3
2
 
4
- export interface LinkBaseProps {
5
- as?: string
6
- type?: string
7
- disabled?: boolean
8
- onClick?: ((e: MouseEvent) => void | Promise<void>) | Array<((e: MouseEvent) => void | Promise<void>)>
9
- href?: string
10
- navigate?: (e: MouseEvent) => void
11
- target?: LinkProps['target']
12
- rel?: LinkProps['rel']
13
- active?: boolean
14
- isExternal?: boolean
15
- }
16
3
  </script>
17
4
 
18
- <script setup lang="ts">
19
- import { Primitive } from 'reka-ui'
20
-
21
- const props = withDefaults(defineProps<LinkBaseProps>(), {
22
- as: 'button',
23
- type: 'button'
24
- })
25
-
26
- function onClickWrapper(e: MouseEvent) {
5
+ <script setup>
6
+ const props = defineProps({
7
+ as: {
8
+ type: String,
9
+ required: false,
10
+ default: "button"
11
+ },
12
+ type: {
13
+ type: String,
14
+ required: false,
15
+ default: "button"
16
+ },
17
+ disabled: {
18
+ type: Boolean,
19
+ required: false
20
+ },
21
+ onClick: {
22
+ type: [Function, Array],
23
+ required: false
24
+ },
25
+ href: {
26
+ type: String,
27
+ required: false
28
+ },
29
+ navigate: {
30
+ type: Function,
31
+ required: false
32
+ },
33
+ target: {
34
+ type: [String, Object, null],
35
+ required: false
36
+ },
37
+ rel: {
38
+ type: [String, Object, null],
39
+ required: false
40
+ },
41
+ active: {
42
+ type: Boolean,
43
+ required: false
44
+ },
45
+ isExternal: {
46
+ type: Boolean,
47
+ required: false
48
+ }
49
+ });
50
+ function onClickWrapper(e) {
27
51
  if (props.disabled) {
28
- e.stopPropagation()
29
- e.preventDefault()
30
- return
52
+ e.stopPropagation();
53
+ e.preventDefault();
54
+ return;
31
55
  }
32
-
33
56
  if (props.onClick) {
34
57
  for (const onClick of Array.isArray(props.onClick) ? props.onClick : [props.onClick]) {
35
- onClick(e)
58
+ onClick(e);
36
59
  }
37
60
  }
38
-
39
61
  if (props.href && props.navigate && !props.isExternal) {
40
- props.navigate(e)
62
+ props.navigate(e);
41
63
  }
42
64
  }
43
65
  </script>
@@ -45,18 +67,18 @@ function onClickWrapper(e: MouseEvent) {
45
67
  <template>
46
68
  <Primitive
47
69
  v-bind="href ? {
48
- 'as': 'a',
49
- 'href': disabled ? undefined : href,
50
- 'aria-disabled': disabled ? 'true' : undefined,
51
- 'role': disabled ? 'link' : undefined,
52
- 'tabindex': disabled ? -1 : undefined
53
- } : as === 'button' ? {
54
- as,
55
- type,
56
- disabled
57
- } : {
58
- as
59
- }"
70
+ 'as': 'a',
71
+ 'href': disabled ? void 0 : href,
72
+ 'aria-disabled': disabled ? 'true' : void 0,
73
+ 'role': disabled ? 'link' : void 0,
74
+ 'tabindex': disabled ? -1 : void 0
75
+ } : as === 'button' ? {
76
+ as,
77
+ type,
78
+ disabled
79
+ } : {
80
+ as
81
+ }"
60
82
  :rel="rel"
61
83
  :target="target"
62
84
  @click="onClickWrapper"
@@ -0,0 +1,48 @@
1
+ import type { LinkProps } from '../types';
2
+ export interface LinkBaseProps {
3
+ as?: string;
4
+ type?: string;
5
+ disabled?: boolean;
6
+ onClick?: ((e: MouseEvent) => void | Promise<void>) | Array<((e: MouseEvent) => void | Promise<void>)>;
7
+ href?: string;
8
+ navigate?: (e: MouseEvent) => void;
9
+ target?: LinkProps['target'];
10
+ rel?: LinkProps['rel'];
11
+ active?: boolean;
12
+ isExternal?: boolean;
13
+ }
14
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LinkBaseProps>, {
15
+ as: string;
16
+ type: string;
17
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LinkBaseProps>, {
18
+ as: string;
19
+ type: string;
20
+ }>>> & Readonly<{}>, {
21
+ as: string;
22
+ type: string;
23
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
24
+ default?(_: {}): any;
25
+ }>;
26
+ export default _default;
27
+ type __VLS_WithDefaults<P, D> = {
28
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
29
+ default: D[K];
30
+ }> : P[K];
31
+ };
32
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
33
+ type __VLS_TypePropsToOption<T> = {
34
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
35
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
36
+ } : {
37
+ type: import('vue').PropType<T[K]>;
38
+ required: true;
39
+ };
40
+ };
41
+ type __VLS_WithTemplateSlots<T, S> = T & {
42
+ new (): {
43
+ $slots: S;
44
+ };
45
+ };
46
+ type __VLS_PrettifyLocal<T> = {
47
+ [K in keyof T]: T[K];
48
+ } & {};
@@ -1,140 +1,118 @@
1
- <script lang="ts">
2
- import type { DialogRootProps, DialogRootEmits, DialogContentProps, DialogContentEmits } from 'reka-ui'
3
- import type { VariantProps } from 'tailwind-variants'
4
- import type { AppConfig } from '@nuxt/schema'
5
- import _appConfig from '#build/app.config'
6
- import theme from '#build/b24ui/modal'
7
- import { tv } from '../utils/tv'
8
- import type { ButtonProps, IconComponent } from '../types'
9
- import type { EmitsToProps } from '../types/utils'
10
-
11
- const appConfigModal = _appConfig as AppConfig & { b24ui: { modal: Partial<typeof theme> } }
12
-
13
- const modal = tv({ extend: tv(theme), ...(appConfigModal.b24ui?.modal || {}) })
14
-
15
- type ModalVariants = VariantProps<typeof modal>
16
-
17
- export interface ModalProps extends DialogRootProps {
18
- title?: string
19
- description?: string
20
- /**
21
- * The content of the modal
22
- */
23
- content?: Omit<DialogContentProps, 'as' | 'asChild' | 'forceMount'> & Partial<EmitsToProps<DialogContentEmits>>
24
- /**
25
- * Render an overlay behind the modal.
26
- * @defaultValue true
27
- */
28
- overlay?: boolean
29
- /**
30
- * Render an overlay blur behind the modal.
31
- * `auto` use `motion-safe`.
32
- * @defaultValue 'auto'
33
- */
34
- overlayBlur?: ModalVariants['overlayBlur']
35
- /**
36
- * Animate the modal when opening or closing.
37
- * @defaultValue true
38
- */
39
- transition?: boolean
40
- /**
41
- * When `true`, the modal will take up the full screen.
42
- * @defaultValue false
43
- */
44
- fullscreen?: boolean
45
- /**
46
- * Render the modal in a portal.
47
- * @defaultValue true
48
- */
49
- portal?: boolean
50
- /**
51
- * Display a close button to dismiss the modal.
52
- * `{ size: 'xs', color: 'link' }`{lang="ts"}
53
- * @defaultValue true
54
- */
55
- close?: boolean | Partial<ButtonProps>
56
- /**
57
- * The icon displayed in the close button.
58
- * @defaultValue icons.close
59
- * @IconComponent
60
- */
61
- closeIcon?: IconComponent
62
- /**
63
- * When `false`, the modal will not close when clicking outside or pressing escape.
64
- * @defaultValue false
65
- */
66
- dismissible?: boolean
67
- /**
68
- * @defaultValue true
69
- */
70
- scrollbarThin?: boolean
71
- class?: any
72
- b24ui?: Partial<typeof modal.slots>
73
- }
74
-
75
- export interface ModalEmits extends DialogRootEmits {
76
- 'after:leave': []
77
- }
78
-
79
- export interface ModalSlots {
80
- default(props: { open: boolean }): any
81
- content(props?: {}): any
82
- header(props?: {}): any
83
- title(props?: {}): any
84
- description(props?: {}): any
85
- close(props: { b24ui: ReturnType<typeof modal> }): any
86
- body(props?: {}): any
87
- footer(props?: {}): any
88
- }
1
+ <script>
2
+ import _appConfig from "#build/app.config";
3
+ import theme from "#build/b24ui/modal";
4
+ import { tv } from "../utils/tv";
5
+ const appConfigModal = _appConfig;
6
+ const modal = tv({ extend: tv(theme), ...appConfigModal.b24ui?.modal || {} });
89
7
  </script>
90
8
 
91
- <script setup lang="ts">
92
- import { computed, toRef } from 'vue'
93
- import { DialogRoot, DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose, VisuallyHidden, useForwardPropsEmits } from 'reka-ui'
94
- import { reactivePick } from '@vueuse/core'
95
- import { useLocale } from '../composables/useLocale'
96
- import icons from '../dictionary/icons'
97
- import B24Button from './Button.vue'
98
-
99
- const props = withDefaults(defineProps<ModalProps>(), {
100
- close: true,
101
- portal: true,
102
- overlay: true,
103
- transition: true,
104
- modal: true,
105
- dismissible: true,
106
- scrollbarThin: true,
107
- overlayBlur: 'auto'
108
- })
109
- const emits = defineEmits<ModalEmits>()
110
- const slots = defineSlots<ModalSlots>()
111
-
112
- const { t } = useLocale()
113
-
114
- const rootProps = useForwardPropsEmits(reactivePick(props, 'open', 'defaultOpen', 'modal'), emits)
115
- const contentProps = toRef(() => props.content)
9
+ <script setup>
10
+ import { computed, toRef } from "vue";
11
+ import { useForwardPropsEmits } from "reka-ui";
12
+ import { reactivePick } from "@vueuse/core";
13
+ import { useLocale } from "../composables/useLocale";
14
+ const props = defineProps({
15
+ title: {
16
+ type: String,
17
+ required: false
18
+ },
19
+ description: {
20
+ type: String,
21
+ required: false
22
+ },
23
+ content: {
24
+ type: Object,
25
+ required: false
26
+ },
27
+ overlay: {
28
+ type: Boolean,
29
+ required: false,
30
+ default: true
31
+ },
32
+ overlayBlur: {
33
+ type: null,
34
+ required: false,
35
+ default: "auto"
36
+ },
37
+ transition: {
38
+ type: Boolean,
39
+ required: false,
40
+ default: true
41
+ },
42
+ fullscreen: {
43
+ type: Boolean,
44
+ required: false
45
+ },
46
+ portal: {
47
+ type: Boolean,
48
+ required: false,
49
+ default: true
50
+ },
51
+ close: {
52
+ type: [Boolean, Object],
53
+ required: false,
54
+ default: true
55
+ },
56
+ closeIcon: {
57
+ type: [Function, Object],
58
+ required: false
59
+ },
60
+ dismissible: {
61
+ type: Boolean,
62
+ required: false,
63
+ default: true
64
+ },
65
+ scrollbarThin: {
66
+ type: Boolean,
67
+ required: false,
68
+ default: true
69
+ },
70
+ class: {
71
+ type: null,
72
+ required: false
73
+ },
74
+ b24ui: {
75
+ type: Object,
76
+ required: false
77
+ },
78
+ open: {
79
+ type: Boolean,
80
+ required: false
81
+ },
82
+ defaultOpen: {
83
+ type: Boolean,
84
+ required: false
85
+ },
86
+ modal: {
87
+ type: Boolean,
88
+ required: false,
89
+ default: true
90
+ }
91
+ });
92
+ const emits = defineEmits(["after:leave", "update:open"]);
93
+ const slots = defineSlots();
94
+ const { t } = useLocale();
95
+ const rootProps = useForwardPropsEmits(reactivePick(props, "open", "defaultOpen", "modal"), emits);
96
+ const contentProps = toRef(() => props.content);
116
97
  const contentEvents = computed(() => {
117
98
  const events = {
118
- closeAutoFocus: (e: Event) => e.preventDefault()
119
- }
120
-
99
+ closeAutoFocus: (e) => e.preventDefault()
100
+ };
121
101
  if (!props.dismissible) {
122
102
  return {
123
- pointerDownOutside: (e: Event) => e.preventDefault(),
124
- interactOutside: (e: Event) => e.preventDefault(),
125
- escapeKeyDown: (e: Event) => e.preventDefault(),
103
+ pointerDownOutside: (e) => e.preventDefault(),
104
+ interactOutside: (e) => e.preventDefault(),
105
+ escapeKeyDown: (e) => e.preventDefault(),
126
106
  ...events
127
- }
107
+ };
128
108
  }
129
-
130
- return events
131
- })
132
-
109
+ return events;
110
+ });
133
111
  const b24ui = computed(() => modal({
134
112
  transition: props.transition,
135
113
  fullscreen: props.fullscreen,
136
114
  overlayBlur: props.overlayBlur
137
- }))
115
+ }));
138
116
  </script>
139
117
 
140
118
  <template>
@@ -147,7 +125,7 @@ const b24ui = computed(() => modal({
147
125
  <DialogOverlay v-if="overlay" :class="b24ui.overlay({ class: props.b24ui?.overlay })" />
148
126
 
149
127
  <DialogContent :class="b24ui.content({ class: [!slots.default && props.class, props.b24ui?.content] })" v-bind="contentProps" @after-leave="emits('after:leave')" v-on="contentEvents">
150
- <VisuallyHidden v-if="!!slots.content && ((title || !!slots.title) || (description || !!slots.description))">
128
+ <VisuallyHidden v-if="!!slots.content && (title || !!slots.title || (description || !!slots.description))">
151
129
  <DialogTitle v-if="title || !!slots.title">
152
130
  <slot name="title">
153
131
  {{ title }}
@@ -186,7 +164,7 @@ const b24ui = computed(() => modal({
186
164
  size="xs"
187
165
  color="link"
188
166
  :aria-label="t('modal.close')"
189
- v-bind="(typeof close === 'object' ? close as Partial<ButtonProps> : {})"
167
+ v-bind="typeof close === 'object' ? close : {}"
190
168
  :class="b24ui.close({ class: props.b24ui?.close })"
191
169
  />
192
170
  </slot>