@bitrix24/b24ui-nuxt 0.6.6 → 0.6.8

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 (36) hide show
  1. package/.nuxt/b24ui/skeleton.ts +1 -1
  2. package/dist/meta.d.mts +3091 -464
  3. package/dist/meta.mjs +3091 -464
  4. package/dist/module.json +1 -1
  5. package/dist/module.mjs +2 -2
  6. package/dist/runtime/components/App.vue +1 -1
  7. package/dist/runtime/components/Calendar.vue +5 -1
  8. package/dist/runtime/components/Checkbox.vue +1 -1
  9. package/dist/runtime/components/DescriptionList.vue +12 -0
  10. package/dist/runtime/components/DescriptionList.vue.d.ts +10 -8
  11. package/dist/runtime/components/DropdownMenu.vue.d.ts +2 -0
  12. package/dist/runtime/components/DropdownMenuContent.vue +4 -0
  13. package/dist/runtime/components/InputMenu.vue +6 -2
  14. package/dist/runtime/components/InputMenu.vue.d.ts +210 -0
  15. package/dist/runtime/components/InputNumber.vue.d.ts +74 -0
  16. package/dist/runtime/components/Modal.vue +11 -9
  17. package/dist/runtime/components/Modal.vue.d.ts +3 -0
  18. package/dist/runtime/components/NavigationMenu.vue +4 -0
  19. package/dist/runtime/components/NavigationMenu.vue.d.ts +2 -0
  20. package/dist/runtime/components/Popover.vue +9 -6
  21. package/dist/runtime/components/Popover.vue.d.ts +3 -0
  22. package/dist/runtime/components/RadioGroup.vue +2 -2
  23. package/dist/runtime/components/Select.vue +5 -0
  24. package/dist/runtime/components/Select.vue.d.ts +2 -0
  25. package/dist/runtime/components/SelectMenu.vue +5 -1
  26. package/dist/runtime/components/SelectMenu.vue.d.ts +2 -0
  27. package/dist/runtime/components/SidebarLayout.vue +4 -0
  28. package/dist/runtime/components/SidebarLayout.vue.d.ts +5 -3
  29. package/dist/runtime/components/Slideover.vue +11 -9
  30. package/dist/runtime/components/Slideover.vue.d.ts +3 -0
  31. package/dist/runtime/components/StackedLayout.vue +4 -0
  32. package/dist/runtime/components/StackedLayout.vue.d.ts +5 -3
  33. package/dist/shared/{b24ui-nuxt.BL9IkPeR.mjs → b24ui-nuxt.jU270f-Q.mjs} +1 -1
  34. package/dist/unplugin.mjs +1 -1
  35. package/dist/vite.mjs +1 -1
  36. package/package.json +27 -27
@@ -24,10 +24,10 @@ const props = defineProps({
24
24
  indicator: { type: null, required: false },
25
25
  class: { type: null, required: false },
26
26
  b24ui: { type: null, required: false },
27
- defaultValue: { type: [String, Number, Object, null], required: false },
27
+ defaultValue: { type: null, required: false },
28
28
  disabled: { type: Boolean, required: false },
29
29
  loop: { type: Boolean, required: false },
30
- modelValue: { type: [String, Number, Object, null], required: false },
30
+ modelValue: { type: null, required: false },
31
31
  name: { type: String, required: false },
32
32
  required: { type: Boolean, required: false }
33
33
  });
@@ -171,6 +171,8 @@ function isSelectItem(item) {
171
171
 
172
172
  <SelectPortal v-bind="portalProps">
173
173
  <SelectContent :class="b24ui.content({ class: props.b24ui?.content })" v-bind="contentProps">
174
+ <slot name="content-top" />
175
+
174
176
  <SelectScrollUpButton :class="b24ui.scrollUpDownButton({ class: props.b24ui?.scrollUpDownButton })">
175
177
  <Component
176
178
  :is="icons.chevronUp"
@@ -238,6 +240,9 @@ function isSelectItem(item) {
238
240
  :class="b24ui.scrollUpDownButtonIcon({ class: props.b24ui?.scrollUpDownButtonIcon })"
239
241
  />
240
242
  </SelectScrollDownButton>
243
+
244
+ <slot name="content-bottom" />
245
+
241
246
  <SelectArrow v-if="!!arrow" v-bind="arrowProps" :class="b24ui.arrow({ class: props.b24ui?.arrow })" />
242
247
  </SelectContent>
243
248
  </SelectPortal>
@@ -154,6 +154,8 @@ export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested
154
154
  'item-leading': SlotProps<T>;
155
155
  'item-label': SlotProps<T>;
156
156
  'item-trailing': SlotProps<T>;
157
+ 'content-top': (props?: {}) => any;
158
+ 'content-bottom': (props?: {}) => any;
157
159
  }
158
160
  declare const _default: <T extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = "value", M extends boolean = false>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
159
161
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
@@ -155,7 +155,7 @@ const createItem = computed(() => {
155
155
  }
156
156
  const newItem = props.valueKey ? { [props.valueKey]: searchTerm.value } : searchTerm.value;
157
157
  if (typeof props.createItem === "object" && props.createItem.when === "always" || props.createItem === "always") {
158
- return !filteredItems.value.find((item) => compare(item, newItem, String(props.valueKey)));
158
+ return !filteredItems.value.find((item) => compare(item, newItem, props.valueKey));
159
159
  }
160
160
  return !filteredItems.value.length;
161
161
  });
@@ -283,6 +283,8 @@ function isSelectItem(item) {
283
283
  <ComboboxPortal v-bind="portalProps">
284
284
  <ComboboxContent :class="b24ui.content({ class: props.b24ui?.content })" v-bind="contentProps">
285
285
  <FocusScope trapped :class="b24ui.focusScope({ class: props.b24ui?.focusScope })">
286
+ <slot name="content-top" />
287
+
286
288
  <ComboboxInput v-if="!!searchInput" v-model="searchTerm" :display-value="() => searchTerm" as-child>
287
289
  <B24Input no-border autofocus autocomplete="off" v-bind="searchInputProps" :class="b24ui.input({ class: props.b24ui?.input })" />
288
290
  </ComboboxInput>
@@ -352,6 +354,8 @@ function isSelectItem(item) {
352
354
 
353
355
  <ReuseCreateItemTemplate v-if="createItem && createItemPosition === 'bottom'" />
354
356
  </ComboboxViewport>
357
+
358
+ <slot name="content-bottom" />
355
359
  </FocusScope>
356
360
  <ComboboxArrow v-if="!!arrow" v-bind="arrowProps" :class="b24ui.arrow({ class: props.b24ui?.arrow })" />
357
361
  </ComboboxContent>
@@ -193,6 +193,8 @@ export interface SelectMenuSlots<A extends ArrayOrNested<SelectMenuItem> = Array
193
193
  'item-leading': SlotProps<T>;
194
194
  'item-label': SlotProps<T>;
195
195
  'item-trailing': SlotProps<T>;
196
+ 'content-top': (props?: {}) => any;
197
+ 'content-bottom': (props?: {}) => any;
196
198
  'create-item-label'(props: {
197
199
  item: string;
198
200
  }): any;
@@ -108,6 +108,8 @@ const handleNavigationClick = () => {
108
108
  </header>
109
109
 
110
110
  <!-- Page Content -->
111
+ <slot name="content-top" />
112
+
111
113
  <template v-if="!!slots.default">
112
114
  <main :class="b24ui.container({ class: props.b24ui?.container })">
113
115
  <div :class="b24ui.containerWrapper({ class: props.b24ui?.containerWrapper })">
@@ -117,5 +119,7 @@ const handleNavigationClick = () => {
117
119
  </div>
118
120
  </main>
119
121
  </template>
122
+
123
+ <slot name="content-bottom" />
120
124
  </Primitive>
121
125
  </template>
@@ -18,17 +18,19 @@ export interface SidebarLayoutSlots {
18
18
  * @param props
19
19
  * @param props.handleClick - Handler for navigation click events
20
20
  */
21
- sidebar(props: {
21
+ 'sidebar'(props: {
22
22
  handleClick: () => void;
23
23
  }): any;
24
24
  /**
25
25
  * Menu for mobile screen sizes.
26
26
  */
27
- navbar(props?: {}): any;
27
+ 'navbar'(props?: {}): any;
28
28
  /**
29
29
  * The page content.
30
30
  */
31
- default(props?: {}): any;
31
+ 'default'(props?: {}): any;
32
+ 'content-top': (props?: {}) => any;
33
+ 'content-bottom': (props?: {}) => any;
32
34
  }
33
35
  declare const _default: __VLS_WithSlots<import("vue").DefineComponent<SidebarLayoutProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SidebarLayoutProps> & Readonly<{}>, {
34
36
  as: any;
@@ -31,7 +31,7 @@ const props = defineProps({
31
31
  defaultOpen: { type: Boolean, required: false },
32
32
  modal: { type: Boolean, required: false, default: true }
33
33
  });
34
- const emits = defineEmits(["after:leave", "update:open"]);
34
+ const emits = defineEmits(["after:leave", "close:prevent", "update:open"]);
35
35
  const slots = defineSlots();
36
36
  const { t } = useLocale();
37
37
  const appConfig = useAppConfig();
@@ -39,18 +39,20 @@ const rootProps = useForwardPropsEmits(reactivePick(props, "open", "defaultOpen"
39
39
  const portalProps = usePortal(toRef(() => props.portal));
40
40
  const contentProps = toRef(() => props.content);
41
41
  const contentEvents = computed(() => {
42
- const events = {
42
+ const defaultEvents = {
43
43
  closeAutoFocus: (e) => e.preventDefault()
44
44
  };
45
45
  if (!props.dismissible) {
46
- return {
47
- pointerDownOutside: (e) => e.preventDefault(),
48
- interactOutside: (e) => e.preventDefault(),
49
- escapeKeyDown: (e) => e.preventDefault(),
50
- ...events
51
- };
46
+ const events = ["pointerDownOutside", "interactOutside", "escapeKeyDown", "closeAutoFocus"];
47
+ return events.reduce((acc, curr) => {
48
+ acc[curr] = (e) => {
49
+ e.preventDefault();
50
+ emits("close:prevent");
51
+ };
52
+ return acc;
53
+ }, {});
52
54
  }
53
- return events;
55
+ return defaultEvents;
54
56
  });
55
57
  const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.slideover || {} })({
56
58
  transition: props.transition,
@@ -64,6 +64,7 @@ export interface SlideoverProps extends DialogRootProps {
64
64
  }
65
65
  export interface SlideoverEmits extends DialogRootEmits {
66
66
  'after:leave': [];
67
+ 'close:prevent': [];
67
68
  }
68
69
  export interface SlideoverSlots {
69
70
  default(props: {
@@ -84,9 +85,11 @@ export interface SlideoverSlots {
84
85
  declare const _default: __VLS_WithSlots<import("vue").DefineComponent<SlideoverProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
85
86
  "update:open": (value: boolean) => any;
86
87
  "after:leave": () => any;
88
+ "close:prevent": () => any;
87
89
  }, string, import("vue").PublicProps, Readonly<SlideoverProps> & Readonly<{
88
90
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
89
91
  "onAfter:leave"?: (() => any) | undefined;
92
+ "onClose:prevent"?: (() => any) | undefined;
90
93
  }>, {
91
94
  close: boolean | Partial<ButtonProps>;
92
95
  modal: boolean;
@@ -100,6 +100,8 @@ const handleNavigationClick = () => {
100
100
  </header>
101
101
 
102
102
  <!-- Page Content -->
103
+ <slot name="content-top" />
104
+
103
105
  <template v-if="!!slots.default">
104
106
  <main :class="b24ui.container({ class: props.b24ui?.container })">
105
107
  <div :class="b24ui.containerWrapper({ class: props.b24ui?.containerWrapper })">
@@ -109,5 +111,7 @@ const handleNavigationClick = () => {
109
111
  </div>
110
112
  </main>
111
113
  </template>
114
+
115
+ <slot name="content-bottom" />
112
116
  </Primitive>
113
117
  </template>
@@ -18,17 +18,19 @@ export interface StackedLayoutSlots {
18
18
  * @param props
19
19
  * @param props.handleClick - Handler for navigation click events
20
20
  */
21
- sidebar(props: {
21
+ 'sidebar'(props: {
22
22
  handleClick: () => void;
23
23
  }): any;
24
24
  /**
25
25
  * Menu for desktop screen sizes.
26
26
  */
27
- navbar(props?: {}): any;
27
+ 'navbar'(props?: {}): any;
28
28
  /**
29
29
  * The page content.
30
30
  */
31
- default(props?: {}): any;
31
+ 'default'(props?: {}): any;
32
+ 'content-top': (props?: {}) => any;
33
+ 'content-bottom': (props?: {}) => any;
32
34
  }
33
35
  declare const _default: __VLS_WithSlots<import("vue").DefineComponent<StackedLayoutProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<StackedLayoutProps> & Readonly<{}>, {
34
36
  as: any;
@@ -5621,7 +5621,7 @@ const separator = {
5621
5621
  };
5622
5622
 
5623
5623
  const skeleton = {
5624
- base: "animate-pulse rounded-md bg-gray-200 dark:bg-gray-800 aria-busy:cursor-progress"
5624
+ base: "animate-pulse rounded-md bg-gray-200 dark:bg-gray-800"
5625
5625
  };
5626
5626
 
5627
5627
  const safeList = [
package/dist/unplugin.mjs CHANGED
@@ -3,7 +3,7 @@ import { join, normalize } from 'pathe';
3
3
  import { createUnplugin } from 'unplugin';
4
4
  import { defu } from 'defu';
5
5
  import tailwind from '@tailwindcss/vite';
6
- import { g as getTemplates, d as defaultOptions, a as getDefaultUiConfig } from './shared/b24ui-nuxt.BL9IkPeR.mjs';
6
+ import { g as getTemplates, d as defaultOptions, a as getDefaultUiConfig } from './shared/b24ui-nuxt.jU270f-Q.mjs';
7
7
  import { globSync } from 'tinyglobby';
8
8
  import { genSafeVariableName } from 'knitwork';
9
9
  import MagicString from 'magic-string';
package/dist/vite.mjs CHANGED
@@ -4,7 +4,7 @@ import 'pathe';
4
4
  import 'unplugin';
5
5
  import 'defu';
6
6
  import '@tailwindcss/vite';
7
- import './shared/b24ui-nuxt.BL9IkPeR.mjs';
7
+ import './shared/b24ui-nuxt.jU270f-Q.mjs';
8
8
  import 'scule';
9
9
  import '@nuxt/kit';
10
10
  import 'tinyglobby';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bitrix24/b24ui-nuxt",
3
3
  "description": "Bitrix24 UI-Kit for developing web applications REST API for NUXT & VUE",
4
- "version": "0.6.6",
4
+ "version": "0.6.8",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/bitrix24/b24ui.git"
@@ -100,20 +100,20 @@
100
100
  "vue-plugin.d.ts"
101
101
  ],
102
102
  "dependencies": {
103
- "@bitrix24/b24icons-vue": "^1.0.5",
103
+ "@bitrix24/b24icons-vue": "^2.0.2",
104
104
  "@bitrix24/b24style": "^1.0.1",
105
- "@internationalized/date": "^3.8.0",
106
- "@internationalized/number": "^3.6.1",
107
- "@nuxt/kit": "^3.16.2",
108
- "@nuxt/schema": "^3.16.2",
105
+ "@internationalized/date": "^3.8.1",
106
+ "@internationalized/number": "^3.6.2",
107
+ "@nuxt/kit": "^3.17.4",
108
+ "@nuxt/schema": "^3.17.4",
109
109
  "@nuxtjs/color-mode": "^3.5.2",
110
110
  "@standard-schema/spec": "^1.0.0",
111
- "@tailwindcss/postcss": "^4.1.4",
112
- "@tailwindcss/vite": "^4.1.4",
111
+ "@tailwindcss/postcss": "^4.1.8",
112
+ "@tailwindcss/vite": "^4.1.8",
113
113
  "@tanstack/vue-table": "^8.21.3",
114
- "@unhead/vue": "^2.0.8",
115
- "@vueuse/core": "^13.1.0",
116
- "@vueuse/integrations": "^13.1.0",
114
+ "@unhead/vue": "^2.0.10",
115
+ "@vueuse/core": "^13.3.0",
116
+ "@vueuse/integrations": "^13.3.0",
117
117
  "canvas-confetti": "^1.9.3",
118
118
  "colortranslator": "^4.1.0",
119
119
  "consola": "^3.4.2",
@@ -135,37 +135,37 @@
135
135
  "reka-ui": "^2.2.0",
136
136
  "scule": "^1.3.0",
137
137
  "tailwind-variants": "^1.0.0",
138
- "tailwindcss": "^4.1.4",
139
- "tinyglobby": "^0.2.13",
140
- "unplugin": "^2.3.2",
141
- "unplugin-auto-import": "^19.1.2",
142
- "unplugin-vue-components": "^28.5.0",
138
+ "tailwindcss": "^4.1.8",
139
+ "tinyglobby": "^0.2.14",
140
+ "unplugin": "^2.3.5",
141
+ "unplugin-auto-import": "^19.3.0",
142
+ "unplugin-vue-components": "^28.7.0",
143
143
  "vaul-vue": "^0.4.1"
144
144
  },
145
145
  "devDependencies": {
146
- "@nuxt/eslint-config": "^1.3.0",
146
+ "@nuxt/eslint-config": "^1.4.1",
147
147
  "@nuxt/module-builder": "^1.0.1",
148
- "@nuxt/test-utils": "^3.17.2",
148
+ "@nuxt/test-utils": "^3.19.1",
149
149
  "@types/canvas-confetti": "^1.9.0",
150
150
  "@vue/test-utils": "^2.4.6",
151
151
  "embla-carousel": "^8.6.0",
152
- "eslint": "^9.25.1",
153
- "happy-dom": "^17.4.4",
154
- "nuxt": "^3.16.2",
155
- "nuxt-component-meta": "^0.10.1",
156
- "vitest": "^3.1.2",
152
+ "eslint": "^9.28.0",
153
+ "happy-dom": "^17.6.1",
154
+ "nuxt": "^3.17.4",
155
+ "nuxt-component-meta": "^0.11.0",
156
+ "vitest": "^3.2.0",
157
157
  "vitest-environment-nuxt": "^1.0.1",
158
158
  "vue-tsc": "^2.2.10"
159
159
  },
160
160
  "peerDependencies": {
161
- "@inertiajs/vue3": "^2.0.8",
161
+ "@inertiajs/vue3": "^2.0.11",
162
162
  "joi": "^17.13.3",
163
163
  "superstruct": "^2.0.2",
164
164
  "typescript": "^5.8.3",
165
- "valibot": "^1.0.0",
166
- "vue-router": "^4.5.0",
165
+ "valibot": "^1.1.0",
166
+ "vue-router": "^4.5.1",
167
167
  "yup": "^1.6.1",
168
- "zod": "^3.24.3"
168
+ "zod": "^3.25.49"
169
169
  },
170
170
  "peerDependenciesMeta": {
171
171
  "@inertiajs/vue3": {