@flux-ui/components 3.0.0-next.73 → 3.0.0-next.75
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/FluxKanbanColumn.vue.d.ts +1 -1
- package/dist/component/FluxSegmentedControl.vue.d.ts +18 -8
- package/dist/component/FluxSegmentedControlItem.vue.d.ts +20 -0
- package/dist/component/FluxSpacing.vue.d.ts +2 -1
- package/dist/component/index.d.ts +1 -4
- package/dist/component/primitive/FilterMenuRenderer.d.ts +3 -3
- package/dist/composable/index.d.ts +1 -0
- package/dist/composable/useSegmentedControlInjection.d.ts +2 -0
- package/dist/data/di.d.ts +10 -1
- package/dist/index.css +57 -158
- package/dist/index.js +321 -405
- package/dist/index.js.map +1 -1
- package/package.json +9 -9
- package/src/component/FluxBoxedIcon.vue +1 -1
- package/src/component/FluxCalendar.vue +6 -6
- package/src/component/FluxColorPicker.vue +5 -5
- package/src/component/FluxDropZone.vue +0 -1
- package/src/component/FluxDynamicView.vue +2 -2
- package/src/component/FluxExpandableGroup.vue +0 -1
- package/src/component/FluxFilterBase.vue +11 -11
- package/src/component/FluxFormFieldAddition.vue +2 -2
- package/src/component/FluxInfo.vue +2 -2
- package/src/component/FluxInfoStack.vue +2 -2
- package/src/component/FluxKanbanColumn.vue +2 -4
- package/src/component/FluxLayerPane.vue +1 -1
- package/src/component/FluxPagination.vue +4 -4
- package/src/component/FluxSegmentedControl.vue +64 -67
- package/src/component/FluxSegmentedControlItem.vue +98 -0
- package/src/component/FluxSpacing.vue +5 -1
- package/src/component/FluxSplitButton.vue +2 -2
- package/src/component/FluxTable.vue +3 -1
- package/src/component/FluxToolbar.vue +1 -1
- package/src/component/index.ts +1 -4
- package/src/component/primitive/FilterBadge.vue +11 -2
- package/src/component/primitive/FilterMenuRenderer.ts +4 -4
- package/src/composable/index.ts +1 -0
- package/src/composable/useSegmentedControlInjection.ts +13 -0
- package/src/css/component/Form.module.scss +2 -2
- package/src/css/component/SegmentedControl.module.scss +51 -23
- package/src/css/component/Spinner.module.scss +1 -0
- package/src/css/component/Visual.module.scss +1 -0
- package/src/css/mixin/tree-node.scss +3 -3
- package/src/data/di.ts +13 -1
- package/src/data/iconRegistry.ts +1 -1
- package/src/util/createDialogRenderer.ts +1 -1
- package/dist/component/FluxLegend.vue.d.ts +0 -8
- package/dist/component/FluxPercentageBar.vue.d.ts +0 -8
- package/dist/component/FluxSegmentedView.vue.d.ts +0 -9
- package/dist/component/FluxStatistic.vue.d.ts +0 -17
- package/src/component/FluxLegend.vue +0 -27
- package/src/component/FluxPercentageBar.vue +0 -47
- package/src/component/FluxSegmentedView.vue +0 -15
- package/src/component/FluxStatistic.vue +0 -82
- package/src/css/component/Legend.module.scss +0 -29
- package/src/css/component/PercentageBar.module.scss +0 -31
- package/src/css/component/Statistic.module.scss +0 -91
|
@@ -2,7 +2,7 @@ import { FluxIconName } from '@flux-ui/types';
|
|
|
2
2
|
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
3
|
type __VLS_Props = {
|
|
4
4
|
readonly columnId: string | number;
|
|
5
|
-
readonly count
|
|
5
|
+
readonly count?: string | number;
|
|
6
6
|
readonly disabled?: boolean;
|
|
7
7
|
readonly icon?: FluxIconName;
|
|
8
8
|
readonly label: string;
|
|
@@ -1,17 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
1
|
+
import { FluxSize } from '@flux-ui/types';
|
|
2
|
+
import { VNode, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
import { FluxSegmentedControlValue } from '../data';
|
|
3
4
|
type __VLS_Props = {
|
|
4
5
|
readonly ariaLabel?: string;
|
|
5
6
|
readonly isFill?: boolean;
|
|
6
|
-
readonly
|
|
7
|
+
readonly size?: FluxSize;
|
|
8
|
+
};
|
|
9
|
+
type __VLS_Slots = {
|
|
10
|
+
default(): VNode[];
|
|
7
11
|
};
|
|
8
12
|
type __VLS_ModelProps = {
|
|
9
|
-
modelValue?:
|
|
13
|
+
modelValue?: FluxSegmentedControlValue;
|
|
10
14
|
};
|
|
11
15
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
12
|
-
declare const
|
|
13
|
-
"update:modelValue": (value:
|
|
16
|
+
declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
17
|
+
"update:modelValue": (value: FluxSegmentedControlValue) => any;
|
|
14
18
|
}, string, PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
15
|
-
"onUpdate:modelValue"?: (value:
|
|
16
|
-
}>, {}, {}, {}, {}, string, ComponentProvideOptions,
|
|
19
|
+
"onUpdate:modelValue"?: (value: FluxSegmentedControlValue) => any;
|
|
20
|
+
}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
|
|
21
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
17
22
|
export default _default;
|
|
23
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
24
|
+
new (): {
|
|
25
|
+
$slots: S;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FluxIconName } from '@flux-ui/types';
|
|
2
|
+
import { FluxSegmentedControlValue } from '../data';
|
|
3
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
readonly value: FluxSegmentedControlValue;
|
|
6
|
+
readonly disabled?: boolean;
|
|
7
|
+
readonly icon?: FluxIconName;
|
|
8
|
+
readonly label?: string;
|
|
9
|
+
};
|
|
10
|
+
type __VLS_Slots = {
|
|
11
|
+
default(): any;
|
|
12
|
+
};
|
|
13
|
+
declare const __VLS_base: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
15
|
+
export default _default;
|
|
16
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
17
|
+
new (): {
|
|
18
|
+
$slots: S;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
2
2
|
declare const spacings: readonly [0, 3, 6, 9, 12, 15, 18, 24, 30, 36, 42, 48, 54, 60, 72, 84, 90, 120];
|
|
3
|
+
type Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] extends N ? Acc[number] : Enumerate<N, [...Acc, Acc['length']]>;
|
|
3
4
|
type __VLS_Props = {
|
|
4
|
-
readonly size:
|
|
5
|
+
readonly size: Enumerate<typeof spacings['length']>;
|
|
5
6
|
};
|
|
6
7
|
declare const _default: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
7
8
|
export default _default;
|
|
@@ -92,7 +92,6 @@ export { default as FluxItemMedia } from './FluxItemMedia.vue';
|
|
|
92
92
|
export { default as FluxItemStack } from './FluxItemStack.vue';
|
|
93
93
|
export { default as FluxLayerPane } from './FluxLayerPane.vue';
|
|
94
94
|
export { default as FluxLayerPaneSecondary } from './FluxLayerPaneSecondary.vue';
|
|
95
|
-
export { default as FluxLegend } from './FluxLegend.vue';
|
|
96
95
|
export { default as FluxLink } from './FluxLink.vue';
|
|
97
96
|
export { default as FluxMenu } from './FluxMenu.vue';
|
|
98
97
|
export { default as FluxMenuCollapsible } from './FluxMenuCollapsible.vue';
|
|
@@ -115,7 +114,6 @@ export { default as FluxPaneGroup } from './FluxPaneGroup.vue';
|
|
|
115
114
|
export { default as FluxPaneHeader } from './FluxPaneHeader.vue';
|
|
116
115
|
export { default as FluxPaneIllustration } from './FluxPaneIllustration.vue';
|
|
117
116
|
export { default as FluxPaneMedia } from './FluxPaneMedia.vue';
|
|
118
|
-
export { default as FluxPercentageBar } from './FluxPercentageBar.vue';
|
|
119
117
|
export { default as FluxPersona } from './FluxPersona.vue';
|
|
120
118
|
export { default as FluxPlaceholder } from './FluxPlaceholder.vue';
|
|
121
119
|
export { default as FluxPressable } from './FluxPressable.vue';
|
|
@@ -130,7 +128,7 @@ export { default as FluxScroller } from './FluxScroller.vue';
|
|
|
130
128
|
export { default as FluxSecondaryButton } from './FluxSecondaryButton.vue';
|
|
131
129
|
export { default as FluxSecondaryLinkButton } from './FluxSecondaryLinkButton.vue';
|
|
132
130
|
export { default as FluxSegmentedControl } from './FluxSegmentedControl.vue';
|
|
133
|
-
export { default as
|
|
131
|
+
export { default as FluxSegmentedControlItem } from './FluxSegmentedControlItem.vue';
|
|
134
132
|
export { default as FluxSeparator } from './FluxSeparator.vue';
|
|
135
133
|
export { default as FluxSlideOver } from './FluxSlideOver.vue';
|
|
136
134
|
export { default as FluxSnackbar } from './FluxSnackbar.vue';
|
|
@@ -141,7 +139,6 @@ export { default as FluxSpinner } from './FluxSpinner.vue';
|
|
|
141
139
|
export { default as FluxSplitButton } from './FluxSplitButton.vue';
|
|
142
140
|
export { default as FluxSplitView } from './FluxSplitView.vue';
|
|
143
141
|
export { default as FluxSplitViewPane } from './FluxSplitViewPane.vue';
|
|
144
|
-
export { default as FluxStatistic } from './FluxStatistic.vue';
|
|
145
142
|
export { default as FluxStepper } from './FluxStepper.vue';
|
|
146
143
|
export { default as FluxStepperStep } from './FluxStepperStep.vue';
|
|
147
144
|
export { default as FluxStepperSteps } from './FluxStepperSteps.vue';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VNode, DefineComponent, ExtractPropTypes, RendererNode, RendererElement, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
1
|
+
import { PropType, VNode, DefineComponent, ExtractPropTypes, RendererNode, RendererElement, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
2
2
|
export declare const FilterMenuRenderer: DefineComponent<ExtractPropTypes<{
|
|
3
3
|
menuItems: {
|
|
4
4
|
required: true;
|
|
@@ -6,7 +6,7 @@ export declare const FilterMenuRenderer: DefineComponent<ExtractPropTypes<{
|
|
|
6
6
|
};
|
|
7
7
|
navigate: {
|
|
8
8
|
required: true;
|
|
9
|
-
type:
|
|
9
|
+
type: PropType<(name: string) => void>;
|
|
10
10
|
};
|
|
11
11
|
}>, () => VNode< RendererNode, RendererElement, {
|
|
12
12
|
[key: string]: any;
|
|
@@ -17,6 +17,6 @@ export declare const FilterMenuRenderer: DefineComponent<ExtractPropTypes<{
|
|
|
17
17
|
};
|
|
18
18
|
navigate: {
|
|
19
19
|
required: true;
|
|
20
|
-
type:
|
|
20
|
+
type: PropType<(name: string) => void>;
|
|
21
21
|
};
|
|
22
22
|
}>> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
|
|
@@ -8,6 +8,7 @@ export { default as useFilterInjection } from './useFilterInjection';
|
|
|
8
8
|
export { default as useFlyoutInjection } from './useFlyoutInjection';
|
|
9
9
|
export { default as useFormFieldInjection } from './useFormFieldInjection';
|
|
10
10
|
export { default as useKanbanInjection } from './useKanbanInjection';
|
|
11
|
+
export { default as useSegmentedControlInjection } from './useSegmentedControlInjection';
|
|
11
12
|
export { default as useTabBarInjection } from './useTabBarInjection';
|
|
12
13
|
export { default as useTableInjection } from './useTableInjection';
|
|
13
14
|
export { default as useTooltipInjection } from './useTooltipInjection';
|
package/dist/data/di.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FluxFilterDefinition, FluxFilterState, FluxFilterValue } from '@flux-ui/types';
|
|
1
|
+
import { FluxFilterDefinition, FluxFilterState, FluxFilterValue, FluxSize } from '@flux-ui/types';
|
|
2
2
|
import { DateTime } from 'luxon';
|
|
3
3
|
import { ComponentInternalInstance, ComputedRef, InjectionKey, Ref, VNode } from 'vue';
|
|
4
4
|
export declare const FluxAdaptiveGroupInjectionKey: InjectionKey<FluxAdaptiveGroupInjection>;
|
|
@@ -9,6 +9,7 @@ export declare const FluxExpandableGroupInjectionKey: InjectionKey<FluxExpandabl
|
|
|
9
9
|
export declare const FluxFlyoutInjectionKey: InjectionKey<FluxFlyoutInjection>;
|
|
10
10
|
export declare const FluxFilterInjectionKey: InjectionKey<FluxFilterInjection>;
|
|
11
11
|
export declare const FluxFormFieldInjectionKey: InjectionKey<FluxFormFieldInjection>;
|
|
12
|
+
export declare const FluxSegmentedControlInjectionKey: InjectionKey<FluxSegmentedControlInjection>;
|
|
12
13
|
export declare const FluxSplitViewInjectionKey: InjectionKey<FluxSplitViewInjection>;
|
|
13
14
|
export declare const FluxTabBarInjectionKey: InjectionKey<FluxTabBarInjection>;
|
|
14
15
|
export declare const FluxTableInjectionKey: InjectionKey<FluxTableInjection>;
|
|
@@ -142,6 +143,14 @@ export type FluxSplitViewInjection = {
|
|
|
142
143
|
unregisterPane(id: number): void;
|
|
143
144
|
getPaneIndex(id: number): number;
|
|
144
145
|
};
|
|
146
|
+
export type FluxSegmentedControlValue = string | number;
|
|
147
|
+
export type FluxSegmentedControlInjection = {
|
|
148
|
+
readonly modelValue: Ref<FluxSegmentedControlValue | undefined>;
|
|
149
|
+
readonly size: Ref<FluxSize>;
|
|
150
|
+
select(value: FluxSegmentedControlValue): void;
|
|
151
|
+
registerItem(element: HTMLElement, value: FluxSegmentedControlValue): void;
|
|
152
|
+
unregisterItem(element: HTMLElement): void;
|
|
153
|
+
};
|
|
145
154
|
export type FluxTabBarInjection = {
|
|
146
155
|
readonly isPills: Ref<boolean>;
|
|
147
156
|
registerItem(element: Element, isActive: Ref<boolean>): void;
|
package/dist/index.css
CHANGED
|
@@ -2723,8 +2723,8 @@
|
|
|
2723
2723
|
|
|
2724
2724
|
.form-field-header {
|
|
2725
2725
|
display: flex;
|
|
2726
|
-
margin-bottom: 0;
|
|
2727
2726
|
width: 100%;
|
|
2727
|
+
margin-bottom: 0;
|
|
2728
2728
|
align-items: center;
|
|
2729
2729
|
align-self: flex-start;
|
|
2730
2730
|
gap: 6px;
|
|
@@ -2889,9 +2889,9 @@
|
|
|
2889
2889
|
border-radius: var(--radius-half);
|
|
2890
2890
|
}
|
|
2891
2891
|
.form-input-native::-webkit-color-swatch-wrapper {
|
|
2892
|
+
width: calc(100% + 24px);
|
|
2892
2893
|
margin: 0 -12px;
|
|
2893
2894
|
padding: 3px;
|
|
2894
|
-
width: calc(100% + 24px);
|
|
2895
2895
|
}
|
|
2896
2896
|
|
|
2897
2897
|
.form-input-native-has-icon-leading {
|
|
@@ -4468,12 +4468,12 @@
|
|
|
4468
4468
|
pointer-events: none;
|
|
4469
4469
|
}
|
|
4470
4470
|
.tree-indent.has-line::before {
|
|
4471
|
-
content: "";
|
|
4472
4471
|
position: absolute;
|
|
4473
4472
|
top: 0;
|
|
4474
4473
|
bottom: 0;
|
|
4475
4474
|
left: 9px;
|
|
4476
4475
|
width: 1px;
|
|
4476
|
+
content: "";
|
|
4477
4477
|
background: var(--surface-stroke);
|
|
4478
4478
|
}
|
|
4479
4479
|
|
|
@@ -4485,21 +4485,21 @@
|
|
|
4485
4485
|
pointer-events: none;
|
|
4486
4486
|
}
|
|
4487
4487
|
.tree-connector:not(.is-last)::before {
|
|
4488
|
-
content: "";
|
|
4489
4488
|
position: absolute;
|
|
4490
4489
|
top: 0;
|
|
4491
4490
|
bottom: 0;
|
|
4492
4491
|
left: 9px;
|
|
4493
4492
|
width: 1px;
|
|
4493
|
+
content: "";
|
|
4494
4494
|
background: var(--surface-stroke);
|
|
4495
4495
|
}
|
|
4496
4496
|
.tree-connector::after {
|
|
4497
|
-
content: "";
|
|
4498
4497
|
position: absolute;
|
|
4499
4498
|
top: 0;
|
|
4500
4499
|
bottom: 50%;
|
|
4501
4500
|
left: 9px;
|
|
4502
4501
|
right: 0;
|
|
4502
|
+
content: "";
|
|
4503
4503
|
border-left: 1px solid var(--surface-stroke);
|
|
4504
4504
|
border-bottom: 1px solid var(--surface-stroke);
|
|
4505
4505
|
border-bottom-left-radius: 6px;
|
|
@@ -5908,33 +5908,6 @@ tfoot .table-cell {
|
|
|
5908
5908
|
|
|
5909
5909
|
.base-pane-structure:is(a, button):hover:has(> .item) {
|
|
5910
5910
|
background-color: color-mix(in srgb, rgb(from var(--surface-hover) r g b/0.125), var(--surface));
|
|
5911
|
-
}.legend-horizontal {
|
|
5912
|
-
display: flex;
|
|
5913
|
-
gap: 12px 18px;
|
|
5914
|
-
}
|
|
5915
|
-
|
|
5916
|
-
.legend-vertical {
|
|
5917
|
-
display: flex;
|
|
5918
|
-
flex-flow: column;
|
|
5919
|
-
gap: 12px;
|
|
5920
|
-
}
|
|
5921
|
-
|
|
5922
|
-
.legend-item {
|
|
5923
|
-
display: flex;
|
|
5924
|
-
flex-flow: row nowrap;
|
|
5925
|
-
gap: 6px;
|
|
5926
|
-
font-size: 14px;
|
|
5927
|
-
line-height: 1;
|
|
5928
|
-
}
|
|
5929
|
-
.legend-item::before {
|
|
5930
|
-
display: block;
|
|
5931
|
-
margin-top: 1px;
|
|
5932
|
-
height: 12px;
|
|
5933
|
-
width: 12px;
|
|
5934
|
-
content: "";
|
|
5935
|
-
flex: 0 0 12px;
|
|
5936
|
-
background: var(--color);
|
|
5937
|
-
border-radius: var(--radius-full);
|
|
5938
5911
|
}.notice {
|
|
5939
5912
|
display: flex;
|
|
5940
5913
|
padding: 12px 15px;
|
|
@@ -6161,35 +6134,6 @@ tfoot .table-cell {
|
|
|
6161
6134
|
.base-pane > .notice {
|
|
6162
6135
|
padding-left: 18px;
|
|
6163
6136
|
padding-right: 18px;
|
|
6164
|
-
}.percentage-bar {
|
|
6165
|
-
display: flex;
|
|
6166
|
-
flex-flow: column;
|
|
6167
|
-
gap: 12px;
|
|
6168
|
-
}
|
|
6169
|
-
|
|
6170
|
-
.percentage-bar-segment {
|
|
6171
|
-
height: 12px;
|
|
6172
|
-
border-radius: calc(var(--radius) / 3);
|
|
6173
|
-
transition: var(--transition-default);
|
|
6174
|
-
transition-property: height, margin, flex-grow;
|
|
6175
|
-
}
|
|
6176
|
-
.percentage-bar-segment:hover {
|
|
6177
|
-
height: 16px;
|
|
6178
|
-
margin-top: -2px;
|
|
6179
|
-
margin-bottom: -2px;
|
|
6180
|
-
}
|
|
6181
|
-
|
|
6182
|
-
.percentage-bar-tooltip {
|
|
6183
|
-
display: flex;
|
|
6184
|
-
align-items: center;
|
|
6185
|
-
flex-flow: row nowrap;
|
|
6186
|
-
gap: 9px;
|
|
6187
|
-
}
|
|
6188
|
-
|
|
6189
|
-
.percentage-bar-track {
|
|
6190
|
-
display: flex;
|
|
6191
|
-
flex-flow: row nowrap;
|
|
6192
|
-
gap: 3px;
|
|
6193
6137
|
}.progress-bar {
|
|
6194
6138
|
position: relative;
|
|
6195
6139
|
}
|
|
@@ -6645,7 +6589,8 @@ tfoot .table-cell {
|
|
|
6645
6589
|
}.segmented-control {
|
|
6646
6590
|
position: relative;
|
|
6647
6591
|
align-items: center;
|
|
6648
|
-
gap:
|
|
6592
|
+
gap: 3px;
|
|
6593
|
+
padding: 3px;
|
|
6649
6594
|
background: var(--gray-50);
|
|
6650
6595
|
border: 1px solid var(--surface-stroke);
|
|
6651
6596
|
border-radius: var(--radius);
|
|
@@ -6662,60 +6607,90 @@ tfoot .table-cell {
|
|
|
6662
6607
|
|
|
6663
6608
|
.segmented-control-highlight {
|
|
6664
6609
|
position: absolute;
|
|
6665
|
-
top:
|
|
6666
|
-
bottom:
|
|
6610
|
+
top: 3px;
|
|
6611
|
+
bottom: 3px;
|
|
6667
6612
|
background: var(--surface);
|
|
6668
|
-
border-radius: calc(var(--radius) -
|
|
6669
|
-
box-shadow: var(--shadow-
|
|
6613
|
+
border-radius: calc(var(--radius) - 3px);
|
|
6614
|
+
box-shadow: var(--shadow-md);
|
|
6670
6615
|
outline: 1px solid var(--surface-stroke);
|
|
6671
6616
|
pointer-events: none;
|
|
6672
6617
|
transition: 300ms var(--swift-out);
|
|
6673
6618
|
transition-property: left, width;
|
|
6674
|
-
translate: -1px 0;
|
|
6675
6619
|
}
|
|
6676
6620
|
|
|
6677
6621
|
.segmented-control-item {
|
|
6622
|
+
position: relative;
|
|
6678
6623
|
display: flex;
|
|
6679
|
-
height: 36px;
|
|
6680
|
-
padding-left: 12px;
|
|
6681
|
-
padding-right: 12px;
|
|
6682
6624
|
align-items: center;
|
|
6683
6625
|
flex: 1 1 0;
|
|
6684
|
-
gap: 9px;
|
|
6685
6626
|
justify-content: center;
|
|
6686
6627
|
background: none;
|
|
6687
6628
|
border: 0;
|
|
6688
|
-
border-radius: var(--radius);
|
|
6629
|
+
border-radius: var(--radius-full);
|
|
6689
6630
|
color: var(--foreground);
|
|
6690
6631
|
cursor: pointer;
|
|
6691
6632
|
font-weight: 500;
|
|
6692
6633
|
text-align: center;
|
|
6693
|
-
transition: 300ms var(--swift-out);
|
|
6694
|
-
|
|
6634
|
+
transition: color 300ms var(--swift-out);
|
|
6635
|
+
white-space: nowrap;
|
|
6695
6636
|
}
|
|
6696
6637
|
@media (hover: hover) {
|
|
6697
6638
|
.segmented-control-item:hover {
|
|
6698
|
-
|
|
6639
|
+
color: var(--foreground-prominent);
|
|
6699
6640
|
}
|
|
6700
6641
|
}
|
|
6642
|
+
.segmented-control-item {
|
|
6643
|
+
outline: 2px solid rgb(from var(--primary-600) r g b/0);
|
|
6644
|
+
outline-offset: 0;
|
|
6645
|
+
}
|
|
6646
|
+
.segmented-control-item:focus-visible {
|
|
6647
|
+
outline-color: var(--primary-600);
|
|
6648
|
+
outline-offset: 3px;
|
|
6649
|
+
}
|
|
6701
6650
|
.segmented-control-item.is-active {
|
|
6702
|
-
background: none;
|
|
6703
6651
|
color: var(--foreground-prominent);
|
|
6704
6652
|
cursor: default;
|
|
6705
6653
|
}
|
|
6654
|
+
.segmented-control-item:disabled {
|
|
6655
|
+
opacity: 0.5;
|
|
6656
|
+
pointer-events: none;
|
|
6657
|
+
}
|
|
6706
6658
|
.segmented-control-item > * {
|
|
6707
6659
|
position: relative;
|
|
6660
|
+
z-index: 1;
|
|
6708
6661
|
}
|
|
6709
|
-
|
|
6710
|
-
|
|
6662
|
+
.segmented-control-item + .segmented-control-item::before {
|
|
6663
|
+
content: "";
|
|
6664
|
+
position: absolute;
|
|
6665
|
+
top: 50%;
|
|
6666
|
+
left: -2px;
|
|
6711
6667
|
height: 15px;
|
|
6712
|
-
width:
|
|
6713
|
-
|
|
6714
|
-
|
|
6668
|
+
width: 2px;
|
|
6669
|
+
background: var(--gray-100);
|
|
6670
|
+
border-radius: 1px;
|
|
6715
6671
|
transition: opacity 300ms var(--swift-out);
|
|
6672
|
+
translate: 0 -50%;
|
|
6716
6673
|
}
|
|
6717
|
-
.segmented-control-
|
|
6674
|
+
.segmented-control-item.is-active::before, .segmented-control-item.is-active + .segmented-control-item::before {
|
|
6718
6675
|
opacity: 0;
|
|
6676
|
+
}
|
|
6677
|
+
|
|
6678
|
+
.is-small {
|
|
6679
|
+
height: 30px;
|
|
6680
|
+
padding: 0 12px;
|
|
6681
|
+
gap: 9px;
|
|
6682
|
+
}
|
|
6683
|
+
|
|
6684
|
+
.is-medium {
|
|
6685
|
+
height: 36px;
|
|
6686
|
+
padding: 0 15px;
|
|
6687
|
+
gap: 9px;
|
|
6688
|
+
}
|
|
6689
|
+
|
|
6690
|
+
.is-large {
|
|
6691
|
+
height: 48px;
|
|
6692
|
+
padding: 0 21px;
|
|
6693
|
+
gap: 12px;
|
|
6719
6694
|
}.split-view {
|
|
6720
6695
|
display: grid;
|
|
6721
6696
|
width: 100%;
|
|
@@ -6779,82 +6754,6 @@ tfoot .table-cell {
|
|
|
6779
6754
|
left: 0;
|
|
6780
6755
|
height: 2px;
|
|
6781
6756
|
width: 100%;
|
|
6782
|
-
}.statistic {
|
|
6783
|
-
padding: 18px;
|
|
6784
|
-
flex-basis: 0;
|
|
6785
|
-
flex-grow: 1;
|
|
6786
|
-
gap: 18px;
|
|
6787
|
-
}
|
|
6788
|
-
|
|
6789
|
-
.statistic-change {
|
|
6790
|
-
display: flex;
|
|
6791
|
-
align-items: center;
|
|
6792
|
-
align-self: flex-end;
|
|
6793
|
-
gap: 6px;
|
|
6794
|
-
font-size: 12px;
|
|
6795
|
-
font-weight: 600;
|
|
6796
|
-
line-height: 1;
|
|
6797
|
-
}
|
|
6798
|
-
.statistic-change.is-gray {
|
|
6799
|
-
color: var(--foreground-prominent);
|
|
6800
|
-
}
|
|
6801
|
-
.statistic-change.is-primary {
|
|
6802
|
-
color: var(--primary-600);
|
|
6803
|
-
}
|
|
6804
|
-
.statistic-change.is-danger {
|
|
6805
|
-
color: var(--danger-600);
|
|
6806
|
-
}
|
|
6807
|
-
.statistic-change.is-info {
|
|
6808
|
-
color: var(--info-600);
|
|
6809
|
-
}
|
|
6810
|
-
.statistic-change.is-success {
|
|
6811
|
-
color: var(--success-600);
|
|
6812
|
-
}
|
|
6813
|
-
.statistic-change.is-warning {
|
|
6814
|
-
color: var(--warning-600);
|
|
6815
|
-
}
|
|
6816
|
-
|
|
6817
|
-
.statistic-data {
|
|
6818
|
-
display: flex;
|
|
6819
|
-
flex-flow: column;
|
|
6820
|
-
flex-grow: 1;
|
|
6821
|
-
gap: 9px;
|
|
6822
|
-
line-height: 1;
|
|
6823
|
-
}
|
|
6824
|
-
.statistic-data :is(span) {
|
|
6825
|
-
color: var(--foreground-secondary);
|
|
6826
|
-
}
|
|
6827
|
-
.statistic-data :is(strong) {
|
|
6828
|
-
color: var(--foreground-prominent);
|
|
6829
|
-
font-size: 24px;
|
|
6830
|
-
font-weight: 700;
|
|
6831
|
-
}
|
|
6832
|
-
|
|
6833
|
-
.statistic-icon .icon {
|
|
6834
|
-
font-size: 0.45em;
|
|
6835
|
-
}
|
|
6836
|
-
|
|
6837
|
-
.statistic-image {
|
|
6838
|
-
height: 48px;
|
|
6839
|
-
width: 48px;
|
|
6840
|
-
border-radius: var(--radius);
|
|
6841
|
-
}
|
|
6842
|
-
|
|
6843
|
-
.statistic-horizontal {
|
|
6844
|
-
display: flex;
|
|
6845
|
-
}
|
|
6846
|
-
|
|
6847
|
-
.statistic-vertical {
|
|
6848
|
-
display: flex;
|
|
6849
|
-
align-items: center;
|
|
6850
|
-
flex-flow: column;
|
|
6851
|
-
text-align: center;
|
|
6852
|
-
}
|
|
6853
|
-
.statistic-vertical .statistic-change {
|
|
6854
|
-
align-self: center;
|
|
6855
|
-
}
|
|
6856
|
-
.statistic-vertical .statistic-data {
|
|
6857
|
-
align-items: center;
|
|
6858
6757
|
}.sparkles-container {
|
|
6859
6758
|
z-index: 0;
|
|
6860
6759
|
}
|