@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,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,2 +0,0 @@
1
- declare const _default: import("react").Context<any>;
2
- export default _default;
@@ -1,2 +0,0 @@
1
- import { createContext } from "react";
2
- export default createContext({ value: "", onChange(_index) { } });
@@ -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;