@vincisys/eyeson 0.1.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/README.md ADDED
@@ -0,0 +1,27 @@
1
+ # eyeson-design-system
2
+
3
+ Componentes React + estilos (Tailwind) para o design system da Eyeson.
4
+
5
+ ## Instalação
6
+
7
+ ```bash
8
+ npm i eyeson-design-system
9
+ ```
10
+
11
+ ## Uso (CSS)
12
+
13
+ Importe o CSS do design system uma vez no seu app:
14
+
15
+ ```ts
16
+ import 'eyeson-design-system/styles.css'
17
+ ```
18
+
19
+ ### Dark mode
20
+
21
+ Se seu app usa `dark` class-based (Tailwind), aplique `.dark` no `html`/`body` (ou no seu root) e os tokens vão acompanhar.
22
+
23
+ ## Uso (componentes)
24
+
25
+ ```ts
26
+ import { Button } from 'eyeson-design-system'
27
+ ```
@@ -0,0 +1,5 @@
1
+ export { default } from './components/Button/Button';
2
+ export { COLORS } from './constants/colors';
3
+ export type { ButtonProps, ButtonColor, ButtonIconPosition, ButtonSize, ButtonVariant, } from './components/Button/Button';
4
+ export type { EdsSemanticColor } from './constants/colors';
5
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../src/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,YAAY,EACX,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,aAAa,GACb,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/Button.js ADDED
@@ -0,0 +1,120 @@
1
+ import { Button as e } from "@base-ui/react/button";
2
+ import t from "clsx";
3
+ import { Loader2 as n } from "lucide-react";
4
+ import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
5
+ var o = {
6
+ Button: "_Button_s1y2z_1",
7
+ "color-blue-background": "_color-blue-background_s1y2z_20",
8
+ "color-blue-dark": "_color-blue-dark_s1y2z_25",
9
+ "color-blue-main": "_color-blue-main_s1y2z_29",
10
+ "color-blue-middle": "_color-blue-middle_s1y2z_33",
11
+ "color-green-background": "_color-green-background_s1y2z_37",
12
+ "color-green-dark": "_color-green-dark_s1y2z_42",
13
+ "color-green-main": "_color-green-main_s1y2z_46",
14
+ "color-green-middle": "_color-green-middle_s1y2z_51",
15
+ "color-neutral-background": "_color-neutral-background_s1y2z_56",
16
+ "color-neutral-disabled": "_color-neutral-disabled_s1y2z_61",
17
+ "color-neutral-elements": "_color-neutral-elements_s1y2z_66",
18
+ "color-neutral-main": "_color-neutral-main_s1y2z_70",
19
+ "color-orange-background": "_color-orange-background_s1y2z_74",
20
+ "color-orange-dark": "_color-orange-dark_s1y2z_79",
21
+ "color-orange-main": "_color-orange-main_s1y2z_83",
22
+ "color-orange-middle": "_color-orange-middle_s1y2z_87",
23
+ "color-red-background": "_color-red-background_s1y2z_92",
24
+ "color-red-dark": "_color-red-dark_s1y2z_97",
25
+ "color-red-main": "_color-red-main_s1y2z_102",
26
+ "color-red-middle": "_color-red-middle_s1y2z_106",
27
+ sizeSm: "_sizeSm_s1y2z_111",
28
+ IconWrap: "_IconWrap_s1y2z_120",
29
+ sizeMd: "_sizeMd_s1y2z_125",
30
+ sizeLg: "_sizeLg_s1y2z_139",
31
+ block: "_block_s1y2z_153",
32
+ variantSolid: "_variantSolid_s1y2z_157",
33
+ variantOutline: "_variantOutline_s1y2z_190",
34
+ variantGhost: "_variantGhost_s1y2z_248",
35
+ variantLink: "_variantLink_s1y2z_279",
36
+ Icon: "_Icon_s1y2z_120",
37
+ Spinner: "_Spinner_s1y2z_348",
38
+ "button-spin": "_button-spin_s1y2z_1"
39
+ }, s = {
40
+ solid: o.variantSolid,
41
+ outline: o.variantOutline,
42
+ ghost: o.variantGhost,
43
+ link: o.variantLink
44
+ }, c = {
45
+ sm: o.sizeSm,
46
+ md: o.sizeMd,
47
+ lg: o.sizeLg
48
+ }, l = {
49
+ "blue-background": o["color-blue-background"],
50
+ "blue-dark": o["color-blue-dark"],
51
+ "blue-main": o["color-blue-main"],
52
+ "blue-middle": o["color-blue-middle"],
53
+ "green-background": o["color-green-background"],
54
+ "green-dark": o["color-green-dark"],
55
+ "green-main": o["color-green-main"],
56
+ "green-middle": o["color-green-middle"],
57
+ "neutral-background": o["color-neutral-background"],
58
+ "neutral-disabled": o["color-neutral-disabled"],
59
+ "neutral-elements": o["color-neutral-elements"],
60
+ "neutral-main": o["color-neutral-main"],
61
+ "orange-background": o["color-orange-background"],
62
+ "orange-dark": o["color-orange-dark"],
63
+ "orange-main": o["color-orange-main"],
64
+ "orange-middle": o["color-orange-middle"],
65
+ "red-background": o["color-red-background"],
66
+ "red-dark": o["color-red-dark"],
67
+ "red-main": o["color-red-main"],
68
+ "red-middle": o["color-red-middle"]
69
+ }, u = {
70
+ sm: 18,
71
+ md: 22,
72
+ lg: 28
73
+ };
74
+ function d({ text: d = "Button", className: f, icon: p, iconPosition: m = "start", variant: h = "solid", color: g = "blue-main", size: _ = "md", fluid: v = !1, isLoading: y = !1, disabled: b, ...x }) {
75
+ let S = u[_], C = !!(b || y), w = y || p ? /* @__PURE__ */ i("span", {
76
+ className: o.IconWrap,
77
+ "aria-hidden": !0,
78
+ children: y ? /* @__PURE__ */ i(n, {
79
+ className: t(o.Icon, o.Spinner),
80
+ size: S
81
+ }) : p && /* @__PURE__ */ i(p, {
82
+ className: o.Icon,
83
+ size: S
84
+ })
85
+ }) : null;
86
+ return /* @__PURE__ */ i(e, {
87
+ className: t(o.Button, l[g], c[_], s[h], v && o.block, f),
88
+ disabled: C,
89
+ "data-loading": y || void 0,
90
+ "aria-busy": y || void 0,
91
+ ...x,
92
+ children: m === "end" ? /* @__PURE__ */ a(r, { children: [d, w] }) : /* @__PURE__ */ a(r, { children: [w, d] })
93
+ });
94
+ }
95
+ //#endregion
96
+ //#region src/constants/colors.ts
97
+ var f = [
98
+ "blue-background",
99
+ "blue-dark",
100
+ "blue-main",
101
+ "blue-middle",
102
+ "green-background",
103
+ "green-dark",
104
+ "green-main",
105
+ "green-middle",
106
+ "neutral-background",
107
+ "neutral-disabled",
108
+ "neutral-elements",
109
+ "neutral-main",
110
+ "orange-background",
111
+ "orange-dark",
112
+ "orange-main",
113
+ "orange-middle",
114
+ "red-background",
115
+ "red-dark",
116
+ "red-main",
117
+ "red-middle"
118
+ ];
119
+ //#endregion
120
+ export { f as COLORS, d as default };
@@ -0,0 +1,3 @@
1
+ export { default } from './components/ComboBox/Combobox';
2
+ export type { ComboboxProps, ComboboxOption, ComboboxState, } from './components/ComboBox/Combobox';
3
+ //# sourceMappingURL=Combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../src/Combobox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,YAAY,EACX,aAAa,EACb,cAAc,EACd,aAAa,GACb,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,128 @@
1
+ import e from "clsx";
2
+ import { Check as t, ChevronDown as n, X as r } from "lucide-react";
3
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
4
+ import { useId as o } from "react";
5
+ import { Combobox as s } from "@base-ui/react/combobox";
6
+ var c = {
7
+ Root: "_Root_mce06_1",
8
+ LabelRow: "_LabelRow_mce06_13",
9
+ LabelText: "_LabelText_mce06_20",
10
+ Required: "_Required_mce06_29",
11
+ InputGroup: "_InputGroup_mce06_33",
12
+ Input: "_Input_mce06_33",
13
+ Actions: "_Actions_mce06_106",
14
+ IconButton: "_IconButton_mce06_113",
15
+ Icon: "_Icon_mce06_113",
16
+ Positioner: "_Positioner_mce06_152",
17
+ Popup: "_Popup_mce06_157",
18
+ Empty: "_Empty_mce06_170",
19
+ List: "_List_mce06_177",
20
+ Item: "_Item_mce06_186",
21
+ ItemIndicator: "_ItemIndicator_mce06_217",
22
+ ItemText: "_ItemText_mce06_227",
23
+ SupportingText: "_SupportingText_mce06_233"
24
+ }, l = s.Root;
25
+ function u({ label: u = "Label", items: d, placeholder: f = "Selecione uma opção", disabled: p = !1, required: m = !1, fluid: h = !1, state: g = "default", supportingText: _ = "", errorMessage: v = "Selecione uma opção válida", emptyMessage: y = "Nenhum resultado.", readOnly: b = !0, id: x, name: S, value: C, defaultValue: w, onValueChange: T, getItemLabel: E, getItemValue: D, renderItem: O, className: k, inputProps: A }) {
26
+ let j = o(), M = x ?? j, N = g === "invalid", P = N || !!_, F = (e) => E ? E(e) : e.label ?? "", I = (e) => D ? D(e) : e.value ?? F(e), L = (e) => {
27
+ T?.(e);
28
+ }, R = E ? (e) => E(e) : void 0, z = D ? (e) => D(e) : void 0;
29
+ return /* @__PURE__ */ a("div", {
30
+ className: e(c.Root, k),
31
+ "data-fluid": h || void 0,
32
+ children: [
33
+ /* @__PURE__ */ i("div", {
34
+ className: c.LabelRow,
35
+ children: /* @__PURE__ */ a("label", {
36
+ className: c.LabelText,
37
+ htmlFor: M,
38
+ children: [/* @__PURE__ */ i("span", { children: u }), m && /* @__PURE__ */ i("span", {
39
+ className: c.Required,
40
+ children: "*"
41
+ })]
42
+ })
43
+ }),
44
+ /* @__PURE__ */ a(l, {
45
+ items: d,
46
+ name: S,
47
+ disabled: p,
48
+ required: m,
49
+ onValueChange: T ? L : void 0,
50
+ ...C === void 0 ? w === void 0 ? {} : { defaultValue: w } : { value: C },
51
+ itemToStringLabel: R,
52
+ itemToStringValue: z,
53
+ children: [/* @__PURE__ */ a(s.InputGroup, {
54
+ className: c.InputGroup,
55
+ "data-state": g,
56
+ "data-disabled": p || void 0,
57
+ children: [/* @__PURE__ */ i(s.Input, {
58
+ ...A,
59
+ id: M,
60
+ className: c.Input,
61
+ placeholder: f,
62
+ disabled: p,
63
+ readOnly: b,
64
+ required: m,
65
+ "aria-invalid": N || void 0,
66
+ "aria-describedby": P ? `${M}-desc` : void 0
67
+ }), /* @__PURE__ */ a("div", {
68
+ className: c.Actions,
69
+ children: [/* @__PURE__ */ i(s.Clear, {
70
+ className: c.IconButton,
71
+ "aria-label": "Limpar seleção",
72
+ "data-disabled": p || void 0,
73
+ children: /* @__PURE__ */ i(r, {
74
+ className: c.Icon,
75
+ strokeWidth: 2,
76
+ "aria-hidden": !0
77
+ })
78
+ }), /* @__PURE__ */ i(s.Trigger, {
79
+ className: c.IconButton,
80
+ "aria-label": "Abrir lista",
81
+ "data-disabled": p || void 0,
82
+ children: /* @__PURE__ */ i(n, {
83
+ className: c.Icon,
84
+ strokeWidth: 2,
85
+ "aria-hidden": !0
86
+ })
87
+ })]
88
+ })]
89
+ }), /* @__PURE__ */ i(s.Portal, { children: /* @__PURE__ */ i(s.Positioner, {
90
+ className: c.Positioner,
91
+ sideOffset: 4,
92
+ children: /* @__PURE__ */ a(s.Popup, {
93
+ className: c.Popup,
94
+ children: [/* @__PURE__ */ i(s.Empty, { children: /* @__PURE__ */ i("div", {
95
+ className: c.Empty,
96
+ children: y
97
+ }) }), /* @__PURE__ */ i(s.List, {
98
+ className: c.List,
99
+ children: (e) => /* @__PURE__ */ a(s.Item, {
100
+ value: e,
101
+ className: c.Item,
102
+ children: [/* @__PURE__ */ i(s.ItemIndicator, {
103
+ className: c.ItemIndicator,
104
+ children: /* @__PURE__ */ i(t, {
105
+ size: 14,
106
+ strokeWidth: 2.5,
107
+ "aria-hidden": !0
108
+ })
109
+ }), O ? O(e) : /* @__PURE__ */ i("span", {
110
+ className: c.ItemText,
111
+ children: F(e)
112
+ })]
113
+ }, I(e))
114
+ })]
115
+ })
116
+ }) })]
117
+ }),
118
+ P && /* @__PURE__ */ i("div", {
119
+ id: `${M}-desc`,
120
+ className: c.SupportingText,
121
+ "data-state": N ? "invalid" : void 0,
122
+ children: N ? v : _
123
+ })
124
+ ]
125
+ });
126
+ }
127
+ //#endregion
128
+ export { u as default };
@@ -0,0 +1,3 @@
1
+ export { default } from './components/Input/Input';
2
+ export type { InputProps } from './components/Input/Input';
3
+ //# sourceMappingURL=Input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../src/Input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
package/dist/Input.js ADDED
@@ -0,0 +1,153 @@
1
+ import e from "clsx";
2
+ import { Info as t, Loader2 as n } from "lucide-react";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ import { Input as a } from "@base-ui/react/input";
5
+ import { useId as o, useState as s } from "react";
6
+ //#region node_modules/brazilian-values/dist/brazilian-values.mjs
7
+ var c = /\D/g, l = function(e) {
8
+ return e.replace(c, "");
9
+ }, ee = function(e) {
10
+ return l(e).replace(/(\d{5})(\d{1,3})/, "$1-$2");
11
+ }, u = function(e) {
12
+ return l(e).replace(/(\d{2})(\d)/, "$1.$2").replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d)/, "$1/$2").replace(/(\d{4})(\d{1,2})$/, "$1-$2");
13
+ }, d = function(e) {
14
+ return l(e).replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d{1,2})$/, "$1-$2");
15
+ }, f = function(e) {
16
+ return (e.match(/\d/g)?.length ?? 0) <= 11;
17
+ }, p = function(e) {
18
+ return f(e) ? d(e) : u(e);
19
+ }, te = function(e) {
20
+ return l(e).replace(/(\d{1,2})/, "($1").replace(/(\(\d{2})(\d{1,4})/, "$1) $2").replace(/( \d{4})(\d{1,4})/, "$1-$2").replace(/( \d{4})(?:-)(\d{1})(\d{4})/, "$1$2-$3");
21
+ }, m = {
22
+ Root: "_Root_twox3_1",
23
+ LabelRow: "_LabelRow_twox3_13",
24
+ LabelLeft: "_LabelLeft_twox3_20",
25
+ LabelText: "_LabelText_twox3_27",
26
+ Required: "_Required_twox3_36",
27
+ SupportLink: "_SupportLink_twox3_40",
28
+ TooltipButton: "_TooltipButton_twox3_54",
29
+ Control: "_Control_twox3_71",
30
+ Adornment: "_Adornment_twox3_83",
31
+ SpinnerWrap: "_SpinnerWrap_twox3_90",
32
+ Spinner: "_Spinner_twox3_90",
33
+ "input-spin": "_input-spin_twox3_1",
34
+ Input: "_Input_twox3_132",
35
+ FloatingLabel: "_FloatingLabel_twox3_152",
36
+ SupportingText: "_SupportingText_twox3_188"
37
+ };
38
+ //#endregion
39
+ //#region src/components/Input/Input.tsx
40
+ function h({ className: c, label: l = "Label", texto: f, disabled: h = !1, state: g = "default", inputType: _ = "text", required: v = !1, placeholder: y = "Digite algo...", errorMessage: b = "Campo obrigatório", fluid: x = !1, format: S, tooltip: C = null, linkText: w = null, linkUrl: T = null, supportLink: ne = null, supportLinkUrl: re = null, supportingText: E = "", lazy: D = !1, floatingLabel: O = !1, disableAutocomplete: k = !1, isLoading: A = !1, loadingIconPosition: j = "end", defaultValue: M, value: N, id: P, name: F, onBlur: I, onFocus: L, onKeyDown: R, onClick: z, onChange: B, ...V }) {
41
+ let H = o(), U = P ?? H, [W, G] = s(() => M?.toString() ?? ""), K = N !== void 0, q = (K ? N : W)?.toString() ?? "", J = ne ?? w, Y = re ?? T, ie = (e) => {
42
+ switch (S) {
43
+ case "cep": return ee(e);
44
+ case "cpf": return d(e);
45
+ case "cnpj": return u(e);
46
+ case "cpfOrCnpj": return p(e);
47
+ case "phone": return te(e);
48
+ default: return e;
49
+ }
50
+ }, X = (e, t) => {
51
+ let n = ie(e);
52
+ K || G(n), B?.(n, t);
53
+ }, Z = g === "invalid", Q = h || A, $ = A ? /* @__PURE__ */ r("span", {
54
+ className: e(m.Adornment, m.SpinnerWrap),
55
+ "data-position": j,
56
+ "aria-hidden": !0,
57
+ children: /* @__PURE__ */ r(n, {
58
+ className: m.Spinner,
59
+ size: 16
60
+ })
61
+ }) : null;
62
+ return /* @__PURE__ */ i("div", {
63
+ className: e(m.Root, c),
64
+ "data-fluid": x || void 0,
65
+ children: [
66
+ /* @__PURE__ */ i("div", {
67
+ className: m.LabelRow,
68
+ children: [/* @__PURE__ */ i("div", {
69
+ className: m.LabelLeft,
70
+ children: [/* @__PURE__ */ i("label", {
71
+ className: m.LabelText,
72
+ htmlFor: U,
73
+ children: [/* @__PURE__ */ r("span", { children: l }), v && /* @__PURE__ */ r("span", {
74
+ className: m.Required,
75
+ children: "*"
76
+ })]
77
+ }), C && /* @__PURE__ */ r("button", {
78
+ type: "button",
79
+ className: m.TooltipButton,
80
+ "aria-label": C,
81
+ title: C,
82
+ disabled: Q,
83
+ children: /* @__PURE__ */ r(t, {
84
+ size: 16,
85
+ "aria-hidden": !0
86
+ })
87
+ })]
88
+ }), J && Y && /* @__PURE__ */ r("a", {
89
+ className: m.SupportLink,
90
+ href: Y,
91
+ "aria-disabled": Q || void 0,
92
+ tabIndex: Q ? -1 : 0,
93
+ onClick: (e) => {
94
+ Q && e.preventDefault();
95
+ },
96
+ children: J
97
+ })]
98
+ }),
99
+ /* @__PURE__ */ i("div", {
100
+ className: m.Control,
101
+ "data-disabled": Q || void 0,
102
+ "data-state": g,
103
+ "data-floating": O || void 0,
104
+ "data-has-value": q ? !0 : void 0,
105
+ children: [
106
+ O && /* @__PURE__ */ r("span", {
107
+ className: m.FloatingLabel,
108
+ children: l
109
+ }),
110
+ j === "start" && $,
111
+ /* @__PURE__ */ r(a, {
112
+ ...V,
113
+ id: U,
114
+ name: F,
115
+ className: m.Input,
116
+ disabled: Q,
117
+ type: _,
118
+ required: v,
119
+ placeholder: y,
120
+ autoComplete: k ? "off" : V.autoComplete,
121
+ "aria-invalid": Z || void 0,
122
+ "aria-describedby": Z ? `${U}-desc` : void 0,
123
+ "aria-busy": A || void 0,
124
+ value: K ? N : void 0,
125
+ defaultValue: K ? void 0 : M,
126
+ onClick: z,
127
+ onKeyDown: R,
128
+ onFocus: L,
129
+ onBlur: (e) => {
130
+ I?.(e), D && X(e.currentTarget.value, e);
131
+ },
132
+ onChange: (e) => {
133
+ D || X(e.currentTarget.value, e);
134
+ }
135
+ }),
136
+ j === "end" && $
137
+ ]
138
+ }),
139
+ f && /* @__PURE__ */ r("div", {
140
+ className: m.SupportingText,
141
+ children: f
142
+ }),
143
+ (Z || E) && /* @__PURE__ */ r("div", {
144
+ id: `${U}-desc`,
145
+ className: m.SupportingText,
146
+ "data-state": Z ? "invalid" : g,
147
+ children: Z ? b : E
148
+ })
149
+ ]
150
+ });
151
+ }
152
+ //#endregion
153
+ export { h as default };
@@ -0,0 +1,21 @@
1
+ import { Button as BaseUiButton } from '@base-ui/react/button';
2
+ import { type LucideIcon } from 'lucide-react';
3
+ import type { ComponentProps } from 'react';
4
+ import type { EdsSemanticColor } from '@/constants/colors';
5
+ export type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'link';
6
+ export type ButtonSize = 'sm' | 'md' | 'lg';
7
+ export type ButtonIconPosition = 'start' | 'end';
8
+ export type ButtonColor = EdsSemanticColor;
9
+ export type ButtonProps = Omit<ComponentProps<typeof BaseUiButton>, 'className' | 'children'> & {
10
+ className?: string;
11
+ text?: string;
12
+ variant?: ButtonVariant;
13
+ color?: ButtonColor;
14
+ size?: ButtonSize;
15
+ fluid?: boolean;
16
+ icon?: LucideIcon;
17
+ iconPosition?: ButtonIconPosition;
18
+ isLoading?: boolean;
19
+ };
20
+ export default function Button({ text, className, icon: IconComponent, iconPosition, variant, color, size, fluid, isLoading, disabled, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
21
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEnE,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,KAAK,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC;AA4C3C,MAAM,MAAM,WAAW,GAAG,IAAI,CAC7B,cAAc,CAAC,OAAO,YAAY,CAAC,EACnC,WAAW,GAAG,UAAU,CACxB,GAAG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC9B,IAAe,EACf,SAAS,EACT,IAAI,EAAE,aAAa,EACnB,YAAsB,EACtB,OAAiB,EACjB,KAAmB,EACnB,IAAW,EACX,KAAa,EACb,SAAiB,EACjB,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,WAAW,2CAgDb"}
@@ -0,0 +1,52 @@
1
+ import { type ComponentProps, type ReactNode } from 'react';
2
+ export type ComboboxState = 'default' | 'valid' | 'invalid';
3
+ export type ComboboxOption = {
4
+ label: string;
5
+ value: string;
6
+ };
7
+ export type ComboboxProps<T = ComboboxOption> = {
8
+ /** Texto do label acima do campo. */
9
+ label?: string;
10
+ /** Lista de itens disponíveis para seleção. */
11
+ items: readonly T[];
12
+ /** Texto exibido quando nenhum item está selecionado. */
13
+ placeholder?: string;
14
+ /** Desativa o campo, impedindo interação. */
15
+ disabled?: boolean;
16
+ /** Indica que o campo é obrigatório, exibindo asterisco. */
17
+ required?: boolean;
18
+ /** Faz o campo ocupar 100% da largura do container. */
19
+ fluid?: boolean;
20
+ /** Estado visual do campo. */
21
+ state?: ComboboxState;
22
+ /** Texto auxiliar exibido abaixo do campo no estado padrão. */
23
+ supportingText?: string;
24
+ /** Mensagem exibida abaixo do campo no estado inválido. */
25
+ errorMessage?: string;
26
+ /** Mensagem exibida quando nenhum item corresponde à busca. */
27
+ emptyMessage?: string;
28
+ /** Impede que o usuário digite no campo; a seleção ocorre apenas pela lista. */
29
+ readOnly?: boolean;
30
+ /** `id` nativo do input. Gerado automaticamente se omitido. */
31
+ id?: string;
32
+ /** `name` nativo do input, útil para submissão de formulários. */
33
+ name?: string;
34
+ /** Item atualmente selecionado (modo controlado). */
35
+ value?: T | null;
36
+ /** Item selecionado na montagem (modo não-controlado). */
37
+ defaultValue?: T | null;
38
+ /** Callback chamado quando o item selecionado muda. */
39
+ onValueChange?: (value: T | null) => void;
40
+ /** Retorna o texto exibido no input para um dado item. */
41
+ getItemLabel?: (item: T) => string;
42
+ /** Retorna o valor único que identifica um item. */
43
+ getItemValue?: (item: T) => string;
44
+ /** Renderização customizada de cada item na lista. */
45
+ renderItem?: (item: T) => ReactNode;
46
+ /** Classe CSS extra aplicada ao elemento raiz. */
47
+ className?: string;
48
+ /** Props extras repassadas ao `<input>` nativo. */
49
+ inputProps?: Omit<ComponentProps<'input'>, 'className' | 'disabled' | 'id' | 'name' | 'placeholder' | 'readOnly' | 'required'>;
50
+ };
51
+ export default function Combobox<T = ComboboxOption>({ label, items, placeholder, disabled, required, fluid, state, supportingText, errorMessage, emptyMessage, readOnly, id, name, value, defaultValue, onValueChange, getItemLabel, getItemValue, renderItem, className, inputProps, }: ComboboxProps<T>): import("react/jsx-runtime").JSX.Element;
52
+ //# sourceMappingURL=Combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../../src/components/ComboBox/Combobox.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAS,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGnE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,cAAc,IAAI;IAC/C,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACjB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,uDAAuD;IACvD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,0DAA0D;IAC1D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACnC,oDAAoD;IACpD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACnC,sDAAsD;IACtD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IACpC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,UAAU,CAAC,EAAE,IAAI,CAChB,cAAc,CAAC,OAAO,CAAC,EACrB,WAAW,GACX,UAAU,GACV,IAAI,GACJ,MAAM,GACN,aAAa,GACb,UAAU,GACV,UAAU,CACZ,CAAC;CACF,CAAC;AAeF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,GAAG,cAAc,EAAE,EACpD,KAAe,EACf,KAAK,EACL,WAAmC,EACnC,QAAgB,EAChB,QAAgB,EAChB,KAAa,EACb,KAAiB,EACjB,cAAmB,EACnB,YAA2C,EAC3C,YAAkC,EAClC,QAAe,EACf,EAAE,EACF,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,GACV,EAAE,aAAa,CAAC,CAAC,CAAC,2CAmKlB"}
@@ -0,0 +1,30 @@
1
+ import { type ChangeEvent, type ComponentProps } from 'react';
2
+ export type InputState = 'default' | 'valid' | 'loading' | 'invalid';
3
+ export type InputFormat = 'cep' | 'cpf' | 'cnpj' | 'cpfOrCnpj' | 'phone';
4
+ export type InputProps = Omit<ComponentProps<'input'>, 'className' | 'type' | 'required' | 'onChange'> & {
5
+ className?: string;
6
+ label?: string;
7
+ texto?: string;
8
+ disabled?: boolean;
9
+ state?: InputState;
10
+ inputType?: 'text' | 'email';
11
+ required?: boolean;
12
+ placeholder?: string;
13
+ errorMessage?: string;
14
+ fluid?: boolean;
15
+ format?: InputFormat;
16
+ tooltip?: string | null;
17
+ linkText?: string | null;
18
+ linkUrl?: string | null;
19
+ supportLink?: string | null;
20
+ supportLinkUrl?: string | null;
21
+ supportingText?: string;
22
+ lazy?: boolean;
23
+ floatingLabel?: boolean;
24
+ disableAutocomplete?: boolean;
25
+ isLoading?: boolean;
26
+ loadingIconPosition?: 'start' | 'end';
27
+ onChange?: (value: string, event: ChangeEvent<HTMLInputElement>) => void;
28
+ };
29
+ export default function Input({ className, label, texto, disabled, state, inputType, required, placeholder, errorMessage, fluid, format, tooltip, linkText, linkUrl, supportLink, supportLinkUrl, supportingText, lazy, floatingLabel, disableAutocomplete, isLoading, loadingIconPosition, defaultValue, value, id, name, onBlur, onFocus, onKeyDown, onClick, onChange, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
30
+ //# sourceMappingURL=Input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAU/E,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AACrE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;AAEzE,MAAM,MAAM,UAAU,GAAG,IAAI,CAC5B,cAAc,CAAC,OAAO,CAAC,EACvB,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAC9C,GAAG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CACzE,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC7B,SAAS,EACT,KAAe,EACf,KAAK,EACL,QAAgB,EAChB,KAAiB,EACjB,SAAkB,EAClB,QAAgB,EAChB,WAA8B,EAC9B,YAAkC,EAClC,KAAa,EACb,MAAM,EACN,OAAc,EACd,QAAe,EACf,OAAc,EACd,WAAkB,EAClB,cAAqB,EACrB,cAAmB,EACnB,IAAY,EACZ,aAAqB,EACrB,mBAA2B,EAC3B,SAAiB,EACjB,mBAA2B,EAC3B,YAAY,EACZ,KAAK,EACL,EAAE,EACF,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,UAAU,2CAgKZ"}
@@ -0,0 +1,3 @@
1
+ export declare const COLORS: readonly ["blue-background", "blue-dark", "blue-main", "blue-middle", "green-background", "green-dark", "green-main", "green-middle", "neutral-background", "neutral-disabled", "neutral-elements", "neutral-main", "orange-background", "orange-dark", "orange-main", "orange-middle", "red-background", "red-dark", "red-main", "red-middle"];
2
+ export type EdsSemanticColor = (typeof COLORS)[number];
3
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/constants/colors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,iVAqBT,CAAC;AAGX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,90 @@
1
+ @font-face {
2
+ font-family: 'GT Walsheim Pro';
3
+ src: url('/fonts/GTWalsheimPro-Thin.ttf') format('truetype');
4
+ font-weight: 100;
5
+ font-style: normal;
6
+ font-display: swap;
7
+ }
8
+
9
+ @font-face {
10
+ font-family: 'GT Walsheim Pro';
11
+ src: url('/fonts/GTWalsheimPro-Light.ttf') format('truetype');
12
+ font-weight: 300;
13
+ font-style: normal;
14
+ font-display: swap;
15
+ }
16
+
17
+ @font-face {
18
+ font-family: 'GT Walsheim Pro';
19
+ src: url('/fonts/GTWalsheimPro-Regular.ttf') format('truetype');
20
+ font-weight: 400;
21
+ font-style: normal;
22
+ font-display: swap;
23
+ }
24
+
25
+ @font-face {
26
+ font-family: 'GT Walsheim Pro';
27
+ src: url('/fonts/GTWalsheimPro-Medium.ttf') format('truetype');
28
+ font-weight: 500;
29
+ font-style: normal;
30
+ font-display: swap;
31
+ }
32
+
33
+ @font-face {
34
+ font-family: 'GT Walsheim Pro';
35
+ src: url('/fonts/GTWalsheimPro-Bold.ttf') format('truetype');
36
+ font-weight: 700;
37
+ font-style: normal;
38
+ font-display: swap;
39
+ }
40
+
41
+ html {
42
+ font-family: 'GT Walsheim Pro', system-ui, sans-serif;
43
+ }
44
+
45
+ :root {
46
+ --eds-border-radius-button: 4px;
47
+ --eds-border-radius-lil: 6px;
48
+ --eds-border-radius-extra-small: 8px;
49
+ --eds-border-radius-small: 12px;
50
+ --eds-border-radius-medium: 16px;
51
+ --eds-border-radius-large: 20px;
52
+ --eds-border-radius-extra-large: 24px;
53
+ --eds-border-radius-circle: 50%;
54
+
55
+ --eds-color-blue-background: #9ec1d4;
56
+ --eds-color-blue-dark: #013652;
57
+ --eds-color-blue-main: #0074ae;
58
+ --eds-color-blue-middle: #4f90b2;
59
+
60
+ --eds-color-green-background: #c3e5b1;
61
+ --eds-color-green-dark: #21480d;
62
+ --eds-color-green-main: #60cb27;
63
+ --eds-color-green-middle: #8cc96b;
64
+
65
+ --eds-color-neutral-background: #f5f5f5;
66
+ --eds-color-neutral-disabled: #b5b5b5;
67
+ --eds-color-neutral-elements: #6d6863;
68
+ --eds-color-neutral-main: #181818;
69
+
70
+ --eds-color-orange-background: #ffd4b5;
71
+ --eds-color-orange-dark: #7f4418;
72
+ --eds-color-orange-main: #f58220;
73
+ --eds-color-orange-middle: #fab07a;
74
+
75
+ --eds-color-red-background: #ffb7ae;
76
+ --eds-color-red-dark: #ffb7ae;
77
+ --eds-color-red-main: #f5432c;
78
+ --eds-color-red-middle: #ff7f6e;
79
+
80
+ --eds-color-grey-disabled: var(--eds-color-neutral-disabled);
81
+
82
+ --eds-color-outline-border: hsl(240 5.9% 90%);
83
+ --eds-color-outline-text: hsl(240 10% 3.9%);
84
+ --eds-color-outline-hover-bg: hsl(240 4.8% 95.9%);
85
+ --eds-color-outline-hover-text: hsl(240 10% 3.9%);
86
+ --eds-color-outline-focus-ring: hsl(240 5% 64.9% / 0.45);
87
+ }
88
+
89
+ ._Button_s1y2z_1{--eds-btn-accent:var(--eds-color-blue-main);box-sizing:border-box;color:inherit;-webkit-user-select:none;user-select:none;cursor:pointer;background-color:#0000;border:0 solid #0000;justify-content:center;align-items:center;margin:0;font-family:inherit;font-weight:700;display:inline-flex}._color-blue-background_s1y2z_20{--eds-btn-accent:var(--eds-color-blue-background);--eds-btn-solid-fg:#181818}._color-blue-dark_s1y2z_25{--eds-btn-accent:var(--eds-color-blue-dark)}._color-blue-main_s1y2z_29{--eds-btn-accent:var(--eds-color-blue-main)}._color-blue-middle_s1y2z_33{--eds-btn-accent:var(--eds-color-blue-middle)}._color-green-background_s1y2z_37{--eds-btn-accent:var(--eds-color-green-background);--eds-btn-solid-fg:#181818}._color-green-dark_s1y2z_42{--eds-btn-accent:var(--eds-color-green-dark)}._color-green-main_s1y2z_46{--eds-btn-accent:var(--eds-color-green-main);--eds-btn-solid-fg:#181818}._color-green-middle_s1y2z_51{--eds-btn-accent:var(--eds-color-green-middle);--eds-btn-solid-fg:#181818}._color-neutral-background_s1y2z_56{--eds-btn-accent:var(--eds-color-neutral-background);--eds-btn-solid-fg:#181818}._color-neutral-disabled_s1y2z_61{--eds-btn-accent:var(--eds-color-neutral-disabled);--eds-btn-solid-fg:#181818}._color-neutral-elements_s1y2z_66{--eds-btn-accent:var(--eds-color-neutral-elements)}._color-neutral-main_s1y2z_70{--eds-btn-accent:var(--eds-color-neutral-main)}._color-orange-background_s1y2z_74{--eds-btn-accent:var(--eds-color-orange-background);--eds-btn-solid-fg:#181818}._color-orange-dark_s1y2z_79{--eds-btn-accent:var(--eds-color-orange-dark)}._color-orange-main_s1y2z_83{--eds-btn-accent:var(--eds-color-orange-main)}._color-orange-middle_s1y2z_87{--eds-btn-accent:var(--eds-color-orange-middle);--eds-btn-solid-fg:#181818}._color-red-background_s1y2z_92{--eds-btn-accent:var(--eds-color-red-background);--eds-btn-solid-fg:#181818}._color-red-dark_s1y2z_97{--eds-btn-accent:var(--eds-color-red-dark);--eds-btn-solid-fg:#181818}._color-red-main_s1y2z_102{--eds-btn-accent:var(--eds-color-red-main)}._color-red-middle_s1y2z_106{--eds-btn-accent:var(--eds-color-red-middle);--eds-btn-solid-fg:#181818}._sizeSm_s1y2z_111{border-radius:var(--eds-border-radius-lil,6px);gap:.375rem;min-height:32px;padding:0 1rem;font-size:.875rem;line-height:1.25rem}._sizeSm_s1y2z_111 ._IconWrap_s1y2z_120{width:1.125rem;height:1.125rem}._sizeMd_s1y2z_125{border-radius:var(--eds-border-radius-extra-small,8px);gap:.5rem;min-height:40px;padding:0 1.5rem;font-size:1rem;line-height:1.5rem}._sizeMd_s1y2z_125 ._IconWrap_s1y2z_120{width:1.375rem;height:1.375rem}._sizeLg_s1y2z_139{border-radius:var(--eds-border-radius-extra-small,8px);gap:.875rem;min-height:48px;padding:0 2rem;font-size:1.25rem;line-height:1.75rem}._sizeLg_s1y2z_139 ._IconWrap_s1y2z_120{width:1.75rem;height:1.75rem}._block_s1y2z_153{width:100%}._variantSolid_s1y2z_157{background-color:var(--eds-btn-accent);color:var(--eds-btn-solid-fg,#fff)}@media (hover:hover){._variantSolid_s1y2z_157:hover:not([data-disabled]){background-color:color-mix(in srgb, var(--eds-btn-accent) 78%, black)}}._variantSolid_s1y2z_157:active:not([data-disabled]){filter:brightness(.92)}._variantSolid_s1y2z_157:focus-visible{outline:2px solid var(--eds-btn-accent);outline-offset:2px}._variantSolid_s1y2z_157[data-disabled]:not([data-loading]){background-color:var(--eds-color-neutral-disabled);color:#181818;cursor:not-allowed}._variantSolid_s1y2z_157[data-loading][data-disabled]{background-color:var(--eds-btn-accent);color:var(--eds-btn-solid-fg,#fff);cursor:wait;filter:none}._variantOutline_s1y2z_190{border-width:1px;border-color:color-mix(in srgb, var(--eds-btn-accent) 42%, var(--eds-color-outline-border));color:var(--eds-btn-accent);background-color:#0000}@media (hover:hover){._variantOutline_s1y2z_190:hover:not([data-disabled]){border-color:color-mix(in srgb, var(--eds-btn-accent) 58%, var(--eds-color-outline-border));background-color:color-mix(in srgb, var(--eds-btn-accent) 10%, transparent);color:color-mix(in srgb, var(--eds-btn-accent) 88%, black)}}._variantOutline_s1y2z_190:active:not([data-disabled]){filter:brightness(.98)}._variantOutline_s1y2z_190:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--eds-btn-accent) 38%, transparent);outline:none}._variantOutline_s1y2z_190[data-disabled]:not([data-loading]){border-color:var(--eds-color-outline-border);color:var(--eds-color-grey-disabled);cursor:not-allowed;opacity:.5;background-color:#0000}._variantOutline_s1y2z_190[data-loading][data-disabled]{border-color:color-mix(in srgb, var(--eds-btn-accent) 42%, var(--eds-color-outline-border));color:var(--eds-btn-accent);cursor:wait;filter:none;opacity:1;background-color:#0000}._variantGhost_s1y2z_248{color:var(--eds-btn-accent);background-color:#0000}@media (hover:hover){._variantGhost_s1y2z_248:hover:not([data-disabled]){color:color-mix(in srgb, var(--eds-btn-accent) 78%, black)}}._variantGhost_s1y2z_248:active:not([data-disabled]){filter:brightness(.95)}._variantGhost_s1y2z_248:focus-visible{outline:2px solid var(--eds-btn-accent);outline-offset:2px}._variantGhost_s1y2z_248[data-disabled]:not([data-loading]){color:var(--eds-color-grey-disabled);cursor:not-allowed}._variantGhost_s1y2z_248[data-loading][data-disabled]{color:var(--eds-btn-accent);cursor:wait;filter:none}._variantLink_s1y2z_279{min-height:unset;color:var(--eds-btn-accent);text-decoration:underline;-webkit-text-decoration-color:var(--eds-btn-accent);text-decoration-color:var(--eds-btn-accent);text-underline-offset:.15em;background:0 0;padding:.125rem 0}._sizeSm_s1y2z_111._variantLink_s1y2z_279{gap:.375rem;font-size:.875rem;line-height:1.25rem}._sizeMd_s1y2z_125._variantLink_s1y2z_279{gap:.5rem;font-size:1rem;line-height:1.5rem}._sizeLg_s1y2z_139._variantLink_s1y2z_279{gap:.5rem;font-size:1.25rem;line-height:1.75rem}@media (hover:hover){._variantLink_s1y2z_279:hover:not([data-disabled]){color:color-mix(in srgb, var(--eds-btn-accent) 78%, black);-webkit-text-decoration-color:color-mix(in srgb, var(--eds-btn-accent) 78%, black);text-decoration-color:color-mix(in srgb, var(--eds-btn-accent) 78%, black)}}._variantLink_s1y2z_279:focus-visible{outline:2px solid var(--eds-btn-accent);outline-offset:2px}._variantLink_s1y2z_279[data-disabled]:not([data-loading]){color:var(--eds-color-grey-disabled);-webkit-text-decoration-color:var(--eds-color-grey-disabled);text-decoration-color:var(--eds-color-grey-disabled);cursor:not-allowed}._variantLink_s1y2z_279[data-loading][data-disabled]{color:var(--eds-btn-accent);-webkit-text-decoration-color:var(--eds-btn-accent);text-decoration-color:var(--eds-btn-accent);cursor:wait}._IconWrap_s1y2z_120{flex-shrink:0;justify-content:center;align-items:center;display:flex}._Icon_s1y2z_120{width:100%;height:100%;display:block}._Spinner_s1y2z_348{animation:.7s linear infinite _button-spin_s1y2z_1}@keyframes _button-spin_s1y2z_1{to{transform:rotate(360deg)}}._Root_mce06_1{box-sizing:border-box;flex-direction:column;gap:.375rem;width:214px;display:inline-flex}._Root_mce06_1[data-fluid]{width:100%}._LabelRow_mce06_13{justify-content:space-between;align-items:center;gap:.75rem;display:flex}._LabelText_mce06_20{color:var(--eds-color-neutral-main);align-items:baseline;gap:.25rem;font-size:.875rem;line-height:1.25rem;display:inline-flex}._Required_mce06_29{color:var(--eds-color-red-main)}._InputGroup_mce06_33{border:1px solid var(--eds-color-outline-border);border-radius:var(--eds-border-radius-extra-small,8px);background-color:#fff;align-items:center;gap:.25rem;width:100%;height:36px;padding:0 .5rem 0 .75rem;display:inline-flex;position:relative}._InputGroup_mce06_33[data-state=invalid]{border-color:color-mix(in srgb, var(--eds-color-red-main) 55%, var(--eds-color-outline-border))}._InputGroup_mce06_33[data-state=valid]{border-color:color-mix(in srgb, var(--eds-color-green-main) 55%, var(--eds-color-outline-border))}._InputGroup_mce06_33:focus-within{border-color:color-mix(in srgb, var(--eds-color-neutral-elements) 35%, var(--eds-color-outline-border));box-shadow:0 0 0 3px var(--eds-color-outline-focus-ring)}._InputGroup_mce06_33[data-disabled]{background-color:var(--eds-color-neutral-background);border-color:var(--eds-color-outline-border);opacity:.7;cursor:not-allowed}._Input_mce06_33{box-sizing:border-box;min-width:0;font:inherit;color:var(--eds-color-neutral-main);background:0 0;border:0;outline:0;flex:1;margin:0;padding:0;font-size:1rem;line-height:1.5rem}._Input_mce06_33::placeholder{color:var(--eds-color-neutral-elements);opacity:1}._Input_mce06_33:disabled{cursor:not-allowed}._Input_mce06_33[readonly]:not(:disabled){cursor:pointer}._Actions_mce06_106{flex-shrink:0;align-items:center;gap:.125rem;display:inline-flex}._IconButton_mce06_113{all:unset;box-sizing:border-box;width:28px;height:28px;color:var(--eds-color-neutral-elements);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}._IconButton_mce06_113:hover:not([data-disabled]){color:var(--eds-color-neutral-main);background:color-mix(in srgb, var(--eds-color-neutral-elements) 8%, transparent)}._IconButton_mce06_113:focus-visible{outline:2px solid var(--eds-color-blue-main);outline-offset:2px}._IconButton_mce06_113[data-disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}._Icon_mce06_113{flex-shrink:0;width:16px;height:16px}._Positioner_mce06_152{z-index:50;outline:0}._Popup_mce06_157{box-sizing:border-box;min-width:var(--anchor-width);border:1px solid var(--eds-color-outline-border);border-radius:var(--eds-border-radius-extra-small,8px);background-color:#fff;max-height:280px;padding:.25rem 0;overflow:visible;box-shadow:0 4px 6px -1px #00000012,0 2px 4px -2px #0000000f}._Empty_mce06_170{color:var(--eds-color-neutral-elements);padding:.625rem .75rem;font-size:.875rem;line-height:1.25rem}._List_mce06_177{box-sizing:border-box;overscroll-behavior:contain;outline:0;max-height:240px;padding:.125rem;overflow-y:auto}._Item_mce06_186{box-sizing:border-box;width:100%;font:inherit;color:var(--eds-color-neutral-main);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem .625rem;font-size:.875rem;line-height:1.25rem;display:flex}._Item_mce06_186[data-highlighted]{background:color-mix(in srgb, var(--eds-color-neutral-elements) 10%, transparent)}._Item_mce06_186[data-disabled]{opacity:.5;cursor:not-allowed}._ItemIndicator_mce06_217{width:1rem;height:1rem;color:var(--eds-color-blue-main);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}._ItemText_mce06_227{flex:1;min-width:0;display:block}._SupportingText_mce06_233{color:var(--eds-color-neutral-elements);font-size:.75rem;line-height:1rem}._SupportingText_mce06_233[data-state=invalid]{color:var(--eds-color-red-main)}._Root_twox3_1{box-sizing:border-box;flex-direction:column;gap:.375rem;width:214px;display:inline-flex}._Root_twox3_1[data-fluid]{width:100%}._LabelRow_twox3_13{justify-content:space-between;align-items:center;gap:.75rem;display:flex}._LabelLeft_twox3_20{align-items:center;gap:.5rem;min-width:0;display:inline-flex}._LabelText_twox3_27{color:var(--eds-color-neutral-main);align-items:baseline;gap:.25rem;font-size:.875rem;line-height:1.25rem;display:inline-flex}._Required_twox3_36{color:var(--eds-color-red-main)}._SupportLink_twox3_40{color:var(--eds-color-blue-main);text-underline-offset:.15em;white-space:nowrap;font-size:.875rem;line-height:1.25rem;text-decoration:underline}._SupportLink_twox3_40[aria-disabled=true]{opacity:.6;pointer-events:none}._TooltipButton_twox3_54{all:unset;width:28px;height:28px;color:var(--eds-color-neutral-elements);cursor:help;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}._TooltipButton_twox3_54:focus-visible{outline:2px solid var(--eds-color-blue-main);outline-offset:2px}._Control_twox3_71{border:1px solid var(--eds-color-outline-border);border-radius:var(--eds-border-radius-extra-small,8px);background-color:#fff;align-items:center;width:100%;height:36px;padding:0 .75rem;display:inline-flex;position:relative}._Adornment_twox3_83{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}._SpinnerWrap_twox3_90{color:var(--eds-color-blue-main)}._Spinner_twox3_90{animation:.7s linear infinite _input-spin_twox3_1}@keyframes _input-spin_twox3_1{to{transform:rotate(360deg)}}._Control_twox3_71[data-state=invalid]{border-color:color-mix(in srgb, var(--eds-color-red-main) 55%, var(--eds-color-outline-border))}._Control_twox3_71[data-state=valid]{border-color:color-mix(in srgb, var(--eds-color-green-main) 55%, var(--eds-color-outline-border))}._Control_twox3_71[data-state=loading]{border-color:color-mix(in srgb, var(--eds-color-blue-main) 45%, var(--eds-color-outline-border))}._Control_twox3_71:focus-within{border-color:color-mix(in srgb, var(--eds-color-neutral-elements) 35%, var(--eds-color-outline-border));box-shadow:0 0 0 3px var(--eds-color-outline-focus-ring)}._Control_twox3_71[data-disabled]{background-color:var(--eds-color-neutral-background);border-color:var(--eds-color-outline-border);opacity:.7;cursor:not-allowed}._Input_twox3_132{box-sizing:border-box;min-width:0;font:inherit;color:var(--eds-color-neutral-main);background:0 0;border:0;outline:0;flex:1;margin:0;padding:0;font-size:1rem;line-height:1.5rem}._Input_twox3_132::placeholder{color:var(--eds-color-neutral-elements);opacity:1}._FloatingLabel_twox3_152{color:var(--eds-color-neutral-elements);pointer-events:none;background:0 0;padding:0 .125rem;font-size:1rem;line-height:1.5rem;transition:transform .16s,font-size .16s,top .16s,color .16s;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}._Control_twox3_71[data-floating=true]{padding-top:.75rem}._Control_twox3_71[data-floating=true] ._Input_twox3_132::placeholder{opacity:0}._Control_twox3_71[data-floating=true][data-has-value] ._FloatingLabel_twox3_152,._Control_twox3_71[data-floating=true]:focus-within ._FloatingLabel_twox3_152{color:var(--eds-color-neutral-elements);background:#fff;font-size:.75rem;line-height:1rem;top:.35rem;transform:translateY(0)}._SupportingText_twox3_188{color:var(--eds-color-neutral-elements);font-size:.75rem;line-height:1rem}._SupportingText_twox3_188[data-state=invalid]{color:var(--eds-color-red-main)}
90
+ /*$vite$:1*/
package/package.json ADDED
@@ -0,0 +1,88 @@
1
+ {
2
+ "name": "@vincisys/eyeson",
3
+ "private": false,
4
+ "version": "0.1.0",
5
+ "type": "module",
6
+ "files": [
7
+ "dist",
8
+ "styles.css"
9
+ ],
10
+ "exports": {
11
+ "./Button": {
12
+ "types": "./dist/Button.d.ts",
13
+ "import": "./dist/Button.js",
14
+ "default": "./dist/Button.js"
15
+ },
16
+ "./Input": {
17
+ "types": "./dist/Input.d.ts",
18
+ "import": "./dist/Input.js",
19
+ "default": "./dist/Input.js"
20
+ },
21
+ "./Combobox": {
22
+ "types": "./dist/Combobox.d.ts",
23
+ "import": "./dist/Combobox.js",
24
+ "default": "./dist/Combobox.js"
25
+ },
26
+ "./styles.css": "./styles.css"
27
+ },
28
+ "sideEffects": [
29
+ "**/*.css"
30
+ ],
31
+ "scripts": {
32
+ "dev": "vite",
33
+ "build": "rm -rf dist && vite build && tsc -p tsconfig.dts.json && node scripts/merge-styles.mjs",
34
+ "build:js": "vite build",
35
+ "build:types": "tsc -p tsconfig.dts.json",
36
+ "typecheck": "tsc -b",
37
+ "lint": "eslint .",
38
+ "preview": "vite preview",
39
+ "storybook": "storybook dev -p 6006",
40
+ "build-storybook": "storybook build",
41
+ "prepublishOnly": "npm run build"
42
+ },
43
+ "dependencies": {
44
+ "@fontsource-variable/geist": "^5.2.8",
45
+ "@tanstack/react-table": "^8.21.3",
46
+ "brazilian-values": "^0.13.1",
47
+ "class-variance-authority": "^0.7.1"
48
+ },
49
+ "peerDependencies": {
50
+ "@base-ui/react": "^1.3.0",
51
+ "clsx": "^2.1.1",
52
+ "lucide-react": ">=0.400.0",
53
+ "react": ">=18",
54
+ "react-dom": ">=18"
55
+ },
56
+ "devDependencies": {
57
+ "@base-ui/react": "^1.3.0",
58
+ "@chromatic-com/storybook": "^5.1.1",
59
+ "@eslint/js": "^9.39.4",
60
+ "@storybook/addon-a11y": "^10.3.4",
61
+ "@storybook/addon-docs": "^10.3.4",
62
+ "@storybook/addon-onboarding": "^10.3.4",
63
+ "@storybook/addon-vitest": "^10.3.4",
64
+ "@storybook/react-vite": "^10.3.4",
65
+ "@types/node": "^24.12.2",
66
+ "@types/react": "^19.2.14",
67
+ "@types/react-dom": "^19.2.3",
68
+ "@vitejs/plugin-react": "^6.0.1",
69
+ "@vitest/browser-playwright": "^4.1.3",
70
+ "@vitest/coverage-v8": "^4.1.3",
71
+ "clsx": "^2.1.1",
72
+ "eslint": "^9.39.4",
73
+ "eslint-plugin-react-hooks": "^7.0.1",
74
+ "eslint-plugin-react-refresh": "^0.5.2",
75
+ "eslint-plugin-storybook": "^10.3.4",
76
+ "globals": "^17.4.0",
77
+ "lucide-react": "^1.7.0",
78
+ "playwright": "^1.59.1",
79
+ "react": "^19.2.4",
80
+ "react-dom": "^19.2.4",
81
+ "shadcn": "^4.1.2",
82
+ "storybook": "^10.3.4",
83
+ "typescript": "~6.0.2",
84
+ "typescript-eslint": "^8.58.0",
85
+ "vite": "^8.0.4",
86
+ "vitest": "^4.1.3"
87
+ }
88
+ }
package/styles.css ADDED
@@ -0,0 +1 @@
1
+ @import './dist/styles.css';