@bagelink/vue 1.4.149 → 1.4.151
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/components/form/inputs/RichText/index.vue.d.ts.map +1 -1
- package/dist/components/layout/AppContent.vue.d.ts.map +1 -1
- package/dist/index.cjs +14 -14
- package/dist/index.mjs +14 -14
- package/dist/style.css +1 -1
- package/dist/types/BagelForm.d.ts.map +1 -1
- package/dist/utils/BagelFormUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/form/inputs/RichText/index.vue +616 -432
- package/src/components/layout/AppContent.vue +37 -25
- package/src/types/BagelForm.ts +0 -9
- package/src/utils/BagelFormUtils.ts +0 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import { inject, computed, onMounted, ref } from 'vue'
|
|
3
2
|
import { Btn, PageTitle } from '@bagelink/vue'
|
|
3
|
+
import { inject, computed } from 'vue'
|
|
4
4
|
|
|
5
5
|
interface Props {
|
|
6
6
|
title?: string
|
|
@@ -36,53 +36,64 @@ const hasSidebarCard = computed(() => {
|
|
|
36
36
|
</script>
|
|
37
37
|
|
|
38
38
|
<template>
|
|
39
|
-
<div
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
<div
|
|
40
|
+
class="app-content h-100p flex column" :class="{
|
|
41
|
+
paddingAppContent: hasSidebarCard,
|
|
42
|
+
}"
|
|
43
|
+
>
|
|
42
44
|
<!-- Header -->
|
|
43
|
-
<header
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
<header
|
|
46
|
+
class="app-header flex align-items-center space-between py-1 m_pt-025 m_pb-05 min-h60px w-100p m_flex-wrap"
|
|
47
|
+
:class="{
|
|
48
|
+
'border-bottom': border,
|
|
49
|
+
'px-1': !hasSidebarCard,
|
|
50
|
+
'm_px-1': hasSidebarCard,
|
|
51
|
+
}"
|
|
52
|
+
>
|
|
48
53
|
<!-- Left Side -->
|
|
49
54
|
<div class="flex align-items-center gap-col-075 m_flex-wrap m_pe-075">
|
|
50
55
|
<!-- Menu Toggle Button -->
|
|
51
|
-
<Btn
|
|
52
|
-
|
|
56
|
+
<Btn
|
|
57
|
+
v-if="showMenuButton" flat icon="dock_to_right" class="menuToggleButton"
|
|
58
|
+
@click="menuState.toggleMenu"
|
|
59
|
+
/>
|
|
60
|
+
|
|
53
61
|
<!-- Back Button -->
|
|
54
62
|
<Btn v-if="showBackButton" flat icon="arrow_back" :to="backTo" class="back-btn" />
|
|
55
|
-
|
|
63
|
+
|
|
56
64
|
<!-- Page Title -->
|
|
57
65
|
<PageTitle v-if="title">
|
|
58
66
|
{{ title }}
|
|
59
67
|
</PageTitle>
|
|
60
|
-
|
|
68
|
+
|
|
61
69
|
<!-- Custom Left Content -->
|
|
62
70
|
<slot name="header-left" />
|
|
63
71
|
</div>
|
|
64
|
-
|
|
72
|
+
|
|
65
73
|
<!-- Center Content -->
|
|
66
74
|
<div class="flex align-items-center">
|
|
67
75
|
<slot name="header-center" />
|
|
68
76
|
</div>
|
|
69
|
-
|
|
77
|
+
|
|
70
78
|
<!-- Right Side -->
|
|
71
79
|
<div class="flex align-items-center gap-row-05 m_flex-grow-1 endNavTools">
|
|
72
80
|
<slot name="header-right" />
|
|
73
81
|
</div>
|
|
74
82
|
</header>
|
|
75
|
-
|
|
83
|
+
|
|
76
84
|
<!-- Page Content -->
|
|
77
|
-
<main
|
|
78
|
-
|
|
79
|
-
|
|
85
|
+
<main
|
|
86
|
+
class="pageContent flex-grow overflow pt-1 pb-05 w-100p m_p-05 m_scrollbar-gutter-stable-both m_vw100"
|
|
87
|
+
:class="{
|
|
88
|
+
'px-1': !hasSidebarCard,
|
|
89
|
+
}"
|
|
90
|
+
>
|
|
80
91
|
<slot name="content">
|
|
81
92
|
<!-- Default slot for content without explicit template -->
|
|
82
93
|
<slot />
|
|
83
94
|
</slot>
|
|
84
95
|
</main>
|
|
85
|
-
|
|
96
|
+
</div>
|
|
86
97
|
</template>
|
|
87
98
|
|
|
88
99
|
<style>
|
|
@@ -107,16 +118,17 @@ const hasSidebarCard = computed(() => {
|
|
|
107
118
|
|
|
108
119
|
<style scoped>
|
|
109
120
|
.app-content {
|
|
110
|
-
height: 100vh;
|
|
121
|
+
height: 100vh;
|
|
111
122
|
}
|
|
112
|
-
|
|
123
|
+
|
|
113
124
|
.app-header {
|
|
114
|
-
flex-shrink: 0;
|
|
125
|
+
flex-shrink: 0;
|
|
115
126
|
}
|
|
116
|
-
|
|
127
|
+
|
|
117
128
|
main {
|
|
118
|
-
min-height: 0;
|
|
129
|
+
min-height: 0;
|
|
119
130
|
}
|
|
131
|
+
|
|
120
132
|
@media screen and (max-width: 910px) {
|
|
121
133
|
.app-header {
|
|
122
134
|
padding-inline: 0.5rem;
|
package/src/types/BagelForm.ts
CHANGED
|
@@ -67,15 +67,6 @@ export type OpenEndedPath<T> =
|
|
|
67
67
|
: never
|
|
68
68
|
: never
|
|
69
69
|
|
|
70
|
-
// Helper type to check if a type has ONLY index signature (no specific keys)
|
|
71
|
-
type HasOnlyIndexSignature<T> = T extends Record<string, any>
|
|
72
|
-
? string extends keyof T
|
|
73
|
-
? Record<string, never> extends Pick<T, Exclude<keyof T, string | number>>
|
|
74
|
-
? true // Only index signature, no specific keys
|
|
75
|
-
: false // Has specific keys
|
|
76
|
-
: false
|
|
77
|
-
: false
|
|
78
|
-
|
|
79
70
|
// Helper type to get paths for index signature properties
|
|
80
71
|
type IndexSignaturePaths<T> = {
|
|
81
72
|
[K in keyof T]: T[K] extends { [key: string]: any }
|
|
@@ -16,11 +16,6 @@ import type {
|
|
|
16
16
|
UploadInputProps
|
|
17
17
|
} from '../types/BagelForm'
|
|
18
18
|
|
|
19
|
-
// Import ValidBaseBagelField from the types file
|
|
20
|
-
type ValidBaseBagelField<T, PO extends import('type-fest/source/paths').PathsOptions = import('type-fest/source/paths').DefaultPathsOptions> = {
|
|
21
|
-
[P in Path<T, PO>]: BaseBagelField<T, P, PO>
|
|
22
|
-
}[Path<T, PO>]
|
|
23
|
-
|
|
24
19
|
// Local type definitions for internal use only
|
|
25
20
|
interface IconType { name: string }
|
|
26
21
|
interface AutoFillField { name: string }
|