@wellingtonhlc/shared-ui 0.25.4 → 0.25.6
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyableField.d.ts","sourceRoot":"","sources":["../../src/components/CopyableField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CopyableField.d.ts","sourceRoot":"","sources":["../../src/components/CopyableField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IAC3E,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,wFAuGxB,CAAC"}
|
|
@@ -1,17 +1,38 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { Slot } from '@radix-ui/react-slot';
|
|
4
|
+
import { ClipboardCheckIcon, ClipboardIcon } from 'lucide-react';
|
|
4
5
|
import { toast } from 'sonner';
|
|
5
6
|
import { cn } from '../utils/cn';
|
|
6
7
|
export const CopyableField = React.forwardRef(function CopyableField({ asChild = false, children, className, errorMessage = 'Nao foi possivel copiar o valor.', onClick, onKeyDown, successMessage = 'Valor copiado.', title = 'Clique para copiar', value, ...props }, ref) {
|
|
7
8
|
const Component = asChild ? Slot : 'span';
|
|
8
9
|
const copyValue = value === null || value === undefined ? '' : String(value);
|
|
9
10
|
const canCopy = copyValue.trim().length > 0;
|
|
11
|
+
const [copied, setCopied] = React.useState(false);
|
|
12
|
+
const feedbackTimerRef = React.useRef(null);
|
|
13
|
+
React.useEffect(() => {
|
|
14
|
+
return () => {
|
|
15
|
+
if (feedbackTimerRef.current) {
|
|
16
|
+
clearTimeout(feedbackTimerRef.current);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}, []);
|
|
20
|
+
function showCopiedFeedback() {
|
|
21
|
+
setCopied(true);
|
|
22
|
+
if (feedbackTimerRef.current) {
|
|
23
|
+
clearTimeout(feedbackTimerRef.current);
|
|
24
|
+
}
|
|
25
|
+
feedbackTimerRef.current = setTimeout(() => {
|
|
26
|
+
setCopied(false);
|
|
27
|
+
feedbackTimerRef.current = null;
|
|
28
|
+
}, 1200);
|
|
29
|
+
}
|
|
10
30
|
async function copy() {
|
|
11
31
|
if (!canCopy)
|
|
12
32
|
return;
|
|
13
33
|
try {
|
|
14
34
|
await navigator.clipboard.writeText(copyValue);
|
|
35
|
+
showCopiedFeedback();
|
|
15
36
|
toast.success(successMessage);
|
|
16
37
|
}
|
|
17
38
|
catch {
|
|
@@ -33,6 +54,7 @@ export const CopyableField = React.forwardRef(function CopyableField({ asChild =
|
|
|
33
54
|
void copy();
|
|
34
55
|
}
|
|
35
56
|
}
|
|
36
|
-
return (
|
|
37
|
-
'
|
|
57
|
+
return (_jsxs(Component, { ref: ref, role: canCopy ? 'button' : undefined, tabIndex: canCopy ? 0 : -1, title: canCopy ? title : undefined, "aria-disabled": !canCopy, "aria-label": canCopy && copied ? 'Copiado' : undefined, "data-copied": copied ? 'true' : undefined, className: cn(canCopy &&
|
|
58
|
+
'group/copyable relative cursor-pointer rounded-md border border-transparent focus-visible:outline-none', className), onClick: handleClick, onKeyDown: handleKeyDown, ...props, children: [children, canCopy && !asChild ? (_jsx("span", { "aria-hidden": "true", className: cn('border-app-border bg-[color-mix(in_srgb,var(--foreground-muted)_3%,var(--background-secondary))] text-foreground-muted pointer-events-none absolute top-1/2 right-0 inline-flex size-6 translate-x-[calc(100%+0.25rem)] -translate-y-1/2 items-center justify-center rounded-md border opacity-0 shadow-sm transition-[opacity,color,border-color,background-color] duration-150 group-hover/copyable:opacity-100 group-focus-visible/copyable:opacity-100', copied &&
|
|
59
|
+
'bg-[color-mix(in_srgb,var(--brand)_9%,var(--background-secondary))] text-brand opacity-100'), children: copied ? _jsx(ClipboardCheckIcon, { className: "size-3.5" }) : _jsx(ClipboardIcon, { className: "size-3.5" }) })) : null] }));
|
|
38
60
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabsUnderlined.d.ts","sourceRoot":"","sources":["../../src/components/TabsUnderlined.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TabsUnderlined.d.ts","sourceRoot":"","sources":["../../src/components/TabsUnderlined.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAa9E,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,KAAK,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,cAAsB,EACtB,KAAK,GACN,EAAE,mBAAmB,+BA4DrB"}
|
|
@@ -3,6 +3,9 @@ import { useMemo, useState } from 'react';
|
|
|
3
3
|
import * as Tabs from '@radix-ui/react-tabs';
|
|
4
4
|
import { cn } from '../utils/cn';
|
|
5
5
|
const DEFAULT_TAB_MIN_WIDTH = '8.75rem';
|
|
6
|
+
const TAB_BAR_BACKGROUND = 'bg-[color-mix(in_srgb,var(--foreground-muted)_5%,var(--background-secondary))]';
|
|
7
|
+
const TAB_INACTIVE_BACKGROUND = 'bg-[color-mix(in_srgb,var(--foreground-muted)_5%,var(--background-secondary))]';
|
|
8
|
+
const TAB_INACTIVE_HOVER_BACKGROUND = 'hover:bg-[color-mix(in_srgb,var(--foreground-muted)_8%,var(--background-secondary))]';
|
|
6
9
|
export function TabsUnderlined({ className, contentClassName, defaultValue, items, listClassName, onValueChange, tabMaxWidth, tabMinWidth, tabWidth, triggerClassName, truncateLabels = false, value, }) {
|
|
7
10
|
const visibleItems = useMemo(() => items.filter((item) => item.visible ?? true), [items]);
|
|
8
11
|
const initialValue = defaultValue && visibleItems.some((item) => item.id === defaultValue)
|
|
@@ -14,7 +17,7 @@ export function TabsUnderlined({ className, contentClassName, defaultValue, item
|
|
|
14
17
|
setInternalValue(nextValue);
|
|
15
18
|
onValueChange?.(nextValue);
|
|
16
19
|
}
|
|
17
|
-
return (_jsx("div", { className: cn('border-app-border bg-
|
|
20
|
+
return (_jsx("div", { className: cn('border-app-border bg-background-secondary flex h-full min-w-0 flex-col overflow-hidden rounded-xl border', className), children: _jsxs(Tabs.Root, { value: resolvedValue, onValueChange: handleValueChange, className: "flex min-w-0 flex-1 flex-col", children: [_jsx(Tabs.List, { className: cn('border-app-border flex min-w-0 overflow-x-auto overflow-y-hidden border-b text-sm', TAB_BAR_BACKGROUND, listClassName), children: visibleItems.map((item) => (_jsx(TabTrigger, { value: item.id, className: triggerClassName, maxWidth: tabMaxWidth, minWidth: tabMinWidth, width: tabWidth, truncate: truncateLabels, children: item.label }, item.id))) }), visibleItems.map((item) => (_jsx(Tabs.Content, { value: item.id, className: cn('flex h-full min-w-0 flex-1 flex-col overflow-hidden', contentClassName), children: item.children }, item.id)))] }) }));
|
|
18
21
|
}
|
|
19
22
|
function TabTrigger({ children, className, value, maxWidth, minWidth, width, truncate, }) {
|
|
20
23
|
const style = {
|
|
@@ -22,5 +25,5 @@ function TabTrigger({ children, className, value, maxWidth, minWidth, width, tru
|
|
|
22
25
|
minWidth: minWidth ?? DEFAULT_TAB_MIN_WIDTH,
|
|
23
26
|
width,
|
|
24
27
|
};
|
|
25
|
-
return (_jsx(Tabs.Trigger, { value: value, style: style, className: cn('text-foreground-muted hover:text-foreground focus-visible:ring-brand/50 data-[state=active]:border-app-border data-[state=active]:border-b-
|
|
28
|
+
return (_jsx(Tabs.Trigger, { value: value, style: style, className: cn('text-foreground-muted hover:text-foreground focus-visible:ring-brand/50 data-[state=active]:border-app-border data-[state=active]:border-b-background-secondary data-[state=active]:bg-background-secondary data-[state=active]:text-foreground -mb-px inline-flex shrink-0 cursor-pointer items-center justify-center border border-t-0 border-transparent px-4 py-2 text-sm font-medium transition-colors first:border-l-0 focus:outline-none focus-visible:ring-2', TAB_INACTIVE_BACKGROUND, TAB_INACTIVE_HOVER_BACKGROUND, className), children: _jsx("span", { className: cn('min-w-0', truncate && 'overflow-hidden text-ellipsis whitespace-nowrap'), children: children }) }));
|
|
26
29
|
}
|
package/dist/styles.css
CHANGED
|
@@ -1102,6 +1102,10 @@ h2.react-datepicker__current-month {
|
|
|
1102
1102
|
width: calc(var(--spacing) * 5);
|
|
1103
1103
|
height: calc(var(--spacing) * 5);
|
|
1104
1104
|
}
|
|
1105
|
+
.size-6 {
|
|
1106
|
+
width: calc(var(--spacing) * 6);
|
|
1107
|
+
height: calc(var(--spacing) * 6);
|
|
1108
|
+
}
|
|
1105
1109
|
.size-7 {
|
|
1106
1110
|
width: calc(var(--spacing) * 7);
|
|
1107
1111
|
height: calc(var(--spacing) * 7);
|
|
@@ -1549,6 +1553,10 @@ h2.react-datepicker__current-month {
|
|
|
1549
1553
|
--tw-translate-x: calc(var(--spacing) * 0);
|
|
1550
1554
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1551
1555
|
}
|
|
1556
|
+
.translate-x-\[calc\(100\%\+0\.25rem\)\] {
|
|
1557
|
+
--tw-translate-x: calc(100% + 0.25rem);
|
|
1558
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1559
|
+
}
|
|
1552
1560
|
.-translate-y-1\/2 {
|
|
1553
1561
|
--tw-translate-y: calc(calc(1/2 * 100%) * -1);
|
|
1554
1562
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
@@ -1897,6 +1905,12 @@ h2.react-datepicker__current-month {
|
|
|
1897
1905
|
background-color: color-mix(in srgb,var(--brand) 5%,var(--surface));
|
|
1898
1906
|
}
|
|
1899
1907
|
}
|
|
1908
|
+
.bg-\[color-mix\(in_srgb\,var\(--brand\)_9\%\,var\(--background-secondary\)\)\] {
|
|
1909
|
+
background-color: var(--brand);
|
|
1910
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1911
|
+
background-color: color-mix(in srgb,var(--brand) 9%,var(--background-secondary));
|
|
1912
|
+
}
|
|
1913
|
+
}
|
|
1900
1914
|
.bg-\[color-mix\(in_srgb\,var\(--brand\)_10\%\,var\(--surface\)\)\] {
|
|
1901
1915
|
background-color: var(--brand);
|
|
1902
1916
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1921,16 +1935,22 @@ h2.react-datepicker__current-month {
|
|
|
1921
1935
|
background-color: color-mix(in srgb,var(--destructive) 12%,var(--surface));
|
|
1922
1936
|
}
|
|
1923
1937
|
}
|
|
1924
|
-
.bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)
|
|
1938
|
+
.bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)_3\%\,var\(--background-secondary\)\)\] {
|
|
1925
1939
|
background-color: var(--foreground-muted);
|
|
1926
1940
|
@supports (color: color-mix(in lab, red, red)) {
|
|
1927
|
-
background-color: color-mix(in srgb,var(--foreground-muted)
|
|
1941
|
+
background-color: color-mix(in srgb,var(--foreground-muted) 3%,var(--background-secondary));
|
|
1942
|
+
}
|
|
1943
|
+
}
|
|
1944
|
+
.bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)_5\%\,var\(--background-secondary\)\)\] {
|
|
1945
|
+
background-color: var(--foreground-muted);
|
|
1946
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1947
|
+
background-color: color-mix(in srgb,var(--foreground-muted) 5%,var(--background-secondary));
|
|
1928
1948
|
}
|
|
1929
1949
|
}
|
|
1930
|
-
.bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)
|
|
1950
|
+
.bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)_5\%\,var\(--surface\)\)\] {
|
|
1931
1951
|
background-color: var(--foreground-muted);
|
|
1932
1952
|
@supports (color: color-mix(in lab, red, red)) {
|
|
1933
|
-
background-color: color-mix(in srgb,var(--foreground-muted)
|
|
1953
|
+
background-color: color-mix(in srgb,var(--foreground-muted) 5%,var(--surface));
|
|
1934
1954
|
}
|
|
1935
1955
|
}
|
|
1936
1956
|
.bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)_8\%\,var\(--surface\)\)\] {
|
|
@@ -2739,6 +2759,11 @@ h2.react-datepicker__current-month {
|
|
|
2739
2759
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
2740
2760
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
2741
2761
|
}
|
|
2762
|
+
.transition-\[opacity\,color\,border-color\,background-color\] {
|
|
2763
|
+
transition-property: opacity,color,border-color,background-color;
|
|
2764
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
2765
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
2766
|
+
}
|
|
2742
2767
|
.transition-\[opacity\,transform\,visibility\] {
|
|
2743
2768
|
transition-property: opacity,transform,visibility;
|
|
2744
2769
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -2808,6 +2833,18 @@ h2.react-datepicker__current-month {
|
|
|
2808
2833
|
}
|
|
2809
2834
|
}
|
|
2810
2835
|
}
|
|
2836
|
+
.group-hover\/copyable\:opacity-100 {
|
|
2837
|
+
&:is(:where(.group\/copyable):hover *) {
|
|
2838
|
+
@media (hover: hover) {
|
|
2839
|
+
opacity: 100%;
|
|
2840
|
+
}
|
|
2841
|
+
}
|
|
2842
|
+
}
|
|
2843
|
+
.group-focus-visible\/copyable\:opacity-100 {
|
|
2844
|
+
&:is(:where(.group\/copyable):focus-visible *) {
|
|
2845
|
+
opacity: 100%;
|
|
2846
|
+
}
|
|
2847
|
+
}
|
|
2811
2848
|
.placeholder\:text-foreground-muted {
|
|
2812
2849
|
&::placeholder {
|
|
2813
2850
|
color: var(--color-foreground-muted);
|
|
@@ -2899,16 +2936,6 @@ h2.react-datepicker__current-month {
|
|
|
2899
2936
|
}
|
|
2900
2937
|
}
|
|
2901
2938
|
}
|
|
2902
|
-
.hover\:border-brand\/60 {
|
|
2903
|
-
&:hover {
|
|
2904
|
-
@media (hover: hover) {
|
|
2905
|
-
border-color: var(--color-brand);
|
|
2906
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
2907
|
-
border-color: color-mix(in oklab, var(--color-brand) 60%, transparent);
|
|
2908
|
-
}
|
|
2909
|
-
}
|
|
2910
|
-
}
|
|
2911
|
-
}
|
|
2912
2939
|
.hover\:border-transparent {
|
|
2913
2940
|
&:hover {
|
|
2914
2941
|
@media (hover: hover) {
|
|
@@ -3040,12 +3067,12 @@ h2.react-datepicker__current-month {
|
|
|
3040
3067
|
}
|
|
3041
3068
|
}
|
|
3042
3069
|
}
|
|
3043
|
-
.hover\:bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)
|
|
3070
|
+
.hover\:bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)_8\%\,var\(--background-secondary\)\)\] {
|
|
3044
3071
|
&:hover {
|
|
3045
3072
|
@media (hover: hover) {
|
|
3046
3073
|
background-color: var(--foreground-muted);
|
|
3047
3074
|
@supports (color: color-mix(in lab, red, red)) {
|
|
3048
|
-
background-color: color-mix(in srgb,var(--foreground-muted)
|
|
3075
|
+
background-color: color-mix(in srgb,var(--foreground-muted) 8%,var(--background-secondary));
|
|
3049
3076
|
}
|
|
3050
3077
|
}
|
|
3051
3078
|
}
|
|
@@ -3135,16 +3162,6 @@ h2.react-datepicker__current-month {
|
|
|
3135
3162
|
}
|
|
3136
3163
|
}
|
|
3137
3164
|
}
|
|
3138
|
-
.hover\:bg-brand\/10 {
|
|
3139
|
-
&:hover {
|
|
3140
|
-
@media (hover: hover) {
|
|
3141
|
-
background-color: var(--color-brand);
|
|
3142
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
3143
|
-
background-color: color-mix(in oklab, var(--color-brand) 10%, transparent);
|
|
3144
|
-
}
|
|
3145
|
-
}
|
|
3146
|
-
}
|
|
3147
|
-
}
|
|
3148
3165
|
.hover\:bg-destructive {
|
|
3149
3166
|
&:hover {
|
|
3150
3167
|
@media (hover: hover) {
|
|
@@ -3344,14 +3361,6 @@ h2.react-datepicker__current-month {
|
|
|
3344
3361
|
--tw-ring-inset: inset;
|
|
3345
3362
|
}
|
|
3346
3363
|
}
|
|
3347
|
-
.focus-visible\:border-brand\/60 {
|
|
3348
|
-
&:focus-visible {
|
|
3349
|
-
border-color: var(--color-brand);
|
|
3350
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
3351
|
-
border-color: color-mix(in oklab, var(--color-brand) 60%, transparent);
|
|
3352
|
-
}
|
|
3353
|
-
}
|
|
3354
|
-
}
|
|
3355
3364
|
.focus-visible\:ring-2 {
|
|
3356
3365
|
&:focus-visible {
|
|
3357
3366
|
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
@@ -3382,14 +3391,6 @@ h2.react-datepicker__current-month {
|
|
|
3382
3391
|
}
|
|
3383
3392
|
}
|
|
3384
3393
|
}
|
|
3385
|
-
.focus-visible\:ring-brand\/40 {
|
|
3386
|
-
&:focus-visible {
|
|
3387
|
-
--tw-ring-color: var(--color-brand);
|
|
3388
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
3389
|
-
--tw-ring-color: color-mix(in oklab, var(--color-brand) 40%, transparent);
|
|
3390
|
-
}
|
|
3391
|
-
}
|
|
3392
|
-
}
|
|
3393
3394
|
.focus-visible\:ring-brand\/50 {
|
|
3394
3395
|
&:focus-visible {
|
|
3395
3396
|
--tw-ring-color: var(--color-brand);
|
|
@@ -3587,14 +3588,14 @@ h2.react-datepicker__current-month {
|
|
|
3587
3588
|
border-color: var(--color-app-border);
|
|
3588
3589
|
}
|
|
3589
3590
|
}
|
|
3590
|
-
.data-\[state\=active\]\:border-b-
|
|
3591
|
+
.data-\[state\=active\]\:border-b-background-secondary {
|
|
3591
3592
|
&[data-state="active"] {
|
|
3592
|
-
border-bottom-color: var(--color-
|
|
3593
|
+
border-bottom-color: var(--color-background-secondary);
|
|
3593
3594
|
}
|
|
3594
3595
|
}
|
|
3595
|
-
.data-\[state\=active\]\:bg-
|
|
3596
|
+
.data-\[state\=active\]\:bg-background-secondary {
|
|
3596
3597
|
&[data-state="active"] {
|
|
3597
|
-
background-color: var(--color-
|
|
3598
|
+
background-color: var(--color-background-secondary);
|
|
3598
3599
|
}
|
|
3599
3600
|
}
|
|
3600
3601
|
.data-\[state\=active\]\:text-foreground {
|