@consumidor-positivo/aurora 0.0.88 → 0.0.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Alert/index.es.js +1 -1
- package/dist/components/Calendar/index.es.js +2 -2
- package/dist/components/CalendarHeader/index.es.js +2 -2
- package/dist/components/Card/Container/index.d.ts +10 -0
- package/dist/components/Card/Emphasis/index.d.ts +9 -0
- package/dist/components/Card/Image/index.d.ts +7 -0
- package/dist/components/Card/Root/index.d.ts +11 -0
- package/dist/components/Card/Tag/index.d.ts +8 -0
- package/dist/components/Card/index.d.ts +15 -0
- package/dist/components/Card/index.es.js +47 -0
- package/dist/components/Card/index.es.js.map +1 -0
- package/dist/components/Card/styles.css +1 -0
- package/dist/components/Checkbox/index.es.js +1 -1
- package/dist/components/Container/index.es.js +23 -0
- package/dist/components/Container/index.es.js.map +1 -0
- package/dist/components/Datepicker/index.es.js +3 -3
- package/dist/components/Emphasis/index.es.js +22 -0
- package/dist/components/Emphasis/index.es.js.map +1 -0
- package/dist/components/Group/index.es.js +1 -1
- package/dist/components/Icon/index.es.js +1 -0
- package/dist/components/Icon/index.es.js.map +1 -1
- package/dist/components/Icon/styles.css +1 -1
- package/dist/components/Image/index.es.js +12 -0
- package/dist/components/Image/index.es.js.map +1 -0
- package/dist/components/InputField/index.es.js +5 -4
- package/dist/components/InputField/index.es.js.map +1 -1
- package/dist/components/Label/index.es.js +4 -4
- package/dist/components/Label/index.es.js.map +1 -1
- package/dist/components/Message/index.es.js +14 -0
- package/dist/components/Message/index.es.js.map +1 -0
- package/dist/components/PasswordField/index.es.js +3 -3
- package/dist/components/PasswordField/index.es.js.map +1 -1
- package/dist/components/PortalHolder/index.es.js +1 -1
- package/dist/components/Segment/index.es.js +1 -1
- package/dist/components/SelectField/index.es.js +5 -4
- package/dist/components/SelectField/index.es.js.map +1 -1
- package/dist/components/Tag/index.es.js +20 -0
- package/dist/components/Tag/index.es.js.map +1 -0
- package/dist/components/Text/styles.css +1 -1
- package/dist/components/TextareaField/index.es.js +5 -4
- package/dist/components/TextareaField/index.es.js.map +1 -1
- package/dist/components/TokenField/index.es.js +5 -2
- package/dist/components/TokenField/index.es.js.map +1 -1
- package/dist/components/form/Field/Label/index.d.ts +2 -2
- package/dist/components/form/Field/Message/index.d.ts +7 -0
- package/dist/components/form/Field/index.d.ts +7 -2
- package/dist/components/form/InputField/index.d.ts +3 -2
- package/dist/components/form/PasswordField/index.d.ts +2 -2
- package/dist/components/form/SelectField/index.d.ts +1 -1
- package/dist/components/form/SelectField/types.d.ts +2 -1
- package/dist/components/form/TextareaField/index.d.ts +3 -2
- package/dist/components/form/TokenField/index.d.ts +3 -1
- package/dist/components/icons/Icon.d.ts +1 -1
- package/dist/components/index/styles.css +1 -1
- package/dist/{index-h_Ql1Vzn.js → index-BddCbftf.js} +3 -3
- package/dist/{index-h_Ql1Vzn.js.map → index-BddCbftf.js.map} +1 -1
- package/dist/{index-C63hcch2.js → index-CscIGTNw.js} +2 -2
- package/dist/{index-C63hcch2.js.map → index-CscIGTNw.js.map} +1 -1
- package/dist/{index--3ScUApr.js → index-UzlCkzHO.js} +2 -2
- package/dist/{index--3ScUApr.js.map → index-UzlCkzHO.js.map} +1 -1
- package/dist/{index-DfksciAR.js → index-ZE6zszxw.js} +3 -1
- package/dist/index-ZE6zszxw.js.map +1 -0
- package/package.json +1 -1
- package/dist/index-DfksciAR.js.map +0 -1
|
@@ -5,8 +5,8 @@ import { IconAlertOctagon } from "../icons/IconAlertOctagon/index.es.js";
|
|
|
5
5
|
import { IconAlertTriangle } from "../icons/IconAlertTriangle/index.es.js";
|
|
6
6
|
import { IconCheck } from "../icons/IconCheck/index.es.js";
|
|
7
7
|
import { IconInfo } from "../icons/IconInfo/index.es.js";
|
|
8
|
-
import { C as COLOR_SUCCESS_50, a as COLOR_ERROR_50, V as COLOR_WARNING_50, a0 as COLOR_INFO_50 } from "../../tokens-DEqeZ57l.js";
|
|
9
8
|
import { Conditional } from "../Conditional/index.es.js";
|
|
9
|
+
import { C as COLOR_SUCCESS_50, a as COLOR_ERROR_50, V as COLOR_WARNING_50, a0 as COLOR_INFO_50 } from "../../tokens-DEqeZ57l.js";
|
|
10
10
|
import './styles.css';const Alert = ({
|
|
11
11
|
status = "info",
|
|
12
12
|
type = 1,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "react/jsx-runtime";
|
|
2
2
|
import "../../index-CweZ_OcN.js";
|
|
3
|
-
import "../../index-
|
|
3
|
+
import "../../index-CscIGTNw.js";
|
|
4
4
|
import "../Button/index.es.js";
|
|
5
5
|
import "../PortalHolder/index.es.js";
|
|
6
|
-
import { a } from "../../index-
|
|
6
|
+
import { a } from "../../index-BddCbftf.js";
|
|
7
7
|
export {
|
|
8
8
|
a as DatepickerCalendar
|
|
9
9
|
};
|
|
@@ -3,8 +3,8 @@ import "../../index-CweZ_OcN.js";
|
|
|
3
3
|
import "../Icon/index.es.js";
|
|
4
4
|
import "../icons/IconChevronLeft/index.es.js";
|
|
5
5
|
import "../icons/IconChevronRight/index.es.js";
|
|
6
|
-
import "../../index
|
|
7
|
-
import { C } from "../../index-
|
|
6
|
+
import "../../index-UzlCkzHO.js";
|
|
7
|
+
import { C } from "../../index-CscIGTNw.js";
|
|
8
8
|
export {
|
|
9
9
|
C as CalendarHeader
|
|
10
10
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
export type CardContainerProps = {
|
|
4
|
+
direction?: 'column' | 'row';
|
|
5
|
+
alignItems?: 'center' | 'start';
|
|
6
|
+
justifyContent?: 'center' | 'space-between';
|
|
7
|
+
gap?: number;
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
};
|
|
10
|
+
export declare const CardContainer: ({ direction, alignItems, justifyContent, gap, children, }: CardContainerProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type CardEmphasisProps = {
|
|
2
|
+
content: {
|
|
3
|
+
title: string;
|
|
4
|
+
description: string;
|
|
5
|
+
}[];
|
|
6
|
+
height?: number;
|
|
7
|
+
maxHeight?: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const CardEmphasis: ({ content, height, maxHeight, }: CardEmphasisProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
export type CardRootProps = {
|
|
4
|
+
border?: boolean;
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
7
|
+
maxWidth?: number;
|
|
8
|
+
maxHeight?: number;
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
};
|
|
11
|
+
export declare const CardRoot: ({ border, width, height, maxWidth, maxHeight, children, }: CardRootProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
export type CardTagProps = {
|
|
4
|
+
color?: 'primary' | 'secondary';
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
};
|
|
8
|
+
export declare const CardTag: ({ color, icon, children, }: CardTagProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CardContainerProps } from './Container';
|
|
2
|
+
import { CardEmphasisProps } from './Emphasis';
|
|
3
|
+
import { CardImageProps } from './Image';
|
|
4
|
+
import { CardRootProps } from './Root';
|
|
5
|
+
import { CardTagProps } from './Tag';
|
|
6
|
+
|
|
7
|
+
type Components = {
|
|
8
|
+
Root: React.FC<CardRootProps>;
|
|
9
|
+
Container: React.FC<CardContainerProps>;
|
|
10
|
+
Emphasis: React.FC<CardEmphasisProps>;
|
|
11
|
+
Image: React.FC<CardImageProps>;
|
|
12
|
+
Tag: React.FC<CardTagProps>;
|
|
13
|
+
};
|
|
14
|
+
declare const components: Components;
|
|
15
|
+
export { components as Card };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { CardContainer } from "../Container/index.es.js";
|
|
2
|
+
import { CardEmphasis } from "../Emphasis/index.es.js";
|
|
3
|
+
import { CardImage } from "../Image/index.es.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { c as classNames } from "../../index-CweZ_OcN.js";
|
|
6
|
+
import { CardTag } from "../Tag/index.es.js";
|
|
7
|
+
import './styles.css';const CardRoot = ({
|
|
8
|
+
border = true,
|
|
9
|
+
width,
|
|
10
|
+
height,
|
|
11
|
+
maxWidth,
|
|
12
|
+
maxHeight,
|
|
13
|
+
children
|
|
14
|
+
}) => {
|
|
15
|
+
const rootClasses = classNames("au-card__root", {
|
|
16
|
+
"au-card__root--border-none": !border
|
|
17
|
+
});
|
|
18
|
+
const rootSize = {
|
|
19
|
+
width: `${width}px`,
|
|
20
|
+
height: `${height}px`,
|
|
21
|
+
maxWidth: `${maxWidth}px`,
|
|
22
|
+
maxHeight: `${maxHeight}px`
|
|
23
|
+
};
|
|
24
|
+
return /* @__PURE__ */ jsx(
|
|
25
|
+
"div",
|
|
26
|
+
{
|
|
27
|
+
style: rootSize,
|
|
28
|
+
className: rootClasses,
|
|
29
|
+
children
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
const components = {
|
|
34
|
+
Root: CardRoot,
|
|
35
|
+
Container: CardContainer,
|
|
36
|
+
Emphasis: CardEmphasis,
|
|
37
|
+
Image: CardImage,
|
|
38
|
+
Tag: CardTag
|
|
39
|
+
};
|
|
40
|
+
Object.keys(components).forEach((key) => {
|
|
41
|
+
const component = components[key];
|
|
42
|
+
component.displayName = `Card.${key}`;
|
|
43
|
+
});
|
|
44
|
+
export {
|
|
45
|
+
components as Card
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=index.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../lib/components/Card/Root/index.tsx","../../../lib/components/Card/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { CSSProperties, ReactNode } from 'react'\n\nexport type CardRootProps = {\n border?: boolean\n width?: number\n height?: number\n maxWidth?: number\n maxHeight?: number\n children: ReactNode\n}\nexport const CardRoot = ({\n border = true,\n width,\n height,\n maxWidth,\n maxHeight,\n children,\n}: CardRootProps) => {\n const rootClasses = classNames('au-card__root', {\n 'au-card__root--border-none': !border,\n })\n const rootSize: CSSProperties = {\n width: `${width}px`,\n height: `${height}px`,\n maxWidth: `${maxWidth}px`,\n maxHeight: `${maxHeight}px`\n }\n\n return (\n <div\n style={rootSize}\n className={rootClasses}>\n {children}\n </div>\n )\n}\n","import { CardContainer, CardContainerProps } from './Container'\nimport { CardEmphasis, CardEmphasisProps } from './Emphasis'\nimport { CardImage, CardImageProps } from './Image'\nimport { CardRoot, CardRootProps } from './Root'\nimport { CardTag, CardTagProps } from './Tag'\nimport './styles.scss'\n\ntype Components = {\n Root: React.FC<CardRootProps>\n Container: React.FC<CardContainerProps>\n Emphasis: React.FC<CardEmphasisProps>\n Image: React.FC<CardImageProps>\n Tag: React.FC<CardTagProps>\n}\n\nconst components: Components = {\n Root: CardRoot,\n Container: CardContainer,\n Emphasis: CardEmphasis,\n Image: CardImage,\n Tag: CardTag,\n}\n\nObject.keys(components).forEach((key) => {\n const component = components[key as keyof Components]\n component.displayName = `Card.${key}`\n})\n\nexport { components as Card }\n"],"names":[],"mappings":";;;;;;AAWO,MAAM,WAAW,CAAC;AAAA,EACvB,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAqB;AACb,QAAA,cAAc,WAAW,iBAAiB;AAAA,IAC9C,8BAA8B,CAAC;AAAA,EAAA,CAChC;AACD,QAAM,WAA0B;AAAA,IAC9B,OAAO,GAAG,KAAK;AAAA,IACf,QAAQ,GAAG,MAAM;AAAA,IACjB,UAAU,GAAG,QAAQ;AAAA,IACrB,WAAW,GAAG,SAAS;AAAA,EAAA;AAIvB,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,WAAW;AAAA,MACV;AAAA,IAAA;AAAA,EAAA;AAGP;ACrBA,MAAM,aAAyB;AAAA,EAC7B,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,OAAO;AAAA,EACP,KAAK;AACP;AAEA,OAAO,KAAK,UAAU,EAAE,QAAQ,CAAC,QAAQ;AACjC,QAAA,YAAY,WAAW,GAAuB;AAC1C,YAAA,cAAc,QAAQ,GAAG;AACrC,CAAC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.au-card{font-family:"Source Sans 3",sans-serif}.au-card__root{background-color:#fff;border-radius:16px;border:1px solid #e2e4e9;padding:16px}.au-card__root--border-none{border:none}.au-card__container{display:flex;flex-direction:column;align-items:start;width:100%;height:100%}.au-card__container--direction-row{flex-direction:row}.au-card__container--align-items-center{align-items:center}.au-card__container--justify-content-center{justify-content:center}.au-card__container--justify-content-space-between{justify-content:space-between}.au-card__emphasis{background-color:#f2f5fc;display:flex;flex-direction:column;justify-content:center;gap:16px;padding:16px;margin:0 -16px;width:calc(100% + 32px)}.au-card__emphasis-container{display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:end}.au-card__tag{border-radius:8px;display:flex;justify-content:center;align-items:center;gap:4px;padding:4px 16px;width:100%;color:#16181d;font-size:14px;font-weight:600;line-height:21px}.au-card__tag--primary{background-color:#95f0cf}.au-card__tag--secondary{background-color:#eee6ff}
|
|
@@ -3,8 +3,8 @@ import $dbSRa$react__default, { useState, useEffect } from "react";
|
|
|
3
3
|
import { c as classNames } from "../../index-CweZ_OcN.js";
|
|
4
4
|
import "../Icon/index.es.js";
|
|
5
5
|
import { IconCheck } from "../icons/IconCheck/index.es.js";
|
|
6
|
+
import { F as Field } from "../../index-ZE6zszxw.js";
|
|
6
7
|
import { m as COLOR_NEUTRAL_00 } from "../../tokens-DEqeZ57l.js";
|
|
7
|
-
import { F as Field } from "../../index-DfksciAR.js";
|
|
8
8
|
import { Conditional } from "../Conditional/index.es.js";
|
|
9
9
|
import { Text } from "../Text/index.es.js";
|
|
10
10
|
import './styles.css';const CheckboxField = ({
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { c as classNames } from "../../index-CweZ_OcN.js";
|
|
3
|
+
const CardContainer = ({
|
|
4
|
+
direction,
|
|
5
|
+
alignItems,
|
|
6
|
+
justifyContent,
|
|
7
|
+
gap,
|
|
8
|
+
children
|
|
9
|
+
}) => {
|
|
10
|
+
const containerClasses = classNames("au-card__container", {
|
|
11
|
+
[`au-card__container--direction-${direction}`]: direction,
|
|
12
|
+
[`au-card__container--align-items-${alignItems}`]: alignItems,
|
|
13
|
+
[`au-card__container--justify-content-${justifyContent}`]: justifyContent
|
|
14
|
+
});
|
|
15
|
+
const containerStyle = {
|
|
16
|
+
gap: `${gap}px`
|
|
17
|
+
};
|
|
18
|
+
return /* @__PURE__ */ jsx("div", { style: containerStyle, className: containerClasses, children });
|
|
19
|
+
};
|
|
20
|
+
export {
|
|
21
|
+
CardContainer
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=index.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../lib/components/Card/Container/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { CSSProperties, ReactNode } from 'react'\n\nexport type CardContainerProps = {\n direction?: 'column' | 'row'\n alignItems?: 'center' | 'start'\n justifyContent?: 'center' | 'space-between'\n gap?: number\n children: ReactNode\n}\nexport const CardContainer = ({\n direction,\n alignItems,\n justifyContent,\n gap,\n children,\n}: CardContainerProps) => {\n const containerClasses = classNames('au-card__container', {\n [`au-card__container--direction-${direction}`]: direction,\n [`au-card__container--align-items-${alignItems}`]: alignItems,\n [`au-card__container--justify-content-${justifyContent}`]: justifyContent,\n })\n\n const containerStyle: CSSProperties = {\n gap: `${gap}px`,\n }\n return (\n <div style={containerStyle} className={containerClasses}>\n {children}\n </div>\n )\n}\n"],"names":[],"mappings":";;AAUO,MAAM,gBAAgB,CAAC;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA0B;AAClB,QAAA,mBAAmB,WAAW,sBAAsB;AAAA,IACxD,CAAC,iCAAiC,SAAS,EAAE,GAAG;AAAA,IAChD,CAAC,mCAAmC,UAAU,EAAE,GAAG;AAAA,IACnD,CAAC,uCAAuC,cAAc,EAAE,GAAG;AAAA,EAAA,CAC5D;AAED,QAAM,iBAAgC;AAAA,IACpC,KAAK,GAAG,GAAG;AAAA,EAAA;AAEb,6BACG,OAAI,EAAA,OAAO,gBAAgB,WAAW,kBACpC,SACH,CAAA;AAEJ;"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import { B as BREAKPOINT_MD, b as COLOR_NEUTRAL_40 } from "../../tokens-DEqeZ57l.js";
|
|
3
2
|
import "../../index-CweZ_OcN.js";
|
|
4
3
|
import "../Icon/index.es.js";
|
|
5
4
|
import { IconCalendar } from "../icons/IconCalendar/index.es.js";
|
|
6
5
|
import { InputField } from "../InputField/index.es.js";
|
|
7
|
-
import { g as getDefaultDate, D as DDMMYYYY, a as DatepickerCalendar, A as AUCalendarDate } from "../../index-
|
|
6
|
+
import { g as getDefaultDate, D as DDMMYYYY, a as DatepickerCalendar, A as AUCalendarDate } from "../../index-BddCbftf.js";
|
|
8
7
|
import { useRef, useState, useMemo, useEffect } from "react";
|
|
9
8
|
import { a as above } from "../../screen-DfYo7XQ_.js";
|
|
10
|
-
import { u as useOutsideClick } from "../../index
|
|
9
|
+
import { u as useOutsideClick } from "../../index-UzlCkzHO.js";
|
|
10
|
+
import { B as BREAKPOINT_MD, b as COLOR_NEUTRAL_40 } from "../../tokens-DEqeZ57l.js";
|
|
11
11
|
import './styles.css';function useDatepicker({
|
|
12
12
|
value,
|
|
13
13
|
defaultValue = "empty",
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Text } from "../Text/index.es.js";
|
|
3
|
+
const CardEmphasis = ({
|
|
4
|
+
content,
|
|
5
|
+
height,
|
|
6
|
+
maxHeight
|
|
7
|
+
}) => {
|
|
8
|
+
const emphasisSize = {
|
|
9
|
+
height: `${height}px`,
|
|
10
|
+
maxHeight: `${maxHeight}px`
|
|
11
|
+
};
|
|
12
|
+
return /* @__PURE__ */ jsx("div", { style: emphasisSize, className: "au-card__emphasis", children: content == null ? void 0 : content.map((item) => {
|
|
13
|
+
return /* @__PURE__ */ jsxs("div", { className: "au-card__emphasis-container", children: [
|
|
14
|
+
/* @__PURE__ */ jsx(Text, { variant: "body-small", color: "secondary", children: item.title }),
|
|
15
|
+
/* @__PURE__ */ jsx(Text, { variant: "body-small", weight: "semibold", children: item.description })
|
|
16
|
+
] });
|
|
17
|
+
}) });
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
CardEmphasis
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=index.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../lib/components/Card/Emphasis/index.tsx"],"sourcesContent":["import { Text } from '@components/Text'\nimport { CSSProperties } from 'react'\n\nexport type CardEmphasisProps = {\n content: { title: string; description: string }[]\n height?: number\n maxHeight?: number\n}\nexport const CardEmphasis = ({\n content,\n height,\n maxHeight,\n}: CardEmphasisProps) => {\n const emphasisSize: CSSProperties = {\n height: `${height}px`,\n maxHeight: `${maxHeight}px`,\n }\n\n return (\n <div style={emphasisSize} className=\"au-card__emphasis\">\n {content?.map((item) => {\n return (\n <div className=\"au-card__emphasis-container\">\n <Text variant=\"body-small\" color=\"secondary\">\n {item.title}\n </Text>\n <Text variant=\"body-small\" weight=\"semibold\">\n {item.description}\n </Text>\n </div>\n )\n })}\n </div>\n )\n}\n"],"names":[],"mappings":";;AAQO,MAAM,eAAe,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACF,MAAyB;AACvB,QAAM,eAA8B;AAAA,IAClC,QAAQ,GAAG,MAAM;AAAA,IACjB,WAAW,GAAG,SAAS;AAAA,EAAA;AAIvB,SAAA,oBAAC,SAAI,OAAO,cAAc,WAAU,qBACjC,UAAA,mCAAS,IAAI,CAAC,SAAS;AAEpB,WAAA,qBAAC,OAAI,EAAA,WAAU,+BACb,UAAA;AAAA,MAAA,oBAAC,QAAK,SAAQ,cAAa,OAAM,aAC9B,eAAK,OACR;AAAA,0BACC,MAAK,EAAA,SAAQ,cAAa,QAAO,YAC/B,eAAK,aACR;AAAA,IACF,EAAA,CAAA;AAAA,EAEH,GACH,CAAA;AAEJ;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { c as classNames } from "../../index-CweZ_OcN.js";
|
|
3
|
-
import { F as Field } from "../../index-
|
|
3
|
+
import { F as Field } from "../../index-ZE6zszxw.js";
|
|
4
4
|
import { Conditional } from "../Conditional/index.es.js";
|
|
5
5
|
import { Text } from "../Text/index.es.js";
|
|
6
6
|
import $dbSRa$react__default, { useState } from "react";
|
|
@@ -18,6 +18,7 @@ import './styles.css';const Icon = ({
|
|
|
18
18
|
"au-icon--color-dark": color === "dark",
|
|
19
19
|
"au-icon--color-info": color === "info",
|
|
20
20
|
"au-icon--size-large": size === "large",
|
|
21
|
+
"au-icon--size-small": size === "small",
|
|
21
22
|
[`${className}`]: !!className
|
|
22
23
|
});
|
|
23
24
|
return /* @__PURE__ */ jsx(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../lib/components/icons/Icon.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport './styles.scss'\n\nexport type IconSize = 'large' | 'default'\nexport type IconColor = 'dark' | 'info' | 'default'\n\nexport type IconProps = {\n size?: IconSize\n color?: IconColor\n rawColor?: string\n className?: string\n onClick?: () => void\n}\ntype BaseIconProps = IconProps & {\n markup?: string\n name?: string\n}\n\nconst Icon: React.FC<BaseIconProps> = ({\n markup,\n name,\n size,\n color,\n rawColor,\n className,\n onClick,\n}: BaseIconProps) => {\n const iconStyle: React.CSSProperties = {\n ...(rawColor && { color: rawColor }),\n }\n\n const componentClass = classNames('au-icon', {\n [`au-icon--${name?.toLocaleLowerCase()}`]: !!name,\n 'au-icon--color-raw': !!rawColor,\n 'au-icon--color-dark': color === 'dark',\n 'au-icon--color-info': color === 'info',\n 'au-icon--size-large': size === 'large',\n [`${className}`]: !!className,\n })\n\n return (\n <div\n style={iconStyle}\n onClick={onClick}\n className={componentClass}\n dangerouslySetInnerHTML={{\n __html: markup || '',\n }}\n />\n )\n}\n\nexport default Icon\n"],"names":[],"mappings":";;AAkBA,MAAM,OAAgC,CAAC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAqB;AACnB,QAAM,YAAiC;AAAA,IACrC,GAAI,YAAY,EAAE,OAAO,SAAS;AAAA,EAAA;AAG9B,QAAA,iBAAiB,WAAW,WAAW;AAAA,IAC3C,CAAC,YAAY,6BAAM,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAAA,IAC7C,sBAAsB,CAAC,CAAC;AAAA,IACxB,uBAAuB,UAAU;AAAA,IACjC,uBAAuB,UAAU;AAAA,IACjC,uBAAuB,SAAS;AAAA,IAChC,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC;AAAA,EAAA,CACrB;AAGC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP;AAAA,MACA,WAAW;AAAA,MACX,yBAAyB;AAAA,QACvB,QAAQ,UAAU;AAAA,MACpB;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../lib/components/icons/Icon.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport './styles.scss'\n\nexport type IconSize = 'large' | 'small' | 'default'\nexport type IconColor = 'dark' | 'info' | 'default'\n\nexport type IconProps = {\n size?: IconSize\n color?: IconColor\n rawColor?: string\n className?: string\n onClick?: () => void\n}\ntype BaseIconProps = IconProps & {\n markup?: string\n name?: string\n}\n\nconst Icon: React.FC<BaseIconProps> = ({\n markup,\n name,\n size,\n color,\n rawColor,\n className,\n onClick,\n}: BaseIconProps) => {\n const iconStyle: React.CSSProperties = {\n ...(rawColor && { color: rawColor }),\n }\n\n const componentClass = classNames('au-icon', {\n [`au-icon--${name?.toLocaleLowerCase()}`]: !!name,\n 'au-icon--color-raw': !!rawColor,\n 'au-icon--color-dark': color === 'dark',\n 'au-icon--color-info': color === 'info',\n 'au-icon--size-large': size === 'large',\n 'au-icon--size-small': size === 'small',\n [`${className}`]: !!className,\n })\n\n return (\n <div\n style={iconStyle}\n onClick={onClick}\n className={componentClass}\n dangerouslySetInnerHTML={{\n __html: markup || '',\n }}\n />\n )\n}\n\nexport default Icon\n"],"names":[],"mappings":";;AAkBA,MAAM,OAAgC,CAAC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAqB;AACnB,QAAM,YAAiC;AAAA,IACrC,GAAI,YAAY,EAAE,OAAO,SAAS;AAAA,EAAA;AAG9B,QAAA,iBAAiB,WAAW,WAAW;AAAA,IAC3C,CAAC,YAAY,6BAAM,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAAA,IAC7C,sBAAsB,CAAC,CAAC;AAAA,IACxB,uBAAuB,UAAU;AAAA,IACjC,uBAAuB,UAAU;AAAA,IACjC,uBAAuB,SAAS;AAAA,IAChC,uBAAuB,SAAS;AAAA,IAChC,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC;AAAA,EAAA,CACrB;AAGC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP;AAAA,MACA,WAAW;AAAA,MACX,yBAAyB;AAAA,QACvB,QAAQ,UAAU;AAAA,MACpB;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.au-icon,.au-icon>svg{width:24px;height:24px;color:#0048db;display:flex;align-items:center;justify-content:center}.au-icon--size-large,.au-icon--size-large svg{width:32px;height:32px}.au-icon--color-dark>svg{color:#454a54}.au-icon--color-info>svg{color:#6728e5}.au-icon--color-raw>svg{color:inherit}
|
|
1
|
+
.au-icon,.au-icon>svg{width:24px;height:24px;color:#0048db;display:flex;align-items:center;justify-content:center}.au-icon--size-large,.au-icon--size-large svg{width:32px;height:32px}.au-icon--size-small,.au-icon--size-small svg{width:16px;height:16px}.au-icon--color-dark>svg{color:#454a54}.au-icon--color-info>svg{color:#6728e5}.au-icon--color-raw>svg{color:inherit}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
const CardImage = ({ src, alt, width, height }) => {
|
|
3
|
+
const imageSize = {
|
|
4
|
+
width: `${width}px`,
|
|
5
|
+
height: `${height}px`
|
|
6
|
+
};
|
|
7
|
+
return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("img", { style: imageSize, src, alt }) });
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
CardImage
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=index.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../lib/components/Card/Image/index.tsx"],"sourcesContent":["import { CSSProperties } from 'react'\n\nexport type CardImageProps = {\n src: string\n alt?: string\n width?: number\n height?: number\n}\nexport const CardImage = ({ src, alt, width, height }: CardImageProps) => {\n const imageSize: CSSProperties = {\n width: `${width}px`,\n height: `${height}px`,\n }\n\n return (\n <div>\n <img style={imageSize} src={src} alt={alt} />\n </div>\n )\n}\n"],"names":[],"mappings":";AAQO,MAAM,YAAY,CAAC,EAAE,KAAK,KAAK,OAAO,aAA6B;AACxE,QAAM,YAA2B;AAAA,IAC/B,OAAO,GAAG,KAAK;AAAA,IACf,QAAQ,GAAG,MAAM;AAAA,EAAA;AAIjB,SAAA,oBAAC,SACC,UAAC,oBAAA,OAAA,EAAI,OAAO,WAAW,KAAU,IAAU,CAAA,EAC7C,CAAA;AAEJ;"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import { F as Field } from "../../index-
|
|
2
|
+
import { F as Field } from "../../index-ZE6zszxw.js";
|
|
3
3
|
const InputField = ({
|
|
4
|
-
|
|
4
|
+
showOptionalLabel,
|
|
5
5
|
requiredInput,
|
|
6
6
|
success,
|
|
7
7
|
error,
|
|
8
8
|
errorMessage,
|
|
9
|
+
helpMessage,
|
|
9
10
|
label,
|
|
10
11
|
id,
|
|
11
12
|
disabled,
|
|
@@ -30,8 +31,8 @@ const InputField = ({
|
|
|
30
31
|
{
|
|
31
32
|
text: label,
|
|
32
33
|
id,
|
|
34
|
+
showOptionalLabel,
|
|
33
35
|
required: requiredInput,
|
|
34
|
-
optional,
|
|
35
36
|
success,
|
|
36
37
|
error,
|
|
37
38
|
disabled
|
|
@@ -47,7 +48,7 @@ const InputField = ({
|
|
|
47
48
|
...props
|
|
48
49
|
}
|
|
49
50
|
) }),
|
|
50
|
-
/* @__PURE__ */ jsx(Field.
|
|
51
|
+
/* @__PURE__ */ jsx(Field.Message, { hasError: !!error, errorMessage, helpMessage })
|
|
51
52
|
]
|
|
52
53
|
}
|
|
53
54
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../lib/components/form/InputField/index.tsx"],"sourcesContent":["import Field from '../Field'\n\nexport type InputProps = React.InputHTMLAttributes<HTMLInputElement> & {\n
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../lib/components/form/InputField/index.tsx"],"sourcesContent":["import Field from '../Field'\n\nexport type InputProps = React.InputHTMLAttributes<HTMLInputElement> & {\n showOptionalLabel?: boolean\n requiredInput?: boolean\n success?: boolean\n error?: boolean\n errorMessage?: string\n helpMessage?: string\n rightSlot?: React.ReactNode\n label?: string\n inputStyle?: React.CSSProperties\n inputRef?: React.RefObject<HTMLInputElement>\n}\n\nexport const InputField = ({\n showOptionalLabel,\n requiredInput,\n success,\n error,\n errorMessage,\n helpMessage,\n label,\n id,\n disabled,\n style,\n className,\n inputStyle,\n rightSlot,\n inputRef,\n ...props\n}: InputProps) => {\n\n return (\n <Field.Root\n style={style}\n customclass={className}\n success={success}\n error={error}\n disabled={disabled}>\n <Field.Label\n text={label}\n id={id}\n showOptionalLabel={showOptionalLabel}\n required={requiredInput}\n success={success}\n error={error}\n disabled={disabled}\n />\n <Field.InputHolder rightSideSlot={rightSlot}>\n <Field.Input\n id={id}\n inputRef={inputRef}\n disabled={disabled}\n style={inputStyle}\n {...props}\n />\n </Field.InputHolder>\n <Field.Message hasError={!!error} errorMessage={errorMessage} helpMessage={helpMessage} />\n </Field.Root>\n )\n}\n"],"names":[],"mappings":";;AAeO,MAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAkB;AAGd,SAAA;AAAA,IAAC,MAAM;AAAA,IAAN;AAAA,MACC;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAA;AAAA,QAAA;AAAA,UAAC,MAAM;AAAA,UAAN;AAAA,YACC,MAAM;AAAA,YACN;AAAA,YACA;AAAA,YACA,UAAU;AAAA,YACV;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,QACF;AAAA,QACC,oBAAA,MAAM,aAAN,EAAkB,eAAe,WAChC,UAAA;AAAA,UAAC,MAAM;AAAA,UAAN;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA,OAAO;AAAA,YACN,GAAG;AAAA,UAAA;AAAA,QAAA,GAER;AAAA,QACA,oBAAC,MAAM,SAAN,EAAc,UAAU,CAAC,CAAC,OAAO,cAA4B,aAA0B;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG9F;"}
|
|
@@ -9,14 +9,13 @@ const FieldLabel = ({
|
|
|
9
9
|
id,
|
|
10
10
|
text,
|
|
11
11
|
required,
|
|
12
|
-
optional,
|
|
13
12
|
success,
|
|
14
13
|
error,
|
|
15
|
-
disabled
|
|
14
|
+
disabled,
|
|
15
|
+
showOptionalLabel = true
|
|
16
16
|
}) => {
|
|
17
17
|
if (!text) return null;
|
|
18
18
|
const states = [
|
|
19
|
-
{ state: "optional", value: !!optional, icon: /* @__PURE__ */ jsx("span", { children: "(Opcional)" }) },
|
|
20
19
|
{
|
|
21
20
|
state: "success",
|
|
22
21
|
value: !!success,
|
|
@@ -38,7 +37,8 @@ const FieldLabel = ({
|
|
|
38
37
|
/* @__PURE__ */ jsxs("label", { htmlFor: id, className: "au-field__header-label", children: [
|
|
39
38
|
text,
|
|
40
39
|
" ",
|
|
41
|
-
required && /* @__PURE__ */ jsx("
|
|
40
|
+
showOptionalLabel && !required && /* @__PURE__ */ jsx("span", { className: "au-field__header-label--optional", children: "(Opcional)" }),
|
|
41
|
+
!showOptionalLabel && required && /* @__PURE__ */ jsx("strong", { className: "au-field__header-label--required", children: "*" })
|
|
42
42
|
] }),
|
|
43
43
|
/* @__PURE__ */ jsx("div", { className: "au-field__header-icon", children: currentState == null ? void 0 : currentState.icon })
|
|
44
44
|
] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../lib/components/form/Field/Label/index.tsx"],"sourcesContent":["import { IconAlertOctagon, IconCheck, IconSlash } from '@components/icons'\nimport {\n COLOR_ERROR_50,\n COLOR_NEUTRAL_40,\n COLOR_SUCCESS_50,\n} from '@core/tokens'\n\ntype FieldLabelProps = {\n id?: string\n text?: string\n required?: boolean\n
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../lib/components/form/Field/Label/index.tsx"],"sourcesContent":["import { IconAlertOctagon, IconCheck, IconSlash } from '@components/icons'\nimport {\n COLOR_ERROR_50,\n COLOR_NEUTRAL_40,\n COLOR_SUCCESS_50,\n} from '@core/tokens'\n\ntype FieldLabelProps = {\n id?: string\n text?: string\n required?: boolean\n success?: boolean\n error?: boolean\n disabled?: boolean\n showOptionalLabel?: boolean\n}\n\nexport const FieldLabel = ({\n id,\n text,\n required,\n success,\n error,\n disabled,\n showOptionalLabel = true,\n}: FieldLabelProps) => {\n if (!text) return null\n\n const states = [\n {\n state: 'success',\n value: !!success,\n icon: <IconCheck rawColor={COLOR_SUCCESS_50} />,\n },\n {\n state: 'error',\n value: !!error,\n icon: <IconAlertOctagon rawColor={COLOR_ERROR_50} />,\n },\n {\n state: 'disabled',\n value: !!disabled,\n icon: <IconSlash rawColor={COLOR_NEUTRAL_40} />,\n },\n ]\n\n const currentState = states.find(({ value }) => !!value)\n\n return (\n <div className=\"au-field__header\">\n <label htmlFor={id} className=\"au-field__header-label\">\n {text}{' '}\n {showOptionalLabel && !required && (\n <span className=\"au-field__header-label--optional\">(Opcional)</span>\n )}\n {!showOptionalLabel && required && (\n <strong className=\"au-field__header-label--required\">*</strong>\n )}\n </label>\n <div className=\"au-field__header-icon\">{currentState?.icon}</div>\n </div>\n )\n}\n"],"names":[],"mappings":";;;;;;;AAiBO,MAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AACtB,MAAuB;AACjB,MAAA,CAAC,KAAa,QAAA;AAElB,QAAM,SAAS;AAAA,IACb;AAAA,MACE,OAAO;AAAA,MACP,OAAO,CAAC,CAAC;AAAA,MACT,MAAM,oBAAC,WAAU,EAAA,UAAU,iBAAkB,CAAA;AAAA,IAC/C;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO,CAAC,CAAC;AAAA,MACT,MAAM,oBAAC,kBAAiB,EAAA,UAAU,eAAgB,CAAA;AAAA,IACpD;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO,CAAC,CAAC;AAAA,MACT,MAAM,oBAAC,WAAU,EAAA,UAAU,iBAAkB,CAAA;AAAA,IAC/C;AAAA,EAAA;AAGI,QAAA,eAAe,OAAO,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,KAAK;AAGrD,SAAA,qBAAC,OAAI,EAAA,WAAU,oBACb,UAAA;AAAA,IAAA,qBAAC,SAAM,EAAA,SAAS,IAAI,WAAU,0BAC3B,UAAA;AAAA,MAAA;AAAA,MAAM;AAAA,MACN,qBAAqB,CAAC,gCACpB,QAAK,EAAA,WAAU,oCAAmC,UAAU,cAAA;AAAA,MAE9D,CAAC,qBAAqB,gCACpB,UAAO,EAAA,WAAU,oCAAmC,UAAC,KAAA;AAAA,IAAA,GAE1D;AAAA,IACC,oBAAA,OAAA,EAAI,WAAU,yBAAyB,uDAAc,MAAK;AAAA,EAC7D,EAAA,CAAA;AAEJ;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
const FieldMessage = ({ hasError, errorMessage, helpMessage }) => {
|
|
3
|
+
if (hasError && errorMessage) {
|
|
4
|
+
return /* @__PURE__ */ jsx("p", { className: "au-field__message au-field__message--error", children: errorMessage });
|
|
5
|
+
}
|
|
6
|
+
if (helpMessage) {
|
|
7
|
+
return /* @__PURE__ */ jsx("p", { className: "au-field__message", children: helpMessage });
|
|
8
|
+
}
|
|
9
|
+
return null;
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
FieldMessage
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../lib/components/form/Field/Message/index.tsx"],"sourcesContent":["type FieldMessageProps = {\n hasError?: boolean\n errorMessage?: string\n helpMessage?: string\n}\n\nexport const FieldMessage = ({ hasError, errorMessage, helpMessage }: FieldMessageProps) => {\n if (hasError && errorMessage) {\n return <p className=\"au-field__message au-field__message--error\">{errorMessage}</p>\n }\n\n if (helpMessage) {\n return <p className=\"au-field__message\">{helpMessage}</p>\n }\n\n return null\n}\n"],"names":[],"mappings":";AAMO,MAAM,eAAe,CAAC,EAAE,UAAU,cAAc,kBAAqC;AAC1F,MAAI,YAAY,cAAc;AAC5B,WAAQ,oBAAA,KAAA,EAAE,WAAU,8CAA8C,UAAa,aAAA,CAAA;AAAA,EACjF;AAEA,MAAI,aAAa;AACf,WAAQ,oBAAA,KAAA,EAAE,WAAU,qBAAqB,UAAY,YAAA,CAAA;AAAA,EACvD;AAEO,SAAA;AACT;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import { F as Field } from "../../index-
|
|
2
|
+
import { F as Field } from "../../index-ZE6zszxw.js";
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import './styles.css';const usePasswordField = () => {
|
|
5
5
|
const [showPassword, setShowPassword] = useState(false);
|
|
@@ -15,7 +15,7 @@ import './styles.css';const usePasswordField = () => {
|
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
17
|
const PasswordField = ({
|
|
18
|
-
|
|
18
|
+
showOptionalLabel,
|
|
19
19
|
requiredInput,
|
|
20
20
|
success,
|
|
21
21
|
error,
|
|
@@ -44,7 +44,7 @@ const PasswordField = ({
|
|
|
44
44
|
text: label,
|
|
45
45
|
id,
|
|
46
46
|
required: requiredInput,
|
|
47
|
-
|
|
47
|
+
showOptionalLabel,
|
|
48
48
|
success,
|
|
49
49
|
error,
|
|
50
50
|
disabled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../lib/components/form/PasswordField/hook.tsx","../../../lib/components/form/PasswordField/index.tsx"],"sourcesContent":["import { useState } from 'react'\n\nexport const usePasswordField = () => {\n const [showPassword, setShowPassword] = useState<boolean>(false)\n const fieldType = showPassword ? 'text' : 'password'\n const textButton = showPassword ? 'ocultar' : 'mostrar'\n\n function changeVisibility() {\n setShowPassword((prevState) => !prevState)\n }\n\n return {\n fieldType,\n textButton,\n changeVisibility,\n }\n}\n","import Field from '../Field'\nimport { usePasswordField } from './hook'\nimport './styles.scss'\n\ntype PasswordFieldProps = React.InputHTMLAttributes<HTMLInputElement> & {\n type?: 'password'\n
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../lib/components/form/PasswordField/hook.tsx","../../../lib/components/form/PasswordField/index.tsx"],"sourcesContent":["import { useState } from 'react'\n\nexport const usePasswordField = () => {\n const [showPassword, setShowPassword] = useState<boolean>(false)\n const fieldType = showPassword ? 'text' : 'password'\n const textButton = showPassword ? 'ocultar' : 'mostrar'\n\n function changeVisibility() {\n setShowPassword((prevState) => !prevState)\n }\n\n return {\n fieldType,\n textButton,\n changeVisibility,\n }\n}\n","import Field from '../Field'\nimport { usePasswordField } from './hook'\nimport './styles.scss'\n\ntype PasswordFieldProps = React.InputHTMLAttributes<HTMLInputElement> & {\n type?: 'password'\n showOptionalLabel?: boolean\n requiredInput?: boolean\n success?: boolean\n error?: boolean\n errorMessage?: string\n label?: string\n inputRef?: React.RefObject<HTMLInputElement>\n}\n\nexport const PasswordField = ({\n showOptionalLabel,\n requiredInput,\n success,\n error,\n errorMessage,\n label,\n inputRef,\n id,\n disabled,\n style,\n className,\n ...props\n}: PasswordFieldProps) => {\n const { fieldType, textButton, changeVisibility } = usePasswordField()\n\n return (\n <Field.Root\n style={style}\n customclass={className}\n success={success}\n error={error}\n disabled={disabled}>\n <Field.Label\n text={label}\n id={id}\n required={requiredInput}\n showOptionalLabel={showOptionalLabel}\n success={success}\n error={error}\n disabled={disabled}\n />\n <div className=\"au-password-field__container\">\n <Field.Input\n customclass=\"au-password-field__input\"\n type={fieldType}\n id={id}\n inputRef={inputRef}\n disabled={disabled}\n {...props}\n />\n <button\n className=\"au-password-field__btn\"\n onClick={changeVisibility}\n disabled={disabled}>\n {textButton}\n </button>\n </div>\n <Field.ErrorMessage hasError={!!error} message={errorMessage} />\n </Field.Root>\n )\n}\n"],"names":[],"mappings":";;;AAEO,MAAM,mBAAmB,MAAM;AACpC,QAAM,CAAC,cAAc,eAAe,IAAI,SAAkB,KAAK;AACzD,QAAA,YAAY,eAAe,SAAS;AACpC,QAAA,aAAa,eAAe,YAAY;AAE9C,WAAS,mBAAmB;AACV,oBAAA,CAAC,cAAc,CAAC,SAAS;AAAA,EAC3C;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;ACDO,MAAM,gBAAgB,CAAC;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA0B;AACxB,QAAM,EAAE,WAAW,YAAY,qBAAqB,iBAAiB;AAGnE,SAAA;AAAA,IAAC,MAAM;AAAA,IAAN;AAAA,MACC;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAA;AAAA,QAAA;AAAA,UAAC,MAAM;AAAA,UAAN;AAAA,YACC,MAAM;AAAA,YACN;AAAA,YACA,UAAU;AAAA,YACV;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,QACF;AAAA,QACA,qBAAC,OAAI,EAAA,WAAU,gCACb,UAAA;AAAA,UAAA;AAAA,YAAC,MAAM;AAAA,YAAN;AAAA,cACC,aAAY;AAAA,cACZ,MAAM;AAAA,cACN;AAAA,cACA;AAAA,cACA;AAAA,cACC,GAAG;AAAA,YAAA;AAAA,UACN;AAAA,UACA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,SAAS;AAAA,cACT;AAAA,cACC,UAAA;AAAA,YAAA;AAAA,UACH;AAAA,QAAA,GACF;AAAA,QACA,oBAAC,MAAM,cAAN,EAAmB,UAAU,CAAC,CAAC,OAAO,SAAS,cAAc;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGpE;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { a as above } from "../../screen-DfYo7XQ_.js";
|
|
3
|
-
import { B as BREAKPOINT_MD } from "../../tokens-DEqeZ57l.js";
|
|
4
3
|
import { Portal } from "../Portal/index.es.js";
|
|
4
|
+
import { B as BREAKPOINT_MD } from "../../tokens-DEqeZ57l.js";
|
|
5
5
|
const PortalHolder = ({ withPortal, children }) => {
|
|
6
6
|
const shouldUsePortal = !above(BREAKPOINT_MD) && withPortal;
|
|
7
7
|
if (shouldUsePortal) return /* @__PURE__ */ jsx(Portal, { children });
|
|
@@ -4,7 +4,7 @@ import "../Icon/index.es.js";
|
|
|
4
4
|
import "../icons/IconChevronDown/index.es.js";
|
|
5
5
|
import "../icons/IconChevronLeft/index.es.js";
|
|
6
6
|
import "../icons/IconX/index.es.js";
|
|
7
|
-
import { S } from "../../index
|
|
7
|
+
import { S } from "../../index-UzlCkzHO.js";
|
|
8
8
|
export {
|
|
9
9
|
S as Segment
|
|
10
10
|
};
|
|
@@ -4,7 +4,7 @@ import "../Icon/index.es.js";
|
|
|
4
4
|
import { IconCheck } from "../icons/IconCheck/index.es.js";
|
|
5
5
|
import { IconChevronDown } from "../icons/IconChevronDown/index.es.js";
|
|
6
6
|
import { IconSlash } from "../icons/IconSlash/index.es.js";
|
|
7
|
-
import { F as Field } from "../../index-
|
|
7
|
+
import { F as Field } from "../../index-ZE6zszxw.js";
|
|
8
8
|
import { useState, useRef, useEffect } from "react";
|
|
9
9
|
import './styles.css';const useSelectField = (options, initialValue, onChange, disabled, register, autocomplete = false) => {
|
|
10
10
|
var _a;
|
|
@@ -182,9 +182,10 @@ import './styles.css';const useSelectField = (options, initialValue, onChange, d
|
|
|
182
182
|
const SelectField = ({
|
|
183
183
|
label,
|
|
184
184
|
options,
|
|
185
|
-
|
|
185
|
+
showOptionalLabel,
|
|
186
186
|
error,
|
|
187
187
|
errorMessage,
|
|
188
|
+
helpMessage,
|
|
188
189
|
disabled,
|
|
189
190
|
required,
|
|
190
191
|
value,
|
|
@@ -233,7 +234,7 @@ const SelectField = ({
|
|
|
233
234
|
Field.Label,
|
|
234
235
|
{
|
|
235
236
|
text: label,
|
|
236
|
-
|
|
237
|
+
showOptionalLabel,
|
|
237
238
|
required,
|
|
238
239
|
error,
|
|
239
240
|
disabled
|
|
@@ -317,7 +318,7 @@ const SelectField = ({
|
|
|
317
318
|
}
|
|
318
319
|
)
|
|
319
320
|
] }),
|
|
320
|
-
/* @__PURE__ */ jsx(Field.
|
|
321
|
+
/* @__PURE__ */ jsx(Field.Message, { hasError: !!error, errorMessage, helpMessage })
|
|
321
322
|
]
|
|
322
323
|
}
|
|
323
324
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../lib/components/form/SelectField/hook.ts","../../../lib/components/form/SelectField/index.tsx"],"sourcesContent":["import { useState, useRef, useEffect } from 'react'\nimport { OptionProps } from './types'\n\nexport const useSelectField = (\n options: OptionProps[],\n initialValue?: string,\n onChange?: (value: string) => void,\n disabled?: boolean,\n register?: (instance: HTMLSelectElement | null) => void,\n autocomplete: boolean = false,\n) => {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false)\n const [selectedOption, setSelectedOption] = useState<OptionProps>({\n value: initialValue || '',\n label: initialValue\n ? options.find((option) => option.value === initialValue)?.label || ''\n : '',\n })\n const [activeOptionIndex, setActiveOptionIndex] = useState<number | null>(\n null,\n )\n const [dropdownMaxHeight, setDropdownMaxHeight] = useState<number>(0)\n const selectRef = useRef<HTMLDivElement>(null)\n const selectElementRef = useRef<HTMLSelectElement>(null)\n const [searchValue, setSearchValue] = useState<string>('')\n const activeOptionRef = useRef<HTMLLIElement | null>(null)\n\n const filteredOptions = autocomplete\n ? options.filter((option) =>\n option.label.toLowerCase().includes(searchValue.toLowerCase()),\n )\n : options\n\n useEffect(() => {\n if (initialValue) {\n const option = options.find((option) => option.value === initialValue)\n if (option) {\n setSelectedOption({ value: option.value, label: option.label })\n }\n }\n }, [initialValue, options])\n\n useEffect(() => {\n if (register && selectElementRef.current) {\n register(selectElementRef.current)\n }\n }, [register])\n\n useEffect(() => {\n if (activeOptionRef.current) {\n activeOptionRef.current.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n })\n }\n }, [activeOptionIndex])\n\n useEffect(() => {\n const handleClickOutside = (event: PointerEvent) => {\n if (\n selectRef.current &&\n !selectRef.current.contains(event.target as Node)\n ) {\n setIsDropdownOpen(false)\n }\n }\n\n if (isDropdownOpen) {\n document.addEventListener('pointerup', handleClickOutside)\n } else {\n document.removeEventListener('pointerup', handleClickOutside)\n }\n\n return () => {\n document.removeEventListener('pointerup', handleClickOutside)\n }\n }, [isDropdownOpen])\n\n const toggleDropdown = () => {\n if (!isDropdownOpen && selectRef.current) {\n const { bottom } = selectRef.current.getBoundingClientRect()\n let totalPadding = 0\n let parentElement: HTMLElement | null = selectRef.current.parentElement\n\n while (parentElement) {\n const parentPaddingBottom = parseFloat(\n window.getComputedStyle(parentElement).paddingBottom || '0',\n )\n totalPadding += parentPaddingBottom\n parentElement = parentElement.parentElement\n }\n\n const availableSpaceBelow = window.innerHeight - bottom - totalPadding\n const minDropdownHeight = 212\n const calculatedHeight = Math.max(availableSpaceBelow, minDropdownHeight)\n\n setDropdownMaxHeight(calculatedHeight)\n }\n\n setIsDropdownOpen((prev) => {\n if (!prev) {\n const selectedIndex = options.findIndex(\n (option) => option.value === selectedOption.value,\n )\n setActiveOptionIndex(selectedIndex !== -1 ? selectedIndex : null)\n }\n return !prev\n })\n }\n\n const _findNextAvailableIndex = (\n currentIndex: number,\n direction: 'down' | 'up',\n ) => {\n const step = direction === 'down' ? 1 : -1\n let nextIndex =\n (currentIndex + step + filteredOptions.length) % filteredOptions.length\n\n while (filteredOptions[nextIndex]?.disabled) {\n nextIndex =\n (nextIndex + step + filteredOptions.length) % filteredOptions.length\n }\n\n return nextIndex\n }\n\n const onKeyDownDropdown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return\n\n const _actions: Record<string, () => void> = {\n Enter: () => {\n if (!isDropdownOpen) {\n toggleDropdown()\n return\n }\n if (\n activeOptionIndex !== null &&\n !filteredOptions[activeOptionIndex].disabled\n ) {\n e.preventDefault()\n selectOption(\n filteredOptions[activeOptionIndex].value,\n filteredOptions[activeOptionIndex].disabled,\n )\n }\n },\n ArrowDown: () => {\n e.preventDefault()\n setActiveOptionIndex((prev) =>\n _findNextAvailableIndex(prev !== null ? prev : -1, 'down'),\n )\n if (!isDropdownOpen) toggleDropdown()\n },\n ArrowUp: () => {\n e.preventDefault()\n setActiveOptionIndex((prev) =>\n _findNextAvailableIndex(\n prev !== null ? prev : filteredOptions.length,\n 'up',\n ),\n )\n if (!isDropdownOpen) toggleDropdown()\n },\n Escape: () => {\n setIsDropdownOpen(false)\n },\n }\n\n if (_actions[e.key]) {\n _actions[e.key]()\n }\n }\n\n const selectOption = (optionValue: string, optionDisabled?: boolean) => {\n if (optionDisabled) return\n\n const option = options.find((option) => option.value === optionValue)\n if (option) {\n setSelectedOption({ value: option.value, label: option.label })\n }\n\n setActiveOptionIndex(null)\n setIsDropdownOpen(false)\n setSearchValue('')\n if (onChange) {\n onChange(optionValue)\n }\n }\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n setSearchValue(value)\n\n if (value === '') {\n setSelectedOption({ value: '', label: '' })\n }\n\n if (!isDropdownOpen) {\n setIsDropdownOpen(true)\n }\n }\n\n return {\n isDropdownOpen,\n selectRef,\n activeOptionRef,\n selectElementRef,\n toggleDropdown,\n selectOption,\n onKeyDownDropdown,\n setActiveOptionIndex,\n activeOptionIndex,\n filteredOptions,\n searchValue,\n setSearchValue,\n handleInputChange,\n dropdownMaxHeight,\n selectedOption,\n setSelectedOption,\n }\n}\n","import classNames from 'classnames'\nimport { IconChevronDown, IconSlash, IconCheck } from '@components/icons'\nimport Field from '../Field'\nimport { SelectFieldProps } from './types'\nimport { useSelectField } from './hook'\nimport './styles.scss'\n\nexport const SelectField = ({\n label,\n options,\n optional,\n error,\n errorMessage,\n disabled,\n required,\n value,\n onChange,\n style,\n className,\n placeholder,\n name,\n register,\n onBlur,\n autocomplete = false,\n EmptyText = 'Nada encontrado',\n}: SelectFieldProps) => {\n const {\n isDropdownOpen,\n selectRef,\n selectElementRef,\n activeOptionRef,\n toggleDropdown,\n selectOption,\n onKeyDownDropdown,\n setActiveOptionIndex,\n activeOptionIndex,\n filteredOptions,\n searchValue,\n selectedOption,\n handleInputChange,\n dropdownMaxHeight,\n } = useSelectField(options, value, onChange, disabled, register, autocomplete)\n\n const dropdownClasses = classNames('au-field__select', {\n 'au-field__select--disabled': disabled,\n 'au-field__select--open': isDropdownOpen,\n 'au-field__select--required': required,\n 'au-field__select--error': error,\n [className!]: className,\n })\n\n return (\n <Field.Root\n style={style}\n customclass={className}\n error={error}\n disabled={disabled}>\n <Field.Label\n text={label}\n optional={optional}\n required={required}\n error={error}\n disabled={disabled}\n />\n <div className={dropdownClasses}>\n <div\n className=\"au-field__select-wrapper\"\n onClick={toggleDropdown}\n onKeyDown={onKeyDownDropdown}\n tabIndex={disabled ? -1 : 0}\n ref={selectRef}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded={isDropdownOpen}\n aria-labelledby=\"select-label\"\n aria-activedescendant={\n activeOptionIndex !== null && filteredOptions[activeOptionIndex]\n ? filteredOptions[activeOptionIndex].value\n : undefined\n }\n onBlur={onBlur}>\n <input\n className=\"au-field__select-input\"\n value={searchValue || selectedOption.label}\n placeholder={placeholder || 'Selecionar...'}\n onChange={handleInputChange}\n readOnly={!autocomplete}\n disabled={disabled}\n />\n <div className=\"au-field__select-icon\">\n <IconChevronDown />\n </div>\n </div>\n <ul\n className={classNames('au-field__select-options', {\n 'au-field__select-options--open': isDropdownOpen,\n })}\n role=\"listbox\"\n aria-live=\"polite\"\n tabIndex={-1}\n style={{ maxHeight: `${dropdownMaxHeight}px`, overflowY: 'auto' }}>\n {filteredOptions.length === 0 ? (\n <li className=\"au-field__select-option au-field__select-option--empty\">\n {EmptyText}\n </li>\n ) : (\n filteredOptions.map((option, index) => (\n <li\n key={index}\n className={classNames('au-field__select-option', {\n 'au-field__select-option--highlighted':\n activeOptionIndex === index,\n 'au-field__select-option--selected':\n option.value === selectedOption.value,\n 'au-field__select-option--disabled': option.disabled,\n })}\n ref={activeOptionIndex === index ? activeOptionRef : null}\n role=\"option\"\n aria-selected={option.value === selectedOption.value}\n aria-disabled={option.disabled}\n onPointerUp={() => selectOption(option.value, option.disabled)}\n onMouseEnter={() => setActiveOptionIndex(index)}>\n {option.label}\n {option.disabled ? (\n <IconSlash />\n ) : option.value === selectedOption.value ? (\n <IconCheck />\n ) : null}\n </li>\n ))\n )}\n </ul>\n\n <select\n hidden\n disabled={disabled}\n value={selectedOption.value}\n onChange={(e) => selectOption(e.target.value)}\n ref={selectElementRef}\n name={name}\n onBlur={onBlur}>\n {options.map((option, index) => (\n <option key={index} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </div>\n <Field.ErrorMessage hasError={!!error} message={errorMessage} />\n </Field.Root>\n )\n}\n"],"names":["option","_a"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../lib/components/form/SelectField/hook.ts","../../../lib/components/form/SelectField/index.tsx"],"sourcesContent":["import { useState, useRef, useEffect } from 'react'\nimport { OptionProps } from './types'\n\nexport const useSelectField = (\n options: OptionProps[],\n initialValue?: string,\n onChange?: (value: string) => void,\n disabled?: boolean,\n register?: (instance: HTMLSelectElement | null) => void,\n autocomplete: boolean = false,\n) => {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false)\n const [selectedOption, setSelectedOption] = useState<OptionProps>({\n value: initialValue || '',\n label: initialValue\n ? options.find((option) => option.value === initialValue)?.label || ''\n : '',\n })\n const [activeOptionIndex, setActiveOptionIndex] = useState<number | null>(\n null,\n )\n const [dropdownMaxHeight, setDropdownMaxHeight] = useState<number>(0)\n const selectRef = useRef<HTMLDivElement>(null)\n const selectElementRef = useRef<HTMLSelectElement>(null)\n const [searchValue, setSearchValue] = useState<string>('')\n const activeOptionRef = useRef<HTMLLIElement | null>(null)\n\n const filteredOptions = autocomplete\n ? options.filter((option) =>\n option.label.toLowerCase().includes(searchValue.toLowerCase()),\n )\n : options\n\n useEffect(() => {\n if (initialValue) {\n const option = options.find((option) => option.value === initialValue)\n if (option) {\n setSelectedOption({ value: option.value, label: option.label })\n }\n }\n }, [initialValue, options])\n\n useEffect(() => {\n if (register && selectElementRef.current) {\n register(selectElementRef.current)\n }\n }, [register])\n\n useEffect(() => {\n if (activeOptionRef.current) {\n activeOptionRef.current.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n })\n }\n }, [activeOptionIndex])\n\n useEffect(() => {\n const handleClickOutside = (event: PointerEvent) => {\n if (\n selectRef.current &&\n !selectRef.current.contains(event.target as Node)\n ) {\n setIsDropdownOpen(false)\n }\n }\n\n if (isDropdownOpen) {\n document.addEventListener('pointerup', handleClickOutside)\n } else {\n document.removeEventListener('pointerup', handleClickOutside)\n }\n\n return () => {\n document.removeEventListener('pointerup', handleClickOutside)\n }\n }, [isDropdownOpen])\n\n const toggleDropdown = () => {\n if (!isDropdownOpen && selectRef.current) {\n const { bottom } = selectRef.current.getBoundingClientRect()\n let totalPadding = 0\n let parentElement: HTMLElement | null = selectRef.current.parentElement\n\n while (parentElement) {\n const parentPaddingBottom = parseFloat(\n window.getComputedStyle(parentElement).paddingBottom || '0',\n )\n totalPadding += parentPaddingBottom\n parentElement = parentElement.parentElement\n }\n\n const availableSpaceBelow = window.innerHeight - bottom - totalPadding\n const minDropdownHeight = 212\n const calculatedHeight = Math.max(availableSpaceBelow, minDropdownHeight)\n\n setDropdownMaxHeight(calculatedHeight)\n }\n\n setIsDropdownOpen((prev) => {\n if (!prev) {\n const selectedIndex = options.findIndex(\n (option) => option.value === selectedOption.value,\n )\n setActiveOptionIndex(selectedIndex !== -1 ? selectedIndex : null)\n }\n return !prev\n })\n }\n\n const _findNextAvailableIndex = (\n currentIndex: number,\n direction: 'down' | 'up',\n ) => {\n const step = direction === 'down' ? 1 : -1\n let nextIndex =\n (currentIndex + step + filteredOptions.length) % filteredOptions.length\n\n while (filteredOptions[nextIndex]?.disabled) {\n nextIndex =\n (nextIndex + step + filteredOptions.length) % filteredOptions.length\n }\n\n return nextIndex\n }\n\n const onKeyDownDropdown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return\n\n const _actions: Record<string, () => void> = {\n Enter: () => {\n if (!isDropdownOpen) {\n toggleDropdown()\n return\n }\n if (\n activeOptionIndex !== null &&\n !filteredOptions[activeOptionIndex].disabled\n ) {\n e.preventDefault()\n selectOption(\n filteredOptions[activeOptionIndex].value,\n filteredOptions[activeOptionIndex].disabled,\n )\n }\n },\n ArrowDown: () => {\n e.preventDefault()\n setActiveOptionIndex((prev) =>\n _findNextAvailableIndex(prev !== null ? prev : -1, 'down'),\n )\n if (!isDropdownOpen) toggleDropdown()\n },\n ArrowUp: () => {\n e.preventDefault()\n setActiveOptionIndex((prev) =>\n _findNextAvailableIndex(\n prev !== null ? prev : filteredOptions.length,\n 'up',\n ),\n )\n if (!isDropdownOpen) toggleDropdown()\n },\n Escape: () => {\n setIsDropdownOpen(false)\n },\n }\n\n if (_actions[e.key]) {\n _actions[e.key]()\n }\n }\n\n const selectOption = (optionValue: string, optionDisabled?: boolean) => {\n if (optionDisabled) return\n\n const option = options.find((option) => option.value === optionValue)\n if (option) {\n setSelectedOption({ value: option.value, label: option.label })\n }\n\n setActiveOptionIndex(null)\n setIsDropdownOpen(false)\n setSearchValue('')\n if (onChange) {\n onChange(optionValue)\n }\n }\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n setSearchValue(value)\n\n if (value === '') {\n setSelectedOption({ value: '', label: '' })\n }\n\n if (!isDropdownOpen) {\n setIsDropdownOpen(true)\n }\n }\n\n return {\n isDropdownOpen,\n selectRef,\n activeOptionRef,\n selectElementRef,\n toggleDropdown,\n selectOption,\n onKeyDownDropdown,\n setActiveOptionIndex,\n activeOptionIndex,\n filteredOptions,\n searchValue,\n setSearchValue,\n handleInputChange,\n dropdownMaxHeight,\n selectedOption,\n setSelectedOption,\n }\n}\n","import classNames from 'classnames'\nimport { IconChevronDown, IconSlash, IconCheck } from '@components/icons'\nimport Field from '../Field'\nimport { SelectFieldProps } from './types'\nimport { useSelectField } from './hook'\nimport './styles.scss'\n\nexport const SelectField = ({\n label,\n options,\n showOptionalLabel,\n error,\n errorMessage,\n helpMessage,\n disabled,\n required,\n value,\n onChange,\n style,\n className,\n placeholder,\n name,\n register,\n onBlur,\n autocomplete = false,\n EmptyText = 'Nada encontrado',\n}: SelectFieldProps) => {\n const {\n isDropdownOpen,\n selectRef,\n selectElementRef,\n activeOptionRef,\n toggleDropdown,\n selectOption,\n onKeyDownDropdown,\n setActiveOptionIndex,\n activeOptionIndex,\n filteredOptions,\n searchValue,\n selectedOption,\n handleInputChange,\n dropdownMaxHeight,\n } = useSelectField(options, value, onChange, disabled, register, autocomplete)\n\n const dropdownClasses = classNames('au-field__select', {\n 'au-field__select--disabled': disabled,\n 'au-field__select--open': isDropdownOpen,\n 'au-field__select--required': required,\n 'au-field__select--error': error,\n [className!]: className,\n })\n\n return (\n <Field.Root\n style={style}\n customclass={className}\n error={error}\n disabled={disabled}>\n <Field.Label\n text={label}\n showOptionalLabel={showOptionalLabel}\n required={required}\n error={error}\n disabled={disabled}\n />\n <div className={dropdownClasses}>\n <div\n className=\"au-field__select-wrapper\"\n onClick={toggleDropdown}\n onKeyDown={onKeyDownDropdown}\n tabIndex={disabled ? -1 : 0}\n ref={selectRef}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded={isDropdownOpen}\n aria-labelledby=\"select-label\"\n aria-activedescendant={\n activeOptionIndex !== null && filteredOptions[activeOptionIndex]\n ? filteredOptions[activeOptionIndex].value\n : undefined\n }\n onBlur={onBlur}>\n <input\n className=\"au-field__select-input\"\n value={searchValue || selectedOption.label}\n placeholder={placeholder || 'Selecionar...'}\n onChange={handleInputChange}\n readOnly={!autocomplete}\n disabled={disabled}\n />\n <div className=\"au-field__select-icon\">\n <IconChevronDown />\n </div>\n </div>\n <ul\n className={classNames('au-field__select-options', {\n 'au-field__select-options--open': isDropdownOpen,\n })}\n role=\"listbox\"\n aria-live=\"polite\"\n tabIndex={-1}\n style={{ maxHeight: `${dropdownMaxHeight}px`, overflowY: 'auto' }}>\n {filteredOptions.length === 0 ? (\n <li className=\"au-field__select-option au-field__select-option--empty\">\n {EmptyText}\n </li>\n ) : (\n filteredOptions.map((option, index) => (\n <li\n key={index}\n className={classNames('au-field__select-option', {\n 'au-field__select-option--highlighted':\n activeOptionIndex === index,\n 'au-field__select-option--selected':\n option.value === selectedOption.value,\n 'au-field__select-option--disabled': option.disabled,\n })}\n ref={activeOptionIndex === index ? activeOptionRef : null}\n role=\"option\"\n aria-selected={option.value === selectedOption.value}\n aria-disabled={option.disabled}\n onPointerUp={() => selectOption(option.value, option.disabled)}\n onMouseEnter={() => setActiveOptionIndex(index)}>\n {option.label}\n {option.disabled ? (\n <IconSlash />\n ) : option.value === selectedOption.value ? (\n <IconCheck />\n ) : null}\n </li>\n ))\n )}\n </ul>\n\n <select\n hidden\n disabled={disabled}\n value={selectedOption.value}\n onChange={(e) => selectOption(e.target.value)}\n ref={selectElementRef}\n name={name}\n onBlur={onBlur}>\n {options.map((option, index) => (\n <option key={index} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </div>\n <Field.Message hasError={!!error} errorMessage={errorMessage} helpMessage={helpMessage} />\n \n \n </Field.Root>\n )\n}\n"],"names":["option","_a"],"mappings":"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"}
|