@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.
Files changed (101) hide show
  1. package/CHANGELOG.md +659 -0
  2. package/README.md +137 -6
  3. package/package.json +43 -28
  4. package/src/index.ts +161 -16
  5. package/src/teste/AttachmentCard.test.tsx +161 -0
  6. package/src/teste/Chart.test.tsx +233 -0
  7. package/src/teste/Combobox.test.tsx +251 -0
  8. package/src/teste/DataTable.test.tsx +70 -0
  9. package/src/teste/DatePicker.test.tsx +86 -0
  10. package/src/teste/Drawer.test.tsx +265 -0
  11. package/src/teste/Dropdown.test.tsx +217 -0
  12. package/src/teste/Input.test.tsx +64 -0
  13. package/src/teste/Kanban.test.tsx +333 -0
  14. package/src/teste/MultiSelect.test.tsx +73 -0
  15. package/src/teste/Podium.test.tsx +107 -0
  16. package/src/teste/Popover.test.tsx +221 -0
  17. package/src/teste/SegmentedControl.test.tsx +183 -0
  18. package/src/teste/Timeline.test.tsx +100 -0
  19. package/src/teste/Tree.test.tsx +74 -0
  20. package/src/teste/setup.ts +7 -0
  21. package/src/utils/bandeiras.ts +22 -0
  22. package/src/utils/chart.ts +682 -0
  23. package/src/utils/density.ts +27 -0
  24. package/src/utils/overlay-stack.ts +26 -0
  25. package/src/utils/theme.ts +63 -47
  26. package/src/utils/toast.ts +89 -0
  27. package/vitest.config.ts +28 -0
  28. package/dist/components/Alert/Alert.css +0 -188
  29. package/dist/components/Alert/Alert.d.ts +0 -65
  30. package/dist/components/Alert/Alert.js +0 -56
  31. package/dist/components/Avatar/Avatar.css +0 -88
  32. package/dist/components/Avatar/Avatar.d.ts +0 -34
  33. package/dist/components/Avatar/Avatar.js +0 -16
  34. package/dist/components/Avatar/AvatarGroup.d.ts +0 -12
  35. package/dist/components/Avatar/AvatarGroup.js +0 -8
  36. package/dist/components/Badge/Badge.css +0 -155
  37. package/dist/components/Badge/Badge.d.ts +0 -46
  38. package/dist/components/Badge/Badge.js +0 -17
  39. package/dist/components/Button/Button.css +0 -199
  40. package/dist/components/Button/Button.d.ts +0 -23
  41. package/dist/components/Button/Button.js +0 -62
  42. package/dist/components/Checkbox/Checkbox.css +0 -122
  43. package/dist/components/Checkbox/Checkbox.d.ts +0 -21
  44. package/dist/components/Checkbox/Checkbox.js +0 -49
  45. package/dist/components/Divider/Divider.css +0 -81
  46. package/dist/components/Divider/Divider.d.ts +0 -18
  47. package/dist/components/Divider/Divider.js +0 -26
  48. package/dist/components/Grid/Grid.css +0 -154
  49. package/dist/components/Grid/Grid.d.ts +0 -21
  50. package/dist/components/Grid/Grid.js +0 -53
  51. package/dist/components/Icon/Icon.css +0 -55
  52. package/dist/components/Icon/Icon.d.ts +0 -13
  53. package/dist/components/Icon/Icon.js +0 -41
  54. package/dist/components/Input/Input.css +0 -190
  55. package/dist/components/Input/Input.d.ts +0 -32
  56. package/dist/components/Input/Input.js +0 -58
  57. package/dist/components/Link/Link.css +0 -76
  58. package/dist/components/Link/Link.d.ts +0 -15
  59. package/dist/components/Link/Link.js +0 -19
  60. package/dist/components/Logo/Logo.css +0 -32
  61. package/dist/components/Logo/Logo.d.ts +0 -10
  62. package/dist/components/Logo/Logo.js +0 -16
  63. package/dist/components/Modal/Modal.css +0 -155
  64. package/dist/components/Modal/Modal.d.ts +0 -36
  65. package/dist/components/Modal/Modal.js +0 -55
  66. package/dist/components/Radio/Radio.css +0 -114
  67. package/dist/components/Radio/Radio.d.ts +0 -19
  68. package/dist/components/Radio/Radio.js +0 -39
  69. package/dist/components/Select/Select.css +0 -291
  70. package/dist/components/Select/Select.d.ts +0 -38
  71. package/dist/components/Select/Select.js +0 -246
  72. package/dist/components/Spinner/Spinner.css +0 -60
  73. package/dist/components/Spinner/Spinner.d.ts +0 -16
  74. package/dist/components/Spinner/Spinner.js +0 -16
  75. package/dist/components/Switch/Switch.css +0 -127
  76. package/dist/components/Switch/Switch.d.ts +0 -18
  77. package/dist/components/Switch/Switch.js +0 -57
  78. package/dist/components/Tabs/Tab.d.ts +0 -19
  79. package/dist/components/Tabs/Tab.js +0 -76
  80. package/dist/components/Tabs/TabContent.d.ts +0 -15
  81. package/dist/components/Tabs/TabContent.js +0 -11
  82. package/dist/components/Tabs/Tabs.css +0 -124
  83. package/dist/components/Tabs/Tabs.d.ts +0 -20
  84. package/dist/components/Tabs/Tabs.js +0 -14
  85. package/dist/components/Tabs/TabsContent.d.ts +0 -16
  86. package/dist/components/Tabs/TabsContent.js +0 -12
  87. package/dist/components/Tabs/tabs.context.d.ts +0 -2
  88. package/dist/components/Tabs/tabs.context.js +0 -2
  89. package/dist/components/Tag/Tag.css +0 -140
  90. package/dist/components/Tag/Tag.d.ts +0 -63
  91. package/dist/components/Tag/Tag.js +0 -48
  92. package/dist/components/Text/Text.css +0 -1213
  93. package/dist/components/Text/Text.d.ts +0 -70
  94. package/dist/components/Text/Text.js +0 -89
  95. package/dist/components/Textarea/Textarea.css +0 -133
  96. package/dist/components/Textarea/Textarea.d.ts +0 -28
  97. package/dist/components/Textarea/Textarea.js +0 -72
  98. package/dist/index.d.ts +0 -25
  99. package/dist/index.js +0 -27
  100. package/dist/utils/theme.d.ts +0 -30
  101. package/dist/utils/theme.js +0 -106
@@ -1,36 +0,0 @@
1
- import './Modal.css';
2
- export interface ModalProps {
3
- /** Controla se o modal está visível */
4
- open?: boolean;
5
- /** Tipo do modal, altera o ícone e o esquema de cores */
6
- variant?: "default" | "success" | "error" | "warning";
7
- /** Título em destaque */
8
- title?: string;
9
- /** Texto de descrição/apoio */
10
- description?: string;
11
- /** Texto do botão de confirmação/ação primária */
12
- confirmLabel?: string;
13
- /** Texto do botão de cancelamento/ação secundária */
14
- cancelLabel?: string;
15
- /** Callback disparado ao clicar no botão primário */
16
- onConfirm?: (event: any) => void;
17
- /** Callback disparado ao clicar no botão de cancelar ou no X */
18
- onCancel?: (event: any) => void;
19
- /** Callback disparado para fechar o modal */
20
- onClose?: (event: any) => void;
21
- /** Oculta o botão de fechar (X) no topo direito */
22
- hideCloseButton?: boolean;
23
- /** Permite fechar ao clicar no overlay escuro */
24
- closeOnOverlayClick?: boolean;
25
- /** Classes CSS adicionais para o container do modal */
26
- className?: string;
27
- /** Se verdadeiro, renderiza o modal inline (sem fixed/overlay), útil para documentação */
28
- inline?: boolean;
29
- /** Conteúdo customizado no rodapé */
30
- footerSlot?: any;
31
- /** Conteúdo customizado no corpo */
32
- children?: any;
33
- [key: string]: any;
34
- }
35
- declare function Modal(props: ModalProps): import("react/jsx-runtime").JSX.Element;
36
- export default Modal;
@@ -1,55 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import './Modal.css';
3
- "use client";
4
- import Icon from "../Icon/Icon";
5
- import Text from "../Text/Text";
6
- import Button from "../Button/Button";
7
- function Modal(props) {
8
- function rootClasses() {
9
- return [
10
- props.inline ? "umds-modal-root--inline" : "umds-modal-root",
11
- props.open ? "umds-modal-root--open" : "umds-modal-root--closed",
12
- ]
13
- .filter(Boolean)
14
- .join(" ");
15
- }
16
- function modalClasses() {
17
- return [
18
- "umds-modal",
19
- `umds-modal--${props.variant || "default"}`,
20
- props.className,
21
- ]
22
- .filter(Boolean)
23
- .join(" ");
24
- }
25
- function iconName() {
26
- switch (props.variant) {
27
- case "success":
28
- return "check-circle";
29
- case "error":
30
- return "warning-circle";
31
- case "warning":
32
- return "warning-triangle";
33
- default:
34
- return "";
35
- }
36
- }
37
- function iconVariantClass() {
38
- return props.variant ? `umds-modal__icon--${props.variant}` : "";
39
- }
40
- function handleClose(event) {
41
- if (props.onClose) {
42
- props.onClose(event);
43
- }
44
- else if (props.onCancel) {
45
- props.onCancel(event);
46
- }
47
- }
48
- function handleOverlayClick(event) {
49
- if (props.closeOnOverlayClick !== false) {
50
- handleClose(event);
51
- }
52
- }
53
- return (_jsx(_Fragment, { children: props.open ? (_jsx(_Fragment, { children: _jsxs("div", { className: rootClasses(), children: [_jsx("div", { className: "umds-modal-overlay", onClick: (e) => handleOverlayClick(e) }), _jsxs("div", { role: "dialog", "aria-modal": "true", className: modalClasses(), children: [!props.hideCloseButton ? (_jsx("div", { className: "umds-modal__close-wrapper", children: _jsx("button", { "aria-label": "Fechar", className: "umds-modal__close-button", onClick: (e) => handleClose(e), children: _jsx(Icon, { name: "xmark", size: "sm" }) }) })) : null, _jsxs("div", { className: "umds-modal__content", children: [_jsxs("div", { className: "umds-modal__header", children: [props.variant && props.variant !== "default" ? (_jsx("div", { className: `umds-modal__icon ${iconVariantClass()}`, children: _jsx(Icon, { customSize: "80px", name: iconName() }) })) : null, _jsxs("div", { className: "umds-modal__text-group", children: [props.title ? (_jsx(Text, { variant: "h5", weight: "bold", children: props.title })) : null, props.description ? (_jsx(Text, { variant: "body2", color: "secondary", children: props.description })) : null] })] }), _jsx(_Fragment, { children: props.children }), _jsxs("div", { className: "umds-modal__footer", children: [props.footerSlot ? _jsx(_Fragment, { children: props.footerSlot }) : null, !props.footerSlot ? (_jsxs(_Fragment, { children: [props.cancelLabel ? (_jsx(Button, { variant: "text", onClick: (e) => props.onCancel?.(e), children: props.cancelLabel })) : null, props.confirmLabel ? (_jsx(Button, { variant: "primary", onClick: (e) => props.onConfirm?.(e), children: props.confirmLabel })) : null] })) : null] })] })] })] }) })) : null }));
54
- }
55
- export default Modal;
@@ -1,114 +0,0 @@
1
- /* Main Container */
2
- .umds-radio {
3
- display: inline-flex;
4
- align-items: center;
5
- position: relative;
6
- cursor: pointer;
7
- font-family: var(--umds-semantic-font-family-base, inherit);
8
- gap: var(--umds-primitive-spacing-nano);
9
- }
10
-
11
- .umds-radio--disabled {
12
- cursor: not-allowed;
13
- opacity: 0.6;
14
- }
15
-
16
- /* Input (Hidden visually but accessible) */
17
- .umds-radio__input {
18
- position: absolute;
19
- opacity: 0;
20
- width: 0;
21
- height: 0;
22
- margin: 0;
23
- }
24
-
25
- /* Control (Circle) */
26
- .umds-radio__control {
27
- display: flex;
28
- align-items: center;
29
- justify-content: center;
30
- border: 1px solid var(--umds-semantic-color-neutral-dark-up);
31
- border-radius: 50%;
32
- background-color: var(--umds-semantic-color-background-white);
33
- transition: all 0.2s ease-in-out;
34
- flex-shrink: 0;
35
- }
36
-
37
- /* Sizes */
38
- .umds-radio--small .umds-radio__control {
39
- width: 16px;
40
- height: 16px;
41
- }
42
-
43
- .umds-radio--medium .umds-radio__control {
44
- width: 20px;
45
- height: 20px;
46
- }
47
-
48
- .umds-radio--large .umds-radio__control {
49
- width: 24px;
50
- height: 24px;
51
- }
52
-
53
- /* Indicator (Dot) */
54
- .umds-radio__indicator {
55
- background-color: var(--umds-semantic-color-background-white);
56
- border-radius: 50%;
57
- width: 50%;
58
- height: 50%;
59
- display: block;
60
- }
61
-
62
- /* Checked State */
63
- .umds-radio--checked .umds-radio__control {
64
- background-color: var(--umds-semantic-color-primary-pure);
65
- border-color: var(--umds-semantic-color-primary-pure);
66
- }
67
-
68
- /* Hover State (not disabled) - Default (Unchecked) */
69
- .umds-radio:not(.umds-radio--disabled):hover .umds-radio__control {
70
- border-color: var(--umds-semantic-color-neutral-dark-down);
71
- }
72
-
73
- /* Hover State - Checked */
74
- .umds-radio--checked:not(.umds-radio--disabled):hover .umds-radio__control {
75
- background-color: var(--umds-semantic-color-primary-dark);
76
- border-color: var(--umds-semantic-color-primary-dark);
77
- }
78
-
79
- /* Focus State */
80
- .umds-radio__input:focus+.umds-radio__control {
81
- box-shadow: 0 0 0 2px var(--umds-semantic-color-background-white), 0 0 0 4px var(--umds-semantic-color-primary-medium);
82
- }
83
-
84
- /* Invalid/Error State */
85
- .umds-radio--invalid .umds-radio__control {
86
- border-color: var(--umds-semantic-color-feedback-negative-pure);
87
- }
88
-
89
- .umds-radio--invalid.umds-radio--checked .umds-radio__control {
90
- background-color: var(--umds-semantic-color-feedback-negative-pure);
91
- border-color: var(--umds-semantic-color-feedback-negative-pure);
92
- }
93
-
94
- /* Content (Label + Description) */
95
- .umds-radio__content {
96
- display: flex;
97
- flex-direction: column;
98
- justify-content: center;
99
- }
100
-
101
- /* Adjust top padding if needed to align with box */
102
- .umds-radio--small .umds-radio__content {
103
- padding-top: 0;
104
- }
105
-
106
- .umds-radio__label {
107
- /* Styles handled by Text component */
108
- display: inline-block;
109
- }
110
-
111
- .umds-radio__description {
112
- /* Styles handled by Text component */
113
- margin-top: 2px;
114
- }
@@ -1,19 +0,0 @@
1
- import './Radio.css';
2
- export interface RadioProps {
3
- checked?: any;
4
- defaultChecked?: boolean;
5
- disabled?: boolean;
6
- required?: boolean;
7
- invalid?: boolean;
8
- size?: "small" | "medium" | "large";
9
- name?: string;
10
- value?: string;
11
- id?: string;
12
- label?: string;
13
- description?: string;
14
- className?: string;
15
- onChange?: (checked: boolean) => void;
16
- [key: string]: any;
17
- }
18
- declare function Radio(props: RadioProps): import("react/jsx-runtime").JSX.Element;
19
- export default Radio;
@@ -1,39 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import './Radio.css';
3
- "use client";
4
- import { useState } from "react";
5
- import Text from "../Text/Text";
6
- function Radio(props) {
7
- const [internalChecked, setInternalChecked] = useState(() => props.defaultChecked || false);
8
- function isChecked() {
9
- return props.checked !== undefined ? props.checked : internalChecked;
10
- }
11
- function handleChange(event) {
12
- if (props.disabled)
13
- return;
14
- const newValue = event.target.checked;
15
- setInternalChecked(newValue);
16
- if (typeof props.onChange === "function") {
17
- props.onChange(newValue);
18
- }
19
- }
20
- function classes() {
21
- const checkedValue = props.checked !== undefined ? props.checked : internalChecked;
22
- return [
23
- "umds-radio",
24
- `umds-radio--${props.size || "medium"}`,
25
- props.disabled ? "umds-radio--disabled" : "",
26
- props.invalid ? "umds-radio--invalid" : "",
27
- checkedValue ? "umds-radio--checked" : "",
28
- props.className,
29
- ]
30
- .filter(Boolean)
31
- .join(" ");
32
- }
33
- return (_jsxs("label", { className: classes(), children: [_jsx("input", { type: "radio", className: "umds-radio__input", checked: isChecked(), disabled: props.disabled, required: props.required, name: props.name, value: props.value, id: props.id, onChange: (event) => handleChange(event) }), _jsx("span", { className: "umds-radio__control", children: isChecked() ? _jsx("span", { className: "umds-radio__indicator" }) : null }), props.label || props.description ? (_jsxs("span", { className: "umds-radio__content", children: [props.label ? (_jsx(Text, { as: "span", className: "umds-radio__label", variant: props.size === "small"
34
- ? "caption"
35
- : props.size === "large"
36
- ? "body1"
37
- : "body2", children: props.label })) : null, props.description ? (_jsx(Text, { as: "span", variant: "caption", color: "secondary", className: "umds-radio__description", children: props.description })) : null] })) : null] }));
38
- }
39
- export default Radio;
@@ -1,291 +0,0 @@
1
- .umds-select {
2
- display: flex;
3
- flex-direction: column;
4
- gap: var(--umds-primitive-spacing-nano);
5
- font-family: var(--umds-semantic-font-family-base);
6
- width: 320px;
7
- }
8
-
9
- .umds-select--full-width {
10
- width: 100%;
11
- }
12
-
13
- .umds-select__label {
14
- display: flex;
15
- align-items: center;
16
- }
17
-
18
- .umds-select__required {
19
- color: var(--umds-semantic-color-feedback-negative-pure);
20
- }
21
-
22
- .umds-select__container {
23
- position: relative;
24
- width: 100%;
25
- }
26
-
27
- .umds-select__trigger {
28
- display: flex;
29
- align-items: center;
30
- justify-content: space-between;
31
- background-color: var(--umds-semantic-color-background-white);
32
- border: 1px solid var(--umds-semantic-color-neutral-dark-up);
33
- border-radius: var(--umds-primitive-border-radius-sm);
34
- padding: var(--umds-primitive-spacing-nano) var(--umds-primitive-spacing-xxxs);
35
- min-height: 48px;
36
- cursor: pointer;
37
- transition: all 0.2s ease;
38
- box-sizing: border-box;
39
- width: 100%;
40
- }
41
-
42
- .umds-select--small .umds-select__trigger {
43
- min-height: 32px;
44
- padding: var(--umds-primitive-spacing-nano) var(--umds-primitive-spacing-nano);
45
- }
46
-
47
- .umds-select--large .umds-select__trigger {
48
- min-height: 56px;
49
- padding: var(--umds-primitive-spacing-nano) var(--umds-primitive-spacing-xxs);
50
- }
51
-
52
- .umds-select__trigger:hover {
53
- border-color: var(--umds-semantic-color-neutral-dark-down);
54
- }
55
-
56
- .umds-select__trigger:focus {
57
- outline: 2px solid var(--umds-semantic-color-neutral-dark-down);
58
- outline-offset: 2px;
59
- }
60
-
61
- .umds-select--open .umds-select__trigger {
62
- border-color: var(--umds-semantic-color-primary-pure);
63
- box-shadow: 0 0 0 1px var(--umds-semantic-color-primary-pure);
64
- }
65
-
66
- .umds-select--disabled .umds-select__trigger {
67
- background-color: var(--umds-semantic-color-neutral-light-medium);
68
- border-color: var(--umds-semantic-color-neutral-light-down);
69
- cursor: not-allowed;
70
- pointer-events: none;
71
- }
72
-
73
- .umds-select--invalid .umds-select__trigger {
74
- border-color: var(--umds-semantic-color-feedback-negative-pure);
75
- }
76
-
77
- .umds-select__values {
78
- display: flex;
79
- flex-wrap: wrap;
80
- gap: 4px;
81
- flex: 1;
82
- overflow: hidden;
83
- min-width: 0;
84
- align-items: center;
85
- }
86
-
87
- .umds-select--has-tags .umds-select__values {
88
- overflow: visible;
89
- }
90
-
91
- .umds-select__placeholder {
92
- color: var(--umds-semantic-color-neutral-light-down);
93
- white-space: nowrap;
94
- overflow: hidden;
95
- text-overflow: ellipsis;
96
- }
97
-
98
- .umds-select__actions {
99
- display: flex;
100
- align-items: center;
101
- gap: var(--umds-primitive-spacing-nano);
102
- margin-left: 8px;
103
- color: var(--umds-semantic-color-neutral-dark-up);
104
- }
105
-
106
- .umds-select__arrow {
107
- display: flex;
108
- transition: transform 0.2s ease;
109
- }
110
-
111
- .umds-select--open .umds-select__arrow {
112
- transform: rotate(0deg);
113
- /* handled by icon name chagne but keeping just in case */
114
- }
115
-
116
- /* Options Dropdown */
117
- .umds-select__dropdown {
118
- position: absolute;
119
- top: calc(100% + 4px);
120
- left: 0;
121
- width: 100%;
122
- background-color: var(--umds-semantic-color-background-white);
123
- border: 1px solid var(--umds-semantic-color-neutral-dark-up);
124
- border-radius: var(--umds-primitive-border-radius-sm);
125
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
126
- z-index: 5000;
127
- max-height: 300px;
128
- display: flex;
129
- flex-direction: column;
130
- overflow: hidden;
131
- }
132
-
133
- .umds-select__search-container {
134
- display: flex;
135
- align-items: center;
136
- padding: 8px 12px;
137
- border-bottom: 1px solid var(--umds-semantic-color-neutral-light-medium);
138
- gap: 8px;
139
- background-color: var(--umds-semantic-color-background-white);
140
- }
141
-
142
- .umds-select__search-icon {
143
- display: flex;
144
- align-items: center;
145
- color: var(--umds-semantic-color-neutral-dark-up);
146
- }
147
-
148
- .umds-select__search-input {
149
- flex: 1;
150
- border: none;
151
- outline: none;
152
- font-size: var(--umds-primitive-font-size-xxs);
153
- color: var(--umds-semantic-color-neutral-pure);
154
- background: transparent;
155
- }
156
-
157
- /* Inline Search Variant Styles */
158
- .umds-select--search-inline .umds-select__search-container {
159
- padding: 0 12px;
160
- height: 48px;
161
- border-bottom: 1px solid var(--umds-semantic-color-neutral-light-medium);
162
- }
163
-
164
- .umds-select--search-inline.umds-select--small .umds-select__search-container {
165
- height: 32px;
166
- }
167
-
168
- .umds-select--search-inline.umds-select--large .umds-select__search-container {
169
- height: 56px;
170
- }
171
-
172
- .umds-select__search-close {
173
- cursor: pointer;
174
- display: flex;
175
- align-items: center;
176
- color: var(--umds-semantic-color-neutral-dark-up);
177
- opacity: 0.6;
178
- transition: opacity 0.2s;
179
- }
180
-
181
- .umds-select__search-close:hover {
182
- opacity: 1;
183
- }
184
-
185
- .umds-select__options {
186
- overflow-y: auto;
187
- flex: 1;
188
- padding: 4px 0;
189
- }
190
-
191
- .umds-select__option {
192
- display: flex;
193
- align-items: center;
194
- padding: 8px 12px;
195
- cursor: pointer;
196
- transition: background-color 0.1s ease;
197
- gap: 8px;
198
- color: var(--umds-semantic-color-neutral-pure);
199
- }
200
-
201
- .umds-select__option:hover {
202
- background-color: var(--umds-semantic-color-neutral-light-medium);
203
- }
204
-
205
- .umds-select__option--selected {
206
- background-color: var(--umds-semantic-color-primary-light);
207
- color: var(--umds-semantic-color-neutral-pure);
208
- font-weight: var(--umds-primitive-font-weight-semibold);
209
- }
210
-
211
- .umds-select__option--selected:hover {
212
- background-color: var(--umds-semantic-color-primary-light);
213
- }
214
-
215
- .umds-select__option-check {
216
- display: flex;
217
- align-items: center;
218
- color: var(--umds-semantic-color-primary-pure);
219
- }
220
-
221
- .umds-select__option-content {
222
- flex: 1;
223
- }
224
-
225
- .umds-select__no-options {
226
- padding: 16px;
227
- text-align: center;
228
- }
229
-
230
- .umds-select__loading-more {
231
- display: flex;
232
- align-items: center;
233
- justify-content: center;
234
- gap: 8px;
235
- padding: 8px;
236
- border-top: 1px solid var(--umds-semantic-color-neutral-light-medium);
237
- }
238
-
239
- /* Tags */
240
- .umds-select__tags {
241
- display: flex;
242
- flex-wrap: wrap;
243
- gap: 4px;
244
- }
245
-
246
- .umds-select__tag {
247
- display: flex;
248
- align-items: center;
249
- background-color: var(--umds-semantic-color-neutral-light-medium);
250
- border-radius: var(--umds-primitive-border-radius-xs);
251
- padding: 2px 4px 2px 8px;
252
- gap: 4px;
253
- }
254
-
255
- .umds-select__tag-close {
256
- cursor: pointer;
257
- display: flex;
258
- opacity: 0.6;
259
- }
260
-
261
- .umds-select__tag-close:hover {
262
- opacity: 1;
263
- color: var(--umds-semantic-color-feedback-negative-pure);
264
- }
265
-
266
- /* Selected List */
267
- .umds-select__selected-list {
268
- margin-top: 8px;
269
- display: flex;
270
- flex-direction: column;
271
- gap: 4px;
272
- }
273
-
274
- .umds-select__selected-list-item {
275
- display: flex;
276
- align-items: center;
277
- justify-content: space-between;
278
- padding: 8px 12px;
279
- background-color: var(--umds-semantic-color-background-light);
280
- border: 1px solid var(--umds-semantic-color-neutral-light-medium);
281
- border-radius: var(--umds-primitive-border-radius-sm);
282
- }
283
-
284
- .umds-select__list-remove {
285
- cursor: pointer;
286
- color: var(--umds-semantic-color-neutral-dark-up);
287
- }
288
-
289
- .umds-select__list-remove:hover {
290
- color: var(--umds-semantic-color-feedback-negative-pure);
291
- }
@@ -1,38 +0,0 @@
1
- import './Select.css';
2
- export interface SelectOption {
3
- label: string;
4
- value: any;
5
- [key: string]: any;
6
- }
7
- export interface SelectProps {
8
- label?: string;
9
- description?: string;
10
- placeholder?: string;
11
- options?: SelectOption[];
12
- value?: any | any[];
13
- multiple?: boolean;
14
- searchable?: boolean;
15
- autoFocusSearch?: boolean;
16
- disabled?: boolean;
17
- invalid?: boolean;
18
- loading?: boolean;
19
- errorMessage?: string;
20
- fullWidth?: boolean;
21
- size?: "small" | "medium" | "large";
22
- pagination?: boolean;
23
- hasMore?: boolean;
24
- onLoadMore?: () => void;
25
- onSearchChange?: (query: string) => void;
26
- searchVariant?: "default" | "inline";
27
- searchDebounce?: number;
28
- cache?: boolean;
29
- cacheKey?: string;
30
- cacheTime?: number;
31
- selectionDisplay?: "text" | "tags" | "list";
32
- onChange?: (value: any | any[]) => void;
33
- item?: any;
34
- className?: string;
35
- [key: string]: any;
36
- }
37
- declare function Select(props: SelectProps): import("react/jsx-runtime").JSX.Element;
38
- export default Select;