@bitrix24/b24ui-nuxt 0.5.10 → 0.5.11
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.
- package/dist/meta.cjs +72112 -0
- package/dist/meta.d.cts +72110 -0
- package/dist/meta.d.mts +5060 -5060
- package/dist/meta.d.ts +72110 -0
- package/dist/meta.mjs +5060 -5060
- package/dist/module.cjs +63 -0
- package/dist/module.d.cts +15 -0
- package/dist/module.d.ts +15 -0
- package/dist/module.json +3 -3
- package/dist/module.mjs +1 -1
- package/dist/runtime/components/Advice.vue +54 -47
- package/dist/runtime/components/Alert.vue +96 -71
- package/dist/runtime/components/App.vue +34 -37
- package/dist/runtime/components/Avatar.vue +81 -69
- package/dist/runtime/components/AvatarGroup.vue +76 -53
- package/dist/runtime/components/Badge.vue +83 -83
- package/dist/runtime/components/Button.vue +157 -220
- package/dist/runtime/components/ButtonGroup.vue +51 -35
- package/dist/runtime/components/Calendar.vue +152 -186
- package/dist/runtime/components/Checkbox.vue +73 -84
- package/dist/runtime/components/Chip.vue +74 -59
- package/dist/runtime/components/Collapsible.vue +41 -44
- package/dist/runtime/components/Container.vue +27 -18
- package/dist/runtime/components/Countdown.vue +378 -198
- package/dist/runtime/components/DescriptionList.vue +149 -102
- package/dist/runtime/components/DropdownMenu.vue +139 -83
- package/dist/runtime/components/DropdownMenuContent.vue +84 -137
- package/dist/runtime/components/Form.vue +216 -162
- package/dist/runtime/components/FormField.vue +80 -76
- package/dist/runtime/components/Input.vue +179 -160
- package/dist/runtime/components/InputMenu.vue +380 -300
- package/dist/runtime/components/InputNumber.vue +175 -178
- package/dist/runtime/components/Kbd.vue +45 -33
- package/dist/runtime/components/Link.vue +173 -179
- package/dist/runtime/components/LinkBase.vue +42 -64
- package/dist/runtime/components/Modal.vue +127 -105
- package/dist/runtime/components/ModalDialogClose.vue +8 -4
- package/dist/runtime/components/Navbar.vue +33 -24
- package/dist/runtime/components/NavbarDivider.vue +33 -24
- package/dist/runtime/components/NavbarSection.vue +33 -24
- package/dist/runtime/components/NavbarSpacer.vue +33 -24
- package/dist/runtime/components/NavigationMenu.vue +210 -144
- package/dist/runtime/components/OverlayProvider.vue +17 -13
- package/dist/runtime/components/Popover.vue +81 -81
- package/dist/runtime/components/Progress.vue +136 -109
- package/dist/runtime/components/RadioGroup.vue +134 -120
- package/dist/runtime/components/Range.vue +85 -94
- package/dist/runtime/components/Select.vue +260 -212
- package/dist/runtime/components/SelectMenu.vue +365 -272
- package/dist/runtime/components/Separator.vue +71 -61
- package/dist/runtime/components/Sidebar.vue +33 -24
- package/dist/runtime/components/SidebarBody.vue +38 -30
- package/dist/runtime/components/SidebarFooter.vue +33 -24
- package/dist/runtime/components/SidebarHeader.vue +33 -24
- package/dist/runtime/components/SidebarHeading.vue +33 -24
- package/dist/runtime/components/SidebarLayout.vue +70 -40
- package/dist/runtime/components/SidebarSection.vue +33 -24
- package/dist/runtime/components/SidebarSpacer.vue +33 -24
- package/dist/runtime/components/Skeleton.vue +22 -17
- package/dist/runtime/components/Slideover.vue +131 -108
- package/dist/runtime/components/StackedLayout.vue +73 -40
- package/dist/runtime/components/Switch.vue +95 -100
- package/dist/runtime/components/Tabs.vue +107 -81
- package/dist/runtime/components/Textarea.vue +201 -177
- package/dist/runtime/components/Toast.vue +105 -94
- package/dist/runtime/components/Toaster.vue +116 -94
- package/dist/runtime/components/Tooltip.vue +64 -78
- package/dist/runtime/components/content/TableWrapper.vue +70 -58
- package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
- package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
- package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
- package/dist/runtime/composables/useFormField.d.ts +1 -1
- package/dist/runtime/prose/A.vue +23 -18
- package/dist/runtime/prose/Blockquote.vue +23 -18
- package/dist/runtime/prose/Code.vue +31 -23
- package/dist/runtime/prose/Em.vue +23 -18
- package/dist/runtime/prose/H1.vue +23 -18
- package/dist/runtime/prose/H2.vue +23 -18
- package/dist/runtime/prose/H3.vue +23 -18
- package/dist/runtime/prose/H4.vue +23 -18
- package/dist/runtime/prose/H5.vue +23 -18
- package/dist/runtime/prose/H6.vue +23 -18
- package/dist/runtime/prose/Hr.vue +19 -18
- package/dist/runtime/prose/Img.vue +23 -18
- package/dist/runtime/prose/Li.vue +23 -18
- package/dist/runtime/prose/Ol.vue +23 -18
- package/dist/runtime/prose/P.vue +23 -18
- package/dist/runtime/prose/Pre.vue +33 -28
- package/dist/runtime/prose/Strong.vue +23 -18
- package/dist/runtime/prose/Table.vue +54 -44
- package/dist/runtime/prose/Tbody.vue +23 -18
- package/dist/runtime/prose/Td.vue +23 -18
- package/dist/runtime/prose/Th.vue +23 -18
- package/dist/runtime/prose/Thead.vue +23 -18
- package/dist/runtime/prose/Tr.vue +23 -18
- package/dist/runtime/prose/Ul.vue +23 -18
- package/dist/runtime/vue/components/Link.vue +202 -201
- package/dist/shared/b24ui-nuxt.DrKwIWoc.cjs +7721 -0
- package/dist/types.d.mts +5 -3
- package/dist/types.d.ts +7 -0
- package/dist/unplugin.cjs +236 -0
- package/dist/unplugin.d.cts +33 -0
- package/dist/unplugin.d.ts +33 -0
- package/dist/vite.cjs +21 -0
- package/dist/vite.d.cts +14 -0
- package/dist/vite.d.ts +14 -0
- package/package.json +25 -13
- package/dist/runtime/components/Advice.vue.d.ts +0 -170
- package/dist/runtime/components/Alert.vue.d.ts +0 -464
- package/dist/runtime/components/App.vue.d.ts +0 -23
- package/dist/runtime/components/Avatar.vue.d.ts +0 -281
- package/dist/runtime/components/AvatarGroup.vue.d.ts +0 -204
- package/dist/runtime/components/Badge.vue.d.ts +0 -517
- package/dist/runtime/components/Button.vue.d.ts +0 -640
- package/dist/runtime/components/ButtonGroup.vue.d.ts +0 -116
- package/dist/runtime/components/Calendar.vue.d.ts +0 -437
- package/dist/runtime/components/Checkbox.vue.d.ts +0 -354
- package/dist/runtime/components/Chip.vue.d.ts +0 -271
- package/dist/runtime/components/Collapsible.vue.d.ts +0 -118
- package/dist/runtime/components/Container.vue.d.ts +0 -27
- package/dist/runtime/components/Countdown.vue.d.ts +0 -356
- package/dist/runtime/components/DescriptionList.vue.d.ts +0 -379
- package/dist/runtime/components/DropdownMenu.vue.d.ts +0 -533
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +0 -228
- package/dist/runtime/components/Form.vue.d.ts +0 -55
- package/dist/runtime/components/FormField.vue.d.ts +0 -282
- package/dist/runtime/components/Input.vue.d.ts +0 -755
- package/dist/runtime/components/InputMenu.vue.d.ts +0 -1504
- package/dist/runtime/components/InputNumber.vue.d.ts +0 -658
- package/dist/runtime/components/Kbd.vue.d.ts +0 -109
- package/dist/runtime/components/Link.vue.d.ts +0 -129
- package/dist/runtime/components/LinkBase.vue.d.ts +0 -48
- package/dist/runtime/components/Modal.vue.d.ts +0 -327
- package/dist/runtime/components/ModalDialogClose.vue.d.ts +0 -10
- package/dist/runtime/components/Navbar.vue.d.ts +0 -101
- package/dist/runtime/components/NavbarDivider.vue.d.ts +0 -101
- package/dist/runtime/components/NavbarSection.vue.d.ts +0 -101
- package/dist/runtime/components/NavbarSpacer.vue.d.ts +0 -101
- package/dist/runtime/components/NavigationMenu.vue.d.ts +0 -824
- package/dist/runtime/components/OverlayProvider.vue.d.ts +0 -2
- package/dist/runtime/components/Popover.vue.d.ts +0 -147
- package/dist/runtime/components/Progress.vue.d.ts +0 -592
- package/dist/runtime/components/RadioGroup.vue.d.ts +0 -723
- package/dist/runtime/components/Range.vue.d.ts +0 -417
- package/dist/runtime/components/Select.vue.d.ts +0 -1200
- package/dist/runtime/components/SelectMenu.vue.d.ts +0 -1298
- package/dist/runtime/components/Separator.vue.d.ts +0 -400
- package/dist/runtime/components/Sidebar.vue.d.ts +0 -101
- package/dist/runtime/components/SidebarBody.vue.d.ts +0 -90
- package/dist/runtime/components/SidebarFooter.vue.d.ts +0 -101
- package/dist/runtime/components/SidebarHeader.vue.d.ts +0 -101
- package/dist/runtime/components/SidebarHeading.vue.d.ts +0 -101
- package/dist/runtime/components/SidebarLayout.vue.d.ts +0 -222
- package/dist/runtime/components/SidebarSection.vue.d.ts +0 -101
- package/dist/runtime/components/SidebarSpacer.vue.d.ts +0 -101
- package/dist/runtime/components/Skeleton.vue.d.ts +0 -26
- package/dist/runtime/components/Slideover.vue.d.ts +0 -360
- package/dist/runtime/components/StackedLayout.vue.d.ts +0 -192
- package/dist/runtime/components/Switch.vue.d.ts +0 -587
- package/dist/runtime/components/Tabs.vue.d.ts +0 -453
- package/dist/runtime/components/Textarea.vue.d.ts +0 -601
- package/dist/runtime/components/Toast.vue.d.ts +0 -438
- package/dist/runtime/components/Toaster.vue.d.ts +0 -219
- package/dist/runtime/components/Tooltip.vue.d.ts +0 -186
- package/dist/runtime/components/content/TableWrapper.vue.d.ts +0 -237
- package/dist/runtime/prose/A.vue.d.ts +0 -84
- package/dist/runtime/prose/Blockquote.vue.d.ts +0 -84
- package/dist/runtime/prose/Code.vue.d.ts +0 -97
- package/dist/runtime/prose/Em.vue.d.ts +0 -84
- package/dist/runtime/prose/H1.vue.d.ts +0 -97
- package/dist/runtime/prose/H2.vue.d.ts +0 -123
- package/dist/runtime/prose/H3.vue.d.ts +0 -123
- package/dist/runtime/prose/H4.vue.d.ts +0 -123
- package/dist/runtime/prose/H5.vue.d.ts +0 -123
- package/dist/runtime/prose/H6.vue.d.ts +0 -123
- package/dist/runtime/prose/Hr.vue.d.ts +0 -74
- package/dist/runtime/prose/Img.vue.d.ts +0 -77
- package/dist/runtime/prose/Li.vue.d.ts +0 -84
- package/dist/runtime/prose/Ol.vue.d.ts +0 -84
- package/dist/runtime/prose/P.vue.d.ts +0 -84
- package/dist/runtime/prose/Pre.vue.d.ts +0 -117
- package/dist/runtime/prose/Strong.vue.d.ts +0 -84
- package/dist/runtime/prose/Table.vue.d.ts +0 -144
- package/dist/runtime/prose/Tbody.vue.d.ts +0 -84
- package/dist/runtime/prose/Td.vue.d.ts +0 -84
- package/dist/runtime/prose/Th.vue.d.ts +0 -84
- package/dist/runtime/prose/Thead.vue.d.ts +0 -84
- package/dist/runtime/prose/Tr.vue.d.ts +0 -84
- package/dist/runtime/prose/Ul.vue.d.ts +0 -84
- package/dist/runtime/vue/components/Link.vue.d.ts +0 -129
package/dist/module.cjs
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const defu = require('defu');
|
|
4
|
+
const kit = require('@nuxt/kit');
|
|
5
|
+
const templates = require('./shared/b24ui-nuxt.DrKwIWoc.cjs');
|
|
6
|
+
require('node:url');
|
|
7
|
+
require('scule');
|
|
8
|
+
|
|
9
|
+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
10
|
+
const name = "@bitrix24/b24ui-nuxt";
|
|
11
|
+
const version = "0.5.11";
|
|
12
|
+
|
|
13
|
+
const module$1 = kit.defineNuxtModule({
|
|
14
|
+
meta: {
|
|
15
|
+
name,
|
|
16
|
+
version,
|
|
17
|
+
docs: "https://bitrix24.github.io/b24ui/guide/installation-nuxt-app.html",
|
|
18
|
+
configKey: "b24ui",
|
|
19
|
+
compatibility: {
|
|
20
|
+
nuxt: ">=3.16.0"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
defaults: templates.defaultOptions,
|
|
24
|
+
async setup(options, nuxt) {
|
|
25
|
+
const { resolve } = kit.createResolver((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('module.cjs', document.baseURI).href)));
|
|
26
|
+
nuxt.options.b24ui = options;
|
|
27
|
+
nuxt.options.alias["#b24ui"] = resolve("./runtime");
|
|
28
|
+
nuxt.options.appConfig.b24ui = defu.defu(nuxt.options.appConfig.b24ui || {}, templates.getDefaultUiConfig());
|
|
29
|
+
nuxt.options.app.rootAttrs = nuxt.options.app.rootAttrs || {};
|
|
30
|
+
nuxt.options.app.rootAttrs.class = [nuxt.options.app.rootAttrs.class, "isolate"].filter(Boolean).join(" ");
|
|
31
|
+
if (nuxt.options.builder === "@nuxt/vite-builder") {
|
|
32
|
+
const plugin = await import('@tailwindcss/vite').then((r) => r.default);
|
|
33
|
+
kit.addVitePlugin(plugin());
|
|
34
|
+
} else {
|
|
35
|
+
nuxt.options.postcss.plugins["@tailwindcss/postcss"] = {};
|
|
36
|
+
}
|
|
37
|
+
async function registerModule(name2, key, options2) {
|
|
38
|
+
if (!kit.hasNuxtModule(name2)) {
|
|
39
|
+
await kit.installModule(name2, options2);
|
|
40
|
+
} else {
|
|
41
|
+
nuxt.options[key] = defu.defu(nuxt.options[key], options2);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (options.colorMode) {
|
|
45
|
+
await registerModule("@nuxtjs/color-mode", "colorMode", { classSuffix: "", disableTransition: true });
|
|
46
|
+
}
|
|
47
|
+
kit.addPlugin({ src: resolve("./runtime/plugins/colors") });
|
|
48
|
+
kit.addComponentsDir({
|
|
49
|
+
path: resolve("./runtime/components"),
|
|
50
|
+
prefix: "B24",
|
|
51
|
+
pathPrefix: false
|
|
52
|
+
});
|
|
53
|
+
kit.addComponentsDir({
|
|
54
|
+
path: resolve("./runtime/prose"),
|
|
55
|
+
prefix: "Prose",
|
|
56
|
+
pathPrefix: false
|
|
57
|
+
});
|
|
58
|
+
kit.addImportsDir(resolve("./runtime/composables"));
|
|
59
|
+
templates.addTemplates(options, nuxt, resolve);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
module.exports = module$1;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
|
+
export * from '../dist/runtime/types/index.js';
|
|
3
|
+
|
|
4
|
+
interface ModuleOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Enable or disable `@nuxtjs/color-mode` module
|
|
7
|
+
* @defaultValue `true`
|
|
8
|
+
* @link https://bitrix24.github.io/b24ui/guide/color-mode-nuxt.html
|
|
9
|
+
*/
|
|
10
|
+
colorMode?: boolean;
|
|
11
|
+
}
|
|
12
|
+
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
13
|
+
|
|
14
|
+
export { _default as default };
|
|
15
|
+
export type { ModuleOptions };
|
package/dist/module.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
|
+
export * from '../dist/runtime/types/index.js';
|
|
3
|
+
|
|
4
|
+
interface ModuleOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Enable or disable `@nuxtjs/color-mode` module
|
|
7
|
+
* @defaultValue `true`
|
|
8
|
+
* @link https://bitrix24.github.io/b24ui/guide/color-mode-nuxt.html
|
|
9
|
+
*/
|
|
10
|
+
colorMode?: boolean;
|
|
11
|
+
}
|
|
12
|
+
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
13
|
+
|
|
14
|
+
export { _default as default };
|
|
15
|
+
export type { ModuleOptions };
|
package/dist/module.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitrix24/b24ui-nuxt",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.11",
|
|
4
4
|
"docs": "https://bitrix24.github.io/b24ui/guide/installation-nuxt-app.html",
|
|
5
5
|
"configKey": "b24ui",
|
|
6
6
|
"compatibility": {
|
|
7
7
|
"nuxt": ">=3.16.0"
|
|
8
8
|
},
|
|
9
9
|
"builder": {
|
|
10
|
-
"@nuxt/module-builder": "
|
|
11
|
-
"unbuild": "
|
|
10
|
+
"@nuxt/module-builder": "0.8.4",
|
|
11
|
+
"unbuild": "2.0.0"
|
|
12
12
|
}
|
|
13
13
|
}
|
package/dist/module.mjs
CHANGED
|
@@ -1,54 +1,61 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
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/advice'
|
|
6
|
+
import type { UseComponentIconsProps } from '../composables/useComponentIcons'
|
|
7
|
+
import { tv } from '../utils/tv'
|
|
8
|
+
import type { AvatarProps } from '../types'
|
|
9
|
+
|
|
10
|
+
const appConfigAdvice = _appConfig as AppConfig & { b24ui: { advice: Partial<typeof theme> } }
|
|
11
|
+
|
|
12
|
+
const advice = tv({ extend: tv(theme), ...(appConfigAdvice.b24ui?.advice || {}) })
|
|
13
|
+
|
|
14
|
+
type AdviceVariants = VariantProps<typeof advice>
|
|
15
|
+
|
|
16
|
+
export interface AdviceProps extends Omit<UseComponentIconsProps, 'loading' | 'trailing' | 'trailingIcon'> {
|
|
17
|
+
/**
|
|
18
|
+
* The element or component this component should render as.
|
|
19
|
+
* @defaultValue 'div'
|
|
20
|
+
*/
|
|
21
|
+
as?: any
|
|
22
|
+
description?: string
|
|
23
|
+
/**
|
|
24
|
+
* @defaultValue 'bottom'
|
|
25
|
+
*/
|
|
26
|
+
angle?: AdviceVariants['angle']
|
|
27
|
+
class?: any
|
|
28
|
+
b24ui?: Partial<typeof advice.slots>
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface AdviceSlots {
|
|
32
|
+
leading(props?: {}): any
|
|
33
|
+
default(props?: {}): any
|
|
34
|
+
}
|
|
7
35
|
</script>
|
|
8
36
|
|
|
9
|
-
<script setup>
|
|
10
|
-
import { computed } from
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
type: null,
|
|
25
|
-
required: false,
|
|
26
|
-
default: "bottom"
|
|
27
|
-
},
|
|
28
|
-
class: {
|
|
29
|
-
type: null,
|
|
30
|
-
required: false
|
|
31
|
-
},
|
|
32
|
-
b24ui: {
|
|
33
|
-
type: Object,
|
|
34
|
-
required: false
|
|
35
|
-
},
|
|
36
|
-
icon: {
|
|
37
|
-
type: [Function, Object],
|
|
38
|
-
required: false
|
|
39
|
-
},
|
|
40
|
-
avatar: {
|
|
41
|
-
type: Object,
|
|
42
|
-
required: false
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
const slots = defineSlots();
|
|
37
|
+
<script setup lang="ts">
|
|
38
|
+
import { computed } from 'vue'
|
|
39
|
+
import { Primitive } from 'reka-ui'
|
|
40
|
+
import { useComponentIcons } from '../composables/useComponentIcons'
|
|
41
|
+
import B24Avatar from './Avatar.vue'
|
|
42
|
+
import PersonIcon from '@bitrix24/b24icons-vue/main/PersonIcon'
|
|
43
|
+
|
|
44
|
+
defineOptions({ inheritAttrs: false })
|
|
45
|
+
|
|
46
|
+
const props = withDefaults(defineProps<AdviceProps>(), {
|
|
47
|
+
as: 'div',
|
|
48
|
+
angle: 'bottom'
|
|
49
|
+
})
|
|
50
|
+
const slots = defineSlots<AdviceSlots>()
|
|
51
|
+
|
|
46
52
|
const { isLeading, leadingIconName } = useComponentIcons(
|
|
47
53
|
computed(() => ({ ...props, loading: false }))
|
|
48
|
-
)
|
|
54
|
+
)
|
|
55
|
+
|
|
49
56
|
const b24ui = computed(() => advice({
|
|
50
57
|
angle: props.angle
|
|
51
|
-
}))
|
|
58
|
+
}))
|
|
52
59
|
</script>
|
|
53
60
|
|
|
54
61
|
<template>
|
|
@@ -62,7 +69,7 @@ const b24ui = computed(() => advice({
|
|
|
62
69
|
/>
|
|
63
70
|
<B24Avatar
|
|
64
71
|
v-else-if="!!avatar"
|
|
65
|
-
:size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
|
|
72
|
+
:size="((props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()) as AvatarProps['size'])"
|
|
66
73
|
v-bind="avatar"
|
|
67
74
|
:class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
|
|
68
75
|
/>
|
|
@@ -73,7 +80,7 @@ const b24ui = computed(() => advice({
|
|
|
73
80
|
:class="b24ui.leading({ class: props.b24ui?.leading })"
|
|
74
81
|
>
|
|
75
82
|
<B24Avatar
|
|
76
|
-
:size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
|
|
83
|
+
:size="((props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()) as AvatarProps['size'])"
|
|
77
84
|
:icon="PersonIcon"
|
|
78
85
|
alt="Person"
|
|
79
86
|
:class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
|
|
@@ -1,78 +1,103 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
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/alert'
|
|
6
|
+
import { tv } from '../utils/tv'
|
|
7
|
+
import type { AvatarProps, ButtonProps, IconComponent } from '../types'
|
|
8
|
+
|
|
9
|
+
const appConfigAlert = _appConfig as AppConfig & { b24ui: { alert: Partial<typeof theme> } }
|
|
10
|
+
|
|
11
|
+
const alert = tv({ extend: tv(theme), ...(appConfigAlert.b24ui?.alert || {}) })
|
|
12
|
+
|
|
13
|
+
type AlertVariants = VariantProps<typeof alert>
|
|
14
|
+
|
|
15
|
+
export interface AlertProps {
|
|
16
|
+
/**
|
|
17
|
+
* The element or component this component should render as.
|
|
18
|
+
* @defaultValue 'div'
|
|
19
|
+
*/
|
|
20
|
+
as?: any
|
|
21
|
+
title?: string
|
|
22
|
+
description?: string
|
|
23
|
+
/**
|
|
24
|
+
* Display an icon on the left side.
|
|
25
|
+
* @IconComponent
|
|
26
|
+
*/
|
|
27
|
+
icon?: IconComponent
|
|
28
|
+
avatar?: AvatarProps
|
|
29
|
+
/**
|
|
30
|
+
* @defaultValue 'default'
|
|
31
|
+
*/
|
|
32
|
+
color?: AlertVariants['color']
|
|
33
|
+
/**
|
|
34
|
+
* The orientation between the content and the actions.
|
|
35
|
+
* @defaultValue 'vertical'
|
|
36
|
+
*/
|
|
37
|
+
orientation?: AlertVariants['orientation']
|
|
38
|
+
/**
|
|
39
|
+
* @defaultValue 'md'
|
|
40
|
+
*/
|
|
41
|
+
size?: AlertVariants['size']
|
|
42
|
+
/**
|
|
43
|
+
* Display a list of actions:
|
|
44
|
+
* - under the title and description when orientation is `vertical`
|
|
45
|
+
* - next to the close button when orientation is `horizontal`
|
|
46
|
+
* `{ size: 'xs' }`{lang="ts"}
|
|
47
|
+
*/
|
|
48
|
+
actions?: ButtonProps[]
|
|
49
|
+
/**
|
|
50
|
+
* Display a close button to dismiss the alert.
|
|
51
|
+
* `{ size: 'md', color: 'neutral', variant: 'link' }`{lang="ts"}
|
|
52
|
+
* @emits 'update:open'
|
|
53
|
+
* @defaultValue false
|
|
54
|
+
*/
|
|
55
|
+
close?: boolean | Partial<ButtonProps>
|
|
56
|
+
/**
|
|
57
|
+
* The icon displayed in the close button.
|
|
58
|
+
* @defaultValue icons.close
|
|
59
|
+
* @IconComponent
|
|
60
|
+
*/
|
|
61
|
+
closeIcon?: IconComponent
|
|
62
|
+
class?: any
|
|
63
|
+
b24ui?: Partial<typeof alert.slots>
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface AlertEmits {
|
|
67
|
+
(e: 'update:open', value: boolean): void
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export interface AlertSlots {
|
|
71
|
+
leading(props?: {}): any
|
|
72
|
+
title(props?: {}): any
|
|
73
|
+
description(props?: {}): any
|
|
74
|
+
actions(props?: {}): any
|
|
75
|
+
close(props: { b24ui: ReturnType<typeof alert> }): any
|
|
76
|
+
}
|
|
7
77
|
</script>
|
|
8
78
|
|
|
9
|
-
<script setup>
|
|
10
|
-
import { computed } from
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
icon: {
|
|
26
|
-
type: [Function, Object],
|
|
27
|
-
required: false
|
|
28
|
-
},
|
|
29
|
-
avatar: {
|
|
30
|
-
type: Object,
|
|
31
|
-
required: false
|
|
32
|
-
},
|
|
33
|
-
color: {
|
|
34
|
-
type: null,
|
|
35
|
-
required: false
|
|
36
|
-
},
|
|
37
|
-
orientation: {
|
|
38
|
-
type: null,
|
|
39
|
-
required: false,
|
|
40
|
-
default: "vertical"
|
|
41
|
-
},
|
|
42
|
-
size: {
|
|
43
|
-
type: null,
|
|
44
|
-
required: false
|
|
45
|
-
},
|
|
46
|
-
actions: {
|
|
47
|
-
type: Array,
|
|
48
|
-
required: false
|
|
49
|
-
},
|
|
50
|
-
close: {
|
|
51
|
-
type: [Boolean, Object],
|
|
52
|
-
required: false
|
|
53
|
-
},
|
|
54
|
-
closeIcon: {
|
|
55
|
-
type: [Function, Object],
|
|
56
|
-
required: false
|
|
57
|
-
},
|
|
58
|
-
class: {
|
|
59
|
-
type: null,
|
|
60
|
-
required: false
|
|
61
|
-
},
|
|
62
|
-
b24ui: {
|
|
63
|
-
type: Object,
|
|
64
|
-
required: false
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
const emits = defineEmits(["update:open"]);
|
|
68
|
-
const slots = defineSlots();
|
|
69
|
-
const { t } = useLocale();
|
|
79
|
+
<script setup lang="ts">
|
|
80
|
+
import { computed } from 'vue'
|
|
81
|
+
import { Primitive } from 'reka-ui'
|
|
82
|
+
import { useLocale } from '../composables/useLocale'
|
|
83
|
+
import icons from '../dictionary/icons'
|
|
84
|
+
import B24Avatar from './Avatar.vue'
|
|
85
|
+
import B24Button from './Button.vue'
|
|
86
|
+
|
|
87
|
+
const props = withDefaults(defineProps<AlertProps>(), {
|
|
88
|
+
orientation: 'vertical'
|
|
89
|
+
})
|
|
90
|
+
const emits = defineEmits<AlertEmits>()
|
|
91
|
+
const slots = defineSlots<AlertSlots>()
|
|
92
|
+
|
|
93
|
+
const { t } = useLocale()
|
|
94
|
+
|
|
70
95
|
const b24ui = computed(() => alert({
|
|
71
96
|
color: props.color,
|
|
72
97
|
size: props.size,
|
|
73
98
|
orientation: props.orientation,
|
|
74
99
|
title: !!props.title || !!slots.title
|
|
75
|
-
}))
|
|
100
|
+
}))
|
|
76
101
|
</script>
|
|
77
102
|
|
|
78
103
|
<template>
|
|
@@ -83,7 +108,7 @@ const b24ui = computed(() => alert({
|
|
|
83
108
|
v-if="icon"
|
|
84
109
|
:class="b24ui.icon({ class: props.b24ui?.icon })"
|
|
85
110
|
/>
|
|
86
|
-
<B24Avatar v-else-if="avatar" :size="props.b24ui?.avatarSize || b24ui.avatarSize()" v-bind="avatar" :class="b24ui.avatar({ class: props.b24ui?.avatar })" />
|
|
111
|
+
<B24Avatar v-else-if="avatar" :size="((props.b24ui?.avatarSize || b24ui.avatarSize()) as AvatarProps['size'])" v-bind="avatar" :class="b24ui.avatar({ class: props.b24ui?.avatar })" />
|
|
87
112
|
</slot>
|
|
88
113
|
|
|
89
114
|
<div :class="b24ui.wrapper({ class: props.b24ui?.wrapper })">
|
|
@@ -105,7 +130,7 @@ const b24ui = computed(() => alert({
|
|
|
105
130
|
</div>
|
|
106
131
|
</div>
|
|
107
132
|
|
|
108
|
-
<div v-if="orientation === 'horizontal' && actions?.length || close" :class="b24ui.actions({ class: props.b24ui?.actions, orientation: 'horizontal' })">
|
|
133
|
+
<div v-if="(orientation === 'horizontal' && actions?.length) || close" :class="b24ui.actions({ class: props.b24ui?.actions, orientation: 'horizontal' })">
|
|
109
134
|
<template v-if="orientation === 'horizontal' && actions?.length">
|
|
110
135
|
<slot name="actions">
|
|
111
136
|
<B24Button v-for="(action, index) in actions" :key="index" size="xs" v-bind="action" />
|
|
@@ -119,7 +144,7 @@ const b24ui = computed(() => alert({
|
|
|
119
144
|
size="xs"
|
|
120
145
|
color="link"
|
|
121
146
|
:aria-label="t('alert.close')"
|
|
122
|
-
v-bind="typeof close === 'object' ? close : {}"
|
|
147
|
+
v-bind="(typeof close === 'object' ? close as Partial<ButtonProps> : {})"
|
|
123
148
|
:class="b24ui.close({ class: props.b24ui?.close })"
|
|
124
149
|
@click="emits('update:open', false)"
|
|
125
150
|
/>
|
|
@@ -1,46 +1,43 @@
|
|
|
1
|
-
<script>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { ConfigProviderProps, TooltipProviderProps } from 'reka-ui'
|
|
3
|
+
import type { ToasterProps, Locale, Messages } from '../types'
|
|
4
|
+
|
|
5
|
+
export interface AppProps<T extends Messages = Messages> extends Omit<ConfigProviderProps, 'useId' | 'dir' | 'locale'> {
|
|
6
|
+
tooltip?: TooltipProviderProps
|
|
7
|
+
toaster?: ToasterProps | null
|
|
8
|
+
locale?: Locale<T>
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface AppSlots {
|
|
12
|
+
default(props?: {}): any
|
|
13
|
+
}
|
|
14
|
+
|
|
2
15
|
export default {
|
|
3
|
-
name:
|
|
4
|
-
}
|
|
16
|
+
name: 'App'
|
|
17
|
+
}
|
|
5
18
|
</script>
|
|
6
19
|
|
|
7
|
-
<script setup>
|
|
8
|
-
import { toRef, provide } from
|
|
9
|
-
import { useForwardProps } from
|
|
10
|
-
import { reactivePick } from
|
|
11
|
-
import { localeContextInjectionKey } from
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
scrollBody: {
|
|
26
|
-
type: [Boolean, Object],
|
|
27
|
-
required: false
|
|
28
|
-
},
|
|
29
|
-
nonce: {
|
|
30
|
-
type: String,
|
|
31
|
-
required: false
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
defineSlots();
|
|
35
|
-
const configProviderProps = useForwardProps(reactivePick(props, "scrollBody"));
|
|
36
|
-
const tooltipProps = toRef(() => props.tooltip);
|
|
37
|
-
const toasterProps = toRef(() => props.toaster);
|
|
38
|
-
const locale = toRef(() => props.locale);
|
|
39
|
-
provide(localeContextInjectionKey, locale);
|
|
20
|
+
<script setup lang="ts" generic="T extends Messages">
|
|
21
|
+
import { toRef, useId, provide } from 'vue'
|
|
22
|
+
import { ConfigProvider, TooltipProvider, useForwardProps } from 'reka-ui'
|
|
23
|
+
import { reactivePick } from '@vueuse/core'
|
|
24
|
+
import { localeContextInjectionKey } from '../composables/useLocale'
|
|
25
|
+
import B24Toaster from './Toaster.vue'
|
|
26
|
+
import B24OverlayProvider from './OverlayProvider.vue'
|
|
27
|
+
|
|
28
|
+
const props = defineProps<AppProps<T>>()
|
|
29
|
+
defineSlots<AppSlots>()
|
|
30
|
+
|
|
31
|
+
const configProviderProps = useForwardProps(reactivePick(props, 'scrollBody'))
|
|
32
|
+
const tooltipProps = toRef(() => props.tooltip)
|
|
33
|
+
const toasterProps = toRef(() => props.toaster)
|
|
34
|
+
|
|
35
|
+
const locale = toRef(() => props.locale)
|
|
36
|
+
provide(localeContextInjectionKey, locale)
|
|
40
37
|
</script>
|
|
41
38
|
|
|
42
39
|
<template>
|
|
43
|
-
<ConfigProvider :use-id="() => useId()" :dir="locale?.dir" :locale="locale?.code" v-bind="configProviderProps">
|
|
40
|
+
<ConfigProvider :use-id="() => (useId() as string)" :dir="locale?.dir" :locale="locale?.code" v-bind="configProviderProps">
|
|
44
41
|
<TooltipProvider v-bind="tooltipProps">
|
|
45
42
|
<B24Toaster v-if="toaster !== null" v-bind="toasterProps">
|
|
46
43
|
<slot />
|