@1doc/1ds-react 0.0.2 → 2.7.1
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/CHANGELOG.md +659 -0
- package/README.md +137 -6
- package/package.json +43 -28
- package/src/index.ts +161 -16
- package/src/teste/AttachmentCard.test.tsx +161 -0
- package/src/teste/Chart.test.tsx +233 -0
- package/src/teste/Combobox.test.tsx +251 -0
- package/src/teste/DataTable.test.tsx +70 -0
- package/src/teste/DatePicker.test.tsx +86 -0
- package/src/teste/Drawer.test.tsx +265 -0
- package/src/teste/Dropdown.test.tsx +217 -0
- package/src/teste/Input.test.tsx +64 -0
- package/src/teste/Kanban.test.tsx +333 -0
- package/src/teste/MultiSelect.test.tsx +73 -0
- package/src/teste/Podium.test.tsx +107 -0
- package/src/teste/Popover.test.tsx +221 -0
- package/src/teste/SegmentedControl.test.tsx +183 -0
- package/src/teste/Timeline.test.tsx +100 -0
- package/src/teste/Tree.test.tsx +74 -0
- package/src/teste/setup.ts +7 -0
- package/src/utils/bandeiras.ts +22 -0
- package/src/utils/chart.ts +682 -0
- package/src/utils/density.ts +27 -0
- package/src/utils/overlay-stack.ts +26 -0
- package/src/utils/theme.ts +63 -47
- package/src/utils/toast.ts +89 -0
- package/vitest.config.ts +28 -0
- package/dist/components/Alert/Alert.css +0 -188
- package/dist/components/Alert/Alert.d.ts +0 -65
- package/dist/components/Alert/Alert.js +0 -56
- package/dist/components/Avatar/Avatar.css +0 -88
- package/dist/components/Avatar/Avatar.d.ts +0 -34
- package/dist/components/Avatar/Avatar.js +0 -16
- package/dist/components/Avatar/AvatarGroup.d.ts +0 -12
- package/dist/components/Avatar/AvatarGroup.js +0 -8
- package/dist/components/Badge/Badge.css +0 -155
- package/dist/components/Badge/Badge.d.ts +0 -46
- package/dist/components/Badge/Badge.js +0 -17
- package/dist/components/Button/Button.css +0 -199
- package/dist/components/Button/Button.d.ts +0 -23
- package/dist/components/Button/Button.js +0 -62
- package/dist/components/Checkbox/Checkbox.css +0 -122
- package/dist/components/Checkbox/Checkbox.d.ts +0 -21
- package/dist/components/Checkbox/Checkbox.js +0 -49
- package/dist/components/Divider/Divider.css +0 -81
- package/dist/components/Divider/Divider.d.ts +0 -18
- package/dist/components/Divider/Divider.js +0 -26
- package/dist/components/Grid/Grid.css +0 -154
- package/dist/components/Grid/Grid.d.ts +0 -21
- package/dist/components/Grid/Grid.js +0 -53
- package/dist/components/Icon/Icon.css +0 -55
- package/dist/components/Icon/Icon.d.ts +0 -13
- package/dist/components/Icon/Icon.js +0 -41
- package/dist/components/Input/Input.css +0 -190
- package/dist/components/Input/Input.d.ts +0 -32
- package/dist/components/Input/Input.js +0 -58
- package/dist/components/Link/Link.css +0 -76
- package/dist/components/Link/Link.d.ts +0 -15
- package/dist/components/Link/Link.js +0 -19
- package/dist/components/Logo/Logo.css +0 -32
- package/dist/components/Logo/Logo.d.ts +0 -10
- package/dist/components/Logo/Logo.js +0 -16
- package/dist/components/Modal/Modal.css +0 -155
- package/dist/components/Modal/Modal.d.ts +0 -36
- package/dist/components/Modal/Modal.js +0 -55
- package/dist/components/Radio/Radio.css +0 -114
- package/dist/components/Radio/Radio.d.ts +0 -19
- package/dist/components/Radio/Radio.js +0 -39
- package/dist/components/Select/Select.css +0 -291
- package/dist/components/Select/Select.d.ts +0 -38
- package/dist/components/Select/Select.js +0 -246
- package/dist/components/Spinner/Spinner.css +0 -60
- package/dist/components/Spinner/Spinner.d.ts +0 -16
- package/dist/components/Spinner/Spinner.js +0 -16
- package/dist/components/Switch/Switch.css +0 -127
- package/dist/components/Switch/Switch.d.ts +0 -18
- package/dist/components/Switch/Switch.js +0 -57
- package/dist/components/Tabs/Tab.d.ts +0 -19
- package/dist/components/Tabs/Tab.js +0 -76
- package/dist/components/Tabs/TabContent.d.ts +0 -15
- package/dist/components/Tabs/TabContent.js +0 -11
- package/dist/components/Tabs/Tabs.css +0 -124
- package/dist/components/Tabs/Tabs.d.ts +0 -20
- package/dist/components/Tabs/Tabs.js +0 -14
- package/dist/components/Tabs/TabsContent.d.ts +0 -16
- package/dist/components/Tabs/TabsContent.js +0 -12
- package/dist/components/Tabs/tabs.context.d.ts +0 -2
- package/dist/components/Tabs/tabs.context.js +0 -2
- package/dist/components/Tag/Tag.css +0 -140
- package/dist/components/Tag/Tag.d.ts +0 -63
- package/dist/components/Tag/Tag.js +0 -48
- package/dist/components/Text/Text.css +0 -1213
- package/dist/components/Text/Text.d.ts +0 -70
- package/dist/components/Text/Text.js +0 -89
- package/dist/components/Textarea/Textarea.css +0 -133
- package/dist/components/Textarea/Textarea.d.ts +0 -28
- package/dist/components/Textarea/Textarea.js +0 -72
- package/dist/index.d.ts +0 -25
- package/dist/index.js +0 -27
- package/dist/utils/theme.d.ts +0 -30
- package/dist/utils/theme.js +0 -106
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/* ============================
|
|
2
|
-
Tabs Container
|
|
3
|
-
============================ */
|
|
4
|
-
.umds-tabs {
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-direction: column;
|
|
7
|
-
width: 100%;
|
|
8
|
-
font-family: var(--umds-semantic-font-family-base);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/* ============================
|
|
12
|
-
Tab List (tablist)
|
|
13
|
-
============================ */
|
|
14
|
-
.umds-tabs__list {
|
|
15
|
-
display: flex;
|
|
16
|
-
align-items: stretch;
|
|
17
|
-
border-bottom: 1px solid var(--umds-semantic-color-neutral-light-down);
|
|
18
|
-
gap: 0;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/* ============================
|
|
22
|
-
Individual Tab Button
|
|
23
|
-
============================ */
|
|
24
|
-
.umds-tabs__tab {
|
|
25
|
-
display: flex;
|
|
26
|
-
align-items: center;
|
|
27
|
-
justify-content: center;
|
|
28
|
-
gap: var(--umds-primitive-spacing-nano);
|
|
29
|
-
padding: var(--umds-primitive-spacing-nano) var(--umds-primitive-spacing-xxxs);
|
|
30
|
-
border: none;
|
|
31
|
-
border-bottom: 3px solid transparent;
|
|
32
|
-
background: none;
|
|
33
|
-
cursor: pointer;
|
|
34
|
-
position: relative;
|
|
35
|
-
transition: all 0.2s ease-in-out;
|
|
36
|
-
font-family: var(--umds-semantic-font-family-base);
|
|
37
|
-
color: var(--umds-semantic-color-neutral-dark-pure);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/* ============================
|
|
41
|
-
Label
|
|
42
|
-
============================ */
|
|
43
|
-
.umds-tabs__label {
|
|
44
|
-
font-weight: var(--umds-primitive-font-weight-regular);
|
|
45
|
-
color: var(--umds-semantic-color-neutral-dark-pure);
|
|
46
|
-
white-space: nowrap;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.umds-tabs__label--selected {
|
|
50
|
-
font-weight: var(--umds-primitive-font-weight-bold);
|
|
51
|
-
color: var(--umds-semantic-color-neutral-dark-pure);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/* ============================
|
|
55
|
-
Icon
|
|
56
|
-
============================ */
|
|
57
|
-
.umds-tabs__icon {
|
|
58
|
-
flex-shrink: 0;
|
|
59
|
-
color: inherit;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/* ============================
|
|
63
|
-
Hover State
|
|
64
|
-
============================ */
|
|
65
|
-
.umds-tabs__tab:hover:not(:disabled):not(.umds-tabs__tab--selected) {
|
|
66
|
-
border-bottom-color: var(--umds-semantic-color-primary-pure);
|
|
67
|
-
border-bottom-width: 1px;
|
|
68
|
-
padding-bottom: calc(var(--umds-primitive-spacing-nano) + 2px);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/* ============================
|
|
72
|
-
Selected State
|
|
73
|
-
============================ */
|
|
74
|
-
.umds-tabs__tab--selected {
|
|
75
|
-
border-bottom-color: var(--umds-semantic-color-primary-pure);
|
|
76
|
-
border-bottom-width: 3px;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/* ============================
|
|
80
|
-
Focus State
|
|
81
|
-
============================ */
|
|
82
|
-
.umds-tabs__tab:focus-visible {
|
|
83
|
-
outline: 2px solid var(--umds-semantic-color-neutral-dark-pure);
|
|
84
|
-
outline-offset: -2px;
|
|
85
|
-
border-radius: var(--umds-primitive-border-radius-sm) var(--umds-primitive-border-radius-sm) 0 0;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.umds-tabs__tab:focus:not(:focus-visible) {
|
|
89
|
-
outline: none;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/* ============================
|
|
93
|
-
Disabled State
|
|
94
|
-
============================ */
|
|
95
|
-
.umds-tabs__tab--disabled,
|
|
96
|
-
.umds-tabs__tab:disabled {
|
|
97
|
-
cursor: not-allowed;
|
|
98
|
-
color: var(--umds-semantic-color-neutral-dark-up);
|
|
99
|
-
opacity: 0.6;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.umds-tabs__tab--disabled .umds-tabs__label,
|
|
103
|
-
.umds-tabs__tab:disabled .umds-tabs__label {
|
|
104
|
-
color: var(--umds-semantic-color-neutral-dark-up);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.umds-tabs__tab--disabled .umds-tabs__icon,
|
|
108
|
-
.umds-tabs__tab:disabled .umds-tabs__icon {
|
|
109
|
-
color: var(--umds-semantic-color-neutral-dark-up);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/* ============================
|
|
113
|
-
Content Panel
|
|
114
|
-
============================ */
|
|
115
|
-
.umds-tabs__content {
|
|
116
|
-
padding: var(--umds-primitive-spacing-xxs) 0;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/* ============================
|
|
120
|
-
Tabs Content Container
|
|
121
|
-
============================ */
|
|
122
|
-
.umds-tabs-content {
|
|
123
|
-
width: 100%;
|
|
124
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import './Tabs.css';
|
|
2
|
-
/**
|
|
3
|
-
* Propriedades do componente Tabs.
|
|
4
|
-
* @description Container de navegação por abas. Renderiza os botões de tab via subcomponentes <Tab />.
|
|
5
|
-
*/
|
|
6
|
-
export interface TabsProps {
|
|
7
|
-
/** Valor da tab ativa (controlado) */
|
|
8
|
-
value: string;
|
|
9
|
-
/** Callback chamado quando uma tab é selecionada */
|
|
10
|
-
onChange?: (index: string) => void;
|
|
11
|
-
/** Label de acessibilidade para o tablist */
|
|
12
|
-
ariaLabel?: string;
|
|
13
|
-
/** Classes CSS adicionais */
|
|
14
|
-
className?: string;
|
|
15
|
-
/** Subcomponentes Tab */
|
|
16
|
-
children?: any;
|
|
17
|
-
[key: string]: any;
|
|
18
|
-
}
|
|
19
|
-
declare function Tabs(props: TabsProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
export default Tabs;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import './Tabs.css';
|
|
3
|
-
"use client";
|
|
4
|
-
import TabsContext from "./tabs.context";
|
|
5
|
-
function Tabs(props) {
|
|
6
|
-
function classes() {
|
|
7
|
-
return ["umds-tabs", props.className].filter(Boolean).join(" ");
|
|
8
|
-
}
|
|
9
|
-
return (_jsx(TabsContext.Provider, { value: {
|
|
10
|
-
value: props.value,
|
|
11
|
-
onChange: props.onChange,
|
|
12
|
-
}, children: _jsx("div", { className: classes(), children: _jsx("div", { role: "tablist", className: "umds-tabs__list", "aria-label": props.ariaLabel, children: props.children }) }) }));
|
|
13
|
-
}
|
|
14
|
-
export default Tabs;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Propriedades do componente TabsContent.
|
|
3
|
-
* @description Container para os painéis de conteúdo das tabs.
|
|
4
|
-
* Deve receber o mesmo value usado no componente Tabs.
|
|
5
|
-
*/
|
|
6
|
-
export interface TabsContentProps {
|
|
7
|
-
/** Valor da tab ativa. Deve ser o mesmo value do componente Tabs */
|
|
8
|
-
value: string;
|
|
9
|
-
/** Classes CSS adicionais */
|
|
10
|
-
className?: string;
|
|
11
|
-
/** Subcomponentes TabContent */
|
|
12
|
-
children?: any;
|
|
13
|
-
[key: string]: any;
|
|
14
|
-
}
|
|
15
|
-
declare function TabsContent(props: TabsContentProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export default TabsContent;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import TabsContext from "./tabs.context";
|
|
4
|
-
function TabsContent(props) {
|
|
5
|
-
return (_jsx(TabsContext.Provider, { value: {
|
|
6
|
-
value: props.value,
|
|
7
|
-
onChange() { },
|
|
8
|
-
}, children: _jsx("div", { className: ["umds-tabs-content", props.className]
|
|
9
|
-
.filter(Boolean)
|
|
10
|
-
.join(" "), children: props.children }) }));
|
|
11
|
-
}
|
|
12
|
-
export default TabsContent;
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/* ============================================
|
|
2
|
-
Tag Component
|
|
3
|
-
Variantes: outlined, solid
|
|
4
|
-
Tamanhos: sm, md, lg
|
|
5
|
-
============================================ */
|
|
6
|
-
|
|
7
|
-
.umds-tag {
|
|
8
|
-
display: inline-flex;
|
|
9
|
-
align-items: center;
|
|
10
|
-
box-sizing: border-box;
|
|
11
|
-
font-family: var(--umds-semantic-font-family-base);
|
|
12
|
-
font-weight: var(--umds-primitive-font-weight-semibold);
|
|
13
|
-
line-height: 1;
|
|
14
|
-
white-space: nowrap;
|
|
15
|
-
border: 1px solid transparent;
|
|
16
|
-
cursor: default;
|
|
17
|
-
transition: all 0.15s ease;
|
|
18
|
-
max-width: 100%;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.umds-tag__label {
|
|
22
|
-
overflow: hidden;
|
|
23
|
-
text-overflow: ellipsis;
|
|
24
|
-
white-space: nowrap;
|
|
25
|
-
flex-shrink: 1;
|
|
26
|
-
min-width: 0;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.umds-tag__icon {
|
|
30
|
-
display: inline-flex;
|
|
31
|
-
align-items: center;
|
|
32
|
-
justify-content: center;
|
|
33
|
-
flex-shrink: 0;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.umds-tag__icon--clickable {
|
|
37
|
-
cursor: pointer;
|
|
38
|
-
border-radius: var(--umds-primitive-border-radius-xs);
|
|
39
|
-
transition: background-color 0.15s ease;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.umds-tag__icon--clickable:hover {
|
|
43
|
-
opacity: 0.7;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.umds-tag__icon--clickable:focus-visible {
|
|
47
|
-
outline: 2px solid var(--umds-semantic-color-primary-pure);
|
|
48
|
-
outline-offset: 1px;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.umds-tag__close {
|
|
52
|
-
display: inline-flex;
|
|
53
|
-
align-items: center;
|
|
54
|
-
justify-content: center;
|
|
55
|
-
flex-shrink: 0;
|
|
56
|
-
cursor: pointer;
|
|
57
|
-
border-radius: var(--umds-primitive-border-radius-xs);
|
|
58
|
-
transition: background-color 0.15s ease;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.umds-tag__close:hover {
|
|
62
|
-
opacity: 0.7;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.umds-tag__close:focus-visible {
|
|
66
|
-
outline: 2px solid var(--umds-semantic-color-primary-pure);
|
|
67
|
-
outline-offset: 1px;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/* ----------------------------------------
|
|
71
|
-
Sizes
|
|
72
|
-
---------------------------------------- */
|
|
73
|
-
|
|
74
|
-
/* SM: border-radius 6px, gap 4px, padding 8px H / 2px V, font-size 12px */
|
|
75
|
-
.umds-tag--sm {
|
|
76
|
-
gap: 4px;
|
|
77
|
-
padding: 2px 8px;
|
|
78
|
-
border-radius: 6px;
|
|
79
|
-
font-size: var(--umds-primitive-font-size-xxxs);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/* MD: border-radius 8px, gap 8px, height 28px, padding 6px 8px, font-size 14px */
|
|
83
|
-
.umds-tag--md {
|
|
84
|
-
gap: 8px;
|
|
85
|
-
padding: 6px 8px;
|
|
86
|
-
height: 28px;
|
|
87
|
-
border-radius: 8px;
|
|
88
|
-
font-size: var(--umds-primitive-font-size-xxs);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/* LG: border-radius 8px, gap 8px, height 40px, padding 8px, font-size 16px */
|
|
92
|
-
.umds-tag--lg {
|
|
93
|
-
gap: 8px;
|
|
94
|
-
padding: 8px;
|
|
95
|
-
height: 40px;
|
|
96
|
-
border-radius: 8px;
|
|
97
|
-
font-size: var(--umds-primitive-font-size-xs);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/* ----------------------------------------
|
|
101
|
-
Variant: Outlined
|
|
102
|
-
---------------------------------------- */
|
|
103
|
-
.umds-tag--outlined {
|
|
104
|
-
background-color: transparent;
|
|
105
|
-
border-color: var(--umds-semantic-color-neutral-light-down);
|
|
106
|
-
color: var(--umds-semantic-color-neutral-dark-down);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.umds-tag--outlined:hover:not(.umds-tag--disabled) {
|
|
110
|
-
background-color: var(--umds-semantic-color-neutral-light-medium);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/* ----------------------------------------
|
|
114
|
-
Variant: Solid
|
|
115
|
-
---------------------------------------- */
|
|
116
|
-
.umds-tag--solid {
|
|
117
|
-
background-color: var(--umds-semantic-color-neutral-dark-down);
|
|
118
|
-
border-color: var(--umds-semantic-color-neutral-dark-down);
|
|
119
|
-
color: var(--umds-semantic-color-neutral-light-pure);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
.umds-tag--solid:hover:not(.umds-tag--disabled) {
|
|
123
|
-
background-color: var(--umds-semantic-color-neutral-dark-medium);
|
|
124
|
-
border-color: var(--umds-semantic-color-neutral-dark-medium);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/* ----------------------------------------
|
|
128
|
-
Disabled
|
|
129
|
-
---------------------------------------- */
|
|
130
|
-
.umds-tag--disabled {
|
|
131
|
-
opacity: 0.5;
|
|
132
|
-
cursor: not-allowed;
|
|
133
|
-
pointer-events: none;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
.umds-tag--disabled .umds-tag__close,
|
|
137
|
-
.umds-tag--disabled .umds-tag__icon--clickable {
|
|
138
|
-
cursor: not-allowed;
|
|
139
|
-
pointer-events: none;
|
|
140
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import './Tag.css';
|
|
2
|
-
/**
|
|
3
|
-
* Componente Tag para exibir rótulos, categorias e seleções.
|
|
4
|
-
* Suporta variantes outlined/solid, 3 tamanhos e ícones opcionais.
|
|
5
|
-
* Ideal para uso em multi-select, filtros e categorização.
|
|
6
|
-
*/
|
|
7
|
-
export interface TagProps {
|
|
8
|
-
/**
|
|
9
|
-
* Texto exibido dentro da tag.
|
|
10
|
-
*/
|
|
11
|
-
label?: string;
|
|
12
|
-
/**
|
|
13
|
-
* Variante visual da tag.
|
|
14
|
-
* @default 'outlined'
|
|
15
|
-
*/
|
|
16
|
-
variant?: "outlined" | "solid";
|
|
17
|
-
/**
|
|
18
|
-
* Tamanho da tag.
|
|
19
|
-
* @default 'md'
|
|
20
|
-
*/
|
|
21
|
-
size?: "sm" | "md" | "lg";
|
|
22
|
-
/**
|
|
23
|
-
* Nome do ícone Iconoir exibido à esquerda do label.
|
|
24
|
-
*/
|
|
25
|
-
iconStart?: string;
|
|
26
|
-
/**
|
|
27
|
-
* Nome do ícone Iconoir exibido à direita do label (antes do close).
|
|
28
|
-
*/
|
|
29
|
-
iconEnd?: string;
|
|
30
|
-
/**
|
|
31
|
-
* Se true, exibe o botão de fechar (ícone xmark).
|
|
32
|
-
* @default false
|
|
33
|
-
*/
|
|
34
|
-
closable?: boolean;
|
|
35
|
-
/**
|
|
36
|
-
* Callback disparado ao clicar no botão de fechar.
|
|
37
|
-
*/
|
|
38
|
-
onClose?: (event: any) => void;
|
|
39
|
-
/**
|
|
40
|
-
* Callback disparado ao clicar no ícone à esquerda.
|
|
41
|
-
*/
|
|
42
|
-
onIconStartClick?: (event: any) => void;
|
|
43
|
-
/**
|
|
44
|
-
* Callback disparado ao clicar no ícone à direita.
|
|
45
|
-
*/
|
|
46
|
-
onIconEndClick?: (event: any) => void;
|
|
47
|
-
/**
|
|
48
|
-
* Se a tag está desabilitada.
|
|
49
|
-
* @default false
|
|
50
|
-
*/
|
|
51
|
-
disabled?: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Classes CSS adicionais.
|
|
54
|
-
*/
|
|
55
|
-
className?: string;
|
|
56
|
-
/**
|
|
57
|
-
* Conteúdo filho (alternativa ao label).
|
|
58
|
-
*/
|
|
59
|
-
children?: any;
|
|
60
|
-
[key: string]: any;
|
|
61
|
-
}
|
|
62
|
-
declare function Tag(props: TagProps): import("react/jsx-runtime").JSX.Element;
|
|
63
|
-
export default Tag;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import './Tag.css';
|
|
3
|
-
"use client";
|
|
4
|
-
import Icon from "../Icon/Icon";
|
|
5
|
-
function Tag(props) {
|
|
6
|
-
function classes() {
|
|
7
|
-
return [
|
|
8
|
-
"umds-tag",
|
|
9
|
-
`umds-tag--${props.variant || "outlined"}`,
|
|
10
|
-
`umds-tag--${props.size || "md"}`,
|
|
11
|
-
props.disabled ? "umds-tag--disabled" : "",
|
|
12
|
-
props.className,
|
|
13
|
-
]
|
|
14
|
-
.filter(Boolean)
|
|
15
|
-
.join(" ");
|
|
16
|
-
}
|
|
17
|
-
function iconSize() {
|
|
18
|
-
const size = props.size || "md";
|
|
19
|
-
if (size === "lg") {
|
|
20
|
-
return "md";
|
|
21
|
-
}
|
|
22
|
-
return "sm";
|
|
23
|
-
}
|
|
24
|
-
function handleClose(event) {
|
|
25
|
-
event.stopPropagation();
|
|
26
|
-
if (!props.disabled && props.onClose) {
|
|
27
|
-
props.onClose(event);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
function handleIconStartClick(event) {
|
|
31
|
-
event.stopPropagation();
|
|
32
|
-
if (!props.disabled && props.onIconStartClick) {
|
|
33
|
-
props.onIconStartClick(event);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
function handleIconEndClick(event) {
|
|
37
|
-
event.stopPropagation();
|
|
38
|
-
if (!props.disabled && props.onIconEndClick) {
|
|
39
|
-
props.onIconEndClick(event);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return (_jsxs("span", { role: "status", ...props, className: classes(), children: [props.iconStart ? (_jsx("span", { onClick: (event) => handleIconStartClick(event), role: props.onIconStartClick ? "button" : undefined, tabIndex: props.onIconStartClick ? 0 : undefined, "aria-label": props.onIconStartClick ? props.iconStart : undefined, className: props.onIconStartClick
|
|
43
|
-
? "umds-tag__icon umds-tag__icon--clickable"
|
|
44
|
-
: "umds-tag__icon", children: _jsx(Icon, { variant: "inherit", name: props.iconStart, size: iconSize() }) })) : null, _jsx("span", { className: "umds-tag__label", children: props.label || props.children }), props.iconEnd ? (_jsx("span", { onClick: (event) => handleIconEndClick(event), role: props.onIconEndClick ? "button" : undefined, tabIndex: props.onIconEndClick ? 0 : undefined, "aria-label": props.onIconEndClick ? props.iconEnd : undefined, className: props.onIconEndClick
|
|
45
|
-
? "umds-tag__icon umds-tag__icon--clickable"
|
|
46
|
-
: "umds-tag__icon", children: _jsx(Icon, { variant: "inherit", name: props.iconEnd, size: iconSize() }) })) : null, props.closable ? (_jsx("span", { role: "button", "aria-label": "Remover", className: "umds-tag__close", onClick: (event) => handleClose(event), tabIndex: 0, children: _jsx(Icon, { name: "xmark", variant: "inherit", size: iconSize() }) })) : null] }));
|
|
47
|
-
}
|
|
48
|
-
export default Tag;
|