@flux-ui/components 3.0.0-next.2 → 3.0.0-next.21
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/README.md +12 -40
- package/dist/component/FluxActions.vue.d.ts.map +1 -1
- package/dist/component/FluxDataTable.vue.d.ts +49 -17
- package/dist/component/FluxDataTable.vue.d.ts.map +1 -1
- package/dist/component/FluxDatePicker.vue.d.ts.map +1 -1
- package/dist/component/FluxFilter.vue.d.ts.map +1 -1
- package/dist/component/FluxFlyout.vue.d.ts.map +1 -1
- package/dist/component/FluxFormDateInput.vue.d.ts.map +1 -1
- package/dist/component/FluxFormDateRangeInput.vue.d.ts.map +1 -1
- package/dist/component/FluxFormDateTimeInput.vue.d.ts.map +1 -1
- package/dist/component/FluxFormInput.vue.d.ts +1 -0
- package/dist/component/FluxFormInput.vue.d.ts.map +1 -1
- package/dist/component/FluxFormInputGroup.vue.d.ts +1 -0
- package/dist/component/FluxFormInputGroup.vue.d.ts.map +1 -1
- package/dist/component/FluxFormTimeZonePicker.vue.d.ts.map +1 -1
- package/dist/component/FluxMenuItem.vue.d.ts.map +1 -1
- package/dist/component/FluxOverlayProvider.vue.d.ts +3 -0
- package/dist/component/FluxOverlayProvider.vue.d.ts.map +1 -0
- package/dist/component/FluxPagination.vue.d.ts +1 -1
- package/dist/component/FluxPagination.vue.d.ts.map +1 -1
- package/dist/component/FluxPaginationBar.vue.d.ts +1 -1
- package/dist/component/FluxPaginationBar.vue.d.ts.map +1 -1
- package/dist/component/FluxPaginationButton.vue.d.ts +30 -0
- package/dist/component/FluxPaginationButton.vue.d.ts.map +1 -0
- package/dist/component/FluxPrompt.vue.d.ts +2 -0
- package/dist/component/FluxPrompt.vue.d.ts.map +1 -1
- package/dist/component/FluxRoot.vue.d.ts.map +1 -1
- package/dist/component/FluxStatistic.vue.d.ts +3 -1
- package/dist/component/FluxStatistic.vue.d.ts.map +1 -1
- package/dist/component/FluxTabBar.vue.d.ts.map +1 -1
- package/dist/component/FluxTabBarItem.vue.d.ts.map +1 -1
- package/dist/component/FluxTable.vue.d.ts +14 -8
- package/dist/component/FluxTable.vue.d.ts.map +1 -1
- package/dist/component/FluxTooltip.vue.d.ts.map +1 -1
- package/dist/component/FluxTooltipProvider.vue.d.ts.map +1 -1
- package/dist/component/index.d.ts +1 -0
- package/dist/component/index.d.ts.map +1 -1
- package/dist/component/primitive/AnchorPopup.vue.d.ts.map +1 -1
- package/dist/component/primitive/SelectBase.vue.d.ts +2 -0
- package/dist/component/primitive/SelectBase.vue.d.ts.map +1 -1
- package/dist/composable/index.d.ts +1 -0
- package/dist/composable/index.d.ts.map +1 -1
- package/dist/composable/private/useFormSelect.d.ts +2 -2
- package/dist/composable/private/useFormSelect.d.ts.map +1 -1
- package/dist/composable/useFlyoutInjection.d.ts +1 -5
- package/dist/composable/useFlyoutInjection.d.ts.map +1 -1
- package/dist/composable/useTableInjection.d.ts +1 -6
- package/dist/composable/useTableInjection.d.ts.map +1 -1
- package/dist/composable/useTooltipInjection.d.ts +2 -0
- package/dist/composable/useTooltipInjection.d.ts.map +1 -0
- package/dist/data/di.d.ts +4 -0
- package/dist/data/di.d.ts.map +1 -1
- package/dist/data/i18n.d.ts +1 -1
- package/dist/data/store.d.ts +2 -2
- package/dist/data/store.d.ts.map +1 -1
- package/dist/index.css +5814 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14686 -0
- package/dist/index.js.map +1 -0
- package/dist/util/createDialogRenderer.d.ts +1 -1
- package/dist/util/createDialogRenderer.d.ts.map +1 -1
- package/package.json +21 -22
- package/src/component/FluxDataTable.vue +68 -16
- package/src/component/FluxDatePicker.vue +5 -1
- package/src/component/FluxFlyout.vue +2 -1
- package/src/component/FluxFormInput.vue +3 -1
- package/src/component/FluxFormInputGroup.vue +2 -0
- package/src/component/FluxFormSelect.vue +1 -1
- package/src/component/FluxFormTimeZonePicker.vue +5 -0
- package/src/component/FluxGallery.vue +2 -2
- package/src/component/FluxMenuItem.vue +1 -0
- package/src/component/FluxOverlayProvider.vue +39 -0
- package/src/component/FluxPagination.vue +16 -14
- package/src/component/FluxPaginationBar.vue +27 -38
- package/src/component/FluxPaginationButton.vue +39 -0
- package/src/component/FluxProgressBar.vue +1 -1
- package/src/component/FluxRoot.vue +3 -26
- package/src/component/FluxStatistic.vue +13 -2
- package/src/component/FluxTabBar.vue +21 -16
- package/src/component/FluxTable.vue +25 -4
- package/src/component/FluxTooltip.vue +2 -0
- package/src/component/FluxTooltipProvider.vue +7 -3
- package/src/component/index.ts +1 -0
- package/src/component/primitive/AnchorPopup.vue +5 -3
- package/src/composable/index.ts +1 -0
- package/src/composable/private/useFormSelect.ts +2 -2
- package/src/composable/useTooltipInjection.ts +8 -0
- package/src/css/base.scss +6 -3
- package/src/css/component/Action.module.scss +14 -14
- package/src/css/component/Avatar.module.scss +14 -14
- package/src/css/component/Badge.module.scss +14 -14
- package/src/css/component/Button.module.scss +39 -54
- package/src/css/component/Calendar.module.scss +12 -16
- package/src/css/component/Chip.module.scss +9 -19
- package/src/css/component/Color.module.scss +4 -4
- package/src/css/component/Comment.module.scss +15 -14
- package/src/css/component/DatePicker.module.scss +12 -23
- package/src/css/component/Divider.module.scss +2 -2
- package/src/css/component/DropZone.module.scss +27 -24
- package/src/css/component/Expandable.module.scss +9 -11
- package/src/css/component/Filter.module.scss +3 -5
- package/src/css/component/Form.module.scss +68 -49
- package/src/css/component/Gallery.module.scss +14 -6
- package/src/css/component/Icon.module.scss +76 -79
- package/src/css/component/Info.module.scss +1 -1
- package/src/css/component/Layout.module.scss +41 -45
- package/src/css/component/Legend.module.scss +2 -4
- package/src/css/component/Menu.module.scss +28 -49
- package/src/css/component/Notice.module.scss +45 -47
- package/src/css/component/Overlay.module.scss +56 -4
- package/src/css/component/Pagination.module.scss +70 -33
- package/src/css/component/Pane.module.scss +62 -67
- package/src/css/component/Placeholder.module.scss +4 -4
- package/src/css/component/Progress.module.scss +18 -9
- package/src/css/component/Remove.module.scss +4 -4
- package/src/css/component/SegmentedControl.module.scss +6 -6
- package/src/css/component/Snackbar.module.scss +20 -17
- package/src/css/component/Spinner.module.scss +2 -2
- package/src/css/component/Statistic.module.scss +25 -17
- package/src/css/component/Stepper.module.scss +12 -14
- package/src/css/component/Tab.module.scss +8 -7
- package/src/css/component/Table.module.scss +79 -29
- package/src/css/component/Timeline.module.scss +14 -18
- package/src/css/component/Toolbar.module.scss +9 -7
- package/src/css/component/Tooltip.module.scss +3 -2
- package/src/css/component/Transition.module.scss +1 -1
- package/src/css/component/Visual.module.scss +3 -3
- package/src/css/component/base/Pane.module.scss +25 -31
- package/src/css/component/primitive/CoordinatePicker.module.scss +3 -5
- package/src/css/component/primitive/Slider.module.scss +9 -14
- package/src/css/mixin/focus-ring.scss +2 -2
- package/src/css/typography.scss +3 -3
- package/src/css/variables.scss +178 -183
- package/src/data/di.ts +5 -0
- package/src/data/i18n.ts +1 -1
- package/src/data/iconRegistry.ts +1 -1
- package/src/data/store.ts +6 -4
- package/src/index.ts +1 -0
- package/src/util/createDialogRenderer.ts +33 -18
- package/dist/flux.css +0 -1
- package/dist/flux.js +0 -11402
- package/dist/flux.js.map +0 -1
|
@@ -6,27 +6,7 @@
|
|
|
6
6
|
<slot/>
|
|
7
7
|
</div>
|
|
8
8
|
|
|
9
|
-
<
|
|
10
|
-
<FluxAlert
|
|
11
|
-
v-for="alert of alerts"
|
|
12
|
-
:key="alert.id"
|
|
13
|
-
:alert="alert"/>
|
|
14
|
-
</FluxOverlay>
|
|
15
|
-
|
|
16
|
-
<FluxOverlay size="medium">
|
|
17
|
-
<FluxConfirm
|
|
18
|
-
v-for="confirm of confirms"
|
|
19
|
-
:key="confirm.id"
|
|
20
|
-
:confirm="confirm"/>
|
|
21
|
-
</FluxOverlay>
|
|
22
|
-
|
|
23
|
-
<FluxOverlay size="medium">
|
|
24
|
-
<FluxPrompt
|
|
25
|
-
v-for="prompt of prompts"
|
|
26
|
-
:key="prompt.id"
|
|
27
|
-
:prompt="prompt"/>
|
|
28
|
-
</FluxOverlay>
|
|
29
|
-
|
|
9
|
+
<FluxOverlayProvider/>
|
|
30
10
|
<FluxSnackbarProvider/>
|
|
31
11
|
<FluxTooltipProvider/>
|
|
32
12
|
</template>
|
|
@@ -36,10 +16,7 @@
|
|
|
36
16
|
setup>
|
|
37
17
|
import { watch } from 'vue';
|
|
38
18
|
import { useFluxStore } from '$flux/data';
|
|
39
|
-
import
|
|
40
|
-
import FluxConfirm from './FluxConfirm.vue';
|
|
41
|
-
import FluxPrompt from './FluxPrompt.vue';
|
|
42
|
-
import FluxOverlay from './FluxOverlay.vue';
|
|
19
|
+
import FluxOverlayProvider from './FluxOverlayProvider.vue';
|
|
43
20
|
import FluxSnackbarProvider from './FluxSnackbarProvider.vue';
|
|
44
21
|
import FluxTooltipProvider from './FluxTooltipProvider.vue';
|
|
45
22
|
import $style from '$flux/css/component/Root.module.scss';
|
|
@@ -52,7 +29,7 @@
|
|
|
52
29
|
default(): any;
|
|
53
30
|
}>();
|
|
54
31
|
|
|
55
|
-
const {
|
|
32
|
+
const {inertMain} = useFluxStore();
|
|
56
33
|
|
|
57
34
|
watch(inertMain, (inert, _, onCleanup): void => {
|
|
58
35
|
if (!inert) {
|
|
@@ -10,12 +10,21 @@
|
|
|
10
10
|
color === 'success' && $style.isSuccess,
|
|
11
11
|
color === 'warning' && $style.isWarning
|
|
12
12
|
)">
|
|
13
|
-
<div
|
|
13
|
+
<div
|
|
14
|
+
v-if="icon"
|
|
15
|
+
:class="$style.statisticIcon">
|
|
14
16
|
<FluxIcon
|
|
15
17
|
:name="icon"
|
|
16
18
|
:size="24"/>
|
|
17
19
|
</div>
|
|
18
20
|
|
|
21
|
+
<div v-else-if="imageSrc">
|
|
22
|
+
<img
|
|
23
|
+
:class="$style.statisticImage"
|
|
24
|
+
:src="imageSrc"
|
|
25
|
+
:alt="imageAlt"/>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
19
28
|
<div :class="$style.statisticData">
|
|
20
29
|
<span>{{ label }}</span>
|
|
21
30
|
<strong>{{ value }}</strong>
|
|
@@ -61,7 +70,9 @@
|
|
|
61
70
|
readonly changeValue?: string;
|
|
62
71
|
readonly color?: FluxColor;
|
|
63
72
|
readonly direction?: FluxDirection;
|
|
64
|
-
readonly icon
|
|
73
|
+
readonly icon?: FluxIconName;
|
|
74
|
+
readonly imageSrc?: string;
|
|
75
|
+
readonly imageAlt?: string;
|
|
65
76
|
readonly label: string;
|
|
66
77
|
readonly value: string;
|
|
67
78
|
}>();
|
|
@@ -3,14 +3,16 @@
|
|
|
3
3
|
:class="$style.tabBar"
|
|
4
4
|
role="tablist"
|
|
5
5
|
aria-orientation="horizontal">
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
<FluxFadeTransition>
|
|
7
|
+
<button
|
|
8
|
+
v-if="isStartArrowVisible"
|
|
9
|
+
:class="$style.tabBarArrowStart"
|
|
10
|
+
tabindex="-1"
|
|
11
|
+
type="button"
|
|
12
|
+
@click="scrollToStart">
|
|
13
|
+
<FluxIcon name="angle-left"/>
|
|
14
|
+
</button>
|
|
15
|
+
</FluxFadeTransition>
|
|
14
16
|
|
|
15
17
|
<div
|
|
16
18
|
ref="tabBar"
|
|
@@ -22,14 +24,16 @@
|
|
|
22
24
|
<slot/>
|
|
23
25
|
</div>
|
|
24
26
|
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
<FluxFadeTransition>
|
|
28
|
+
<button
|
|
29
|
+
v-if="isEndArrowVisible"
|
|
30
|
+
:class="$style.tabBarArrowEnd"
|
|
31
|
+
tabindex="-1"
|
|
32
|
+
type="button"
|
|
33
|
+
@click="scrollToEnd">
|
|
34
|
+
<FluxIcon name="angle-right"/>
|
|
35
|
+
</button>
|
|
36
|
+
</FluxFadeTransition>
|
|
33
37
|
</nav>
|
|
34
38
|
</template>
|
|
35
39
|
|
|
@@ -39,6 +43,7 @@
|
|
|
39
43
|
import { unrefTemplateElement, useEventListener, useMutationObserver } from '@flux-ui/internals';
|
|
40
44
|
import { clsx } from 'clsx';
|
|
41
45
|
import { onMounted, ref, useTemplateRef } from 'vue';
|
|
46
|
+
import { FluxFadeTransition } from '$flux/transition';
|
|
42
47
|
import FluxIcon from './FluxIcon.vue';
|
|
43
48
|
import $style from '$flux/css/component/Tab.module.scss';
|
|
44
49
|
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div :class="$style.table">
|
|
3
3
|
<table :class="$style.tableBase">
|
|
4
|
+
<slot name="colgroups"/>
|
|
5
|
+
|
|
4
6
|
<thead v-if="slots.header">
|
|
5
7
|
<slot name="header"/>
|
|
6
8
|
</thead>
|
|
7
9
|
|
|
8
10
|
<tbody v-if="slots.default">
|
|
9
11
|
<slot/>
|
|
12
|
+
|
|
13
|
+
<FluxTableRow
|
|
14
|
+
v-if="fillColumns"
|
|
15
|
+
:class="$style.tableFill">
|
|
16
|
+
<FluxTableCell v-for="_ of fillColumns"/>
|
|
17
|
+
</FluxTableRow>
|
|
10
18
|
</tbody>
|
|
11
19
|
|
|
12
20
|
<tfoot v-if="slots.footer">
|
|
@@ -25,15 +33,25 @@
|
|
|
25
33
|
:class="$style.tableLoader">
|
|
26
34
|
<FluxSpinner/>
|
|
27
35
|
</div>
|
|
36
|
+
|
|
37
|
+
<FluxPaneBody
|
|
38
|
+
v-if="slots.pagination"
|
|
39
|
+
:class="$style.tablePagination">
|
|
40
|
+
<slot name="pagination"/>
|
|
41
|
+
</FluxPaneBody>
|
|
28
42
|
</div>
|
|
29
43
|
</template>
|
|
30
44
|
|
|
31
45
|
<script
|
|
32
46
|
lang="ts"
|
|
33
47
|
setup>
|
|
48
|
+
import type { VNode } from 'vue';
|
|
34
49
|
import { provide } from 'vue';
|
|
35
50
|
import { FluxTableInjectionKey } from '$flux/data';
|
|
51
|
+
import FluxPaneBody from './FluxPaneBody.vue';
|
|
36
52
|
import FluxSpinner from './FluxSpinner.vue';
|
|
53
|
+
import FluxTableCell from './FluxTableCell.vue';
|
|
54
|
+
import FluxTableRow from './FluxTableRow.vue';
|
|
37
55
|
import $style from '$flux/css/component/Table.module.scss';
|
|
38
56
|
|
|
39
57
|
const {
|
|
@@ -45,6 +63,7 @@
|
|
|
45
63
|
isStriped = false
|
|
46
64
|
} = defineProps<{
|
|
47
65
|
readonly captionSide?: 'top' | 'bottom';
|
|
66
|
+
readonly fillColumns?: number;
|
|
48
67
|
readonly isBordered?: boolean;
|
|
49
68
|
readonly isHoverable?: boolean;
|
|
50
69
|
readonly isLoading?: boolean;
|
|
@@ -53,10 +72,12 @@
|
|
|
53
72
|
}>();
|
|
54
73
|
|
|
55
74
|
const slots = defineSlots<{
|
|
56
|
-
default?():
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
75
|
+
default?(): VNode;
|
|
76
|
+
colgroups?(): VNode;
|
|
77
|
+
caption?(): VNode;
|
|
78
|
+
footer?(): VNode;
|
|
79
|
+
header?(): VNode;
|
|
80
|
+
pagination?(): VNode;
|
|
60
81
|
}>();
|
|
61
82
|
|
|
62
83
|
provide(FluxTableInjectionKey, {
|
|
@@ -20,12 +20,14 @@
|
|
|
20
20
|
const elm = instance.proxy!.$el;
|
|
21
21
|
elm.addEventListener('mouseenter', onHover, {passive: true});
|
|
22
22
|
elm.addEventListener('mouseleave', onLeave, {passive: true});
|
|
23
|
+
window.addEventListener('scroll', onLeave, {capture: true});
|
|
23
24
|
});
|
|
24
25
|
|
|
25
26
|
onUnmounted(() => {
|
|
26
27
|
const elm = instance.proxy!.$el;
|
|
27
28
|
elm.removeEventListener('mouseenter', onHover);
|
|
28
29
|
elm.removeEventListener('mouseleave', onLeave);
|
|
30
|
+
window.removeEventListener('scroll', onLeave);
|
|
29
31
|
onLeave();
|
|
30
32
|
});
|
|
31
33
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { unrefTemplateElement } from '@flux-ui/internals';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
|
-
import { computed, defineComponent, h, ref, unref, watch } from 'vue';
|
|
5
|
-
import { useFluxStore } from '$flux/data';
|
|
4
|
+
import { computed, defineComponent, h, provide, ref, unref, watch } from 'vue';
|
|
5
|
+
import { FluxTooltipInjectionKey, useFluxStore } from '$flux/data';
|
|
6
6
|
import { FluxTooltipTransition } from '$flux/transition';
|
|
7
7
|
import $style from '$flux/css/component/Tooltip.module.scss';
|
|
8
8
|
|
|
@@ -60,7 +60,11 @@
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
provide(FluxTooltipInjectionKey, {
|
|
64
|
+
calculate
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
watch(content, () => requestAnimationFrame(calculate));
|
|
64
68
|
|
|
65
69
|
return () => h(FluxTooltipTransition, {}, {
|
|
66
70
|
default: () => {
|
package/src/component/index.ts
CHANGED
|
@@ -84,6 +84,7 @@ export { default as FluxMenuTitle } from './FluxMenuTitle.vue';
|
|
|
84
84
|
export { default as FluxNotice } from './FluxNotice.vue';
|
|
85
85
|
export { default as FluxNoticeStack } from './FluxNoticeStack.vue';
|
|
86
86
|
export { default as FluxOverlay } from './FluxOverlay.vue';
|
|
87
|
+
export { default as FluxOverlayProvider } from './FluxOverlayProvider.vue';
|
|
87
88
|
export { default as FluxPagination } from './FluxPagination.vue';
|
|
88
89
|
export { default as FluxPaginationBar } from './FluxPaginationBar.vue';
|
|
89
90
|
export { default as FluxPane } from './FluxPane.vue';
|
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
px = x + width / 2 - popupWidth / 2;
|
|
151
151
|
py = y + height + margin;
|
|
152
152
|
|
|
153
|
-
if (py + popupHeight > innerHeight) {
|
|
153
|
+
if (py + popupHeight + margin > innerHeight) {
|
|
154
154
|
py = y - popupHeight - margin;
|
|
155
155
|
}
|
|
156
156
|
}
|
|
@@ -188,7 +188,9 @@
|
|
|
188
188
|
|
|
189
189
|
anchorRef.value = isHtmlElement(anchor) ? anchor : anchor.$el;
|
|
190
190
|
|
|
191
|
-
requestAnimationFrame(
|
|
192
|
-
|
|
191
|
+
requestAnimationFrame(() => {
|
|
192
|
+
requestAnimationFrame(resize);
|
|
193
|
+
requestAnimationFrame(reposition);
|
|
194
|
+
});
|
|
193
195
|
});
|
|
194
196
|
</script>
|
package/src/composable/index.ts
CHANGED
|
@@ -7,3 +7,4 @@ export { default as useFilterInjection } from './useFilterInjection';
|
|
|
7
7
|
export { default as useFlyoutInjection } from './useFlyoutInjection';
|
|
8
8
|
export { default as useFormFieldInjection } from './useFormFieldInjection';
|
|
9
9
|
export { default as useTableInjection } from './useTableInjection';
|
|
10
|
+
export { default as useTooltipInjection } from './useTooltipInjection';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { FluxFormSelectEntry, FluxFormSelectOption, FluxFormSelectOptions, FluxFormSelectValue } from '@flux-ui/types';
|
|
2
|
-
import type {
|
|
2
|
+
import type { Ref } from 'vue';
|
|
3
3
|
import { computed, unref } from 'vue';
|
|
4
4
|
import { isFluxFormSelectGroup, isFluxFormSelectOption } from '$flux/data';
|
|
5
5
|
|
|
6
|
-
export default function (modelValue: Ref<FluxFormSelectValue>, isMultiple: boolean, options:
|
|
6
|
+
export default function (modelValue: Ref<FluxFormSelectValue>, isMultiple: boolean, options: Ref<FluxFormSelectEntry[]>, searchQuery?: Ref<string>) {
|
|
7
7
|
const values = computed(() => {
|
|
8
8
|
const model = unref(modelValue);
|
|
9
9
|
return Array.isArray(model) ? model : [model];
|
package/src/css/base.scss
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
@use 'variables';
|
|
2
2
|
|
|
3
3
|
@layer flux-base {
|
|
4
|
-
:root
|
|
4
|
+
:root {
|
|
5
5
|
@include variables.animation;
|
|
6
|
+
@include variables.defaults;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
:root, [light] {
|
|
6
10
|
@include variables.color-light;
|
|
7
|
-
@include variables.default-light;
|
|
8
11
|
@include variables.shadow-light;
|
|
9
12
|
}
|
|
10
13
|
|
|
11
14
|
[dark] {
|
|
15
|
+
@include variables.defaults-dark;
|
|
12
16
|
@include variables.color-dark;
|
|
13
|
-
@include variables.default-dark;
|
|
14
17
|
@include variables.shadow-dark;
|
|
15
18
|
}
|
|
16
19
|
|
|
@@ -1,25 +1,22 @@
|
|
|
1
1
|
@use '$flux/css/mixin';
|
|
2
2
|
|
|
3
|
-
@value button, buttonIcon, buttonLabel from './base/Button.module.scss';
|
|
4
|
-
@value basePaneStructure from './base/Pane.module.scss';
|
|
5
|
-
|
|
6
3
|
.action {
|
|
7
|
-
composes: button;
|
|
4
|
+
composes: button from './base/Button.module.scss';
|
|
8
5
|
|
|
9
6
|
height: 30px;
|
|
10
7
|
width: 30px;
|
|
11
8
|
padding-left: 6px;
|
|
12
9
|
padding-right: 6px;
|
|
13
10
|
border: 0;
|
|
14
|
-
border-radius:
|
|
11
|
+
border-radius: var(--radius);
|
|
15
12
|
box-shadow: none;
|
|
16
13
|
|
|
17
14
|
@include mixin.hover {
|
|
18
|
-
background:
|
|
15
|
+
background: var(--gray-2);
|
|
19
16
|
}
|
|
20
17
|
|
|
21
18
|
&:active {
|
|
22
|
-
background:
|
|
19
|
+
background: var(--gray-3);
|
|
23
20
|
}
|
|
24
21
|
|
|
25
22
|
.spinner {
|
|
@@ -28,18 +25,18 @@
|
|
|
28
25
|
}
|
|
29
26
|
|
|
30
27
|
.actionIcon {
|
|
31
|
-
composes: buttonIcon;
|
|
28
|
+
composes: buttonIcon from './base/Button.module.scss';
|
|
32
29
|
|
|
33
30
|
color: var(--foreground);
|
|
34
31
|
font-size: 18px;
|
|
35
32
|
}
|
|
36
33
|
|
|
37
34
|
.action.isDestructive .actionIcon {
|
|
38
|
-
color:
|
|
35
|
+
color: var(--danger-7);
|
|
39
36
|
}
|
|
40
37
|
|
|
41
38
|
.actionLabel {
|
|
42
|
-
composes: buttonLabel;
|
|
39
|
+
composes: buttonLabel from './base/Button.module.scss';
|
|
43
40
|
|
|
44
41
|
color: var(--foreground);
|
|
45
42
|
}
|
|
@@ -59,10 +56,10 @@
|
|
|
59
56
|
}
|
|
60
57
|
}
|
|
61
58
|
|
|
62
|
-
|
|
59
|
+
.basePaneStructure > .actionBar {
|
|
63
60
|
padding: 15px 21px;
|
|
64
|
-
background:
|
|
65
|
-
border: 1px solid
|
|
61
|
+
background: var(--gray-1);
|
|
62
|
+
border: 1px solid var(--gray-2);
|
|
66
63
|
border-left: 0;
|
|
67
64
|
border-right: 0;
|
|
68
65
|
|
|
@@ -102,6 +99,9 @@
|
|
|
102
99
|
|
|
103
100
|
.actionPaneBody {
|
|
104
101
|
position: relative;
|
|
105
|
-
padding: 0;
|
|
106
102
|
text-wrap: pretty;
|
|
103
|
+
|
|
104
|
+
&:local(.paneBody) {
|
|
105
|
+
padding: 0;
|
|
106
|
+
}
|
|
107
107
|
}
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
display: block;
|
|
15
15
|
height: inherit;
|
|
16
16
|
width: inherit;
|
|
17
|
-
background:
|
|
17
|
+
background: var(--gray-1);
|
|
18
18
|
border-radius: inherit;
|
|
19
|
-
box-shadow: inset 0 0 0 1px
|
|
19
|
+
box-shadow: inset 0 0 0 1px var(--gray-2);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
.avatarFallback {
|
|
@@ -41,18 +41,18 @@
|
|
|
41
41
|
.avatarFallbackColorized {
|
|
42
42
|
composes: avatarFallback;
|
|
43
43
|
|
|
44
|
-
background: color-mix(in srgb, var(--color),
|
|
44
|
+
background: color-mix(in srgb, var(--color), var(--gray-0) 80%);
|
|
45
45
|
color: var(--color);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
[dark] .avatarFallbackColorized {
|
|
49
|
-
background: color-mix(in srgb, var(--color),
|
|
49
|
+
background: color-mix(in srgb, var(--color), var(--gray-0) 70%);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
.avatarFallbackNeutral {
|
|
53
53
|
composes: avatarFallback;
|
|
54
54
|
|
|
55
|
-
background:
|
|
55
|
+
background: var(--gray-2);
|
|
56
56
|
color: var(--foreground-secondary);
|
|
57
57
|
}
|
|
58
58
|
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
inset: 0;
|
|
63
63
|
align-items: center;
|
|
64
64
|
justify-content: center;
|
|
65
|
-
background:
|
|
66
|
-
box-shadow: inset 0 0 0 1px
|
|
65
|
+
background: oklch(from var(--gray-1) l c h / .84);
|
|
66
|
+
box-shadow: inset 0 0 0 1px var(--gray-2);
|
|
67
67
|
border-radius: inherit;
|
|
68
68
|
backdrop-filter: blur(3px) saturate(180%);
|
|
69
69
|
|
|
@@ -86,37 +86,37 @@
|
|
|
86
86
|
.avatarStatusGray {
|
|
87
87
|
composes: avatarStatus;
|
|
88
88
|
|
|
89
|
-
background:
|
|
89
|
+
background: var(--gray-6);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
.avatarStatusPrimary {
|
|
93
93
|
composes: avatarStatus;
|
|
94
94
|
|
|
95
|
-
background:
|
|
95
|
+
background: var(--primary-7);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
.avatarStatusDanger {
|
|
99
99
|
composes: avatarStatus;
|
|
100
100
|
|
|
101
|
-
background:
|
|
101
|
+
background: var(--danger-7);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
.avatarStatusInfo {
|
|
105
105
|
composes: avatarStatus;
|
|
106
106
|
|
|
107
|
-
background:
|
|
107
|
+
background: var(--info-7);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
.avatarStatusSuccess {
|
|
111
111
|
composes: avatarStatus;
|
|
112
112
|
|
|
113
|
-
background:
|
|
113
|
+
background: var(--success-7);
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
.avatarStatusWarning {
|
|
117
117
|
composes: avatarStatus;
|
|
118
118
|
|
|
119
|
-
background:
|
|
119
|
+
background: var(--warning-7);
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
.avatarClickable {
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
@include mixin.focus-ring(2px);
|
|
155
155
|
|
|
156
156
|
@include mixin.hover {
|
|
157
|
-
background:
|
|
157
|
+
background: var(--gray-2);
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
padding-right: 9px;
|
|
11
11
|
align-items: center;
|
|
12
12
|
gap: 6px;
|
|
13
|
-
background:
|
|
14
|
-
border: 1px solid
|
|
13
|
+
background: var(--gray-0);
|
|
14
|
+
border: 1px solid var(--gray-2);
|
|
15
15
|
border-radius: 99px;
|
|
16
16
|
color: var(--foreground-prominent);
|
|
17
17
|
font-size: 13px;
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
transition: background 180ms var(--swift-out);
|
|
25
25
|
|
|
26
26
|
@include mixin.hover {
|
|
27
|
-
background:
|
|
27
|
+
background: var(--gray-1);
|
|
28
28
|
color: var(--foreground-prominent);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
cursor: pointer;
|
|
50
50
|
|
|
51
51
|
@include mixin.hover {
|
|
52
|
-
background:
|
|
52
|
+
background: var(--gray-2);
|
|
53
53
|
color: var(--foreground);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
&:active {
|
|
57
|
-
background:
|
|
57
|
+
background: var(--gray-3);
|
|
58
58
|
color: var(--foreground);
|
|
59
59
|
}
|
|
60
60
|
|
|
@@ -91,52 +91,52 @@
|
|
|
91
91
|
.badgeGray {
|
|
92
92
|
composes: badge;
|
|
93
93
|
|
|
94
|
-
--color:
|
|
94
|
+
--color: var(--gray-8);
|
|
95
95
|
|
|
96
96
|
.badgeLabel {
|
|
97
97
|
color: var(--foreground-prominent);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
.spinner {
|
|
101
|
-
--value:
|
|
101
|
+
--value: var(--primary-7);
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
.badgePrimary {
|
|
106
106
|
composes: badge;
|
|
107
107
|
|
|
108
|
-
--color:
|
|
108
|
+
--color: var(--primary-7);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
.badgeDanger {
|
|
112
112
|
composes: badge;
|
|
113
113
|
|
|
114
|
-
--color:
|
|
114
|
+
--color: var(--danger-7);
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
.badgeInfo {
|
|
118
118
|
composes: badge;
|
|
119
119
|
|
|
120
|
-
--color:
|
|
120
|
+
--color: var(--info-7);
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
.badgeSuccess {
|
|
124
124
|
composes: badge;
|
|
125
125
|
|
|
126
|
-
--color:
|
|
126
|
+
--color: var(--success-7);
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
.badgeWarning {
|
|
130
130
|
composes: badge;
|
|
131
131
|
|
|
132
|
-
--color:
|
|
132
|
+
--color: var(--warning-7);
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
.tag {
|
|
136
136
|
composes: badge;
|
|
137
137
|
|
|
138
|
-
background:
|
|
139
|
-
border-color:
|
|
138
|
+
background: var(--gray-1);
|
|
139
|
+
border-color: var(--gray-2);
|
|
140
140
|
border-radius: calc(var(--radius) / 2);
|
|
141
141
|
font-weight: 400;
|
|
142
142
|
}
|