@bitrix24/b24ui-nuxt 0.5.4 → 0.5.6
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/.nuxt/b24ui/input-menu.ts +1 -1
- package/.nuxt/b24ui/input-number.ts +1 -1
- package/.nuxt/b24ui/input.ts +1 -1
- package/.nuxt/b24ui/select-menu.ts +1 -1
- package/.nuxt/b24ui/select.ts +1 -1
- package/.nuxt/b24ui/sidebar-layout.ts +1 -0
- package/.nuxt/b24ui/stacked-layout.ts +29 -4
- package/.nuxt/b24ui/textarea.ts +1 -1
- package/dist/meta.cjs +81 -7
- package/dist/meta.d.cts +81 -7
- package/dist/meta.d.mts +81 -7
- package/dist/meta.d.ts +81 -7
- package/dist/meta.mjs +81 -7
- package/dist/module.cjs +1 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +1 -1
- package/dist/runtime/components/Form.vue +1 -0
- package/dist/runtime/components/FormField.vue +1 -0
- package/dist/runtime/components/InputMenu.vue +8 -8
- package/dist/runtime/components/SelectMenu.vue +1 -5
- package/dist/runtime/components/SidebarLayout.vue +3 -1
- package/dist/runtime/components/StackedLayout.vue +109 -5
- package/dist/runtime/composables/useFormField.js +1 -1
- package/dist/runtime/types/form.d.ts +1 -0
- package/dist/runtime/types/index.d.ts +1 -1
- package/dist/runtime/types/index.js +1 -1
- package/dist/shared/{b24ui-nuxt.CTERD7XY.mjs → b24ui-nuxt.Cdw6m70Y.mjs} +86 -8
- package/dist/shared/{b24ui-nuxt.BfU7TRfz.cjs → b24ui-nuxt.GF6icKT2.cjs} +86 -8
- package/dist/unplugin.cjs +1 -1
- package/dist/unplugin.mjs +1 -1
- package/dist/vite.cjs +1 -1
- package/dist/vite.mjs +1 -1
- package/package.json +6 -6
package/dist/meta.mjs
CHANGED
|
@@ -64252,13 +64252,13 @@ const B24UIMeta = {
|
|
|
64252
64252
|
"description": "",
|
|
64253
64253
|
"tags": [],
|
|
64254
64254
|
"required": false,
|
|
64255
|
-
"type": "Partial<{ root: string; sidebar: string; sidebarSlideoverContainer: string; sidebarSlideover: string; sidebarSlideoverBtnClose: string; header: string; headerPaddings: string; headerWrapper: string; container: string; containerWrapper: string; containerWrapperInner: string; }> | undefined",
|
|
64255
|
+
"type": "Partial<{ root: string; sidebar: string; sidebarSlideoverContainer: string; sidebarSlideover: string; sidebarSlideoverBtnClose: string; header: string; headerMenuIcon: string; headerPaddings: string; headerWrapper: string; container: string; containerWrapper: string; containerWrapperInner: string; }> | undefined",
|
|
64256
64256
|
"schema": {
|
|
64257
64257
|
"kind": "enum",
|
|
64258
|
-
"type": "Partial<{ root: string; sidebar: string; sidebarSlideoverContainer: string; sidebarSlideover: string; sidebarSlideoverBtnClose: string; header: string; headerPaddings: string; headerWrapper: string; container: string; containerWrapper: string; containerWrapperInner: string; }> | undefined",
|
|
64258
|
+
"type": "Partial<{ root: string; sidebar: string; sidebarSlideoverContainer: string; sidebarSlideover: string; sidebarSlideoverBtnClose: string; header: string; headerMenuIcon: string; headerPaddings: string; headerWrapper: string; container: string; containerWrapper: string; containerWrapperInner: string; }> | undefined",
|
|
64259
64259
|
"schema": {
|
|
64260
64260
|
"0": "undefined",
|
|
64261
|
-
"1": "Partial<{ root: string; sidebar: string; sidebarSlideoverContainer: string; sidebarSlideover: string; sidebarSlideoverBtnClose: string; header: string; headerPaddings: string; headerWrapper: string; container: string; containerWrapper: string; containerWrapperInner: string; }>"
|
|
64261
|
+
"1": "Partial<{ root: string; sidebar: string; sidebarSlideoverContainer: string; sidebarSlideover: string; sidebarSlideoverBtnClose: string; header: string; headerMenuIcon: string; headerPaddings: string; headerWrapper: string; container: string; containerWrapper: string; containerWrapperInner: string; }>"
|
|
64262
64262
|
}
|
|
64263
64263
|
}
|
|
64264
64264
|
}
|
|
@@ -65312,28 +65312,102 @@ const B24UIMeta = {
|
|
|
65312
65312
|
"schema": "any",
|
|
65313
65313
|
"default": "\"div\""
|
|
65314
65314
|
},
|
|
65315
|
+
{
|
|
65316
|
+
"name": "useSidebar",
|
|
65317
|
+
"global": false,
|
|
65318
|
+
"description": "",
|
|
65319
|
+
"tags": [],
|
|
65320
|
+
"required": false,
|
|
65321
|
+
"type": "boolean | undefined",
|
|
65322
|
+
"schema": {
|
|
65323
|
+
"kind": "enum",
|
|
65324
|
+
"type": "boolean | undefined",
|
|
65325
|
+
"schema": {
|
|
65326
|
+
"0": "undefined",
|
|
65327
|
+
"1": "false",
|
|
65328
|
+
"2": "true"
|
|
65329
|
+
}
|
|
65330
|
+
}
|
|
65331
|
+
},
|
|
65332
|
+
{
|
|
65333
|
+
"name": "useLightContent",
|
|
65334
|
+
"global": false,
|
|
65335
|
+
"description": "",
|
|
65336
|
+
"tags": [],
|
|
65337
|
+
"required": false,
|
|
65338
|
+
"type": "boolean | undefined",
|
|
65339
|
+
"schema": {
|
|
65340
|
+
"kind": "enum",
|
|
65341
|
+
"type": "boolean | undefined",
|
|
65342
|
+
"schema": {
|
|
65343
|
+
"0": "undefined",
|
|
65344
|
+
"1": "false",
|
|
65345
|
+
"2": "true"
|
|
65346
|
+
}
|
|
65347
|
+
}
|
|
65348
|
+
},
|
|
65315
65349
|
{
|
|
65316
65350
|
"name": "b24ui",
|
|
65317
65351
|
"global": false,
|
|
65318
65352
|
"description": "",
|
|
65319
65353
|
"tags": [],
|
|
65320
65354
|
"required": false,
|
|
65321
|
-
"type": "Partial<{ root: string; container: string; }> | undefined",
|
|
65355
|
+
"type": "Partial<{ root: string; sidebarSlideoverContainer: string; sidebarSlideover: string; sidebarSlideoverBtnClose: string; header: string; headerMenuIcon: string; headerPaddings: string; headerWrapper: string; container: string; containerWrapper: string; containerWrapperInner: string; }> | undefined",
|
|
65322
65356
|
"schema": {
|
|
65323
65357
|
"kind": "enum",
|
|
65324
|
-
"type": "Partial<{ root: string; container: string; }> | undefined",
|
|
65358
|
+
"type": "Partial<{ root: string; sidebarSlideoverContainer: string; sidebarSlideover: string; sidebarSlideoverBtnClose: string; header: string; headerMenuIcon: string; headerPaddings: string; headerWrapper: string; container: string; containerWrapper: string; containerWrapperInner: string; }> | undefined",
|
|
65325
65359
|
"schema": {
|
|
65326
65360
|
"0": "undefined",
|
|
65327
|
-
"1": "Partial<{ root: string; container: string; }>"
|
|
65361
|
+
"1": "Partial<{ root: string; sidebarSlideoverContainer: string; sidebarSlideover: string; sidebarSlideoverBtnClose: string; header: string; headerMenuIcon: string; headerPaddings: string; headerWrapper: string; container: string; containerWrapper: string; containerWrapperInner: string; }>"
|
|
65328
65362
|
}
|
|
65329
65363
|
}
|
|
65330
65364
|
}
|
|
65331
65365
|
],
|
|
65332
65366
|
"slots": [
|
|
65367
|
+
{
|
|
65368
|
+
"name": "sidebar",
|
|
65369
|
+
"type": "{ handleClick: () => void; }",
|
|
65370
|
+
"description": "Menu for mobile screen sizes.",
|
|
65371
|
+
"schema": {
|
|
65372
|
+
"kind": "object",
|
|
65373
|
+
"type": "{ handleClick: () => void; }",
|
|
65374
|
+
"schema": {
|
|
65375
|
+
"handleClick": {
|
|
65376
|
+
"name": "handleClick",
|
|
65377
|
+
"global": false,
|
|
65378
|
+
"description": "",
|
|
65379
|
+
"tags": [],
|
|
65380
|
+
"required": true,
|
|
65381
|
+
"type": "() => void",
|
|
65382
|
+
"schema": {
|
|
65383
|
+
"kind": "event",
|
|
65384
|
+
"type": "(): void"
|
|
65385
|
+
}
|
|
65386
|
+
}
|
|
65387
|
+
}
|
|
65388
|
+
}
|
|
65389
|
+
},
|
|
65390
|
+
{
|
|
65391
|
+
"name": "navbar",
|
|
65392
|
+
"type": "{} | undefined",
|
|
65393
|
+
"description": "Menu for desktop screen sizes.",
|
|
65394
|
+
"schema": {
|
|
65395
|
+
"kind": "enum",
|
|
65396
|
+
"type": "{} | undefined",
|
|
65397
|
+
"schema": {
|
|
65398
|
+
"0": "undefined",
|
|
65399
|
+
"1": {
|
|
65400
|
+
"kind": "object",
|
|
65401
|
+
"type": "{}",
|
|
65402
|
+
"schema": {}
|
|
65403
|
+
}
|
|
65404
|
+
}
|
|
65405
|
+
}
|
|
65406
|
+
},
|
|
65333
65407
|
{
|
|
65334
65408
|
"name": "default",
|
|
65335
65409
|
"type": "{} | undefined",
|
|
65336
|
-
"description": "",
|
|
65410
|
+
"description": "The page content.",
|
|
65337
65411
|
"schema": {
|
|
65338
65412
|
"kind": "enum",
|
|
65339
65413
|
"type": "{} | undefined",
|
package/dist/module.cjs
CHANGED
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defu } from 'defu';
|
|
2
2
|
import { defineNuxtModule, createResolver, addVitePlugin, addPlugin, addComponentsDir, addImportsDir, hasNuxtModule, installModule } from '@nuxt/kit';
|
|
3
|
-
import { d as defaultOptions, a as getDefaultUiConfig, b as addTemplates } from './shared/b24ui-nuxt.
|
|
3
|
+
import { d as defaultOptions, a as getDefaultUiConfig, b as addTemplates } from './shared/b24ui-nuxt.Cdw6m70Y.mjs';
|
|
4
4
|
import 'node:url';
|
|
5
5
|
import 'scule';
|
|
6
6
|
|
|
@@ -216,6 +216,7 @@ async function onSubmitWrapper(payload: Event) {
|
|
|
216
216
|
try {
|
|
217
217
|
event.data = await _validate({ nested: true, transform: props.transform })
|
|
218
218
|
await props.onSubmit?.(event)
|
|
219
|
+
dirtyFields.clear()
|
|
219
220
|
} catch (error) {
|
|
220
221
|
if (!(error instanceof FormValidationException)) {
|
|
221
222
|
throw error
|
|
@@ -223,7 +223,7 @@ export interface InputMenuSlots<
|
|
|
223
223
|
</script>
|
|
224
224
|
|
|
225
225
|
<script setup lang="ts" generic="T extends ArrayOrNested<InputMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false">
|
|
226
|
-
import { computed, ref, toRef, onMounted, toRaw } from 'vue'
|
|
226
|
+
import { computed, ref, toRef, onMounted, toRaw, nextTick } from 'vue'
|
|
227
227
|
import { ComboboxRoot, ComboboxArrow, ComboboxAnchor, ComboboxInput, ComboboxTrigger, ComboboxPortal, ComboboxContent, ComboboxViewport, ComboboxEmpty, ComboboxGroup, ComboboxLabel, ComboboxSeparator, ComboboxItem, ComboboxItemIndicator, TagsInputRoot, TagsInputItem, TagsInputItemText, TagsInputItemDelete, TagsInputInput, useForwardPropsEmits, useFilter } from 'reka-ui'
|
|
228
228
|
import { defu } from 'defu'
|
|
229
229
|
import { isEqual } from 'ohash/utils'
|
|
@@ -322,11 +322,7 @@ const filteredGroups = computed(() => {
|
|
|
322
322
|
|
|
323
323
|
return fields.some(field => contains(get(item, field), searchTerm.value))
|
|
324
324
|
})).filter(group => group.filter(item =>
|
|
325
|
-
|
|
326
|
-
* @memo fix not obj
|
|
327
|
-
* @see selectMenu
|
|
328
|
-
*/
|
|
329
|
-
typeof item !== 'object' || (isInputItem(item) && (!item.type || !['label', 'separator'].includes(item.type)))
|
|
325
|
+
!isInputItem(item) || (isInputItem(item) && (!item.type || !['label', 'separator'].includes(item.type)))
|
|
330
326
|
).length > 0)
|
|
331
327
|
})
|
|
332
328
|
const filteredItems = computed(() => filteredGroups.value.flatMap(group => group))
|
|
@@ -390,6 +386,10 @@ function onUpdateOpen(value: boolean) {
|
|
|
390
386
|
const event = new FocusEvent('focus')
|
|
391
387
|
emits('focus', event)
|
|
392
388
|
}
|
|
389
|
+
|
|
390
|
+
nextTick(() => {
|
|
391
|
+
searchTerm.value = ''
|
|
392
|
+
})
|
|
393
393
|
}
|
|
394
394
|
|
|
395
395
|
function onRemoveTag(event: any) {
|
|
@@ -477,7 +477,7 @@ defineExpose({
|
|
|
477
477
|
</TagsInputItemDelete>
|
|
478
478
|
</TagsInputItem>
|
|
479
479
|
|
|
480
|
-
<ComboboxInput
|
|
480
|
+
<ComboboxInput as-child @update:model-value="searchTerm = $event">
|
|
481
481
|
<TagsInputInput
|
|
482
482
|
ref="inputRef"
|
|
483
483
|
v-bind="{ ...$attrs, ...ariaAttrs }"
|
|
@@ -491,7 +491,6 @@ defineExpose({
|
|
|
491
491
|
<ComboboxInput
|
|
492
492
|
v-else
|
|
493
493
|
ref="inputRef"
|
|
494
|
-
v-model="searchTerm"
|
|
495
494
|
:display-value="displayValue"
|
|
496
495
|
v-bind="{ ...$attrs, ...ariaAttrs }"
|
|
497
496
|
:type="type"
|
|
@@ -499,6 +498,7 @@ defineExpose({
|
|
|
499
498
|
:required="required"
|
|
500
499
|
@blur="onBlur"
|
|
501
500
|
@focus="onFocus"
|
|
501
|
+
@update:model-value="searchTerm = $event"
|
|
502
502
|
/>
|
|
503
503
|
|
|
504
504
|
<span v-if="isLeading || !!avatar || !!slots.leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
|
|
@@ -328,11 +328,7 @@ const filteredGroups = computed(() => {
|
|
|
328
328
|
|
|
329
329
|
return fields.some(field => contains(get(item, field), searchTerm.value))
|
|
330
330
|
})).filter(group => group.filter(item =>
|
|
331
|
-
|
|
332
|
-
* @memo fix not obj
|
|
333
|
-
* @see inputMenu
|
|
334
|
-
*/
|
|
335
|
-
typeof item !== 'object' || (isSelectItem(item) && (!item.type || !['label', 'separator'].includes(item.type)))
|
|
331
|
+
!isSelectItem(item) || (isSelectItem(item) && (!item.type || !['label', 'separator'].includes(item.type)))
|
|
336
332
|
).length > 0)
|
|
337
333
|
})
|
|
338
334
|
const filteredItems = computed(() => filteredGroups.value.flatMap(group => group))
|
|
@@ -98,8 +98,9 @@ const handleNavigationClick = () => {
|
|
|
98
98
|
<header :class="b24ui.header({ class: props.b24ui?.header })">
|
|
99
99
|
<div
|
|
100
100
|
v-if="isUseSideBar"
|
|
101
|
-
:class="b24ui.
|
|
101
|
+
:class="b24ui.headerMenuIcon({ class: props.b24ui?.headerMenuIcon })"
|
|
102
102
|
>
|
|
103
|
+
<!-- @todo: lang -->
|
|
103
104
|
<B24Slideover
|
|
104
105
|
v-model:open="openSidebarSlideover"
|
|
105
106
|
title="Navigation"
|
|
@@ -112,6 +113,7 @@ const handleNavigationClick = () => {
|
|
|
112
113
|
aria-label="Open navigation"
|
|
113
114
|
color="link"
|
|
114
115
|
size="sm"
|
|
116
|
+
:class="b24ui.headerPaddings({ class: props.b24ui?.headerPaddings })"
|
|
115
117
|
:icon="MenuIcon"
|
|
116
118
|
/>
|
|
117
119
|
|
|
@@ -4,6 +4,7 @@ import type { AppConfig } from '@nuxt/schema'
|
|
|
4
4
|
import _appConfig from '#build/app.config'
|
|
5
5
|
import theme from '#build/b24ui/stacked-layout'
|
|
6
6
|
import { tv } from '../utils/tv'
|
|
7
|
+
import { useRoute } from 'vue-router'
|
|
7
8
|
|
|
8
9
|
const appConfigStackedLayout = _appConfig as AppConfig & { b24ui: { stackedLayout: Partial<typeof theme> } }
|
|
9
10
|
|
|
@@ -17,33 +18,136 @@ export interface StackedLayoutProps {
|
|
|
17
18
|
* @defaultValue 'div'
|
|
18
19
|
*/
|
|
19
20
|
as?: any
|
|
21
|
+
useSidebar?: boolean
|
|
22
|
+
useLightContent?: boolean
|
|
20
23
|
class?: any
|
|
21
24
|
b24ui?: Partial<typeof stackedLayout.slots>
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
export interface StackedLayoutSlots {
|
|
28
|
+
/**
|
|
29
|
+
* Menu for mobile screen sizes.
|
|
30
|
+
* @param props
|
|
31
|
+
* @param props.handleClick - Handler for navigation click events
|
|
32
|
+
*/
|
|
33
|
+
sidebar(props: { handleClick: () => void }): any
|
|
34
|
+
/**
|
|
35
|
+
* Menu for desktop screen sizes.
|
|
36
|
+
*/
|
|
37
|
+
navbar(props?: {}): any
|
|
38
|
+
/**
|
|
39
|
+
* The page content.
|
|
40
|
+
*/
|
|
25
41
|
default(props?: {}): any
|
|
26
42
|
}
|
|
27
43
|
</script>
|
|
28
44
|
|
|
29
45
|
<script setup lang="ts">
|
|
46
|
+
import { ref, computed, watch, onUnmounted } from 'vue'
|
|
30
47
|
import { Primitive } from 'reka-ui'
|
|
48
|
+
import B24Slideover from './Slideover.vue'
|
|
49
|
+
import B24Sidebar from './Sidebar.vue'
|
|
50
|
+
import B24ModalDialogClose from './ModalDialogClose.vue'
|
|
51
|
+
import B24Navbar from './Navbar.vue'
|
|
52
|
+
import MenuIcon from '@bitrix24/b24icons-vue/main/MenuIcon'
|
|
53
|
+
import Cross50Icon from '@bitrix24/b24icons-vue/actions/Cross50Icon'
|
|
31
54
|
|
|
32
55
|
const props = withDefaults(defineProps<StackedLayoutProps>(), {
|
|
33
56
|
as: 'div'
|
|
34
57
|
})
|
|
35
58
|
const slots = defineSlots<StackedLayoutSlots>()
|
|
36
59
|
|
|
37
|
-
|
|
38
|
-
const
|
|
60
|
+
const route = useRoute()
|
|
61
|
+
const isUseSideBar = computed(() => !!slots.sidebar)
|
|
62
|
+
const openSidebarSlideover = ref(false)
|
|
63
|
+
|
|
64
|
+
const b24ui = computed(() => stackedLayout({
|
|
65
|
+
useSidebar: isUseSideBar.value,
|
|
66
|
+
useLightContent: Boolean(props.useLightContent)
|
|
67
|
+
}))
|
|
68
|
+
|
|
69
|
+
const closeModal = () => {
|
|
70
|
+
if (openSidebarSlideover.value) {
|
|
71
|
+
openSidebarSlideover.value = false
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const stopWatcher = watch(
|
|
76
|
+
() => route.path,
|
|
77
|
+
() => closeModal(),
|
|
78
|
+
{ immediate: true }
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
onUnmounted(() => {
|
|
82
|
+
stopWatcher()
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
const handleNavigationClick = () => {
|
|
86
|
+
closeModal()
|
|
87
|
+
}
|
|
39
88
|
</script>
|
|
40
89
|
|
|
41
90
|
<template>
|
|
42
91
|
<Primitive :as="as" :class="b24ui.root({ class: [props.class, props.b24ui?.root] })">
|
|
43
|
-
<
|
|
44
|
-
<div
|
|
45
|
-
|
|
92
|
+
<header :class="b24ui.header({ class: props.b24ui?.header })">
|
|
93
|
+
<div
|
|
94
|
+
v-if="isUseSideBar"
|
|
95
|
+
:class="b24ui.headerMenuIcon({ class: props.b24ui?.headerMenuIcon })"
|
|
96
|
+
>
|
|
97
|
+
<!-- @todo: lang -->
|
|
98
|
+
<B24Slideover
|
|
99
|
+
v-model:open="openSidebarSlideover"
|
|
100
|
+
title="Navigation"
|
|
101
|
+
description="Content navigation"
|
|
102
|
+
side="left"
|
|
103
|
+
:b24ui="{ content: b24ui.sidebarSlideoverContainer({ class: props.b24ui?.sidebarSlideoverContainer }) }"
|
|
104
|
+
>
|
|
105
|
+
<!-- @todo: lang -->
|
|
106
|
+
<B24Button
|
|
107
|
+
aria-label="Open navigation"
|
|
108
|
+
color="link"
|
|
109
|
+
size="sm"
|
|
110
|
+
:class="b24ui.headerPaddings({ class: props.b24ui?.headerPaddings })"
|
|
111
|
+
:icon="MenuIcon"
|
|
112
|
+
/>
|
|
113
|
+
|
|
114
|
+
<template #content>
|
|
115
|
+
<div :class="b24ui.sidebarSlideover({ class: props.b24ui?.sidebarSlideover })">
|
|
116
|
+
<B24Sidebar>
|
|
117
|
+
<div :class="b24ui.sidebarSlideoverBtnClose({ class: props.b24ui?.sidebarSlideoverBtnClose })">
|
|
118
|
+
<!-- @todo: lang -->
|
|
119
|
+
<B24ModalDialogClose>
|
|
120
|
+
<B24Button
|
|
121
|
+
color="link"
|
|
122
|
+
size="lg"
|
|
123
|
+
:icon="Cross50Icon"
|
|
124
|
+
aria-label="Close navigation"
|
|
125
|
+
/>
|
|
126
|
+
</B24ModalDialogClose>
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
<slot name="sidebar" :handle-click="handleNavigationClick" />
|
|
130
|
+
</B24Sidebar>
|
|
131
|
+
</div>
|
|
132
|
+
</template>
|
|
133
|
+
</B24Slideover>
|
|
134
|
+
</div>
|
|
135
|
+
<div :class="b24ui.headerWrapper({ class: props.b24ui?.headerWrapper })">
|
|
136
|
+
<B24Navbar :class="b24ui.headerPaddings({ class: props.b24ui?.headerPaddings })">
|
|
137
|
+
<slot name="navbar" />
|
|
138
|
+
</B24Navbar>
|
|
46
139
|
</div>
|
|
140
|
+
</header>
|
|
141
|
+
|
|
142
|
+
<!-- Page Content -->
|
|
143
|
+
<template v-if="!!slots.default">
|
|
144
|
+
<main :class="b24ui.container({ class: props.b24ui?.container })">
|
|
145
|
+
<div :class="b24ui.containerWrapper({ class: props.b24ui?.containerWrapper })">
|
|
146
|
+
<div :class="b24ui.containerWrapperInner({ class: props.b24ui?.containerWrapperInner })">
|
|
147
|
+
<slot />
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
</main>
|
|
47
151
|
</template>
|
|
48
152
|
</Primitive>
|
|
49
153
|
</template>
|
|
@@ -55,7 +55,7 @@ export function useFormField(props, opts) {
|
|
|
55
55
|
emitFormFocus,
|
|
56
56
|
ariaAttrs: computed(() => {
|
|
57
57
|
if (!formField?.value) return;
|
|
58
|
-
const descriptiveAttrs = ["error", "hint", "description"].filter((type) => formField?.value?.[type]).map((type) => `${formField?.value.ariaId}-${type}`) || [];
|
|
58
|
+
const descriptiveAttrs = ["error", "hint", "description", "help"].filter((type) => formField?.value?.[type]).map((type) => `${formField?.value.ariaId}-${type}`) || [];
|
|
59
59
|
return {
|
|
60
60
|
"aria-describedby": descriptiveAttrs.join(" "),
|
|
61
61
|
"aria-invalid": !!formField?.value.error
|
|
@@ -40,7 +40,6 @@ export * from '../components/Toast.vue';
|
|
|
40
40
|
export * from '../components/Toaster.vue';
|
|
41
41
|
export * from '../components/Tooltip.vue';
|
|
42
42
|
export * from '../components/SidebarLayout.vue';
|
|
43
|
-
export * from '../components/StackedLayout.vue';
|
|
44
43
|
export * from '../components/Sidebar.vue';
|
|
45
44
|
export * from '../components/SidebarHeader.vue';
|
|
46
45
|
export * from '../components/SidebarBody.vue';
|
|
@@ -48,6 +47,7 @@ export * from '../components/SidebarFooter.vue';
|
|
|
48
47
|
export * from '../components/SidebarSection.vue';
|
|
49
48
|
export * from '../components/SidebarHeading.vue';
|
|
50
49
|
export * from '../components/SidebarSpacer.vue';
|
|
50
|
+
export * from '../components/StackedLayout.vue';
|
|
51
51
|
export * from '../components/Navbar.vue';
|
|
52
52
|
export * from '../components/NavbarSection.vue';
|
|
53
53
|
export * from '../components/NavbarDivider.vue';
|
|
@@ -40,7 +40,6 @@ export * from "../components/Toast.vue";
|
|
|
40
40
|
export * from "../components/Toaster.vue";
|
|
41
41
|
export * from "../components/Tooltip.vue";
|
|
42
42
|
export * from "../components/SidebarLayout.vue";
|
|
43
|
-
export * from "../components/StackedLayout.vue";
|
|
44
43
|
export * from "../components/Sidebar.vue";
|
|
45
44
|
export * from "../components/SidebarHeader.vue";
|
|
46
45
|
export * from "../components/SidebarBody.vue";
|
|
@@ -48,6 +47,7 @@ export * from "../components/SidebarFooter.vue";
|
|
|
48
47
|
export * from "../components/SidebarSection.vue";
|
|
49
48
|
export * from "../components/SidebarHeading.vue";
|
|
50
49
|
export * from "../components/SidebarSpacer.vue";
|
|
50
|
+
export * from "../components/StackedLayout.vue";
|
|
51
51
|
export * from "../components/Navbar.vue";
|
|
52
52
|
export * from "../components/NavbarSection.vue";
|
|
53
53
|
export * from "../components/NavbarDivider.vue";
|
|
@@ -2204,7 +2204,7 @@ const formField = {
|
|
|
2204
2204
|
|
|
2205
2205
|
const input = {
|
|
2206
2206
|
slots: {
|
|
2207
|
-
root: "relative inline-flex items-center w-full",
|
|
2207
|
+
root: "isolate relative inline-flex items-center w-full",
|
|
2208
2208
|
base: [
|
|
2209
2209
|
"px-3",
|
|
2210
2210
|
"w-full py-0 border-0 focus:outline-none",
|
|
@@ -2997,7 +2997,7 @@ const inputNumber = () => {
|
|
|
2997
2997
|
const input$1 = input;
|
|
2998
2998
|
return {
|
|
2999
2999
|
slots: {
|
|
3000
|
-
root: "relative inline-flex items-center",
|
|
3000
|
+
root: "isolate relative inline-flex items-center",
|
|
3001
3001
|
base: [
|
|
3002
3002
|
"w-full py-0 border-0 focus:outline-none disabled:cursor-not-allowed disabled:opacity-75",
|
|
3003
3003
|
"placeholder:text-base-400",
|
|
@@ -4287,6 +4287,7 @@ const navigationMenu = {
|
|
|
4287
4287
|
class: {
|
|
4288
4288
|
viewportWrapper: [
|
|
4289
4289
|
"top-[calc(100%+0.4rem)]"
|
|
4290
|
+
// perspective-[2000px]
|
|
4290
4291
|
].join(" "),
|
|
4291
4292
|
viewport: [
|
|
4292
4293
|
"rounded-b-md",
|
|
@@ -5178,7 +5179,7 @@ const select = () => {
|
|
|
5178
5179
|
return defuFn(
|
|
5179
5180
|
{
|
|
5180
5181
|
slots: {
|
|
5181
|
-
root: () => "relative inline-flex items-center w-full",
|
|
5182
|
+
root: () => "isolate relative inline-flex items-center w-full",
|
|
5182
5183
|
base: () => [
|
|
5183
5184
|
"px-3",
|
|
5184
5185
|
"relative inline-flex items-center group",
|
|
@@ -6005,7 +6006,7 @@ const tabs = {
|
|
|
6005
6006
|
|
|
6006
6007
|
const textarea = {
|
|
6007
6008
|
slots: {
|
|
6008
|
-
root: "relative inline-flex items-center w-full",
|
|
6009
|
+
root: "isolate relative inline-flex items-center w-full",
|
|
6009
6010
|
base: [
|
|
6010
6011
|
"w-full px-3 py-1.5 border-0 focus:outline-none",
|
|
6011
6012
|
"disabled:cursor-not-allowed disabled:bg-base-30/37 disabled:resize-none disabled:text-base-500",
|
|
@@ -6530,6 +6531,7 @@ const sidebarLayout = {
|
|
|
6530
6531
|
"flex items-center",
|
|
6531
6532
|
"lg:hidden"
|
|
6532
6533
|
].join(" "),
|
|
6534
|
+
headerMenuIcon: "",
|
|
6533
6535
|
headerPaddings: [
|
|
6534
6536
|
"py-2.5"
|
|
6535
6537
|
].join(" "),
|
|
@@ -6586,12 +6588,88 @@ const sidebarLayout = {
|
|
|
6586
6588
|
|
|
6587
6589
|
const stackedLayout = {
|
|
6588
6590
|
slots: {
|
|
6589
|
-
root:
|
|
6590
|
-
|
|
6591
|
+
root: [
|
|
6592
|
+
"min-h-svh w-full",
|
|
6593
|
+
"flex flex-col",
|
|
6594
|
+
"lg:px-2",
|
|
6595
|
+
"relative isolate"
|
|
6596
|
+
].join(" "),
|
|
6597
|
+
sidebarSlideoverContainer: [
|
|
6598
|
+
"max-w-80",
|
|
6599
|
+
"p-2",
|
|
6600
|
+
"bg-transparent dark:bg-transparent sm:shadow-none"
|
|
6601
|
+
].join(" "),
|
|
6602
|
+
sidebarSlideover: [
|
|
6603
|
+
"h-full",
|
|
6604
|
+
"overflow-hidden",
|
|
6605
|
+
"flex flex-col",
|
|
6606
|
+
"bg-white dark:bg-base-dark",
|
|
6607
|
+
"ring-1 ring-base-950/5 dark:ring-white/10",
|
|
6608
|
+
"shadow-xs",
|
|
6609
|
+
"rounded-lg"
|
|
6610
|
+
].join(" "),
|
|
6611
|
+
sidebarSlideoverBtnClose: [
|
|
6612
|
+
"-mb-3",
|
|
6613
|
+
"px-4 pt-3"
|
|
6614
|
+
].join(" "),
|
|
6615
|
+
header: [
|
|
6616
|
+
"px-4",
|
|
6617
|
+
"flex items-center",
|
|
6618
|
+
/**
|
|
6619
|
+
* @memo this sync with NavigationMenu
|
|
6620
|
+
*/
|
|
6621
|
+
"h-[84px]"
|
|
6622
|
+
].join(" "),
|
|
6623
|
+
headerMenuIcon: [
|
|
6624
|
+
"lg:hidden"
|
|
6625
|
+
].join(" "),
|
|
6626
|
+
headerPaddings: [
|
|
6627
|
+
"py-2.5"
|
|
6628
|
+
].join(" "),
|
|
6629
|
+
headerWrapper: [
|
|
6630
|
+
"min-w-0",
|
|
6631
|
+
"flex-1"
|
|
6632
|
+
].join(" "),
|
|
6633
|
+
container: [
|
|
6634
|
+
"flex-1 flex flex-col",
|
|
6635
|
+
"lg:min-w-0",
|
|
6636
|
+
"pb-2"
|
|
6637
|
+
].join(" "),
|
|
6638
|
+
containerWrapper: [
|
|
6639
|
+
"grow"
|
|
6640
|
+
].join(" "),
|
|
6641
|
+
containerWrapperInner: ""
|
|
6642
|
+
},
|
|
6643
|
+
variants: {
|
|
6644
|
+
useSidebar: {
|
|
6645
|
+
true: "",
|
|
6646
|
+
false: ""
|
|
6647
|
+
},
|
|
6648
|
+
useLightContent: {
|
|
6649
|
+
true: {
|
|
6650
|
+
root: [
|
|
6651
|
+
"bg-white dark:bg-white/10",
|
|
6652
|
+
"lg:bg-base-50 dark:lg:bg-base-dark"
|
|
6653
|
+
].join(" "),
|
|
6654
|
+
containerWrapper: [
|
|
6655
|
+
"p-6 lg:p-10",
|
|
6656
|
+
"lg:bg-white dark:lg:bg-white/10",
|
|
6657
|
+
"lg:ring-1 lg:ring-base-950/5 dark:lg:ring-white/10",
|
|
6658
|
+
"lg:shadow-xs",
|
|
6659
|
+
"lg:rounded-lg"
|
|
6660
|
+
].join(" ")
|
|
6661
|
+
},
|
|
6662
|
+
false: {
|
|
6663
|
+
container: [
|
|
6664
|
+
"px-4"
|
|
6665
|
+
].join(" ")
|
|
6666
|
+
}
|
|
6667
|
+
}
|
|
6591
6668
|
},
|
|
6592
|
-
variants: {},
|
|
6593
6669
|
compoundVariants: [],
|
|
6594
|
-
defaultVariants: {
|
|
6670
|
+
defaultVariants: {
|
|
6671
|
+
useLightContent: true
|
|
6672
|
+
}
|
|
6595
6673
|
};
|
|
6596
6674
|
|
|
6597
6675
|
const sidebar = {
|