@consumidor-positivo/aurora 0.0.197 → 0.0.198
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.
|
@@ -3,7 +3,8 @@ export type TabsProps = {
|
|
|
3
3
|
tabs: TabItemProps[];
|
|
4
4
|
areTabsHidden?: boolean;
|
|
5
5
|
initialTab?: string;
|
|
6
|
-
|
|
6
|
+
headerChildren?: React.ReactNode;
|
|
7
|
+
onClick?: (value: string) => void;
|
|
7
8
|
};
|
|
8
9
|
export type TabItemProps = {
|
|
9
10
|
tab: string;
|
|
@@ -11,5 +12,5 @@ export type TabItemProps = {
|
|
|
11
12
|
children?: React.ReactElement;
|
|
12
13
|
icon?: React.ReactNode;
|
|
13
14
|
};
|
|
14
|
-
export declare const Tabs: ({ tabs, initialTab, onClick, areTabsHidden, }: TabsProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare const Tabs: ({ tabs, initialTab, onClick, areTabsHidden, headerChildren, }: TabsProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
16
|
export default Tabs;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { c as classNames } from "../../index-CweZ_OcN.js";
|
|
3
|
-
import {
|
|
3
|
+
import { I as If } from "../../react-if.esm-BV55Vzhf.js";
|
|
4
4
|
import { Button } from "../Button/index.es.js";
|
|
5
5
|
import { useState, useEffect } from "react";
|
|
6
6
|
import './styles.css';const Tabs = ({
|
|
7
7
|
tabs,
|
|
8
8
|
initialTab,
|
|
9
9
|
onClick,
|
|
10
|
-
areTabsHidden
|
|
10
|
+
areTabsHidden,
|
|
11
|
+
headerChildren
|
|
11
12
|
}) => {
|
|
12
13
|
const [isClicked, setIsClicked] = useState(false);
|
|
13
14
|
const [currButton, setCurrButton] = useState(initialTab ?? "");
|
|
@@ -16,7 +17,7 @@ import './styles.css';const Tabs = ({
|
|
|
16
17
|
setActiveTab(initialTab);
|
|
17
18
|
}, [initialTab]);
|
|
18
19
|
const handleClick = (item) => {
|
|
19
|
-
onClick(item.tab);
|
|
20
|
+
onClick && onClick(item.tab);
|
|
20
21
|
setCurrButton(item.tab);
|
|
21
22
|
setActiveTab(item.tab);
|
|
22
23
|
setIsClicked(true);
|
|
@@ -28,40 +29,30 @@ import './styles.css';const Tabs = ({
|
|
|
28
29
|
});
|
|
29
30
|
};
|
|
30
31
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
31
|
-
/* @__PURE__ */ jsx(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}) }) }),
|
|
50
|
-
renderElse: null
|
|
51
|
-
}
|
|
52
|
-
),
|
|
32
|
+
/* @__PURE__ */ jsx(If, { condition: !areTabsHidden, children: /* @__PURE__ */ jsx("div", { className: "au-tabs", children: /* @__PURE__ */ jsxs("div", { className: "au-tabs__container", children: [
|
|
33
|
+
/* @__PURE__ */ jsx("div", { className: "au-tabs__btns-panel", children: tabs.map((item) => {
|
|
34
|
+
return /* @__PURE__ */ jsxs(
|
|
35
|
+
Button,
|
|
36
|
+
{
|
|
37
|
+
className: buttonClass(item),
|
|
38
|
+
type: "outlined",
|
|
39
|
+
onClick: () => handleClick(item),
|
|
40
|
+
children: [
|
|
41
|
+
item.icon,
|
|
42
|
+
item.title
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
`au-tabs-${item.tab}`
|
|
46
|
+
);
|
|
47
|
+
}) }),
|
|
48
|
+
/* @__PURE__ */ jsx(If, { condition: !!headerChildren, children: headerChildren })
|
|
49
|
+
] }) }) }),
|
|
53
50
|
tabs.map(({ children, tab }) => {
|
|
54
51
|
return /* @__PURE__ */ jsx(
|
|
55
52
|
"div",
|
|
56
53
|
{
|
|
57
54
|
className: `au-tabs__children children-${tab}`,
|
|
58
|
-
children: /* @__PURE__ */ jsx(
|
|
59
|
-
Conditional,
|
|
60
|
-
{
|
|
61
|
-
condition: currButton === tab || activeTab === tab,
|
|
62
|
-
renderIf: children
|
|
63
|
-
}
|
|
64
|
-
)
|
|
55
|
+
children: /* @__PURE__ */ jsx(If, { condition: currButton === tab || activeTab === tab, children })
|
|
65
56
|
},
|
|
66
57
|
`au-tabs-${tab}`
|
|
67
58
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../lib/components/Tabs/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport {
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../lib/components/Tabs/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { If } from '@components/misc'\nimport { Button } from '@components/Button'\nimport { useEffect, useState } from 'react'\nimport './styles.scss'\n\nexport type TabsProps = {\n tabs: TabItemProps[]\n areTabsHidden?: boolean\n initialTab?: string\n headerChildren?: React.ReactNode\n onClick?: (value: string) => void\n}\n\nexport type TabItemProps = {\n tab: string\n title: string\n children?: React.ReactElement\n icon?: React.ReactNode\n}\n\nexport const Tabs = ({\n tabs,\n initialTab,\n onClick,\n areTabsHidden,\n headerChildren,\n}: TabsProps) => {\n const [isClicked, setIsClicked] = useState(false)\n const [currButton, setCurrButton] = useState(initialTab ?? '')\n const [activeTab, setActiveTab] = useState(initialTab)\n\n useEffect(() => {\n setActiveTab(initialTab)\n }, [initialTab])\n\n const handleClick = (item: TabItemProps) => {\n onClick && onClick(item.tab)\n setCurrButton(item.tab)\n setActiveTab(item.tab)\n setIsClicked(true)\n }\n\n const buttonClass = (item: TabItemProps) => {\n const isActive =\n (isClicked && item.tab === currButton) || activeTab === item.tab\n return classNames('au-tabs__button', {\n active: isActive,\n })\n }\n\n return (\n <>\n <If condition={!areTabsHidden}>\n <div className=\"au-tabs\">\n <div className=\"au-tabs__container\">\n <div className=\"au-tabs__btns-panel\">\n {tabs.map((item: TabItemProps) => {\n return (\n <Button\n key={`au-tabs-${item.tab}`}\n className={buttonClass(item)}\n type={'outlined'}\n onClick={() => handleClick(item)}>\n {item.icon}\n {item.title}\n </Button>\n )\n })}\n </div>\n <If condition={!!headerChildren}>{headerChildren}</If>\n </div>\n </div>\n </If>\n\n {tabs.map(({ children, tab }: TabItemProps) => {\n return (\n <div\n className={`au-tabs__children children-${tab}`}\n key={`au-tabs-${tab}`}>\n <If condition={currButton === tab || activeTab === tab}>\n {children}\n </If>\n </div>\n )\n })}\n </>\n )\n}\n\nexport default Tabs\n"],"names":[],"mappings":";;;;;AAqBO,MAAM,OAAO,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAiB;AACf,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,cAAc,EAAE;AAC7D,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,UAAU;AAErD,YAAU,MAAM;AACd,iBAAa,UAAU;AAAA,EAAA,GACtB,CAAC,UAAU,CAAC;AAET,QAAA,cAAc,CAAC,SAAuB;AAC/B,eAAA,QAAQ,KAAK,GAAG;AAC3B,kBAAc,KAAK,GAAG;AACtB,iBAAa,KAAK,GAAG;AACrB,iBAAa,IAAI;AAAA,EAAA;AAGb,QAAA,cAAc,CAAC,SAAuB;AAC1C,UAAM,WACH,aAAa,KAAK,QAAQ,cAAe,cAAc,KAAK;AAC/D,WAAO,WAAW,mBAAmB;AAAA,MACnC,QAAQ;AAAA,IAAA,CACT;AAAA,EAAA;AAGH,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAC,oBAAA,IAAA,EAAG,WAAW,CAAC,eACd,UAAA,oBAAC,OAAI,EAAA,WAAU,WACb,UAAA,qBAAC,OAAI,EAAA,WAAU,sBACb,UAAA;AAAA,MAAA,oBAAC,SAAI,WAAU,uBACZ,UAAK,KAAA,IAAI,CAAC,SAAuB;AAE9B,eAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAW,YAAY,IAAI;AAAA,YAC3B,MAAM;AAAA,YACN,SAAS,MAAM,YAAY,IAAI;AAAA,YAC9B,UAAA;AAAA,cAAK,KAAA;AAAA,cACL,KAAK;AAAA,YAAA;AAAA,UAAA;AAAA,UALD,WAAW,KAAK,GAAG;AAAA,QAAA;AAAA,MAQ7B,CAAA,GACH;AAAA,0BACC,IAAG,EAAA,WAAW,CAAC,CAAC,gBAAiB,UAAe,gBAAA;AAAA,IAAA,EACnD,CAAA,EACF,CAAA,GACF;AAAA,IAEC,KAAK,IAAI,CAAC,EAAE,UAAU,UAAwB;AAE3C,aAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,8BAA8B,GAAG;AAAA,UAE5C,8BAAC,IAAG,EAAA,WAAW,eAAe,OAAO,cAAc,KAChD,UACH;AAAA,QAAA;AAAA,QAHK,WAAW,GAAG;AAAA,MAAA;AAAA,IAIrB,CAEH;AAAA,EACH,EAAA,CAAA;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.au-tabs__container{display:flex;gap:16px;white-space:nowrap;overflow-x:scroll}.au-
|
|
1
|
+
.au-tabs__container{display:flex;flex-direction:column}@media (min-width: 600px){.au-tabs__container{flex-direction:row;align-items:center;justify-content:space-between}}.au-tabs__btns-panel{display:flex;gap:16px;white-space:nowrap;overflow-x:scroll;margin-bottom:20px}.au-tabs__btns-panel::-webkit-scrollbar{display:none}@media (min-width: 600px){.au-tabs__btns-panel{overflow:unset;margin-bottom:0}}.au-tabs__button{font-size:14px;font-weight:600;padding:8px 16px;height:40px;border-color:#e2e4e9;color:#454a54}.au-tabs__button .au-icon svg,.au-tabs__button svg{color:#454a54}.au-tabs__button.active{background-color:#fafbff;border-color:#9abcff;color:#0048db}.au-tabs__button.active .au-icon svg,.au-tabs__button.active svg{color:#0048db}.au-tabs__children{margin-top:24px}@media (min-width: 600px){.au-tabs__children{margin-top:32px}}
|