@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.
Files changed (252) hide show
  1. package/.nuxt/b24ui/advice.ts +10 -2
  2. package/.nuxt/b24ui/alert.ts +10 -2
  3. package/.nuxt/b24ui/avatar-group.ts +10 -2
  4. package/.nuxt/b24ui/avatar.ts +10 -2
  5. package/.nuxt/b24ui/badge.ts +10 -2
  6. package/.nuxt/b24ui/button-group.ts +10 -2
  7. package/.nuxt/b24ui/button.ts +16 -6
  8. package/.nuxt/b24ui/calendar.ts +10 -2
  9. package/.nuxt/b24ui/checkbox.ts +10 -2
  10. package/.nuxt/b24ui/chip.ts +10 -2
  11. package/.nuxt/b24ui/collapsible.ts +10 -2
  12. package/.nuxt/b24ui/container.ts +10 -2
  13. package/.nuxt/b24ui/countdown.ts +10 -2
  14. package/.nuxt/b24ui/description-list.ts +10 -2
  15. package/.nuxt/b24ui/dropdown-menu.ts +10 -2
  16. package/.nuxt/b24ui/form-field.ts +10 -2
  17. package/.nuxt/b24ui/form.ts +10 -2
  18. package/.nuxt/b24ui/input-menu.ts +12 -4
  19. package/.nuxt/b24ui/input-number.ts +10 -2
  20. package/.nuxt/b24ui/input.ts +10 -2
  21. package/.nuxt/b24ui/kbd.ts +10 -2
  22. package/.nuxt/b24ui/link.ts +10 -2
  23. package/.nuxt/b24ui/modal.ts +10 -2
  24. package/.nuxt/b24ui/navbar-divider.ts +10 -2
  25. package/.nuxt/b24ui/navbar-section.ts +10 -2
  26. package/.nuxt/b24ui/navbar-spacer.ts +10 -2
  27. package/.nuxt/b24ui/navbar.ts +10 -2
  28. package/.nuxt/b24ui/navigation-menu.ts +10 -2
  29. package/.nuxt/b24ui/popover.ts +10 -2
  30. package/.nuxt/b24ui/progress.ts +10 -2
  31. package/.nuxt/b24ui/radio-group.ts +10 -2
  32. package/.nuxt/b24ui/range.ts +10 -2
  33. package/.nuxt/b24ui/select-menu.ts +14 -6
  34. package/.nuxt/b24ui/select.ts +12 -4
  35. package/.nuxt/b24ui/separator.ts +10 -2
  36. package/.nuxt/b24ui/sidebar-body.ts +10 -2
  37. package/.nuxt/b24ui/sidebar-footer.ts +10 -2
  38. package/.nuxt/b24ui/sidebar-header.ts +10 -2
  39. package/.nuxt/b24ui/sidebar-heading.ts +10 -2
  40. package/.nuxt/b24ui/sidebar-layout.ts +10 -2
  41. package/.nuxt/b24ui/sidebar-section.ts +10 -2
  42. package/.nuxt/b24ui/sidebar-spacer.ts +10 -2
  43. package/.nuxt/b24ui/sidebar.ts +10 -2
  44. package/.nuxt/b24ui/skeleton.ts +10 -2
  45. package/.nuxt/b24ui/slideover.ts +10 -2
  46. package/.nuxt/b24ui/stacked-layout.ts +10 -2
  47. package/.nuxt/b24ui/switch.ts +10 -2
  48. package/.nuxt/b24ui/tabs.ts +10 -2
  49. package/.nuxt/b24ui/textarea.ts +10 -2
  50. package/.nuxt/b24ui/toast.ts +10 -2
  51. package/.nuxt/b24ui/toaster.ts +10 -2
  52. package/.nuxt/b24ui/tooltip.ts +10 -2
  53. package/cli/templates.mjs +19 -15
  54. package/dist/meta.d.mts +5675 -7513
  55. package/dist/meta.mjs +5675 -7513
  56. package/dist/module.json +3 -3
  57. package/dist/module.mjs +2 -2
  58. package/dist/runtime/components/Advice.vue +27 -55
  59. package/dist/runtime/components/Advice.vue.d.ts +56 -0
  60. package/dist/runtime/components/Alert.vue +35 -97
  61. package/dist/runtime/components/Alert.vue.d.ts +97 -0
  62. package/dist/runtime/components/App.vue +24 -34
  63. package/dist/runtime/components/App.vue.d.ts +23 -0
  64. package/dist/runtime/components/Avatar.vue +43 -82
  65. package/dist/runtime/components/Avatar.vue.d.ts +62 -0
  66. package/dist/runtime/components/AvatarGroup.vue +40 -77
  67. package/dist/runtime/components/AvatarGroup.vue.d.ts +40 -0
  68. package/dist/runtime/components/Badge.vue +40 -84
  69. package/dist/runtime/components/Badge.vue.d.ts +78 -0
  70. package/dist/runtime/components/Button.vue +107 -164
  71. package/dist/runtime/components/Button.vue.d.ts +115 -0
  72. package/dist/runtime/components/ButtonGroup.vue +25 -52
  73. package/dist/runtime/components/ButtonGroup.vue.d.ts +63 -0
  74. package/dist/runtime/components/Calendar.vue +73 -153
  75. package/dist/runtime/components/Calendar.vue.d.ts +107 -0
  76. package/dist/runtime/components/Checkbox.vue +42 -74
  77. package/dist/runtime/components/Checkbox.vue.d.ts +55 -0
  78. package/dist/runtime/components/Chip.vue +26 -75
  79. package/dist/runtime/components/Chip.vue.d.ts +77 -0
  80. package/dist/runtime/components/Collapsible.vue +22 -41
  81. package/dist/runtime/components/Collapsible.vue.d.ts +50 -0
  82. package/dist/runtime/components/Container.vue +15 -28
  83. package/dist/runtime/components/Container.vue.d.ts +27 -0
  84. package/dist/runtime/components/Countdown.vue +153 -379
  85. package/dist/runtime/components/Countdown.vue.d.ts +122 -0
  86. package/dist/runtime/components/DescriptionList.vue +78 -150
  87. package/dist/runtime/components/DescriptionList.vue.d.ts +109 -0
  88. package/dist/runtime/components/DropdownMenu.vue +38 -140
  89. package/dist/runtime/components/DropdownMenu.vue.d.ts +133 -0
  90. package/dist/runtime/components/DropdownMenuContent.vue +65 -79
  91. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +51 -0
  92. package/dist/runtime/components/Form.vue +132 -218
  93. package/dist/runtime/components/Form.vue.d.ts +55 -0
  94. package/dist/runtime/components/FormField.vue +36 -81
  95. package/dist/runtime/components/FormField.vue.d.ts +73 -0
  96. package/dist/runtime/components/Input.vue +79 -180
  97. package/dist/runtime/components/Input.vue.d.ts +135 -0
  98. package/dist/runtime/components/InputMenu.vue +185 -382
  99. package/dist/runtime/components/InputMenu.vue.d.ts +357 -0
  100. package/dist/runtime/components/InputNumber.vue +77 -176
  101. package/dist/runtime/components/InputNumber.vue.d.ts +238 -0
  102. package/dist/runtime/components/Kbd.vue +20 -46
  103. package/dist/runtime/components/Kbd.vue.d.ts +55 -0
  104. package/dist/runtime/components/Link.vue +99 -179
  105. package/dist/runtime/components/Link.vue.d.ts +129 -0
  106. package/dist/runtime/components/LinkBase.vue +33 -42
  107. package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
  108. package/dist/runtime/components/Modal.vue +48 -128
  109. package/dist/runtime/components/Modal.vue.d.ts +124 -0
  110. package/dist/runtime/components/ModalDialogClose.vue +5 -8
  111. package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
  112. package/dist/runtime/components/Navbar.vue +15 -33
  113. package/dist/runtime/components/Navbar.vue.d.ts +46 -0
  114. package/dist/runtime/components/NavbarDivider.vue +15 -33
  115. package/dist/runtime/components/NavbarDivider.vue.d.ts +46 -0
  116. package/dist/runtime/components/NavbarSection.vue +15 -33
  117. package/dist/runtime/components/NavbarSection.vue.d.ts +46 -0
  118. package/dist/runtime/components/NavbarSpacer.vue +15 -33
  119. package/dist/runtime/components/NavbarSpacer.vue.d.ts +46 -0
  120. package/dist/runtime/components/NavigationMenu.vue +74 -209
  121. package/dist/runtime/components/NavigationMenu.vue.d.ts +159 -0
  122. package/dist/runtime/components/OverlayProvider.vue +14 -18
  123. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
  124. package/dist/runtime/components/Popover.vue +40 -82
  125. package/dist/runtime/components/Popover.vue.d.ts +79 -0
  126. package/dist/runtime/components/Progress.vue +70 -137
  127. package/dist/runtime/components/Progress.vue.d.ts +103 -0
  128. package/dist/runtime/components/RadioGroup.vue +59 -135
  129. package/dist/runtime/components/RadioGroup.vue.d.ts +88 -0
  130. package/dist/runtime/components/Range.vue +46 -86
  131. package/dist/runtime/components/Range.vue.d.ts +73 -0
  132. package/dist/runtime/components/Select.vue +110 -261
  133. package/dist/runtime/components/Select.vue.d.ts +170 -0
  134. package/dist/runtime/components/SelectMenu.vue +161 -348
  135. package/dist/runtime/components/SelectMenu.vue.d.ts +217 -0
  136. package/dist/runtime/components/Separator.vue +28 -72
  137. package/dist/runtime/components/Separator.vue.d.ts +77 -0
  138. package/dist/runtime/components/Sidebar.vue +15 -33
  139. package/dist/runtime/components/Sidebar.vue.d.ts +46 -0
  140. package/dist/runtime/components/SidebarBody.vue +17 -39
  141. package/dist/runtime/components/SidebarBody.vue.d.ts +53 -0
  142. package/dist/runtime/components/SidebarFooter.vue +15 -33
  143. package/dist/runtime/components/SidebarFooter.vue.d.ts +46 -0
  144. package/dist/runtime/components/SidebarHeader.vue +15 -33
  145. package/dist/runtime/components/SidebarHeader.vue.d.ts +46 -0
  146. package/dist/runtime/components/SidebarHeading.vue +15 -33
  147. package/dist/runtime/components/SidebarHeading.vue.d.ts +46 -0
  148. package/dist/runtime/components/SidebarLayout.vue +34 -71
  149. package/dist/runtime/components/SidebarLayout.vue.d.ts +65 -0
  150. package/dist/runtime/components/SidebarSection.vue +15 -33
  151. package/dist/runtime/components/SidebarSection.vue.d.ts +46 -0
  152. package/dist/runtime/components/SidebarSpacer.vue +15 -33
  153. package/dist/runtime/components/SidebarSpacer.vue.d.ts +46 -0
  154. package/dist/runtime/components/Skeleton.vue +14 -23
  155. package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
  156. package/dist/runtime/components/Slideover.vue +50 -132
  157. package/dist/runtime/components/Slideover.vue.d.ts +127 -0
  158. package/dist/runtime/components/StackedLayout.vue +34 -74
  159. package/dist/runtime/components/StackedLayout.vue.d.ts +65 -0
  160. package/dist/runtime/components/Switch.vue +46 -96
  161. package/dist/runtime/components/Switch.vue.d.ts +77 -0
  162. package/dist/runtime/components/Tabs.vue +41 -106
  163. package/dist/runtime/components/Tabs.vue.d.ts +104 -0
  164. package/dist/runtime/components/Textarea.vue +92 -202
  165. package/dist/runtime/components/Textarea.vue.d.ts +141 -0
  166. package/dist/runtime/components/Toast.vue +47 -106
  167. package/dist/runtime/components/Toast.vue.d.ts +95 -0
  168. package/dist/runtime/components/Toaster.vue +70 -116
  169. package/dist/runtime/components/Toaster.vue.d.ts +70 -0
  170. package/dist/runtime/components/Tooltip.vue +36 -65
  171. package/dist/runtime/components/Tooltip.vue.d.ts +65 -0
  172. package/dist/runtime/components/content/TableWrapper.vue +24 -71
  173. package/dist/runtime/components/content/TableWrapper.vue.d.ts +83 -0
  174. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  175. package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
  176. package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
  177. package/dist/runtime/composables/useFormField.d.ts +2 -2
  178. package/dist/runtime/composables/useOverlay.d.ts +14 -7
  179. package/dist/runtime/composables/useOverlay.js +14 -6
  180. package/dist/runtime/prose/A.vue +16 -26
  181. package/dist/runtime/prose/A.vue.d.ts +27 -0
  182. package/dist/runtime/prose/Blockquote.vue +14 -26
  183. package/dist/runtime/prose/Blockquote.vue.d.ts +27 -0
  184. package/dist/runtime/prose/Code.vue +15 -32
  185. package/dist/runtime/prose/Code.vue.d.ts +31 -0
  186. package/dist/runtime/prose/Em.vue +16 -26
  187. package/dist/runtime/prose/Em.vue.d.ts +27 -0
  188. package/dist/runtime/prose/H1.vue +14 -26
  189. package/dist/runtime/prose/H1.vue.d.ts +27 -0
  190. package/dist/runtime/prose/H2.vue +14 -26
  191. package/dist/runtime/prose/H2.vue.d.ts +27 -0
  192. package/dist/runtime/prose/H3.vue +14 -26
  193. package/dist/runtime/prose/H3.vue.d.ts +27 -0
  194. package/dist/runtime/prose/H4.vue +14 -26
  195. package/dist/runtime/prose/H4.vue.d.ts +27 -0
  196. package/dist/runtime/prose/H5.vue +14 -26
  197. package/dist/runtime/prose/H5.vue.d.ts +27 -0
  198. package/dist/runtime/prose/H6.vue +14 -26
  199. package/dist/runtime/prose/H6.vue.d.ts +27 -0
  200. package/dist/runtime/prose/Hr.vue +13 -22
  201. package/dist/runtime/prose/Hr.vue.d.ts +19 -0
  202. package/dist/runtime/prose/Img.vue +13 -26
  203. package/dist/runtime/prose/Img.vue.d.ts +19 -0
  204. package/dist/runtime/prose/Li.vue +14 -26
  205. package/dist/runtime/prose/Li.vue.d.ts +27 -0
  206. package/dist/runtime/prose/Ol.vue +14 -26
  207. package/dist/runtime/prose/Ol.vue.d.ts +27 -0
  208. package/dist/runtime/prose/P.vue +14 -26
  209. package/dist/runtime/prose/P.vue.d.ts +27 -0
  210. package/dist/runtime/prose/Pre.vue +17 -33
  211. package/dist/runtime/prose/Pre.vue.d.ts +47 -0
  212. package/dist/runtime/prose/Strong.vue +14 -26
  213. package/dist/runtime/prose/Strong.vue.d.ts +27 -0
  214. package/dist/runtime/prose/Table.vue +21 -57
  215. package/dist/runtime/prose/Table.vue.d.ts +74 -0
  216. package/dist/runtime/prose/Tbody.vue +14 -26
  217. package/dist/runtime/prose/Tbody.vue.d.ts +27 -0
  218. package/dist/runtime/prose/Td.vue +14 -26
  219. package/dist/runtime/prose/Td.vue.d.ts +27 -0
  220. package/dist/runtime/prose/Th.vue +14 -26
  221. package/dist/runtime/prose/Th.vue.d.ts +27 -0
  222. package/dist/runtime/prose/Thead.vue +14 -26
  223. package/dist/runtime/prose/Thead.vue.d.ts +27 -0
  224. package/dist/runtime/prose/Tr.vue +14 -26
  225. package/dist/runtime/prose/Tr.vue.d.ts +27 -0
  226. package/dist/runtime/prose/Ul.vue +14 -26
  227. package/dist/runtime/prose/Ul.vue.d.ts +27 -0
  228. package/dist/runtime/types/form.d.ts +1 -0
  229. package/dist/runtime/types/utils.d.ts +42 -3
  230. package/dist/runtime/utils/link.d.ts +3 -3
  231. package/dist/runtime/utils/tv.js +2 -2
  232. package/dist/runtime/vue/components/Link.vue +122 -208
  233. package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
  234. package/dist/shared/{b24ui-nuxt.CS9Lf0os.mjs → b24ui-nuxt.wBs9vEU5.mjs} +33 -8
  235. package/dist/types.d.mts +3 -5
  236. package/dist/unplugin.mjs +1 -1
  237. package/dist/vite.mjs +1 -1
  238. package/package.json +19 -27
  239. package/dist/meta.cjs +0 -72112
  240. package/dist/meta.d.cts +0 -72110
  241. package/dist/meta.d.ts +0 -72110
  242. package/dist/module.cjs +0 -63
  243. package/dist/module.d.cts +0 -15
  244. package/dist/module.d.ts +0 -15
  245. package/dist/shared/b24ui-nuxt.DrKwIWoc.cjs +0 -7721
  246. package/dist/types.d.ts +0 -7
  247. package/dist/unplugin.cjs +0 -236
  248. package/dist/unplugin.d.cts +0 -33
  249. package/dist/unplugin.d.ts +0 -33
  250. package/dist/vite.cjs +0 -21
  251. package/dist/vite.d.cts +0 -14
  252. package/dist/vite.d.ts +0 -14
@@ -1,92 +1,53 @@
1
- <script lang="ts">
2
- import type { VariantProps } from 'tailwind-variants'
3
- import type { AppConfig } from '@nuxt/schema'
4
- import _appConfig from '#build/app.config'
5
- import theme from '#build/b24ui/avatar'
6
- import { tv } from '../utils/tv'
7
- import type { IconComponent } from '../types'
8
-
9
- const appConfigAvatar = _appConfig as AppConfig & { b24ui: { avatar: Partial<typeof theme> } }
10
-
11
- const avatar = tv({ extend: tv(theme), ...(appConfigAvatar.b24ui?.avatar || {}) })
12
-
13
- type AvatarVariants = VariantProps<typeof avatar>
14
-
15
- export interface AvatarProps {
16
- /**
17
- * The element or component this component should render as.
18
- * @defaultValue 'span'
19
- */
20
- as?: any
21
- src?: string
22
- alt?: string
23
- /**
24
- * Display an icon on the left side.
25
- * @IconComponent
26
- */
27
- icon?: IconComponent
28
- text?: string
29
- /**
30
- * @defaultValue 'md'
31
- */
32
- size?: AvatarVariants['size']
33
- class?: any
34
- style?: any
35
- b24ui?: Partial<typeof avatar.slots>
36
- }
37
-
38
- export interface AvatarSlots {
39
- default(props?: {}): any
40
- }
1
+ <script>
2
+ import theme from "#build/b24ui/avatar";
41
3
  </script>
42
4
 
43
- <script setup lang="ts">
44
- import { ref, computed, watch } from 'vue'
45
- import { Primitive, Slot } from 'reka-ui'
46
- import ImageComponent from '#build/b24ui-image-component'
47
- import { useAvatarGroup } from '../composables/useAvatarGroup'
48
-
49
- defineOptions({ inheritAttrs: false })
50
-
51
- const props = withDefaults(defineProps<AvatarProps>(), { as: 'span' })
52
-
53
- const fallback = computed(() => props.text || (props.alt || '')
54
- .replace(/[+\-*)(}\][{]/g, '')
55
- .split(' ')
56
- .map(word => word.charAt(0))
57
- .join('')
58
- .substring(0, 2)
59
- )
60
-
61
- const { size } = useAvatarGroup(props)
62
-
63
- // eslint-disable-next-line vue/no-dupe-keys
64
- const b24ui = computed(() => avatar({
5
+ <script setup>
6
+ import { ref, computed, watch } from "vue";
7
+ import { Primitive, Slot } from "reka-ui";
8
+ import { useAppConfig } from "#imports";
9
+ import ImageComponent from "#build/b24ui-image-component";
10
+ import { useAvatarGroup } from "../composables/useAvatarGroup";
11
+ import { tv } from "../utils/tv";
12
+ defineOptions({ inheritAttrs: false });
13
+ const props = defineProps({
14
+ as: { type: null, required: false, default: "span" },
15
+ src: { type: String, required: false },
16
+ alt: { type: String, required: false },
17
+ icon: { type: [Function, Object], required: false },
18
+ text: { type: String, required: false },
19
+ size: { type: null, required: false },
20
+ class: { type: null, required: false },
21
+ style: { type: null, required: false },
22
+ b24ui: { type: null, required: false }
23
+ });
24
+ const fallback = computed(
25
+ () => props.text || (props.alt || "").replace(/[+\-*)(}\][{]/g, "").split(" ").map((word) => word.charAt(0)).join("").substring(0, 2)
26
+ );
27
+ const appConfig = useAppConfig();
28
+ const { size } = useAvatarGroup(props);
29
+ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.avatar || {} })({
65
30
  size: size.value
66
- }))
67
-
31
+ }));
68
32
  const sizePx = computed(() => ({
69
- '3xs': 10,
70
- '2xs': 14,
71
- 'xs': 18,
72
- 'sm': 22,
73
- 'md': 32,
74
- 'lg': 42,
75
- 'xl': 48,
76
- '2xl': 60,
77
- '3xl': 94
78
- })[props.size || 'md'])
79
-
80
- const error = ref(false)
81
-
33
+ "3xs": 10,
34
+ "2xs": 14,
35
+ "xs": 18,
36
+ "sm": 22,
37
+ "md": 32,
38
+ "lg": 42,
39
+ "xl": 48,
40
+ "2xl": 60,
41
+ "3xl": 94
42
+ })[props.size || "md"]);
43
+ const error = ref(false);
82
44
  watch(() => props.src, () => {
83
45
  if (error.value) {
84
- error.value = false
46
+ error.value = false;
85
47
  }
86
- })
87
-
48
+ });
88
49
  function onError() {
89
- error.value = true
50
+ error.value = true;
90
51
  }
91
52
  </script>
92
53
 
@@ -108,7 +69,7 @@ function onError() {
108
69
  <Slot v-else v-bind="$attrs">
109
70
  <slot>
110
71
  <Component :is="icon" v-if="icon" :class="b24ui.icon({ class: props.b24ui?.icon })" />
111
- <span v-else :class="b24ui.fallback({ class: props.b24ui?.fallback })">{{ fallback || '&nbsp;' }}</span>
72
+ <span v-else :class="b24ui.fallback({ class: props.b24ui?.fallback })">{{ fallback || '\xA0' }}</span>
112
73
  </slot>
113
74
  </Slot>
114
75
  </Primitive>
@@ -0,0 +1,62 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/b24ui/avatar';
3
+ import type { ComponentConfig } from '../types/utils';
4
+ import type { IconComponent } from '../types';
5
+ type Avatar = ComponentConfig<typeof theme, AppConfig, 'avatar'>;
6
+ export interface AvatarProps {
7
+ /**
8
+ * The element or component this component should render as.
9
+ * @defaultValue 'span'
10
+ */
11
+ as?: any;
12
+ src?: string;
13
+ alt?: string;
14
+ /**
15
+ * Display an icon on the left side.
16
+ * @IconComponent
17
+ */
18
+ icon?: IconComponent;
19
+ text?: string;
20
+ /**
21
+ * @defaultValue 'md'
22
+ */
23
+ size?: Avatar['variants']['size'];
24
+ class?: any;
25
+ style?: any;
26
+ b24ui?: Avatar['slots'];
27
+ }
28
+ export interface AvatarSlots {
29
+ default(props?: {}): any;
30
+ }
31
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<AvatarProps>, {
32
+ as: string;
33
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<AvatarProps>, {
34
+ as: string;
35
+ }>>> & Readonly<{}>, {
36
+ as: any;
37
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
38
+ default?(_: {}): any;
39
+ }>;
40
+ export default _default;
41
+ type __VLS_WithDefaults<P, D> = {
42
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
43
+ default: D[K];
44
+ }> : P[K];
45
+ };
46
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
47
+ type __VLS_TypePropsToOption<T> = {
48
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
49
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
50
+ } : {
51
+ type: import('vue').PropType<T[K]>;
52
+ required: true;
53
+ };
54
+ };
55
+ type __VLS_WithTemplateSlots<T, S> = T & {
56
+ new (): {
57
+ $slots: S;
58
+ };
59
+ };
60
+ type __VLS_PrettifyLocal<T> = {
61
+ [K in keyof T]: T[K];
62
+ } & {};
@@ -1,97 +1,60 @@
1
- <script lang="ts">
2
- import type { VariantProps } from 'tailwind-variants'
3
- import type { AppConfig } from '@nuxt/schema'
4
- import _appConfig from '#build/app.config'
5
- import theme from '#build/b24ui/avatar-group'
6
- import { tv } from '../utils/tv'
7
-
8
- const appConfigAvatarGroup = _appConfig as AppConfig & { b24ui: { avatarGroup: Partial<typeof theme> } }
9
-
10
- const avatarGroup = tv({ extend: tv(theme), ...(appConfigAvatarGroup.b24ui?.avatarGroup || {}) })
11
-
12
- type AvatarGroupVariants = VariantProps<typeof avatarGroup>
13
-
14
- export interface AvatarGroupProps {
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?: AvatarGroupVariants['size']
24
- /**
25
- * The maximum number of avatars to display.
26
- */
27
- max?: number | string
28
- class?: any
29
- b24ui?: Partial<typeof avatarGroup.slots>
30
- }
31
-
32
- export interface AvatarGroupSlots {
33
- default(props?: {}): any
34
- }
1
+ <script>
2
+ import theme from "#build/b24ui/avatar-group";
35
3
  </script>
36
4
 
37
- <script setup lang="ts">
38
- import { computed, provide } from 'vue'
39
- import { Primitive } from 'reka-ui'
40
- import { avatarGroupInjectionKey } from '../composables/useAvatarGroup'
41
- import B24Avatar from './Avatar.vue'
42
-
43
- const props = defineProps<AvatarGroupProps>()
44
- const slots = defineSlots<AvatarGroupSlots>()
45
-
46
- const b24ui = computed(() => avatarGroup({
5
+ <script setup>
6
+ import { computed, provide } from "vue";
7
+ import { Primitive } from "reka-ui";
8
+ import { useAppConfig } from "#imports";
9
+ import { avatarGroupInjectionKey } from "../composables/useAvatarGroup";
10
+ import { tv } from "../utils/tv";
11
+ import B24Avatar from "./Avatar.vue";
12
+ const props = defineProps({
13
+ as: { type: null, required: false },
14
+ size: { type: null, required: false },
15
+ max: { type: [Number, String], required: false },
16
+ class: { type: null, required: false },
17
+ b24ui: { type: null, required: false }
18
+ });
19
+ const slots = defineSlots();
20
+ const appConfig = useAppConfig();
21
+ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.avatarGroup || {} })({
47
22
  size: props.size
48
- }))
49
-
50
- const max = computed(() => typeof props.max === 'string' ? Number.parseInt(props.max, 10) : props.max)
51
-
23
+ }));
24
+ const max = computed(() => typeof props.max === "string" ? Number.parseInt(props.max, 10) : props.max);
52
25
  const children = computed(() => {
53
- let children = slots.default?.()
54
- if (children?.length) {
55
- children = children.flatMap((child: any) => {
56
- if (typeof child.type === 'symbol') {
57
- // `v-if="false"` or commented node
58
- if (typeof child.children === 'string') {
59
- return
26
+ let children2 = slots.default?.();
27
+ if (children2?.length) {
28
+ children2 = children2.flatMap((child) => {
29
+ if (typeof child.type === "symbol") {
30
+ if (typeof child.children === "string") {
31
+ return;
60
32
  }
61
-
62
- return child.children
33
+ return child.children;
63
34
  }
64
-
65
- return child
66
- }).filter(Boolean)
35
+ return child;
36
+ }).filter(Boolean);
67
37
  }
68
-
69
- return children || []
70
- })
71
-
38
+ return children2 || [];
39
+ });
72
40
  const visibleAvatars = computed(() => {
73
41
  if (!children.value.length) {
74
- return []
42
+ return [];
75
43
  }
76
-
77
44
  if (!max.value || max.value <= 0) {
78
- return [...children.value]
45
+ return [...children.value];
79
46
  }
80
-
81
- return [...children.value].slice(0, max.value)
82
- })
83
-
47
+ return [...children.value].slice(0, max.value);
48
+ });
84
49
  const hiddenCount = computed(() => {
85
50
  if (!children.value.length) {
86
- return 0
51
+ return 0;
87
52
  }
88
-
89
- return children.value.length - visibleAvatars.value.length
90
- })
91
-
53
+ return children.value.length - visibleAvatars.value.length;
54
+ });
92
55
  provide(avatarGroupInjectionKey, computed(() => ({
93
56
  size: props.size
94
- })))
57
+ })));
95
58
  </script>
96
59
 
97
60
  <template>
@@ -0,0 +1,40 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/b24ui/avatar-group';
3
+ import type { ComponentConfig } from '../types/utils';
4
+ type AvatarGroup = ComponentConfig<typeof theme, AppConfig, 'avatarGroup'>;
5
+ export interface AvatarGroupProps {
6
+ /**
7
+ * The element or component this component should render as.
8
+ * @defaultValue 'div'
9
+ */
10
+ as?: any;
11
+ /**
12
+ * @defaultValue 'md'
13
+ */
14
+ size?: AvatarGroup['variants']['size'];
15
+ /**
16
+ * The maximum number of avatars to display.
17
+ */
18
+ max?: number | string;
19
+ class?: any;
20
+ b24ui?: AvatarGroup['slots'];
21
+ }
22
+ export interface AvatarGroupSlots {
23
+ default(props?: {}): any;
24
+ }
25
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<AvatarGroupProps>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<AvatarGroupProps>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<AvatarGroupSlots> & AvatarGroupSlots>;
26
+ export default _default;
27
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
28
+ type __VLS_TypePropsToOption<T> = {
29
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
30
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
31
+ } : {
32
+ type: import('vue').PropType<T[K]>;
33
+ required: true;
34
+ };
35
+ };
36
+ type __VLS_WithTemplateSlots<T, S> = T & {
37
+ new (): {
38
+ $slots: S;
39
+ };
40
+ };
@@ -1,89 +1,45 @@
1
- <script lang="ts">
2
- import type { VariantProps } from 'tailwind-variants'
3
- import type { AppConfig } from '@nuxt/schema'
4
- import _appConfig from '#build/app.config'
5
- import theme from '#build/b24ui/badge'
6
- import type { UseComponentIconsProps } from '../composables/useComponentIcons'
7
- import { tv } from '../utils/tv'
8
- import type { AvatarProps } from '../types'
9
-
10
- const appConfigBadge = _appConfig as AppConfig & { b24ui: { badge: Partial<typeof theme> } }
11
-
12
- const badge = tv({ extend: tv(theme), ...(appConfigBadge.b24ui?.badge || {}) })
13
-
14
- type BadgeVariants = VariantProps<typeof badge>
15
-
16
- export interface BadgeProps extends Omit<UseComponentIconsProps, 'loading' | 'loadingIcon'> {
17
- /**
18
- * The element or component this component should render as.
19
- * @defaultValue 'span'
20
- */
21
- as?: any
22
- label?: string | number
23
- /**
24
- * @defaultValue 'default'
25
- */
26
- color?: BadgeVariants['color']
27
- /**
28
- * @defaultValue 'normal'
29
- */
30
- depth?: BadgeVariants['depth']
31
- /**
32
- * @defaultValue 'md'
33
- */
34
- size?: BadgeVariants['size']
35
- /**
36
- * Shows 'underline' on hover
37
- * @defaultValue false
38
- */
39
- useLink?: boolean
40
- /**
41
- * Shows icons.close on the right side
42
- * @defaultValue false
43
- */
44
- useClose?: boolean
45
- onCloseClick?: ((event: MouseEvent) => void | Promise<void>) | Array<((event: MouseEvent) => void | Promise<void>)>
46
- /**
47
- * Fills the background
48
- * @defaultValue false
49
- */
50
- useFill?: boolean
51
- class?: any
52
- b24ui?: Partial<typeof badge.slots>
53
- }
54
-
55
- export interface BadgeSlots {
56
- leading(props?: {}): any
57
- default(props?: {}): any
58
- trailing(props?: {}): any
59
- }
1
+ <script>
2
+ import theme from "#build/b24ui/badge";
60
3
  </script>
61
4
 
62
- <script setup lang="ts">
63
- import { computed } from 'vue'
64
- import { Primitive } from 'reka-ui'
65
- import { useButtonGroup } from '../composables/useButtonGroup'
66
- import { useComponentIcons } from '../composables/useComponentIcons'
67
- import Cross20Icon from '@bitrix24/b24icons-vue/actions/Cross20Icon'
68
- import B24Avatar from './Avatar.vue'
69
-
70
- const props = withDefaults(defineProps<BadgeProps>(), {
71
- as: 'span'
72
- })
73
-
74
- defineSlots<BadgeSlots>()
75
-
76
- async function onCloseClickWrapper(event: MouseEvent) {
77
- const callbacks = Array.isArray(props.onCloseClick) ? props.onCloseClick : [props.onCloseClick]
5
+ <script setup>
6
+ import { computed } from "vue";
7
+ import { Primitive } from "reka-ui";
8
+ import { useAppConfig } from "#imports";
9
+ import { useButtonGroup } from "../composables/useButtonGroup";
10
+ import { useComponentIcons } from "../composables/useComponentIcons";
11
+ import { tv } from "../utils/tv";
12
+ import Cross20Icon from "@bitrix24/b24icons-vue/actions/Cross20Icon";
13
+ import B24Avatar from "./Avatar.vue";
14
+ const props = defineProps({
15
+ as: { type: null, required: false, default: "span" },
16
+ label: { type: [String, Number], required: false },
17
+ color: { type: null, required: false },
18
+ depth: { type: null, required: false },
19
+ size: { type: null, required: false },
20
+ useLink: { type: Boolean, required: false },
21
+ useClose: { type: Boolean, required: false },
22
+ onCloseClick: { type: [Function, Array], required: false },
23
+ useFill: { type: Boolean, required: false },
24
+ class: { type: null, required: false },
25
+ b24ui: { type: null, required: false },
26
+ icon: { type: [Function, Object], required: false },
27
+ avatar: { type: Object, required: false },
28
+ trailing: { type: Boolean, required: false },
29
+ trailingIcon: { type: [Function, Object], required: false }
30
+ });
31
+ defineSlots();
32
+ const appConfig = useAppConfig();
33
+ async function onCloseClickWrapper(event) {
34
+ const callbacks = Array.isArray(props.onCloseClick) ? props.onCloseClick : [props.onCloseClick];
78
35
  try {
79
- await Promise.all(callbacks.map(fn => fn?.(event)))
80
- } finally { /* empty */ }
36
+ await Promise.all(callbacks.map((fn) => fn?.(event)));
37
+ } finally {
38
+ }
81
39
  }
82
-
83
- const { orientation, size: buttonGroupSize } = useButtonGroup<BadgeProps>(props)
84
- const { isLeading, leadingIconName } = useComponentIcons(props)
85
-
86
- const b24ui = computed(() => badge({
40
+ const { orientation, size: buttonGroupSize } = useButtonGroup(props);
41
+ const { isLeading, leadingIconName } = useComponentIcons(props);
42
+ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.badge || {} })({
87
43
  color: props.color,
88
44
  depth: props.depth,
89
45
  size: buttonGroupSize.value || props.size,
@@ -92,7 +48,7 @@ const b24ui = computed(() => badge({
92
48
  useClose: Boolean(props.useClose),
93
49
  useFill: Boolean(props.useFill),
94
50
  leading: Boolean(isLeading.value)
95
- }))
51
+ }));
96
52
  </script>
97
53
 
98
54
  <template>
@@ -112,7 +68,7 @@ const b24ui = computed(() => badge({
112
68
  />
113
69
  <B24Avatar
114
70
  v-else-if="!!avatar"
115
- :size="((props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()) as AvatarProps['size'])"
71
+ :size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
116
72
  v-bind="avatar"
117
73
  :class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
118
74
  />
@@ -0,0 +1,78 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/b24ui/badge';
3
+ import type { UseComponentIconsProps } from '../composables/useComponentIcons';
4
+ import type { ComponentConfig } from '../types/utils';
5
+ type Badge = ComponentConfig<typeof theme, AppConfig, 'badge'>;
6
+ export interface BadgeProps extends Omit<UseComponentIconsProps, 'loading' | 'loadingIcon'> {
7
+ /**
8
+ * The element or component this component should render as.
9
+ * @defaultValue 'span'
10
+ */
11
+ as?: any;
12
+ label?: string | number;
13
+ /**
14
+ * @defaultValue 'default'
15
+ */
16
+ color?: Badge['variants']['color'];
17
+ /**
18
+ * @defaultValue 'normal'
19
+ */
20
+ depth?: Badge['variants']['depth'];
21
+ /**
22
+ * @defaultValue 'md'
23
+ */
24
+ size?: Badge['variants']['size'];
25
+ /**
26
+ * Shows 'underline' on hover
27
+ * @defaultValue false
28
+ */
29
+ useLink?: boolean;
30
+ /**
31
+ * Shows icons.close on the right side
32
+ * @defaultValue false
33
+ */
34
+ useClose?: boolean;
35
+ onCloseClick?: ((event: MouseEvent) => void | Promise<void>) | Array<((event: MouseEvent) => void | Promise<void>)>;
36
+ /**
37
+ * Fills the background
38
+ * @defaultValue false
39
+ */
40
+ useFill?: boolean;
41
+ class?: any;
42
+ b24ui?: Badge['slots'];
43
+ }
44
+ export interface BadgeSlots {
45
+ leading(props?: {}): any;
46
+ default(props?: {}): any;
47
+ trailing(props?: {}): any;
48
+ }
49
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<BadgeProps>, {
50
+ as: string;
51
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<BadgeProps>, {
52
+ as: string;
53
+ }>>> & Readonly<{}>, {
54
+ as: any;
55
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<BadgeSlots> & BadgeSlots>;
56
+ export default _default;
57
+ type __VLS_WithDefaults<P, D> = {
58
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
59
+ default: D[K];
60
+ }> : P[K];
61
+ };
62
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
63
+ type __VLS_TypePropsToOption<T> = {
64
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
65
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
66
+ } : {
67
+ type: import('vue').PropType<T[K]>;
68
+ required: true;
69
+ };
70
+ };
71
+ type __VLS_WithTemplateSlots<T, S> = T & {
72
+ new (): {
73
+ $slots: S;
74
+ };
75
+ };
76
+ type __VLS_PrettifyLocal<T> = {
77
+ [K in keyof T]: T[K];
78
+ } & {};