@bitrix24/b24ui-nuxt 0.1.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 (159) hide show
  1. package/.nuxt/b24ui/advice.ts +52 -0
  2. package/.nuxt/b24ui/alert.ts +118 -0
  3. package/.nuxt/b24ui/avatar-group.ts +52 -0
  4. package/.nuxt/b24ui/avatar.ts +63 -0
  5. package/.nuxt/b24ui/badge.ts +256 -0
  6. package/.nuxt/b24ui/button-group.ts +27 -0
  7. package/.nuxt/b24ui/button.ts +342 -0
  8. package/.nuxt/b24ui/checkbox.ts +128 -0
  9. package/.nuxt/b24ui/chip.ts +205 -0
  10. package/.nuxt/b24ui/container.ts +3 -0
  11. package/.nuxt/b24ui/content/description-list.ts +62 -0
  12. package/.nuxt/b24ui/countdown.ts +94 -0
  13. package/.nuxt/b24ui/form-field.ts +57 -0
  14. package/.nuxt/b24ui/form.ts +3 -0
  15. package/.nuxt/b24ui/index.ts +28 -0
  16. package/.nuxt/b24ui/input.ts +472 -0
  17. package/.nuxt/b24ui/kbd.ts +31 -0
  18. package/.nuxt/b24ui/link.ts +20 -0
  19. package/.nuxt/b24ui/progress.ts +303 -0
  20. package/.nuxt/b24ui/radio-group.ts +135 -0
  21. package/.nuxt/b24ui/range.ts +172 -0
  22. package/.nuxt/b24ui/select.ts +550 -0
  23. package/.nuxt/b24ui/separator.ts +176 -0
  24. package/.nuxt/b24ui/skeleton.ts +3 -0
  25. package/.nuxt/b24ui/switch.ts +134 -0
  26. package/.nuxt/b24ui/tabs.ts +341 -0
  27. package/.nuxt/b24ui/textarea.ts +332 -0
  28. package/.nuxt/b24ui/toast.ts +89 -0
  29. package/.nuxt/b24ui/toaster.ts +91 -0
  30. package/.nuxt/b24ui/tooltip.ts +16 -0
  31. package/LICENSE +21 -0
  32. package/README.md +101 -0
  33. package/cli/commands/make/component.mjs +95 -0
  34. package/cli/commands/make/index.mjs +14 -0
  35. package/cli/commands/make/locale.mjs +64 -0
  36. package/cli/index.mjs +15 -0
  37. package/cli/package.json +13 -0
  38. package/cli/templates.mjs +240 -0
  39. package/cli/utils.mjs +31 -0
  40. package/dist/meta.cjs +23610 -0
  41. package/dist/meta.d.cts +23608 -0
  42. package/dist/meta.d.mts +23608 -0
  43. package/dist/meta.d.ts +23608 -0
  44. package/dist/meta.mjs +23608 -0
  45. package/dist/module.cjs +54 -0
  46. package/dist/module.d.cts +14 -0
  47. package/dist/module.d.mts +14 -0
  48. package/dist/module.d.ts +14 -0
  49. package/dist/module.json +13 -0
  50. package/dist/module.mjs +51 -0
  51. package/dist/runtime/components/Advice.vue +115 -0
  52. package/dist/runtime/components/Alert.vue +136 -0
  53. package/dist/runtime/components/App.vue +52 -0
  54. package/dist/runtime/components/Avatar.vue +118 -0
  55. package/dist/runtime/components/AvatarGroup.vue +99 -0
  56. package/dist/runtime/components/Badge.vue +114 -0
  57. package/dist/runtime/components/Button.vue +177 -0
  58. package/dist/runtime/components/ButtonGroup.vue +58 -0
  59. package/dist/runtime/components/Checkbox.vue +110 -0
  60. package/dist/runtime/components/Chip.vue +81 -0
  61. package/dist/runtime/components/Container.vue +36 -0
  62. package/dist/runtime/components/Countdown.vue +498 -0
  63. package/dist/runtime/components/Form.vue +271 -0
  64. package/dist/runtime/components/FormField.vue +128 -0
  65. package/dist/runtime/components/Input.vue +224 -0
  66. package/dist/runtime/components/Kbd.vue +50 -0
  67. package/dist/runtime/components/Link.vue +219 -0
  68. package/dist/runtime/components/LinkBase.vue +63 -0
  69. package/dist/runtime/components/Progress.vue +182 -0
  70. package/dist/runtime/components/RadioGroup.vue +178 -0
  71. package/dist/runtime/components/Range.vue +114 -0
  72. package/dist/runtime/components/Select.vue +328 -0
  73. package/dist/runtime/components/Separator.vue +82 -0
  74. package/dist/runtime/components/Skeleton.vue +31 -0
  75. package/dist/runtime/components/Switch.vue +133 -0
  76. package/dist/runtime/components/Tabs.vue +127 -0
  77. package/dist/runtime/components/Textarea.vue +216 -0
  78. package/dist/runtime/components/Toast.vue +168 -0
  79. package/dist/runtime/components/Toaster.vue +143 -0
  80. package/dist/runtime/components/Tooltip.vue +94 -0
  81. package/dist/runtime/components/content/DescriptionList.vue +220 -0
  82. package/dist/runtime/composables/defineLocale.d.ts +9 -0
  83. package/dist/runtime/composables/defineLocale.js +4 -0
  84. package/dist/runtime/composables/defineShortcuts.d.ts +15 -0
  85. package/dist/runtime/composables/defineShortcuts.js +135 -0
  86. package/dist/runtime/composables/useAvatarGroup.d.ts +10 -0
  87. package/dist/runtime/composables/useAvatarGroup.js +10 -0
  88. package/dist/runtime/composables/useButtonGroup.d.ts +17 -0
  89. package/dist/runtime/composables/useButtonGroup.js +10 -0
  90. package/dist/runtime/composables/useComponentIcons.d.ts +20 -0
  91. package/dist/runtime/composables/useComponentIcons.js +25 -0
  92. package/dist/runtime/composables/useFormField.d.ts +42 -0
  93. package/dist/runtime/composables/useFormField.js +65 -0
  94. package/dist/runtime/composables/useKbd.d.ts +35 -0
  95. package/dist/runtime/composables/useKbd.js +52 -0
  96. package/dist/runtime/composables/useLocale.d.ts +4 -0
  97. package/dist/runtime/composables/useLocale.js +10 -0
  98. package/dist/runtime/composables/useToast.d.ts +12 -0
  99. package/dist/runtime/composables/useToast.js +62 -0
  100. package/dist/runtime/dictionary/icons.d.ts +20 -0
  101. package/dist/runtime/dictionary/icons.js +35 -0
  102. package/dist/runtime/index.css +1 -0
  103. package/dist/runtime/keyframes.css +1 -0
  104. package/dist/runtime/locale/en.d.ts +2 -0
  105. package/dist/runtime/locale/en.js +48 -0
  106. package/dist/runtime/locale/es.d.ts +2 -0
  107. package/dist/runtime/locale/es.js +48 -0
  108. package/dist/runtime/locale/index.d.ts +3 -0
  109. package/dist/runtime/locale/index.js +3 -0
  110. package/dist/runtime/locale/ru.d.ts +2 -0
  111. package/dist/runtime/locale/ru.js +48 -0
  112. package/dist/runtime/plugins/colors.d.ts +2 -0
  113. package/dist/runtime/plugins/colors.js +40 -0
  114. package/dist/runtime/types/app.config.d.ts +6 -0
  115. package/dist/runtime/types/form.d.ts +84 -0
  116. package/dist/runtime/types/form.js +12 -0
  117. package/dist/runtime/types/icons.d.ts +3 -0
  118. package/dist/runtime/types/icons.js +0 -0
  119. package/dist/runtime/types/index.d.ts +33 -0
  120. package/dist/runtime/types/index.js +33 -0
  121. package/dist/runtime/types/locale.d.ts +50 -0
  122. package/dist/runtime/types/locale.js +0 -0
  123. package/dist/runtime/types/utils.d.ts +22 -0
  124. package/dist/runtime/types/utils.js +0 -0
  125. package/dist/runtime/utils/form.d.ts +17 -0
  126. package/dist/runtime/utils/form.js +153 -0
  127. package/dist/runtime/utils/fuse.d.ts +4 -0
  128. package/dist/runtime/utils/fuse.js +63 -0
  129. package/dist/runtime/utils/index.d.ts +6 -0
  130. package/dist/runtime/utils/index.js +63 -0
  131. package/dist/runtime/utils/link.d.ts +29 -0
  132. package/dist/runtime/utils/link.js +4 -0
  133. package/dist/runtime/utils/locale.d.ts +15 -0
  134. package/dist/runtime/utils/locale.js +25 -0
  135. package/dist/runtime/utils/tv.d.ts +1 -0
  136. package/dist/runtime/utils/tv.js +4 -0
  137. package/dist/runtime/vue/components/Link.vue +203 -0
  138. package/dist/runtime/vue/plugins/color-mode.d.ts +4 -0
  139. package/dist/runtime/vue/plugins/color-mode.js +6 -0
  140. package/dist/runtime/vue/plugins/head.d.ts +4 -0
  141. package/dist/runtime/vue/plugins/head.js +6 -0
  142. package/dist/runtime/vue/stubs.d.ts +15 -0
  143. package/dist/runtime/vue/stubs.js +27 -0
  144. package/dist/shared/b24ui-nuxt.CNGvMe2S.mjs +4074 -0
  145. package/dist/shared/b24ui-nuxt.D22QQtm8.cjs +4079 -0
  146. package/dist/types.d.mts +1 -0
  147. package/dist/types.d.ts +1 -0
  148. package/dist/unplugin.cjs +213 -0
  149. package/dist/unplugin.d.cts +22 -0
  150. package/dist/unplugin.d.mts +22 -0
  151. package/dist/unplugin.d.ts +22 -0
  152. package/dist/unplugin.mjs +202 -0
  153. package/dist/vite.cjs +21 -0
  154. package/dist/vite.d.cts +12 -0
  155. package/dist/vite.d.mts +12 -0
  156. package/dist/vite.d.ts +12 -0
  157. package/dist/vite.mjs +19 -0
  158. package/package.json +166 -0
  159. package/vue-plugin.d.ts +5 -0
@@ -0,0 +1,20 @@
1
+ import { type MaybeRefOrGetter } from 'vue';
2
+ import type { AvatarProps, IconComponent } from '../types';
3
+ export interface UseComponentIconsProps {
4
+ /** Display an icon on the left side. */
5
+ icon?: IconComponent;
6
+ /** Display an avatar on the left side. */
7
+ avatar?: AvatarProps;
8
+ /** When `true`, the loading icon will be displayed. */
9
+ loading?: boolean;
10
+ /** When `true`, the icon will be displayed on the right side. */
11
+ trailing?: boolean;
12
+ /** Display an icon on the right side. */
13
+ trailingIcon?: IconComponent;
14
+ }
15
+ export declare function useComponentIcons(componentProps: MaybeRefOrGetter<UseComponentIconsProps>): {
16
+ isLeading: import("vue").ComputedRef<any>;
17
+ isTrailing: import("vue").ComputedRef<boolean>;
18
+ leadingIconName: import("vue").ComputedRef<IconComponent | undefined>;
19
+ trailingIconName: import("vue").ComputedRef<IconComponent | undefined>;
20
+ };
@@ -0,0 +1,25 @@
1
+ import { computed, toValue } from "vue";
2
+ import icons from "../dictionary/icons.js";
3
+ export function useComponentIcons(componentProps) {
4
+ const props = computed(() => toValue(componentProps));
5
+ const isLeading = computed(() => props.value.icon && !props.value.trailing || props.value.loading && !props.value.trailing || props.value.avatar);
6
+ const isTrailing = computed(() => props.value.icon && props.value.trailing || props.value.loading && props.value.trailing || !!props.value.trailingIcon);
7
+ const leadingIconName = computed(() => {
8
+ if (props.value.loading) {
9
+ return icons.loading;
10
+ }
11
+ return props.value.icon;
12
+ });
13
+ const trailingIconName = computed(() => {
14
+ if (props.value.loading && !isLeading.value) {
15
+ return icons.loading;
16
+ }
17
+ return props.value.trailingIcon || props.value.icon;
18
+ });
19
+ return {
20
+ isLeading,
21
+ isTrailing,
22
+ leadingIconName,
23
+ trailingIconName
24
+ };
25
+ }
@@ -0,0 +1,42 @@
1
+ import { type InjectionKey, type Ref, type ComputedRef } from 'vue';
2
+ import { type UseEventBusReturn } from '@vueuse/core';
3
+ import type { FormFieldProps } from '../types';
4
+ import type { FormEvent, FormFieldInjectedOptions, FormInjectedOptions } from '../types/form';
5
+ import type { GetObjectField } from '../types/utils';
6
+ type Props<T> = {
7
+ id?: string;
8
+ name?: string;
9
+ size?: GetObjectField<T, 'size'>;
10
+ color?: GetObjectField<T, 'color'>;
11
+ highlight?: boolean;
12
+ disabled?: boolean;
13
+ };
14
+ export declare const formOptionsInjectionKey: InjectionKey<ComputedRef<FormInjectedOptions>>;
15
+ export declare const formBusInjectionKey: InjectionKey<UseEventBusReturn<FormEvent<any>, string>>;
16
+ export declare const formFieldInjectionKey: InjectionKey<ComputedRef<FormFieldInjectedOptions<FormFieldProps>>>;
17
+ export declare const inputIdInjectionKey: InjectionKey<Ref<string | undefined>>;
18
+ export declare const formInputsInjectionKey: InjectionKey<Ref<Record<string, {
19
+ id?: string;
20
+ pattern?: RegExp;
21
+ }>>>;
22
+ export declare const formLoadingInjectionKey: InjectionKey<Readonly<Ref<boolean>>>;
23
+ export declare function useFormField<T>(props?: Props<T>, opts?: {
24
+ bind?: boolean;
25
+ deferInputValidation?: boolean;
26
+ }): {
27
+ id: ComputedRef<string | undefined>;
28
+ name: ComputedRef<string | undefined>;
29
+ size: ComputedRef<any>;
30
+ color: ComputedRef<"danger" | GetObjectField<T, "color"> | undefined>;
31
+ highlight: ComputedRef<boolean | undefined>;
32
+ disabled: ComputedRef<boolean | undefined>;
33
+ emitFormBlur: () => void;
34
+ emitFormInput: import("@vueuse/core").PromisifyFn<() => void>;
35
+ emitFormChange: () => void;
36
+ emitFormFocus: () => void;
37
+ ariaAttrs: ComputedRef<{
38
+ 'aria-describedby': string;
39
+ 'aria-invalid': boolean;
40
+ } | undefined>;
41
+ };
42
+ export {};
@@ -0,0 +1,65 @@
1
+ import { inject, computed } from "vue";
2
+ import { useDebounceFn } from "@vueuse/core";
3
+ export const formOptionsInjectionKey = Symbol("bitrix24-ui.form-options");
4
+ export const formBusInjectionKey = Symbol("bitrix24-ui.form-events");
5
+ export const formFieldInjectionKey = Symbol("bitrix24-ui.form-field");
6
+ export const inputIdInjectionKey = Symbol("bitrix24-ui.input-id");
7
+ export const formInputsInjectionKey = Symbol("bitrix24-ui.form-inputs");
8
+ export const formLoadingInjectionKey = Symbol("bitrix24-ui.form-loading");
9
+ export function useFormField(props, opts) {
10
+ const formOptions = inject(formOptionsInjectionKey, void 0);
11
+ const formBus = inject(formBusInjectionKey, void 0);
12
+ const formField = inject(formFieldInjectionKey, void 0);
13
+ const formInputs = inject(formInputsInjectionKey, void 0);
14
+ const inputId = inject(inputIdInjectionKey, void 0);
15
+ if (formField && inputId) {
16
+ if (opts?.bind === false) {
17
+ inputId.value = void 0;
18
+ } else if (props?.id) {
19
+ inputId.value = props?.id;
20
+ }
21
+ if (formInputs && formField.value.name && inputId.value) {
22
+ formInputs.value[formField.value.name] = { id: inputId.value, pattern: formField.value.errorPattern };
23
+ }
24
+ }
25
+ function emitFormEvent(type, name, eager) {
26
+ if (formBus && formField && name) {
27
+ formBus.emit({ type, name, eager });
28
+ }
29
+ }
30
+ function emitFormBlur() {
31
+ emitFormEvent("blur", formField?.value.name);
32
+ }
33
+ function emitFormFocus() {
34
+ emitFormEvent("focus", formField?.value.name);
35
+ }
36
+ function emitFormChange() {
37
+ emitFormEvent("change", formField?.value.name);
38
+ }
39
+ const emitFormInput = useDebounceFn(
40
+ () => {
41
+ emitFormEvent("input", formField?.value.name, !opts?.deferInputValidation || formField?.value.eagerValidation);
42
+ },
43
+ formField?.value.validateOnInputDelay ?? formOptions?.value.validateOnInputDelay ?? 0
44
+ );
45
+ return {
46
+ id: computed(() => props?.id ?? inputId?.value),
47
+ name: computed(() => props?.name ?? formField?.value.name),
48
+ size: computed(() => props?.size ?? formField?.value.size),
49
+ color: computed(() => formField?.value.error ? "danger" : props?.color),
50
+ highlight: computed(() => formField?.value.error ? true : props?.highlight),
51
+ disabled: computed(() => formOptions?.value.disabled || props?.disabled),
52
+ emitFormBlur,
53
+ emitFormInput,
54
+ emitFormChange,
55
+ emitFormFocus,
56
+ ariaAttrs: computed(() => {
57
+ if (!formField?.value) return;
58
+ const descriptiveAttrs = ["error", "hint", "description"].filter((type) => formField?.value?.[type]).map((type) => `${formField?.value.ariaId}-${type}`) || [];
59
+ return {
60
+ "aria-describedby": descriptiveAttrs.join(" "),
61
+ "aria-invalid": !!formField?.value.error
62
+ };
63
+ })
64
+ };
65
+ }
@@ -0,0 +1,35 @@
1
+ type KbdKeysSpecificMap = {
2
+ meta: string;
3
+ alt: string;
4
+ ctrl: string;
5
+ };
6
+ export declare const kbdKeysMap: {
7
+ meta: string;
8
+ ctrl: string;
9
+ alt: string;
10
+ win: string;
11
+ command: string;
12
+ shift: string;
13
+ option: string;
14
+ enter: string;
15
+ delete: string;
16
+ backspace: string;
17
+ escape: string;
18
+ tab: string;
19
+ capslock: string;
20
+ arrowup: string;
21
+ arrowright: string;
22
+ arrowdown: string;
23
+ arrowleft: string;
24
+ pageup: string;
25
+ pagedown: string;
26
+ home: string;
27
+ end: string;
28
+ };
29
+ export type KbdKey = keyof typeof kbdKeysMap;
30
+ export type KbdKeySpecific = keyof KbdKeysSpecificMap;
31
+ export declare const useKbd: () => {
32
+ macOS: import("vue").ComputedRef<false | "" | RegExpMatchArray | null | undefined>;
33
+ getKbdKey: (value?: KbdKey | string) => string | undefined;
34
+ };
35
+ export {};
@@ -0,0 +1,52 @@
1
+ import { reactive, computed, onMounted } from "vue";
2
+ import { createSharedComposable } from "@vueuse/core";
3
+ export const kbdKeysMap = {
4
+ meta: "",
5
+ ctrl: "",
6
+ alt: "",
7
+ win: "\u229E",
8
+ command: "\u2318",
9
+ shift: "\u21E7",
10
+ option: "\u2325",
11
+ enter: "\u21B5",
12
+ delete: "\u2326",
13
+ backspace: "\u232B",
14
+ escape: "\u238B",
15
+ tab: "\u21E5",
16
+ capslock: "\u21EA",
17
+ arrowup: "\u2191",
18
+ arrowright: "\u2192",
19
+ arrowdown: "\u2193",
20
+ arrowleft: "\u2190",
21
+ pageup: "\u21DE",
22
+ pagedown: "\u21DF",
23
+ home: "\u2196",
24
+ end: "\u2198"
25
+ };
26
+ const _useKbd = () => {
27
+ const macOS = computed(() => import.meta.client && navigator && navigator.userAgent && navigator.userAgent.match(/Macintosh;/));
28
+ const kbdKeysSpecificMap = reactive({
29
+ meta: " ",
30
+ alt: " ",
31
+ ctrl: " "
32
+ });
33
+ onMounted(() => {
34
+ kbdKeysSpecificMap.meta = macOS.value ? kbdKeysMap.command : kbdKeysMap.win;
35
+ kbdKeysSpecificMap.alt = macOS.value ? kbdKeysMap.option : "alt";
36
+ kbdKeysSpecificMap.ctrl = macOS.value ? "\u2303" : "ctrl";
37
+ });
38
+ function getKbdKey(value) {
39
+ if (!value) {
40
+ return;
41
+ }
42
+ if (["meta", "alt", "ctrl"].includes(value)) {
43
+ return kbdKeysSpecificMap[value];
44
+ }
45
+ return kbdKeysMap[value] || value.toUpperCase();
46
+ }
47
+ return {
48
+ macOS,
49
+ getKbdKey
50
+ };
51
+ };
52
+ export const useKbd = createSharedComposable(_useKbd);
@@ -0,0 +1,4 @@
1
+ import type { InjectionKey, Ref } from 'vue';
2
+ import type { Locale } from '../types/locale';
3
+ export declare const localeContextInjectionKey: InjectionKey<Ref<Locale | undefined>>;
4
+ export declare const useLocale: (localeOverrides?: Ref<Locale | undefined>) => import("../utils/locale").LocaleContext;
@@ -0,0 +1,10 @@
1
+ import { computed, inject, ref } from "vue";
2
+ import { buildLocaleContext } from "../utils/locale.js";
3
+ import en from "../locale/en.js";
4
+ import { createSharedComposable } from "@vueuse/core";
5
+ export const localeContextInjectionKey = Symbol("bitrix24-ui.locale-context");
6
+ const _useLocale = (localeOverrides) => {
7
+ const locale = localeOverrides || inject(localeContextInjectionKey, ref());
8
+ return buildLocaleContext(computed(() => locale.value || en));
9
+ };
10
+ export const useLocale = createSharedComposable(_useLocale);
@@ -0,0 +1,12 @@
1
+ import type { ToastProps } from '../types';
2
+ export interface Toast extends Omit<ToastProps, 'defaultOpen'> {
3
+ id: string | number;
4
+ click?: (toast: Toast) => void;
5
+ }
6
+ export declare function useToast(): {
7
+ toasts: import("vue").Ref<Toast[], Toast[]>;
8
+ add: (toast: Partial<Toast>) => Promise<Toast>;
9
+ update: (id: string | number, toast: Omit<Partial<Toast>, "id">) => void;
10
+ remove: (id: string | number) => void;
11
+ clear: () => void;
12
+ };
@@ -0,0 +1,62 @@
1
+ import { ref, nextTick } from "vue";
2
+ import { useState } from "#imports";
3
+ export function useToast() {
4
+ const toasts = useState("toasts", () => []);
5
+ const maxToasts = 12;
6
+ const running = ref(false);
7
+ const queue = [];
8
+ const generateId = () => `${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
9
+ async function processQueue() {
10
+ if (running.value || queue.length === 0) {
11
+ return;
12
+ }
13
+ running.value = true;
14
+ while (queue.length > 0) {
15
+ const toast = queue.shift();
16
+ await nextTick();
17
+ toasts.value = [...toasts.value, toast].slice(-1 * maxToasts);
18
+ }
19
+ running.value = false;
20
+ }
21
+ async function add(toast) {
22
+ const body = {
23
+ id: generateId(),
24
+ open: true,
25
+ ...toast
26
+ };
27
+ queue.push(body);
28
+ await processQueue();
29
+ return body;
30
+ }
31
+ function update(id, toast) {
32
+ const index = toasts.value.findIndex((t) => t.id === id);
33
+ if (index !== -1) {
34
+ toasts.value[index] = {
35
+ ...toasts.value[index],
36
+ ...toast
37
+ };
38
+ }
39
+ }
40
+ function remove(id) {
41
+ const index = toasts.value.findIndex((t) => t.id === id);
42
+ if (index !== -1) {
43
+ toasts.value[index] = {
44
+ ...toasts.value[index],
45
+ open: false
46
+ };
47
+ }
48
+ setTimeout(() => {
49
+ toasts.value = toasts.value.filter((t) => t.id !== id);
50
+ }, 200);
51
+ }
52
+ function clear() {
53
+ toasts.value = [];
54
+ }
55
+ return {
56
+ toasts,
57
+ add,
58
+ update,
59
+ remove,
60
+ clear
61
+ };
62
+ }
@@ -0,0 +1,20 @@
1
+ declare const _default: {
2
+ arrowLeft: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
3
+ arrowRight: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
4
+ check: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
5
+ chevronDoubleLeft: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
6
+ chevronDoubleRight: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
7
+ chevronDown: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
8
+ chevronLeft: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
9
+ chevronRight: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
10
+ chevronUp: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
11
+ close: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
12
+ ellipsis: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
13
+ external: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
14
+ loading: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
15
+ refresh: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
16
+ minus: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
17
+ plus: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
18
+ search: import("vue").FunctionalComponent<import("vue").HTMLAttributes & import("vue").VNodeProps, {}, any, {}>;
19
+ };
20
+ export default _default;
@@ -0,0 +1,35 @@
1
+ import ArrowToTheLeftIcon from "@bitrix24/b24icons-vue/actions/ArrowToTheLeftIcon";
2
+ import ArrowToTheRightIcon from "@bitrix24/b24icons-vue/actions/ArrowToTheRightIcon";
3
+ import CheckIcon from "@bitrix24/b24icons-vue/main/CheckIcon";
4
+ import ChevronUpIcon from "@bitrix24/b24icons-vue/actions/ChevronUpIcon";
5
+ import ChevronDownIcon from "@bitrix24/b24icons-vue/actions/ChevronDownIcon";
6
+ import ChevronToTheLeftIcon from "@bitrix24/b24icons-vue/actions/ChevronToTheLeftIcon";
7
+ import ChevronToTheRightIcon from "@bitrix24/b24icons-vue/actions/ChevronToTheRightIcon";
8
+ import DoubleShevronsRightIcon from "@bitrix24/b24icons-vue/actions/DoubleShevronsRightIcon";
9
+ import Cross30Icon from "@bitrix24/b24icons-vue/actions/Cross30Icon";
10
+ import DotsIcon from "@bitrix24/b24icons-vue/button/DotsIcon";
11
+ import OpenIn50Icon from "@bitrix24/b24icons-vue/actions/OpenIn50Icon";
12
+ import Refresh6Icon from "@bitrix24/b24icons-vue/actions/Refresh6Icon";
13
+ import Minus30Icon from "@bitrix24/b24icons-vue/actions/Minus30Icon";
14
+ import Plus30Icon from "@bitrix24/b24icons-vue/actions/Plus30Icon";
15
+ import Search2Icon from "@bitrix24/b24icons-vue/main/Search2Icon";
16
+ import LoaderWaitIcon from "@bitrix24/b24icons-vue/animated/LoaderWaitIcon";
17
+ export default {
18
+ arrowLeft: ArrowToTheLeftIcon,
19
+ arrowRight: ArrowToTheRightIcon,
20
+ check: CheckIcon,
21
+ chevronDoubleLeft: ChevronToTheLeftIcon,
22
+ chevronDoubleRight: DoubleShevronsRightIcon,
23
+ chevronDown: ChevronDownIcon,
24
+ chevronLeft: ChevronToTheLeftIcon,
25
+ chevronRight: ChevronToTheRightIcon,
26
+ chevronUp: ChevronUpIcon,
27
+ close: Cross30Icon,
28
+ ellipsis: DotsIcon,
29
+ external: OpenIn50Icon,
30
+ loading: LoaderWaitIcon,
31
+ refresh: Refresh6Icon,
32
+ minus: Minus30Icon,
33
+ plus: Plus30Icon,
34
+ search: Search2Icon
35
+ };
@@ -0,0 +1 @@
1
+ @plugin "@bitrix24/b24style";@import "./keyframes.css";@variant light (&:where(.light, .light *));@variant dark (&:where(.dark, .dark *));@layer base{body{@apply antialiased scheme-light dark:scheme-dark}}
@@ -0,0 +1 @@
1
+ @keyframes accordion-up{0%{height:var(--reka-accordion-content-height)}to{height:0}}@keyframes accordion-down{0%{height:0}to{height:var(--reka-accordion-content-height)}}@keyframes collapsible-up{0%{height:var(--reka-collapsible-content-height)}to{height:0}}@keyframes collapsible-down{0%{height:0}to{height:var(--reka-collapsible-content-height)}}@keyframes toast-collapsed-closed{0%{transform:var(--transform)}to{transform:translateY(calc((var(--before) - var(--height))*var(--gap))) scale(var(--scale))}}@keyframes toast-closed{0%{transform:var(--transform)}to{transform:translateY(calc((var(--offset) - var(--height))*var(--translate-factor)))}}@keyframes toast-slide-left{0%{transform:translateX(0) translateY(var(--translate))}to{transform:translateX(-100%) translateY(var(--translate))}}@keyframes toast-slide-right{0%{transform:translateX(0) translateY(var(--translate))}to{transform:translateX(100%) translateY(var(--translate))}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes slide-in-from-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes slide-out-to-top{0%{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes slide-in-from-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slide-out-to-right{0%{transform:translateX(0)}to{transform:translateX(100%)}}@keyframes slide-in-from-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slide-out-to-bottom{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes slide-in-from-left{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes slide-out-to-left{0%{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes slide-in-from-top-and-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out-to-top-and-fade{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes slide-in-from-right-and-fade{0%{opacity:0;transform:translateX(4px)}to{opacity:1;transform:translateX(0)}}@keyframes slide-out-to-right-and-fade{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(4px)}}@keyframes slide-in-from-bottom-and-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out-to-bottom-and-fade{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}@keyframes slide-in-from-left-and-fade{0%{opacity:0;transform:translateX(-4px)}to{opacity:1;transform:translateX(0)}}@keyframes slide-out-to-left-and-fade{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-4px)}}@keyframes enter-from-right{0%{opacity:0;transform:translateX(200px)}to{opacity:1;transform:translateX(0)}}@keyframes enter-from-left{0%{opacity:0;transform:translateX(-200px)}to{opacity:1;transform:translateX(0)}}@keyframes exit-to-right{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(200px)}}@keyframes exit-to-left{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-200px)}}@keyframes carousel{0%,to{width:30%}0%{transform:translateX(-100%)}to{transform:translateX(370%)}}@keyframes carousel-rtl{0%,to{width:30%}0%{transform:translateX(100%)}to{transform:translateX(-370%)}}@keyframes carousel-vertical{0%,to{height:30%}0%{transform:translateY(-100%)}to{transform:translateY(370%)}}@keyframes carousel-inverse{0%,to{width:30%}0%{transform:translateX(370%)}to{transform:translateX(-100%)}}@keyframes carousel-inverse-rtl{0%,to{width:30%}0%{transform:translateX(-370%)}to{transform:translateX(100%)}}@keyframes carousel-inverse-vertical{0%,to{height:30%}0%{transform:translateY(370%)}to{transform:translateY(-100%)}}@keyframes swing{0%,to{width:30%}0%,to{transform:translateX(-25%)}50%{transform:translateX(275%)}}@keyframes swing-vertical{0%,to{height:30%}0%,to{transform:translateY(-25%)}50%{transform:translateY(275%)}}@keyframes elastic{0%,to{margin-left:25%;width:50%}50%{margin-left:5%;width:90%}}@keyframes elastic-vertical{0%,to{height:50%;margin-top:25%}50%{height:90%;margin-top:5%}}@keyframes progressbar-loading{0%,to{width:30%}0%{transform:translateX(-200%)}50%{transform:translateX(350%)}to{transform:translateX(-200%)}}@keyframes progressbar-loading-vertical{0%,to{height:30%}0%{transform:translateY(-200%)}50%{transform:translateY(350%)}to{transform:translateY(-200%)}}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../types").Locale;
2
+ export default _default;
@@ -0,0 +1,48 @@
1
+ import { defineLocale } from "../composables/defineLocale.js";
2
+ export default defineLocale({
3
+ name: "English",
4
+ code: "en",
5
+ messages: {
6
+ inputMenu: {
7
+ noMatch: "No matching data",
8
+ noData: "No data",
9
+ create: 'Create "{label}"'
10
+ },
11
+ inputNumber: {
12
+ increment: "Increment",
13
+ decrement: "Decrement"
14
+ },
15
+ commandPalette: {
16
+ placeholder: "Type a command or search...",
17
+ noMatch: "No matching data",
18
+ noData: "No data",
19
+ close: "Close"
20
+ },
21
+ selectMenu: {
22
+ noMatch: "No matching data",
23
+ noData: "No data",
24
+ create: 'Create "{label}"',
25
+ search: "Search..."
26
+ },
27
+ toast: {
28
+ close: "Close"
29
+ },
30
+ carousel: {
31
+ prev: "Prev",
32
+ next: "Next",
33
+ goto: "Go to slide {slide}"
34
+ },
35
+ modal: {
36
+ close: "Close"
37
+ },
38
+ slideover: {
39
+ close: "Close"
40
+ },
41
+ alert: {
42
+ close: "Close"
43
+ },
44
+ table: {
45
+ noData: "No data"
46
+ }
47
+ }
48
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../types").Locale;
2
+ export default _default;
@@ -0,0 +1,48 @@
1
+ import { defineLocale } from "../composables/defineLocale.js";
2
+ export default defineLocale({
3
+ name: "Espa\xF1ol",
4
+ code: "es",
5
+ messages: {
6
+ inputMenu: {
7
+ noMatch: "No hay datos coincidentes",
8
+ noData: "Sin datos",
9
+ create: 'Crear "{label}"'
10
+ },
11
+ inputNumber: {
12
+ increment: "Incremento",
13
+ decrement: "Decremento"
14
+ },
15
+ commandPalette: {
16
+ placeholder: "Escribe un comando o busca...",
17
+ noMatch: "No hay datos coincidentes",
18
+ noData: "Sin datos",
19
+ close: "Cerrar"
20
+ },
21
+ selectMenu: {
22
+ noMatch: "No hay datos coincidentes",
23
+ noData: "Sin datos",
24
+ create: 'Crear "{label}"',
25
+ search: "Buscar..."
26
+ },
27
+ toast: {
28
+ close: "Cerrar"
29
+ },
30
+ carousel: {
31
+ prev: "Anterior",
32
+ next: "Siguiente",
33
+ goto: "Ir a la diapositiva {slide}"
34
+ },
35
+ modal: {
36
+ close: "Cerrar"
37
+ },
38
+ slideover: {
39
+ close: "Cerrar"
40
+ },
41
+ alert: {
42
+ close: "Cerrar"
43
+ },
44
+ table: {
45
+ noData: "Sin datos"
46
+ }
47
+ }
48
+ });
@@ -0,0 +1,3 @@
1
+ export { default as en } from './en';
2
+ export { default as es } from './es';
3
+ export { default as ru } from './ru';
@@ -0,0 +1,3 @@
1
+ export { default as en } from "./en.js";
2
+ export { default as es } from "./es.js";
3
+ export { default as ru } from "./ru.js";
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../types").Locale;
2
+ export default _default;
@@ -0,0 +1,48 @@
1
+ import { defineLocale } from "../composables/defineLocale.js";
2
+ export default defineLocale({
3
+ name: "\u0420\u0443\u0441\u0441\u043A\u0438\u0439",
4
+ code: "ru",
5
+ messages: {
6
+ inputMenu: {
7
+ noMatch: "\u0421\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E",
8
+ noData: "\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445",
9
+ create: '\u0421\u043E\u0437\u0434\u0430\u0442\u044C "{label}"'
10
+ },
11
+ inputNumber: {
12
+ increment: "\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C",
13
+ decrement: "\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C"
14
+ },
15
+ commandPalette: {
16
+ placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u0438\u043B\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u043F\u043E\u0438\u0441\u043A...",
17
+ noMatch: "\u0421\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E",
18
+ noData: "\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445",
19
+ close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C"
20
+ },
21
+ selectMenu: {
22
+ noMatch: "\u0421\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E",
23
+ noData: "\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445",
24
+ create: '\u0421\u043E\u0437\u0434\u0430\u0442\u044C "{label}"',
25
+ search: "\u041F\u043E\u0438\u0441\u043A..."
26
+ },
27
+ toast: {
28
+ close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C"
29
+ },
30
+ carousel: {
31
+ prev: "\u041D\u0430\u0437\u0430\u0434",
32
+ next: "\u0414\u0430\u043B\u0435\u0435",
33
+ goto: "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A {slide}"
34
+ },
35
+ modal: {
36
+ close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C"
37
+ },
38
+ slideover: {
39
+ close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C"
40
+ },
41
+ alert: {
42
+ close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C"
43
+ },
44
+ table: {
45
+ noData: "\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445"
46
+ }
47
+ }
48
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: import("#app").Plugin<Record<string, unknown>> & import("#app").ObjectPlugin<Record<string, unknown>>;
2
+ export default _default;
@@ -0,0 +1,40 @@
1
+ import { computed } from "vue";
2
+ import {
3
+ defineNuxtPlugin,
4
+ useNuxtApp,
5
+ useHead
6
+ } from "#imports";
7
+ export default defineNuxtPlugin(() => {
8
+ const nuxtApp = useNuxtApp();
9
+ const root = computed(() => {
10
+ return `@layer base {
11
+ :root {
12
+ ${[].join("\n ")}
13
+ }
14
+ :root, .light {
15
+ ${[].join("\n ")}
16
+ }
17
+ .dark {
18
+ ${[].join("\n ")}
19
+ }
20
+ }`;
21
+ });
22
+ const headData = {
23
+ style: [{
24
+ innerHTML: () => root.value,
25
+ tagPriority: -2,
26
+ id: "bitrix24-ui-colors",
27
+ type: "text/css"
28
+ }]
29
+ };
30
+ if (import.meta.client && nuxtApp.isHydrating && !nuxtApp.payload.serverRendered) {
31
+ const style = document.createElement("style");
32
+ style.innerHTML = root.value;
33
+ style.setAttribute("data-bitrix24-ui-colors", "");
34
+ document.head.appendChild(style);
35
+ headData.script = [{
36
+ innerHTML: "document.head.removeChild(document.querySelector('[data-bitrix24-ui-colors]'))"
37
+ }];
38
+ }
39
+ useHead(headData);
40
+ });
@@ -0,0 +1,6 @@
1
+ declare module '#build/app.config' {
2
+ import type { AppConfig } from '@nuxt/schema'
3
+
4
+ const _default: AppConfig
5
+ export default _default
6
+ }