@bitrix24/b24ui-nuxt 0.6.8 → 0.7.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/accordion.ts +20 -0
  2. package/.nuxt/b24ui/advice.ts +2 -10
  3. package/.nuxt/b24ui/alert.ts +2 -15
  4. package/.nuxt/b24ui/avatar-group.ts +2 -10
  5. package/.nuxt/b24ui/avatar.ts +3 -11
  6. package/.nuxt/b24ui/badge.ts +48 -13
  7. package/.nuxt/b24ui/button-group.ts +2 -22
  8. package/.nuxt/b24ui/button.ts +4 -17
  9. package/.nuxt/b24ui/calendar.ts +3 -11
  10. package/.nuxt/b24ui/checkbox.ts +75 -11
  11. package/.nuxt/b24ui/chip.ts +2 -10
  12. package/.nuxt/b24ui/collapsible.ts +2 -10
  13. package/.nuxt/b24ui/container.ts +2 -10
  14. package/.nuxt/b24ui/countdown.ts +2 -10
  15. package/.nuxt/b24ui/description-list.ts +2 -15
  16. package/.nuxt/b24ui/dropdown-menu.ts +4 -11
  17. package/.nuxt/b24ui/form-field.ts +3 -10
  18. package/.nuxt/b24ui/form.ts +2 -10
  19. package/.nuxt/b24ui/index.ts +1 -0
  20. package/.nuxt/b24ui/input-menu.ts +6 -30
  21. package/.nuxt/b24ui/input-number.ts +15 -10
  22. package/.nuxt/b24ui/input.ts +4 -17
  23. package/.nuxt/b24ui/kbd.ts +2 -10
  24. package/.nuxt/b24ui/link.ts +11 -17
  25. package/.nuxt/b24ui/modal.ts +3 -11
  26. package/.nuxt/b24ui/navbar-divider.ts +2 -10
  27. package/.nuxt/b24ui/navbar-section.ts +2 -10
  28. package/.nuxt/b24ui/navbar-spacer.ts +2 -10
  29. package/.nuxt/b24ui/navbar.ts +2 -10
  30. package/.nuxt/b24ui/navigation-menu.ts +69 -60
  31. package/.nuxt/b24ui/popover.ts +2 -10
  32. package/.nuxt/b24ui/progress.ts +2 -10
  33. package/.nuxt/b24ui/radio-group.ts +3 -11
  34. package/.nuxt/b24ui/range.ts +2 -10
  35. package/.nuxt/b24ui/select-menu.ts +10 -40
  36. package/.nuxt/b24ui/select.ts +10 -40
  37. package/.nuxt/b24ui/separator.ts +2 -10
  38. package/.nuxt/b24ui/sidebar-body.ts +2 -10
  39. package/.nuxt/b24ui/sidebar-footer.ts +2 -10
  40. package/.nuxt/b24ui/sidebar-header.ts +2 -10
  41. package/.nuxt/b24ui/sidebar-heading.ts +2 -10
  42. package/.nuxt/b24ui/sidebar-layout.ts +2 -10
  43. package/.nuxt/b24ui/sidebar-section.ts +2 -10
  44. package/.nuxt/b24ui/sidebar-spacer.ts +2 -10
  45. package/.nuxt/b24ui/sidebar.ts +2 -10
  46. package/.nuxt/b24ui/skeleton.ts +2 -10
  47. package/.nuxt/b24ui/slideover.ts +2 -10
  48. package/.nuxt/b24ui/stacked-layout.ts +2 -10
  49. package/.nuxt/b24ui/switch.ts +2 -10
  50. package/.nuxt/b24ui/tabs.ts +6 -13
  51. package/.nuxt/b24ui/textarea.ts +4 -17
  52. package/.nuxt/b24ui/toast.ts +2 -15
  53. package/.nuxt/b24ui/toaster.ts +3 -11
  54. package/.nuxt/b24ui/tooltip.ts +3 -11
  55. package/.nuxt/b24ui.css +1 -1
  56. package/cli/templates.mjs +2 -2
  57. package/dist/meta.d.mts +35333 -15836
  58. package/dist/meta.mjs +35333 -15836
  59. package/dist/module.json +1 -1
  60. package/dist/module.mjs +11 -3
  61. package/dist/runtime/components/Accordion.vue +96 -0
  62. package/dist/runtime/components/Accordion.vue.d.ts +78 -0
  63. package/dist/runtime/components/Advice.vue +1 -1
  64. package/dist/runtime/components/Alert.vue +1 -1
  65. package/dist/runtime/components/App.vue +1 -1
  66. package/dist/runtime/components/Avatar.vue +11 -3
  67. package/dist/runtime/components/Avatar.vue.d.ts +2 -1
  68. package/dist/runtime/components/AvatarGroup.vue +1 -1
  69. package/dist/runtime/components/Badge.vue +5 -3
  70. package/dist/runtime/components/Badge.vue.d.ts +2 -0
  71. package/dist/runtime/components/Button.vue +2 -3
  72. package/dist/runtime/components/Button.vue.d.ts +1 -1
  73. package/dist/runtime/components/Calendar.vue +1 -1
  74. package/dist/runtime/components/Checkbox.vue +13 -4
  75. package/dist/runtime/components/Checkbox.vue.d.ts +9 -0
  76. package/dist/runtime/components/Chip.vue +1 -1
  77. package/dist/runtime/components/Collapsible.vue +1 -1
  78. package/dist/runtime/components/Countdown.vue +1 -1
  79. package/dist/runtime/components/Countdown.vue.d.ts +2 -2
  80. package/dist/runtime/components/DescriptionList.vue +3 -2
  81. package/dist/runtime/components/DescriptionList.vue.d.ts +1 -1
  82. package/dist/runtime/components/DropdownMenu.vue +1 -1
  83. package/dist/runtime/components/DropdownMenu.vue.d.ts +2 -0
  84. package/dist/runtime/components/DropdownMenuContent.vue +74 -72
  85. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +4 -20
  86. package/dist/runtime/components/Form.vue +6 -6
  87. package/dist/runtime/components/Form.vue.d.ts +12 -11
  88. package/dist/runtime/components/FormField.vue +4 -4
  89. package/dist/runtime/components/Input.vue +12 -8
  90. package/dist/runtime/components/Input.vue.d.ts +31 -30
  91. package/dist/runtime/components/InputMenu.vue +23 -20
  92. package/dist/runtime/components/InputMenu.vue.d.ts +6 -4
  93. package/dist/runtime/components/InputNumber.vue +17 -10
  94. package/dist/runtime/components/InputNumber.vue.d.ts +6 -3
  95. package/dist/runtime/components/Link.vue +5 -13
  96. package/dist/runtime/components/Modal.vue +22 -14
  97. package/dist/runtime/components/Modal.vue.d.ts +18 -5
  98. package/dist/runtime/components/Navbar.vue +1 -1
  99. package/dist/runtime/components/NavbarDivider.vue +1 -1
  100. package/dist/runtime/components/NavbarSection.vue +1 -1
  101. package/dist/runtime/components/NavbarSpacer.vue +1 -1
  102. package/dist/runtime/components/NavigationMenu.vue +186 -44
  103. package/dist/runtime/components/NavigationMenu.vue.d.ts +39 -8
  104. package/dist/runtime/components/OverlayProvider.vue +2 -2
  105. package/dist/runtime/components/Popover.vue +4 -0
  106. package/dist/runtime/components/Popover.vue.d.ts +2 -1
  107. package/dist/runtime/components/Progress.vue +3 -2
  108. package/dist/runtime/components/Progress.vue.d.ts +2 -2
  109. package/dist/runtime/components/RadioGroup.vue +24 -8
  110. package/dist/runtime/components/RadioGroup.vue.d.ts +3 -1
  111. package/dist/runtime/components/Range.vue +2 -2
  112. package/dist/runtime/components/Range.vue.d.ts +19 -20
  113. package/dist/runtime/components/Select.vue +57 -31
  114. package/dist/runtime/components/Select.vue.d.ts +110 -2
  115. package/dist/runtime/components/SelectMenu.vue +77 -23
  116. package/dist/runtime/components/SelectMenu.vue.d.ts +111 -5
  117. package/dist/runtime/components/Separator.vue +3 -3
  118. package/dist/runtime/components/Sidebar.vue +1 -1
  119. package/dist/runtime/components/SidebarBody.vue +1 -1
  120. package/dist/runtime/components/SidebarFooter.vue +1 -1
  121. package/dist/runtime/components/SidebarHeader.vue +1 -1
  122. package/dist/runtime/components/SidebarHeading.vue +1 -1
  123. package/dist/runtime/components/SidebarLayout.vue +1 -1
  124. package/dist/runtime/components/SidebarSection.vue +1 -1
  125. package/dist/runtime/components/SidebarSpacer.vue +1 -1
  126. package/dist/runtime/components/Slideover.vue +23 -15
  127. package/dist/runtime/components/Slideover.vue.d.ts +18 -5
  128. package/dist/runtime/components/StackedLayout.vue +1 -1
  129. package/dist/runtime/components/Switch.vue +1 -1
  130. package/dist/runtime/components/Tabs.vue +28 -7
  131. package/dist/runtime/components/Tabs.vue.d.ts +6 -1
  132. package/dist/runtime/components/Textarea.vue +13 -9
  133. package/dist/runtime/components/Textarea.vue.d.ts +31 -30
  134. package/dist/runtime/components/Toast.vue +7 -6
  135. package/dist/runtime/components/Toast.vue.d.ts +6 -0
  136. package/dist/runtime/components/Toaster.vue +4 -4
  137. package/dist/runtime/components/Toaster.vue.d.ts +6 -0
  138. package/dist/runtime/components/Tooltip.vue +9 -2
  139. package/dist/runtime/components/Tooltip.vue.d.ts +2 -1
  140. package/dist/runtime/components/content/TableWrapper.vue +1 -1
  141. package/dist/runtime/composables/defineLocale.d.ts +2 -0
  142. package/dist/runtime/composables/defineLocale.js +4 -0
  143. package/dist/runtime/composables/defineShortcuts.js +8 -2
  144. package/dist/runtime/composables/useFormField.d.ts +1 -1
  145. package/dist/runtime/composables/useFormField.js +2 -1
  146. package/dist/runtime/composables/useKbd.d.ts +1 -0
  147. package/dist/runtime/composables/useKbd.js +4 -3
  148. package/dist/runtime/composables/useOverlay.d.ts +11 -11
  149. package/dist/runtime/composables/useOverlay.js +17 -11
  150. package/dist/runtime/inertia/components/Link.vue +45 -60
  151. package/dist/runtime/inertia/components/Link.vue.d.ts +1 -1
  152. package/dist/runtime/inertia/components/LinkBase.vue +68 -0
  153. package/dist/runtime/inertia/components/LinkBase.vue.d.ts +25 -0
  154. package/dist/runtime/inertia/stubs.d.ts +1 -1
  155. package/dist/runtime/inertia/stubs.js +1 -1
  156. package/dist/runtime/prose/A.vue +1 -1
  157. package/dist/runtime/prose/Blockquote.vue +1 -1
  158. package/dist/runtime/prose/Code.vue +1 -1
  159. package/dist/runtime/prose/Em.vue +1 -1
  160. package/dist/runtime/prose/H1.vue +1 -1
  161. package/dist/runtime/prose/H2.vue +1 -1
  162. package/dist/runtime/prose/H3.vue +1 -1
  163. package/dist/runtime/prose/H4.vue +1 -1
  164. package/dist/runtime/prose/H5.vue +1 -1
  165. package/dist/runtime/prose/H6.vue +1 -1
  166. package/dist/runtime/prose/Hr.vue +1 -1
  167. package/dist/runtime/prose/Img.vue +1 -1
  168. package/dist/runtime/prose/Li.vue +1 -1
  169. package/dist/runtime/prose/Ol.vue +1 -1
  170. package/dist/runtime/prose/P.vue +1 -1
  171. package/dist/runtime/prose/Pre.vue +1 -1
  172. package/dist/runtime/prose/Strong.vue +1 -1
  173. package/dist/runtime/prose/Table.vue +1 -1
  174. package/dist/runtime/prose/Tbody.vue +1 -1
  175. package/dist/runtime/prose/Td.vue +1 -1
  176. package/dist/runtime/prose/Th.vue +1 -1
  177. package/dist/runtime/prose/Thead.vue +1 -1
  178. package/dist/runtime/prose/Tr.vue +1 -1
  179. package/dist/runtime/prose/Ul.vue +1 -1
  180. package/dist/runtime/types/form.d.ts +11 -10
  181. package/dist/runtime/types/index.d.ts +1 -0
  182. package/dist/runtime/types/index.js +1 -0
  183. package/dist/runtime/types/locale.d.ts +1 -0
  184. package/dist/runtime/types/tv.d.ts +53 -0
  185. package/dist/runtime/types/tv.js +0 -0
  186. package/dist/runtime/types/utils.d.ts +4 -51
  187. package/dist/runtime/types/utils.js +1 -0
  188. package/dist/runtime/utils/link.d.ts +1 -0
  189. package/dist/runtime/utils/link.js +12 -0
  190. package/dist/runtime/vue/components/Link.vue +26 -40
  191. package/dist/runtime/vue/composables/useAppConfig.js +3 -1
  192. package/dist/runtime/vue/stubs.d.ts +1 -1
  193. package/dist/runtime/vue/stubs.js +1 -1
  194. package/dist/shared/{b24ui-nuxt.jU270f-Q.mjs → b24ui-nuxt.C-kZb5Ac.mjs} +267 -121
  195. package/dist/unplugin.d.mts +2 -2
  196. package/dist/unplugin.mjs +6 -3
  197. package/dist/vite.d.mts +1 -1
  198. package/dist/vite.mjs +2 -2
  199. package/package.json +30 -29
@@ -3,15 +3,16 @@ import theme from "#build/b24ui/link";
3
3
  </script>
4
4
 
5
5
  <script setup>
6
- import { computed, getCurrentInstance } from "vue";
6
+ import { computed } from "vue";
7
7
  import { defu } from "defu";
8
- import { isEqual, diff } from "ohash/utils";
8
+ import { isEqual } from "ohash/utils";
9
9
  import { useForwardProps } from "reka-ui";
10
10
  import { reactiveOmit } from "@vueuse/core";
11
11
  import { hasProtocol } from "ufo";
12
12
  import { useRoute, RouterLink } from "vue-router";
13
13
  import { useAppConfig } from "#imports";
14
14
  import { tv } from "../../utils/tv";
15
+ import { isPartiallyEqual } from "../../utils/link";
15
16
  import B24LinkBase from "./../../components/LinkBase.vue";
16
17
  defineOptions({ inheritAttrs: false });
17
18
  const props = defineProps({
@@ -44,20 +45,9 @@ const props = defineProps({
44
45
  replace: { type: Boolean, required: false }
45
46
  });
46
47
  defineSlots();
47
- const hasRouter = computed(() => {
48
- const app = getCurrentInstance()?.appContext.app;
49
- return !!app?.config?.globalProperties?.$router;
50
- });
51
- const route = computed(() => {
52
- if (!hasRouter.value) return null;
53
- try {
54
- return useRoute();
55
- } catch {
56
- return null;
57
- }
58
- });
48
+ const route = useRoute();
59
49
  const appConfig = useAppConfig();
60
- const routerLinkProps = useForwardProps(reactiveOmit(props, "as", "type", "disabled", "active", "exact", "exactQuery", "exactHash", "activeClass", "inactiveClass", "to", "raw", "class"));
50
+ const routerLinkProps = useForwardProps(reactiveOmit(props, "as", "type", "disabled", "active", "exact", "exactQuery", "exactHash", "activeClass", "inactiveClass", "to", "href", "raw", "custom", "class"));
61
51
  const b24ui = computed(() => tv({
62
52
  extend: tv(theme),
63
53
  ...defu({
@@ -69,34 +59,29 @@ const b24ui = computed(() => tv({
69
59
  }
70
60
  }, appConfig.b24ui?.link || {})
71
61
  }));
72
- function isPartiallyEqual(item1, item2) {
73
- const diffedKeys = diff(item1, item2).reduce((filtered, q) => {
74
- if (q.type === "added") {
75
- filtered.add(q.key);
76
- }
77
- return filtered;
78
- }, /* @__PURE__ */ new Set());
79
- const item1Filtered = Object.fromEntries(Object.entries(item1).filter(([key]) => !diffedKeys.has(key)));
80
- const item2Filtered = Object.fromEntries(Object.entries(item2).filter(([key]) => !diffedKeys.has(key)));
81
- return isEqual(item1Filtered, item2Filtered);
82
- }
62
+ const to = computed(() => props.to ?? props.href);
83
63
  const isExternal = computed(() => {
84
- if (!props.to) return false;
85
- return typeof props.to === "string" && hasProtocol(props.to, { acceptRelative: true });
64
+ if (props.external) {
65
+ return true;
66
+ }
67
+ if (!to.value) {
68
+ return false;
69
+ }
70
+ return typeof to.value === "string" && hasProtocol(to.value, { acceptRelative: true });
86
71
  });
87
72
  function isLinkActive({ route: linkRoute, isActive, isExactActive }) {
88
73
  if (props.active !== void 0) {
89
74
  return props.active;
90
75
  }
91
- if (!props.to || !route.value) {
76
+ if (!to.value) {
92
77
  return false;
93
78
  }
94
79
  if (props.exactQuery === "partial") {
95
- if (!isPartiallyEqual(linkRoute.query, route.value.query)) return false;
80
+ if (!isPartiallyEqual(linkRoute.query, route.query)) return false;
96
81
  } else if (props.exactQuery === true) {
97
- if (!isEqual(linkRoute.query, route.value.query)) return false;
82
+ if (!isEqual(linkRoute.query, route.query)) return false;
98
83
  }
99
- if (props.exactHash && linkRoute.hash !== route.value.hash) {
84
+ if (props.exactHash && linkRoute.hash !== route.hash) {
100
85
  return false;
101
86
  }
102
87
  if (props.exact && isExactActive) {
@@ -122,8 +107,8 @@ function resolveLinkClass({ route: route2, isActive, isExactActive } = {}) {
122
107
  </script>
123
108
 
124
109
  <template>
125
- <template v-if="hasRouter && !isExternal">
126
- <RouterLink v-slot="{ href, navigate, route: linkRoute, isActive, isExactActive }" v-bind="routerLinkProps" :to="to || '#'" custom>
110
+ <template v-if="!isExternal && !!to">
111
+ <RouterLink v-slot="{ href, navigate, route: linkRoute, isActive, isExactActive }" v-bind="routerLinkProps" :to="to" custom>
127
112
  <template v-if="custom">
128
113
  <slot
129
114
  v-bind="{
@@ -133,7 +118,7 @@ function resolveLinkClass({ route: route2, isActive, isExactActive } = {}) {
133
118
  type,
134
119
  disabled,
135
120
  target: props.target ? props.target : void 0,
136
- href: to ? href : void 0,
121
+ href,
137
122
  navigate,
138
123
  active: isLinkActive({ route: linkRoute, isActive, isExactActive })
139
124
  }"
@@ -147,7 +132,7 @@ function resolveLinkClass({ route: route2, isActive, isExactActive } = {}) {
147
132
  as,
148
133
  type,
149
134
  disabled,
150
- href: to ? href : void 0,
135
+ href,
151
136
  navigate
152
137
  }"
153
138
  :class="resolveLinkClass({ route: linkRoute, isActive, isExactActive })"
@@ -167,7 +152,8 @@ function resolveLinkClass({ route: route2, isActive, isExactActive } = {}) {
167
152
  disabled,
168
153
  href: to,
169
154
  target: isExternal ? '_blank' : void 0,
170
- active: props?.active || false
155
+ active,
156
+ isExternal
171
157
  }"
172
158
  />
173
159
  </template>
@@ -179,12 +165,12 @@ function resolveLinkClass({ route: route2, isActive, isExactActive } = {}) {
179
165
  type,
180
166
  disabled,
181
167
  href: to,
182
- target: isExternal ? '_blank' : void 0
168
+ target: isExternal ? '_blank' : void 0,
169
+ isExternal
183
170
  }"
184
- :is-external="isExternal"
185
171
  :class="resolveLinkClass()"
186
172
  >
187
- <slot :active="props?.active || false" />
173
+ <slot :active="active" />
188
174
  </B24LinkBase>
189
175
  </template>
190
176
  </template>
@@ -1,2 +1,4 @@
1
+ import { reactive } from "vue";
1
2
  import appConfig from "#build/app.config";
2
- export const useAppConfig = () => appConfig;
3
+ const _appConfig = reactive(appConfig);
4
+ export const useAppConfig = () => _appConfig;
@@ -2,6 +2,7 @@ import type { Ref } from 'vue';
2
2
  import type { NuxtApp } from '#app';
3
3
  export { useHead } from '@unhead/vue';
4
4
  export { useRoute, useRouter } from 'vue-router';
5
+ export { useAppConfig } from './composables/useAppConfig';
5
6
  export { defineShortcuts } from '../composables/defineShortcuts';
6
7
  export { defineLocale } from '../composables/defineLocale';
7
8
  export { useLocale } from '../composables/useLocale';
@@ -16,7 +17,6 @@ export declare const useColorMode: () => {
16
17
  readonly value: import("@vueuse/core").BasicColorMode;
17
18
  forced: boolean;
18
19
  };
19
- export declare const useAppConfig: () => any;
20
20
  export declare const useCookie: <T = string>(_name: string, _options?: Record<string, any>) => {
21
21
  value: Ref<T, T>;
22
22
  get: () => T;
@@ -4,6 +4,7 @@ import appConfig from "#build/app.config";
4
4
  import { useColorMode as useColorModeVueUse } from "@vueuse/core";
5
5
  export { useHead } from "@unhead/vue";
6
6
  export { useRoute, useRouter } from "vue-router";
7
+ export { useAppConfig } from "./composables/useAppConfig.js";
7
8
  export { defineShortcuts } from "../composables/defineShortcuts.js";
8
9
  export { defineLocale } from "../composables/defineLocale.js";
9
10
  export { useLocale } from "../composables/useLocale.js";
@@ -29,7 +30,6 @@ export const useColorMode = () => {
29
30
  forced: false
30
31
  };
31
32
  };
32
- export const useAppConfig = () => appConfig;
33
33
  export const useCookie = (_name, _options = {}) => {
34
34
  const value = ref(null);
35
35
  return {