vuetify 3.5.5 → 3.5.7
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/_component-variables-labs.sass +2 -0
- package/dist/json/attributes.json +352 -40
- package/dist/json/importMap-labs.json +16 -8
- package/dist/json/importMap.json +122 -118
- package/dist/json/tags.json +93 -0
- package/dist/json/web-types.json +1084 -52
- package/dist/vuetify-labs.css +2121 -1996
- package/dist/vuetify-labs.d.ts +1336 -128
- package/dist/vuetify-labs.esm.js +332 -81
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +332 -81
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +838 -839
- package/dist/vuetify.d.ts +320 -145
- package/dist/vuetify.esm.js +87 -75
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +87 -75
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +60 -58
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VApp/index.d.mts +8 -6
- package/lib/components/VAutocomplete/VAutocomplete.css +4 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs +33 -29
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +1 -1
- package/lib/components/VCheckbox/VCheckbox.mjs +3 -1
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.css +4 -4
- package/lib/components/VCombobox/VCombobox.mjs +22 -23
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +1 -1
- package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
- package/lib/components/VDataIterator/index.d.mts +50 -94
- package/lib/components/VDataTable/index.d.mts +214 -1
- package/lib/components/VDataTable/index.mjs +1 -0
- package/lib/components/VDataTable/index.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +4 -7
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +4 -3
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +2 -0
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +2 -0
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +27 -0
- package/lib/components/VLayout/index.d.mts +8 -6
- package/lib/components/VSelect/VSelect.mjs +20 -18
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.css +3 -1
- package/lib/components/VToolbar/VToolbar.sass +2 -1
- package/lib/components/index.d.mts +279 -106
- package/lib/composables/filter.mjs +1 -1
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/goto.mjs +2 -2
- package/lib/composables/goto.mjs.map +1 -1
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +42 -39
- package/lib/labs/VEmptyState/VEmptyState.css +59 -0
- package/lib/labs/VEmptyState/VEmptyState.mjs +145 -0
- package/lib/labs/VEmptyState/VEmptyState.mjs.map +1 -0
- package/lib/labs/VEmptyState/VEmptyState.sass +53 -0
- package/lib/labs/VEmptyState/_variables.scss +22 -0
- package/lib/labs/VEmptyState/index.d.mts +415 -0
- package/lib/labs/VEmptyState/index.mjs +2 -0
- package/lib/labs/VEmptyState/index.mjs.map +1 -0
- package/lib/labs/VFab/VFab.css +69 -0
- package/lib/labs/VFab/VFab.mjs +114 -0
- package/lib/labs/VFab/VFab.mjs.map +1 -0
- package/lib/labs/VFab/VFab.sass +82 -0
- package/lib/labs/VFab/_mixins.scss +22 -0
- package/lib/labs/VFab/_variables.scss +33 -0
- package/lib/labs/VFab/index.d.mts +656 -0
- package/lib/labs/VFab/index.mjs +2 -0
- package/lib/labs/VFab/index.mjs.map +1 -0
- package/lib/labs/VSparkline/VBarline.mjs +4 -4
- package/lib/labs/VSparkline/VBarline.mjs.map +1 -1
- package/lib/labs/VSparkline/VTrendline.mjs +6 -2
- package/lib/labs/VSparkline/VTrendline.mjs.map +1 -1
- package/lib/labs/VSparkline/index.d.mts +12 -0
- package/lib/labs/VSparkline/util/line.mjs +2 -0
- package/lib/labs/VSparkline/util/line.mjs.map +1 -1
- package/lib/labs/components.d.mts +1066 -2
- package/lib/labs/components.mjs +2 -0
- package/lib/labs/components.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
.v-fab {
|
|
2
|
+
align-items: center;
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
flex: 1 1 auto;
|
|
5
|
+
pointer-events: none;
|
|
6
|
+
position: relative;
|
|
7
|
+
transition-duration: 0.2s;
|
|
8
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
9
|
+
vertical-align: middle;
|
|
10
|
+
}
|
|
11
|
+
.v-fab .v-btn {
|
|
12
|
+
pointer-events: auto;
|
|
13
|
+
}
|
|
14
|
+
.v-fab .v-btn--variant-elevated {
|
|
15
|
+
box-shadow: 0px 3px 3px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 3px 4px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 1px 8px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
|
|
16
|
+
}
|
|
17
|
+
.v-fab--app, .v-fab--absolute {
|
|
18
|
+
display: flex;
|
|
19
|
+
}
|
|
20
|
+
.v-fab--start, .v-fab--left {
|
|
21
|
+
justify-content: flex-start;
|
|
22
|
+
}
|
|
23
|
+
.v-fab--center {
|
|
24
|
+
align-items: center;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
}
|
|
27
|
+
.v-fab--end, .v-fab--right {
|
|
28
|
+
justify-content: flex-end;
|
|
29
|
+
}
|
|
30
|
+
.v-fab--bottom {
|
|
31
|
+
align-items: flex-end;
|
|
32
|
+
}
|
|
33
|
+
.v-fab--top {
|
|
34
|
+
align-items: flex-start;
|
|
35
|
+
}
|
|
36
|
+
.v-fab--extended .v-btn {
|
|
37
|
+
border-radius: 9999px !important;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.v-fab__container {
|
|
41
|
+
align-self: center;
|
|
42
|
+
display: inline-flex;
|
|
43
|
+
vertical-align: middle;
|
|
44
|
+
}
|
|
45
|
+
.v-fab--app .v-fab__container {
|
|
46
|
+
margin: 4px;
|
|
47
|
+
}
|
|
48
|
+
.v-fab--absolute .v-fab__container {
|
|
49
|
+
position: absolute;
|
|
50
|
+
z-index: 4;
|
|
51
|
+
}
|
|
52
|
+
.v-fab--offset.v-fab--top .v-fab__container {
|
|
53
|
+
transform: translateY(-50%);
|
|
54
|
+
}
|
|
55
|
+
.v-fab--offset.v-fab--bottom .v-fab__container {
|
|
56
|
+
transform: translateY(50%);
|
|
57
|
+
}
|
|
58
|
+
.v-fab--top .v-fab__container {
|
|
59
|
+
top: 0;
|
|
60
|
+
}
|
|
61
|
+
.v-fab--bottom .v-fab__container {
|
|
62
|
+
bottom: 0;
|
|
63
|
+
}
|
|
64
|
+
.v-fab--left .v-fab__container, .v-fab--start .v-fab__container {
|
|
65
|
+
left: 0;
|
|
66
|
+
}
|
|
67
|
+
.v-fab--right .v-fab__container, .v-fab--end .v-fab__container {
|
|
68
|
+
right: 0;
|
|
69
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { withDirectives as _withDirectives, createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective, vShow as _vShow } from "vue";
|
|
2
|
+
// Styles
|
|
3
|
+
import "./VFab.css";
|
|
4
|
+
|
|
5
|
+
// Components
|
|
6
|
+
import { makeVBtnProps, VBtn } from "../../components/VBtn/VBtn.mjs"; // Composables
|
|
7
|
+
import { makeLayoutItemProps, useLayoutItem } from "../../composables/layout.mjs";
|
|
8
|
+
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
9
|
+
import { useResizeObserver } from "../../composables/resizeObserver.mjs";
|
|
10
|
+
import { useToggleScope } from "../../composables/toggleScope.mjs";
|
|
11
|
+
import { makeTransitionProps, MaybeTransition } from "../../composables/transition.mjs"; // Utilities
|
|
12
|
+
import { computed, ref, shallowRef, toRef, watchEffect } from 'vue';
|
|
13
|
+
import { genericComponent, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
14
|
+
const locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];
|
|
15
|
+
export const makeVFabProps = propsFactory({
|
|
16
|
+
app: Boolean,
|
|
17
|
+
appear: Boolean,
|
|
18
|
+
extended: Boolean,
|
|
19
|
+
location: {
|
|
20
|
+
type: String,
|
|
21
|
+
default: 'bottom end'
|
|
22
|
+
},
|
|
23
|
+
offset: Boolean,
|
|
24
|
+
modelValue: {
|
|
25
|
+
type: Boolean,
|
|
26
|
+
default: true
|
|
27
|
+
},
|
|
28
|
+
...omit(makeVBtnProps({
|
|
29
|
+
active: true
|
|
30
|
+
}), ['location']),
|
|
31
|
+
...makeLayoutItemProps(),
|
|
32
|
+
...makeTransitionProps({
|
|
33
|
+
transition: 'fab-transition'
|
|
34
|
+
})
|
|
35
|
+
}, 'VFab');
|
|
36
|
+
export const VFab = genericComponent()({
|
|
37
|
+
name: 'VFab',
|
|
38
|
+
props: makeVFabProps(),
|
|
39
|
+
emits: {
|
|
40
|
+
'update:modelValue': value => true
|
|
41
|
+
},
|
|
42
|
+
setup(props, _ref) {
|
|
43
|
+
let {
|
|
44
|
+
slots
|
|
45
|
+
} = _ref;
|
|
46
|
+
const model = useProxiedModel(props, 'modelValue');
|
|
47
|
+
const height = shallowRef(56);
|
|
48
|
+
const layoutItemStyles = ref();
|
|
49
|
+
const {
|
|
50
|
+
resizeRef
|
|
51
|
+
} = useResizeObserver(entries => {
|
|
52
|
+
if (!entries.length) return;
|
|
53
|
+
height.value = entries[0].target.clientHeight;
|
|
54
|
+
});
|
|
55
|
+
const hasPosition = computed(() => props.app || props.absolute);
|
|
56
|
+
const position = computed(() => {
|
|
57
|
+
if (!hasPosition.value) return false;
|
|
58
|
+
return props.location.split(' ').shift();
|
|
59
|
+
});
|
|
60
|
+
const orientation = computed(() => {
|
|
61
|
+
if (!hasPosition.value) return false;
|
|
62
|
+
return props.location.split(' ')[1] ?? 'end';
|
|
63
|
+
});
|
|
64
|
+
useToggleScope(() => props.app, () => {
|
|
65
|
+
const layout = useLayoutItem({
|
|
66
|
+
id: props.name,
|
|
67
|
+
order: computed(() => parseInt(props.order, 10)),
|
|
68
|
+
position,
|
|
69
|
+
layoutSize: height,
|
|
70
|
+
elementSize: computed(() => height.value + 32),
|
|
71
|
+
active: computed(() => props.app && model.value),
|
|
72
|
+
absolute: toRef(props, 'absolute')
|
|
73
|
+
});
|
|
74
|
+
watchEffect(() => {
|
|
75
|
+
layoutItemStyles.value = layout.layoutItemStyles.value;
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
const vFabRef = ref();
|
|
79
|
+
useRender(() => {
|
|
80
|
+
const btnProps = VBtn.filterProps(props);
|
|
81
|
+
return _createVNode("div", {
|
|
82
|
+
"ref": vFabRef,
|
|
83
|
+
"class": ['v-fab', {
|
|
84
|
+
'v-fab--absolute': props.absolute,
|
|
85
|
+
'v-fab--app': !!props.app,
|
|
86
|
+
'v-fab--extended': props.extended,
|
|
87
|
+
'v-fab--offset': props.offset,
|
|
88
|
+
[`v-fab--${position.value}`]: hasPosition.value,
|
|
89
|
+
[`v-fab--${orientation.value}`]: hasPosition.value
|
|
90
|
+
}, props.class],
|
|
91
|
+
"style": [props.app ? {
|
|
92
|
+
...layoutItemStyles.value
|
|
93
|
+
} : {
|
|
94
|
+
height: 'inherit',
|
|
95
|
+
width: undefined
|
|
96
|
+
}, props.style]
|
|
97
|
+
}, [_createVNode("div", {
|
|
98
|
+
"class": "v-fab__container"
|
|
99
|
+
}, [_createVNode(MaybeTransition, {
|
|
100
|
+
"appear": props.appear,
|
|
101
|
+
"transition": props.transition
|
|
102
|
+
}, {
|
|
103
|
+
default: () => [_withDirectives(_createVNode(VBtn, _mergeProps({
|
|
104
|
+
"ref": resizeRef
|
|
105
|
+
}, btnProps, {
|
|
106
|
+
"active": undefined,
|
|
107
|
+
"location": undefined
|
|
108
|
+
}), slots), [[_vShow, props.active]])]
|
|
109
|
+
})])]);
|
|
110
|
+
});
|
|
111
|
+
return {};
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
//# sourceMappingURL=VFab.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VFab.mjs","names":["makeVBtnProps","VBtn","makeLayoutItemProps","useLayoutItem","useProxiedModel","useResizeObserver","useToggleScope","makeTransitionProps","MaybeTransition","computed","ref","shallowRef","toRef","watchEffect","genericComponent","omit","propsFactory","useRender","locations","makeVFabProps","app","Boolean","appear","extended","location","type","String","default","offset","modelValue","active","transition","VFab","name","props","emits","value","setup","_ref","slots","model","height","layoutItemStyles","resizeRef","entries","length","target","clientHeight","hasPosition","absolute","position","split","shift","orientation","layout","id","order","parseInt","layoutSize","elementSize","vFabRef","btnProps","filterProps","_createVNode","class","width","undefined","style","_withDirectives","_mergeProps","_vShow"],"sources":["../../../src/labs/VFab/VFab.tsx"],"sourcesContent":["// Styles\nimport './VFab.sass'\n\n// Components\nimport { makeVBtnProps, VBtn } from '@/components/VBtn/VBtn'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType } from 'vue'\nimport type { Position } from '@/composables/layout'\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeVFabProps = propsFactory({\n app: Boolean,\n appear: Boolean,\n extended: Boolean,\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'bottom end',\n },\n offset: Boolean,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n ...omit(makeVBtnProps({ active: true }), ['location']),\n ...makeLayoutItemProps(),\n ...makeTransitionProps({ transition: 'fab-transition' }),\n}, 'VFab')\n\nexport const VFab = genericComponent()({\n name: 'VFab',\n\n props: makeVFabProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const height = shallowRef(56)\n const layoutItemStyles = ref()\n\n const { resizeRef } = useResizeObserver(entries => {\n if (!entries.length) return\n height.value = entries[0].target.clientHeight\n })\n\n const hasPosition = computed(() => props.app || props.absolute)\n\n const position = computed(() => {\n if (!hasPosition.value) return false\n\n return props.location.split(' ').shift()\n }) as ComputedRef<Position>\n\n const orientation = computed(() => {\n if (!hasPosition.value) return false\n\n return props.location.split(' ')[1] ?? 'end'\n })\n\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position,\n layoutSize: height,\n elementSize: computed(() => height.value + 32),\n active: computed(() => props.app && model.value),\n absolute: toRef(props, 'absolute'),\n })\n\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value\n })\n })\n\n const vFabRef = ref()\n\n useRender(() => {\n const btnProps = VBtn.filterProps(props)\n\n return (\n <div\n ref={ vFabRef }\n class={[\n 'v-fab',\n {\n 'v-fab--absolute': props.absolute,\n 'v-fab--app': !!props.app,\n 'v-fab--extended': props.extended,\n 'v-fab--offset': props.offset,\n [`v-fab--${position.value}`]: hasPosition.value,\n [`v-fab--${orientation.value}`]: hasPosition.value,\n },\n props.class,\n ]}\n style={[\n props.app ? {\n ...layoutItemStyles.value,\n } : {\n height: 'inherit',\n width: undefined,\n },\n props.style,\n ]}\n >\n <div class=\"v-fab__container\">\n <MaybeTransition\n appear={ props.appear }\n transition={ props.transition }\n >\n <VBtn\n v-show={ props.active }\n ref={ resizeRef }\n { ...btnProps }\n active={ undefined }\n location={ undefined }\n v-slots={ slots }\n />\n </MaybeTransition>\n </div>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VFab = InstanceType<typeof VFab>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,aAAa,EAAEC,IAAI,0CAE5B;AAAA,SACSC,mBAAmB,EAAEC,aAAa;AAAA,SAClCC,eAAe;AAAA,SACfC,iBAAiB;AAAA,SACjBC,cAAc;AAAA,SACdC,mBAAmB,EAAEC,eAAe,4CAE7C;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,EAAEC,WAAW,QAAQ,KAAK;AAAA,SAC1DC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAExD;AAIA,MAAMC,SAAS,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAU;AAE7E,OAAO,MAAMC,aAAa,GAAGH,YAAY,CAAC;EACxCI,GAAG,EAAEC,OAAO;EACZC,MAAM,EAAED,OAAO;EACfE,QAAQ,EAAEF,OAAO;EACjBG,QAAQ,EAAE;IACRC,IAAI,EAAEC,MAA4C;IAClDC,OAAO,EAAE;EACX,CAAC;EACDC,MAAM,EAAEP,OAAO;EACfQ,UAAU,EAAE;IACVJ,IAAI,EAAEJ,OAAO;IACbM,OAAO,EAAE;EACX,CAAC;EAED,GAAGZ,IAAI,CAACf,aAAa,CAAC;IAAE8B,MAAM,EAAE;EAAK,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;EACtD,GAAG5B,mBAAmB,CAAC,CAAC;EACxB,GAAGK,mBAAmB,CAAC;IAAEwB,UAAU,EAAE;EAAiB,CAAC;AACzD,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,MAAMC,IAAI,GAAGlB,gBAAgB,CAAC,CAAC,CAAC;EACrCmB,IAAI,EAAE,MAAM;EAEZC,KAAK,EAAEf,aAAa,CAAC,CAAC;EAEtBgB,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAc,IAAK;EAC3C,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGpC,eAAe,CAAC8B,KAAK,EAAE,YAAY,CAAC;IAClD,MAAMO,MAAM,GAAG9B,UAAU,CAAC,EAAE,CAAC;IAC7B,MAAM+B,gBAAgB,GAAGhC,GAAG,CAAC,CAAC;IAE9B,MAAM;MAAEiC;IAAU,CAAC,GAAGtC,iBAAiB,CAACuC,OAAO,IAAI;MACjD,IAAI,CAACA,OAAO,CAACC,MAAM,EAAE;MACrBJ,MAAM,CAACL,KAAK,GAAGQ,OAAO,CAAC,CAAC,CAAC,CAACE,MAAM,CAACC,YAAY;IAC/C,CAAC,CAAC;IAEF,MAAMC,WAAW,GAAGvC,QAAQ,CAAC,MAAMyB,KAAK,CAACd,GAAG,IAAIc,KAAK,CAACe,QAAQ,CAAC;IAE/D,MAAMC,QAAQ,GAAGzC,QAAQ,CAAC,MAAM;MAC9B,IAAI,CAACuC,WAAW,CAACZ,KAAK,EAAE,OAAO,KAAK;MAEpC,OAAOF,KAAK,CAACV,QAAQ,CAAC2B,KAAK,CAAC,GAAG,CAAC,CAACC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAA0B;IAE3B,MAAMC,WAAW,GAAG5C,QAAQ,CAAC,MAAM;MACjC,IAAI,CAACuC,WAAW,CAACZ,KAAK,EAAE,OAAO,KAAK;MAEpC,OAAOF,KAAK,CAACV,QAAQ,CAAC2B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;IAC9C,CAAC,CAAC;IAEF7C,cAAc,CAAC,MAAM4B,KAAK,CAACd,GAAG,EAAE,MAAM;MACpC,MAAMkC,MAAM,GAAGnD,aAAa,CAAC;QAC3BoD,EAAE,EAAErB,KAAK,CAACD,IAAI;QACduB,KAAK,EAAE/C,QAAQ,CAAC,MAAMgD,QAAQ,CAACvB,KAAK,CAACsB,KAAK,EAAE,EAAE,CAAC,CAAC;QAChDN,QAAQ;QACRQ,UAAU,EAAEjB,MAAM;QAClBkB,WAAW,EAAElD,QAAQ,CAAC,MAAMgC,MAAM,CAACL,KAAK,GAAG,EAAE,CAAC;QAC9CN,MAAM,EAAErB,QAAQ,CAAC,MAAMyB,KAAK,CAACd,GAAG,IAAIoB,KAAK,CAACJ,KAAK,CAAC;QAChDa,QAAQ,EAAErC,KAAK,CAACsB,KAAK,EAAE,UAAU;MACnC,CAAC,CAAC;MAEFrB,WAAW,CAAC,MAAM;QAChB6B,gBAAgB,CAACN,KAAK,GAAGkB,MAAM,CAACZ,gBAAgB,CAACN,KAAK;MACxD,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAMwB,OAAO,GAAGlD,GAAG,CAAC,CAAC;IAErBO,SAAS,CAAC,MAAM;MACd,MAAM4C,QAAQ,GAAG5D,IAAI,CAAC6D,WAAW,CAAC5B,KAAK,CAAC;MAExC,OAAA6B,YAAA;QAAA,OAEUH,OAAO;QAAA,SACN,CACL,OAAO,EACP;UACE,iBAAiB,EAAE1B,KAAK,CAACe,QAAQ;UACjC,YAAY,EAAE,CAAC,CAACf,KAAK,CAACd,GAAG;UACzB,iBAAiB,EAAEc,KAAK,CAACX,QAAQ;UACjC,eAAe,EAAEW,KAAK,CAACN,MAAM;UAC7B,CAAE,UAASsB,QAAQ,CAACd,KAAM,EAAC,GAAGY,WAAW,CAACZ,KAAK;UAC/C,CAAE,UAASiB,WAAW,CAACjB,KAAM,EAAC,GAAGY,WAAW,CAACZ;QAC/C,CAAC,EACDF,KAAK,CAAC8B,KAAK,CACZ;QAAA,SACM,CACL9B,KAAK,CAACd,GAAG,GAAG;UACV,GAAGsB,gBAAgB,CAACN;QACtB,CAAC,GAAG;UACFK,MAAM,EAAE,SAAS;UACjBwB,KAAK,EAAEC;QACT,CAAC,EACDhC,KAAK,CAACiC,KAAK;MACZ,IAAAJ,YAAA;QAAA;MAAA,IAAAA,YAAA,CAAAvD,eAAA;QAAA,UAIY0B,KAAK,CAACZ,MAAM;QAAA,cACRY,KAAK,CAACH;MAAU;QAAAJ,OAAA,EAAAA,CAAA,MAAAyC,eAAA,CAAAL,YAAA,CAAA9D,IAAA,EAAAoE,WAAA;UAAA,OAIrB1B;QAAS,GACVkB,QAAQ;UAAA,UACJK,SAAS;UAAA,YACPA;QAAS,IACV3B,KAAK,KAAA+B,MAAA,EALNpC,KAAK,CAACJ,MAAM;MAAA;IAWjC,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
@use '../../styles/tools'
|
|
2
|
+
@use '../../styles/settings'
|
|
3
|
+
@use 'sass:math'
|
|
4
|
+
@use 'sass:map'
|
|
5
|
+
@use './variables' as *
|
|
6
|
+
@use './mixins' as *
|
|
7
|
+
|
|
8
|
+
.v-fab
|
|
9
|
+
align-items: center
|
|
10
|
+
display: inline-flex
|
|
11
|
+
flex: 1 1 auto
|
|
12
|
+
pointer-events: none
|
|
13
|
+
position: relative
|
|
14
|
+
transition-duration: $fab-transition-duration
|
|
15
|
+
transition-timing-function: $fab-transition-timing-function
|
|
16
|
+
vertical-align: middle
|
|
17
|
+
|
|
18
|
+
.v-btn
|
|
19
|
+
pointer-events: auto
|
|
20
|
+
|
|
21
|
+
&--variant-elevated
|
|
22
|
+
@include tools.elevation(3)
|
|
23
|
+
|
|
24
|
+
&--app,
|
|
25
|
+
&--absolute
|
|
26
|
+
display: flex
|
|
27
|
+
|
|
28
|
+
&--start,
|
|
29
|
+
&--left
|
|
30
|
+
justify-content: flex-start
|
|
31
|
+
|
|
32
|
+
&--center
|
|
33
|
+
align-items: center
|
|
34
|
+
justify-content: center
|
|
35
|
+
|
|
36
|
+
&--end,
|
|
37
|
+
&--right
|
|
38
|
+
justify-content: flex-end
|
|
39
|
+
|
|
40
|
+
&--bottom
|
|
41
|
+
align-items: flex-end
|
|
42
|
+
|
|
43
|
+
&--top
|
|
44
|
+
align-items: flex-start
|
|
45
|
+
|
|
46
|
+
&--extended
|
|
47
|
+
.v-btn
|
|
48
|
+
// min-height: 56px
|
|
49
|
+
// min-width: 80px
|
|
50
|
+
border-radius: 9999px !important
|
|
51
|
+
|
|
52
|
+
.v-fab__container
|
|
53
|
+
align-self: center
|
|
54
|
+
display: inline-flex
|
|
55
|
+
vertical-align: middle
|
|
56
|
+
|
|
57
|
+
.v-fab--app &
|
|
58
|
+
margin: 4px
|
|
59
|
+
|
|
60
|
+
.v-fab--absolute &
|
|
61
|
+
position: absolute
|
|
62
|
+
z-index: 4
|
|
63
|
+
|
|
64
|
+
.v-fab--offset.v-fab--top &
|
|
65
|
+
transform: translateY(-50%)
|
|
66
|
+
|
|
67
|
+
.v-fab--offset.v-fab--bottom &
|
|
68
|
+
transform: translateY(50%)
|
|
69
|
+
|
|
70
|
+
.v-fab--top &
|
|
71
|
+
top: 0
|
|
72
|
+
|
|
73
|
+
.v-fab--bottom &
|
|
74
|
+
bottom: 0
|
|
75
|
+
|
|
76
|
+
.v-fab--left &,
|
|
77
|
+
.v-fab--start &
|
|
78
|
+
left: 0
|
|
79
|
+
|
|
80
|
+
.v-fab--right &,
|
|
81
|
+
.v-fab--end &
|
|
82
|
+
right: 0
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
@use 'sass:math';
|
|
2
|
+
@use 'sass:map';
|
|
3
|
+
@use 'sass:meta';
|
|
4
|
+
@use '../../styles/settings';
|
|
5
|
+
@use '../../styles/tools';
|
|
6
|
+
@use './variables' as *;
|
|
7
|
+
|
|
8
|
+
@mixin fab-sizes ($map: $fab-sizes, $immediate: false) {
|
|
9
|
+
@each $sizeName, $multiplier in $fab-size-scales {
|
|
10
|
+
$size: map.get($map, 'font-size') + math.div(2 * $multiplier, 16);
|
|
11
|
+
$height: map.get($map, 'height') + (12px * $multiplier);
|
|
12
|
+
|
|
13
|
+
// .v-fab .v-btn--size-#{$sizeName} {
|
|
14
|
+
// --v-btn-size: #{$size};
|
|
15
|
+
// --v-btn-height: #{$height};
|
|
16
|
+
// }
|
|
17
|
+
|
|
18
|
+
.v-fab--bottom .v-btn--size-#{$sizeName} {
|
|
19
|
+
bottom: -1 * $height / 2;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
@use 'sass:math';
|
|
2
|
+
@use 'sass:map';
|
|
3
|
+
@use '../../styles/settings';
|
|
4
|
+
@use '../../styles/tools';
|
|
5
|
+
|
|
6
|
+
$fab-border-radius: map.get(settings.$rounded, 'circle') !default;
|
|
7
|
+
$fab-border-radius-multiplier: 0 !default; // 2.4 for MD3
|
|
8
|
+
$fab-height: 56px !default;
|
|
9
|
+
$fab-font-size: tools.map-deep-get(settings.$typography, 'button', 'size') !default;
|
|
10
|
+
$fab-font-weight: tools.map-deep-get(settings.$typography, 'button', 'weight') !default;
|
|
11
|
+
$fab-transition-duration: 0.2s !default;
|
|
12
|
+
$fab-transition-timing-function: settings.$standard-easing !default;
|
|
13
|
+
$fab-width-ratio: math.div(16, 9) !default;
|
|
14
|
+
$fab-padding-ratio: 2.25 !default;
|
|
15
|
+
|
|
16
|
+
$fab-size-scales: (
|
|
17
|
+
'x-small': -2,
|
|
18
|
+
'small': -1,
|
|
19
|
+
'default': 0,
|
|
20
|
+
'large': 2,
|
|
21
|
+
'x-large': 5
|
|
22
|
+
) !default;
|
|
23
|
+
|
|
24
|
+
$fab-sizes: () !default;
|
|
25
|
+
$fab-sizes: map.merge(
|
|
26
|
+
(
|
|
27
|
+
'height': $fab-height,
|
|
28
|
+
'font-size': $fab-font-size,
|
|
29
|
+
'width-ratio': $fab-width-ratio,
|
|
30
|
+
'padding-ratio': $fab-padding-ratio
|
|
31
|
+
),
|
|
32
|
+
$fab-sizes
|
|
33
|
+
);
|