@ttoss/ui 5.2.1 → 5.3.0
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/esm/index.js +60 -18
- package/dist/index.d.ts +6 -3
- package/package.json +4 -3
package/dist/esm/index.js
CHANGED
|
@@ -615,44 +615,54 @@ InputPassword.displayName = "InputPassword";
|
|
|
615
615
|
|
|
616
616
|
// src/components/Label.tsx
|
|
617
617
|
import { Icon as Icon6 } from "@ttoss/react-icons";
|
|
618
|
+
import * as React10 from "react";
|
|
618
619
|
import { Label as LabelUi } from "theme-ui";
|
|
619
620
|
import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
620
621
|
var TOOLTIP_LABEL = "tooltip";
|
|
621
622
|
var Label = ({
|
|
622
623
|
children,
|
|
623
|
-
onTooltipClick,
|
|
624
624
|
tooltip,
|
|
625
|
+
onTooltipClick,
|
|
625
626
|
sx,
|
|
626
627
|
...props
|
|
627
628
|
}) => {
|
|
629
|
+
const id = React10.useId();
|
|
630
|
+
const tooltipId = `${id}-tooltip`;
|
|
628
631
|
return /* @__PURE__ */jsxs6(LabelUi, {
|
|
632
|
+
"data-tooltip-id": tooltipId,
|
|
629
633
|
sx: {
|
|
630
634
|
alignItems: "center",
|
|
631
635
|
fontSize: "sm",
|
|
632
636
|
lineHeight: "normal",
|
|
637
|
+
width: "fit-content",
|
|
633
638
|
...sx
|
|
634
639
|
},
|
|
635
640
|
...props,
|
|
636
|
-
children: [children, tooltip && /* @__PURE__ */
|
|
641
|
+
children: [children, tooltip && /* @__PURE__ */jsxs6(Text, {
|
|
637
642
|
sx: {
|
|
638
643
|
color: "currentcolor",
|
|
639
|
-
cursor:
|
|
644
|
+
cursor: "pointer"
|
|
640
645
|
},
|
|
641
|
-
onClick: onTooltipClick,
|
|
642
646
|
"aria-label": TOOLTIP_LABEL,
|
|
643
|
-
|
|
647
|
+
onClick: onTooltipClick,
|
|
648
|
+
children: [/* @__PURE__ */jsx14(Icon6, {
|
|
644
649
|
inline: true,
|
|
645
650
|
icon: "info"
|
|
646
|
-
})
|
|
651
|
+
}), /* @__PURE__ */jsx14(Tooltip, {
|
|
652
|
+
id: tooltipId,
|
|
653
|
+
clickable: onTooltipClick ? true : false,
|
|
654
|
+
place: "right",
|
|
655
|
+
children: tooltip
|
|
656
|
+
})]
|
|
647
657
|
})]
|
|
648
658
|
});
|
|
649
659
|
};
|
|
650
660
|
|
|
651
661
|
// src/components/Link.tsx
|
|
652
|
-
import * as
|
|
662
|
+
import * as React11 from "react";
|
|
653
663
|
import { Link as LinkUi } from "theme-ui";
|
|
654
664
|
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
655
|
-
var Link =
|
|
665
|
+
var Link = React11.forwardRef(({
|
|
656
666
|
quiet,
|
|
657
667
|
className,
|
|
658
668
|
...props
|
|
@@ -673,7 +683,7 @@ import { Radio } from "theme-ui";
|
|
|
673
683
|
|
|
674
684
|
// src/components/Select.tsx
|
|
675
685
|
import { Icon as Icon7 } from "@ttoss/react-icons";
|
|
676
|
-
import * as
|
|
686
|
+
import * as React12 from "react";
|
|
677
687
|
import ReactSelect, { components } from "react-select";
|
|
678
688
|
import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
679
689
|
var Control = props => {
|
|
@@ -831,7 +841,7 @@ var ValueContainer = ({
|
|
|
831
841
|
})]
|
|
832
842
|
});
|
|
833
843
|
};
|
|
834
|
-
var Select =
|
|
844
|
+
var Select = React12.forwardRef(({
|
|
835
845
|
...props
|
|
836
846
|
}, ref) => {
|
|
837
847
|
const value = props.options?.find(option => {
|
|
@@ -899,13 +909,13 @@ var Switch = props => {
|
|
|
899
909
|
sx: {
|
|
900
910
|
backgroundColor: "input.background.muted.disabled",
|
|
901
911
|
"input:checked ~ &": {
|
|
902
|
-
backgroundColor: "input.background.
|
|
912
|
+
backgroundColor: "input.background.accent.default"
|
|
903
913
|
},
|
|
904
914
|
"input ~ & > div": {
|
|
905
915
|
backgroundColor: "input.background.primary.default"
|
|
906
916
|
},
|
|
907
917
|
"input:checked ~ & > div": {
|
|
908
|
-
backgroundColor: "input.
|
|
918
|
+
backgroundColor: "input.text.primary.default"
|
|
909
919
|
},
|
|
910
920
|
"input:focus ~ &": {
|
|
911
921
|
outline: "md",
|
|
@@ -918,10 +928,10 @@ var Switch = props => {
|
|
|
918
928
|
|
|
919
929
|
// src/components/Textarea.tsx
|
|
920
930
|
import { Icon as Icon8 } from "@ttoss/react-icons";
|
|
921
|
-
import * as
|
|
931
|
+
import * as React13 from "react";
|
|
922
932
|
import { Textarea as TextareaUI } from "theme-ui";
|
|
923
933
|
import { jsx as jsx19, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
924
|
-
var Textarea =
|
|
934
|
+
var Textarea = React13.forwardRef(({
|
|
925
935
|
trailingIcon,
|
|
926
936
|
className,
|
|
927
937
|
sx,
|
|
@@ -962,20 +972,52 @@ var Textarea = React12.forwardRef(({
|
|
|
962
972
|
});
|
|
963
973
|
Textarea.displayName = "Textarea";
|
|
964
974
|
|
|
975
|
+
// src/components/Tooltip.tsx
|
|
976
|
+
import { Tooltip as TooltipReact } from "react-tooltip";
|
|
977
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
978
|
+
var Tooltip = props => {
|
|
979
|
+
const className = "tooltip-component";
|
|
980
|
+
return /* @__PURE__ */jsx20(Box, {
|
|
981
|
+
sx: ({
|
|
982
|
+
colors,
|
|
983
|
+
fonts
|
|
984
|
+
}) => {
|
|
985
|
+
const themeColors = colors;
|
|
986
|
+
return {
|
|
987
|
+
".tooltip-component": {
|
|
988
|
+
fontFamily: fonts?.body,
|
|
989
|
+
backgroundColor: themeColors?.feedback?.background?.muted?.default,
|
|
990
|
+
paddingY: "2",
|
|
991
|
+
paddingX: "3",
|
|
992
|
+
color: themeColors?.feedback?.text?.secondary?.default,
|
|
993
|
+
border: "sm",
|
|
994
|
+
borderRadius: "xl",
|
|
995
|
+
borderColor: themeColors?.feedback?.border?.muted?.default
|
|
996
|
+
}
|
|
997
|
+
};
|
|
998
|
+
},
|
|
999
|
+
children: /* @__PURE__ */jsx20(TooltipReact, {
|
|
1000
|
+
className,
|
|
1001
|
+
...props,
|
|
1002
|
+
children: props.children
|
|
1003
|
+
})
|
|
1004
|
+
});
|
|
1005
|
+
};
|
|
1006
|
+
|
|
965
1007
|
// src/theme/ThemeProvider.tsx
|
|
966
1008
|
import { BruttalFonts, BruttalTheme } from "@ttoss/theme/Bruttal";
|
|
967
1009
|
import { Global, css } from "@emotion/react";
|
|
968
1010
|
import { ThemeUIProvider } from "theme-ui";
|
|
969
|
-
import { Fragment, jsx as
|
|
1011
|
+
import { Fragment, jsx as jsx21, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
970
1012
|
var ThemeProvider = ({
|
|
971
1013
|
children,
|
|
972
1014
|
theme = BruttalTheme,
|
|
973
1015
|
fonts = BruttalFonts
|
|
974
1016
|
}) => {
|
|
975
|
-
return /* @__PURE__ */
|
|
1017
|
+
return /* @__PURE__ */jsx21(Fragment, {
|
|
976
1018
|
children: /* @__PURE__ */jsxs9(ThemeUIProvider, {
|
|
977
1019
|
theme,
|
|
978
|
-
children: [/* @__PURE__ */
|
|
1020
|
+
children: [/* @__PURE__ */jsx21(Global, {
|
|
979
1021
|
styles: css`
|
|
980
1022
|
${fonts.map(url => {
|
|
981
1023
|
return `@import url('${url}');`;
|
|
@@ -994,4 +1036,4 @@ var useTheme = useThemeUI;
|
|
|
994
1036
|
import { keyframes } from "@emotion/react";
|
|
995
1037
|
import { useBreakpointIndex, useResponsiveValue } from "@theme-ui/match-media";
|
|
996
1038
|
import { BaseStyles, Global as Global2 } from "theme-ui";
|
|
997
|
-
export { ActionButton, Badge, BaseStyles, Box, Button, Card, Checkbox, CloseButton, Container, Divider, Flex, Global2 as Global, Grid, Heading, HelpText, IconButton, Image, InfiniteLinearProgress, Input, InputNumber, InputPassword, Label, Progress as LinearProgress, Link, Paragraph, Radio, Select, Slider, Spinner, Stack, Switch, Text, Textarea, ThemeProvider, keyframes, useBreakpointIndex, useResponsiveValue, useTheme };
|
|
1039
|
+
export { ActionButton, Badge, BaseStyles, Box, Button, Card, Checkbox, CloseButton, Container, Divider, Flex, Global2 as Global, Grid, Heading, HelpText, IconButton, Image, InfiniteLinearProgress, Input, InputNumber, InputPassword, Label, Progress as LinearProgress, Link, Paragraph, Radio, Select, Slider, Spinner, Stack, Switch, Text, Textarea, ThemeProvider, Tooltip, keyframes, useBreakpointIndex, useResponsiveValue, useTheme };
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import * as theme_ui from 'theme-ui';
|
|
|
5
5
|
import { ButtonProps as ButtonProps$1, BadgeProps as BadgeProps$1, CardProps, BoxProps, CheckboxProps as CheckboxProps$1, TextProps, IconButtonProps, InputProps as InputProps$1, LabelProps as LabelProps$1, LinkProps as LinkProps$1, SxProp, FlexProps, SwitchProps, TextareaProps as TextareaProps$1, Theme } from 'theme-ui';
|
|
6
6
|
export { BaseStyles, Box, BoxProps, CardProps, ContainerProps, Divider, DividerProps, Flex, FlexProps, Global, Grid, GridProps, Heading, HeadingProps, IconButtonProps, Image, ImageProps, Progress as LinearProgress, ProgressProps as LinearProgressProps, Paragraph, ParagraphProps, Radio, RadioProps, Slider, SliderProps, Spinner, SpinnerProps, SwitchProps, SxProp, Text, TextProps, Theme, ThemeUIStyleObject } from 'theme-ui';
|
|
7
7
|
import { Props } from 'react-select';
|
|
8
|
+
import { ITooltip } from 'react-tooltip';
|
|
8
9
|
export { Keyframes, keyframes } from '@emotion/react';
|
|
9
10
|
export { useBreakpointIndex, useResponsiveValue } from '@theme-ui/match-media';
|
|
10
11
|
|
|
@@ -79,10 +80,10 @@ type InputPasswordProps = Omit<InputProps, 'trailingIcon' | 'onTrailingIconClick
|
|
|
79
80
|
declare const InputPassword: React.ForwardRefExoticComponent<Omit<InputPasswordProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
80
81
|
|
|
81
82
|
type LabelProps = LabelProps$1 & {
|
|
82
|
-
tooltip?:
|
|
83
|
+
tooltip?: string | React.ReactNode;
|
|
83
84
|
onTooltipClick?: () => void;
|
|
84
85
|
};
|
|
85
|
-
declare const Label: ({ children,
|
|
86
|
+
declare const Label: ({ children, tooltip, onTooltipClick, sx, ...props }: LabelProps) => react_jsx_runtime.JSX.Element;
|
|
86
87
|
|
|
87
88
|
type LinkProps = LinkProps$1 & {
|
|
88
89
|
quiet?: boolean;
|
|
@@ -136,6 +137,8 @@ interface TextareaProps extends TextareaProps$1 {
|
|
|
136
137
|
}
|
|
137
138
|
declare const Textarea: React.ForwardRefExoticComponent<Omit<TextareaProps, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
|
|
138
139
|
|
|
140
|
+
declare const Tooltip: (props: ITooltip) => react_jsx_runtime.JSX.Element;
|
|
141
|
+
|
|
139
142
|
type ThemeProviderProps = {
|
|
140
143
|
children?: React.ReactNode;
|
|
141
144
|
theme?: Theme;
|
|
@@ -148,4 +151,4 @@ declare const ThemeProvider: ({ children, theme, fonts, }: ThemeProviderProps) =
|
|
|
148
151
|
|
|
149
152
|
declare const useTheme: () => theme_ui.ThemeUIContextValue;
|
|
150
153
|
|
|
151
|
-
export { ActionButton, type ActionButtonProps, Badge, type BadgeProps, Button, type ButtonProps, Card, Checkbox, type CheckboxProps, CloseButton, type CloseButtonProps, Container, HelpText, type HelpTextProps, IconButton, InfiniteLinearProgress, Input, InputNumber, type InputNumberProps, InputPassword, type InputPasswordProps, type InputProps, Label, type LabelProps, Link, type LinkProps, Select, type SelectOption, type SelectOptions, type SelectProps, Stack, type StackProps, Switch, Textarea, type TextareaProps, ThemeProvider, type ThemeProviderProps, useTheme };
|
|
154
|
+
export { ActionButton, type ActionButtonProps, Badge, type BadgeProps, Button, type ButtonProps, Card, Checkbox, type CheckboxProps, CloseButton, type CloseButtonProps, Container, HelpText, type HelpTextProps, IconButton, InfiniteLinearProgress, Input, InputNumber, type InputNumberProps, InputPassword, type InputPasswordProps, type InputProps, Label, type LabelProps, Link, type LinkProps, Select, type SelectOption, type SelectOptions, type SelectProps, Stack, type StackProps, Switch, Textarea, type TextareaProps, ThemeProvider, type ThemeProviderProps, Tooltip, useTheme };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ttoss/ui",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.3.0",
|
|
4
4
|
"description": "Primitive layout, typographic, and other components for styling applications.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "ttoss",
|
|
@@ -26,8 +26,9 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@theme-ui/match-media": "^0.17.1",
|
|
28
28
|
"react-select": "^5.9.0",
|
|
29
|
+
"react-tooltip": "^5.28.0",
|
|
29
30
|
"theme-ui": "^0.17.1",
|
|
30
|
-
"@ttoss/theme": "^2.
|
|
31
|
+
"@ttoss/theme": "^2.3.0"
|
|
31
32
|
},
|
|
32
33
|
"peerDependencies": {
|
|
33
34
|
"@emotion/react": "^11",
|
|
@@ -42,8 +43,8 @@
|
|
|
42
43
|
"jest": "^29.7.0",
|
|
43
44
|
"react": "^19.0.0",
|
|
44
45
|
"tsup": "^8.3.5",
|
|
45
|
-
"@ttoss/react-icons": "^0.4.9",
|
|
46
46
|
"@ttoss/config": "^1.35.2",
|
|
47
|
+
"@ttoss/react-icons": "^0.4.9",
|
|
47
48
|
"@ttoss/test-utils": "^2.1.22"
|
|
48
49
|
},
|
|
49
50
|
"keywords": [
|