@consumidor-positivo/aurora 0.1.1 → 0.2.3

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 CHANGED
@@ -68,7 +68,7 @@ execute os testes com:
68
68
  npm test
69
69
  ```
70
70
 
71
- Para rodar em modo watch:
71
+ Para rodar no modo watch:
72
72
 
73
73
  ```bash
74
74
  npm run test:watch
@@ -125,6 +125,7 @@ import './styles.css';const Alert = ({
125
125
  "button",
126
126
  {
127
127
  className: "au-alert__action-btn",
128
+ type: "button",
128
129
  onClick: (e) => handleActionClick(e),
129
130
  children: actionButton == null ? void 0 : actionButton.content
130
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../lib/components/Alert/index.tsx"],"sourcesContent":["import { useState, useEffect } from 'react'\nimport classNames from 'classnames'\nimport {\n IconAlertOctagon,\n IconAlertTriangle,\n IconCheck,\n IconInfo,\n IconX,\n IconClock,\n} from '@components/icons'\nimport {\n COLOR_ERROR_50,\n COLOR_INFO_50,\n COLOR_NEUTRAL_70,\n COLOR_SUCCESS_50,\n COLOR_WARNING_50,\n} from '@core/tokens'\nimport { Conditional } from '@components/misc'\nimport { Text } from '@components/Text'\nimport './styles.scss'\n\nexport type AlertProps = {\n showIcon?: boolean\n status?: 'success' | 'error' | 'warning' | 'info' | 'timer'\n type?: 1 | 2\n orientation?: 'horizontal' | 'vertical'\n title?: { content?: React.ReactNode; weight?: 'bold' | 'normal' }\n text?: React.ReactNode\n actionButton?: { content?: string; onClick?: () => void }\n closeButton?: boolean\n customIcon?: JSX.Element\n children?: React.ReactNode\n countdown?: number\n onCountdownEnd?: () => void\n onCloseButton?: () => void\n}\n\nexport const Alert = ({\n showIcon = true,\n status = 'info',\n type = 1,\n orientation = 'horizontal',\n title,\n text,\n actionButton,\n closeButton = false,\n children,\n countdown = 59,\n onCountdownEnd,\n onCloseButton,\n customIcon\n}: AlertProps) => {\n const [isClosed, setIsClosed] = useState(false)\n const [timeLeft, setTimeLeft] = useState(countdown)\n const [isCountdownFinished, setIsCountdownFinished] = useState(false)\n\n useEffect(() => {\n if (status !== 'timer' || timeLeft <= 0) return\n\n const timer = setInterval(() => {\n setTimeLeft((prev) => {\n if (prev <= 1) {\n clearInterval(timer)\n setIsCountdownFinished(true)\n if (onCountdownEnd) onCountdownEnd()\n }\n return prev - 1\n })\n }, 1000)\n\n return () => clearInterval(timer)\n }, [status, timeLeft, onCountdownEnd])\n\n useEffect(() => {\n if (timeLeft > 0) {\n setIsCountdownFinished(false)\n }\n }, [timeLeft])\n\t\n const handleActionClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n\t\tevent.preventDefault();\n\t\t\n setTimeLeft(countdown)\n setIsCountdownFinished(false)\n actionButton?.onClick?.()\n }\n\n const handleCloseButtonClick = () => {\n setIsClosed(true)\n onCloseButton?.()\n }\n\n const statusMap = {\n success: {\n option: 'success',\n icon: <IconCheck rawColor={COLOR_SUCCESS_50} />,\n },\n error: {\n option: 'error',\n icon: <IconAlertOctagon rawColor={COLOR_ERROR_50} />,\n },\n warning: {\n option: 'warning',\n icon: <IconAlertTriangle rawColor={COLOR_WARNING_50} />,\n },\n info: { option: 'info', icon: <IconInfo rawColor={COLOR_INFO_50} /> },\n timer: {\n option: 'timer',\n icon: (\n <div className=\"au-alert__timer\">\n <IconClock rawColor={COLOR_WARNING_50} />\n {!isCountdownFinished && (\n <Text\n className=\"au-alert__countdown\"\n variant=\"body-small\"\n weight=\"bold\">\n {timeLeft}s\n </Text>\n )}\n </div>\n ),\n },\n }\n\n const alertClasses = classNames('au-alert', {\n [`au-alert--${statusMap[status].option}--type-${type}`]:\n statusMap[status].option,\n })\n\n if (isClosed) return null\n\n return (\n <div className={alertClasses}>\n <div className=\"au-alert__content\">\n <Conditional condition={showIcon} renderIf={ customIcon ? customIcon : statusMap[status].icon} />\n <div className={`au-alert__container--${orientation}`}>\n <Conditional\n condition={!!title || !!text}\n renderIf={\n <div>\n <h4\n className={`au-alert__title au-alert__title--${title?.weight}`}>\n {title?.content}\n </h4>\n <p className=\"au-alert__support-text\">{text}</p>\n </div>\n }\n />\n\n {children}\n <Conditional\n condition={\n !!actionButton && (status !== 'timer' || isCountdownFinished)\n }\n renderIf={\n <button\n className=\"au-alert__action-btn\"\n onClick={(e) => handleActionClick(e)}>\n {actionButton?.content}\n </button>\n }\n />\n </div>\n </div>\n\n <Conditional\n condition={closeButton}\n renderIf={\n <button className=\"au-alert__close-btn\">\n <IconX\n rawColor={COLOR_NEUTRAL_70}\n onClick={handleCloseButtonClick}\n />\n </button>\n }\n />\n </div>\n )\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../lib/components/Alert/index.tsx"],"sourcesContent":["import { useState, useEffect } from 'react'\nimport classNames from 'classnames'\nimport {\n IconAlertOctagon,\n IconAlertTriangle,\n IconCheck,\n IconInfo,\n IconX,\n IconClock,\n} from '@components/icons'\nimport {\n COLOR_ERROR_50,\n COLOR_INFO_50,\n COLOR_NEUTRAL_70,\n COLOR_SUCCESS_50,\n COLOR_WARNING_50,\n} from '@core/tokens'\nimport { Conditional } from '@components/misc'\nimport { Text } from '@components/Text'\nimport './styles.scss'\n\nexport type AlertProps = {\n showIcon?: boolean\n status?: 'success' | 'error' | 'warning' | 'info' | 'timer'\n type?: 1 | 2\n orientation?: 'horizontal' | 'vertical'\n title?: { content?: React.ReactNode; weight?: 'bold' | 'normal' }\n text?: React.ReactNode\n actionButton?: { content?: string; onClick?: () => void }\n closeButton?: boolean\n customIcon?: JSX.Element\n children?: React.ReactNode\n countdown?: number\n onCountdownEnd?: () => void\n onCloseButton?: () => void\n}\n\nexport const Alert = ({\n showIcon = true,\n status = 'info',\n type = 1,\n orientation = 'horizontal',\n title,\n text,\n actionButton,\n closeButton = false,\n children,\n countdown = 59,\n onCountdownEnd,\n onCloseButton,\n customIcon\n}: AlertProps) => {\n const [isClosed, setIsClosed] = useState(false)\n const [timeLeft, setTimeLeft] = useState(countdown)\n const [isCountdownFinished, setIsCountdownFinished] = useState(false)\n\n useEffect(() => {\n if (status !== 'timer' || timeLeft <= 0) return\n\n const timer = setInterval(() => {\n setTimeLeft((prev) => {\n if (prev <= 1) {\n clearInterval(timer)\n setIsCountdownFinished(true)\n if (onCountdownEnd) onCountdownEnd()\n }\n return prev - 1\n })\n }, 1000)\n\n return () => clearInterval(timer)\n }, [status, timeLeft, onCountdownEnd])\n\n useEffect(() => {\n if (timeLeft > 0) {\n setIsCountdownFinished(false)\n }\n }, [timeLeft])\n\t\n const handleActionClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n\t\tevent.preventDefault();\n\t\t\n setTimeLeft(countdown)\n setIsCountdownFinished(false)\n actionButton?.onClick?.()\n }\n\n const handleCloseButtonClick = () => {\n setIsClosed(true)\n onCloseButton?.()\n }\n\n const statusMap = {\n success: {\n option: 'success',\n icon: <IconCheck rawColor={COLOR_SUCCESS_50} />,\n },\n error: {\n option: 'error',\n icon: <IconAlertOctagon rawColor={COLOR_ERROR_50} />,\n },\n warning: {\n option: 'warning',\n icon: <IconAlertTriangle rawColor={COLOR_WARNING_50} />,\n },\n info: { option: 'info', icon: <IconInfo rawColor={COLOR_INFO_50} /> },\n timer: {\n option: 'timer',\n icon: (\n <div className=\"au-alert__timer\">\n <IconClock rawColor={COLOR_WARNING_50} />\n {!isCountdownFinished && (\n <Text\n className=\"au-alert__countdown\"\n variant=\"body-small\"\n weight=\"bold\">\n {timeLeft}s\n </Text>\n )}\n </div>\n ),\n },\n }\n\n const alertClasses = classNames('au-alert', {\n [`au-alert--${statusMap[status].option}--type-${type}`]:\n statusMap[status].option,\n })\n\n if (isClosed) return null\n\n return (\n <div className={alertClasses}>\n <div className=\"au-alert__content\">\n <Conditional condition={showIcon} renderIf={ customIcon ? customIcon : statusMap[status].icon} />\n <div className={`au-alert__container--${orientation}`}>\n <Conditional\n condition={!!title || !!text}\n renderIf={\n <div>\n <h4\n className={`au-alert__title au-alert__title--${title?.weight}`}>\n {title?.content}\n </h4>\n <p className=\"au-alert__support-text\">{text}</p>\n </div>\n }\n />\n\n {children}\n <Conditional\n condition={\n !!actionButton && (status !== 'timer' || isCountdownFinished)\n }\n renderIf={\n <button\n className=\"au-alert__action-btn\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n onClick={(e) => handleActionClick(e)}>\n {actionButton?.content}\n </button>\n }\n />\n </div>\n </div>\n\n <Conditional\n condition={closeButton}\n renderIf={\n <button className=\"au-alert__close-btn\">\n <IconX\n rawColor={COLOR_NEUTRAL_70}\n onClick={handleCloseButtonClick}\n />\n </button>\n }\n />\n </div>\n )\n}\n"],"names":[],"mappings":"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"}
@@ -135,25 +135,28 @@ const HeaderNavigation = ({ children }) => {
135
135
  return /* @__PURE__ */ jsx("div", { className: "au-header__navigation", children });
136
136
  };
137
137
  const HeaderProfile = ({
138
- onClickNotifications,
139
- onClickMenu,
140
138
  fullName,
141
- showNotifications = true
139
+ onClickMenu,
140
+ notifications = {}
142
141
  }) => {
143
142
  const initialLetters = getInitialLetters(fullName);
143
+ const { visible = true, hasUnread = false, count, onClick } = notifications;
144
+ const shouldShowBadge = count && count > 0 || hasUnread;
144
145
  return /* @__PURE__ */ jsxs("div", { className: "au-header__profile", children: [
145
146
  /* @__PURE__ */ jsx(
146
147
  Conditional,
147
148
  {
148
- condition: showNotifications,
149
- renderIf: /* @__PURE__ */ jsx(
150
- "div",
151
- {
152
- className: "au-header__profile-notifications",
153
- onClick: onClickNotifications,
154
- children: /* @__PURE__ */ jsx(IconBell, {})
155
- }
156
- )
149
+ condition: visible,
150
+ renderIf: /* @__PURE__ */ jsxs("div", { className: "au-header__profile-notifications", onClick, children: [
151
+ /* @__PURE__ */ jsx(IconBell, {}),
152
+ /* @__PURE__ */ jsx(
153
+ Conditional,
154
+ {
155
+ condition: !!shouldShowBadge,
156
+ renderIf: /* @__PURE__ */ jsx("div", { className: "au-header__profile-notifications-badge", children: count && count > 0 ? count : null })
157
+ }
158
+ )
159
+ ] })
157
160
  }
158
161
  ),
159
162
  /* @__PURE__ */ jsx("div", { className: "au-header__profile-menu-mobile", onClick: onClickMenu, children: /* @__PURE__ */ jsx(IconMenu, {}) }),
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../lib/components/Header/parts/HeaderActions.tsx","../../../lib/components/Header/parts/HeaderBadges.tsx","../../../lib/components/Header/parts/HeaderButton.tsx","../../../lib/components/Header/parts/HeaderHamburger.tsx","../../../lib/components/Header/parts/HeaderLogo.tsx","../../../lib/components/Header/parts/HeaderNavbar.tsx","../../../lib/components/Header/parts/HeaderNavbarLink.tsx","../../../lib/components/Header/parts/HeaderNavigation.tsx","../../../lib/components/Header/parts/HeaderProfile.tsx","../../../lib/components/Header/parts/HeaderWrap.tsx","../../../lib/components/Header/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { ReactNode } from 'react'\n\nexport type HeaderActionsProps = {\n children: ReactNode | string | JSX.Element | JSX.Element[]\n divider?: boolean\n}\n\nexport const HeaderActions = ({ children, divider }: HeaderActionsProps) => {\n return (\n <div\n className={classNames('au-header__actions', {\n 'au-header__actions--divider': divider,\n })}>\n {children}\n </div>\n )\n}\n","import classNames from 'classnames'\nimport { ReactNode } from 'react'\n\nexport type HeaderBadgesProps = {\n children: ReactNode | string | JSX.Element | JSX.Element[]\n limitBadgeWidth?: boolean\n}\n\nexport const HeaderBadges = ({\n children,\n limitBadgeWidth = true,\n}: HeaderBadgesProps) => {\n const componentClass = classNames('au-header__badges', {\n 'au-header__badges--limited-width': limitBadgeWidth,\n })\n return <div className={componentClass}>{children}</div>\n}\n","import { ReactNode } from 'react'\n\nexport type HeaderButtonProps = {\n children: ReactNode | string | JSX.Element | JSX.Element[]\n onClick: () => void\n}\n\nexport const HeaderButton = ({ children, onClick }: HeaderButtonProps) => {\n return (\n <div className=\"au-header__button\" onClick={onClick}>\n {children}\n </div>\n )\n}\n","import { IconMenu } from '@components/icons/default'\n\nexport type HeaderHamburgerProps = {\n onClick?: () => void\n}\n\nexport const HeaderHamburger = ({ onClick }: HeaderHamburgerProps) => {\n return (\n <div className=\"au-header__hamburger\">\n <div className=\"au-header__hamburger\" onClick={onClick}>\n <IconMenu />\n </div>\n </div>\n )\n}\n","import { ReactNode } from 'react'\nimport { Conditional } from '@components/misc'\n\nexport type HeaderLogoProps = {\n children?: ReactNode | string | JSX.Element | JSX.Element[]\n renderMobile?: ReactNode | string | JSX.Element | JSX.Element[]\n renderDesktop?: ReactNode | string | JSX.Element | JSX.Element[]\n}\n\nexport const HeaderLogo = ({\n children,\n renderMobile,\n renderDesktop,\n}: HeaderLogoProps) => {\n return (\n <div className=\"au-header__logo\">\n <Conditional\n condition={!!renderMobile}\n renderIf={<div className=\"au-header__logo--mobile\">{renderMobile}</div>}\n />\n <Conditional\n condition={!!renderDesktop}\n renderIf={\n <div className=\"au-header__logo--desktop\">{renderDesktop}</div>\n }\n />\n {children}\n </div>\n )\n}\n","import { ReactNode } from 'react'\nimport { NavbarDataProps } from '../types'\n\nexport type HeaderNavbarProps = {\n data: NavbarDataProps[]\n renderItem: (\n item: NavbarDataProps,\n ) => ReactNode | string | JSX.Element | JSX.Element[]\n}\n\nexport const HeaderNavbar = ({ data, renderItem }: HeaderNavbarProps) => {\n return (\n <nav role=\"navigation\" className=\"au-header__navbar\">\n {data?.map((item) => {\n return renderItem(item)\n })}\n </nav>\n )\n}\n","import classNames from 'classnames'\nimport { Text } from '@components/Text'\nimport { IconChevronDown } from '@components/icons/default'\nimport { Conditional } from '@components/misc'\nimport { NavbarDataProps } from '../types'\n\nexport const HeaderNavbarLink = (navItem: NavbarDataProps) => {\n const { name, dropdown, active, href } = navItem\n const isDropdown = !!dropdown && dropdown.length\n\n function handleItemClick(item: NavbarDataProps, ev: React.MouseEvent) {\n if (item.onClick) {\n ev.preventDefault()\n item.onClick()\n }\n }\n\n return (\n <div\n className={classNames('au-header__navbar-item', {\n 'au-header__navbar-item--is-dropdown': dropdown,\n 'au-header__navbar-item--is-active': active,\n })}>\n <Text\n as={isDropdown ? 'div' : 'a'}\n variant=\"heading-micro\"\n weight=\"light\"\n href={href}\n onClick={(ev) => handleItemClick(navItem, ev)}\n title={name}\n className={classNames('au-header__navbar-link', {\n 'au-header__navbar-link--is-dropdown': dropdown,\n 'au-header__navbar-link--is-active': active,\n })}>\n {name}\n <Conditional\n condition={!!dropdown?.length}\n renderIf={<IconChevronDown />}\n />\n </Text>\n\n <Conditional\n condition={!!dropdown?.length}\n renderIf={\n <>\n <div className=\"au-header__dropdown\">\n {dropdown?.map((item) => {\n return (\n <Text\n key={item.name}\n as=\"a\"\n variant=\"heading-micro\"\n href={item.href}\n onClick={(ev) => handleItemClick(item, ev)}\n weight=\"light\"\n className={classNames('au-header__dropdown-link', {\n 'au-header__dropdown-link--is-active': item.active,\n })}\n title={item.name}>\n {item.name}\n </Text>\n )\n })}\n </div>\n </>\n }\n />\n </div>\n )\n}\n","import { ReactNode } from 'react'\n\nexport type HeaderNavigationProps = {\n children: ReactNode | string | JSX.Element | JSX.Element[]\n}\n\nexport const HeaderNavigation = ({ children }: HeaderNavigationProps) => {\n return <div className=\"au-header__navigation\">{children}</div>\n}\n","import { getInitialLetters } from '@core/utils/getInitialLetters'\nimport { IconBell, IconChevronDown, IconMenu } from '@components/icons/default'\nimport { Conditional } from '@components/misc'\n\nexport type HeaderProfileProps = {\n onClickNotifications?: () => void\n onClickMenu?: () => void\n fullName: string\n showNotifications?: boolean\n}\n\nexport const HeaderProfile = ({\n onClickNotifications,\n onClickMenu,\n fullName,\n showNotifications = true,\n}: HeaderProfileProps) => {\n const initialLetters = getInitialLetters(fullName)\n return (\n <div className=\"au-header__profile\">\n <Conditional\n condition={showNotifications}\n renderIf={\n <div\n className=\"au-header__profile-notifications\"\n onClick={onClickNotifications}>\n <IconBell />\n </div>\n }\n />\n\n <div className=\"au-header__profile-menu-mobile\" onClick={onClickMenu}>\n <IconMenu />\n </div>\n\n <div className=\"au-header__profile-menu\" onClick={onClickMenu}>\n <div className=\"au-header__profile-letters\">{initialLetters}</div>\n <IconChevronDown />\n </div>\n </div>\n )\n}\n","import classNames from 'classnames'\nimport { ReactNode } from 'react'\n\nexport type HeaderWrapProps = {\n position?: 'static' | 'fixed'\n children: ReactNode | string | JSX.Element | JSX.Element[]\n}\n\nexport const HeaderWrap = ({\n children,\n position = 'static',\n}: HeaderWrapProps) => {\n return (\n <header\n role=\"banner\"\n className={classNames('au-header', {\n 'au-header--fixed': position === 'fixed',\n 'au-header--static': position === 'static',\n })}>\n <div className=\"au-header__container\">{children}</div>\n </header>\n )\n}\n","import { HeaderActions, HeaderActionsProps } from './parts/HeaderActions'\nimport { HeaderBadges, HeaderBadgesProps } from './parts/HeaderBadges'\nimport { HeaderButton, HeaderButtonProps } from './parts/HeaderButton'\nimport { HeaderHamburger, HeaderHamburgerProps } from './parts/HeaderHamburger'\nimport { HeaderLogo, HeaderLogoProps } from './parts/HeaderLogo'\nimport { HeaderNavbar, HeaderNavbarProps } from './parts/HeaderNavbar'\nimport { HeaderNavbarLink } from './parts/HeaderNavbarLink'\nimport {\n HeaderNavigation,\n HeaderNavigationProps,\n} from './parts/HeaderNavigation'\nimport { HeaderProfile, HeaderProfileProps } from './parts/HeaderProfile'\nimport { HeaderWrap as Header, HeaderWrapProps } from './parts/HeaderWrap'\nimport { NavbarDataProps } from './types'\n\nimport './styles.scss'\n\ntype Components = {\n Actions: React.FC<HeaderActionsProps>\n Badges: React.FC<HeaderBadgesProps>\n Button: React.FC<HeaderButtonProps>\n Hamburger: React.FC<HeaderHamburgerProps>\n Logo: React.FC<HeaderLogoProps>\n Navbar: React.FC<HeaderNavbarProps>\n NavbarLink: React.FC<NavbarDataProps>\n Navigation: React.FC<HeaderNavigationProps>\n Profile: React.FC<HeaderProfileProps>\n Root: React.FC<HeaderWrapProps>\n}\n\nconst components: Components = {\n Actions: HeaderActions,\n Badges: HeaderBadges,\n Button: HeaderButton,\n Hamburger: HeaderHamburger,\n Logo: HeaderLogo,\n Navbar: HeaderNavbar,\n NavbarLink: HeaderNavbarLink,\n Navigation: HeaderNavigation,\n Profile: HeaderProfile,\n Root: Header,\n}\n\nObject.keys(components).forEach((key) => {\n const component = components[key as keyof Components]\n component.displayName = `Header.${key}`\n})\n\nexport { components as Header }\n"],"names":["Header"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../lib/components/Header/parts/HeaderActions.tsx","../../../lib/components/Header/parts/HeaderBadges.tsx","../../../lib/components/Header/parts/HeaderButton.tsx","../../../lib/components/Header/parts/HeaderHamburger.tsx","../../../lib/components/Header/parts/HeaderLogo.tsx","../../../lib/components/Header/parts/HeaderNavbar.tsx","../../../lib/components/Header/parts/HeaderNavbarLink.tsx","../../../lib/components/Header/parts/HeaderNavigation.tsx","../../../lib/components/Header/parts/HeaderProfile.tsx","../../../lib/components/Header/parts/HeaderWrap.tsx","../../../lib/components/Header/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { ReactNode } from 'react'\n\nexport type HeaderActionsProps = {\n children: ReactNode | string | JSX.Element | JSX.Element[]\n divider?: boolean\n}\n\nexport const HeaderActions = ({ children, divider }: HeaderActionsProps) => {\n return (\n <div\n className={classNames('au-header__actions', {\n 'au-header__actions--divider': divider,\n })}>\n {children}\n </div>\n )\n}\n","import classNames from 'classnames'\nimport { ReactNode } from 'react'\n\nexport type HeaderBadgesProps = {\n children: ReactNode | string | JSX.Element | JSX.Element[]\n limitBadgeWidth?: boolean\n}\n\nexport const HeaderBadges = ({\n children,\n limitBadgeWidth = true,\n}: HeaderBadgesProps) => {\n const componentClass = classNames('au-header__badges', {\n 'au-header__badges--limited-width': limitBadgeWidth,\n })\n return <div className={componentClass}>{children}</div>\n}\n","import { ReactNode } from 'react'\n\nexport type HeaderButtonProps = {\n children: ReactNode | string | JSX.Element | JSX.Element[]\n onClick: () => void\n}\n\nexport const HeaderButton = ({ children, onClick }: HeaderButtonProps) => {\n return (\n <div className=\"au-header__button\" onClick={onClick}>\n {children}\n </div>\n )\n}\n","import { IconMenu } from '@components/icons/default'\n\nexport type HeaderHamburgerProps = {\n onClick?: () => void\n}\n\nexport const HeaderHamburger = ({ onClick }: HeaderHamburgerProps) => {\n return (\n <div className=\"au-header__hamburger\">\n <div className=\"au-header__hamburger\" onClick={onClick}>\n <IconMenu />\n </div>\n </div>\n )\n}\n","import { ReactNode } from 'react'\nimport { Conditional } from '@components/misc'\n\nexport type HeaderLogoProps = {\n children?: ReactNode | string | JSX.Element | JSX.Element[]\n renderMobile?: ReactNode | string | JSX.Element | JSX.Element[]\n renderDesktop?: ReactNode | string | JSX.Element | JSX.Element[]\n}\n\nexport const HeaderLogo = ({\n children,\n renderMobile,\n renderDesktop,\n}: HeaderLogoProps) => {\n return (\n <div className=\"au-header__logo\">\n <Conditional\n condition={!!renderMobile}\n renderIf={<div className=\"au-header__logo--mobile\">{renderMobile}</div>}\n />\n <Conditional\n condition={!!renderDesktop}\n renderIf={\n <div className=\"au-header__logo--desktop\">{renderDesktop}</div>\n }\n />\n {children}\n </div>\n )\n}\n","import { ReactNode } from 'react'\nimport { NavbarDataProps } from '../types'\n\nexport type HeaderNavbarProps = {\n data: NavbarDataProps[]\n renderItem: (\n item: NavbarDataProps,\n ) => ReactNode | string | JSX.Element | JSX.Element[]\n}\n\nexport const HeaderNavbar = ({ data, renderItem }: HeaderNavbarProps) => {\n return (\n <nav role=\"navigation\" className=\"au-header__navbar\">\n {data?.map((item) => {\n return renderItem(item)\n })}\n </nav>\n )\n}\n","import classNames from 'classnames'\nimport { Text } from '@components/Text'\nimport { IconChevronDown } from '@components/icons/default'\nimport { Conditional } from '@components/misc'\nimport { NavbarDataProps } from '../types'\n\nexport const HeaderNavbarLink = (navItem: NavbarDataProps) => {\n const { name, dropdown, active, href } = navItem\n const isDropdown = !!dropdown && dropdown.length\n\n function handleItemClick(item: NavbarDataProps, ev: React.MouseEvent) {\n if (item.onClick) {\n ev.preventDefault()\n item.onClick()\n }\n }\n\n return (\n <div\n className={classNames('au-header__navbar-item', {\n 'au-header__navbar-item--is-dropdown': dropdown,\n 'au-header__navbar-item--is-active': active,\n })}>\n <Text\n as={isDropdown ? 'div' : 'a'}\n variant=\"heading-micro\"\n weight=\"light\"\n href={href}\n onClick={(ev) => handleItemClick(navItem, ev)}\n title={name}\n className={classNames('au-header__navbar-link', {\n 'au-header__navbar-link--is-dropdown': dropdown,\n 'au-header__navbar-link--is-active': active,\n })}>\n {name}\n <Conditional\n condition={!!dropdown?.length}\n renderIf={<IconChevronDown />}\n />\n </Text>\n\n <Conditional\n condition={!!dropdown?.length}\n renderIf={\n <>\n <div className=\"au-header__dropdown\">\n {dropdown?.map((item) => {\n return (\n <Text\n key={item.name}\n as=\"a\"\n variant=\"heading-micro\"\n href={item.href}\n onClick={(ev) => handleItemClick(item, ev)}\n weight=\"light\"\n className={classNames('au-header__dropdown-link', {\n 'au-header__dropdown-link--is-active': item.active,\n })}\n title={item.name}>\n {item.name}\n </Text>\n )\n })}\n </div>\n </>\n }\n />\n </div>\n )\n}\n","import { ReactNode } from 'react'\n\nexport type HeaderNavigationProps = {\n children: ReactNode | string | JSX.Element | JSX.Element[]\n}\n\nexport const HeaderNavigation = ({ children }: HeaderNavigationProps) => {\n return <div className=\"au-header__navigation\">{children}</div>\n}\n","import { getInitialLetters } from '@core/utils/getInitialLetters'\nimport { IconBell, IconChevronDown, IconMenu } from '@components/icons/default'\nimport { Conditional } from '@components/misc'\n\nexport type NotificationsConfig = {\n visible?: boolean\n count?: number\n hasUnread?: boolean\n onClick?: () => void\n}\n\nexport type HeaderProfileProps = {\n fullName: string\n onClickMenu?: () => void\n notifications?: NotificationsConfig\n}\n\nexport const HeaderProfile = ({\n fullName,\n onClickMenu,\n notifications = {},\n}: HeaderProfileProps) => {\n const initialLetters = getInitialLetters(fullName)\n\n const { visible = true, hasUnread = false, count, onClick } = notifications\n const shouldShowBadge = (count && count > 0) || hasUnread\n\n return (\n <div className=\"au-header__profile\">\n <Conditional\n condition={visible}\n renderIf={\n <div className=\"au-header__profile-notifications\" onClick={onClick}>\n <IconBell />\n <Conditional\n condition={!!shouldShowBadge}\n renderIf={\n <div className=\"au-header__profile-notifications-badge\">\n {count && count > 0 ? count : null}\n </div>\n }\n />\n </div>\n }\n />\n\n <div className=\"au-header__profile-menu-mobile\" onClick={onClickMenu}>\n <IconMenu />\n </div>\n\n <div className=\"au-header__profile-menu\" onClick={onClickMenu}>\n <div className=\"au-header__profile-letters\">{initialLetters}</div>\n <IconChevronDown />\n </div>\n </div>\n )\n}\n","import classNames from 'classnames'\nimport { ReactNode } from 'react'\n\nexport type HeaderWrapProps = {\n position?: 'static' | 'fixed'\n children: ReactNode | string | JSX.Element | JSX.Element[]\n}\n\nexport const HeaderWrap = ({\n children,\n position = 'static',\n}: HeaderWrapProps) => {\n return (\n <header\n role=\"banner\"\n className={classNames('au-header', {\n 'au-header--fixed': position === 'fixed',\n 'au-header--static': position === 'static',\n })}>\n <div className=\"au-header__container\">{children}</div>\n </header>\n )\n}\n","import { HeaderActions, HeaderActionsProps } from './parts/HeaderActions'\nimport { HeaderBadges, HeaderBadgesProps } from './parts/HeaderBadges'\nimport { HeaderButton, HeaderButtonProps } from './parts/HeaderButton'\nimport { HeaderHamburger, HeaderHamburgerProps } from './parts/HeaderHamburger'\nimport { HeaderLogo, HeaderLogoProps } from './parts/HeaderLogo'\nimport { HeaderNavbar, HeaderNavbarProps } from './parts/HeaderNavbar'\nimport { HeaderNavbarLink } from './parts/HeaderNavbarLink'\nimport {\n HeaderNavigation,\n HeaderNavigationProps,\n} from './parts/HeaderNavigation'\nimport { HeaderProfile, HeaderProfileProps } from './parts/HeaderProfile'\nimport { HeaderWrap as Header, HeaderWrapProps } from './parts/HeaderWrap'\nimport { NavbarDataProps } from './types'\n\nimport './styles.scss'\n\ntype Components = {\n Actions: React.FC<HeaderActionsProps>\n Badges: React.FC<HeaderBadgesProps>\n Button: React.FC<HeaderButtonProps>\n Hamburger: React.FC<HeaderHamburgerProps>\n Logo: React.FC<HeaderLogoProps>\n Navbar: React.FC<HeaderNavbarProps>\n NavbarLink: React.FC<NavbarDataProps>\n Navigation: React.FC<HeaderNavigationProps>\n Profile: React.FC<HeaderProfileProps>\n Root: React.FC<HeaderWrapProps>\n}\n\nconst components: Components = {\n Actions: HeaderActions,\n Badges: HeaderBadges,\n Button: HeaderButton,\n Hamburger: HeaderHamburger,\n Logo: HeaderLogo,\n Navbar: HeaderNavbar,\n NavbarLink: HeaderNavbarLink,\n Navigation: HeaderNavigation,\n Profile: HeaderProfile,\n Root: Header,\n}\n\nObject.keys(components).forEach((key) => {\n const component = components[key as keyof Components]\n component.displayName = `Header.${key}`\n})\n\nexport { components as Header }\n"],"names":["Header"],"mappings":"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"}
@@ -1,7 +1,12 @@
1
+ export type NotificationsConfig = {
2
+ visible?: boolean;
3
+ count?: number;
4
+ hasUnread?: boolean;
5
+ onClick?: () => void;
6
+ };
1
7
  export type HeaderProfileProps = {
2
- onClickNotifications?: () => void;
3
- onClickMenu?: () => void;
4
8
  fullName: string;
5
- showNotifications?: boolean;
9
+ onClickMenu?: () => void;
10
+ notifications?: NotificationsConfig;
6
11
  };
7
- export declare const HeaderProfile: ({ onClickNotifications, onClickMenu, fullName, showNotifications, }: HeaderProfileProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const HeaderProfile: ({ fullName, onClickMenu, notifications, }: HeaderProfileProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- .au-header{height:80px;border-bottom:1px solid #e2e4e9;background-color:#fff}.au-header--fixed{position:fixed;top:0;left:0;width:100%;z-index:5}.au-header--static{position:relative}.au-header__container{width:100%;max-width:1232px;margin:0 auto;padding:0 24px}@media (min-width: 1024px){.au-header__container{padding:0 16px}}.au-header__container{height:100%;display:flex;justify-content:space-between;align-items:center;gap:16px}.au-header__logo{display:flex;align-items:center}.au-header__logo .au-text{padding-left:16px;margin-left:16px;border-left:1px solid #e2e4e9}.au-header__logo--mobile{display:block}@media (min-width: 1024px){.au-header__logo--mobile{display:none}}.au-header__logo--desktop{display:none}@media (min-width: 1024px){.au-header__logo--desktop{display:block}}.au-header__link,.au-header__button{cursor:pointer}.au-header__badges{display:flex;align-items:center}.au-header__badges>*+*{padding-left:16px;margin-left:16px;position:relative}.au-header__badges>*+*:before{content:"";height:24px;width:1px;background-color:#e2e4e9;position:absolute;left:0;top:calc(50% - 12px)}.au-header__badges .au-logo img{width:100%}.au-header__badges--limited-width .au-logo{max-width:56px}.au-header__navigation{height:100%;display:flex}.au-header__navigation>*+*{margin-left:24px}.au-header__navbar{color:#16181d;display:none}@media (min-width: 1024px){.au-header__navbar{display:flex;align-items:center;gap:24px}}.au-header__navbar-item{position:relative}.au-header__navbar-item--is-dropdown{height:calc(100% + 8px);align-self:flex-start;display:flex;align-items:center;justify-content:center;padding-bottom:8px;gap:8px}.au-header__navbar-item--is-dropdown .au-icon{transition:transform .25s ease}.au-header__navbar-item--is-dropdown:hover .au-icon,.au-header__navbar-item--is-dropdown:focus .au-icon{transform:rotate(-180deg)}.au-header__navbar-item--is-dropdown:hover .au-header__dropdown,.au-header__navbar-item--is-dropdown:focus .au-header__dropdown{opacity:1;visibility:visible;transform:translateY(0)}.au-header__navbar-link{height:100%;cursor:pointer;text-decoration:none}.au-header__navbar-link--is-dropdown{position:relative;display:flex;align-items:center;justify-content:center;gap:8px}.au-header__navbar-link--is-active,.au-header__navbar-link:hover,.au-header__navbar-link:focus{font-weight:700;letter-spacing:-.6px}.au-header__navbar-link:hover,.au-header__navbar-link:focus{color:#16181d}.au-header__navbar-link--is-active{color:#0048db}.au-header__navbar-link--is-active:hover,.au-header__navbar-link--is-active:focus{color:#0048db}.au-header__dropdown{background-color:#fff;border-radius:16px;border:1px solid #e2e4e9;box-shadow:0 2px 8px #a9b1c514,0 4px 4px #0048db0a;max-width:230px;min-width:230px;position:absolute;overflow:hidden;z-index:2;top:100%;width:100%;left:-8px;opacity:0;visibility:hidden;transition:opacity .25s ease-in-out,transform .2s linear,visibility .25s ease-in-out;transform:translateY(-8px)}.au-header__dropdown-link{display:inline-block;padding:16px 24px;width:100%;display:flex;text-decoration:none;justify-content:space-between;cursor:pointer}.au-header__dropdown-link--is-active,.au-header__dropdown-link:hover,.au-header__dropdown-link:focus{font-weight:700;letter-spacing:-.6px}.au-header__dropdown-link--is-active{color:#0048db;background-color:#fafbff;border-top:1px solid #e2e4e9}.au-header__actions{display:flex;align-items:center;gap:8px;margin-block:16px}@media (min-width: 1024px){.au-header__actions--divider{border-left:1px solid #e2e4e9;padding-left:16px;margin-left:24px}}.au-header__profile{display:flex;align-items:center;gap:24px}.au-header__profile-notifications{cursor:pointer}.au-header__profile-menu{display:none;align-items:center;gap:8px;cursor:pointer}@media (min-width: 1024px){.au-header__profile-menu{display:flex}}.au-header__profile-menu-mobile{display:block;cursor:pointer}@media (min-width: 1024px){.au-header__profile-menu-mobile{display:none}}.au-header__profile-letters{display:flex;align-items:center;justify-content:center;border-radius:50%;width:40px;height:40px;background-color:#9abcff;font-weight:500;font-family:Lexend Deca,sans-serif;color:#16181d;font-size:16px;text-transform:uppercase}.au-header__hamburger{cursor:pointer}@media (min-width: 1024px){.au-header__hamburger{display:none}}
1
+ .au-header{height:80px;border-bottom:1px solid #e2e4e9;background-color:#fff}.au-header--fixed{position:fixed;top:0;left:0;width:100%;z-index:5}.au-header--static{position:relative}.au-header__container{width:100%;max-width:1232px;margin:0 auto;padding:0 24px}@media (min-width: 1024px){.au-header__container{padding:0 16px}}.au-header__container{height:100%;display:flex;justify-content:space-between;align-items:center;gap:16px}.au-header__logo{display:flex;align-items:center}.au-header__logo .au-text{padding-left:16px;margin-left:16px;border-left:1px solid #e2e4e9}.au-header__logo--mobile{display:block}@media (min-width: 1024px){.au-header__logo--mobile{display:none}}.au-header__logo--desktop{display:none}@media (min-width: 1024px){.au-header__logo--desktop{display:block}}.au-header__link,.au-header__button{cursor:pointer}.au-header__badges{display:flex;align-items:center}.au-header__badges>*+*{padding-left:16px;margin-left:16px;position:relative}.au-header__badges>*+*:before{content:"";height:24px;width:1px;background-color:#e2e4e9;position:absolute;left:0;top:calc(50% - 12px)}.au-header__badges .au-logo img{width:100%}.au-header__badges--limited-width .au-logo{max-width:56px}.au-header__navigation{height:100%;display:flex}.au-header__navigation>*+*{margin-left:24px}.au-header__navbar{color:#16181d;display:none}@media (min-width: 1024px){.au-header__navbar{display:flex;align-items:center;gap:24px}}.au-header__navbar-item{position:relative}.au-header__navbar-item--is-dropdown{height:calc(100% + 8px);align-self:flex-start;display:flex;align-items:center;justify-content:center;padding-bottom:8px;gap:8px}.au-header__navbar-item--is-dropdown .au-icon{transition:transform .25s ease}.au-header__navbar-item--is-dropdown:hover .au-icon,.au-header__navbar-item--is-dropdown:focus .au-icon{transform:rotate(-180deg)}.au-header__navbar-item--is-dropdown:hover .au-header__dropdown,.au-header__navbar-item--is-dropdown:focus .au-header__dropdown{opacity:1;visibility:visible;transform:translateY(0)}.au-header__navbar-link{height:100%;cursor:pointer;text-decoration:none}.au-header__navbar-link--is-dropdown{position:relative;display:flex;align-items:center;justify-content:center;gap:8px}.au-header__navbar-link--is-active,.au-header__navbar-link:hover,.au-header__navbar-link:focus{font-weight:700;letter-spacing:-.6px}.au-header__navbar-link:hover,.au-header__navbar-link:focus{color:#16181d}.au-header__navbar-link--is-active{color:#0048db}.au-header__navbar-link--is-active:hover,.au-header__navbar-link--is-active:focus{color:#0048db}.au-header__dropdown{background-color:#fff;border-radius:16px;border:1px solid #e2e4e9;box-shadow:0 2px 8px #a9b1c514,0 4px 4px #0048db0a;max-width:230px;min-width:230px;position:absolute;overflow:hidden;z-index:2;top:100%;width:100%;left:-8px;opacity:0;visibility:hidden;transition:opacity .25s ease-in-out,transform .2s linear,visibility .25s ease-in-out;transform:translateY(-8px)}.au-header__dropdown-link{display:inline-block;padding:16px 24px;width:100%;display:flex;text-decoration:none;justify-content:space-between;cursor:pointer}.au-header__dropdown-link--is-active,.au-header__dropdown-link:hover,.au-header__dropdown-link:focus{font-weight:700;letter-spacing:-.6px}.au-header__dropdown-link--is-active{color:#0048db;background-color:#fafbff;border-top:1px solid #e2e4e9}.au-header__actions{display:flex;align-items:center;gap:8px;margin-block:16px}@media (min-width: 1024px){.au-header__actions--divider{border-left:1px solid #e2e4e9;padding-left:16px;margin-left:24px}}.au-header__profile{display:flex;align-items:center;gap:24px}.au-header__profile-notifications{cursor:pointer;position:relative}.au-header__profile-notifications-badge{position:absolute;top:-2px;right:-2px;background-color:#e52222;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;line-height:0px;font-weight:700;min-width:16px;height:16px;padding:0 4px;border:1px solid #ffffff}.au-header__profile-notifications-badge:empty{width:12px;height:12px;min-width:12px;padding:0 4px;top:0;right:0}.au-header__profile-menu{display:none;align-items:center;gap:8px;cursor:pointer}@media (min-width: 1024px){.au-header__profile-menu{display:flex}}.au-header__profile-menu-mobile{display:block;cursor:pointer}@media (min-width: 1024px){.au-header__profile-menu-mobile{display:none}}.au-header__profile-letters{display:flex;align-items:center;justify-content:center;border-radius:50%;width:40px;height:40px;background-color:#9abcff;font-weight:500;font-family:Lexend Deca,sans-serif;color:#16181d;font-size:16px;text-transform:uppercase}.au-header__hamburger{cursor:pointer}@media (min-width: 1024px){.au-header__hamburger{display:none}}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@consumidor-positivo/aurora",
3
3
  "private": false,
4
- "version": "0.1.1",
4
+ "version": "0.2.3",
5
5
  "type": "module",
6
6
  "main": "./dist/main.es.js",
7
7
  "modules": "./dist/main.es.js",