@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.
Files changed (56) hide show
  1. package/dist/component/FluxKanbanColumn.vue.d.ts +1 -1
  2. package/dist/component/FluxSegmentedControl.vue.d.ts +18 -8
  3. package/dist/component/FluxSegmentedControlItem.vue.d.ts +20 -0
  4. package/dist/component/FluxSpacing.vue.d.ts +2 -1
  5. package/dist/component/index.d.ts +1 -4
  6. package/dist/component/primitive/FilterMenuRenderer.d.ts +3 -3
  7. package/dist/composable/index.d.ts +1 -0
  8. package/dist/composable/useSegmentedControlInjection.d.ts +2 -0
  9. package/dist/data/di.d.ts +10 -1
  10. package/dist/index.css +57 -158
  11. package/dist/index.js +321 -405
  12. package/dist/index.js.map +1 -1
  13. package/package.json +9 -9
  14. package/src/component/FluxBoxedIcon.vue +1 -1
  15. package/src/component/FluxCalendar.vue +6 -6
  16. package/src/component/FluxColorPicker.vue +5 -5
  17. package/src/component/FluxDropZone.vue +0 -1
  18. package/src/component/FluxDynamicView.vue +2 -2
  19. package/src/component/FluxExpandableGroup.vue +0 -1
  20. package/src/component/FluxFilterBase.vue +11 -11
  21. package/src/component/FluxFormFieldAddition.vue +2 -2
  22. package/src/component/FluxInfo.vue +2 -2
  23. package/src/component/FluxInfoStack.vue +2 -2
  24. package/src/component/FluxKanbanColumn.vue +2 -4
  25. package/src/component/FluxLayerPane.vue +1 -1
  26. package/src/component/FluxPagination.vue +4 -4
  27. package/src/component/FluxSegmentedControl.vue +64 -67
  28. package/src/component/FluxSegmentedControlItem.vue +98 -0
  29. package/src/component/FluxSpacing.vue +5 -1
  30. package/src/component/FluxSplitButton.vue +2 -2
  31. package/src/component/FluxTable.vue +3 -1
  32. package/src/component/FluxToolbar.vue +1 -1
  33. package/src/component/index.ts +1 -4
  34. package/src/component/primitive/FilterBadge.vue +11 -2
  35. package/src/component/primitive/FilterMenuRenderer.ts +4 -4
  36. package/src/composable/index.ts +1 -0
  37. package/src/composable/useSegmentedControlInjection.ts +13 -0
  38. package/src/css/component/Form.module.scss +2 -2
  39. package/src/css/component/SegmentedControl.module.scss +51 -23
  40. package/src/css/component/Spinner.module.scss +1 -0
  41. package/src/css/component/Visual.module.scss +1 -0
  42. package/src/css/mixin/tree-node.scss +3 -3
  43. package/src/data/di.ts +13 -1
  44. package/src/data/iconRegistry.ts +1 -1
  45. package/src/util/createDialogRenderer.ts +1 -1
  46. package/dist/component/FluxLegend.vue.d.ts +0 -8
  47. package/dist/component/FluxPercentageBar.vue.d.ts +0 -8
  48. package/dist/component/FluxSegmentedView.vue.d.ts +0 -9
  49. package/dist/component/FluxStatistic.vue.d.ts +0 -17
  50. package/src/component/FluxLegend.vue +0 -27
  51. package/src/component/FluxPercentageBar.vue +0 -47
  52. package/src/component/FluxSegmentedView.vue +0 -15
  53. package/src/component/FluxStatistic.vue +0 -82
  54. package/src/css/component/Legend.module.scss +0 -29
  55. package/src/css/component/PercentageBar.module.scss +0 -31
  56. 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: string | number;
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 { FluxSegmentedControlItemObject } from '@flux-ui/types';
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 items: FluxSegmentedControlItemObject[];
7
+ readonly size?: FluxSize;
8
+ };
9
+ type __VLS_Slots = {
10
+ default(): VNode[];
7
11
  };
8
12
  type __VLS_ModelProps = {
9
- modelValue?: number;
13
+ modelValue?: FluxSegmentedControlValue;
10
14
  };
11
15
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
12
- declare const _default: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
13
- "update:modelValue": (value: number) => any;
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: number) => any;
16
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
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: keyof typeof spacings;
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 FluxSegmentedView } from './FluxSegmentedView.vue';
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: FunctionConstructor;
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: FunctionConstructor;
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';
@@ -0,0 +1,2 @@
1
+ import { FluxSegmentedControlInjection } from '../data';
2
+ export default function (): FluxSegmentedControlInjection;
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: 1px;
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: 0;
6666
- bottom: 0;
6610
+ top: 3px;
6611
+ bottom: 3px;
6667
6612
  background: var(--surface);
6668
- border-radius: calc(var(--radius) - 2px);
6669
- box-shadow: var(--shadow-sm);
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
- transition-property: background, color;
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
- background: var(--gray-100);
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
- .segmented-control-separator {
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: 1px;
6713
- flex-shrink: 0;
6714
- background: var(--surface-stroke);
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-separator.is-active {
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
  }