@bagelink/vue 0.0.1220 → 0.0.1227
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/BglComponent.vue.d.ts.map +1 -1
- package/dist/components/Btn.vue.d.ts.map +1 -1
- package/dist/components/Calendar/Index.vue.d.ts +8 -4
- package/dist/components/Calendar/Index.vue.d.ts.map +1 -1
- package/dist/components/Calendar/components/header/Header.vue.d.ts +2 -0
- package/dist/components/Calendar/components/header/Header.vue.d.ts.map +1 -1
- package/dist/components/Calendar/components/month/AgendaEventTile.vue.d.ts.map +1 -1
- package/dist/components/Calendar/components/month/AgendaEvents.vue.d.ts.map +1 -1
- package/dist/components/Calendar/components/month/Day.vue.d.ts.map +1 -1
- package/dist/components/Calendar/components/month/Event.vue.d.ts.map +1 -1
- package/dist/components/Calendar/components/month/Month.vue.d.ts +2 -2
- package/dist/components/Calendar/components/month/Month.vue.d.ts.map +1 -1
- package/dist/components/Calendar/components/month/WeekDay.vue.d.ts.map +1 -1
- package/dist/components/Calendar/components/partials/EventFlyout.vue.d.ts.map +1 -1
- package/dist/components/Calendar/components/week/Day.vue.d.ts.map +1 -1
- package/dist/components/Calendar/components/week/Week.vue.d.ts +2 -2
- package/dist/components/Calendar/components/week/WeekTimeline.vue.d.ts.map +1 -1
- package/dist/components/Calendar/constants.d.ts.map +1 -1
- package/dist/components/Calendar/language/index.d.ts +2 -1
- package/dist/components/Calendar/language/index.d.ts.map +1 -1
- package/dist/components/Calendar/language/keys.d.ts +66 -63
- package/dist/components/Calendar/language/keys.d.ts.map +1 -1
- package/dist/components/Spreadsheet/Index.vue.d.ts +25 -0
- package/dist/components/Spreadsheet/Index.vue.d.ts.map +1 -0
- package/dist/components/form/BagelForm.vue.d.ts +2 -1
- package/dist/components/form/BagelForm.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/DatePick.vue.d.ts +1 -0
- package/dist/components/form/inputs/DatePick.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/DatePicker.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/NumberInput.vue.d.ts.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/lightbox/Lightbox.vue.d.ts.map +1 -1
- package/dist/components/lightbox/lightbox.types.d.ts +2 -1
- package/dist/components/lightbox/lightbox.types.d.ts.map +1 -1
- package/dist/composables/useSchemaField.d.ts +9 -5
- package/dist/composables/useSchemaField.d.ts.map +1 -1
- package/dist/index.cjs +1879 -1161
- package/dist/index.mjs +1880 -1162
- package/dist/style.css +733 -763
- package/dist/types/BagelForm.d.ts +2 -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/Btn.vue +3 -0
- package/src/components/Calendar/Index.vue +13 -16
- package/src/components/Calendar/components/header/Header.vue +17 -139
- package/src/components/Calendar/components/month/AgendaEventTile.vue +1 -10
- package/src/components/Calendar/components/month/AgendaEvents.vue +7 -53
- package/src/components/Calendar/components/month/Day.vue +12 -30
- package/src/components/Calendar/components/month/Event.vue +10 -67
- package/src/components/Calendar/components/month/Month.vue +10 -56
- package/src/components/Calendar/components/month/WeekDay.vue +1 -11
- package/src/components/Calendar/components/partials/EventFlyout.vue +2 -1
- package/src/components/Calendar/components/week/Day.vue +4 -18
- package/src/components/Calendar/components/week/DayEvent.vue +1 -1
- package/src/components/Calendar/components/week/FullDayEvent.vue +2 -2
- package/src/components/Calendar/components/week/Week.vue +1 -1
- package/src/components/Calendar/components/week/WeekTimeline.vue +13 -38
- package/src/components/Calendar/constants.ts +11 -11
- package/src/components/Calendar/language/index.ts +6 -3
- package/src/components/Calendar/language/keys.ts +91 -88
- package/src/components/Calendar/styles/_variables.css +38 -42
- package/src/components/Spreadsheet/Index.vue +867 -0
- package/src/components/form/BagelForm.vue +7 -3
- package/src/components/form/inputs/DatePick.vue +6 -2
- package/src/components/form/inputs/DatePicker.vue +2 -2
- package/src/components/form/inputs/NumberInput.vue +2 -2
- package/src/components/index.ts +1 -0
- package/src/components/lightbox/Lightbox.vue +5 -5
- package/src/components/lightbox/lightbox.types.ts +2 -1
- package/src/composables/useSchemaField.ts +36 -12
- package/src/styles/buttons.css +81 -73
- package/src/styles/layout.css +25 -0
- package/src/styles/mobilLayout.css +25 -0
- package/src/styles/text.css +82 -1
- package/src/styles/theme.css +269 -258
- package/src/types/BagelForm.ts +2 -1
- package/src/utils/BagelFormUtils.ts +2 -1
- package/src/components/Calendar/index.ts +0 -4
|
@@ -8,7 +8,7 @@ export interface BagelFormProps<_T> {
|
|
|
8
8
|
modelValue?: _T
|
|
9
9
|
schema?: BglFormSchemaFnT<_T>
|
|
10
10
|
tag?: 'form' | 'template'
|
|
11
|
-
onSubmit?: (data: _T) => Promise<void>
|
|
11
|
+
onSubmit?: (data: _T) => Promise<void> | void
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
const props = withDefaults(defineProps<BagelFormProps<T>>(), {
|
|
@@ -31,7 +31,7 @@ onMounted(() => {
|
|
|
31
31
|
}
|
|
32
32
|
})
|
|
33
33
|
|
|
34
|
-
const formState = ref<'success' | 'error' | 'idle'>('idle')
|
|
34
|
+
const formState = ref<'success' | 'error' | 'idle' | 'submitting'>('idle')
|
|
35
35
|
|
|
36
36
|
watch(() => props.modelValue, (newValue) => {
|
|
37
37
|
if (newValue !== undefined) {
|
|
@@ -60,9 +60,13 @@ function updateFormData(fieldId: string, value: any) {
|
|
|
60
60
|
|
|
61
61
|
async function handleSubmit() {
|
|
62
62
|
try {
|
|
63
|
+
if (formState.value === 'submitting') return
|
|
64
|
+
formState.value = 'submitting'
|
|
63
65
|
await props.onSubmit?.(formData.value)
|
|
64
66
|
initialFormData.value = structuredClone(formData.value)
|
|
65
67
|
formState.value = 'success'
|
|
68
|
+
// Notify parent window of successful submission
|
|
69
|
+
window.parent.postMessage({ type: 'BAGEL_FORM_SUCCESS', data: formData.value }, '*')
|
|
66
70
|
} catch (error) {
|
|
67
71
|
formState.value = 'error'
|
|
68
72
|
}
|
|
@@ -98,7 +102,7 @@ defineExpose({ form, isDirty, validateForm })
|
|
|
98
102
|
</template>
|
|
99
103
|
</template>
|
|
100
104
|
<slot v-else />
|
|
101
|
-
<slot name="submit" :submit="handleSubmit" :isDirty="isDirty" :validateForm="validateForm" />
|
|
105
|
+
<slot name="submit" :submit="handleSubmit" :isDirty="isDirty" :validateForm="validateForm" :formState="formState" />
|
|
102
106
|
<slot v-if="formState === 'success'" name="success" />
|
|
103
107
|
<slot v-if="formState === 'error'" name="error" />
|
|
104
108
|
</form>
|
|
@@ -17,6 +17,8 @@ const props = withDefaults(
|
|
|
17
17
|
mode?: modeType
|
|
18
18
|
firstDayOfWeek?: WEEK_START_DAY
|
|
19
19
|
locale?: string
|
|
20
|
+
center?: boolean
|
|
21
|
+
|
|
20
22
|
}>(),
|
|
21
23
|
{
|
|
22
24
|
enableTime: false,
|
|
@@ -40,7 +42,7 @@ const time = new Time(props.firstDayOfWeek, props.locale)
|
|
|
40
42
|
function formatDisplayDate(date: Date | string | undefined): string {
|
|
41
43
|
if (!date) return ''
|
|
42
44
|
const dateObj = typeof date === 'string' ? new Date(date) : date
|
|
43
|
-
|
|
45
|
+
|
|
44
46
|
if (props.enableTime) {
|
|
45
47
|
return dateObj.toLocaleString(props.locale || undefined, {
|
|
46
48
|
year: 'numeric',
|
|
@@ -51,7 +53,7 @@ function formatDisplayDate(date: Date | string | undefined): string {
|
|
|
51
53
|
timeZone: props.timezone
|
|
52
54
|
})
|
|
53
55
|
}
|
|
54
|
-
|
|
56
|
+
|
|
55
57
|
return dateObj.toLocaleString(props.locale || undefined, {
|
|
56
58
|
year: 'numeric',
|
|
57
59
|
month: 'short',
|
|
@@ -260,6 +262,8 @@ function isNotInMonth(date: Date) {
|
|
|
260
262
|
:required="required"
|
|
261
263
|
:disabled="!editMode"
|
|
262
264
|
class="date-input"
|
|
265
|
+
:class="{
|
|
266
|
+
'txt-center': center }"
|
|
263
267
|
readonly
|
|
264
268
|
@click="isOpen = true"
|
|
265
269
|
>
|
|
@@ -32,7 +32,7 @@ const hours = Array.from({ length: 18 }, (_, index) => {
|
|
|
32
32
|
|
|
33
33
|
<template>
|
|
34
34
|
<div class="datetime-wrap">
|
|
35
|
-
<div class="date-wrap">
|
|
35
|
+
<!-- <div class="date-wrap">
|
|
36
36
|
<VDatepicker
|
|
37
37
|
v-model="selectedDate"
|
|
38
38
|
inline
|
|
@@ -48,7 +48,7 @@ const hours = Array.from({ length: 18 }, (_, index) => {
|
|
|
48
48
|
<template #action-buttons />
|
|
49
49
|
<template #action-preview />
|
|
50
50
|
</VDatepicker>
|
|
51
|
-
</div>
|
|
51
|
+
</div> -->
|
|
52
52
|
<div v-if="showTimeWrap" class="time-wrap">
|
|
53
53
|
<template v-for="hr in hours" :key="hr">
|
|
54
54
|
<input
|
|
@@ -100,7 +100,7 @@ function formatNumber(num: number) {
|
|
|
100
100
|
|
|
101
101
|
let formattedValue = $ref('')
|
|
102
102
|
function inputHandler() {
|
|
103
|
-
|
|
103
|
+
const numeric = formattedValue.replace(/[^\d.-]/g, '')
|
|
104
104
|
const emptyValue = ['', '-', '.'].includes(numeric)
|
|
105
105
|
if (numeric === '-.' || numeric.endsWith('.') || emptyValue) return
|
|
106
106
|
|
|
@@ -129,7 +129,7 @@ watch(() => modelValue, (newVal) => {
|
|
|
129
129
|
}"
|
|
130
130
|
>
|
|
131
131
|
<div :for="id">
|
|
132
|
-
<label v-if="label">
|
|
132
|
+
<label v-if="label" class="block">
|
|
133
133
|
{{ label }}
|
|
134
134
|
</label>
|
|
135
135
|
<div class="gap-025" :class="{ 'column flex': layout === 'vertical', 'flex': layout === 'horizontal' }">
|
package/src/components/index.ts
CHANGED
|
@@ -36,6 +36,7 @@ export { default as NavBar } from './NavBar.vue'
|
|
|
36
36
|
export { default as PageTitle } from './PageTitle.vue'
|
|
37
37
|
export { default as Pill } from './Pill.vue'
|
|
38
38
|
export { default as RouterWrapper } from './RouterWrapper.vue'
|
|
39
|
+
export { default as Spreadsheet } from './Spreadsheet/Index.vue'
|
|
39
40
|
export { default as Title } from './Title.vue'
|
|
40
41
|
export { default as ToolBar } from './ToolBar.vue'
|
|
41
42
|
export { default as TopBar } from './TopBar.vue'
|
|
@@ -100,13 +100,13 @@ defineExpose({ open, close })
|
|
|
100
100
|
<Btn flat class="color-white" icon="add" :disabled="zoom === 3" @click="zoom++" />
|
|
101
101
|
</div>
|
|
102
102
|
<Btn
|
|
103
|
-
v-if="currentItem?.openFile" class="color-white" round thin flat iconEnd="arrow_outward"
|
|
103
|
+
v-if="currentItem?.openFile && currentItem?.src" class="color-white" round thin flat iconEnd="arrow_outward"
|
|
104
104
|
value="Open File"
|
|
105
105
|
:href="currentItem?.src"
|
|
106
106
|
target="_blank"
|
|
107
107
|
/>
|
|
108
108
|
<Btn
|
|
109
|
-
v-if="currentItem?.download" class="color-white" round thin flat icon="download"
|
|
109
|
+
v-if="currentItem?.download && currentItem?.src" class="color-white" round thin flat icon="download"
|
|
110
110
|
value="Download File"
|
|
111
111
|
:href="upgradeHeaders(currentItem?.src)"
|
|
112
112
|
download
|
|
@@ -117,11 +117,11 @@ defineExpose({ open, close })
|
|
|
117
117
|
<Carousel v-model:index="currentIndex" :items="1" class="bgl-lightbox-item" :class="{ zoomed: zoom > 1 }" :freeDrag="zoom === 1">
|
|
118
118
|
<template v-for="item in group" :key="item.src">
|
|
119
119
|
<Zoomer v-if="item.type === 'image'" v-model:zoom="zoom" :disabled="!item?.enableZoom" :mouse-wheel-to-zoom="false">
|
|
120
|
-
<Image :draggable="false" :src="item?.src" alt="Preview" class="vw90 lightbox-image" />
|
|
120
|
+
<Image :draggable="false" :src="item?.src" :pathKey="item?.pathKey" alt="Preview" class="vw90 lightbox-image" />
|
|
121
121
|
</Zoomer>
|
|
122
122
|
|
|
123
123
|
<BglVideo
|
|
124
|
-
v-else-if="item?.type === 'video'"
|
|
124
|
+
v-else-if="item?.type === 'video' && item?.src"
|
|
125
125
|
:src="item?.src"
|
|
126
126
|
autoplay
|
|
127
127
|
controls
|
|
@@ -129,7 +129,7 @@ defineExpose({ open, close })
|
|
|
129
129
|
/>
|
|
130
130
|
|
|
131
131
|
<embed
|
|
132
|
-
v-else-if="item?.type === 'pdf'"
|
|
132
|
+
v-else-if="item?.type === 'pdf' && item?.src"
|
|
133
133
|
:src="normalizeURL(item?.src)"
|
|
134
134
|
type="application/pdf"
|
|
135
135
|
width="100%"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { VNode } from 'vue'
|
|
2
|
-
import type { BaseBagelField } from '../types/BagelForm'
|
|
2
|
+
import type { BaseBagelField, BglFormSchemaT } from '../types/BagelForm'
|
|
3
3
|
import {
|
|
4
4
|
TextInput,
|
|
5
5
|
NumberInput,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
classify,
|
|
18
18
|
keyToLabel
|
|
19
19
|
} from '@bagelink/vue'
|
|
20
|
-
import { h } from 'vue'
|
|
20
|
+
import { h, isVNode } from 'vue'
|
|
21
21
|
|
|
22
22
|
const SLOT_VALUE_COMPONENTS = new Set(['div', 'span', 'p'])
|
|
23
23
|
|
|
@@ -30,6 +30,12 @@ export interface UseSchemaFieldOptions<T> {
|
|
|
30
30
|
includeUnset?: boolean
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
// Add type for supported child types
|
|
34
|
+
type SupportedChild<T> = BaseBagelField<T> | string | VNode
|
|
35
|
+
interface SlotProps<T> { row: T, field: BaseBagelField<T> }
|
|
36
|
+
type SlotFunction<T> = (props: SlotProps<T>) => any
|
|
37
|
+
type SupportedSlot<T> = BglFormSchemaT<T> | VNode | SlotFunction<T>
|
|
38
|
+
|
|
33
39
|
export function useSchemaField<T extends { [key: string]: any }>(options: UseSchemaFieldOptions<T>) {
|
|
34
40
|
const { mode = 'form', getRowData, onUpdate, includeUnset = false } = options
|
|
35
41
|
|
|
@@ -57,9 +63,19 @@ export function useSchemaField<T extends { [key: string]: any }>(options: UseSch
|
|
|
57
63
|
return typeof field.$el === 'object' ? field.$el : componentMap[field.$el as keyof typeof componentMap] ?? field.$el ?? 'div'
|
|
58
64
|
}
|
|
59
65
|
|
|
66
|
+
function isSlotFunction<T>(slot: unknown): slot is SlotFunction<T> {
|
|
67
|
+
return typeof slot === 'function'
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function renderChild(child: SupportedChild<T>, slots?: Record<string, SupportedSlot<T>>): any {
|
|
71
|
+
if (typeof child === 'string') return child
|
|
72
|
+
if (isVNode(child)) return child
|
|
73
|
+
return renderField(child, slots)
|
|
74
|
+
}
|
|
75
|
+
|
|
60
76
|
function renderField(
|
|
61
77
|
field: BaseBagelField<T>,
|
|
62
|
-
slots?: Record<string,
|
|
78
|
+
slots?: Record<string, SupportedSlot<T>>
|
|
63
79
|
): VNode | null {
|
|
64
80
|
const Component = getComponent(field)
|
|
65
81
|
if (!Component) return null
|
|
@@ -169,10 +185,7 @@ export function useSchemaField<T extends { [key: string]: any }>(options: UseSch
|
|
|
169
185
|
// Add default slot if there are children
|
|
170
186
|
if (children?.length) {
|
|
171
187
|
componentSlots.default = () => children
|
|
172
|
-
.map(
|
|
173
|
-
if (typeof child === 'string') return child
|
|
174
|
-
return renderField(child, slots)
|
|
175
|
-
})
|
|
188
|
+
.map(child => renderChild(child, slots))
|
|
176
189
|
.filter(Boolean) // Filter out null results from vIf
|
|
177
190
|
}
|
|
178
191
|
|
|
@@ -181,18 +194,29 @@ export function useSchemaField<T extends { [key: string]: any }>(options: UseSch
|
|
|
181
194
|
componentSlots.default = () => transformedValue?.toString() || ''
|
|
182
195
|
}
|
|
183
196
|
|
|
184
|
-
//
|
|
197
|
+
// Handle custom slots from the field
|
|
185
198
|
if (fieldSlots) {
|
|
186
199
|
Object.entries(fieldSlots).forEach(([name, slot]) => {
|
|
187
|
-
componentSlots[name] =
|
|
188
|
-
|
|
189
|
-
|
|
200
|
+
componentSlots[name] = () => {
|
|
201
|
+
if (Array.isArray(slot)) {
|
|
202
|
+
// Handle BglFormSchemaT array
|
|
203
|
+
return slot.map(schemaField => renderField(schemaField as BaseBagelField<T>, slots))
|
|
204
|
+
} else if (isVNode(slot)) {
|
|
205
|
+
// Handle VNode
|
|
206
|
+
return slot
|
|
207
|
+
} else if (typeof slot === 'function') {
|
|
208
|
+
// Handle function slot
|
|
209
|
+
const slotFn = slot as (props: SlotProps<T>) => any
|
|
210
|
+
return slotFn({ row: rowData, field })
|
|
211
|
+
}
|
|
212
|
+
return slot
|
|
213
|
+
}
|
|
190
214
|
})
|
|
191
215
|
}
|
|
192
216
|
|
|
193
217
|
// Handle custom slot content from parent
|
|
194
218
|
const slotContent = field.id && slots?.[field.id]
|
|
195
|
-
? slots[field.id]({ row: rowData, field })
|
|
219
|
+
? (slots[field.id] as SlotFunction<T>)({ row: rowData, field })
|
|
196
220
|
: undefined
|
|
197
221
|
|
|
198
222
|
if (mode === 'preview') {
|
package/src/styles/buttons.css
CHANGED
|
@@ -1,132 +1,140 @@
|
|
|
1
1
|
.bgl_btn,
|
|
2
2
|
.bgl_flatBtn,
|
|
3
3
|
.bgl_btn-icon {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
4
|
+
font-family: inherit;
|
|
5
|
+
white-space: nowrap;
|
|
6
|
+
cursor: pointer;
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
user-select: none;
|
|
9
|
+
border: none;
|
|
10
|
+
transition: var(--bgl-transition);
|
|
11
|
+
border-radius: var(--btn-border-radius);
|
|
12
|
+
line-height: var(--btn-height);
|
|
13
|
+
font-size: var(--input-font-size);
|
|
14
|
+
display: inline-block;
|
|
15
|
+
height: var(--btn-height);
|
|
16
|
+
padding: 0;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.btn-close {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
20
|
+
margin-top: -20px;
|
|
21
|
+
margin-inline-end: -20px;
|
|
22
|
+
margin-inline-start: auto;
|
|
23
|
+
margin-bottom: 15px;
|
|
24
|
+
transition: var(--bgl-transition);
|
|
25
|
+
height: 30px;
|
|
26
|
+
width: 30px;
|
|
27
|
+
opacity: 0.6;
|
|
28
|
+
cursor: pointer;
|
|
29
|
+
border-radius: 100%;
|
|
30
|
+
outline: 2px solid transparent;
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
justify-content: center;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
.btn-close:hover {
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
background: var(--bgl-gray-light);
|
|
38
|
+
opacity: 1;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.btn-close:active {
|
|
42
|
-
|
|
42
|
+
background: var(--bgl-gray);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
.btn-close::before {
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
content: 'close';
|
|
47
|
+
font-family: 'Material Symbols Outlined', serif;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
.bgl_btn.thin {
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
height: calc(var(--btn-height) * 0.7);
|
|
52
|
+
line-height: calc(var(--btn-height) * 0.7);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
.hover {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
cursor: pointer;
|
|
57
|
+
transition: all 400ms ease;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
.hover:hover {
|
|
61
|
-
|
|
61
|
+
filter: brightness(90%);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
.hover:active {
|
|
65
|
-
|
|
65
|
+
filter: brightness(80%);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
.border {
|
|
69
|
-
|
|
69
|
+
border: 1px solid var(--border-color);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
.border-primary {
|
|
73
|
-
|
|
73
|
+
border: 1px solid var(--bgl-primary);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.outline {
|
|
77
|
+
outline: 1px solid var(--border-color);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.outline-primary {
|
|
81
|
+
outline: 1px solid var(--bgl-primary);
|
|
74
82
|
}
|
|
75
83
|
|
|
76
84
|
.rotate-270 {
|
|
77
|
-
|
|
85
|
+
transform: rotate(270deg);
|
|
78
86
|
}
|
|
79
87
|
|
|
80
88
|
.rotate-180 {
|
|
81
|
-
|
|
89
|
+
transform: rotate(180deg);
|
|
82
90
|
}
|
|
83
91
|
|
|
84
92
|
.rotate-90 {
|
|
85
|
-
|
|
93
|
+
transform: rotate(90deg);
|
|
86
94
|
}
|
|
87
95
|
|
|
88
96
|
.rotate-0 {
|
|
89
|
-
|
|
97
|
+
transform: rotate(0deg);
|
|
90
98
|
}
|
|
91
99
|
|
|
92
100
|
@media screen and (max-width: 910px) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
101
|
+
.bgl_btn {
|
|
102
|
+
padding: 0 20px;
|
|
103
|
+
}
|
|
96
104
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
105
|
+
.m_border {
|
|
106
|
+
border: 1px solid var(--border-color);
|
|
107
|
+
}
|
|
100
108
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
109
|
+
.m_rotate-270 {
|
|
110
|
+
transform: rotate(270deg);
|
|
111
|
+
}
|
|
104
112
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
113
|
+
.m_rotate-180 {
|
|
114
|
+
transform: rotate(180deg);
|
|
115
|
+
}
|
|
108
116
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
117
|
+
.m_rotate-90 {
|
|
118
|
+
transform: rotate(90deg);
|
|
119
|
+
}
|
|
112
120
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
121
|
+
.m_rotate-0 {
|
|
122
|
+
transform: rotate(0deg);
|
|
123
|
+
}
|
|
116
124
|
}
|
|
117
125
|
|
|
118
126
|
.ripple {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
127
|
+
position: absolute;
|
|
128
|
+
border-radius: 50%;
|
|
129
|
+
transform: scale(0);
|
|
130
|
+
background: rgba(0, 0, 0, 0.3);
|
|
131
|
+
pointer-events: none;
|
|
132
|
+
animation: rippleEffect 0.6s ease-out;
|
|
125
133
|
}
|
|
126
134
|
|
|
127
135
|
@keyframes rippleEffect {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
136
|
+
to {
|
|
137
|
+
transform: scale(4);
|
|
138
|
+
opacity: 0;
|
|
139
|
+
}
|
|
140
|
+
}
|
package/src/styles/layout.css
CHANGED
|
@@ -55,6 +55,27 @@
|
|
|
55
55
|
aspect-ratio: 1;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
.vertical-align-middle,
|
|
59
|
+
.vertical-middle {
|
|
60
|
+
vertical-align: middle;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.vertical-align-top,
|
|
64
|
+
.vertical-top {
|
|
65
|
+
vertical-align: top;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.vertical-align-bottom,
|
|
69
|
+
.vertical-bottom {
|
|
70
|
+
vertical-align: bottom;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.vertical-align-baseline,
|
|
74
|
+
.vertical-baseline {
|
|
75
|
+
vertical-align: baseline;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
58
79
|
.flex-center {
|
|
59
80
|
justify-content: center;
|
|
60
81
|
align-items: center;
|
|
@@ -5380,6 +5401,10 @@
|
|
|
5380
5401
|
justify-content: space-between;
|
|
5381
5402
|
}
|
|
5382
5403
|
|
|
5404
|
+
.space-evenly {
|
|
5405
|
+
justify-content: space-evenly;
|
|
5406
|
+
}
|
|
5407
|
+
|
|
5383
5408
|
.label {
|
|
5384
5409
|
display: block;
|
|
5385
5410
|
font-size: var(--label-font-size);
|
|
@@ -80,6 +80,27 @@
|
|
|
80
80
|
aspect-ratio: 1;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
.m_vertical-align-middle,
|
|
84
|
+
.m_vertical-middle {
|
|
85
|
+
vertical-align: middle;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.m_vertical-align-top,
|
|
89
|
+
.m_vertical-top {
|
|
90
|
+
vertical-align: top;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.m_vertical-align-bottom,
|
|
94
|
+
.m_vertical-bottom {
|
|
95
|
+
vertical-align: bottom;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.m_vertical-align-baseline,
|
|
99
|
+
.m_vertical-baseline {
|
|
100
|
+
vertical-align: baseline;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
|
|
83
104
|
.m_flex-center {
|
|
84
105
|
justify-items: center;
|
|
85
106
|
align-items: center;
|
|
@@ -4635,6 +4656,10 @@
|
|
|
4635
4656
|
justify-content: space-between;
|
|
4636
4657
|
}
|
|
4637
4658
|
|
|
4659
|
+
.m_space-evenly {
|
|
4660
|
+
justify-content: space-evenly;
|
|
4661
|
+
}
|
|
4662
|
+
|
|
4638
4663
|
.m_label {
|
|
4639
4664
|
display: block;
|
|
4640
4665
|
font-size: var(--label-font-size);
|
package/src/styles/text.css
CHANGED
|
@@ -258,6 +258,46 @@
|
|
|
258
258
|
font-weight: 900;
|
|
259
259
|
}
|
|
260
260
|
|
|
261
|
+
.line-height-0 {
|
|
262
|
+
line-height: 0;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.line-height-01 {
|
|
266
|
+
line-height: 0.1;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
.line-height-02 {
|
|
270
|
+
line-height: 0.2;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.line-height-03 {
|
|
274
|
+
line-height: 0.3;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.line-height-04 {
|
|
278
|
+
line-height: 0.4;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.line-height-05 {
|
|
282
|
+
line-height: 0.5;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.line-height-06 {
|
|
286
|
+
line-height: 0.6;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.line-height-07 {
|
|
290
|
+
line-height: 0.7;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
.line-height-08 {
|
|
294
|
+
line-height: 0.8;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.line-height-09 {
|
|
298
|
+
line-height: 0.9;
|
|
299
|
+
}
|
|
300
|
+
|
|
261
301
|
.line-height-1 {
|
|
262
302
|
line-height: 1;
|
|
263
303
|
}
|
|
@@ -417,6 +457,7 @@
|
|
|
417
457
|
}
|
|
418
458
|
|
|
419
459
|
@media screen and (max-width: 910px) {
|
|
460
|
+
|
|
420
461
|
.txt20,
|
|
421
462
|
.txt-20 {
|
|
422
463
|
font-size: 18px;
|
|
@@ -692,6 +733,46 @@
|
|
|
692
733
|
font-weight: 900;
|
|
693
734
|
}
|
|
694
735
|
|
|
736
|
+
.m_line-height-0 {
|
|
737
|
+
line-height: 0;
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
.m_line-height-01 {
|
|
741
|
+
line-height: 0.1;
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
.m_line-height-02 {
|
|
745
|
+
line-height: 0.2;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
.m_line-height-03 {
|
|
749
|
+
line-height: 0.3;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
.m_line-height-04 {
|
|
753
|
+
line-height: 0.4;
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
.m_line-height-05 {
|
|
757
|
+
line-height: 0.5;
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
.m_line-height-06 {
|
|
761
|
+
line-height: 0.6;
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
.m_line-height-07 {
|
|
765
|
+
line-height: 0.7;
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
.m_line-height-08 {
|
|
769
|
+
line-height: 0.8;
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
.m_line-height-09 {
|
|
773
|
+
line-height: 0.9;
|
|
774
|
+
}
|
|
775
|
+
|
|
695
776
|
.m_line-height-1 {
|
|
696
777
|
line-height: 1;
|
|
697
778
|
}
|
|
@@ -833,4 +914,4 @@
|
|
|
833
914
|
.m_capitalize {
|
|
834
915
|
text-transform: capitalize;
|
|
835
916
|
}
|
|
836
|
-
}
|
|
917
|
+
}
|